1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package xray
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/restjson"
14)
15
16const opBatchGetTraces = "BatchGetTraces"
17
18// BatchGetTracesRequest generates a "aws/request.Request" representing the
19// client's request for the BatchGetTraces operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See BatchGetTraces for more information on using the BatchGetTraces
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the BatchGetTracesRequest method.
34//    req, resp := client.BatchGetTracesRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/BatchGetTraces
42func (c *XRay) BatchGetTracesRequest(input *BatchGetTracesInput) (req *request.Request, output *BatchGetTracesOutput) {
43	op := &request.Operation{
44		Name:       opBatchGetTraces,
45		HTTPMethod: "POST",
46		HTTPPath:   "/Traces",
47		Paginator: &request.Paginator{
48			InputTokens:     []string{"NextToken"},
49			OutputTokens:    []string{"NextToken"},
50			LimitToken:      "",
51			TruncationToken: "",
52		},
53	}
54
55	if input == nil {
56		input = &BatchGetTracesInput{}
57	}
58
59	output = &BatchGetTracesOutput{}
60	req = c.newRequest(op, input, output)
61	return
62}
63
64// BatchGetTraces API operation for AWS X-Ray.
65//
66// Retrieves a list of traces specified by ID. Each trace is a collection of
67// segment documents that originates from a single request. Use GetTraceSummaries
68// to get a list of trace IDs.
69//
70// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
71// with awserr.Error's Code and Message methods to get detailed information about
72// the error.
73//
74// See the AWS API reference guide for AWS X-Ray's
75// API operation BatchGetTraces for usage and error information.
76//
77// Returned Error Types:
78//   * InvalidRequestException
79//   The request is missing required parameters or has invalid parameters.
80//
81//   * ThrottledException
82//   The request exceeds the maximum number of requests per second.
83//
84// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/BatchGetTraces
85func (c *XRay) BatchGetTraces(input *BatchGetTracesInput) (*BatchGetTracesOutput, error) {
86	req, out := c.BatchGetTracesRequest(input)
87	return out, req.Send()
88}
89
90// BatchGetTracesWithContext is the same as BatchGetTraces with the addition of
91// the ability to pass a context and additional request options.
92//
93// See BatchGetTraces for details on how to use this API operation.
94//
95// The context must be non-nil and will be used for request cancellation. If
96// the context is nil a panic will occur. In the future the SDK may create
97// sub-contexts for http.Requests. See https://golang.org/pkg/context/
98// for more information on using Contexts.
99func (c *XRay) BatchGetTracesWithContext(ctx aws.Context, input *BatchGetTracesInput, opts ...request.Option) (*BatchGetTracesOutput, error) {
100	req, out := c.BatchGetTracesRequest(input)
101	req.SetContext(ctx)
102	req.ApplyOptions(opts...)
103	return out, req.Send()
104}
105
106// BatchGetTracesPages iterates over the pages of a BatchGetTraces operation,
107// calling the "fn" function with the response data for each page. To stop
108// iterating, return false from the fn function.
109//
110// See BatchGetTraces method for more information on how to use this operation.
111//
112// Note: This operation can generate multiple requests to a service.
113//
114//    // Example iterating over at most 3 pages of a BatchGetTraces operation.
115//    pageNum := 0
116//    err := client.BatchGetTracesPages(params,
117//        func(page *xray.BatchGetTracesOutput, lastPage bool) bool {
118//            pageNum++
119//            fmt.Println(page)
120//            return pageNum <= 3
121//        })
122//
123func (c *XRay) BatchGetTracesPages(input *BatchGetTracesInput, fn func(*BatchGetTracesOutput, bool) bool) error {
124	return c.BatchGetTracesPagesWithContext(aws.BackgroundContext(), input, fn)
125}
126
127// BatchGetTracesPagesWithContext same as BatchGetTracesPages except
128// it takes a Context and allows setting request options on the pages.
129//
130// The context must be non-nil and will be used for request cancellation. If
131// the context is nil a panic will occur. In the future the SDK may create
132// sub-contexts for http.Requests. See https://golang.org/pkg/context/
133// for more information on using Contexts.
134func (c *XRay) BatchGetTracesPagesWithContext(ctx aws.Context, input *BatchGetTracesInput, fn func(*BatchGetTracesOutput, bool) bool, opts ...request.Option) error {
135	p := request.Pagination{
136		NewRequest: func() (*request.Request, error) {
137			var inCpy *BatchGetTracesInput
138			if input != nil {
139				tmp := *input
140				inCpy = &tmp
141			}
142			req, _ := c.BatchGetTracesRequest(inCpy)
143			req.SetContext(ctx)
144			req.ApplyOptions(opts...)
145			return req, nil
146		},
147	}
148
149	for p.Next() {
150		if !fn(p.Page().(*BatchGetTracesOutput), !p.HasNextPage()) {
151			break
152		}
153	}
154
155	return p.Err()
156}
157
158const opCreateGroup = "CreateGroup"
159
160// CreateGroupRequest generates a "aws/request.Request" representing the
161// client's request for the CreateGroup operation. The "output" return
162// value will be populated with the request's response once the request completes
163// successfully.
164//
165// Use "Send" method on the returned Request to send the API call to the service.
166// the "output" return value is not valid until after Send returns without error.
167//
168// See CreateGroup for more information on using the CreateGroup
169// API call, and error handling.
170//
171// This method is useful when you want to inject custom logic or configuration
172// into the SDK's request lifecycle. Such as custom headers, or retry logic.
173//
174//
175//    // Example sending a request using the CreateGroupRequest method.
176//    req, resp := client.CreateGroupRequest(params)
177//
178//    err := req.Send()
179//    if err == nil { // resp is now filled
180//        fmt.Println(resp)
181//    }
182//
183// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/CreateGroup
184func (c *XRay) CreateGroupRequest(input *CreateGroupInput) (req *request.Request, output *CreateGroupOutput) {
185	op := &request.Operation{
186		Name:       opCreateGroup,
187		HTTPMethod: "POST",
188		HTTPPath:   "/CreateGroup",
189	}
190
191	if input == nil {
192		input = &CreateGroupInput{}
193	}
194
195	output = &CreateGroupOutput{}
196	req = c.newRequest(op, input, output)
197	return
198}
199
200// CreateGroup API operation for AWS X-Ray.
201//
202// Creates a group resource with a name and a filter expression.
203//
204// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
205// with awserr.Error's Code and Message methods to get detailed information about
206// the error.
207//
208// See the AWS API reference guide for AWS X-Ray's
209// API operation CreateGroup for usage and error information.
210//
211// Returned Error Types:
212//   * InvalidRequestException
213//   The request is missing required parameters or has invalid parameters.
214//
215//   * ThrottledException
216//   The request exceeds the maximum number of requests per second.
217//
218// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/CreateGroup
219func (c *XRay) CreateGroup(input *CreateGroupInput) (*CreateGroupOutput, error) {
220	req, out := c.CreateGroupRequest(input)
221	return out, req.Send()
222}
223
224// CreateGroupWithContext is the same as CreateGroup with the addition of
225// the ability to pass a context and additional request options.
226//
227// See CreateGroup for details on how to use this API operation.
228//
229// The context must be non-nil and will be used for request cancellation. If
230// the context is nil a panic will occur. In the future the SDK may create
231// sub-contexts for http.Requests. See https://golang.org/pkg/context/
232// for more information on using Contexts.
233func (c *XRay) CreateGroupWithContext(ctx aws.Context, input *CreateGroupInput, opts ...request.Option) (*CreateGroupOutput, error) {
234	req, out := c.CreateGroupRequest(input)
235	req.SetContext(ctx)
236	req.ApplyOptions(opts...)
237	return out, req.Send()
238}
239
240const opCreateSamplingRule = "CreateSamplingRule"
241
242// CreateSamplingRuleRequest generates a "aws/request.Request" representing the
243// client's request for the CreateSamplingRule operation. The "output" return
244// value will be populated with the request's response once the request completes
245// successfully.
246//
247// Use "Send" method on the returned Request to send the API call to the service.
248// the "output" return value is not valid until after Send returns without error.
249//
250// See CreateSamplingRule for more information on using the CreateSamplingRule
251// API call, and error handling.
252//
253// This method is useful when you want to inject custom logic or configuration
254// into the SDK's request lifecycle. Such as custom headers, or retry logic.
255//
256//
257//    // Example sending a request using the CreateSamplingRuleRequest method.
258//    req, resp := client.CreateSamplingRuleRequest(params)
259//
260//    err := req.Send()
261//    if err == nil { // resp is now filled
262//        fmt.Println(resp)
263//    }
264//
265// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/CreateSamplingRule
266func (c *XRay) CreateSamplingRuleRequest(input *CreateSamplingRuleInput) (req *request.Request, output *CreateSamplingRuleOutput) {
267	op := &request.Operation{
268		Name:       opCreateSamplingRule,
269		HTTPMethod: "POST",
270		HTTPPath:   "/CreateSamplingRule",
271	}
272
273	if input == nil {
274		input = &CreateSamplingRuleInput{}
275	}
276
277	output = &CreateSamplingRuleOutput{}
278	req = c.newRequest(op, input, output)
279	return
280}
281
282// CreateSamplingRule API operation for AWS X-Ray.
283//
284// Creates a rule to control sampling behavior for instrumented applications.
285// Services retrieve rules with GetSamplingRules (https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingRules.html),
286// and evaluate each rule in ascending order of priority for each request. If
287// a rule matches, the service records a trace, borrowing it from the reservoir
288// size. After 10 seconds, the service reports back to X-Ray with GetSamplingTargets
289// (https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html)
290// to get updated versions of each in-use rule. The updated rule contains a
291// trace quota that the service can use instead of borrowing from the reservoir.
292//
293// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
294// with awserr.Error's Code and Message methods to get detailed information about
295// the error.
296//
297// See the AWS API reference guide for AWS X-Ray's
298// API operation CreateSamplingRule for usage and error information.
299//
300// Returned Error Types:
301//   * InvalidRequestException
302//   The request is missing required parameters or has invalid parameters.
303//
304//   * ThrottledException
305//   The request exceeds the maximum number of requests per second.
306//
307//   * RuleLimitExceededException
308//   You have reached the maximum number of sampling rules.
309//
310// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/CreateSamplingRule
311func (c *XRay) CreateSamplingRule(input *CreateSamplingRuleInput) (*CreateSamplingRuleOutput, error) {
312	req, out := c.CreateSamplingRuleRequest(input)
313	return out, req.Send()
314}
315
316// CreateSamplingRuleWithContext is the same as CreateSamplingRule with the addition of
317// the ability to pass a context and additional request options.
318//
319// See CreateSamplingRule for details on how to use this API operation.
320//
321// The context must be non-nil and will be used for request cancellation. If
322// the context is nil a panic will occur. In the future the SDK may create
323// sub-contexts for http.Requests. See https://golang.org/pkg/context/
324// for more information on using Contexts.
325func (c *XRay) CreateSamplingRuleWithContext(ctx aws.Context, input *CreateSamplingRuleInput, opts ...request.Option) (*CreateSamplingRuleOutput, error) {
326	req, out := c.CreateSamplingRuleRequest(input)
327	req.SetContext(ctx)
328	req.ApplyOptions(opts...)
329	return out, req.Send()
330}
331
332const opDeleteGroup = "DeleteGroup"
333
334// DeleteGroupRequest generates a "aws/request.Request" representing the
335// client's request for the DeleteGroup operation. The "output" return
336// value will be populated with the request's response once the request completes
337// successfully.
338//
339// Use "Send" method on the returned Request to send the API call to the service.
340// the "output" return value is not valid until after Send returns without error.
341//
342// See DeleteGroup for more information on using the DeleteGroup
343// API call, and error handling.
344//
345// This method is useful when you want to inject custom logic or configuration
346// into the SDK's request lifecycle. Such as custom headers, or retry logic.
347//
348//
349//    // Example sending a request using the DeleteGroupRequest method.
350//    req, resp := client.DeleteGroupRequest(params)
351//
352//    err := req.Send()
353//    if err == nil { // resp is now filled
354//        fmt.Println(resp)
355//    }
356//
357// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/DeleteGroup
358func (c *XRay) DeleteGroupRequest(input *DeleteGroupInput) (req *request.Request, output *DeleteGroupOutput) {
359	op := &request.Operation{
360		Name:       opDeleteGroup,
361		HTTPMethod: "POST",
362		HTTPPath:   "/DeleteGroup",
363	}
364
365	if input == nil {
366		input = &DeleteGroupInput{}
367	}
368
369	output = &DeleteGroupOutput{}
370	req = c.newRequest(op, input, output)
371	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
372	return
373}
374
375// DeleteGroup API operation for AWS X-Ray.
376//
377// Deletes a group resource.
378//
379// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
380// with awserr.Error's Code and Message methods to get detailed information about
381// the error.
382//
383// See the AWS API reference guide for AWS X-Ray's
384// API operation DeleteGroup for usage and error information.
385//
386// Returned Error Types:
387//   * InvalidRequestException
388//   The request is missing required parameters or has invalid parameters.
389//
390//   * ThrottledException
391//   The request exceeds the maximum number of requests per second.
392//
393// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/DeleteGroup
394func (c *XRay) DeleteGroup(input *DeleteGroupInput) (*DeleteGroupOutput, error) {
395	req, out := c.DeleteGroupRequest(input)
396	return out, req.Send()
397}
398
399// DeleteGroupWithContext is the same as DeleteGroup with the addition of
400// the ability to pass a context and additional request options.
401//
402// See DeleteGroup for details on how to use this API operation.
403//
404// The context must be non-nil and will be used for request cancellation. If
405// the context is nil a panic will occur. In the future the SDK may create
406// sub-contexts for http.Requests. See https://golang.org/pkg/context/
407// for more information on using Contexts.
408func (c *XRay) DeleteGroupWithContext(ctx aws.Context, input *DeleteGroupInput, opts ...request.Option) (*DeleteGroupOutput, error) {
409	req, out := c.DeleteGroupRequest(input)
410	req.SetContext(ctx)
411	req.ApplyOptions(opts...)
412	return out, req.Send()
413}
414
415const opDeleteSamplingRule = "DeleteSamplingRule"
416
417// DeleteSamplingRuleRequest generates a "aws/request.Request" representing the
418// client's request for the DeleteSamplingRule operation. The "output" return
419// value will be populated with the request's response once the request completes
420// successfully.
421//
422// Use "Send" method on the returned Request to send the API call to the service.
423// the "output" return value is not valid until after Send returns without error.
424//
425// See DeleteSamplingRule for more information on using the DeleteSamplingRule
426// API call, and error handling.
427//
428// This method is useful when you want to inject custom logic or configuration
429// into the SDK's request lifecycle. Such as custom headers, or retry logic.
430//
431//
432//    // Example sending a request using the DeleteSamplingRuleRequest method.
433//    req, resp := client.DeleteSamplingRuleRequest(params)
434//
435//    err := req.Send()
436//    if err == nil { // resp is now filled
437//        fmt.Println(resp)
438//    }
439//
440// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/DeleteSamplingRule
441func (c *XRay) DeleteSamplingRuleRequest(input *DeleteSamplingRuleInput) (req *request.Request, output *DeleteSamplingRuleOutput) {
442	op := &request.Operation{
443		Name:       opDeleteSamplingRule,
444		HTTPMethod: "POST",
445		HTTPPath:   "/DeleteSamplingRule",
446	}
447
448	if input == nil {
449		input = &DeleteSamplingRuleInput{}
450	}
451
452	output = &DeleteSamplingRuleOutput{}
453	req = c.newRequest(op, input, output)
454	return
455}
456
457// DeleteSamplingRule API operation for AWS X-Ray.
458//
459// Deletes a sampling rule.
460//
461// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
462// with awserr.Error's Code and Message methods to get detailed information about
463// the error.
464//
465// See the AWS API reference guide for AWS X-Ray's
466// API operation DeleteSamplingRule for usage and error information.
467//
468// Returned Error Types:
469//   * InvalidRequestException
470//   The request is missing required parameters or has invalid parameters.
471//
472//   * ThrottledException
473//   The request exceeds the maximum number of requests per second.
474//
475// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/DeleteSamplingRule
476func (c *XRay) DeleteSamplingRule(input *DeleteSamplingRuleInput) (*DeleteSamplingRuleOutput, error) {
477	req, out := c.DeleteSamplingRuleRequest(input)
478	return out, req.Send()
479}
480
481// DeleteSamplingRuleWithContext is the same as DeleteSamplingRule with the addition of
482// the ability to pass a context and additional request options.
483//
484// See DeleteSamplingRule for details on how to use this API operation.
485//
486// The context must be non-nil and will be used for request cancellation. If
487// the context is nil a panic will occur. In the future the SDK may create
488// sub-contexts for http.Requests. See https://golang.org/pkg/context/
489// for more information on using Contexts.
490func (c *XRay) DeleteSamplingRuleWithContext(ctx aws.Context, input *DeleteSamplingRuleInput, opts ...request.Option) (*DeleteSamplingRuleOutput, error) {
491	req, out := c.DeleteSamplingRuleRequest(input)
492	req.SetContext(ctx)
493	req.ApplyOptions(opts...)
494	return out, req.Send()
495}
496
497const opGetEncryptionConfig = "GetEncryptionConfig"
498
499// GetEncryptionConfigRequest generates a "aws/request.Request" representing the
500// client's request for the GetEncryptionConfig operation. The "output" return
501// value will be populated with the request's response once the request completes
502// successfully.
503//
504// Use "Send" method on the returned Request to send the API call to the service.
505// the "output" return value is not valid until after Send returns without error.
506//
507// See GetEncryptionConfig for more information on using the GetEncryptionConfig
508// API call, and error handling.
509//
510// This method is useful when you want to inject custom logic or configuration
511// into the SDK's request lifecycle. Such as custom headers, or retry logic.
512//
513//
514//    // Example sending a request using the GetEncryptionConfigRequest method.
515//    req, resp := client.GetEncryptionConfigRequest(params)
516//
517//    err := req.Send()
518//    if err == nil { // resp is now filled
519//        fmt.Println(resp)
520//    }
521//
522// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetEncryptionConfig
523func (c *XRay) GetEncryptionConfigRequest(input *GetEncryptionConfigInput) (req *request.Request, output *GetEncryptionConfigOutput) {
524	op := &request.Operation{
525		Name:       opGetEncryptionConfig,
526		HTTPMethod: "POST",
527		HTTPPath:   "/EncryptionConfig",
528	}
529
530	if input == nil {
531		input = &GetEncryptionConfigInput{}
532	}
533
534	output = &GetEncryptionConfigOutput{}
535	req = c.newRequest(op, input, output)
536	return
537}
538
539// GetEncryptionConfig API operation for AWS X-Ray.
540//
541// Retrieves the current encryption configuration for X-Ray data.
542//
543// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
544// with awserr.Error's Code and Message methods to get detailed information about
545// the error.
546//
547// See the AWS API reference guide for AWS X-Ray's
548// API operation GetEncryptionConfig for usage and error information.
549//
550// Returned Error Types:
551//   * InvalidRequestException
552//   The request is missing required parameters or has invalid parameters.
553//
554//   * ThrottledException
555//   The request exceeds the maximum number of requests per second.
556//
557// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetEncryptionConfig
558func (c *XRay) GetEncryptionConfig(input *GetEncryptionConfigInput) (*GetEncryptionConfigOutput, error) {
559	req, out := c.GetEncryptionConfigRequest(input)
560	return out, req.Send()
561}
562
563// GetEncryptionConfigWithContext is the same as GetEncryptionConfig with the addition of
564// the ability to pass a context and additional request options.
565//
566// See GetEncryptionConfig for details on how to use this API operation.
567//
568// The context must be non-nil and will be used for request cancellation. If
569// the context is nil a panic will occur. In the future the SDK may create
570// sub-contexts for http.Requests. See https://golang.org/pkg/context/
571// for more information on using Contexts.
572func (c *XRay) GetEncryptionConfigWithContext(ctx aws.Context, input *GetEncryptionConfigInput, opts ...request.Option) (*GetEncryptionConfigOutput, error) {
573	req, out := c.GetEncryptionConfigRequest(input)
574	req.SetContext(ctx)
575	req.ApplyOptions(opts...)
576	return out, req.Send()
577}
578
579const opGetGroup = "GetGroup"
580
581// GetGroupRequest generates a "aws/request.Request" representing the
582// client's request for the GetGroup operation. The "output" return
583// value will be populated with the request's response once the request completes
584// successfully.
585//
586// Use "Send" method on the returned Request to send the API call to the service.
587// the "output" return value is not valid until after Send returns without error.
588//
589// See GetGroup for more information on using the GetGroup
590// API call, and error handling.
591//
592// This method is useful when you want to inject custom logic or configuration
593// into the SDK's request lifecycle. Such as custom headers, or retry logic.
594//
595//
596//    // Example sending a request using the GetGroupRequest method.
597//    req, resp := client.GetGroupRequest(params)
598//
599//    err := req.Send()
600//    if err == nil { // resp is now filled
601//        fmt.Println(resp)
602//    }
603//
604// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetGroup
605func (c *XRay) GetGroupRequest(input *GetGroupInput) (req *request.Request, output *GetGroupOutput) {
606	op := &request.Operation{
607		Name:       opGetGroup,
608		HTTPMethod: "POST",
609		HTTPPath:   "/GetGroup",
610	}
611
612	if input == nil {
613		input = &GetGroupInput{}
614	}
615
616	output = &GetGroupOutput{}
617	req = c.newRequest(op, input, output)
618	return
619}
620
621// GetGroup API operation for AWS X-Ray.
622//
623// Retrieves group resource details.
624//
625// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
626// with awserr.Error's Code and Message methods to get detailed information about
627// the error.
628//
629// See the AWS API reference guide for AWS X-Ray's
630// API operation GetGroup for usage and error information.
631//
632// Returned Error Types:
633//   * InvalidRequestException
634//   The request is missing required parameters or has invalid parameters.
635//
636//   * ThrottledException
637//   The request exceeds the maximum number of requests per second.
638//
639// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetGroup
640func (c *XRay) GetGroup(input *GetGroupInput) (*GetGroupOutput, error) {
641	req, out := c.GetGroupRequest(input)
642	return out, req.Send()
643}
644
645// GetGroupWithContext is the same as GetGroup with the addition of
646// the ability to pass a context and additional request options.
647//
648// See GetGroup for details on how to use this API operation.
649//
650// The context must be non-nil and will be used for request cancellation. If
651// the context is nil a panic will occur. In the future the SDK may create
652// sub-contexts for http.Requests. See https://golang.org/pkg/context/
653// for more information on using Contexts.
654func (c *XRay) GetGroupWithContext(ctx aws.Context, input *GetGroupInput, opts ...request.Option) (*GetGroupOutput, error) {
655	req, out := c.GetGroupRequest(input)
656	req.SetContext(ctx)
657	req.ApplyOptions(opts...)
658	return out, req.Send()
659}
660
661const opGetGroups = "GetGroups"
662
663// GetGroupsRequest generates a "aws/request.Request" representing the
664// client's request for the GetGroups operation. The "output" return
665// value will be populated with the request's response once the request completes
666// successfully.
667//
668// Use "Send" method on the returned Request to send the API call to the service.
669// the "output" return value is not valid until after Send returns without error.
670//
671// See GetGroups for more information on using the GetGroups
672// API call, and error handling.
673//
674// This method is useful when you want to inject custom logic or configuration
675// into the SDK's request lifecycle. Such as custom headers, or retry logic.
676//
677//
678//    // Example sending a request using the GetGroupsRequest method.
679//    req, resp := client.GetGroupsRequest(params)
680//
681//    err := req.Send()
682//    if err == nil { // resp is now filled
683//        fmt.Println(resp)
684//    }
685//
686// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetGroups
687func (c *XRay) GetGroupsRequest(input *GetGroupsInput) (req *request.Request, output *GetGroupsOutput) {
688	op := &request.Operation{
689		Name:       opGetGroups,
690		HTTPMethod: "POST",
691		HTTPPath:   "/Groups",
692		Paginator: &request.Paginator{
693			InputTokens:     []string{"NextToken"},
694			OutputTokens:    []string{"NextToken"},
695			LimitToken:      "",
696			TruncationToken: "",
697		},
698	}
699
700	if input == nil {
701		input = &GetGroupsInput{}
702	}
703
704	output = &GetGroupsOutput{}
705	req = c.newRequest(op, input, output)
706	return
707}
708
709// GetGroups API operation for AWS X-Ray.
710//
711// Retrieves all active group details.
712//
713// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
714// with awserr.Error's Code and Message methods to get detailed information about
715// the error.
716//
717// See the AWS API reference guide for AWS X-Ray's
718// API operation GetGroups for usage and error information.
719//
720// Returned Error Types:
721//   * InvalidRequestException
722//   The request is missing required parameters or has invalid parameters.
723//
724//   * ThrottledException
725//   The request exceeds the maximum number of requests per second.
726//
727// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetGroups
728func (c *XRay) GetGroups(input *GetGroupsInput) (*GetGroupsOutput, error) {
729	req, out := c.GetGroupsRequest(input)
730	return out, req.Send()
731}
732
733// GetGroupsWithContext is the same as GetGroups with the addition of
734// the ability to pass a context and additional request options.
735//
736// See GetGroups for details on how to use this API operation.
737//
738// The context must be non-nil and will be used for request cancellation. If
739// the context is nil a panic will occur. In the future the SDK may create
740// sub-contexts for http.Requests. See https://golang.org/pkg/context/
741// for more information on using Contexts.
742func (c *XRay) GetGroupsWithContext(ctx aws.Context, input *GetGroupsInput, opts ...request.Option) (*GetGroupsOutput, error) {
743	req, out := c.GetGroupsRequest(input)
744	req.SetContext(ctx)
745	req.ApplyOptions(opts...)
746	return out, req.Send()
747}
748
749// GetGroupsPages iterates over the pages of a GetGroups operation,
750// calling the "fn" function with the response data for each page. To stop
751// iterating, return false from the fn function.
752//
753// See GetGroups method for more information on how to use this operation.
754//
755// Note: This operation can generate multiple requests to a service.
756//
757//    // Example iterating over at most 3 pages of a GetGroups operation.
758//    pageNum := 0
759//    err := client.GetGroupsPages(params,
760//        func(page *xray.GetGroupsOutput, lastPage bool) bool {
761//            pageNum++
762//            fmt.Println(page)
763//            return pageNum <= 3
764//        })
765//
766func (c *XRay) GetGroupsPages(input *GetGroupsInput, fn func(*GetGroupsOutput, bool) bool) error {
767	return c.GetGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
768}
769
770// GetGroupsPagesWithContext same as GetGroupsPages except
771// it takes a Context and allows setting request options on the pages.
772//
773// The context must be non-nil and will be used for request cancellation. If
774// the context is nil a panic will occur. In the future the SDK may create
775// sub-contexts for http.Requests. See https://golang.org/pkg/context/
776// for more information on using Contexts.
777func (c *XRay) GetGroupsPagesWithContext(ctx aws.Context, input *GetGroupsInput, fn func(*GetGroupsOutput, bool) bool, opts ...request.Option) error {
778	p := request.Pagination{
779		NewRequest: func() (*request.Request, error) {
780			var inCpy *GetGroupsInput
781			if input != nil {
782				tmp := *input
783				inCpy = &tmp
784			}
785			req, _ := c.GetGroupsRequest(inCpy)
786			req.SetContext(ctx)
787			req.ApplyOptions(opts...)
788			return req, nil
789		},
790	}
791
792	for p.Next() {
793		if !fn(p.Page().(*GetGroupsOutput), !p.HasNextPage()) {
794			break
795		}
796	}
797
798	return p.Err()
799}
800
801const opGetInsight = "GetInsight"
802
803// GetInsightRequest generates a "aws/request.Request" representing the
804// client's request for the GetInsight operation. The "output" return
805// value will be populated with the request's response once the request completes
806// successfully.
807//
808// Use "Send" method on the returned Request to send the API call to the service.
809// the "output" return value is not valid until after Send returns without error.
810//
811// See GetInsight for more information on using the GetInsight
812// API call, and error handling.
813//
814// This method is useful when you want to inject custom logic or configuration
815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
816//
817//
818//    // Example sending a request using the GetInsightRequest method.
819//    req, resp := client.GetInsightRequest(params)
820//
821//    err := req.Send()
822//    if err == nil { // resp is now filled
823//        fmt.Println(resp)
824//    }
825//
826// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetInsight
827func (c *XRay) GetInsightRequest(input *GetInsightInput) (req *request.Request, output *GetInsightOutput) {
828	op := &request.Operation{
829		Name:       opGetInsight,
830		HTTPMethod: "POST",
831		HTTPPath:   "/Insight",
832	}
833
834	if input == nil {
835		input = &GetInsightInput{}
836	}
837
838	output = &GetInsightOutput{}
839	req = c.newRequest(op, input, output)
840	return
841}
842
843// GetInsight API operation for AWS X-Ray.
844//
845// Retrieves the summary information of an insight. This includes impact to
846// clients and root cause services, the top anomalous services, the category,
847// the state of the insight, and the start and end time of the insight.
848//
849// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
850// with awserr.Error's Code and Message methods to get detailed information about
851// the error.
852//
853// See the AWS API reference guide for AWS X-Ray's
854// API operation GetInsight for usage and error information.
855//
856// Returned Error Types:
857//   * InvalidRequestException
858//   The request is missing required parameters or has invalid parameters.
859//
860//   * ThrottledException
861//   The request exceeds the maximum number of requests per second.
862//
863// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetInsight
864func (c *XRay) GetInsight(input *GetInsightInput) (*GetInsightOutput, error) {
865	req, out := c.GetInsightRequest(input)
866	return out, req.Send()
867}
868
869// GetInsightWithContext is the same as GetInsight with the addition of
870// the ability to pass a context and additional request options.
871//
872// See GetInsight for details on how to use this API operation.
873//
874// The context must be non-nil and will be used for request cancellation. If
875// the context is nil a panic will occur. In the future the SDK may create
876// sub-contexts for http.Requests. See https://golang.org/pkg/context/
877// for more information on using Contexts.
878func (c *XRay) GetInsightWithContext(ctx aws.Context, input *GetInsightInput, opts ...request.Option) (*GetInsightOutput, error) {
879	req, out := c.GetInsightRequest(input)
880	req.SetContext(ctx)
881	req.ApplyOptions(opts...)
882	return out, req.Send()
883}
884
885const opGetInsightEvents = "GetInsightEvents"
886
887// GetInsightEventsRequest generates a "aws/request.Request" representing the
888// client's request for the GetInsightEvents operation. The "output" return
889// value will be populated with the request's response once the request completes
890// successfully.
891//
892// Use "Send" method on the returned Request to send the API call to the service.
893// the "output" return value is not valid until after Send returns without error.
894//
895// See GetInsightEvents for more information on using the GetInsightEvents
896// API call, and error handling.
897//
898// This method is useful when you want to inject custom logic or configuration
899// into the SDK's request lifecycle. Such as custom headers, or retry logic.
900//
901//
902//    // Example sending a request using the GetInsightEventsRequest method.
903//    req, resp := client.GetInsightEventsRequest(params)
904//
905//    err := req.Send()
906//    if err == nil { // resp is now filled
907//        fmt.Println(resp)
908//    }
909//
910// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetInsightEvents
911func (c *XRay) GetInsightEventsRequest(input *GetInsightEventsInput) (req *request.Request, output *GetInsightEventsOutput) {
912	op := &request.Operation{
913		Name:       opGetInsightEvents,
914		HTTPMethod: "POST",
915		HTTPPath:   "/InsightEvents",
916		Paginator: &request.Paginator{
917			InputTokens:     []string{"NextToken"},
918			OutputTokens:    []string{"NextToken"},
919			LimitToken:      "MaxResults",
920			TruncationToken: "",
921		},
922	}
923
924	if input == nil {
925		input = &GetInsightEventsInput{}
926	}
927
928	output = &GetInsightEventsOutput{}
929	req = c.newRequest(op, input, output)
930	return
931}
932
933// GetInsightEvents API operation for AWS X-Ray.
934//
935// X-Ray reevaluates insights periodically until they're resolved, and records
936// each intermediate state as an event. You can review an insight's events in
937// the Impact Timeline on the Inspect page in the X-Ray console.
938//
939// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
940// with awserr.Error's Code and Message methods to get detailed information about
941// the error.
942//
943// See the AWS API reference guide for AWS X-Ray's
944// API operation GetInsightEvents for usage and error information.
945//
946// Returned Error Types:
947//   * InvalidRequestException
948//   The request is missing required parameters or has invalid parameters.
949//
950//   * ThrottledException
951//   The request exceeds the maximum number of requests per second.
952//
953// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetInsightEvents
954func (c *XRay) GetInsightEvents(input *GetInsightEventsInput) (*GetInsightEventsOutput, error) {
955	req, out := c.GetInsightEventsRequest(input)
956	return out, req.Send()
957}
958
959// GetInsightEventsWithContext is the same as GetInsightEvents with the addition of
960// the ability to pass a context and additional request options.
961//
962// See GetInsightEvents for details on how to use this API operation.
963//
964// The context must be non-nil and will be used for request cancellation. If
965// the context is nil a panic will occur. In the future the SDK may create
966// sub-contexts for http.Requests. See https://golang.org/pkg/context/
967// for more information on using Contexts.
968func (c *XRay) GetInsightEventsWithContext(ctx aws.Context, input *GetInsightEventsInput, opts ...request.Option) (*GetInsightEventsOutput, error) {
969	req, out := c.GetInsightEventsRequest(input)
970	req.SetContext(ctx)
971	req.ApplyOptions(opts...)
972	return out, req.Send()
973}
974
975// GetInsightEventsPages iterates over the pages of a GetInsightEvents operation,
976// calling the "fn" function with the response data for each page. To stop
977// iterating, return false from the fn function.
978//
979// See GetInsightEvents method for more information on how to use this operation.
980//
981// Note: This operation can generate multiple requests to a service.
982//
983//    // Example iterating over at most 3 pages of a GetInsightEvents operation.
984//    pageNum := 0
985//    err := client.GetInsightEventsPages(params,
986//        func(page *xray.GetInsightEventsOutput, lastPage bool) bool {
987//            pageNum++
988//            fmt.Println(page)
989//            return pageNum <= 3
990//        })
991//
992func (c *XRay) GetInsightEventsPages(input *GetInsightEventsInput, fn func(*GetInsightEventsOutput, bool) bool) error {
993	return c.GetInsightEventsPagesWithContext(aws.BackgroundContext(), input, fn)
994}
995
996// GetInsightEventsPagesWithContext same as GetInsightEventsPages except
997// it takes a Context and allows setting request options on the pages.
998//
999// The context must be non-nil and will be used for request cancellation. If
1000// the context is nil a panic will occur. In the future the SDK may create
1001// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1002// for more information on using Contexts.
1003func (c *XRay) GetInsightEventsPagesWithContext(ctx aws.Context, input *GetInsightEventsInput, fn func(*GetInsightEventsOutput, bool) bool, opts ...request.Option) error {
1004	p := request.Pagination{
1005		NewRequest: func() (*request.Request, error) {
1006			var inCpy *GetInsightEventsInput
1007			if input != nil {
1008				tmp := *input
1009				inCpy = &tmp
1010			}
1011			req, _ := c.GetInsightEventsRequest(inCpy)
1012			req.SetContext(ctx)
1013			req.ApplyOptions(opts...)
1014			return req, nil
1015		},
1016	}
1017
1018	for p.Next() {
1019		if !fn(p.Page().(*GetInsightEventsOutput), !p.HasNextPage()) {
1020			break
1021		}
1022	}
1023
1024	return p.Err()
1025}
1026
1027const opGetInsightImpactGraph = "GetInsightImpactGraph"
1028
1029// GetInsightImpactGraphRequest generates a "aws/request.Request" representing the
1030// client's request for the GetInsightImpactGraph operation. The "output" return
1031// value will be populated with the request's response once the request completes
1032// successfully.
1033//
1034// Use "Send" method on the returned Request to send the API call to the service.
1035// the "output" return value is not valid until after Send returns without error.
1036//
1037// See GetInsightImpactGraph for more information on using the GetInsightImpactGraph
1038// API call, and error handling.
1039//
1040// This method is useful when you want to inject custom logic or configuration
1041// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1042//
1043//
1044//    // Example sending a request using the GetInsightImpactGraphRequest method.
1045//    req, resp := client.GetInsightImpactGraphRequest(params)
1046//
1047//    err := req.Send()
1048//    if err == nil { // resp is now filled
1049//        fmt.Println(resp)
1050//    }
1051//
1052// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetInsightImpactGraph
1053func (c *XRay) GetInsightImpactGraphRequest(input *GetInsightImpactGraphInput) (req *request.Request, output *GetInsightImpactGraphOutput) {
1054	op := &request.Operation{
1055		Name:       opGetInsightImpactGraph,
1056		HTTPMethod: "POST",
1057		HTTPPath:   "/InsightImpactGraph",
1058	}
1059
1060	if input == nil {
1061		input = &GetInsightImpactGraphInput{}
1062	}
1063
1064	output = &GetInsightImpactGraphOutput{}
1065	req = c.newRequest(op, input, output)
1066	return
1067}
1068
1069// GetInsightImpactGraph API operation for AWS X-Ray.
1070//
1071// Retrieves a service graph structure filtered by the specified insight. The
1072// service graph is limited to only structural information. For a complete service
1073// graph, use this API with the GetServiceGraph API.
1074//
1075// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1076// with awserr.Error's Code and Message methods to get detailed information about
1077// the error.
1078//
1079// See the AWS API reference guide for AWS X-Ray's
1080// API operation GetInsightImpactGraph for usage and error information.
1081//
1082// Returned Error Types:
1083//   * InvalidRequestException
1084//   The request is missing required parameters or has invalid parameters.
1085//
1086//   * ThrottledException
1087//   The request exceeds the maximum number of requests per second.
1088//
1089// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetInsightImpactGraph
1090func (c *XRay) GetInsightImpactGraph(input *GetInsightImpactGraphInput) (*GetInsightImpactGraphOutput, error) {
1091	req, out := c.GetInsightImpactGraphRequest(input)
1092	return out, req.Send()
1093}
1094
1095// GetInsightImpactGraphWithContext is the same as GetInsightImpactGraph with the addition of
1096// the ability to pass a context and additional request options.
1097//
1098// See GetInsightImpactGraph for details on how to use this API operation.
1099//
1100// The context must be non-nil and will be used for request cancellation. If
1101// the context is nil a panic will occur. In the future the SDK may create
1102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1103// for more information on using Contexts.
1104func (c *XRay) GetInsightImpactGraphWithContext(ctx aws.Context, input *GetInsightImpactGraphInput, opts ...request.Option) (*GetInsightImpactGraphOutput, error) {
1105	req, out := c.GetInsightImpactGraphRequest(input)
1106	req.SetContext(ctx)
1107	req.ApplyOptions(opts...)
1108	return out, req.Send()
1109}
1110
1111const opGetInsightSummaries = "GetInsightSummaries"
1112
1113// GetInsightSummariesRequest generates a "aws/request.Request" representing the
1114// client's request for the GetInsightSummaries operation. The "output" return
1115// value will be populated with the request's response once the request completes
1116// successfully.
1117//
1118// Use "Send" method on the returned Request to send the API call to the service.
1119// the "output" return value is not valid until after Send returns without error.
1120//
1121// See GetInsightSummaries for more information on using the GetInsightSummaries
1122// API call, and error handling.
1123//
1124// This method is useful when you want to inject custom logic or configuration
1125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1126//
1127//
1128//    // Example sending a request using the GetInsightSummariesRequest method.
1129//    req, resp := client.GetInsightSummariesRequest(params)
1130//
1131//    err := req.Send()
1132//    if err == nil { // resp is now filled
1133//        fmt.Println(resp)
1134//    }
1135//
1136// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetInsightSummaries
1137func (c *XRay) GetInsightSummariesRequest(input *GetInsightSummariesInput) (req *request.Request, output *GetInsightSummariesOutput) {
1138	op := &request.Operation{
1139		Name:       opGetInsightSummaries,
1140		HTTPMethod: "POST",
1141		HTTPPath:   "/InsightSummaries",
1142		Paginator: &request.Paginator{
1143			InputTokens:     []string{"NextToken"},
1144			OutputTokens:    []string{"NextToken"},
1145			LimitToken:      "MaxResults",
1146			TruncationToken: "",
1147		},
1148	}
1149
1150	if input == nil {
1151		input = &GetInsightSummariesInput{}
1152	}
1153
1154	output = &GetInsightSummariesOutput{}
1155	req = c.newRequest(op, input, output)
1156	return
1157}
1158
1159// GetInsightSummaries API operation for AWS X-Ray.
1160//
1161// Retrieves the summaries of all insights in the specified group matching the
1162// provided filter values.
1163//
1164// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1165// with awserr.Error's Code and Message methods to get detailed information about
1166// the error.
1167//
1168// See the AWS API reference guide for AWS X-Ray's
1169// API operation GetInsightSummaries for usage and error information.
1170//
1171// Returned Error Types:
1172//   * InvalidRequestException
1173//   The request is missing required parameters or has invalid parameters.
1174//
1175//   * ThrottledException
1176//   The request exceeds the maximum number of requests per second.
1177//
1178// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetInsightSummaries
1179func (c *XRay) GetInsightSummaries(input *GetInsightSummariesInput) (*GetInsightSummariesOutput, error) {
1180	req, out := c.GetInsightSummariesRequest(input)
1181	return out, req.Send()
1182}
1183
1184// GetInsightSummariesWithContext is the same as GetInsightSummaries with the addition of
1185// the ability to pass a context and additional request options.
1186//
1187// See GetInsightSummaries for details on how to use this API operation.
1188//
1189// The context must be non-nil and will be used for request cancellation. If
1190// the context is nil a panic will occur. In the future the SDK may create
1191// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1192// for more information on using Contexts.
1193func (c *XRay) GetInsightSummariesWithContext(ctx aws.Context, input *GetInsightSummariesInput, opts ...request.Option) (*GetInsightSummariesOutput, error) {
1194	req, out := c.GetInsightSummariesRequest(input)
1195	req.SetContext(ctx)
1196	req.ApplyOptions(opts...)
1197	return out, req.Send()
1198}
1199
1200// GetInsightSummariesPages iterates over the pages of a GetInsightSummaries operation,
1201// calling the "fn" function with the response data for each page. To stop
1202// iterating, return false from the fn function.
1203//
1204// See GetInsightSummaries method for more information on how to use this operation.
1205//
1206// Note: This operation can generate multiple requests to a service.
1207//
1208//    // Example iterating over at most 3 pages of a GetInsightSummaries operation.
1209//    pageNum := 0
1210//    err := client.GetInsightSummariesPages(params,
1211//        func(page *xray.GetInsightSummariesOutput, lastPage bool) bool {
1212//            pageNum++
1213//            fmt.Println(page)
1214//            return pageNum <= 3
1215//        })
1216//
1217func (c *XRay) GetInsightSummariesPages(input *GetInsightSummariesInput, fn func(*GetInsightSummariesOutput, bool) bool) error {
1218	return c.GetInsightSummariesPagesWithContext(aws.BackgroundContext(), input, fn)
1219}
1220
1221// GetInsightSummariesPagesWithContext same as GetInsightSummariesPages except
1222// it takes a Context and allows setting request options on the pages.
1223//
1224// The context must be non-nil and will be used for request cancellation. If
1225// the context is nil a panic will occur. In the future the SDK may create
1226// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1227// for more information on using Contexts.
1228func (c *XRay) GetInsightSummariesPagesWithContext(ctx aws.Context, input *GetInsightSummariesInput, fn func(*GetInsightSummariesOutput, bool) bool, opts ...request.Option) error {
1229	p := request.Pagination{
1230		NewRequest: func() (*request.Request, error) {
1231			var inCpy *GetInsightSummariesInput
1232			if input != nil {
1233				tmp := *input
1234				inCpy = &tmp
1235			}
1236			req, _ := c.GetInsightSummariesRequest(inCpy)
1237			req.SetContext(ctx)
1238			req.ApplyOptions(opts...)
1239			return req, nil
1240		},
1241	}
1242
1243	for p.Next() {
1244		if !fn(p.Page().(*GetInsightSummariesOutput), !p.HasNextPage()) {
1245			break
1246		}
1247	}
1248
1249	return p.Err()
1250}
1251
1252const opGetSamplingRules = "GetSamplingRules"
1253
1254// GetSamplingRulesRequest generates a "aws/request.Request" representing the
1255// client's request for the GetSamplingRules operation. The "output" return
1256// value will be populated with the request's response once the request completes
1257// successfully.
1258//
1259// Use "Send" method on the returned Request to send the API call to the service.
1260// the "output" return value is not valid until after Send returns without error.
1261//
1262// See GetSamplingRules for more information on using the GetSamplingRules
1263// API call, and error handling.
1264//
1265// This method is useful when you want to inject custom logic or configuration
1266// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1267//
1268//
1269//    // Example sending a request using the GetSamplingRulesRequest method.
1270//    req, resp := client.GetSamplingRulesRequest(params)
1271//
1272//    err := req.Send()
1273//    if err == nil { // resp is now filled
1274//        fmt.Println(resp)
1275//    }
1276//
1277// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetSamplingRules
1278func (c *XRay) GetSamplingRulesRequest(input *GetSamplingRulesInput) (req *request.Request, output *GetSamplingRulesOutput) {
1279	op := &request.Operation{
1280		Name:       opGetSamplingRules,
1281		HTTPMethod: "POST",
1282		HTTPPath:   "/GetSamplingRules",
1283		Paginator: &request.Paginator{
1284			InputTokens:     []string{"NextToken"},
1285			OutputTokens:    []string{"NextToken"},
1286			LimitToken:      "",
1287			TruncationToken: "",
1288		},
1289	}
1290
1291	if input == nil {
1292		input = &GetSamplingRulesInput{}
1293	}
1294
1295	output = &GetSamplingRulesOutput{}
1296	req = c.newRequest(op, input, output)
1297	return
1298}
1299
1300// GetSamplingRules API operation for AWS X-Ray.
1301//
1302// Retrieves all sampling rules.
1303//
1304// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1305// with awserr.Error's Code and Message methods to get detailed information about
1306// the error.
1307//
1308// See the AWS API reference guide for AWS X-Ray's
1309// API operation GetSamplingRules for usage and error information.
1310//
1311// Returned Error Types:
1312//   * InvalidRequestException
1313//   The request is missing required parameters or has invalid parameters.
1314//
1315//   * ThrottledException
1316//   The request exceeds the maximum number of requests per second.
1317//
1318// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetSamplingRules
1319func (c *XRay) GetSamplingRules(input *GetSamplingRulesInput) (*GetSamplingRulesOutput, error) {
1320	req, out := c.GetSamplingRulesRequest(input)
1321	return out, req.Send()
1322}
1323
1324// GetSamplingRulesWithContext is the same as GetSamplingRules with the addition of
1325// the ability to pass a context and additional request options.
1326//
1327// See GetSamplingRules for details on how to use this API operation.
1328//
1329// The context must be non-nil and will be used for request cancellation. If
1330// the context is nil a panic will occur. In the future the SDK may create
1331// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1332// for more information on using Contexts.
1333func (c *XRay) GetSamplingRulesWithContext(ctx aws.Context, input *GetSamplingRulesInput, opts ...request.Option) (*GetSamplingRulesOutput, error) {
1334	req, out := c.GetSamplingRulesRequest(input)
1335	req.SetContext(ctx)
1336	req.ApplyOptions(opts...)
1337	return out, req.Send()
1338}
1339
1340// GetSamplingRulesPages iterates over the pages of a GetSamplingRules operation,
1341// calling the "fn" function with the response data for each page. To stop
1342// iterating, return false from the fn function.
1343//
1344// See GetSamplingRules method for more information on how to use this operation.
1345//
1346// Note: This operation can generate multiple requests to a service.
1347//
1348//    // Example iterating over at most 3 pages of a GetSamplingRules operation.
1349//    pageNum := 0
1350//    err := client.GetSamplingRulesPages(params,
1351//        func(page *xray.GetSamplingRulesOutput, lastPage bool) bool {
1352//            pageNum++
1353//            fmt.Println(page)
1354//            return pageNum <= 3
1355//        })
1356//
1357func (c *XRay) GetSamplingRulesPages(input *GetSamplingRulesInput, fn func(*GetSamplingRulesOutput, bool) bool) error {
1358	return c.GetSamplingRulesPagesWithContext(aws.BackgroundContext(), input, fn)
1359}
1360
1361// GetSamplingRulesPagesWithContext same as GetSamplingRulesPages except
1362// it takes a Context and allows setting request options on the pages.
1363//
1364// The context must be non-nil and will be used for request cancellation. If
1365// the context is nil a panic will occur. In the future the SDK may create
1366// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1367// for more information on using Contexts.
1368func (c *XRay) GetSamplingRulesPagesWithContext(ctx aws.Context, input *GetSamplingRulesInput, fn func(*GetSamplingRulesOutput, bool) bool, opts ...request.Option) error {
1369	p := request.Pagination{
1370		NewRequest: func() (*request.Request, error) {
1371			var inCpy *GetSamplingRulesInput
1372			if input != nil {
1373				tmp := *input
1374				inCpy = &tmp
1375			}
1376			req, _ := c.GetSamplingRulesRequest(inCpy)
1377			req.SetContext(ctx)
1378			req.ApplyOptions(opts...)
1379			return req, nil
1380		},
1381	}
1382
1383	for p.Next() {
1384		if !fn(p.Page().(*GetSamplingRulesOutput), !p.HasNextPage()) {
1385			break
1386		}
1387	}
1388
1389	return p.Err()
1390}
1391
1392const opGetSamplingStatisticSummaries = "GetSamplingStatisticSummaries"
1393
1394// GetSamplingStatisticSummariesRequest generates a "aws/request.Request" representing the
1395// client's request for the GetSamplingStatisticSummaries operation. The "output" return
1396// value will be populated with the request's response once the request completes
1397// successfully.
1398//
1399// Use "Send" method on the returned Request to send the API call to the service.
1400// the "output" return value is not valid until after Send returns without error.
1401//
1402// See GetSamplingStatisticSummaries for more information on using the GetSamplingStatisticSummaries
1403// API call, and error handling.
1404//
1405// This method is useful when you want to inject custom logic or configuration
1406// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1407//
1408//
1409//    // Example sending a request using the GetSamplingStatisticSummariesRequest method.
1410//    req, resp := client.GetSamplingStatisticSummariesRequest(params)
1411//
1412//    err := req.Send()
1413//    if err == nil { // resp is now filled
1414//        fmt.Println(resp)
1415//    }
1416//
1417// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetSamplingStatisticSummaries
1418func (c *XRay) GetSamplingStatisticSummariesRequest(input *GetSamplingStatisticSummariesInput) (req *request.Request, output *GetSamplingStatisticSummariesOutput) {
1419	op := &request.Operation{
1420		Name:       opGetSamplingStatisticSummaries,
1421		HTTPMethod: "POST",
1422		HTTPPath:   "/SamplingStatisticSummaries",
1423		Paginator: &request.Paginator{
1424			InputTokens:     []string{"NextToken"},
1425			OutputTokens:    []string{"NextToken"},
1426			LimitToken:      "",
1427			TruncationToken: "",
1428		},
1429	}
1430
1431	if input == nil {
1432		input = &GetSamplingStatisticSummariesInput{}
1433	}
1434
1435	output = &GetSamplingStatisticSummariesOutput{}
1436	req = c.newRequest(op, input, output)
1437	return
1438}
1439
1440// GetSamplingStatisticSummaries API operation for AWS X-Ray.
1441//
1442// Retrieves information about recent sampling results for all sampling rules.
1443//
1444// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1445// with awserr.Error's Code and Message methods to get detailed information about
1446// the error.
1447//
1448// See the AWS API reference guide for AWS X-Ray's
1449// API operation GetSamplingStatisticSummaries for usage and error information.
1450//
1451// Returned Error Types:
1452//   * InvalidRequestException
1453//   The request is missing required parameters or has invalid parameters.
1454//
1455//   * ThrottledException
1456//   The request exceeds the maximum number of requests per second.
1457//
1458// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetSamplingStatisticSummaries
1459func (c *XRay) GetSamplingStatisticSummaries(input *GetSamplingStatisticSummariesInput) (*GetSamplingStatisticSummariesOutput, error) {
1460	req, out := c.GetSamplingStatisticSummariesRequest(input)
1461	return out, req.Send()
1462}
1463
1464// GetSamplingStatisticSummariesWithContext is the same as GetSamplingStatisticSummaries with the addition of
1465// the ability to pass a context and additional request options.
1466//
1467// See GetSamplingStatisticSummaries for details on how to use this API operation.
1468//
1469// The context must be non-nil and will be used for request cancellation. If
1470// the context is nil a panic will occur. In the future the SDK may create
1471// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1472// for more information on using Contexts.
1473func (c *XRay) GetSamplingStatisticSummariesWithContext(ctx aws.Context, input *GetSamplingStatisticSummariesInput, opts ...request.Option) (*GetSamplingStatisticSummariesOutput, error) {
1474	req, out := c.GetSamplingStatisticSummariesRequest(input)
1475	req.SetContext(ctx)
1476	req.ApplyOptions(opts...)
1477	return out, req.Send()
1478}
1479
1480// GetSamplingStatisticSummariesPages iterates over the pages of a GetSamplingStatisticSummaries operation,
1481// calling the "fn" function with the response data for each page. To stop
1482// iterating, return false from the fn function.
1483//
1484// See GetSamplingStatisticSummaries method for more information on how to use this operation.
1485//
1486// Note: This operation can generate multiple requests to a service.
1487//
1488//    // Example iterating over at most 3 pages of a GetSamplingStatisticSummaries operation.
1489//    pageNum := 0
1490//    err := client.GetSamplingStatisticSummariesPages(params,
1491//        func(page *xray.GetSamplingStatisticSummariesOutput, lastPage bool) bool {
1492//            pageNum++
1493//            fmt.Println(page)
1494//            return pageNum <= 3
1495//        })
1496//
1497func (c *XRay) GetSamplingStatisticSummariesPages(input *GetSamplingStatisticSummariesInput, fn func(*GetSamplingStatisticSummariesOutput, bool) bool) error {
1498	return c.GetSamplingStatisticSummariesPagesWithContext(aws.BackgroundContext(), input, fn)
1499}
1500
1501// GetSamplingStatisticSummariesPagesWithContext same as GetSamplingStatisticSummariesPages except
1502// it takes a Context and allows setting request options on the pages.
1503//
1504// The context must be non-nil and will be used for request cancellation. If
1505// the context is nil a panic will occur. In the future the SDK may create
1506// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1507// for more information on using Contexts.
1508func (c *XRay) GetSamplingStatisticSummariesPagesWithContext(ctx aws.Context, input *GetSamplingStatisticSummariesInput, fn func(*GetSamplingStatisticSummariesOutput, bool) bool, opts ...request.Option) error {
1509	p := request.Pagination{
1510		NewRequest: func() (*request.Request, error) {
1511			var inCpy *GetSamplingStatisticSummariesInput
1512			if input != nil {
1513				tmp := *input
1514				inCpy = &tmp
1515			}
1516			req, _ := c.GetSamplingStatisticSummariesRequest(inCpy)
1517			req.SetContext(ctx)
1518			req.ApplyOptions(opts...)
1519			return req, nil
1520		},
1521	}
1522
1523	for p.Next() {
1524		if !fn(p.Page().(*GetSamplingStatisticSummariesOutput), !p.HasNextPage()) {
1525			break
1526		}
1527	}
1528
1529	return p.Err()
1530}
1531
1532const opGetSamplingTargets = "GetSamplingTargets"
1533
1534// GetSamplingTargetsRequest generates a "aws/request.Request" representing the
1535// client's request for the GetSamplingTargets operation. The "output" return
1536// value will be populated with the request's response once the request completes
1537// successfully.
1538//
1539// Use "Send" method on the returned Request to send the API call to the service.
1540// the "output" return value is not valid until after Send returns without error.
1541//
1542// See GetSamplingTargets for more information on using the GetSamplingTargets
1543// API call, and error handling.
1544//
1545// This method is useful when you want to inject custom logic or configuration
1546// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1547//
1548//
1549//    // Example sending a request using the GetSamplingTargetsRequest method.
1550//    req, resp := client.GetSamplingTargetsRequest(params)
1551//
1552//    err := req.Send()
1553//    if err == nil { // resp is now filled
1554//        fmt.Println(resp)
1555//    }
1556//
1557// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetSamplingTargets
1558func (c *XRay) GetSamplingTargetsRequest(input *GetSamplingTargetsInput) (req *request.Request, output *GetSamplingTargetsOutput) {
1559	op := &request.Operation{
1560		Name:       opGetSamplingTargets,
1561		HTTPMethod: "POST",
1562		HTTPPath:   "/SamplingTargets",
1563	}
1564
1565	if input == nil {
1566		input = &GetSamplingTargetsInput{}
1567	}
1568
1569	output = &GetSamplingTargetsOutput{}
1570	req = c.newRequest(op, input, output)
1571	return
1572}
1573
1574// GetSamplingTargets API operation for AWS X-Ray.
1575//
1576// Requests a sampling quota for rules that the service is using to sample requests.
1577//
1578// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1579// with awserr.Error's Code and Message methods to get detailed information about
1580// the error.
1581//
1582// See the AWS API reference guide for AWS X-Ray's
1583// API operation GetSamplingTargets for usage and error information.
1584//
1585// Returned Error Types:
1586//   * InvalidRequestException
1587//   The request is missing required parameters or has invalid parameters.
1588//
1589//   * ThrottledException
1590//   The request exceeds the maximum number of requests per second.
1591//
1592// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetSamplingTargets
1593func (c *XRay) GetSamplingTargets(input *GetSamplingTargetsInput) (*GetSamplingTargetsOutput, error) {
1594	req, out := c.GetSamplingTargetsRequest(input)
1595	return out, req.Send()
1596}
1597
1598// GetSamplingTargetsWithContext is the same as GetSamplingTargets with the addition of
1599// the ability to pass a context and additional request options.
1600//
1601// See GetSamplingTargets for details on how to use this API operation.
1602//
1603// The context must be non-nil and will be used for request cancellation. If
1604// the context is nil a panic will occur. In the future the SDK may create
1605// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1606// for more information on using Contexts.
1607func (c *XRay) GetSamplingTargetsWithContext(ctx aws.Context, input *GetSamplingTargetsInput, opts ...request.Option) (*GetSamplingTargetsOutput, error) {
1608	req, out := c.GetSamplingTargetsRequest(input)
1609	req.SetContext(ctx)
1610	req.ApplyOptions(opts...)
1611	return out, req.Send()
1612}
1613
1614const opGetServiceGraph = "GetServiceGraph"
1615
1616// GetServiceGraphRequest generates a "aws/request.Request" representing the
1617// client's request for the GetServiceGraph operation. The "output" return
1618// value will be populated with the request's response once the request completes
1619// successfully.
1620//
1621// Use "Send" method on the returned Request to send the API call to the service.
1622// the "output" return value is not valid until after Send returns without error.
1623//
1624// See GetServiceGraph for more information on using the GetServiceGraph
1625// API call, and error handling.
1626//
1627// This method is useful when you want to inject custom logic or configuration
1628// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1629//
1630//
1631//    // Example sending a request using the GetServiceGraphRequest method.
1632//    req, resp := client.GetServiceGraphRequest(params)
1633//
1634//    err := req.Send()
1635//    if err == nil { // resp is now filled
1636//        fmt.Println(resp)
1637//    }
1638//
1639// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetServiceGraph
1640func (c *XRay) GetServiceGraphRequest(input *GetServiceGraphInput) (req *request.Request, output *GetServiceGraphOutput) {
1641	op := &request.Operation{
1642		Name:       opGetServiceGraph,
1643		HTTPMethod: "POST",
1644		HTTPPath:   "/ServiceGraph",
1645		Paginator: &request.Paginator{
1646			InputTokens:     []string{"NextToken"},
1647			OutputTokens:    []string{"NextToken"},
1648			LimitToken:      "",
1649			TruncationToken: "",
1650		},
1651	}
1652
1653	if input == nil {
1654		input = &GetServiceGraphInput{}
1655	}
1656
1657	output = &GetServiceGraphOutput{}
1658	req = c.newRequest(op, input, output)
1659	return
1660}
1661
1662// GetServiceGraph API operation for AWS X-Ray.
1663//
1664// Retrieves a document that describes services that process incoming requests,
1665// and downstream services that they call as a result. Root services process
1666// incoming requests and make calls to downstream services. Root services are
1667// applications that use the Amazon Web Services X-Ray SDK (https://docs.aws.amazon.com/xray/index.html).
1668// Downstream services can be other applications, Amazon Web Services resources,
1669// HTTP web APIs, or SQL databases.
1670//
1671// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1672// with awserr.Error's Code and Message methods to get detailed information about
1673// the error.
1674//
1675// See the AWS API reference guide for AWS X-Ray's
1676// API operation GetServiceGraph for usage and error information.
1677//
1678// Returned Error Types:
1679//   * InvalidRequestException
1680//   The request is missing required parameters or has invalid parameters.
1681//
1682//   * ThrottledException
1683//   The request exceeds the maximum number of requests per second.
1684//
1685// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetServiceGraph
1686func (c *XRay) GetServiceGraph(input *GetServiceGraphInput) (*GetServiceGraphOutput, error) {
1687	req, out := c.GetServiceGraphRequest(input)
1688	return out, req.Send()
1689}
1690
1691// GetServiceGraphWithContext is the same as GetServiceGraph with the addition of
1692// the ability to pass a context and additional request options.
1693//
1694// See GetServiceGraph for details on how to use this API operation.
1695//
1696// The context must be non-nil and will be used for request cancellation. If
1697// the context is nil a panic will occur. In the future the SDK may create
1698// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1699// for more information on using Contexts.
1700func (c *XRay) GetServiceGraphWithContext(ctx aws.Context, input *GetServiceGraphInput, opts ...request.Option) (*GetServiceGraphOutput, error) {
1701	req, out := c.GetServiceGraphRequest(input)
1702	req.SetContext(ctx)
1703	req.ApplyOptions(opts...)
1704	return out, req.Send()
1705}
1706
1707// GetServiceGraphPages iterates over the pages of a GetServiceGraph operation,
1708// calling the "fn" function with the response data for each page. To stop
1709// iterating, return false from the fn function.
1710//
1711// See GetServiceGraph method for more information on how to use this operation.
1712//
1713// Note: This operation can generate multiple requests to a service.
1714//
1715//    // Example iterating over at most 3 pages of a GetServiceGraph operation.
1716//    pageNum := 0
1717//    err := client.GetServiceGraphPages(params,
1718//        func(page *xray.GetServiceGraphOutput, lastPage bool) bool {
1719//            pageNum++
1720//            fmt.Println(page)
1721//            return pageNum <= 3
1722//        })
1723//
1724func (c *XRay) GetServiceGraphPages(input *GetServiceGraphInput, fn func(*GetServiceGraphOutput, bool) bool) error {
1725	return c.GetServiceGraphPagesWithContext(aws.BackgroundContext(), input, fn)
1726}
1727
1728// GetServiceGraphPagesWithContext same as GetServiceGraphPages except
1729// it takes a Context and allows setting request options on the pages.
1730//
1731// The context must be non-nil and will be used for request cancellation. If
1732// the context is nil a panic will occur. In the future the SDK may create
1733// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1734// for more information on using Contexts.
1735func (c *XRay) GetServiceGraphPagesWithContext(ctx aws.Context, input *GetServiceGraphInput, fn func(*GetServiceGraphOutput, bool) bool, opts ...request.Option) error {
1736	p := request.Pagination{
1737		NewRequest: func() (*request.Request, error) {
1738			var inCpy *GetServiceGraphInput
1739			if input != nil {
1740				tmp := *input
1741				inCpy = &tmp
1742			}
1743			req, _ := c.GetServiceGraphRequest(inCpy)
1744			req.SetContext(ctx)
1745			req.ApplyOptions(opts...)
1746			return req, nil
1747		},
1748	}
1749
1750	for p.Next() {
1751		if !fn(p.Page().(*GetServiceGraphOutput), !p.HasNextPage()) {
1752			break
1753		}
1754	}
1755
1756	return p.Err()
1757}
1758
1759const opGetTimeSeriesServiceStatistics = "GetTimeSeriesServiceStatistics"
1760
1761// GetTimeSeriesServiceStatisticsRequest generates a "aws/request.Request" representing the
1762// client's request for the GetTimeSeriesServiceStatistics operation. The "output" return
1763// value will be populated with the request's response once the request completes
1764// successfully.
1765//
1766// Use "Send" method on the returned Request to send the API call to the service.
1767// the "output" return value is not valid until after Send returns without error.
1768//
1769// See GetTimeSeriesServiceStatistics for more information on using the GetTimeSeriesServiceStatistics
1770// API call, and error handling.
1771//
1772// This method is useful when you want to inject custom logic or configuration
1773// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1774//
1775//
1776//    // Example sending a request using the GetTimeSeriesServiceStatisticsRequest method.
1777//    req, resp := client.GetTimeSeriesServiceStatisticsRequest(params)
1778//
1779//    err := req.Send()
1780//    if err == nil { // resp is now filled
1781//        fmt.Println(resp)
1782//    }
1783//
1784// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetTimeSeriesServiceStatistics
1785func (c *XRay) GetTimeSeriesServiceStatisticsRequest(input *GetTimeSeriesServiceStatisticsInput) (req *request.Request, output *GetTimeSeriesServiceStatisticsOutput) {
1786	op := &request.Operation{
1787		Name:       opGetTimeSeriesServiceStatistics,
1788		HTTPMethod: "POST",
1789		HTTPPath:   "/TimeSeriesServiceStatistics",
1790		Paginator: &request.Paginator{
1791			InputTokens:     []string{"NextToken"},
1792			OutputTokens:    []string{"NextToken"},
1793			LimitToken:      "",
1794			TruncationToken: "",
1795		},
1796	}
1797
1798	if input == nil {
1799		input = &GetTimeSeriesServiceStatisticsInput{}
1800	}
1801
1802	output = &GetTimeSeriesServiceStatisticsOutput{}
1803	req = c.newRequest(op, input, output)
1804	return
1805}
1806
1807// GetTimeSeriesServiceStatistics API operation for AWS X-Ray.
1808//
1809// Get an aggregation of service statistics defined by a specific time range.
1810//
1811// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1812// with awserr.Error's Code and Message methods to get detailed information about
1813// the error.
1814//
1815// See the AWS API reference guide for AWS X-Ray's
1816// API operation GetTimeSeriesServiceStatistics for usage and error information.
1817//
1818// Returned Error Types:
1819//   * InvalidRequestException
1820//   The request is missing required parameters or has invalid parameters.
1821//
1822//   * ThrottledException
1823//   The request exceeds the maximum number of requests per second.
1824//
1825// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetTimeSeriesServiceStatistics
1826func (c *XRay) GetTimeSeriesServiceStatistics(input *GetTimeSeriesServiceStatisticsInput) (*GetTimeSeriesServiceStatisticsOutput, error) {
1827	req, out := c.GetTimeSeriesServiceStatisticsRequest(input)
1828	return out, req.Send()
1829}
1830
1831// GetTimeSeriesServiceStatisticsWithContext is the same as GetTimeSeriesServiceStatistics with the addition of
1832// the ability to pass a context and additional request options.
1833//
1834// See GetTimeSeriesServiceStatistics for details on how to use this API operation.
1835//
1836// The context must be non-nil and will be used for request cancellation. If
1837// the context is nil a panic will occur. In the future the SDK may create
1838// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1839// for more information on using Contexts.
1840func (c *XRay) GetTimeSeriesServiceStatisticsWithContext(ctx aws.Context, input *GetTimeSeriesServiceStatisticsInput, opts ...request.Option) (*GetTimeSeriesServiceStatisticsOutput, error) {
1841	req, out := c.GetTimeSeriesServiceStatisticsRequest(input)
1842	req.SetContext(ctx)
1843	req.ApplyOptions(opts...)
1844	return out, req.Send()
1845}
1846
1847// GetTimeSeriesServiceStatisticsPages iterates over the pages of a GetTimeSeriesServiceStatistics operation,
1848// calling the "fn" function with the response data for each page. To stop
1849// iterating, return false from the fn function.
1850//
1851// See GetTimeSeriesServiceStatistics method for more information on how to use this operation.
1852//
1853// Note: This operation can generate multiple requests to a service.
1854//
1855//    // Example iterating over at most 3 pages of a GetTimeSeriesServiceStatistics operation.
1856//    pageNum := 0
1857//    err := client.GetTimeSeriesServiceStatisticsPages(params,
1858//        func(page *xray.GetTimeSeriesServiceStatisticsOutput, lastPage bool) bool {
1859//            pageNum++
1860//            fmt.Println(page)
1861//            return pageNum <= 3
1862//        })
1863//
1864func (c *XRay) GetTimeSeriesServiceStatisticsPages(input *GetTimeSeriesServiceStatisticsInput, fn func(*GetTimeSeriesServiceStatisticsOutput, bool) bool) error {
1865	return c.GetTimeSeriesServiceStatisticsPagesWithContext(aws.BackgroundContext(), input, fn)
1866}
1867
1868// GetTimeSeriesServiceStatisticsPagesWithContext same as GetTimeSeriesServiceStatisticsPages except
1869// it takes a Context and allows setting request options on the pages.
1870//
1871// The context must be non-nil and will be used for request cancellation. If
1872// the context is nil a panic will occur. In the future the SDK may create
1873// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1874// for more information on using Contexts.
1875func (c *XRay) GetTimeSeriesServiceStatisticsPagesWithContext(ctx aws.Context, input *GetTimeSeriesServiceStatisticsInput, fn func(*GetTimeSeriesServiceStatisticsOutput, bool) bool, opts ...request.Option) error {
1876	p := request.Pagination{
1877		NewRequest: func() (*request.Request, error) {
1878			var inCpy *GetTimeSeriesServiceStatisticsInput
1879			if input != nil {
1880				tmp := *input
1881				inCpy = &tmp
1882			}
1883			req, _ := c.GetTimeSeriesServiceStatisticsRequest(inCpy)
1884			req.SetContext(ctx)
1885			req.ApplyOptions(opts...)
1886			return req, nil
1887		},
1888	}
1889
1890	for p.Next() {
1891		if !fn(p.Page().(*GetTimeSeriesServiceStatisticsOutput), !p.HasNextPage()) {
1892			break
1893		}
1894	}
1895
1896	return p.Err()
1897}
1898
1899const opGetTraceGraph = "GetTraceGraph"
1900
1901// GetTraceGraphRequest generates a "aws/request.Request" representing the
1902// client's request for the GetTraceGraph operation. The "output" return
1903// value will be populated with the request's response once the request completes
1904// successfully.
1905//
1906// Use "Send" method on the returned Request to send the API call to the service.
1907// the "output" return value is not valid until after Send returns without error.
1908//
1909// See GetTraceGraph for more information on using the GetTraceGraph
1910// API call, and error handling.
1911//
1912// This method is useful when you want to inject custom logic or configuration
1913// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1914//
1915//
1916//    // Example sending a request using the GetTraceGraphRequest method.
1917//    req, resp := client.GetTraceGraphRequest(params)
1918//
1919//    err := req.Send()
1920//    if err == nil { // resp is now filled
1921//        fmt.Println(resp)
1922//    }
1923//
1924// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetTraceGraph
1925func (c *XRay) GetTraceGraphRequest(input *GetTraceGraphInput) (req *request.Request, output *GetTraceGraphOutput) {
1926	op := &request.Operation{
1927		Name:       opGetTraceGraph,
1928		HTTPMethod: "POST",
1929		HTTPPath:   "/TraceGraph",
1930		Paginator: &request.Paginator{
1931			InputTokens:     []string{"NextToken"},
1932			OutputTokens:    []string{"NextToken"},
1933			LimitToken:      "",
1934			TruncationToken: "",
1935		},
1936	}
1937
1938	if input == nil {
1939		input = &GetTraceGraphInput{}
1940	}
1941
1942	output = &GetTraceGraphOutput{}
1943	req = c.newRequest(op, input, output)
1944	return
1945}
1946
1947// GetTraceGraph API operation for AWS X-Ray.
1948//
1949// Retrieves a service graph for one or more specific trace IDs.
1950//
1951// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1952// with awserr.Error's Code and Message methods to get detailed information about
1953// the error.
1954//
1955// See the AWS API reference guide for AWS X-Ray's
1956// API operation GetTraceGraph for usage and error information.
1957//
1958// Returned Error Types:
1959//   * InvalidRequestException
1960//   The request is missing required parameters or has invalid parameters.
1961//
1962//   * ThrottledException
1963//   The request exceeds the maximum number of requests per second.
1964//
1965// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetTraceGraph
1966func (c *XRay) GetTraceGraph(input *GetTraceGraphInput) (*GetTraceGraphOutput, error) {
1967	req, out := c.GetTraceGraphRequest(input)
1968	return out, req.Send()
1969}
1970
1971// GetTraceGraphWithContext is the same as GetTraceGraph with the addition of
1972// the ability to pass a context and additional request options.
1973//
1974// See GetTraceGraph for details on how to use this API operation.
1975//
1976// The context must be non-nil and will be used for request cancellation. If
1977// the context is nil a panic will occur. In the future the SDK may create
1978// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1979// for more information on using Contexts.
1980func (c *XRay) GetTraceGraphWithContext(ctx aws.Context, input *GetTraceGraphInput, opts ...request.Option) (*GetTraceGraphOutput, error) {
1981	req, out := c.GetTraceGraphRequest(input)
1982	req.SetContext(ctx)
1983	req.ApplyOptions(opts...)
1984	return out, req.Send()
1985}
1986
1987// GetTraceGraphPages iterates over the pages of a GetTraceGraph operation,
1988// calling the "fn" function with the response data for each page. To stop
1989// iterating, return false from the fn function.
1990//
1991// See GetTraceGraph method for more information on how to use this operation.
1992//
1993// Note: This operation can generate multiple requests to a service.
1994//
1995//    // Example iterating over at most 3 pages of a GetTraceGraph operation.
1996//    pageNum := 0
1997//    err := client.GetTraceGraphPages(params,
1998//        func(page *xray.GetTraceGraphOutput, lastPage bool) bool {
1999//            pageNum++
2000//            fmt.Println(page)
2001//            return pageNum <= 3
2002//        })
2003//
2004func (c *XRay) GetTraceGraphPages(input *GetTraceGraphInput, fn func(*GetTraceGraphOutput, bool) bool) error {
2005	return c.GetTraceGraphPagesWithContext(aws.BackgroundContext(), input, fn)
2006}
2007
2008// GetTraceGraphPagesWithContext same as GetTraceGraphPages except
2009// it takes a Context and allows setting request options on the pages.
2010//
2011// The context must be non-nil and will be used for request cancellation. If
2012// the context is nil a panic will occur. In the future the SDK may create
2013// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2014// for more information on using Contexts.
2015func (c *XRay) GetTraceGraphPagesWithContext(ctx aws.Context, input *GetTraceGraphInput, fn func(*GetTraceGraphOutput, bool) bool, opts ...request.Option) error {
2016	p := request.Pagination{
2017		NewRequest: func() (*request.Request, error) {
2018			var inCpy *GetTraceGraphInput
2019			if input != nil {
2020				tmp := *input
2021				inCpy = &tmp
2022			}
2023			req, _ := c.GetTraceGraphRequest(inCpy)
2024			req.SetContext(ctx)
2025			req.ApplyOptions(opts...)
2026			return req, nil
2027		},
2028	}
2029
2030	for p.Next() {
2031		if !fn(p.Page().(*GetTraceGraphOutput), !p.HasNextPage()) {
2032			break
2033		}
2034	}
2035
2036	return p.Err()
2037}
2038
2039const opGetTraceSummaries = "GetTraceSummaries"
2040
2041// GetTraceSummariesRequest generates a "aws/request.Request" representing the
2042// client's request for the GetTraceSummaries operation. The "output" return
2043// value will be populated with the request's response once the request completes
2044// successfully.
2045//
2046// Use "Send" method on the returned Request to send the API call to the service.
2047// the "output" return value is not valid until after Send returns without error.
2048//
2049// See GetTraceSummaries for more information on using the GetTraceSummaries
2050// API call, and error handling.
2051//
2052// This method is useful when you want to inject custom logic or configuration
2053// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2054//
2055//
2056//    // Example sending a request using the GetTraceSummariesRequest method.
2057//    req, resp := client.GetTraceSummariesRequest(params)
2058//
2059//    err := req.Send()
2060//    if err == nil { // resp is now filled
2061//        fmt.Println(resp)
2062//    }
2063//
2064// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetTraceSummaries
2065func (c *XRay) GetTraceSummariesRequest(input *GetTraceSummariesInput) (req *request.Request, output *GetTraceSummariesOutput) {
2066	op := &request.Operation{
2067		Name:       opGetTraceSummaries,
2068		HTTPMethod: "POST",
2069		HTTPPath:   "/TraceSummaries",
2070		Paginator: &request.Paginator{
2071			InputTokens:     []string{"NextToken"},
2072			OutputTokens:    []string{"NextToken"},
2073			LimitToken:      "",
2074			TruncationToken: "",
2075		},
2076	}
2077
2078	if input == nil {
2079		input = &GetTraceSummariesInput{}
2080	}
2081
2082	output = &GetTraceSummariesOutput{}
2083	req = c.newRequest(op, input, output)
2084	return
2085}
2086
2087// GetTraceSummaries API operation for AWS X-Ray.
2088//
2089// Retrieves IDs and annotations for traces available for a specified time frame
2090// using an optional filter. To get the full traces, pass the trace IDs to BatchGetTraces.
2091//
2092// A filter expression can target traced requests that hit specific service
2093// nodes or edges, have errors, or come from a known user. For example, the
2094// following filter expression targets traces that pass through api.example.com:
2095//
2096// service("api.example.com")
2097//
2098// This filter expression finds traces that have an annotation named account
2099// with the value 12345:
2100//
2101// annotation.account = "12345"
2102//
2103// For a full list of indexed fields and keywords that you can use in filter
2104// expressions, see Using Filter Expressions (https://docs.aws.amazon.com/xray/latest/devguide/xray-console-filters.html)
2105// in the Amazon Web Services X-Ray Developer Guide.
2106//
2107// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2108// with awserr.Error's Code and Message methods to get detailed information about
2109// the error.
2110//
2111// See the AWS API reference guide for AWS X-Ray's
2112// API operation GetTraceSummaries for usage and error information.
2113//
2114// Returned Error Types:
2115//   * InvalidRequestException
2116//   The request is missing required parameters or has invalid parameters.
2117//
2118//   * ThrottledException
2119//   The request exceeds the maximum number of requests per second.
2120//
2121// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/GetTraceSummaries
2122func (c *XRay) GetTraceSummaries(input *GetTraceSummariesInput) (*GetTraceSummariesOutput, error) {
2123	req, out := c.GetTraceSummariesRequest(input)
2124	return out, req.Send()
2125}
2126
2127// GetTraceSummariesWithContext is the same as GetTraceSummaries with the addition of
2128// the ability to pass a context and additional request options.
2129//
2130// See GetTraceSummaries for details on how to use this API operation.
2131//
2132// The context must be non-nil and will be used for request cancellation. If
2133// the context is nil a panic will occur. In the future the SDK may create
2134// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2135// for more information on using Contexts.
2136func (c *XRay) GetTraceSummariesWithContext(ctx aws.Context, input *GetTraceSummariesInput, opts ...request.Option) (*GetTraceSummariesOutput, error) {
2137	req, out := c.GetTraceSummariesRequest(input)
2138	req.SetContext(ctx)
2139	req.ApplyOptions(opts...)
2140	return out, req.Send()
2141}
2142
2143// GetTraceSummariesPages iterates over the pages of a GetTraceSummaries operation,
2144// calling the "fn" function with the response data for each page. To stop
2145// iterating, return false from the fn function.
2146//
2147// See GetTraceSummaries method for more information on how to use this operation.
2148//
2149// Note: This operation can generate multiple requests to a service.
2150//
2151//    // Example iterating over at most 3 pages of a GetTraceSummaries operation.
2152//    pageNum := 0
2153//    err := client.GetTraceSummariesPages(params,
2154//        func(page *xray.GetTraceSummariesOutput, lastPage bool) bool {
2155//            pageNum++
2156//            fmt.Println(page)
2157//            return pageNum <= 3
2158//        })
2159//
2160func (c *XRay) GetTraceSummariesPages(input *GetTraceSummariesInput, fn func(*GetTraceSummariesOutput, bool) bool) error {
2161	return c.GetTraceSummariesPagesWithContext(aws.BackgroundContext(), input, fn)
2162}
2163
2164// GetTraceSummariesPagesWithContext same as GetTraceSummariesPages except
2165// it takes a Context and allows setting request options on the pages.
2166//
2167// The context must be non-nil and will be used for request cancellation. If
2168// the context is nil a panic will occur. In the future the SDK may create
2169// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2170// for more information on using Contexts.
2171func (c *XRay) GetTraceSummariesPagesWithContext(ctx aws.Context, input *GetTraceSummariesInput, fn func(*GetTraceSummariesOutput, bool) bool, opts ...request.Option) error {
2172	p := request.Pagination{
2173		NewRequest: func() (*request.Request, error) {
2174			var inCpy *GetTraceSummariesInput
2175			if input != nil {
2176				tmp := *input
2177				inCpy = &tmp
2178			}
2179			req, _ := c.GetTraceSummariesRequest(inCpy)
2180			req.SetContext(ctx)
2181			req.ApplyOptions(opts...)
2182			return req, nil
2183		},
2184	}
2185
2186	for p.Next() {
2187		if !fn(p.Page().(*GetTraceSummariesOutput), !p.HasNextPage()) {
2188			break
2189		}
2190	}
2191
2192	return p.Err()
2193}
2194
2195const opListTagsForResource = "ListTagsForResource"
2196
2197// ListTagsForResourceRequest generates a "aws/request.Request" representing the
2198// client's request for the ListTagsForResource operation. The "output" return
2199// value will be populated with the request's response once the request completes
2200// successfully.
2201//
2202// Use "Send" method on the returned Request to send the API call to the service.
2203// the "output" return value is not valid until after Send returns without error.
2204//
2205// See ListTagsForResource for more information on using the ListTagsForResource
2206// API call, and error handling.
2207//
2208// This method is useful when you want to inject custom logic or configuration
2209// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2210//
2211//
2212//    // Example sending a request using the ListTagsForResourceRequest method.
2213//    req, resp := client.ListTagsForResourceRequest(params)
2214//
2215//    err := req.Send()
2216//    if err == nil { // resp is now filled
2217//        fmt.Println(resp)
2218//    }
2219//
2220// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/ListTagsForResource
2221func (c *XRay) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
2222	op := &request.Operation{
2223		Name:       opListTagsForResource,
2224		HTTPMethod: "POST",
2225		HTTPPath:   "/ListTagsForResource",
2226	}
2227
2228	if input == nil {
2229		input = &ListTagsForResourceInput{}
2230	}
2231
2232	output = &ListTagsForResourceOutput{}
2233	req = c.newRequest(op, input, output)
2234	return
2235}
2236
2237// ListTagsForResource API operation for AWS X-Ray.
2238//
2239// Returns a list of tags that are applied to the specified Amazon Web Services
2240// X-Ray group or sampling rule.
2241//
2242// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2243// with awserr.Error's Code and Message methods to get detailed information about
2244// the error.
2245//
2246// See the AWS API reference guide for AWS X-Ray's
2247// API operation ListTagsForResource for usage and error information.
2248//
2249// Returned Error Types:
2250//   * InvalidRequestException
2251//   The request is missing required parameters or has invalid parameters.
2252//
2253//   * ThrottledException
2254//   The request exceeds the maximum number of requests per second.
2255//
2256//   * ResourceNotFoundException
2257//   The resource was not found. Verify that the name or Amazon Resource Name
2258//   (ARN) of the resource is correct.
2259//
2260// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/ListTagsForResource
2261func (c *XRay) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
2262	req, out := c.ListTagsForResourceRequest(input)
2263	return out, req.Send()
2264}
2265
2266// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
2267// the ability to pass a context and additional request options.
2268//
2269// See ListTagsForResource for details on how to use this API operation.
2270//
2271// The context must be non-nil and will be used for request cancellation. If
2272// the context is nil a panic will occur. In the future the SDK may create
2273// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2274// for more information on using Contexts.
2275func (c *XRay) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
2276	req, out := c.ListTagsForResourceRequest(input)
2277	req.SetContext(ctx)
2278	req.ApplyOptions(opts...)
2279	return out, req.Send()
2280}
2281
2282const opPutEncryptionConfig = "PutEncryptionConfig"
2283
2284// PutEncryptionConfigRequest generates a "aws/request.Request" representing the
2285// client's request for the PutEncryptionConfig operation. The "output" return
2286// value will be populated with the request's response once the request completes
2287// successfully.
2288//
2289// Use "Send" method on the returned Request to send the API call to the service.
2290// the "output" return value is not valid until after Send returns without error.
2291//
2292// See PutEncryptionConfig for more information on using the PutEncryptionConfig
2293// API call, and error handling.
2294//
2295// This method is useful when you want to inject custom logic or configuration
2296// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2297//
2298//
2299//    // Example sending a request using the PutEncryptionConfigRequest method.
2300//    req, resp := client.PutEncryptionConfigRequest(params)
2301//
2302//    err := req.Send()
2303//    if err == nil { // resp is now filled
2304//        fmt.Println(resp)
2305//    }
2306//
2307// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/PutEncryptionConfig
2308func (c *XRay) PutEncryptionConfigRequest(input *PutEncryptionConfigInput) (req *request.Request, output *PutEncryptionConfigOutput) {
2309	op := &request.Operation{
2310		Name:       opPutEncryptionConfig,
2311		HTTPMethod: "POST",
2312		HTTPPath:   "/PutEncryptionConfig",
2313	}
2314
2315	if input == nil {
2316		input = &PutEncryptionConfigInput{}
2317	}
2318
2319	output = &PutEncryptionConfigOutput{}
2320	req = c.newRequest(op, input, output)
2321	return
2322}
2323
2324// PutEncryptionConfig API operation for AWS X-Ray.
2325//
2326// Updates the encryption configuration for X-Ray data.
2327//
2328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2329// with awserr.Error's Code and Message methods to get detailed information about
2330// the error.
2331//
2332// See the AWS API reference guide for AWS X-Ray's
2333// API operation PutEncryptionConfig for usage and error information.
2334//
2335// Returned Error Types:
2336//   * InvalidRequestException
2337//   The request is missing required parameters or has invalid parameters.
2338//
2339//   * ThrottledException
2340//   The request exceeds the maximum number of requests per second.
2341//
2342// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/PutEncryptionConfig
2343func (c *XRay) PutEncryptionConfig(input *PutEncryptionConfigInput) (*PutEncryptionConfigOutput, error) {
2344	req, out := c.PutEncryptionConfigRequest(input)
2345	return out, req.Send()
2346}
2347
2348// PutEncryptionConfigWithContext is the same as PutEncryptionConfig with the addition of
2349// the ability to pass a context and additional request options.
2350//
2351// See PutEncryptionConfig for details on how to use this API operation.
2352//
2353// The context must be non-nil and will be used for request cancellation. If
2354// the context is nil a panic will occur. In the future the SDK may create
2355// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2356// for more information on using Contexts.
2357func (c *XRay) PutEncryptionConfigWithContext(ctx aws.Context, input *PutEncryptionConfigInput, opts ...request.Option) (*PutEncryptionConfigOutput, error) {
2358	req, out := c.PutEncryptionConfigRequest(input)
2359	req.SetContext(ctx)
2360	req.ApplyOptions(opts...)
2361	return out, req.Send()
2362}
2363
2364const opPutTelemetryRecords = "PutTelemetryRecords"
2365
2366// PutTelemetryRecordsRequest generates a "aws/request.Request" representing the
2367// client's request for the PutTelemetryRecords operation. The "output" return
2368// value will be populated with the request's response once the request completes
2369// successfully.
2370//
2371// Use "Send" method on the returned Request to send the API call to the service.
2372// the "output" return value is not valid until after Send returns without error.
2373//
2374// See PutTelemetryRecords for more information on using the PutTelemetryRecords
2375// API call, and error handling.
2376//
2377// This method is useful when you want to inject custom logic or configuration
2378// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2379//
2380//
2381//    // Example sending a request using the PutTelemetryRecordsRequest method.
2382//    req, resp := client.PutTelemetryRecordsRequest(params)
2383//
2384//    err := req.Send()
2385//    if err == nil { // resp is now filled
2386//        fmt.Println(resp)
2387//    }
2388//
2389// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/PutTelemetryRecords
2390func (c *XRay) PutTelemetryRecordsRequest(input *PutTelemetryRecordsInput) (req *request.Request, output *PutTelemetryRecordsOutput) {
2391	op := &request.Operation{
2392		Name:       opPutTelemetryRecords,
2393		HTTPMethod: "POST",
2394		HTTPPath:   "/TelemetryRecords",
2395	}
2396
2397	if input == nil {
2398		input = &PutTelemetryRecordsInput{}
2399	}
2400
2401	output = &PutTelemetryRecordsOutput{}
2402	req = c.newRequest(op, input, output)
2403	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2404	return
2405}
2406
2407// PutTelemetryRecords API operation for AWS X-Ray.
2408//
2409// Used by the Amazon Web Services X-Ray daemon to upload telemetry.
2410//
2411// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2412// with awserr.Error's Code and Message methods to get detailed information about
2413// the error.
2414//
2415// See the AWS API reference guide for AWS X-Ray's
2416// API operation PutTelemetryRecords for usage and error information.
2417//
2418// Returned Error Types:
2419//   * InvalidRequestException
2420//   The request is missing required parameters or has invalid parameters.
2421//
2422//   * ThrottledException
2423//   The request exceeds the maximum number of requests per second.
2424//
2425// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/PutTelemetryRecords
2426func (c *XRay) PutTelemetryRecords(input *PutTelemetryRecordsInput) (*PutTelemetryRecordsOutput, error) {
2427	req, out := c.PutTelemetryRecordsRequest(input)
2428	return out, req.Send()
2429}
2430
2431// PutTelemetryRecordsWithContext is the same as PutTelemetryRecords with the addition of
2432// the ability to pass a context and additional request options.
2433//
2434// See PutTelemetryRecords for details on how to use this API operation.
2435//
2436// The context must be non-nil and will be used for request cancellation. If
2437// the context is nil a panic will occur. In the future the SDK may create
2438// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2439// for more information on using Contexts.
2440func (c *XRay) PutTelemetryRecordsWithContext(ctx aws.Context, input *PutTelemetryRecordsInput, opts ...request.Option) (*PutTelemetryRecordsOutput, error) {
2441	req, out := c.PutTelemetryRecordsRequest(input)
2442	req.SetContext(ctx)
2443	req.ApplyOptions(opts...)
2444	return out, req.Send()
2445}
2446
2447const opPutTraceSegments = "PutTraceSegments"
2448
2449// PutTraceSegmentsRequest generates a "aws/request.Request" representing the
2450// client's request for the PutTraceSegments operation. The "output" return
2451// value will be populated with the request's response once the request completes
2452// successfully.
2453//
2454// Use "Send" method on the returned Request to send the API call to the service.
2455// the "output" return value is not valid until after Send returns without error.
2456//
2457// See PutTraceSegments for more information on using the PutTraceSegments
2458// API call, and error handling.
2459//
2460// This method is useful when you want to inject custom logic or configuration
2461// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2462//
2463//
2464//    // Example sending a request using the PutTraceSegmentsRequest method.
2465//    req, resp := client.PutTraceSegmentsRequest(params)
2466//
2467//    err := req.Send()
2468//    if err == nil { // resp is now filled
2469//        fmt.Println(resp)
2470//    }
2471//
2472// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/PutTraceSegments
2473func (c *XRay) PutTraceSegmentsRequest(input *PutTraceSegmentsInput) (req *request.Request, output *PutTraceSegmentsOutput) {
2474	op := &request.Operation{
2475		Name:       opPutTraceSegments,
2476		HTTPMethod: "POST",
2477		HTTPPath:   "/TraceSegments",
2478	}
2479
2480	if input == nil {
2481		input = &PutTraceSegmentsInput{}
2482	}
2483
2484	output = &PutTraceSegmentsOutput{}
2485	req = c.newRequest(op, input, output)
2486	return
2487}
2488
2489// PutTraceSegments API operation for AWS X-Ray.
2490//
2491// Uploads segment documents to Amazon Web Services X-Ray. The X-Ray SDK (https://docs.aws.amazon.com/xray/index.html)
2492// generates segment documents and sends them to the X-Ray daemon, which uploads
2493// them in batches. A segment document can be a completed segment, an in-progress
2494// segment, or an array of subsegments.
2495//
2496// Segments must include the following fields. For the full segment document
2497// schema, see Amazon Web Services X-Ray Segment Documents (https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html)
2498// in the Amazon Web Services X-Ray Developer Guide.
2499//
2500// Required segment document fields
2501//
2502//    * name - The name of the service that handled the request.
2503//
2504//    * id - A 64-bit identifier for the segment, unique among segments in the
2505//    same trace, in 16 hexadecimal digits.
2506//
2507//    * trace_id - A unique identifier that connects all segments and subsegments
2508//    originating from a single client request.
2509//
2510//    * start_time - Time the segment or subsegment was created, in floating
2511//    point seconds in epoch time, accurate to milliseconds. For example, 1480615200.010
2512//    or 1.480615200010E9.
2513//
2514//    * end_time - Time the segment or subsegment was closed. For example, 1480615200.090
2515//    or 1.480615200090E9. Specify either an end_time or in_progress.
2516//
2517//    * in_progress - Set to true instead of specifying an end_time to record
2518//    that a segment has been started, but is not complete. Send an in-progress
2519//    segment when your application receives a request that will take a long
2520//    time to serve, to trace that the request was received. When the response
2521//    is sent, send the complete segment to overwrite the in-progress segment.
2522//
2523// A trace_id consists of three numbers separated by hyphens. For example, 1-58406520-a006649127e371903a2de979.
2524// This includes:
2525//
2526// Trace ID Format
2527//
2528//    * The version number, for instance, 1.
2529//
2530//    * The time of the original request, in Unix epoch time, in 8 hexadecimal
2531//    digits. For example, 10:00AM December 2nd, 2016 PST in epoch time is 1480615200
2532//    seconds, or 58406520 in hexadecimal.
2533//
2534//    * A 96-bit identifier for the trace, globally unique, in 24 hexadecimal
2535//    digits.
2536//
2537// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2538// with awserr.Error's Code and Message methods to get detailed information about
2539// the error.
2540//
2541// See the AWS API reference guide for AWS X-Ray's
2542// API operation PutTraceSegments for usage and error information.
2543//
2544// Returned Error Types:
2545//   * InvalidRequestException
2546//   The request is missing required parameters or has invalid parameters.
2547//
2548//   * ThrottledException
2549//   The request exceeds the maximum number of requests per second.
2550//
2551// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/PutTraceSegments
2552func (c *XRay) PutTraceSegments(input *PutTraceSegmentsInput) (*PutTraceSegmentsOutput, error) {
2553	req, out := c.PutTraceSegmentsRequest(input)
2554	return out, req.Send()
2555}
2556
2557// PutTraceSegmentsWithContext is the same as PutTraceSegments with the addition of
2558// the ability to pass a context and additional request options.
2559//
2560// See PutTraceSegments for details on how to use this API operation.
2561//
2562// The context must be non-nil and will be used for request cancellation. If
2563// the context is nil a panic will occur. In the future the SDK may create
2564// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2565// for more information on using Contexts.
2566func (c *XRay) PutTraceSegmentsWithContext(ctx aws.Context, input *PutTraceSegmentsInput, opts ...request.Option) (*PutTraceSegmentsOutput, error) {
2567	req, out := c.PutTraceSegmentsRequest(input)
2568	req.SetContext(ctx)
2569	req.ApplyOptions(opts...)
2570	return out, req.Send()
2571}
2572
2573const opTagResource = "TagResource"
2574
2575// TagResourceRequest generates a "aws/request.Request" representing the
2576// client's request for the TagResource operation. The "output" return
2577// value will be populated with the request's response once the request completes
2578// successfully.
2579//
2580// Use "Send" method on the returned Request to send the API call to the service.
2581// the "output" return value is not valid until after Send returns without error.
2582//
2583// See TagResource for more information on using the TagResource
2584// API call, and error handling.
2585//
2586// This method is useful when you want to inject custom logic or configuration
2587// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2588//
2589//
2590//    // Example sending a request using the TagResourceRequest method.
2591//    req, resp := client.TagResourceRequest(params)
2592//
2593//    err := req.Send()
2594//    if err == nil { // resp is now filled
2595//        fmt.Println(resp)
2596//    }
2597//
2598// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/TagResource
2599func (c *XRay) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
2600	op := &request.Operation{
2601		Name:       opTagResource,
2602		HTTPMethod: "POST",
2603		HTTPPath:   "/TagResource",
2604	}
2605
2606	if input == nil {
2607		input = &TagResourceInput{}
2608	}
2609
2610	output = &TagResourceOutput{}
2611	req = c.newRequest(op, input, output)
2612	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2613	return
2614}
2615
2616// TagResource API operation for AWS X-Ray.
2617//
2618// Applies tags to an existing Amazon Web Services X-Ray group or sampling rule.
2619//
2620// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2621// with awserr.Error's Code and Message methods to get detailed information about
2622// the error.
2623//
2624// See the AWS API reference guide for AWS X-Ray's
2625// API operation TagResource for usage and error information.
2626//
2627// Returned Error Types:
2628//   * InvalidRequestException
2629//   The request is missing required parameters or has invalid parameters.
2630//
2631//   * ThrottledException
2632//   The request exceeds the maximum number of requests per second.
2633//
2634//   * ResourceNotFoundException
2635//   The resource was not found. Verify that the name or Amazon Resource Name
2636//   (ARN) of the resource is correct.
2637//
2638//   * TooManyTagsException
2639//   You have exceeded the maximum number of tags you can apply to this resource.
2640//
2641// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/TagResource
2642func (c *XRay) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
2643	req, out := c.TagResourceRequest(input)
2644	return out, req.Send()
2645}
2646
2647// TagResourceWithContext is the same as TagResource with the addition of
2648// the ability to pass a context and additional request options.
2649//
2650// See TagResource for details on how to use this API operation.
2651//
2652// The context must be non-nil and will be used for request cancellation. If
2653// the context is nil a panic will occur. In the future the SDK may create
2654// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2655// for more information on using Contexts.
2656func (c *XRay) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
2657	req, out := c.TagResourceRequest(input)
2658	req.SetContext(ctx)
2659	req.ApplyOptions(opts...)
2660	return out, req.Send()
2661}
2662
2663const opUntagResource = "UntagResource"
2664
2665// UntagResourceRequest generates a "aws/request.Request" representing the
2666// client's request for the UntagResource operation. The "output" return
2667// value will be populated with the request's response once the request completes
2668// successfully.
2669//
2670// Use "Send" method on the returned Request to send the API call to the service.
2671// the "output" return value is not valid until after Send returns without error.
2672//
2673// See UntagResource for more information on using the UntagResource
2674// API call, and error handling.
2675//
2676// This method is useful when you want to inject custom logic or configuration
2677// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2678//
2679//
2680//    // Example sending a request using the UntagResourceRequest method.
2681//    req, resp := client.UntagResourceRequest(params)
2682//
2683//    err := req.Send()
2684//    if err == nil { // resp is now filled
2685//        fmt.Println(resp)
2686//    }
2687//
2688// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/UntagResource
2689func (c *XRay) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
2690	op := &request.Operation{
2691		Name:       opUntagResource,
2692		HTTPMethod: "POST",
2693		HTTPPath:   "/UntagResource",
2694	}
2695
2696	if input == nil {
2697		input = &UntagResourceInput{}
2698	}
2699
2700	output = &UntagResourceOutput{}
2701	req = c.newRequest(op, input, output)
2702	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2703	return
2704}
2705
2706// UntagResource API operation for AWS X-Ray.
2707//
2708// Removes tags from an Amazon Web Services X-Ray group or sampling rule. You
2709// cannot edit or delete system tags (those with an aws: prefix).
2710//
2711// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2712// with awserr.Error's Code and Message methods to get detailed information about
2713// the error.
2714//
2715// See the AWS API reference guide for AWS X-Ray's
2716// API operation UntagResource for usage and error information.
2717//
2718// Returned Error Types:
2719//   * InvalidRequestException
2720//   The request is missing required parameters or has invalid parameters.
2721//
2722//   * ThrottledException
2723//   The request exceeds the maximum number of requests per second.
2724//
2725//   * ResourceNotFoundException
2726//   The resource was not found. Verify that the name or Amazon Resource Name
2727//   (ARN) of the resource is correct.
2728//
2729// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/UntagResource
2730func (c *XRay) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
2731	req, out := c.UntagResourceRequest(input)
2732	return out, req.Send()
2733}
2734
2735// UntagResourceWithContext is the same as UntagResource with the addition of
2736// the ability to pass a context and additional request options.
2737//
2738// See UntagResource for details on how to use this API operation.
2739//
2740// The context must be non-nil and will be used for request cancellation. If
2741// the context is nil a panic will occur. In the future the SDK may create
2742// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2743// for more information on using Contexts.
2744func (c *XRay) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
2745	req, out := c.UntagResourceRequest(input)
2746	req.SetContext(ctx)
2747	req.ApplyOptions(opts...)
2748	return out, req.Send()
2749}
2750
2751const opUpdateGroup = "UpdateGroup"
2752
2753// UpdateGroupRequest generates a "aws/request.Request" representing the
2754// client's request for the UpdateGroup operation. The "output" return
2755// value will be populated with the request's response once the request completes
2756// successfully.
2757//
2758// Use "Send" method on the returned Request to send the API call to the service.
2759// the "output" return value is not valid until after Send returns without error.
2760//
2761// See UpdateGroup for more information on using the UpdateGroup
2762// API call, and error handling.
2763//
2764// This method is useful when you want to inject custom logic or configuration
2765// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2766//
2767//
2768//    // Example sending a request using the UpdateGroupRequest method.
2769//    req, resp := client.UpdateGroupRequest(params)
2770//
2771//    err := req.Send()
2772//    if err == nil { // resp is now filled
2773//        fmt.Println(resp)
2774//    }
2775//
2776// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/UpdateGroup
2777func (c *XRay) UpdateGroupRequest(input *UpdateGroupInput) (req *request.Request, output *UpdateGroupOutput) {
2778	op := &request.Operation{
2779		Name:       opUpdateGroup,
2780		HTTPMethod: "POST",
2781		HTTPPath:   "/UpdateGroup",
2782	}
2783
2784	if input == nil {
2785		input = &UpdateGroupInput{}
2786	}
2787
2788	output = &UpdateGroupOutput{}
2789	req = c.newRequest(op, input, output)
2790	return
2791}
2792
2793// UpdateGroup API operation for AWS X-Ray.
2794//
2795// Updates a group resource.
2796//
2797// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2798// with awserr.Error's Code and Message methods to get detailed information about
2799// the error.
2800//
2801// See the AWS API reference guide for AWS X-Ray's
2802// API operation UpdateGroup for usage and error information.
2803//
2804// Returned Error Types:
2805//   * InvalidRequestException
2806//   The request is missing required parameters or has invalid parameters.
2807//
2808//   * ThrottledException
2809//   The request exceeds the maximum number of requests per second.
2810//
2811// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/UpdateGroup
2812func (c *XRay) UpdateGroup(input *UpdateGroupInput) (*UpdateGroupOutput, error) {
2813	req, out := c.UpdateGroupRequest(input)
2814	return out, req.Send()
2815}
2816
2817// UpdateGroupWithContext is the same as UpdateGroup with the addition of
2818// the ability to pass a context and additional request options.
2819//
2820// See UpdateGroup for details on how to use this API operation.
2821//
2822// The context must be non-nil and will be used for request cancellation. If
2823// the context is nil a panic will occur. In the future the SDK may create
2824// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2825// for more information on using Contexts.
2826func (c *XRay) UpdateGroupWithContext(ctx aws.Context, input *UpdateGroupInput, opts ...request.Option) (*UpdateGroupOutput, error) {
2827	req, out := c.UpdateGroupRequest(input)
2828	req.SetContext(ctx)
2829	req.ApplyOptions(opts...)
2830	return out, req.Send()
2831}
2832
2833const opUpdateSamplingRule = "UpdateSamplingRule"
2834
2835// UpdateSamplingRuleRequest generates a "aws/request.Request" representing the
2836// client's request for the UpdateSamplingRule operation. The "output" return
2837// value will be populated with the request's response once the request completes
2838// successfully.
2839//
2840// Use "Send" method on the returned Request to send the API call to the service.
2841// the "output" return value is not valid until after Send returns without error.
2842//
2843// See UpdateSamplingRule for more information on using the UpdateSamplingRule
2844// API call, and error handling.
2845//
2846// This method is useful when you want to inject custom logic or configuration
2847// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2848//
2849//
2850//    // Example sending a request using the UpdateSamplingRuleRequest method.
2851//    req, resp := client.UpdateSamplingRuleRequest(params)
2852//
2853//    err := req.Send()
2854//    if err == nil { // resp is now filled
2855//        fmt.Println(resp)
2856//    }
2857//
2858// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/UpdateSamplingRule
2859func (c *XRay) UpdateSamplingRuleRequest(input *UpdateSamplingRuleInput) (req *request.Request, output *UpdateSamplingRuleOutput) {
2860	op := &request.Operation{
2861		Name:       opUpdateSamplingRule,
2862		HTTPMethod: "POST",
2863		HTTPPath:   "/UpdateSamplingRule",
2864	}
2865
2866	if input == nil {
2867		input = &UpdateSamplingRuleInput{}
2868	}
2869
2870	output = &UpdateSamplingRuleOutput{}
2871	req = c.newRequest(op, input, output)
2872	return
2873}
2874
2875// UpdateSamplingRule API operation for AWS X-Ray.
2876//
2877// Modifies a sampling rule's configuration.
2878//
2879// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2880// with awserr.Error's Code and Message methods to get detailed information about
2881// the error.
2882//
2883// See the AWS API reference guide for AWS X-Ray's
2884// API operation UpdateSamplingRule for usage and error information.
2885//
2886// Returned Error Types:
2887//   * InvalidRequestException
2888//   The request is missing required parameters or has invalid parameters.
2889//
2890//   * ThrottledException
2891//   The request exceeds the maximum number of requests per second.
2892//
2893// See also, https://docs.aws.amazon.com/goto/WebAPI/xray-2016-04-12/UpdateSamplingRule
2894func (c *XRay) UpdateSamplingRule(input *UpdateSamplingRuleInput) (*UpdateSamplingRuleOutput, error) {
2895	req, out := c.UpdateSamplingRuleRequest(input)
2896	return out, req.Send()
2897}
2898
2899// UpdateSamplingRuleWithContext is the same as UpdateSamplingRule with the addition of
2900// the ability to pass a context and additional request options.
2901//
2902// See UpdateSamplingRule for details on how to use this API operation.
2903//
2904// The context must be non-nil and will be used for request cancellation. If
2905// the context is nil a panic will occur. In the future the SDK may create
2906// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2907// for more information on using Contexts.
2908func (c *XRay) UpdateSamplingRuleWithContext(ctx aws.Context, input *UpdateSamplingRuleInput, opts ...request.Option) (*UpdateSamplingRuleOutput, error) {
2909	req, out := c.UpdateSamplingRuleRequest(input)
2910	req.SetContext(ctx)
2911	req.ApplyOptions(opts...)
2912	return out, req.Send()
2913}
2914
2915// An alias for an edge.
2916type Alias struct {
2917	_ struct{} `type:"structure"`
2918
2919	// The canonical name of the alias.
2920	Name *string `type:"string"`
2921
2922	// A list of names for the alias, including the canonical name.
2923	Names []*string `type:"list"`
2924
2925	// The type of the alias.
2926	Type *string `type:"string"`
2927}
2928
2929// String returns the string representation.
2930//
2931// API parameter values that are decorated as "sensitive" in the API will not
2932// be included in the string output. The member name will be present, but the
2933// value will be replaced with "sensitive".
2934func (s Alias) String() string {
2935	return awsutil.Prettify(s)
2936}
2937
2938// GoString returns the string representation.
2939//
2940// API parameter values that are decorated as "sensitive" in the API will not
2941// be included in the string output. The member name will be present, but the
2942// value will be replaced with "sensitive".
2943func (s Alias) GoString() string {
2944	return s.String()
2945}
2946
2947// SetName sets the Name field's value.
2948func (s *Alias) SetName(v string) *Alias {
2949	s.Name = &v
2950	return s
2951}
2952
2953// SetNames sets the Names field's value.
2954func (s *Alias) SetNames(v []*string) *Alias {
2955	s.Names = v
2956	return s
2957}
2958
2959// SetType sets the Type field's value.
2960func (s *Alias) SetType(v string) *Alias {
2961	s.Type = &v
2962	return s
2963}
2964
2965// Value of a segment annotation. Has one of three value types: Number, Boolean,
2966// or String.
2967type AnnotationValue struct {
2968	_ struct{} `type:"structure"`
2969
2970	// Value for a Boolean annotation.
2971	BooleanValue *bool `type:"boolean"`
2972
2973	// Value for a Number annotation.
2974	NumberValue *float64 `type:"double"`
2975
2976	// Value for a String annotation.
2977	StringValue *string `type:"string"`
2978}
2979
2980// String returns the string representation.
2981//
2982// API parameter values that are decorated as "sensitive" in the API will not
2983// be included in the string output. The member name will be present, but the
2984// value will be replaced with "sensitive".
2985func (s AnnotationValue) String() string {
2986	return awsutil.Prettify(s)
2987}
2988
2989// GoString returns the string representation.
2990//
2991// API parameter values that are decorated as "sensitive" in the API will not
2992// be included in the string output. The member name will be present, but the
2993// value will be replaced with "sensitive".
2994func (s AnnotationValue) GoString() string {
2995	return s.String()
2996}
2997
2998// SetBooleanValue sets the BooleanValue field's value.
2999func (s *AnnotationValue) SetBooleanValue(v bool) *AnnotationValue {
3000	s.BooleanValue = &v
3001	return s
3002}
3003
3004// SetNumberValue sets the NumberValue field's value.
3005func (s *AnnotationValue) SetNumberValue(v float64) *AnnotationValue {
3006	s.NumberValue = &v
3007	return s
3008}
3009
3010// SetStringValue sets the StringValue field's value.
3011func (s *AnnotationValue) SetStringValue(v string) *AnnotationValue {
3012	s.StringValue = &v
3013	return s
3014}
3015
3016// The service within the service graph that has anomalously high fault rates.
3017type AnomalousService struct {
3018	_ struct{} `type:"structure"`
3019
3020	ServiceId *ServiceId `type:"structure"`
3021}
3022
3023// String returns the string representation.
3024//
3025// API parameter values that are decorated as "sensitive" in the API will not
3026// be included in the string output. The member name will be present, but the
3027// value will be replaced with "sensitive".
3028func (s AnomalousService) String() string {
3029	return awsutil.Prettify(s)
3030}
3031
3032// GoString returns the string representation.
3033//
3034// API parameter values that are decorated as "sensitive" in the API will not
3035// be included in the string output. The member name will be present, but the
3036// value will be replaced with "sensitive".
3037func (s AnomalousService) GoString() string {
3038	return s.String()
3039}
3040
3041// SetServiceId sets the ServiceId field's value.
3042func (s *AnomalousService) SetServiceId(v *ServiceId) *AnomalousService {
3043	s.ServiceId = v
3044	return s
3045}
3046
3047// A list of Availability Zones corresponding to the segments in a trace.
3048type AvailabilityZoneDetail struct {
3049	_ struct{} `type:"structure"`
3050
3051	// The name of a corresponding Availability Zone.
3052	Name *string `type:"string"`
3053}
3054
3055// String returns the string representation.
3056//
3057// API parameter values that are decorated as "sensitive" in the API will not
3058// be included in the string output. The member name will be present, but the
3059// value will be replaced with "sensitive".
3060func (s AvailabilityZoneDetail) String() string {
3061	return awsutil.Prettify(s)
3062}
3063
3064// GoString returns the string representation.
3065//
3066// API parameter values that are decorated as "sensitive" in the API will not
3067// be included in the string output. The member name will be present, but the
3068// value will be replaced with "sensitive".
3069func (s AvailabilityZoneDetail) GoString() string {
3070	return s.String()
3071}
3072
3073// SetName sets the Name field's value.
3074func (s *AvailabilityZoneDetail) SetName(v string) *AvailabilityZoneDetail {
3075	s.Name = &v
3076	return s
3077}
3078
3079type BackendConnectionErrors struct {
3080	_ struct{} `type:"structure"`
3081
3082	ConnectionRefusedCount *int64 `type:"integer"`
3083
3084	HTTPCode4XXCount *int64 `type:"integer"`
3085
3086	HTTPCode5XXCount *int64 `type:"integer"`
3087
3088	OtherCount *int64 `type:"integer"`
3089
3090	TimeoutCount *int64 `type:"integer"`
3091
3092	UnknownHostCount *int64 `type:"integer"`
3093}
3094
3095// String returns the string representation.
3096//
3097// API parameter values that are decorated as "sensitive" in the API will not
3098// be included in the string output. The member name will be present, but the
3099// value will be replaced with "sensitive".
3100func (s BackendConnectionErrors) String() string {
3101	return awsutil.Prettify(s)
3102}
3103
3104// GoString returns the string representation.
3105//
3106// API parameter values that are decorated as "sensitive" in the API will not
3107// be included in the string output. The member name will be present, but the
3108// value will be replaced with "sensitive".
3109func (s BackendConnectionErrors) GoString() string {
3110	return s.String()
3111}
3112
3113// SetConnectionRefusedCount sets the ConnectionRefusedCount field's value.
3114func (s *BackendConnectionErrors) SetConnectionRefusedCount(v int64) *BackendConnectionErrors {
3115	s.ConnectionRefusedCount = &v
3116	return s
3117}
3118
3119// SetHTTPCode4XXCount sets the HTTPCode4XXCount field's value.
3120func (s *BackendConnectionErrors) SetHTTPCode4XXCount(v int64) *BackendConnectionErrors {
3121	s.HTTPCode4XXCount = &v
3122	return s
3123}
3124
3125// SetHTTPCode5XXCount sets the HTTPCode5XXCount field's value.
3126func (s *BackendConnectionErrors) SetHTTPCode5XXCount(v int64) *BackendConnectionErrors {
3127	s.HTTPCode5XXCount = &v
3128	return s
3129}
3130
3131// SetOtherCount sets the OtherCount field's value.
3132func (s *BackendConnectionErrors) SetOtherCount(v int64) *BackendConnectionErrors {
3133	s.OtherCount = &v
3134	return s
3135}
3136
3137// SetTimeoutCount sets the TimeoutCount field's value.
3138func (s *BackendConnectionErrors) SetTimeoutCount(v int64) *BackendConnectionErrors {
3139	s.TimeoutCount = &v
3140	return s
3141}
3142
3143// SetUnknownHostCount sets the UnknownHostCount field's value.
3144func (s *BackendConnectionErrors) SetUnknownHostCount(v int64) *BackendConnectionErrors {
3145	s.UnknownHostCount = &v
3146	return s
3147}
3148
3149type BatchGetTracesInput struct {
3150	_ struct{} `type:"structure"`
3151
3152	// Pagination token.
3153	NextToken *string `type:"string"`
3154
3155	// Specify the trace IDs of requests for which to retrieve segments.
3156	//
3157	// TraceIds is a required field
3158	TraceIds []*string `type:"list" required:"true"`
3159}
3160
3161// String returns the string representation.
3162//
3163// API parameter values that are decorated as "sensitive" in the API will not
3164// be included in the string output. The member name will be present, but the
3165// value will be replaced with "sensitive".
3166func (s BatchGetTracesInput) String() string {
3167	return awsutil.Prettify(s)
3168}
3169
3170// GoString returns the string representation.
3171//
3172// API parameter values that are decorated as "sensitive" in the API will not
3173// be included in the string output. The member name will be present, but the
3174// value will be replaced with "sensitive".
3175func (s BatchGetTracesInput) GoString() string {
3176	return s.String()
3177}
3178
3179// Validate inspects the fields of the type to determine if they are valid.
3180func (s *BatchGetTracesInput) Validate() error {
3181	invalidParams := request.ErrInvalidParams{Context: "BatchGetTracesInput"}
3182	if s.TraceIds == nil {
3183		invalidParams.Add(request.NewErrParamRequired("TraceIds"))
3184	}
3185
3186	if invalidParams.Len() > 0 {
3187		return invalidParams
3188	}
3189	return nil
3190}
3191
3192// SetNextToken sets the NextToken field's value.
3193func (s *BatchGetTracesInput) SetNextToken(v string) *BatchGetTracesInput {
3194	s.NextToken = &v
3195	return s
3196}
3197
3198// SetTraceIds sets the TraceIds field's value.
3199func (s *BatchGetTracesInput) SetTraceIds(v []*string) *BatchGetTracesInput {
3200	s.TraceIds = v
3201	return s
3202}
3203
3204type BatchGetTracesOutput struct {
3205	_ struct{} `type:"structure"`
3206
3207	// Pagination token.
3208	NextToken *string `type:"string"`
3209
3210	// Full traces for the specified requests.
3211	Traces []*Trace `type:"list"`
3212
3213	// Trace IDs of requests that haven't been processed.
3214	UnprocessedTraceIds []*string `type:"list"`
3215}
3216
3217// String returns the string representation.
3218//
3219// API parameter values that are decorated as "sensitive" in the API will not
3220// be included in the string output. The member name will be present, but the
3221// value will be replaced with "sensitive".
3222func (s BatchGetTracesOutput) String() string {
3223	return awsutil.Prettify(s)
3224}
3225
3226// GoString returns the string representation.
3227//
3228// API parameter values that are decorated as "sensitive" in the API will not
3229// be included in the string output. The member name will be present, but the
3230// value will be replaced with "sensitive".
3231func (s BatchGetTracesOutput) GoString() string {
3232	return s.String()
3233}
3234
3235// SetNextToken sets the NextToken field's value.
3236func (s *BatchGetTracesOutput) SetNextToken(v string) *BatchGetTracesOutput {
3237	s.NextToken = &v
3238	return s
3239}
3240
3241// SetTraces sets the Traces field's value.
3242func (s *BatchGetTracesOutput) SetTraces(v []*Trace) *BatchGetTracesOutput {
3243	s.Traces = v
3244	return s
3245}
3246
3247// SetUnprocessedTraceIds sets the UnprocessedTraceIds field's value.
3248func (s *BatchGetTracesOutput) SetUnprocessedTraceIds(v []*string) *BatchGetTracesOutput {
3249	s.UnprocessedTraceIds = v
3250	return s
3251}
3252
3253type CreateGroupInput struct {
3254	_ struct{} `type:"structure"`
3255
3256	// The filter expression defining criteria by which to group traces.
3257	FilterExpression *string `type:"string"`
3258
3259	// The case-sensitive name of the new group. Default is a reserved name and
3260	// names must be unique.
3261	//
3262	// GroupName is a required field
3263	GroupName *string `min:"1" type:"string" required:"true"`
3264
3265	// The structure containing configurations related to insights.
3266	//
3267	//    * The InsightsEnabled boolean can be set to true to enable insights for
3268	//    the new group or false to disable insights for the new group.
3269	//
3270	//    * The NotifcationsEnabled boolean can be set to true to enable insights
3271	//    notifications for the new group. Notifications may only be enabled on
3272	//    a group with InsightsEnabled set to true.
3273	InsightsConfiguration *InsightsConfiguration `type:"structure"`
3274
3275	// A map that contains one or more tag keys and tag values to attach to an X-Ray
3276	// group. For more information about ways to use tags, see Tagging Amazon Web
3277	// Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
3278	// in the Amazon Web Services General Reference.
3279	//
3280	// The following restrictions apply to tags:
3281	//
3282	//    * Maximum number of user-applied tags per resource: 50
3283	//
3284	//    * Maximum tag key length: 128 Unicode characters
3285	//
3286	//    * Maximum tag value length: 256 Unicode characters
3287	//
3288	//    * Valid values for key and value: a-z, A-Z, 0-9, space, and the following
3289	//    characters: _ . : / = + - and @
3290	//
3291	//    * Tag keys and values are case sensitive.
3292	//
3293	//    * Don't use aws: as a prefix for keys; it's reserved for Amazon Web Services
3294	//    use.
3295	Tags []*Tag `type:"list"`
3296}
3297
3298// String returns the string representation.
3299//
3300// API parameter values that are decorated as "sensitive" in the API will not
3301// be included in the string output. The member name will be present, but the
3302// value will be replaced with "sensitive".
3303func (s CreateGroupInput) String() string {
3304	return awsutil.Prettify(s)
3305}
3306
3307// GoString returns the string representation.
3308//
3309// API parameter values that are decorated as "sensitive" in the API will not
3310// be included in the string output. The member name will be present, but the
3311// value will be replaced with "sensitive".
3312func (s CreateGroupInput) GoString() string {
3313	return s.String()
3314}
3315
3316// Validate inspects the fields of the type to determine if they are valid.
3317func (s *CreateGroupInput) Validate() error {
3318	invalidParams := request.ErrInvalidParams{Context: "CreateGroupInput"}
3319	if s.GroupName == nil {
3320		invalidParams.Add(request.NewErrParamRequired("GroupName"))
3321	}
3322	if s.GroupName != nil && len(*s.GroupName) < 1 {
3323		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
3324	}
3325	if s.Tags != nil {
3326		for i, v := range s.Tags {
3327			if v == nil {
3328				continue
3329			}
3330			if err := v.Validate(); err != nil {
3331				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3332			}
3333		}
3334	}
3335
3336	if invalidParams.Len() > 0 {
3337		return invalidParams
3338	}
3339	return nil
3340}
3341
3342// SetFilterExpression sets the FilterExpression field's value.
3343func (s *CreateGroupInput) SetFilterExpression(v string) *CreateGroupInput {
3344	s.FilterExpression = &v
3345	return s
3346}
3347
3348// SetGroupName sets the GroupName field's value.
3349func (s *CreateGroupInput) SetGroupName(v string) *CreateGroupInput {
3350	s.GroupName = &v
3351	return s
3352}
3353
3354// SetInsightsConfiguration sets the InsightsConfiguration field's value.
3355func (s *CreateGroupInput) SetInsightsConfiguration(v *InsightsConfiguration) *CreateGroupInput {
3356	s.InsightsConfiguration = v
3357	return s
3358}
3359
3360// SetTags sets the Tags field's value.
3361func (s *CreateGroupInput) SetTags(v []*Tag) *CreateGroupInput {
3362	s.Tags = v
3363	return s
3364}
3365
3366type CreateGroupOutput struct {
3367	_ struct{} `type:"structure"`
3368
3369	// The group that was created. Contains the name of the group that was created,
3370	// the Amazon Resource Name (ARN) of the group that was generated based on the
3371	// group name, the filter expression, and the insight configuration that was
3372	// assigned to the group.
3373	Group *Group `type:"structure"`
3374}
3375
3376// String returns the string representation.
3377//
3378// API parameter values that are decorated as "sensitive" in the API will not
3379// be included in the string output. The member name will be present, but the
3380// value will be replaced with "sensitive".
3381func (s CreateGroupOutput) String() string {
3382	return awsutil.Prettify(s)
3383}
3384
3385// GoString returns the string representation.
3386//
3387// API parameter values that are decorated as "sensitive" in the API will not
3388// be included in the string output. The member name will be present, but the
3389// value will be replaced with "sensitive".
3390func (s CreateGroupOutput) GoString() string {
3391	return s.String()
3392}
3393
3394// SetGroup sets the Group field's value.
3395func (s *CreateGroupOutput) SetGroup(v *Group) *CreateGroupOutput {
3396	s.Group = v
3397	return s
3398}
3399
3400type CreateSamplingRuleInput struct {
3401	_ struct{} `type:"structure"`
3402
3403	// The rule definition.
3404	//
3405	// SamplingRule is a required field
3406	SamplingRule *SamplingRule `type:"structure" required:"true"`
3407
3408	// A map that contains one or more tag keys and tag values to attach to an X-Ray
3409	// sampling rule. For more information about ways to use tags, see Tagging Amazon
3410	// Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
3411	// in the Amazon Web Services General Reference.
3412	//
3413	// The following restrictions apply to tags:
3414	//
3415	//    * Maximum number of user-applied tags per resource: 50
3416	//
3417	//    * Maximum tag key length: 128 Unicode characters
3418	//
3419	//    * Maximum tag value length: 256 Unicode characters
3420	//
3421	//    * Valid values for key and value: a-z, A-Z, 0-9, space, and the following
3422	//    characters: _ . : / = + - and @
3423	//
3424	//    * Tag keys and values are case sensitive.
3425	//
3426	//    * Don't use aws: as a prefix for keys; it's reserved for Amazon Web Services
3427	//    use.
3428	Tags []*Tag `type:"list"`
3429}
3430
3431// String returns the string representation.
3432//
3433// API parameter values that are decorated as "sensitive" in the API will not
3434// be included in the string output. The member name will be present, but the
3435// value will be replaced with "sensitive".
3436func (s CreateSamplingRuleInput) String() string {
3437	return awsutil.Prettify(s)
3438}
3439
3440// GoString returns the string representation.
3441//
3442// API parameter values that are decorated as "sensitive" in the API will not
3443// be included in the string output. The member name will be present, but the
3444// value will be replaced with "sensitive".
3445func (s CreateSamplingRuleInput) GoString() string {
3446	return s.String()
3447}
3448
3449// Validate inspects the fields of the type to determine if they are valid.
3450func (s *CreateSamplingRuleInput) Validate() error {
3451	invalidParams := request.ErrInvalidParams{Context: "CreateSamplingRuleInput"}
3452	if s.SamplingRule == nil {
3453		invalidParams.Add(request.NewErrParamRequired("SamplingRule"))
3454	}
3455	if s.SamplingRule != nil {
3456		if err := s.SamplingRule.Validate(); err != nil {
3457			invalidParams.AddNested("SamplingRule", err.(request.ErrInvalidParams))
3458		}
3459	}
3460	if s.Tags != nil {
3461		for i, v := range s.Tags {
3462			if v == nil {
3463				continue
3464			}
3465			if err := v.Validate(); err != nil {
3466				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3467			}
3468		}
3469	}
3470
3471	if invalidParams.Len() > 0 {
3472		return invalidParams
3473	}
3474	return nil
3475}
3476
3477// SetSamplingRule sets the SamplingRule field's value.
3478func (s *CreateSamplingRuleInput) SetSamplingRule(v *SamplingRule) *CreateSamplingRuleInput {
3479	s.SamplingRule = v
3480	return s
3481}
3482
3483// SetTags sets the Tags field's value.
3484func (s *CreateSamplingRuleInput) SetTags(v []*Tag) *CreateSamplingRuleInput {
3485	s.Tags = v
3486	return s
3487}
3488
3489type CreateSamplingRuleOutput struct {
3490	_ struct{} `type:"structure"`
3491
3492	// The saved rule definition and metadata.
3493	SamplingRuleRecord *SamplingRuleRecord `type:"structure"`
3494}
3495
3496// String returns the string representation.
3497//
3498// API parameter values that are decorated as "sensitive" in the API will not
3499// be included in the string output. The member name will be present, but the
3500// value will be replaced with "sensitive".
3501func (s CreateSamplingRuleOutput) String() string {
3502	return awsutil.Prettify(s)
3503}
3504
3505// GoString returns the string representation.
3506//
3507// API parameter values that are decorated as "sensitive" in the API will not
3508// be included in the string output. The member name will be present, but the
3509// value will be replaced with "sensitive".
3510func (s CreateSamplingRuleOutput) GoString() string {
3511	return s.String()
3512}
3513
3514// SetSamplingRuleRecord sets the SamplingRuleRecord field's value.
3515func (s *CreateSamplingRuleOutput) SetSamplingRuleRecord(v *SamplingRuleRecord) *CreateSamplingRuleOutput {
3516	s.SamplingRuleRecord = v
3517	return s
3518}
3519
3520type DeleteGroupInput struct {
3521	_ struct{} `type:"structure"`
3522
3523	// The ARN of the group that was generated on creation.
3524	GroupARN *string `min:"1" type:"string"`
3525
3526	// The case-sensitive name of the group.
3527	GroupName *string `min:"1" type:"string"`
3528}
3529
3530// String returns the string representation.
3531//
3532// API parameter values that are decorated as "sensitive" in the API will not
3533// be included in the string output. The member name will be present, but the
3534// value will be replaced with "sensitive".
3535func (s DeleteGroupInput) String() string {
3536	return awsutil.Prettify(s)
3537}
3538
3539// GoString returns the string representation.
3540//
3541// API parameter values that are decorated as "sensitive" in the API will not
3542// be included in the string output. The member name will be present, but the
3543// value will be replaced with "sensitive".
3544func (s DeleteGroupInput) GoString() string {
3545	return s.String()
3546}
3547
3548// Validate inspects the fields of the type to determine if they are valid.
3549func (s *DeleteGroupInput) Validate() error {
3550	invalidParams := request.ErrInvalidParams{Context: "DeleteGroupInput"}
3551	if s.GroupARN != nil && len(*s.GroupARN) < 1 {
3552		invalidParams.Add(request.NewErrParamMinLen("GroupARN", 1))
3553	}
3554	if s.GroupName != nil && len(*s.GroupName) < 1 {
3555		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
3556	}
3557
3558	if invalidParams.Len() > 0 {
3559		return invalidParams
3560	}
3561	return nil
3562}
3563
3564// SetGroupARN sets the GroupARN field's value.
3565func (s *DeleteGroupInput) SetGroupARN(v string) *DeleteGroupInput {
3566	s.GroupARN = &v
3567	return s
3568}
3569
3570// SetGroupName sets the GroupName field's value.
3571func (s *DeleteGroupInput) SetGroupName(v string) *DeleteGroupInput {
3572	s.GroupName = &v
3573	return s
3574}
3575
3576type DeleteGroupOutput struct {
3577	_ struct{} `type:"structure"`
3578}
3579
3580// String returns the string representation.
3581//
3582// API parameter values that are decorated as "sensitive" in the API will not
3583// be included in the string output. The member name will be present, but the
3584// value will be replaced with "sensitive".
3585func (s DeleteGroupOutput) String() string {
3586	return awsutil.Prettify(s)
3587}
3588
3589// GoString returns the string representation.
3590//
3591// API parameter values that are decorated as "sensitive" in the API will not
3592// be included in the string output. The member name will be present, but the
3593// value will be replaced with "sensitive".
3594func (s DeleteGroupOutput) GoString() string {
3595	return s.String()
3596}
3597
3598type DeleteSamplingRuleInput struct {
3599	_ struct{} `type:"structure"`
3600
3601	// The ARN of the sampling rule. Specify a rule by either name or ARN, but not
3602	// both.
3603	RuleARN *string `type:"string"`
3604
3605	// The name of the sampling rule. Specify a rule by either name or ARN, but
3606	// not both.
3607	RuleName *string `type:"string"`
3608}
3609
3610// String returns the string representation.
3611//
3612// API parameter values that are decorated as "sensitive" in the API will not
3613// be included in the string output. The member name will be present, but the
3614// value will be replaced with "sensitive".
3615func (s DeleteSamplingRuleInput) String() string {
3616	return awsutil.Prettify(s)
3617}
3618
3619// GoString returns the string representation.
3620//
3621// API parameter values that are decorated as "sensitive" in the API will not
3622// be included in the string output. The member name will be present, but the
3623// value will be replaced with "sensitive".
3624func (s DeleteSamplingRuleInput) GoString() string {
3625	return s.String()
3626}
3627
3628// SetRuleARN sets the RuleARN field's value.
3629func (s *DeleteSamplingRuleInput) SetRuleARN(v string) *DeleteSamplingRuleInput {
3630	s.RuleARN = &v
3631	return s
3632}
3633
3634// SetRuleName sets the RuleName field's value.
3635func (s *DeleteSamplingRuleInput) SetRuleName(v string) *DeleteSamplingRuleInput {
3636	s.RuleName = &v
3637	return s
3638}
3639
3640type DeleteSamplingRuleOutput struct {
3641	_ struct{} `type:"structure"`
3642
3643	// The deleted rule definition and metadata.
3644	SamplingRuleRecord *SamplingRuleRecord `type:"structure"`
3645}
3646
3647// String returns the string representation.
3648//
3649// API parameter values that are decorated as "sensitive" in the API will not
3650// be included in the string output. The member name will be present, but the
3651// value will be replaced with "sensitive".
3652func (s DeleteSamplingRuleOutput) String() string {
3653	return awsutil.Prettify(s)
3654}
3655
3656// GoString returns the string representation.
3657//
3658// API parameter values that are decorated as "sensitive" in the API will not
3659// be included in the string output. The member name will be present, but the
3660// value will be replaced with "sensitive".
3661func (s DeleteSamplingRuleOutput) GoString() string {
3662	return s.String()
3663}
3664
3665// SetSamplingRuleRecord sets the SamplingRuleRecord field's value.
3666func (s *DeleteSamplingRuleOutput) SetSamplingRuleRecord(v *SamplingRuleRecord) *DeleteSamplingRuleOutput {
3667	s.SamplingRuleRecord = v
3668	return s
3669}
3670
3671// Information about a connection between two services.
3672type Edge struct {
3673	_ struct{} `type:"structure"`
3674
3675	// Aliases for the edge.
3676	Aliases []*Alias `type:"list"`
3677
3678	// The end time of the last segment on the edge.
3679	EndTime *time.Time `type:"timestamp"`
3680
3681	// Identifier of the edge. Unique within a service map.
3682	ReferenceId *int64 `type:"integer"`
3683
3684	// A histogram that maps the spread of client response times on an edge.
3685	ResponseTimeHistogram []*HistogramEntry `type:"list"`
3686
3687	// The start time of the first segment on the edge.
3688	StartTime *time.Time `type:"timestamp"`
3689
3690	// Response statistics for segments on the edge.
3691	SummaryStatistics *EdgeStatistics `type:"structure"`
3692}
3693
3694// String returns the string representation.
3695//
3696// API parameter values that are decorated as "sensitive" in the API will not
3697// be included in the string output. The member name will be present, but the
3698// value will be replaced with "sensitive".
3699func (s Edge) String() string {
3700	return awsutil.Prettify(s)
3701}
3702
3703// GoString returns the string representation.
3704//
3705// API parameter values that are decorated as "sensitive" in the API will not
3706// be included in the string output. The member name will be present, but the
3707// value will be replaced with "sensitive".
3708func (s Edge) GoString() string {
3709	return s.String()
3710}
3711
3712// SetAliases sets the Aliases field's value.
3713func (s *Edge) SetAliases(v []*Alias) *Edge {
3714	s.Aliases = v
3715	return s
3716}
3717
3718// SetEndTime sets the EndTime field's value.
3719func (s *Edge) SetEndTime(v time.Time) *Edge {
3720	s.EndTime = &v
3721	return s
3722}
3723
3724// SetReferenceId sets the ReferenceId field's value.
3725func (s *Edge) SetReferenceId(v int64) *Edge {
3726	s.ReferenceId = &v
3727	return s
3728}
3729
3730// SetResponseTimeHistogram sets the ResponseTimeHistogram field's value.
3731func (s *Edge) SetResponseTimeHistogram(v []*HistogramEntry) *Edge {
3732	s.ResponseTimeHistogram = v
3733	return s
3734}
3735
3736// SetStartTime sets the StartTime field's value.
3737func (s *Edge) SetStartTime(v time.Time) *Edge {
3738	s.StartTime = &v
3739	return s
3740}
3741
3742// SetSummaryStatistics sets the SummaryStatistics field's value.
3743func (s *Edge) SetSummaryStatistics(v *EdgeStatistics) *Edge {
3744	s.SummaryStatistics = v
3745	return s
3746}
3747
3748// Response statistics for an edge.
3749type EdgeStatistics struct {
3750	_ struct{} `type:"structure"`
3751
3752	// Information about requests that failed with a 4xx Client Error status code.
3753	ErrorStatistics *ErrorStatistics `type:"structure"`
3754
3755	// Information about requests that failed with a 5xx Server Error status code.
3756	FaultStatistics *FaultStatistics `type:"structure"`
3757
3758	// The number of requests that completed with a 2xx Success status code.
3759	OkCount *int64 `type:"long"`
3760
3761	// The total number of completed requests.
3762	TotalCount *int64 `type:"long"`
3763
3764	// The aggregate response time of completed requests.
3765	TotalResponseTime *float64 `type:"double"`
3766}
3767
3768// String returns the string representation.
3769//
3770// API parameter values that are decorated as "sensitive" in the API will not
3771// be included in the string output. The member name will be present, but the
3772// value will be replaced with "sensitive".
3773func (s EdgeStatistics) String() string {
3774	return awsutil.Prettify(s)
3775}
3776
3777// GoString returns the string representation.
3778//
3779// API parameter values that are decorated as "sensitive" in the API will not
3780// be included in the string output. The member name will be present, but the
3781// value will be replaced with "sensitive".
3782func (s EdgeStatistics) GoString() string {
3783	return s.String()
3784}
3785
3786// SetErrorStatistics sets the ErrorStatistics field's value.
3787func (s *EdgeStatistics) SetErrorStatistics(v *ErrorStatistics) *EdgeStatistics {
3788	s.ErrorStatistics = v
3789	return s
3790}
3791
3792// SetFaultStatistics sets the FaultStatistics field's value.
3793func (s *EdgeStatistics) SetFaultStatistics(v *FaultStatistics) *EdgeStatistics {
3794	s.FaultStatistics = v
3795	return s
3796}
3797
3798// SetOkCount sets the OkCount field's value.
3799func (s *EdgeStatistics) SetOkCount(v int64) *EdgeStatistics {
3800	s.OkCount = &v
3801	return s
3802}
3803
3804// SetTotalCount sets the TotalCount field's value.
3805func (s *EdgeStatistics) SetTotalCount(v int64) *EdgeStatistics {
3806	s.TotalCount = &v
3807	return s
3808}
3809
3810// SetTotalResponseTime sets the TotalResponseTime field's value.
3811func (s *EdgeStatistics) SetTotalResponseTime(v float64) *EdgeStatistics {
3812	s.TotalResponseTime = &v
3813	return s
3814}
3815
3816// A configuration document that specifies encryption configuration settings.
3817type EncryptionConfig struct {
3818	_ struct{} `type:"structure"`
3819
3820	// The ID of the KMS key used for encryption, if applicable.
3821	KeyId *string `type:"string"`
3822
3823	// The encryption status. While the status is UPDATING, X-Ray may encrypt data
3824	// with a combination of the new and old settings.
3825	Status *string `type:"string" enum:"EncryptionStatus"`
3826
3827	// The type of encryption. Set to KMS for encryption with KMS keys. Set to NONE
3828	// for default encryption.
3829	Type *string `type:"string" enum:"EncryptionType"`
3830}
3831
3832// String returns the string representation.
3833//
3834// API parameter values that are decorated as "sensitive" in the API will not
3835// be included in the string output. The member name will be present, but the
3836// value will be replaced with "sensitive".
3837func (s EncryptionConfig) String() string {
3838	return awsutil.Prettify(s)
3839}
3840
3841// GoString returns the string representation.
3842//
3843// API parameter values that are decorated as "sensitive" in the API will not
3844// be included in the string output. The member name will be present, but the
3845// value will be replaced with "sensitive".
3846func (s EncryptionConfig) GoString() string {
3847	return s.String()
3848}
3849
3850// SetKeyId sets the KeyId field's value.
3851func (s *EncryptionConfig) SetKeyId(v string) *EncryptionConfig {
3852	s.KeyId = &v
3853	return s
3854}
3855
3856// SetStatus sets the Status field's value.
3857func (s *EncryptionConfig) SetStatus(v string) *EncryptionConfig {
3858	s.Status = &v
3859	return s
3860}
3861
3862// SetType sets the Type field's value.
3863func (s *EncryptionConfig) SetType(v string) *EncryptionConfig {
3864	s.Type = &v
3865	return s
3866}
3867
3868// The root cause of a trace summary error.
3869type ErrorRootCause struct {
3870	_ struct{} `type:"structure"`
3871
3872	// A flag that denotes that the root cause impacts the trace client.
3873	ClientImpacting *bool `type:"boolean"`
3874
3875	// A list of services corresponding to an error. A service identifies a segment
3876	// and it contains a name, account ID, type, and inferred flag.
3877	Services []*ErrorRootCauseService `type:"list"`
3878}
3879
3880// String returns the string representation.
3881//
3882// API parameter values that are decorated as "sensitive" in the API will not
3883// be included in the string output. The member name will be present, but the
3884// value will be replaced with "sensitive".
3885func (s ErrorRootCause) String() string {
3886	return awsutil.Prettify(s)
3887}
3888
3889// GoString returns the string representation.
3890//
3891// API parameter values that are decorated as "sensitive" in the API will not
3892// be included in the string output. The member name will be present, but the
3893// value will be replaced with "sensitive".
3894func (s ErrorRootCause) GoString() string {
3895	return s.String()
3896}
3897
3898// SetClientImpacting sets the ClientImpacting field's value.
3899func (s *ErrorRootCause) SetClientImpacting(v bool) *ErrorRootCause {
3900	s.ClientImpacting = &v
3901	return s
3902}
3903
3904// SetServices sets the Services field's value.
3905func (s *ErrorRootCause) SetServices(v []*ErrorRootCauseService) *ErrorRootCause {
3906	s.Services = v
3907	return s
3908}
3909
3910// A collection of segments and corresponding subsegments associated to a trace
3911// summary error.
3912type ErrorRootCauseEntity struct {
3913	_ struct{} `type:"structure"`
3914
3915	// The types and messages of the exceptions.
3916	Exceptions []*RootCauseException `type:"list"`
3917
3918	// The name of the entity.
3919	Name *string `type:"string"`
3920
3921	// A flag that denotes a remote subsegment.
3922	Remote *bool `type:"boolean"`
3923}
3924
3925// String returns the string representation.
3926//
3927// API parameter values that are decorated as "sensitive" in the API will not
3928// be included in the string output. The member name will be present, but the
3929// value will be replaced with "sensitive".
3930func (s ErrorRootCauseEntity) String() string {
3931	return awsutil.Prettify(s)
3932}
3933
3934// GoString returns the string representation.
3935//
3936// API parameter values that are decorated as "sensitive" in the API will not
3937// be included in the string output. The member name will be present, but the
3938// value will be replaced with "sensitive".
3939func (s ErrorRootCauseEntity) GoString() string {
3940	return s.String()
3941}
3942
3943// SetExceptions sets the Exceptions field's value.
3944func (s *ErrorRootCauseEntity) SetExceptions(v []*RootCauseException) *ErrorRootCauseEntity {
3945	s.Exceptions = v
3946	return s
3947}
3948
3949// SetName sets the Name field's value.
3950func (s *ErrorRootCauseEntity) SetName(v string) *ErrorRootCauseEntity {
3951	s.Name = &v
3952	return s
3953}
3954
3955// SetRemote sets the Remote field's value.
3956func (s *ErrorRootCauseEntity) SetRemote(v bool) *ErrorRootCauseEntity {
3957	s.Remote = &v
3958	return s
3959}
3960
3961// A collection of fields identifying the services in a trace summary error.
3962type ErrorRootCauseService struct {
3963	_ struct{} `type:"structure"`
3964
3965	// The account ID associated to the service.
3966	AccountId *string `type:"string"`
3967
3968	// The path of root cause entities found on the service.
3969	EntityPath []*ErrorRootCauseEntity `type:"list"`
3970
3971	// A Boolean value indicating if the service is inferred from the trace.
3972	Inferred *bool `type:"boolean"`
3973
3974	// The service name.
3975	Name *string `type:"string"`
3976
3977	// A collection of associated service names.
3978	Names []*string `type:"list"`
3979
3980	// The type associated to the service.
3981	Type *string `type:"string"`
3982}
3983
3984// String returns the string representation.
3985//
3986// API parameter values that are decorated as "sensitive" in the API will not
3987// be included in the string output. The member name will be present, but the
3988// value will be replaced with "sensitive".
3989func (s ErrorRootCauseService) String() string {
3990	return awsutil.Prettify(s)
3991}
3992
3993// GoString returns the string representation.
3994//
3995// API parameter values that are decorated as "sensitive" in the API will not
3996// be included in the string output. The member name will be present, but the
3997// value will be replaced with "sensitive".
3998func (s ErrorRootCauseService) GoString() string {
3999	return s.String()
4000}
4001
4002// SetAccountId sets the AccountId field's value.
4003func (s *ErrorRootCauseService) SetAccountId(v string) *ErrorRootCauseService {
4004	s.AccountId = &v
4005	return s
4006}
4007
4008// SetEntityPath sets the EntityPath field's value.
4009func (s *ErrorRootCauseService) SetEntityPath(v []*ErrorRootCauseEntity) *ErrorRootCauseService {
4010	s.EntityPath = v
4011	return s
4012}
4013
4014// SetInferred sets the Inferred field's value.
4015func (s *ErrorRootCauseService) SetInferred(v bool) *ErrorRootCauseService {
4016	s.Inferred = &v
4017	return s
4018}
4019
4020// SetName sets the Name field's value.
4021func (s *ErrorRootCauseService) SetName(v string) *ErrorRootCauseService {
4022	s.Name = &v
4023	return s
4024}
4025
4026// SetNames sets the Names field's value.
4027func (s *ErrorRootCauseService) SetNames(v []*string) *ErrorRootCauseService {
4028	s.Names = v
4029	return s
4030}
4031
4032// SetType sets the Type field's value.
4033func (s *ErrorRootCauseService) SetType(v string) *ErrorRootCauseService {
4034	s.Type = &v
4035	return s
4036}
4037
4038// Information about requests that failed with a 4xx Client Error status code.
4039type ErrorStatistics struct {
4040	_ struct{} `type:"structure"`
4041
4042	// The number of requests that failed with untracked 4xx Client Error status
4043	// codes.
4044	OtherCount *int64 `type:"long"`
4045
4046	// The number of requests that failed with a 419 throttling status code.
4047	ThrottleCount *int64 `type:"long"`
4048
4049	// The total number of requests that failed with a 4xx Client Error status code.
4050	TotalCount *int64 `type:"long"`
4051}
4052
4053// String returns the string representation.
4054//
4055// API parameter values that are decorated as "sensitive" in the API will not
4056// be included in the string output. The member name will be present, but the
4057// value will be replaced with "sensitive".
4058func (s ErrorStatistics) String() string {
4059	return awsutil.Prettify(s)
4060}
4061
4062// GoString returns the string representation.
4063//
4064// API parameter values that are decorated as "sensitive" in the API will not
4065// be included in the string output. The member name will be present, but the
4066// value will be replaced with "sensitive".
4067func (s ErrorStatistics) GoString() string {
4068	return s.String()
4069}
4070
4071// SetOtherCount sets the OtherCount field's value.
4072func (s *ErrorStatistics) SetOtherCount(v int64) *ErrorStatistics {
4073	s.OtherCount = &v
4074	return s
4075}
4076
4077// SetThrottleCount sets the ThrottleCount field's value.
4078func (s *ErrorStatistics) SetThrottleCount(v int64) *ErrorStatistics {
4079	s.ThrottleCount = &v
4080	return s
4081}
4082
4083// SetTotalCount sets the TotalCount field's value.
4084func (s *ErrorStatistics) SetTotalCount(v int64) *ErrorStatistics {
4085	s.TotalCount = &v
4086	return s
4087}
4088
4089// The root cause information for a trace summary fault.
4090type FaultRootCause struct {
4091	_ struct{} `type:"structure"`
4092
4093	// A flag that denotes that the root cause impacts the trace client.
4094	ClientImpacting *bool `type:"boolean"`
4095
4096	// A list of corresponding services. A service identifies a segment and it contains
4097	// a name, account ID, type, and inferred flag.
4098	Services []*FaultRootCauseService `type:"list"`
4099}
4100
4101// String returns the string representation.
4102//
4103// API parameter values that are decorated as "sensitive" in the API will not
4104// be included in the string output. The member name will be present, but the
4105// value will be replaced with "sensitive".
4106func (s FaultRootCause) String() string {
4107	return awsutil.Prettify(s)
4108}
4109
4110// GoString returns the string representation.
4111//
4112// API parameter values that are decorated as "sensitive" in the API will not
4113// be included in the string output. The member name will be present, but the
4114// value will be replaced with "sensitive".
4115func (s FaultRootCause) GoString() string {
4116	return s.String()
4117}
4118
4119// SetClientImpacting sets the ClientImpacting field's value.
4120func (s *FaultRootCause) SetClientImpacting(v bool) *FaultRootCause {
4121	s.ClientImpacting = &v
4122	return s
4123}
4124
4125// SetServices sets the Services field's value.
4126func (s *FaultRootCause) SetServices(v []*FaultRootCauseService) *FaultRootCause {
4127	s.Services = v
4128	return s
4129}
4130
4131// A collection of segments and corresponding subsegments associated to a trace
4132// summary fault error.
4133type FaultRootCauseEntity struct {
4134	_ struct{} `type:"structure"`
4135
4136	// The types and messages of the exceptions.
4137	Exceptions []*RootCauseException `type:"list"`
4138
4139	// The name of the entity.
4140	Name *string `type:"string"`
4141
4142	// A flag that denotes a remote subsegment.
4143	Remote *bool `type:"boolean"`
4144}
4145
4146// String returns the string representation.
4147//
4148// API parameter values that are decorated as "sensitive" in the API will not
4149// be included in the string output. The member name will be present, but the
4150// value will be replaced with "sensitive".
4151func (s FaultRootCauseEntity) String() string {
4152	return awsutil.Prettify(s)
4153}
4154
4155// GoString returns the string representation.
4156//
4157// API parameter values that are decorated as "sensitive" in the API will not
4158// be included in the string output. The member name will be present, but the
4159// value will be replaced with "sensitive".
4160func (s FaultRootCauseEntity) GoString() string {
4161	return s.String()
4162}
4163
4164// SetExceptions sets the Exceptions field's value.
4165func (s *FaultRootCauseEntity) SetExceptions(v []*RootCauseException) *FaultRootCauseEntity {
4166	s.Exceptions = v
4167	return s
4168}
4169
4170// SetName sets the Name field's value.
4171func (s *FaultRootCauseEntity) SetName(v string) *FaultRootCauseEntity {
4172	s.Name = &v
4173	return s
4174}
4175
4176// SetRemote sets the Remote field's value.
4177func (s *FaultRootCauseEntity) SetRemote(v bool) *FaultRootCauseEntity {
4178	s.Remote = &v
4179	return s
4180}
4181
4182// A collection of fields identifying the services in a trace summary fault.
4183type FaultRootCauseService struct {
4184	_ struct{} `type:"structure"`
4185
4186	// The account ID associated to the service.
4187	AccountId *string `type:"string"`
4188
4189	// The path of root cause entities found on the service.
4190	EntityPath []*FaultRootCauseEntity `type:"list"`
4191
4192	// A Boolean value indicating if the service is inferred from the trace.
4193	Inferred *bool `type:"boolean"`
4194
4195	// The service name.
4196	Name *string `type:"string"`
4197
4198	// A collection of associated service names.
4199	Names []*string `type:"list"`
4200
4201	// The type associated to the service.
4202	Type *string `type:"string"`
4203}
4204
4205// String returns the string representation.
4206//
4207// API parameter values that are decorated as "sensitive" in the API will not
4208// be included in the string output. The member name will be present, but the
4209// value will be replaced with "sensitive".
4210func (s FaultRootCauseService) String() string {
4211	return awsutil.Prettify(s)
4212}
4213
4214// GoString returns the string representation.
4215//
4216// API parameter values that are decorated as "sensitive" in the API will not
4217// be included in the string output. The member name will be present, but the
4218// value will be replaced with "sensitive".
4219func (s FaultRootCauseService) GoString() string {
4220	return s.String()
4221}
4222
4223// SetAccountId sets the AccountId field's value.
4224func (s *FaultRootCauseService) SetAccountId(v string) *FaultRootCauseService {
4225	s.AccountId = &v
4226	return s
4227}
4228
4229// SetEntityPath sets the EntityPath field's value.
4230func (s *FaultRootCauseService) SetEntityPath(v []*FaultRootCauseEntity) *FaultRootCauseService {
4231	s.EntityPath = v
4232	return s
4233}
4234
4235// SetInferred sets the Inferred field's value.
4236func (s *FaultRootCauseService) SetInferred(v bool) *FaultRootCauseService {
4237	s.Inferred = &v
4238	return s
4239}
4240
4241// SetName sets the Name field's value.
4242func (s *FaultRootCauseService) SetName(v string) *FaultRootCauseService {
4243	s.Name = &v
4244	return s
4245}
4246
4247// SetNames sets the Names field's value.
4248func (s *FaultRootCauseService) SetNames(v []*string) *FaultRootCauseService {
4249	s.Names = v
4250	return s
4251}
4252
4253// SetType sets the Type field's value.
4254func (s *FaultRootCauseService) SetType(v string) *FaultRootCauseService {
4255	s.Type = &v
4256	return s
4257}
4258
4259// Information about requests that failed with a 5xx Server Error status code.
4260type FaultStatistics struct {
4261	_ struct{} `type:"structure"`
4262
4263	// The number of requests that failed with untracked 5xx Server Error status
4264	// codes.
4265	OtherCount *int64 `type:"long"`
4266
4267	// The total number of requests that failed with a 5xx Server Error status code.
4268	TotalCount *int64 `type:"long"`
4269}
4270
4271// String returns the string representation.
4272//
4273// API parameter values that are decorated as "sensitive" in the API will not
4274// be included in the string output. The member name will be present, but the
4275// value will be replaced with "sensitive".
4276func (s FaultStatistics) String() string {
4277	return awsutil.Prettify(s)
4278}
4279
4280// GoString returns the string representation.
4281//
4282// API parameter values that are decorated as "sensitive" in the API will not
4283// be included in the string output. The member name will be present, but the
4284// value will be replaced with "sensitive".
4285func (s FaultStatistics) GoString() string {
4286	return s.String()
4287}
4288
4289// SetOtherCount sets the OtherCount field's value.
4290func (s *FaultStatistics) SetOtherCount(v int64) *FaultStatistics {
4291	s.OtherCount = &v
4292	return s
4293}
4294
4295// SetTotalCount sets the TotalCount field's value.
4296func (s *FaultStatistics) SetTotalCount(v int64) *FaultStatistics {
4297	s.TotalCount = &v
4298	return s
4299}
4300
4301// The predicted high and low fault count. This is used to determine if a service
4302// has become anomalous and if an insight should be created.
4303type ForecastStatistics struct {
4304	_ struct{} `type:"structure"`
4305
4306	// The upper limit of fault counts for a service.
4307	FaultCountHigh *int64 `type:"long"`
4308
4309	// The lower limit of fault counts for a service.
4310	FaultCountLow *int64 `type:"long"`
4311}
4312
4313// String returns the string representation.
4314//
4315// API parameter values that are decorated as "sensitive" in the API will not
4316// be included in the string output. The member name will be present, but the
4317// value will be replaced with "sensitive".
4318func (s ForecastStatistics) String() string {
4319	return awsutil.Prettify(s)
4320}
4321
4322// GoString returns the string representation.
4323//
4324// API parameter values that are decorated as "sensitive" in the API will not
4325// be included in the string output. The member name will be present, but the
4326// value will be replaced with "sensitive".
4327func (s ForecastStatistics) GoString() string {
4328	return s.String()
4329}
4330
4331// SetFaultCountHigh sets the FaultCountHigh field's value.
4332func (s *ForecastStatistics) SetFaultCountHigh(v int64) *ForecastStatistics {
4333	s.FaultCountHigh = &v
4334	return s
4335}
4336
4337// SetFaultCountLow sets the FaultCountLow field's value.
4338func (s *ForecastStatistics) SetFaultCountLow(v int64) *ForecastStatistics {
4339	s.FaultCountLow = &v
4340	return s
4341}
4342
4343type GetEncryptionConfigInput struct {
4344	_ struct{} `type:"structure" nopayload:"true"`
4345}
4346
4347// String returns the string representation.
4348//
4349// API parameter values that are decorated as "sensitive" in the API will not
4350// be included in the string output. The member name will be present, but the
4351// value will be replaced with "sensitive".
4352func (s GetEncryptionConfigInput) String() string {
4353	return awsutil.Prettify(s)
4354}
4355
4356// GoString returns the string representation.
4357//
4358// API parameter values that are decorated as "sensitive" in the API will not
4359// be included in the string output. The member name will be present, but the
4360// value will be replaced with "sensitive".
4361func (s GetEncryptionConfigInput) GoString() string {
4362	return s.String()
4363}
4364
4365type GetEncryptionConfigOutput struct {
4366	_ struct{} `type:"structure"`
4367
4368	// The encryption configuration document.
4369	EncryptionConfig *EncryptionConfig `type:"structure"`
4370}
4371
4372// String returns the string representation.
4373//
4374// API parameter values that are decorated as "sensitive" in the API will not
4375// be included in the string output. The member name will be present, but the
4376// value will be replaced with "sensitive".
4377func (s GetEncryptionConfigOutput) String() string {
4378	return awsutil.Prettify(s)
4379}
4380
4381// GoString returns the string representation.
4382//
4383// API parameter values that are decorated as "sensitive" in the API will not
4384// be included in the string output. The member name will be present, but the
4385// value will be replaced with "sensitive".
4386func (s GetEncryptionConfigOutput) GoString() string {
4387	return s.String()
4388}
4389
4390// SetEncryptionConfig sets the EncryptionConfig field's value.
4391func (s *GetEncryptionConfigOutput) SetEncryptionConfig(v *EncryptionConfig) *GetEncryptionConfigOutput {
4392	s.EncryptionConfig = v
4393	return s
4394}
4395
4396type GetGroupInput struct {
4397	_ struct{} `type:"structure"`
4398
4399	// The ARN of the group that was generated on creation.
4400	GroupARN *string `min:"1" type:"string"`
4401
4402	// The case-sensitive name of the group.
4403	GroupName *string `min:"1" type:"string"`
4404}
4405
4406// String returns the string representation.
4407//
4408// API parameter values that are decorated as "sensitive" in the API will not
4409// be included in the string output. The member name will be present, but the
4410// value will be replaced with "sensitive".
4411func (s GetGroupInput) String() string {
4412	return awsutil.Prettify(s)
4413}
4414
4415// GoString returns the string representation.
4416//
4417// API parameter values that are decorated as "sensitive" in the API will not
4418// be included in the string output. The member name will be present, but the
4419// value will be replaced with "sensitive".
4420func (s GetGroupInput) GoString() string {
4421	return s.String()
4422}
4423
4424// Validate inspects the fields of the type to determine if they are valid.
4425func (s *GetGroupInput) Validate() error {
4426	invalidParams := request.ErrInvalidParams{Context: "GetGroupInput"}
4427	if s.GroupARN != nil && len(*s.GroupARN) < 1 {
4428		invalidParams.Add(request.NewErrParamMinLen("GroupARN", 1))
4429	}
4430	if s.GroupName != nil && len(*s.GroupName) < 1 {
4431		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
4432	}
4433
4434	if invalidParams.Len() > 0 {
4435		return invalidParams
4436	}
4437	return nil
4438}
4439
4440// SetGroupARN sets the GroupARN field's value.
4441func (s *GetGroupInput) SetGroupARN(v string) *GetGroupInput {
4442	s.GroupARN = &v
4443	return s
4444}
4445
4446// SetGroupName sets the GroupName field's value.
4447func (s *GetGroupInput) SetGroupName(v string) *GetGroupInput {
4448	s.GroupName = &v
4449	return s
4450}
4451
4452type GetGroupOutput struct {
4453	_ struct{} `type:"structure"`
4454
4455	// The group that was requested. Contains the name of the group, the ARN of
4456	// the group, the filter expression, and the insight configuration assigned
4457	// to the group.
4458	Group *Group `type:"structure"`
4459}
4460
4461// String returns the string representation.
4462//
4463// API parameter values that are decorated as "sensitive" in the API will not
4464// be included in the string output. The member name will be present, but the
4465// value will be replaced with "sensitive".
4466func (s GetGroupOutput) String() string {
4467	return awsutil.Prettify(s)
4468}
4469
4470// GoString returns the string representation.
4471//
4472// API parameter values that are decorated as "sensitive" in the API will not
4473// be included in the string output. The member name will be present, but the
4474// value will be replaced with "sensitive".
4475func (s GetGroupOutput) GoString() string {
4476	return s.String()
4477}
4478
4479// SetGroup sets the Group field's value.
4480func (s *GetGroupOutput) SetGroup(v *Group) *GetGroupOutput {
4481	s.Group = v
4482	return s
4483}
4484
4485type GetGroupsInput struct {
4486	_ struct{} `type:"structure"`
4487
4488	// Pagination token.
4489	NextToken *string `min:"1" type:"string"`
4490}
4491
4492// String returns the string representation.
4493//
4494// API parameter values that are decorated as "sensitive" in the API will not
4495// be included in the string output. The member name will be present, but the
4496// value will be replaced with "sensitive".
4497func (s GetGroupsInput) String() string {
4498	return awsutil.Prettify(s)
4499}
4500
4501// GoString returns the string representation.
4502//
4503// API parameter values that are decorated as "sensitive" in the API will not
4504// be included in the string output. The member name will be present, but the
4505// value will be replaced with "sensitive".
4506func (s GetGroupsInput) GoString() string {
4507	return s.String()
4508}
4509
4510// Validate inspects the fields of the type to determine if they are valid.
4511func (s *GetGroupsInput) Validate() error {
4512	invalidParams := request.ErrInvalidParams{Context: "GetGroupsInput"}
4513	if s.NextToken != nil && len(*s.NextToken) < 1 {
4514		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4515	}
4516
4517	if invalidParams.Len() > 0 {
4518		return invalidParams
4519	}
4520	return nil
4521}
4522
4523// SetNextToken sets the NextToken field's value.
4524func (s *GetGroupsInput) SetNextToken(v string) *GetGroupsInput {
4525	s.NextToken = &v
4526	return s
4527}
4528
4529type GetGroupsOutput struct {
4530	_ struct{} `type:"structure"`
4531
4532	// The collection of all active groups.
4533	Groups []*GroupSummary `type:"list"`
4534
4535	// Pagination token.
4536	NextToken *string `type:"string"`
4537}
4538
4539// String returns the string representation.
4540//
4541// API parameter values that are decorated as "sensitive" in the API will not
4542// be included in the string output. The member name will be present, but the
4543// value will be replaced with "sensitive".
4544func (s GetGroupsOutput) String() string {
4545	return awsutil.Prettify(s)
4546}
4547
4548// GoString returns the string representation.
4549//
4550// API parameter values that are decorated as "sensitive" in the API will not
4551// be included in the string output. The member name will be present, but the
4552// value will be replaced with "sensitive".
4553func (s GetGroupsOutput) GoString() string {
4554	return s.String()
4555}
4556
4557// SetGroups sets the Groups field's value.
4558func (s *GetGroupsOutput) SetGroups(v []*GroupSummary) *GetGroupsOutput {
4559	s.Groups = v
4560	return s
4561}
4562
4563// SetNextToken sets the NextToken field's value.
4564func (s *GetGroupsOutput) SetNextToken(v string) *GetGroupsOutput {
4565	s.NextToken = &v
4566	return s
4567}
4568
4569type GetInsightEventsInput struct {
4570	_ struct{} `type:"structure"`
4571
4572	// The insight's unique identifier. Use the GetInsightSummaries action to retrieve
4573	// an InsightId.
4574	//
4575	// InsightId is a required field
4576	InsightId *string `type:"string" required:"true"`
4577
4578	// Used to retrieve at most the specified value of events.
4579	MaxResults *int64 `min:"1" type:"integer"`
4580
4581	// Specify the pagination token returned by a previous request to retrieve the
4582	// next page of events.
4583	NextToken *string `min:"1" type:"string"`
4584}
4585
4586// String returns the string representation.
4587//
4588// API parameter values that are decorated as "sensitive" in the API will not
4589// be included in the string output. The member name will be present, but the
4590// value will be replaced with "sensitive".
4591func (s GetInsightEventsInput) String() string {
4592	return awsutil.Prettify(s)
4593}
4594
4595// GoString returns the string representation.
4596//
4597// API parameter values that are decorated as "sensitive" in the API will not
4598// be included in the string output. The member name will be present, but the
4599// value will be replaced with "sensitive".
4600func (s GetInsightEventsInput) GoString() string {
4601	return s.String()
4602}
4603
4604// Validate inspects the fields of the type to determine if they are valid.
4605func (s *GetInsightEventsInput) Validate() error {
4606	invalidParams := request.ErrInvalidParams{Context: "GetInsightEventsInput"}
4607	if s.InsightId == nil {
4608		invalidParams.Add(request.NewErrParamRequired("InsightId"))
4609	}
4610	if s.MaxResults != nil && *s.MaxResults < 1 {
4611		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4612	}
4613	if s.NextToken != nil && len(*s.NextToken) < 1 {
4614		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4615	}
4616
4617	if invalidParams.Len() > 0 {
4618		return invalidParams
4619	}
4620	return nil
4621}
4622
4623// SetInsightId sets the InsightId field's value.
4624func (s *GetInsightEventsInput) SetInsightId(v string) *GetInsightEventsInput {
4625	s.InsightId = &v
4626	return s
4627}
4628
4629// SetMaxResults sets the MaxResults field's value.
4630func (s *GetInsightEventsInput) SetMaxResults(v int64) *GetInsightEventsInput {
4631	s.MaxResults = &v
4632	return s
4633}
4634
4635// SetNextToken sets the NextToken field's value.
4636func (s *GetInsightEventsInput) SetNextToken(v string) *GetInsightEventsInput {
4637	s.NextToken = &v
4638	return s
4639}
4640
4641type GetInsightEventsOutput struct {
4642	_ struct{} `type:"structure"`
4643
4644	// A detailed description of the event. This includes the time of the event,
4645	// client and root cause impact statistics, and the top anomalous service at
4646	// the time of the event.
4647	InsightEvents []*InsightEvent `type:"list"`
4648
4649	// Use this token to retrieve the next page of insight events.
4650	NextToken *string `min:"1" type:"string"`
4651}
4652
4653// String returns the string representation.
4654//
4655// API parameter values that are decorated as "sensitive" in the API will not
4656// be included in the string output. The member name will be present, but the
4657// value will be replaced with "sensitive".
4658func (s GetInsightEventsOutput) String() string {
4659	return awsutil.Prettify(s)
4660}
4661
4662// GoString returns the string representation.
4663//
4664// API parameter values that are decorated as "sensitive" in the API will not
4665// be included in the string output. The member name will be present, but the
4666// value will be replaced with "sensitive".
4667func (s GetInsightEventsOutput) GoString() string {
4668	return s.String()
4669}
4670
4671// SetInsightEvents sets the InsightEvents field's value.
4672func (s *GetInsightEventsOutput) SetInsightEvents(v []*InsightEvent) *GetInsightEventsOutput {
4673	s.InsightEvents = v
4674	return s
4675}
4676
4677// SetNextToken sets the NextToken field's value.
4678func (s *GetInsightEventsOutput) SetNextToken(v string) *GetInsightEventsOutput {
4679	s.NextToken = &v
4680	return s
4681}
4682
4683type GetInsightImpactGraphInput struct {
4684	_ struct{} `type:"structure"`
4685
4686	// The estimated end time of the insight, in Unix time seconds. The EndTime
4687	// is exclusive of the value provided. The time range between the start time
4688	// and end time can't be more than six hours.
4689	//
4690	// EndTime is a required field
4691	EndTime *time.Time `type:"timestamp" required:"true"`
4692
4693	// The insight's unique identifier. Use the GetInsightSummaries action to retrieve
4694	// an InsightId.
4695	//
4696	// InsightId is a required field
4697	InsightId *string `type:"string" required:"true"`
4698
4699	// Specify the pagination token returned by a previous request to retrieve the
4700	// next page of results.
4701	NextToken *string `min:"1" type:"string"`
4702
4703	// The estimated start time of the insight, in Unix time seconds. The StartTime
4704	// is inclusive of the value provided and can't be more than 30 days old.
4705	//
4706	// StartTime is a required field
4707	StartTime *time.Time `type:"timestamp" required:"true"`
4708}
4709
4710// String returns the string representation.
4711//
4712// API parameter values that are decorated as "sensitive" in the API will not
4713// be included in the string output. The member name will be present, but the
4714// value will be replaced with "sensitive".
4715func (s GetInsightImpactGraphInput) String() string {
4716	return awsutil.Prettify(s)
4717}
4718
4719// GoString returns the string representation.
4720//
4721// API parameter values that are decorated as "sensitive" in the API will not
4722// be included in the string output. The member name will be present, but the
4723// value will be replaced with "sensitive".
4724func (s GetInsightImpactGraphInput) GoString() string {
4725	return s.String()
4726}
4727
4728// Validate inspects the fields of the type to determine if they are valid.
4729func (s *GetInsightImpactGraphInput) Validate() error {
4730	invalidParams := request.ErrInvalidParams{Context: "GetInsightImpactGraphInput"}
4731	if s.EndTime == nil {
4732		invalidParams.Add(request.NewErrParamRequired("EndTime"))
4733	}
4734	if s.InsightId == nil {
4735		invalidParams.Add(request.NewErrParamRequired("InsightId"))
4736	}
4737	if s.NextToken != nil && len(*s.NextToken) < 1 {
4738		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4739	}
4740	if s.StartTime == nil {
4741		invalidParams.Add(request.NewErrParamRequired("StartTime"))
4742	}
4743
4744	if invalidParams.Len() > 0 {
4745		return invalidParams
4746	}
4747	return nil
4748}
4749
4750// SetEndTime sets the EndTime field's value.
4751func (s *GetInsightImpactGraphInput) SetEndTime(v time.Time) *GetInsightImpactGraphInput {
4752	s.EndTime = &v
4753	return s
4754}
4755
4756// SetInsightId sets the InsightId field's value.
4757func (s *GetInsightImpactGraphInput) SetInsightId(v string) *GetInsightImpactGraphInput {
4758	s.InsightId = &v
4759	return s
4760}
4761
4762// SetNextToken sets the NextToken field's value.
4763func (s *GetInsightImpactGraphInput) SetNextToken(v string) *GetInsightImpactGraphInput {
4764	s.NextToken = &v
4765	return s
4766}
4767
4768// SetStartTime sets the StartTime field's value.
4769func (s *GetInsightImpactGraphInput) SetStartTime(v time.Time) *GetInsightImpactGraphInput {
4770	s.StartTime = &v
4771	return s
4772}
4773
4774type GetInsightImpactGraphOutput struct {
4775	_ struct{} `type:"structure"`
4776
4777	// The provided end time.
4778	EndTime *time.Time `type:"timestamp"`
4779
4780	// The insight's unique identifier.
4781	InsightId *string `type:"string"`
4782
4783	// Pagination token.
4784	NextToken *string `min:"1" type:"string"`
4785
4786	// The time, in Unix seconds, at which the service graph ended.
4787	ServiceGraphEndTime *time.Time `type:"timestamp"`
4788
4789	// The time, in Unix seconds, at which the service graph started.
4790	ServiceGraphStartTime *time.Time `type:"timestamp"`
4791
4792	// The Amazon Web Services instrumented services related to the insight.
4793	Services []*InsightImpactGraphService `type:"list"`
4794
4795	// The provided start time.
4796	StartTime *time.Time `type:"timestamp"`
4797}
4798
4799// String returns the string representation.
4800//
4801// API parameter values that are decorated as "sensitive" in the API will not
4802// be included in the string output. The member name will be present, but the
4803// value will be replaced with "sensitive".
4804func (s GetInsightImpactGraphOutput) String() string {
4805	return awsutil.Prettify(s)
4806}
4807
4808// GoString returns the string representation.
4809//
4810// API parameter values that are decorated as "sensitive" in the API will not
4811// be included in the string output. The member name will be present, but the
4812// value will be replaced with "sensitive".
4813func (s GetInsightImpactGraphOutput) GoString() string {
4814	return s.String()
4815}
4816
4817// SetEndTime sets the EndTime field's value.
4818func (s *GetInsightImpactGraphOutput) SetEndTime(v time.Time) *GetInsightImpactGraphOutput {
4819	s.EndTime = &v
4820	return s
4821}
4822
4823// SetInsightId sets the InsightId field's value.
4824func (s *GetInsightImpactGraphOutput) SetInsightId(v string) *GetInsightImpactGraphOutput {
4825	s.InsightId = &v
4826	return s
4827}
4828
4829// SetNextToken sets the NextToken field's value.
4830func (s *GetInsightImpactGraphOutput) SetNextToken(v string) *GetInsightImpactGraphOutput {
4831	s.NextToken = &v
4832	return s
4833}
4834
4835// SetServiceGraphEndTime sets the ServiceGraphEndTime field's value.
4836func (s *GetInsightImpactGraphOutput) SetServiceGraphEndTime(v time.Time) *GetInsightImpactGraphOutput {
4837	s.ServiceGraphEndTime = &v
4838	return s
4839}
4840
4841// SetServiceGraphStartTime sets the ServiceGraphStartTime field's value.
4842func (s *GetInsightImpactGraphOutput) SetServiceGraphStartTime(v time.Time) *GetInsightImpactGraphOutput {
4843	s.ServiceGraphStartTime = &v
4844	return s
4845}
4846
4847// SetServices sets the Services field's value.
4848func (s *GetInsightImpactGraphOutput) SetServices(v []*InsightImpactGraphService) *GetInsightImpactGraphOutput {
4849	s.Services = v
4850	return s
4851}
4852
4853// SetStartTime sets the StartTime field's value.
4854func (s *GetInsightImpactGraphOutput) SetStartTime(v time.Time) *GetInsightImpactGraphOutput {
4855	s.StartTime = &v
4856	return s
4857}
4858
4859type GetInsightInput struct {
4860	_ struct{} `type:"structure"`
4861
4862	// The insight's unique identifier. Use the GetInsightSummaries action to retrieve
4863	// an InsightId.
4864	//
4865	// InsightId is a required field
4866	InsightId *string `type:"string" required:"true"`
4867}
4868
4869// String returns the string representation.
4870//
4871// API parameter values that are decorated as "sensitive" in the API will not
4872// be included in the string output. The member name will be present, but the
4873// value will be replaced with "sensitive".
4874func (s GetInsightInput) String() string {
4875	return awsutil.Prettify(s)
4876}
4877
4878// GoString returns the string representation.
4879//
4880// API parameter values that are decorated as "sensitive" in the API will not
4881// be included in the string output. The member name will be present, but the
4882// value will be replaced with "sensitive".
4883func (s GetInsightInput) GoString() string {
4884	return s.String()
4885}
4886
4887// Validate inspects the fields of the type to determine if they are valid.
4888func (s *GetInsightInput) Validate() error {
4889	invalidParams := request.ErrInvalidParams{Context: "GetInsightInput"}
4890	if s.InsightId == nil {
4891		invalidParams.Add(request.NewErrParamRequired("InsightId"))
4892	}
4893
4894	if invalidParams.Len() > 0 {
4895		return invalidParams
4896	}
4897	return nil
4898}
4899
4900// SetInsightId sets the InsightId field's value.
4901func (s *GetInsightInput) SetInsightId(v string) *GetInsightInput {
4902	s.InsightId = &v
4903	return s
4904}
4905
4906type GetInsightOutput struct {
4907	_ struct{} `type:"structure"`
4908
4909	// The summary information of an insight.
4910	Insight *Insight `type:"structure"`
4911}
4912
4913// String returns the string representation.
4914//
4915// API parameter values that are decorated as "sensitive" in the API will not
4916// be included in the string output. The member name will be present, but the
4917// value will be replaced with "sensitive".
4918func (s GetInsightOutput) String() string {
4919	return awsutil.Prettify(s)
4920}
4921
4922// GoString returns the string representation.
4923//
4924// API parameter values that are decorated as "sensitive" in the API will not
4925// be included in the string output. The member name will be present, but the
4926// value will be replaced with "sensitive".
4927func (s GetInsightOutput) GoString() string {
4928	return s.String()
4929}
4930
4931// SetInsight sets the Insight field's value.
4932func (s *GetInsightOutput) SetInsight(v *Insight) *GetInsightOutput {
4933	s.Insight = v
4934	return s
4935}
4936
4937type GetInsightSummariesInput struct {
4938	_ struct{} `type:"structure"`
4939
4940	// The end of the time frame in which the insights ended. The end time can't
4941	// be more than 30 days old.
4942	//
4943	// EndTime is a required field
4944	EndTime *time.Time `type:"timestamp" required:"true"`
4945
4946	// The Amazon Resource Name (ARN) of the group. Required if the GroupName isn't
4947	// provided.
4948	GroupARN *string `min:"1" type:"string"`
4949
4950	// The name of the group. Required if the GroupARN isn't provided.
4951	GroupName *string `min:"1" type:"string"`
4952
4953	// The maximum number of results to display.
4954	MaxResults *int64 `min:"1" type:"integer"`
4955
4956	// Pagination token.
4957	NextToken *string `min:"1" type:"string"`
4958
4959	// The beginning of the time frame in which the insights started. The start
4960	// time can't be more than 30 days old.
4961	//
4962	// StartTime is a required field
4963	StartTime *time.Time `type:"timestamp" required:"true"`
4964
4965	// The list of insight states.
4966	States []*string `type:"list"`
4967}
4968
4969// String returns the string representation.
4970//
4971// API parameter values that are decorated as "sensitive" in the API will not
4972// be included in the string output. The member name will be present, but the
4973// value will be replaced with "sensitive".
4974func (s GetInsightSummariesInput) String() string {
4975	return awsutil.Prettify(s)
4976}
4977
4978// GoString returns the string representation.
4979//
4980// API parameter values that are decorated as "sensitive" in the API will not
4981// be included in the string output. The member name will be present, but the
4982// value will be replaced with "sensitive".
4983func (s GetInsightSummariesInput) GoString() string {
4984	return s.String()
4985}
4986
4987// Validate inspects the fields of the type to determine if they are valid.
4988func (s *GetInsightSummariesInput) Validate() error {
4989	invalidParams := request.ErrInvalidParams{Context: "GetInsightSummariesInput"}
4990	if s.EndTime == nil {
4991		invalidParams.Add(request.NewErrParamRequired("EndTime"))
4992	}
4993	if s.GroupARN != nil && len(*s.GroupARN) < 1 {
4994		invalidParams.Add(request.NewErrParamMinLen("GroupARN", 1))
4995	}
4996	if s.GroupName != nil && len(*s.GroupName) < 1 {
4997		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
4998	}
4999	if s.MaxResults != nil && *s.MaxResults < 1 {
5000		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5001	}
5002	if s.NextToken != nil && len(*s.NextToken) < 1 {
5003		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5004	}
5005	if s.StartTime == nil {
5006		invalidParams.Add(request.NewErrParamRequired("StartTime"))
5007	}
5008
5009	if invalidParams.Len() > 0 {
5010		return invalidParams
5011	}
5012	return nil
5013}
5014
5015// SetEndTime sets the EndTime field's value.
5016func (s *GetInsightSummariesInput) SetEndTime(v time.Time) *GetInsightSummariesInput {
5017	s.EndTime = &v
5018	return s
5019}
5020
5021// SetGroupARN sets the GroupARN field's value.
5022func (s *GetInsightSummariesInput) SetGroupARN(v string) *GetInsightSummariesInput {
5023	s.GroupARN = &v
5024	return s
5025}
5026
5027// SetGroupName sets the GroupName field's value.
5028func (s *GetInsightSummariesInput) SetGroupName(v string) *GetInsightSummariesInput {
5029	s.GroupName = &v
5030	return s
5031}
5032
5033// SetMaxResults sets the MaxResults field's value.
5034func (s *GetInsightSummariesInput) SetMaxResults(v int64) *GetInsightSummariesInput {
5035	s.MaxResults = &v
5036	return s
5037}
5038
5039// SetNextToken sets the NextToken field's value.
5040func (s *GetInsightSummariesInput) SetNextToken(v string) *GetInsightSummariesInput {
5041	s.NextToken = &v
5042	return s
5043}
5044
5045// SetStartTime sets the StartTime field's value.
5046func (s *GetInsightSummariesInput) SetStartTime(v time.Time) *GetInsightSummariesInput {
5047	s.StartTime = &v
5048	return s
5049}
5050
5051// SetStates sets the States field's value.
5052func (s *GetInsightSummariesInput) SetStates(v []*string) *GetInsightSummariesInput {
5053	s.States = v
5054	return s
5055}
5056
5057type GetInsightSummariesOutput struct {
5058	_ struct{} `type:"structure"`
5059
5060	// The summary of each insight within the group matching the provided filters.
5061	// The summary contains the InsightID, start and end time, the root cause service,
5062	// the root cause and client impact statistics, the top anomalous services,
5063	// and the status of the insight.
5064	InsightSummaries []*InsightSummary `type:"list"`
5065
5066	// Pagination token.
5067	NextToken *string `min:"1" type:"string"`
5068}
5069
5070// String returns the string representation.
5071//
5072// API parameter values that are decorated as "sensitive" in the API will not
5073// be included in the string output. The member name will be present, but the
5074// value will be replaced with "sensitive".
5075func (s GetInsightSummariesOutput) String() string {
5076	return awsutil.Prettify(s)
5077}
5078
5079// GoString returns the string representation.
5080//
5081// API parameter values that are decorated as "sensitive" in the API will not
5082// be included in the string output. The member name will be present, but the
5083// value will be replaced with "sensitive".
5084func (s GetInsightSummariesOutput) GoString() string {
5085	return s.String()
5086}
5087
5088// SetInsightSummaries sets the InsightSummaries field's value.
5089func (s *GetInsightSummariesOutput) SetInsightSummaries(v []*InsightSummary) *GetInsightSummariesOutput {
5090	s.InsightSummaries = v
5091	return s
5092}
5093
5094// SetNextToken sets the NextToken field's value.
5095func (s *GetInsightSummariesOutput) SetNextToken(v string) *GetInsightSummariesOutput {
5096	s.NextToken = &v
5097	return s
5098}
5099
5100type GetSamplingRulesInput struct {
5101	_ struct{} `type:"structure"`
5102
5103	// Pagination token.
5104	NextToken *string `type:"string"`
5105}
5106
5107// String returns the string representation.
5108//
5109// API parameter values that are decorated as "sensitive" in the API will not
5110// be included in the string output. The member name will be present, but the
5111// value will be replaced with "sensitive".
5112func (s GetSamplingRulesInput) String() string {
5113	return awsutil.Prettify(s)
5114}
5115
5116// GoString returns the string representation.
5117//
5118// API parameter values that are decorated as "sensitive" in the API will not
5119// be included in the string output. The member name will be present, but the
5120// value will be replaced with "sensitive".
5121func (s GetSamplingRulesInput) GoString() string {
5122	return s.String()
5123}
5124
5125// SetNextToken sets the NextToken field's value.
5126func (s *GetSamplingRulesInput) SetNextToken(v string) *GetSamplingRulesInput {
5127	s.NextToken = &v
5128	return s
5129}
5130
5131type GetSamplingRulesOutput struct {
5132	_ struct{} `type:"structure"`
5133
5134	// Pagination token.
5135	NextToken *string `type:"string"`
5136
5137	// Rule definitions and metadata.
5138	SamplingRuleRecords []*SamplingRuleRecord `type:"list"`
5139}
5140
5141// String returns the string representation.
5142//
5143// API parameter values that are decorated as "sensitive" in the API will not
5144// be included in the string output. The member name will be present, but the
5145// value will be replaced with "sensitive".
5146func (s GetSamplingRulesOutput) String() string {
5147	return awsutil.Prettify(s)
5148}
5149
5150// GoString returns the string representation.
5151//
5152// API parameter values that are decorated as "sensitive" in the API will not
5153// be included in the string output. The member name will be present, but the
5154// value will be replaced with "sensitive".
5155func (s GetSamplingRulesOutput) GoString() string {
5156	return s.String()
5157}
5158
5159// SetNextToken sets the NextToken field's value.
5160func (s *GetSamplingRulesOutput) SetNextToken(v string) *GetSamplingRulesOutput {
5161	s.NextToken = &v
5162	return s
5163}
5164
5165// SetSamplingRuleRecords sets the SamplingRuleRecords field's value.
5166func (s *GetSamplingRulesOutput) SetSamplingRuleRecords(v []*SamplingRuleRecord) *GetSamplingRulesOutput {
5167	s.SamplingRuleRecords = v
5168	return s
5169}
5170
5171type GetSamplingStatisticSummariesInput struct {
5172	_ struct{} `type:"structure"`
5173
5174	// Pagination token.
5175	NextToken *string `type:"string"`
5176}
5177
5178// String returns the string representation.
5179//
5180// API parameter values that are decorated as "sensitive" in the API will not
5181// be included in the string output. The member name will be present, but the
5182// value will be replaced with "sensitive".
5183func (s GetSamplingStatisticSummariesInput) String() string {
5184	return awsutil.Prettify(s)
5185}
5186
5187// GoString returns the string representation.
5188//
5189// API parameter values that are decorated as "sensitive" in the API will not
5190// be included in the string output. The member name will be present, but the
5191// value will be replaced with "sensitive".
5192func (s GetSamplingStatisticSummariesInput) GoString() string {
5193	return s.String()
5194}
5195
5196// SetNextToken sets the NextToken field's value.
5197func (s *GetSamplingStatisticSummariesInput) SetNextToken(v string) *GetSamplingStatisticSummariesInput {
5198	s.NextToken = &v
5199	return s
5200}
5201
5202type GetSamplingStatisticSummariesOutput struct {
5203	_ struct{} `type:"structure"`
5204
5205	// Pagination token.
5206	NextToken *string `type:"string"`
5207
5208	// Information about the number of requests instrumented for each sampling rule.
5209	SamplingStatisticSummaries []*SamplingStatisticSummary `type:"list"`
5210}
5211
5212// String returns the string representation.
5213//
5214// API parameter values that are decorated as "sensitive" in the API will not
5215// be included in the string output. The member name will be present, but the
5216// value will be replaced with "sensitive".
5217func (s GetSamplingStatisticSummariesOutput) String() string {
5218	return awsutil.Prettify(s)
5219}
5220
5221// GoString returns the string representation.
5222//
5223// API parameter values that are decorated as "sensitive" in the API will not
5224// be included in the string output. The member name will be present, but the
5225// value will be replaced with "sensitive".
5226func (s GetSamplingStatisticSummariesOutput) GoString() string {
5227	return s.String()
5228}
5229
5230// SetNextToken sets the NextToken field's value.
5231func (s *GetSamplingStatisticSummariesOutput) SetNextToken(v string) *GetSamplingStatisticSummariesOutput {
5232	s.NextToken = &v
5233	return s
5234}
5235
5236// SetSamplingStatisticSummaries sets the SamplingStatisticSummaries field's value.
5237func (s *GetSamplingStatisticSummariesOutput) SetSamplingStatisticSummaries(v []*SamplingStatisticSummary) *GetSamplingStatisticSummariesOutput {
5238	s.SamplingStatisticSummaries = v
5239	return s
5240}
5241
5242type GetSamplingTargetsInput struct {
5243	_ struct{} `type:"structure"`
5244
5245	// Information about rules that the service is using to sample requests.
5246	//
5247	// SamplingStatisticsDocuments is a required field
5248	SamplingStatisticsDocuments []*SamplingStatisticsDocument `type:"list" required:"true"`
5249}
5250
5251// String returns the string representation.
5252//
5253// API parameter values that are decorated as "sensitive" in the API will not
5254// be included in the string output. The member name will be present, but the
5255// value will be replaced with "sensitive".
5256func (s GetSamplingTargetsInput) String() string {
5257	return awsutil.Prettify(s)
5258}
5259
5260// GoString returns the string representation.
5261//
5262// API parameter values that are decorated as "sensitive" in the API will not
5263// be included in the string output. The member name will be present, but the
5264// value will be replaced with "sensitive".
5265func (s GetSamplingTargetsInput) GoString() string {
5266	return s.String()
5267}
5268
5269// Validate inspects the fields of the type to determine if they are valid.
5270func (s *GetSamplingTargetsInput) Validate() error {
5271	invalidParams := request.ErrInvalidParams{Context: "GetSamplingTargetsInput"}
5272	if s.SamplingStatisticsDocuments == nil {
5273		invalidParams.Add(request.NewErrParamRequired("SamplingStatisticsDocuments"))
5274	}
5275	if s.SamplingStatisticsDocuments != nil {
5276		for i, v := range s.SamplingStatisticsDocuments {
5277			if v == nil {
5278				continue
5279			}
5280			if err := v.Validate(); err != nil {
5281				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "SamplingStatisticsDocuments", i), err.(request.ErrInvalidParams))
5282			}
5283		}
5284	}
5285
5286	if invalidParams.Len() > 0 {
5287		return invalidParams
5288	}
5289	return nil
5290}
5291
5292// SetSamplingStatisticsDocuments sets the SamplingStatisticsDocuments field's value.
5293func (s *GetSamplingTargetsInput) SetSamplingStatisticsDocuments(v []*SamplingStatisticsDocument) *GetSamplingTargetsInput {
5294	s.SamplingStatisticsDocuments = v
5295	return s
5296}
5297
5298type GetSamplingTargetsOutput struct {
5299	_ struct{} `type:"structure"`
5300
5301	// The last time a user changed the sampling rule configuration. If the sampling
5302	// rule configuration changed since the service last retrieved it, the service
5303	// should call GetSamplingRules (https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingRules.html)
5304	// to get the latest version.
5305	LastRuleModification *time.Time `type:"timestamp"`
5306
5307	// Updated rules that the service should use to sample requests.
5308	SamplingTargetDocuments []*SamplingTargetDocument `type:"list"`
5309
5310	// Information about SamplingStatisticsDocument (https://docs.aws.amazon.com/xray/latest/api/API_SamplingStatisticsDocument.html)
5311	// that X-Ray could not process.
5312	UnprocessedStatistics []*UnprocessedStatistics `type:"list"`
5313}
5314
5315// String returns the string representation.
5316//
5317// API parameter values that are decorated as "sensitive" in the API will not
5318// be included in the string output. The member name will be present, but the
5319// value will be replaced with "sensitive".
5320func (s GetSamplingTargetsOutput) String() string {
5321	return awsutil.Prettify(s)
5322}
5323
5324// GoString returns the string representation.
5325//
5326// API parameter values that are decorated as "sensitive" in the API will not
5327// be included in the string output. The member name will be present, but the
5328// value will be replaced with "sensitive".
5329func (s GetSamplingTargetsOutput) GoString() string {
5330	return s.String()
5331}
5332
5333// SetLastRuleModification sets the LastRuleModification field's value.
5334func (s *GetSamplingTargetsOutput) SetLastRuleModification(v time.Time) *GetSamplingTargetsOutput {
5335	s.LastRuleModification = &v
5336	return s
5337}
5338
5339// SetSamplingTargetDocuments sets the SamplingTargetDocuments field's value.
5340func (s *GetSamplingTargetsOutput) SetSamplingTargetDocuments(v []*SamplingTargetDocument) *GetSamplingTargetsOutput {
5341	s.SamplingTargetDocuments = v
5342	return s
5343}
5344
5345// SetUnprocessedStatistics sets the UnprocessedStatistics field's value.
5346func (s *GetSamplingTargetsOutput) SetUnprocessedStatistics(v []*UnprocessedStatistics) *GetSamplingTargetsOutput {
5347	s.UnprocessedStatistics = v
5348	return s
5349}
5350
5351type GetServiceGraphInput struct {
5352	_ struct{} `type:"structure"`
5353
5354	// The end of the timeframe for which to generate a graph.
5355	//
5356	// EndTime is a required field
5357	EndTime *time.Time `type:"timestamp" required:"true"`
5358
5359	// The Amazon Resource Name (ARN) of a group based on which you want to generate
5360	// a graph.
5361	GroupARN *string `min:"1" type:"string"`
5362
5363	// The name of a group based on which you want to generate a graph.
5364	GroupName *string `min:"1" type:"string"`
5365
5366	// Pagination token.
5367	NextToken *string `type:"string"`
5368
5369	// The start of the time frame for which to generate a graph.
5370	//
5371	// StartTime is a required field
5372	StartTime *time.Time `type:"timestamp" required:"true"`
5373}
5374
5375// String returns the string representation.
5376//
5377// API parameter values that are decorated as "sensitive" in the API will not
5378// be included in the string output. The member name will be present, but the
5379// value will be replaced with "sensitive".
5380func (s GetServiceGraphInput) String() string {
5381	return awsutil.Prettify(s)
5382}
5383
5384// GoString returns the string representation.
5385//
5386// API parameter values that are decorated as "sensitive" in the API will not
5387// be included in the string output. The member name will be present, but the
5388// value will be replaced with "sensitive".
5389func (s GetServiceGraphInput) GoString() string {
5390	return s.String()
5391}
5392
5393// Validate inspects the fields of the type to determine if they are valid.
5394func (s *GetServiceGraphInput) Validate() error {
5395	invalidParams := request.ErrInvalidParams{Context: "GetServiceGraphInput"}
5396	if s.EndTime == nil {
5397		invalidParams.Add(request.NewErrParamRequired("EndTime"))
5398	}
5399	if s.GroupARN != nil && len(*s.GroupARN) < 1 {
5400		invalidParams.Add(request.NewErrParamMinLen("GroupARN", 1))
5401	}
5402	if s.GroupName != nil && len(*s.GroupName) < 1 {
5403		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
5404	}
5405	if s.StartTime == nil {
5406		invalidParams.Add(request.NewErrParamRequired("StartTime"))
5407	}
5408
5409	if invalidParams.Len() > 0 {
5410		return invalidParams
5411	}
5412	return nil
5413}
5414
5415// SetEndTime sets the EndTime field's value.
5416func (s *GetServiceGraphInput) SetEndTime(v time.Time) *GetServiceGraphInput {
5417	s.EndTime = &v
5418	return s
5419}
5420
5421// SetGroupARN sets the GroupARN field's value.
5422func (s *GetServiceGraphInput) SetGroupARN(v string) *GetServiceGraphInput {
5423	s.GroupARN = &v
5424	return s
5425}
5426
5427// SetGroupName sets the GroupName field's value.
5428func (s *GetServiceGraphInput) SetGroupName(v string) *GetServiceGraphInput {
5429	s.GroupName = &v
5430	return s
5431}
5432
5433// SetNextToken sets the NextToken field's value.
5434func (s *GetServiceGraphInput) SetNextToken(v string) *GetServiceGraphInput {
5435	s.NextToken = &v
5436	return s
5437}
5438
5439// SetStartTime sets the StartTime field's value.
5440func (s *GetServiceGraphInput) SetStartTime(v time.Time) *GetServiceGraphInput {
5441	s.StartTime = &v
5442	return s
5443}
5444
5445type GetServiceGraphOutput struct {
5446	_ struct{} `type:"structure"`
5447
5448	// A flag indicating whether the group's filter expression has been consistent,
5449	// or if the returned service graph may show traces from an older version of
5450	// the group's filter expression.
5451	ContainsOldGroupVersions *bool `type:"boolean"`
5452
5453	// The end of the time frame for which the graph was generated.
5454	EndTime *time.Time `type:"timestamp"`
5455
5456	// Pagination token.
5457	NextToken *string `type:"string"`
5458
5459	// The services that have processed a traced request during the specified time
5460	// frame.
5461	Services []*Service `type:"list"`
5462
5463	// The start of the time frame for which the graph was generated.
5464	StartTime *time.Time `type:"timestamp"`
5465}
5466
5467// String returns the string representation.
5468//
5469// API parameter values that are decorated as "sensitive" in the API will not
5470// be included in the string output. The member name will be present, but the
5471// value will be replaced with "sensitive".
5472func (s GetServiceGraphOutput) String() string {
5473	return awsutil.Prettify(s)
5474}
5475
5476// GoString returns the string representation.
5477//
5478// API parameter values that are decorated as "sensitive" in the API will not
5479// be included in the string output. The member name will be present, but the
5480// value will be replaced with "sensitive".
5481func (s GetServiceGraphOutput) GoString() string {
5482	return s.String()
5483}
5484
5485// SetContainsOldGroupVersions sets the ContainsOldGroupVersions field's value.
5486func (s *GetServiceGraphOutput) SetContainsOldGroupVersions(v bool) *GetServiceGraphOutput {
5487	s.ContainsOldGroupVersions = &v
5488	return s
5489}
5490
5491// SetEndTime sets the EndTime field's value.
5492func (s *GetServiceGraphOutput) SetEndTime(v time.Time) *GetServiceGraphOutput {
5493	s.EndTime = &v
5494	return s
5495}
5496
5497// SetNextToken sets the NextToken field's value.
5498func (s *GetServiceGraphOutput) SetNextToken(v string) *GetServiceGraphOutput {
5499	s.NextToken = &v
5500	return s
5501}
5502
5503// SetServices sets the Services field's value.
5504func (s *GetServiceGraphOutput) SetServices(v []*Service) *GetServiceGraphOutput {
5505	s.Services = v
5506	return s
5507}
5508
5509// SetStartTime sets the StartTime field's value.
5510func (s *GetServiceGraphOutput) SetStartTime(v time.Time) *GetServiceGraphOutput {
5511	s.StartTime = &v
5512	return s
5513}
5514
5515type GetTimeSeriesServiceStatisticsInput struct {
5516	_ struct{} `type:"structure"`
5517
5518	// The end of the time frame for which to aggregate statistics.
5519	//
5520	// EndTime is a required field
5521	EndTime *time.Time `type:"timestamp" required:"true"`
5522
5523	// A filter expression defining entities that will be aggregated for statistics.
5524	// Supports ID, service, and edge functions. If no selector expression is specified,
5525	// edge statistics are returned.
5526	EntitySelectorExpression *string `min:"1" type:"string"`
5527
5528	// The forecasted high and low fault count values. Forecast enabled requests
5529	// require the EntitySelectorExpression ID be provided.
5530	ForecastStatistics *bool `type:"boolean"`
5531
5532	// The Amazon Resource Name (ARN) of the group for which to pull statistics
5533	// from.
5534	GroupARN *string `min:"1" type:"string"`
5535
5536	// The case-sensitive name of the group for which to pull statistics from.
5537	GroupName *string `min:"1" type:"string"`
5538
5539	// Pagination token.
5540	NextToken *string `type:"string"`
5541
5542	// Aggregation period in seconds.
5543	Period *int64 `type:"integer"`
5544
5545	// The start of the time frame for which to aggregate statistics.
5546	//
5547	// StartTime is a required field
5548	StartTime *time.Time `type:"timestamp" required:"true"`
5549}
5550
5551// String returns the string representation.
5552//
5553// API parameter values that are decorated as "sensitive" in the API will not
5554// be included in the string output. The member name will be present, but the
5555// value will be replaced with "sensitive".
5556func (s GetTimeSeriesServiceStatisticsInput) String() string {
5557	return awsutil.Prettify(s)
5558}
5559
5560// GoString returns the string representation.
5561//
5562// API parameter values that are decorated as "sensitive" in the API will not
5563// be included in the string output. The member name will be present, but the
5564// value will be replaced with "sensitive".
5565func (s GetTimeSeriesServiceStatisticsInput) GoString() string {
5566	return s.String()
5567}
5568
5569// Validate inspects the fields of the type to determine if they are valid.
5570func (s *GetTimeSeriesServiceStatisticsInput) Validate() error {
5571	invalidParams := request.ErrInvalidParams{Context: "GetTimeSeriesServiceStatisticsInput"}
5572	if s.EndTime == nil {
5573		invalidParams.Add(request.NewErrParamRequired("EndTime"))
5574	}
5575	if s.EntitySelectorExpression != nil && len(*s.EntitySelectorExpression) < 1 {
5576		invalidParams.Add(request.NewErrParamMinLen("EntitySelectorExpression", 1))
5577	}
5578	if s.GroupARN != nil && len(*s.GroupARN) < 1 {
5579		invalidParams.Add(request.NewErrParamMinLen("GroupARN", 1))
5580	}
5581	if s.GroupName != nil && len(*s.GroupName) < 1 {
5582		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
5583	}
5584	if s.StartTime == nil {
5585		invalidParams.Add(request.NewErrParamRequired("StartTime"))
5586	}
5587
5588	if invalidParams.Len() > 0 {
5589		return invalidParams
5590	}
5591	return nil
5592}
5593
5594// SetEndTime sets the EndTime field's value.
5595func (s *GetTimeSeriesServiceStatisticsInput) SetEndTime(v time.Time) *GetTimeSeriesServiceStatisticsInput {
5596	s.EndTime = &v
5597	return s
5598}
5599
5600// SetEntitySelectorExpression sets the EntitySelectorExpression field's value.
5601func (s *GetTimeSeriesServiceStatisticsInput) SetEntitySelectorExpression(v string) *GetTimeSeriesServiceStatisticsInput {
5602	s.EntitySelectorExpression = &v
5603	return s
5604}
5605
5606// SetForecastStatistics sets the ForecastStatistics field's value.
5607func (s *GetTimeSeriesServiceStatisticsInput) SetForecastStatistics(v bool) *GetTimeSeriesServiceStatisticsInput {
5608	s.ForecastStatistics = &v
5609	return s
5610}
5611
5612// SetGroupARN sets the GroupARN field's value.
5613func (s *GetTimeSeriesServiceStatisticsInput) SetGroupARN(v string) *GetTimeSeriesServiceStatisticsInput {
5614	s.GroupARN = &v
5615	return s
5616}
5617
5618// SetGroupName sets the GroupName field's value.
5619func (s *GetTimeSeriesServiceStatisticsInput) SetGroupName(v string) *GetTimeSeriesServiceStatisticsInput {
5620	s.GroupName = &v
5621	return s
5622}
5623
5624// SetNextToken sets the NextToken field's value.
5625func (s *GetTimeSeriesServiceStatisticsInput) SetNextToken(v string) *GetTimeSeriesServiceStatisticsInput {
5626	s.NextToken = &v
5627	return s
5628}
5629
5630// SetPeriod sets the Period field's value.
5631func (s *GetTimeSeriesServiceStatisticsInput) SetPeriod(v int64) *GetTimeSeriesServiceStatisticsInput {
5632	s.Period = &v
5633	return s
5634}
5635
5636// SetStartTime sets the StartTime field's value.
5637func (s *GetTimeSeriesServiceStatisticsInput) SetStartTime(v time.Time) *GetTimeSeriesServiceStatisticsInput {
5638	s.StartTime = &v
5639	return s
5640}
5641
5642type GetTimeSeriesServiceStatisticsOutput struct {
5643	_ struct{} `type:"structure"`
5644
5645	// A flag indicating whether or not a group's filter expression has been consistent,
5646	// or if a returned aggregation might show statistics from an older version
5647	// of the group's filter expression.
5648	ContainsOldGroupVersions *bool `type:"boolean"`
5649
5650	// Pagination token.
5651	NextToken *string `type:"string"`
5652
5653	// The collection of statistics.
5654	TimeSeriesServiceStatistics []*TimeSeriesServiceStatistics `type:"list"`
5655}
5656
5657// String returns the string representation.
5658//
5659// API parameter values that are decorated as "sensitive" in the API will not
5660// be included in the string output. The member name will be present, but the
5661// value will be replaced with "sensitive".
5662func (s GetTimeSeriesServiceStatisticsOutput) String() string {
5663	return awsutil.Prettify(s)
5664}
5665
5666// GoString returns the string representation.
5667//
5668// API parameter values that are decorated as "sensitive" in the API will not
5669// be included in the string output. The member name will be present, but the
5670// value will be replaced with "sensitive".
5671func (s GetTimeSeriesServiceStatisticsOutput) GoString() string {
5672	return s.String()
5673}
5674
5675// SetContainsOldGroupVersions sets the ContainsOldGroupVersions field's value.
5676func (s *GetTimeSeriesServiceStatisticsOutput) SetContainsOldGroupVersions(v bool) *GetTimeSeriesServiceStatisticsOutput {
5677	s.ContainsOldGroupVersions = &v
5678	return s
5679}
5680
5681// SetNextToken sets the NextToken field's value.
5682func (s *GetTimeSeriesServiceStatisticsOutput) SetNextToken(v string) *GetTimeSeriesServiceStatisticsOutput {
5683	s.NextToken = &v
5684	return s
5685}
5686
5687// SetTimeSeriesServiceStatistics sets the TimeSeriesServiceStatistics field's value.
5688func (s *GetTimeSeriesServiceStatisticsOutput) SetTimeSeriesServiceStatistics(v []*TimeSeriesServiceStatistics) *GetTimeSeriesServiceStatisticsOutput {
5689	s.TimeSeriesServiceStatistics = v
5690	return s
5691}
5692
5693type GetTraceGraphInput struct {
5694	_ struct{} `type:"structure"`
5695
5696	// Pagination token.
5697	NextToken *string `type:"string"`
5698
5699	// Trace IDs of requests for which to generate a service graph.
5700	//
5701	// TraceIds is a required field
5702	TraceIds []*string `type:"list" required:"true"`
5703}
5704
5705// String returns the string representation.
5706//
5707// API parameter values that are decorated as "sensitive" in the API will not
5708// be included in the string output. The member name will be present, but the
5709// value will be replaced with "sensitive".
5710func (s GetTraceGraphInput) String() string {
5711	return awsutil.Prettify(s)
5712}
5713
5714// GoString returns the string representation.
5715//
5716// API parameter values that are decorated as "sensitive" in the API will not
5717// be included in the string output. The member name will be present, but the
5718// value will be replaced with "sensitive".
5719func (s GetTraceGraphInput) GoString() string {
5720	return s.String()
5721}
5722
5723// Validate inspects the fields of the type to determine if they are valid.
5724func (s *GetTraceGraphInput) Validate() error {
5725	invalidParams := request.ErrInvalidParams{Context: "GetTraceGraphInput"}
5726	if s.TraceIds == nil {
5727		invalidParams.Add(request.NewErrParamRequired("TraceIds"))
5728	}
5729
5730	if invalidParams.Len() > 0 {
5731		return invalidParams
5732	}
5733	return nil
5734}
5735
5736// SetNextToken sets the NextToken field's value.
5737func (s *GetTraceGraphInput) SetNextToken(v string) *GetTraceGraphInput {
5738	s.NextToken = &v
5739	return s
5740}
5741
5742// SetTraceIds sets the TraceIds field's value.
5743func (s *GetTraceGraphInput) SetTraceIds(v []*string) *GetTraceGraphInput {
5744	s.TraceIds = v
5745	return s
5746}
5747
5748type GetTraceGraphOutput struct {
5749	_ struct{} `type:"structure"`
5750
5751	// Pagination token.
5752	NextToken *string `type:"string"`
5753
5754	// The services that have processed one of the specified requests.
5755	Services []*Service `type:"list"`
5756}
5757
5758// String returns the string representation.
5759//
5760// API parameter values that are decorated as "sensitive" in the API will not
5761// be included in the string output. The member name will be present, but the
5762// value will be replaced with "sensitive".
5763func (s GetTraceGraphOutput) String() string {
5764	return awsutil.Prettify(s)
5765}
5766
5767// GoString returns the string representation.
5768//
5769// API parameter values that are decorated as "sensitive" in the API will not
5770// be included in the string output. The member name will be present, but the
5771// value will be replaced with "sensitive".
5772func (s GetTraceGraphOutput) GoString() string {
5773	return s.String()
5774}
5775
5776// SetNextToken sets the NextToken field's value.
5777func (s *GetTraceGraphOutput) SetNextToken(v string) *GetTraceGraphOutput {
5778	s.NextToken = &v
5779	return s
5780}
5781
5782// SetServices sets the Services field's value.
5783func (s *GetTraceGraphOutput) SetServices(v []*Service) *GetTraceGraphOutput {
5784	s.Services = v
5785	return s
5786}
5787
5788type GetTraceSummariesInput struct {
5789	_ struct{} `type:"structure"`
5790
5791	// The end of the time frame for which to retrieve traces.
5792	//
5793	// EndTime is a required field
5794	EndTime *time.Time `type:"timestamp" required:"true"`
5795
5796	// Specify a filter expression to retrieve trace summaries for services or requests
5797	// that meet certain requirements.
5798	FilterExpression *string `type:"string"`
5799
5800	// Specify the pagination token returned by a previous request to retrieve the
5801	// next page of results.
5802	NextToken *string `type:"string"`
5803
5804	// Set to true to get summaries for only a subset of available traces.
5805	Sampling *bool `type:"boolean"`
5806
5807	// A parameter to indicate whether to enable sampling on trace summaries. Input
5808	// parameters are Name and Value.
5809	SamplingStrategy *SamplingStrategy `type:"structure"`
5810
5811	// The start of the time frame for which to retrieve traces.
5812	//
5813	// StartTime is a required field
5814	StartTime *time.Time `type:"timestamp" required:"true"`
5815
5816	// A parameter to indicate whether to query trace summaries by TraceId or Event
5817	// time.
5818	TimeRangeType *string `type:"string" enum:"TimeRangeType"`
5819}
5820
5821// String returns the string representation.
5822//
5823// API parameter values that are decorated as "sensitive" in the API will not
5824// be included in the string output. The member name will be present, but the
5825// value will be replaced with "sensitive".
5826func (s GetTraceSummariesInput) String() string {
5827	return awsutil.Prettify(s)
5828}
5829
5830// GoString returns the string representation.
5831//
5832// API parameter values that are decorated as "sensitive" in the API will not
5833// be included in the string output. The member name will be present, but the
5834// value will be replaced with "sensitive".
5835func (s GetTraceSummariesInput) GoString() string {
5836	return s.String()
5837}
5838
5839// Validate inspects the fields of the type to determine if they are valid.
5840func (s *GetTraceSummariesInput) Validate() error {
5841	invalidParams := request.ErrInvalidParams{Context: "GetTraceSummariesInput"}
5842	if s.EndTime == nil {
5843		invalidParams.Add(request.NewErrParamRequired("EndTime"))
5844	}
5845	if s.StartTime == nil {
5846		invalidParams.Add(request.NewErrParamRequired("StartTime"))
5847	}
5848
5849	if invalidParams.Len() > 0 {
5850		return invalidParams
5851	}
5852	return nil
5853}
5854
5855// SetEndTime sets the EndTime field's value.
5856func (s *GetTraceSummariesInput) SetEndTime(v time.Time) *GetTraceSummariesInput {
5857	s.EndTime = &v
5858	return s
5859}
5860
5861// SetFilterExpression sets the FilterExpression field's value.
5862func (s *GetTraceSummariesInput) SetFilterExpression(v string) *GetTraceSummariesInput {
5863	s.FilterExpression = &v
5864	return s
5865}
5866
5867// SetNextToken sets the NextToken field's value.
5868func (s *GetTraceSummariesInput) SetNextToken(v string) *GetTraceSummariesInput {
5869	s.NextToken = &v
5870	return s
5871}
5872
5873// SetSampling sets the Sampling field's value.
5874func (s *GetTraceSummariesInput) SetSampling(v bool) *GetTraceSummariesInput {
5875	s.Sampling = &v
5876	return s
5877}
5878
5879// SetSamplingStrategy sets the SamplingStrategy field's value.
5880func (s *GetTraceSummariesInput) SetSamplingStrategy(v *SamplingStrategy) *GetTraceSummariesInput {
5881	s.SamplingStrategy = v
5882	return s
5883}
5884
5885// SetStartTime sets the StartTime field's value.
5886func (s *GetTraceSummariesInput) SetStartTime(v time.Time) *GetTraceSummariesInput {
5887	s.StartTime = &v
5888	return s
5889}
5890
5891// SetTimeRangeType sets the TimeRangeType field's value.
5892func (s *GetTraceSummariesInput) SetTimeRangeType(v string) *GetTraceSummariesInput {
5893	s.TimeRangeType = &v
5894	return s
5895}
5896
5897type GetTraceSummariesOutput struct {
5898	_ struct{} `type:"structure"`
5899
5900	// The start time of this page of results.
5901	ApproximateTime *time.Time `type:"timestamp"`
5902
5903	// If the requested time frame contained more than one page of results, you
5904	// can use this token to retrieve the next page. The first page contains the
5905	// most recent results, closest to the end of the time frame.
5906	NextToken *string `type:"string"`
5907
5908	// Trace IDs and annotations for traces that were found in the specified time
5909	// frame.
5910	TraceSummaries []*TraceSummary `type:"list"`
5911
5912	// The total number of traces processed, including traces that did not match
5913	// the specified filter expression.
5914	TracesProcessedCount *int64 `type:"long"`
5915}
5916
5917// String returns the string representation.
5918//
5919// API parameter values that are decorated as "sensitive" in the API will not
5920// be included in the string output. The member name will be present, but the
5921// value will be replaced with "sensitive".
5922func (s GetTraceSummariesOutput) String() string {
5923	return awsutil.Prettify(s)
5924}
5925
5926// GoString returns the string representation.
5927//
5928// API parameter values that are decorated as "sensitive" in the API will not
5929// be included in the string output. The member name will be present, but the
5930// value will be replaced with "sensitive".
5931func (s GetTraceSummariesOutput) GoString() string {
5932	return s.String()
5933}
5934
5935// SetApproximateTime sets the ApproximateTime field's value.
5936func (s *GetTraceSummariesOutput) SetApproximateTime(v time.Time) *GetTraceSummariesOutput {
5937	s.ApproximateTime = &v
5938	return s
5939}
5940
5941// SetNextToken sets the NextToken field's value.
5942func (s *GetTraceSummariesOutput) SetNextToken(v string) *GetTraceSummariesOutput {
5943	s.NextToken = &v
5944	return s
5945}
5946
5947// SetTraceSummaries sets the TraceSummaries field's value.
5948func (s *GetTraceSummariesOutput) SetTraceSummaries(v []*TraceSummary) *GetTraceSummariesOutput {
5949	s.TraceSummaries = v
5950	return s
5951}
5952
5953// SetTracesProcessedCount sets the TracesProcessedCount field's value.
5954func (s *GetTraceSummariesOutput) SetTracesProcessedCount(v int64) *GetTraceSummariesOutput {
5955	s.TracesProcessedCount = &v
5956	return s
5957}
5958
5959// Details and metadata for a group.
5960type Group struct {
5961	_ struct{} `type:"structure"`
5962
5963	// The filter expression defining the parameters to include traces.
5964	FilterExpression *string `type:"string"`
5965
5966	// The Amazon Resource Name (ARN) of the group generated based on the GroupName.
5967	GroupARN *string `type:"string"`
5968
5969	// The unique case-sensitive name of the group.
5970	GroupName *string `type:"string"`
5971
5972	// The structure containing configurations related to insights.
5973	//
5974	//    * The InsightsEnabled boolean can be set to true to enable insights for
5975	//    the group or false to disable insights for the group.
5976	//
5977	//    * The NotificationsEnabled boolean can be set to true to enable insights
5978	//    notifications through Amazon EventBridge for the group.
5979	InsightsConfiguration *InsightsConfiguration `type:"structure"`
5980}
5981
5982// String returns the string representation.
5983//
5984// API parameter values that are decorated as "sensitive" in the API will not
5985// be included in the string output. The member name will be present, but the
5986// value will be replaced with "sensitive".
5987func (s Group) String() string {
5988	return awsutil.Prettify(s)
5989}
5990
5991// GoString returns the string representation.
5992//
5993// API parameter values that are decorated as "sensitive" in the API will not
5994// be included in the string output. The member name will be present, but the
5995// value will be replaced with "sensitive".
5996func (s Group) GoString() string {
5997	return s.String()
5998}
5999
6000// SetFilterExpression sets the FilterExpression field's value.
6001func (s *Group) SetFilterExpression(v string) *Group {
6002	s.FilterExpression = &v
6003	return s
6004}
6005
6006// SetGroupARN sets the GroupARN field's value.
6007func (s *Group) SetGroupARN(v string) *Group {
6008	s.GroupARN = &v
6009	return s
6010}
6011
6012// SetGroupName sets the GroupName field's value.
6013func (s *Group) SetGroupName(v string) *Group {
6014	s.GroupName = &v
6015	return s
6016}
6017
6018// SetInsightsConfiguration sets the InsightsConfiguration field's value.
6019func (s *Group) SetInsightsConfiguration(v *InsightsConfiguration) *Group {
6020	s.InsightsConfiguration = v
6021	return s
6022}
6023
6024// Details for a group without metadata.
6025type GroupSummary struct {
6026	_ struct{} `type:"structure"`
6027
6028	// The filter expression defining the parameters to include traces.
6029	FilterExpression *string `type:"string"`
6030
6031	// The ARN of the group generated based on the GroupName.
6032	GroupARN *string `type:"string"`
6033
6034	// The unique case-sensitive name of the group.
6035	GroupName *string `type:"string"`
6036
6037	// The structure containing configurations related to insights.
6038	//
6039	//    * The InsightsEnabled boolean can be set to true to enable insights for
6040	//    the group or false to disable insights for the group.
6041	//
6042	//    * The NotificationsEnabled boolean can be set to true to enable insights
6043	//    notifications. Notifications can only be enabled on a group with InsightsEnabled
6044	//    set to true.
6045	InsightsConfiguration *InsightsConfiguration `type:"structure"`
6046}
6047
6048// String returns the string representation.
6049//
6050// API parameter values that are decorated as "sensitive" in the API will not
6051// be included in the string output. The member name will be present, but the
6052// value will be replaced with "sensitive".
6053func (s GroupSummary) String() string {
6054	return awsutil.Prettify(s)
6055}
6056
6057// GoString returns the string representation.
6058//
6059// API parameter values that are decorated as "sensitive" in the API will not
6060// be included in the string output. The member name will be present, but the
6061// value will be replaced with "sensitive".
6062func (s GroupSummary) GoString() string {
6063	return s.String()
6064}
6065
6066// SetFilterExpression sets the FilterExpression field's value.
6067func (s *GroupSummary) SetFilterExpression(v string) *GroupSummary {
6068	s.FilterExpression = &v
6069	return s
6070}
6071
6072// SetGroupARN sets the GroupARN field's value.
6073func (s *GroupSummary) SetGroupARN(v string) *GroupSummary {
6074	s.GroupARN = &v
6075	return s
6076}
6077
6078// SetGroupName sets the GroupName field's value.
6079func (s *GroupSummary) SetGroupName(v string) *GroupSummary {
6080	s.GroupName = &v
6081	return s
6082}
6083
6084// SetInsightsConfiguration sets the InsightsConfiguration field's value.
6085func (s *GroupSummary) SetInsightsConfiguration(v *InsightsConfiguration) *GroupSummary {
6086	s.InsightsConfiguration = v
6087	return s
6088}
6089
6090// An entry in a histogram for a statistic. A histogram maps the range of observed
6091// values on the X axis, and the prevalence of each value on the Y axis.
6092type HistogramEntry struct {
6093	_ struct{} `type:"structure"`
6094
6095	// The prevalence of the entry.
6096	Count *int64 `type:"integer"`
6097
6098	// The value of the entry.
6099	Value *float64 `type:"double"`
6100}
6101
6102// String returns the string representation.
6103//
6104// API parameter values that are decorated as "sensitive" in the API will not
6105// be included in the string output. The member name will be present, but the
6106// value will be replaced with "sensitive".
6107func (s HistogramEntry) String() string {
6108	return awsutil.Prettify(s)
6109}
6110
6111// GoString returns the string representation.
6112//
6113// API parameter values that are decorated as "sensitive" in the API will not
6114// be included in the string output. The member name will be present, but the
6115// value will be replaced with "sensitive".
6116func (s HistogramEntry) GoString() string {
6117	return s.String()
6118}
6119
6120// SetCount sets the Count field's value.
6121func (s *HistogramEntry) SetCount(v int64) *HistogramEntry {
6122	s.Count = &v
6123	return s
6124}
6125
6126// SetValue sets the Value field's value.
6127func (s *HistogramEntry) SetValue(v float64) *HistogramEntry {
6128	s.Value = &v
6129	return s
6130}
6131
6132// Information about an HTTP request.
6133type Http struct {
6134	_ struct{} `type:"structure"`
6135
6136	// The IP address of the requestor.
6137	ClientIp *string `type:"string"`
6138
6139	// The request method.
6140	HttpMethod *string `type:"string"`
6141
6142	// The response status.
6143	HttpStatus *int64 `type:"integer"`
6144
6145	// The request URL.
6146	HttpURL *string `type:"string"`
6147
6148	// The request's user agent string.
6149	UserAgent *string `type:"string"`
6150}
6151
6152// String returns the string representation.
6153//
6154// API parameter values that are decorated as "sensitive" in the API will not
6155// be included in the string output. The member name will be present, but the
6156// value will be replaced with "sensitive".
6157func (s Http) String() string {
6158	return awsutil.Prettify(s)
6159}
6160
6161// GoString returns the string representation.
6162//
6163// API parameter values that are decorated as "sensitive" in the API will not
6164// be included in the string output. The member name will be present, but the
6165// value will be replaced with "sensitive".
6166func (s Http) GoString() string {
6167	return s.String()
6168}
6169
6170// SetClientIp sets the ClientIp field's value.
6171func (s *Http) SetClientIp(v string) *Http {
6172	s.ClientIp = &v
6173	return s
6174}
6175
6176// SetHttpMethod sets the HttpMethod field's value.
6177func (s *Http) SetHttpMethod(v string) *Http {
6178	s.HttpMethod = &v
6179	return s
6180}
6181
6182// SetHttpStatus sets the HttpStatus field's value.
6183func (s *Http) SetHttpStatus(v int64) *Http {
6184	s.HttpStatus = &v
6185	return s
6186}
6187
6188// SetHttpURL sets the HttpURL field's value.
6189func (s *Http) SetHttpURL(v string) *Http {
6190	s.HttpURL = &v
6191	return s
6192}
6193
6194// SetUserAgent sets the UserAgent field's value.
6195func (s *Http) SetUserAgent(v string) *Http {
6196	s.UserAgent = &v
6197	return s
6198}
6199
6200// When fault rates go outside of the expected range, X-Ray creates an insight.
6201// Insights tracks emergent issues within your applications.
6202type Insight struct {
6203	_ struct{} `type:"structure"`
6204
6205	// The categories that label and describe the type of insight.
6206	Categories []*string `type:"list"`
6207
6208	// The impact statistics of the client side service. This includes the number
6209	// of requests to the client service and whether the requests were faults or
6210	// okay.
6211	ClientRequestImpactStatistics *RequestImpactStatistics `type:"structure"`
6212
6213	// The time, in Unix seconds, at which the insight ended.
6214	EndTime *time.Time `type:"timestamp"`
6215
6216	// The Amazon Resource Name (ARN) of the group that the insight belongs to.
6217	GroupARN *string `min:"1" type:"string"`
6218
6219	// The name of the group that the insight belongs to.
6220	GroupName *string `min:"1" type:"string"`
6221
6222	// The insights unique identifier.
6223	InsightId *string `type:"string"`
6224
6225	RootCauseServiceId *ServiceId `type:"structure"`
6226
6227	// The impact statistics of the root cause service. This includes the number
6228	// of requests to the client service and whether the requests were faults or
6229	// okay.
6230	RootCauseServiceRequestImpactStatistics *RequestImpactStatistics `type:"structure"`
6231
6232	// The time, in Unix seconds, at which the insight began.
6233	StartTime *time.Time `type:"timestamp"`
6234
6235	// The current state of the insight.
6236	State *string `type:"string" enum:"InsightState"`
6237
6238	// A brief description of the insight.
6239	Summary *string `type:"string"`
6240
6241	// The service within the insight that is most impacted by the incident.
6242	TopAnomalousServices []*AnomalousService `type:"list"`
6243}
6244
6245// String returns the string representation.
6246//
6247// API parameter values that are decorated as "sensitive" in the API will not
6248// be included in the string output. The member name will be present, but the
6249// value will be replaced with "sensitive".
6250func (s Insight) String() string {
6251	return awsutil.Prettify(s)
6252}
6253
6254// GoString returns the string representation.
6255//
6256// API parameter values that are decorated as "sensitive" in the API will not
6257// be included in the string output. The member name will be present, but the
6258// value will be replaced with "sensitive".
6259func (s Insight) GoString() string {
6260	return s.String()
6261}
6262
6263// SetCategories sets the Categories field's value.
6264func (s *Insight) SetCategories(v []*string) *Insight {
6265	s.Categories = v
6266	return s
6267}
6268
6269// SetClientRequestImpactStatistics sets the ClientRequestImpactStatistics field's value.
6270func (s *Insight) SetClientRequestImpactStatistics(v *RequestImpactStatistics) *Insight {
6271	s.ClientRequestImpactStatistics = v
6272	return s
6273}
6274
6275// SetEndTime sets the EndTime field's value.
6276func (s *Insight) SetEndTime(v time.Time) *Insight {
6277	s.EndTime = &v
6278	return s
6279}
6280
6281// SetGroupARN sets the GroupARN field's value.
6282func (s *Insight) SetGroupARN(v string) *Insight {
6283	s.GroupARN = &v
6284	return s
6285}
6286
6287// SetGroupName sets the GroupName field's value.
6288func (s *Insight) SetGroupName(v string) *Insight {
6289	s.GroupName = &v
6290	return s
6291}
6292
6293// SetInsightId sets the InsightId field's value.
6294func (s *Insight) SetInsightId(v string) *Insight {
6295	s.InsightId = &v
6296	return s
6297}
6298
6299// SetRootCauseServiceId sets the RootCauseServiceId field's value.
6300func (s *Insight) SetRootCauseServiceId(v *ServiceId) *Insight {
6301	s.RootCauseServiceId = v
6302	return s
6303}
6304
6305// SetRootCauseServiceRequestImpactStatistics sets the RootCauseServiceRequestImpactStatistics field's value.
6306func (s *Insight) SetRootCauseServiceRequestImpactStatistics(v *RequestImpactStatistics) *Insight {
6307	s.RootCauseServiceRequestImpactStatistics = v
6308	return s
6309}
6310
6311// SetStartTime sets the StartTime field's value.
6312func (s *Insight) SetStartTime(v time.Time) *Insight {
6313	s.StartTime = &v
6314	return s
6315}
6316
6317// SetState sets the State field's value.
6318func (s *Insight) SetState(v string) *Insight {
6319	s.State = &v
6320	return s
6321}
6322
6323// SetSummary sets the Summary field's value.
6324func (s *Insight) SetSummary(v string) *Insight {
6325	s.Summary = &v
6326	return s
6327}
6328
6329// SetTopAnomalousServices sets the TopAnomalousServices field's value.
6330func (s *Insight) SetTopAnomalousServices(v []*AnomalousService) *Insight {
6331	s.TopAnomalousServices = v
6332	return s
6333}
6334
6335// X-Ray reevaluates insights periodically until they are resolved, and records
6336// each intermediate state in an event. You can review incident events in the
6337// Impact Timeline on the Inspect page in the X-Ray console.
6338type InsightEvent struct {
6339	_ struct{} `type:"structure"`
6340
6341	// The impact statistics of the client side service. This includes the number
6342	// of requests to the client service and whether the requests were faults or
6343	// okay.
6344	ClientRequestImpactStatistics *RequestImpactStatistics `type:"structure"`
6345
6346	// The time, in Unix seconds, at which the event was recorded.
6347	EventTime *time.Time `type:"timestamp"`
6348
6349	// The impact statistics of the root cause service. This includes the number
6350	// of requests to the client service and whether the requests were faults or
6351	// okay.
6352	RootCauseServiceRequestImpactStatistics *RequestImpactStatistics `type:"structure"`
6353
6354	// A brief description of the event.
6355	Summary *string `type:"string"`
6356
6357	// The service during the event that is most impacted by the incident.
6358	TopAnomalousServices []*AnomalousService `type:"list"`
6359}
6360
6361// String returns the string representation.
6362//
6363// API parameter values that are decorated as "sensitive" in the API will not
6364// be included in the string output. The member name will be present, but the
6365// value will be replaced with "sensitive".
6366func (s InsightEvent) String() string {
6367	return awsutil.Prettify(s)
6368}
6369
6370// GoString returns the string representation.
6371//
6372// API parameter values that are decorated as "sensitive" in the API will not
6373// be included in the string output. The member name will be present, but the
6374// value will be replaced with "sensitive".
6375func (s InsightEvent) GoString() string {
6376	return s.String()
6377}
6378
6379// SetClientRequestImpactStatistics sets the ClientRequestImpactStatistics field's value.
6380func (s *InsightEvent) SetClientRequestImpactStatistics(v *RequestImpactStatistics) *InsightEvent {
6381	s.ClientRequestImpactStatistics = v
6382	return s
6383}
6384
6385// SetEventTime sets the EventTime field's value.
6386func (s *InsightEvent) SetEventTime(v time.Time) *InsightEvent {
6387	s.EventTime = &v
6388	return s
6389}
6390
6391// SetRootCauseServiceRequestImpactStatistics sets the RootCauseServiceRequestImpactStatistics field's value.
6392func (s *InsightEvent) SetRootCauseServiceRequestImpactStatistics(v *RequestImpactStatistics) *InsightEvent {
6393	s.RootCauseServiceRequestImpactStatistics = v
6394	return s
6395}
6396
6397// SetSummary sets the Summary field's value.
6398func (s *InsightEvent) SetSummary(v string) *InsightEvent {
6399	s.Summary = &v
6400	return s
6401}
6402
6403// SetTopAnomalousServices sets the TopAnomalousServices field's value.
6404func (s *InsightEvent) SetTopAnomalousServices(v []*AnomalousService) *InsightEvent {
6405	s.TopAnomalousServices = v
6406	return s
6407}
6408
6409// The connection between two service in an insight impact graph.
6410type InsightImpactGraphEdge struct {
6411	_ struct{} `type:"structure"`
6412
6413	// Identifier of the edge. Unique within a service map.
6414	ReferenceId *int64 `type:"integer"`
6415}
6416
6417// String returns the string representation.
6418//
6419// API parameter values that are decorated as "sensitive" in the API will not
6420// be included in the string output. The member name will be present, but the
6421// value will be replaced with "sensitive".
6422func (s InsightImpactGraphEdge) String() string {
6423	return awsutil.Prettify(s)
6424}
6425
6426// GoString returns the string representation.
6427//
6428// API parameter values that are decorated as "sensitive" in the API will not
6429// be included in the string output. The member name will be present, but the
6430// value will be replaced with "sensitive".
6431func (s InsightImpactGraphEdge) GoString() string {
6432	return s.String()
6433}
6434
6435// SetReferenceId sets the ReferenceId field's value.
6436func (s *InsightImpactGraphEdge) SetReferenceId(v int64) *InsightImpactGraphEdge {
6437	s.ReferenceId = &v
6438	return s
6439}
6440
6441// Information about an application that processed requests, users that made
6442// requests, or downstream services, resources, and applications that an application
6443// used.
6444type InsightImpactGraphService struct {
6445	_ struct{} `type:"structure"`
6446
6447	// Identifier of the Amazon Web Services account in which the service runs.
6448	AccountId *string `type:"string"`
6449
6450	// Connections to downstream services.
6451	Edges []*InsightImpactGraphEdge `type:"list"`
6452
6453	// The canonical name of the service.
6454	Name *string `type:"string"`
6455
6456	// A list of names for the service, including the canonical name.
6457	Names []*string `type:"list"`
6458
6459	// Identifier for the service. Unique within the service map.
6460	ReferenceId *int64 `type:"integer"`
6461
6462	// Identifier for the service. Unique within the service map.
6463	//
6464	//    * Amazon Web Services Resource - The type of an Amazon Web Services resource.
6465	//    For example, AWS::EC2::Instance for an application running on Amazon EC2
6466	//    or AWS::DynamoDB::Table for an Amazon DynamoDB table that the application
6467	//    used.
6468	//
6469	//    * Amazon Web Services Service - The type of an Amazon Web Services service.
6470	//    For example, AWS::DynamoDB for downstream calls to Amazon DynamoDB that
6471	//    didn't target a specific table.
6472	//
6473	//    * Amazon Web Services Service - The type of an Amazon Web Services service.
6474	//    For example, AWS::DynamoDB for downstream calls to Amazon DynamoDB that
6475	//    didn't target a specific table.
6476	//
6477	//    * remote - A downstream service of indeterminate type.
6478	Type *string `type:"string"`
6479}
6480
6481// String returns the string representation.
6482//
6483// API parameter values that are decorated as "sensitive" in the API will not
6484// be included in the string output. The member name will be present, but the
6485// value will be replaced with "sensitive".
6486func (s InsightImpactGraphService) String() string {
6487	return awsutil.Prettify(s)
6488}
6489
6490// GoString returns the string representation.
6491//
6492// API parameter values that are decorated as "sensitive" in the API will not
6493// be included in the string output. The member name will be present, but the
6494// value will be replaced with "sensitive".
6495func (s InsightImpactGraphService) GoString() string {
6496	return s.String()
6497}
6498
6499// SetAccountId sets the AccountId field's value.
6500func (s *InsightImpactGraphService) SetAccountId(v string) *InsightImpactGraphService {
6501	s.AccountId = &v
6502	return s
6503}
6504
6505// SetEdges sets the Edges field's value.
6506func (s *InsightImpactGraphService) SetEdges(v []*InsightImpactGraphEdge) *InsightImpactGraphService {
6507	s.Edges = v
6508	return s
6509}
6510
6511// SetName sets the Name field's value.
6512func (s *InsightImpactGraphService) SetName(v string) *InsightImpactGraphService {
6513	s.Name = &v
6514	return s
6515}
6516
6517// SetNames sets the Names field's value.
6518func (s *InsightImpactGraphService) SetNames(v []*string) *InsightImpactGraphService {
6519	s.Names = v
6520	return s
6521}
6522
6523// SetReferenceId sets the ReferenceId field's value.
6524func (s *InsightImpactGraphService) SetReferenceId(v int64) *InsightImpactGraphService {
6525	s.ReferenceId = &v
6526	return s
6527}
6528
6529// SetType sets the Type field's value.
6530func (s *InsightImpactGraphService) SetType(v string) *InsightImpactGraphService {
6531	s.Type = &v
6532	return s
6533}
6534
6535// Information that describes an insight.
6536type InsightSummary struct {
6537	_ struct{} `type:"structure"`
6538
6539	// Categories The categories that label and describe the type of insight.
6540	Categories []*string `type:"list"`
6541
6542	// The impact statistics of the client side service. This includes the number
6543	// of requests to the client service and whether the requests were faults or
6544	// okay.
6545	ClientRequestImpactStatistics *RequestImpactStatistics `type:"structure"`
6546
6547	// The time, in Unix seconds, at which the insight ended.
6548	EndTime *time.Time `type:"timestamp"`
6549
6550	// The Amazon Resource Name (ARN) of the group that the insight belongs to.
6551	GroupARN *string `min:"1" type:"string"`
6552
6553	// The name of the group that the insight belongs to.
6554	GroupName *string `min:"1" type:"string"`
6555
6556	// The insights unique identifier.
6557	InsightId *string `type:"string"`
6558
6559	// The time, in Unix seconds, that the insight was last updated.
6560	LastUpdateTime *time.Time `type:"timestamp"`
6561
6562	RootCauseServiceId *ServiceId `type:"structure"`
6563
6564	// The impact statistics of the root cause service. This includes the number
6565	// of requests to the client service and whether the requests were faults or
6566	// okay.
6567	RootCauseServiceRequestImpactStatistics *RequestImpactStatistics `type:"structure"`
6568
6569	// The time, in Unix seconds, at which the insight began.
6570	StartTime *time.Time `type:"timestamp"`
6571
6572	// The current state of the insight.
6573	State *string `type:"string" enum:"InsightState"`
6574
6575	// A brief description of the insight.
6576	Summary *string `type:"string"`
6577
6578	// The service within the insight that is most impacted by the incident.
6579	TopAnomalousServices []*AnomalousService `type:"list"`
6580}
6581
6582// String returns the string representation.
6583//
6584// API parameter values that are decorated as "sensitive" in the API will not
6585// be included in the string output. The member name will be present, but the
6586// value will be replaced with "sensitive".
6587func (s InsightSummary) String() string {
6588	return awsutil.Prettify(s)
6589}
6590
6591// GoString returns the string representation.
6592//
6593// API parameter values that are decorated as "sensitive" in the API will not
6594// be included in the string output. The member name will be present, but the
6595// value will be replaced with "sensitive".
6596func (s InsightSummary) GoString() string {
6597	return s.String()
6598}
6599
6600// SetCategories sets the Categories field's value.
6601func (s *InsightSummary) SetCategories(v []*string) *InsightSummary {
6602	s.Categories = v
6603	return s
6604}
6605
6606// SetClientRequestImpactStatistics sets the ClientRequestImpactStatistics field's value.
6607func (s *InsightSummary) SetClientRequestImpactStatistics(v *RequestImpactStatistics) *InsightSummary {
6608	s.ClientRequestImpactStatistics = v
6609	return s
6610}
6611
6612// SetEndTime sets the EndTime field's value.
6613func (s *InsightSummary) SetEndTime(v time.Time) *InsightSummary {
6614	s.EndTime = &v
6615	return s
6616}
6617
6618// SetGroupARN sets the GroupARN field's value.
6619func (s *InsightSummary) SetGroupARN(v string) *InsightSummary {
6620	s.GroupARN = &v
6621	return s
6622}
6623
6624// SetGroupName sets the GroupName field's value.
6625func (s *InsightSummary) SetGroupName(v string) *InsightSummary {
6626	s.GroupName = &v
6627	return s
6628}
6629
6630// SetInsightId sets the InsightId field's value.
6631func (s *InsightSummary) SetInsightId(v string) *InsightSummary {
6632	s.InsightId = &v
6633	return s
6634}
6635
6636// SetLastUpdateTime sets the LastUpdateTime field's value.
6637func (s *InsightSummary) SetLastUpdateTime(v time.Time) *InsightSummary {
6638	s.LastUpdateTime = &v
6639	return s
6640}
6641
6642// SetRootCauseServiceId sets the RootCauseServiceId field's value.
6643func (s *InsightSummary) SetRootCauseServiceId(v *ServiceId) *InsightSummary {
6644	s.RootCauseServiceId = v
6645	return s
6646}
6647
6648// SetRootCauseServiceRequestImpactStatistics sets the RootCauseServiceRequestImpactStatistics field's value.
6649func (s *InsightSummary) SetRootCauseServiceRequestImpactStatistics(v *RequestImpactStatistics) *InsightSummary {
6650	s.RootCauseServiceRequestImpactStatistics = v
6651	return s
6652}
6653
6654// SetStartTime sets the StartTime field's value.
6655func (s *InsightSummary) SetStartTime(v time.Time) *InsightSummary {
6656	s.StartTime = &v
6657	return s
6658}
6659
6660// SetState sets the State field's value.
6661func (s *InsightSummary) SetState(v string) *InsightSummary {
6662	s.State = &v
6663	return s
6664}
6665
6666// SetSummary sets the Summary field's value.
6667func (s *InsightSummary) SetSummary(v string) *InsightSummary {
6668	s.Summary = &v
6669	return s
6670}
6671
6672// SetTopAnomalousServices sets the TopAnomalousServices field's value.
6673func (s *InsightSummary) SetTopAnomalousServices(v []*AnomalousService) *InsightSummary {
6674	s.TopAnomalousServices = v
6675	return s
6676}
6677
6678// The structure containing configurations related to insights.
6679type InsightsConfiguration struct {
6680	_ struct{} `type:"structure"`
6681
6682	// Set the InsightsEnabled value to true to enable insights or false to disable
6683	// insights.
6684	InsightsEnabled *bool `type:"boolean"`
6685
6686	// Set the NotificationsEnabled value to true to enable insights notifications.
6687	// Notifications can only be enabled on a group with InsightsEnabled set to
6688	// true.
6689	NotificationsEnabled *bool `type:"boolean"`
6690}
6691
6692// String returns the string representation.
6693//
6694// API parameter values that are decorated as "sensitive" in the API will not
6695// be included in the string output. The member name will be present, but the
6696// value will be replaced with "sensitive".
6697func (s InsightsConfiguration) String() string {
6698	return awsutil.Prettify(s)
6699}
6700
6701// GoString returns the string representation.
6702//
6703// API parameter values that are decorated as "sensitive" in the API will not
6704// be included in the string output. The member name will be present, but the
6705// value will be replaced with "sensitive".
6706func (s InsightsConfiguration) GoString() string {
6707	return s.String()
6708}
6709
6710// SetInsightsEnabled sets the InsightsEnabled field's value.
6711func (s *InsightsConfiguration) SetInsightsEnabled(v bool) *InsightsConfiguration {
6712	s.InsightsEnabled = &v
6713	return s
6714}
6715
6716// SetNotificationsEnabled sets the NotificationsEnabled field's value.
6717func (s *InsightsConfiguration) SetNotificationsEnabled(v bool) *InsightsConfiguration {
6718	s.NotificationsEnabled = &v
6719	return s
6720}
6721
6722// A list of EC2 instance IDs corresponding to the segments in a trace.
6723type InstanceIdDetail struct {
6724	_ struct{} `type:"structure"`
6725
6726	// The ID of a corresponding EC2 instance.
6727	Id *string `type:"string"`
6728}
6729
6730// String returns the string representation.
6731//
6732// API parameter values that are decorated as "sensitive" in the API will not
6733// be included in the string output. The member name will be present, but the
6734// value will be replaced with "sensitive".
6735func (s InstanceIdDetail) String() string {
6736	return awsutil.Prettify(s)
6737}
6738
6739// GoString returns the string representation.
6740//
6741// API parameter values that are decorated as "sensitive" in the API will not
6742// be included in the string output. The member name will be present, but the
6743// value will be replaced with "sensitive".
6744func (s InstanceIdDetail) GoString() string {
6745	return s.String()
6746}
6747
6748// SetId sets the Id field's value.
6749func (s *InstanceIdDetail) SetId(v string) *InstanceIdDetail {
6750	s.Id = &v
6751	return s
6752}
6753
6754// The request is missing required parameters or has invalid parameters.
6755type InvalidRequestException struct {
6756	_            struct{}                  `type:"structure"`
6757	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
6758
6759	Message_ *string `locationName:"Message" type:"string"`
6760}
6761
6762// String returns the string representation.
6763//
6764// API parameter values that are decorated as "sensitive" in the API will not
6765// be included in the string output. The member name will be present, but the
6766// value will be replaced with "sensitive".
6767func (s InvalidRequestException) String() string {
6768	return awsutil.Prettify(s)
6769}
6770
6771// GoString returns the string representation.
6772//
6773// API parameter values that are decorated as "sensitive" in the API will not
6774// be included in the string output. The member name will be present, but the
6775// value will be replaced with "sensitive".
6776func (s InvalidRequestException) GoString() string {
6777	return s.String()
6778}
6779
6780func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
6781	return &InvalidRequestException{
6782		RespMetadata: v,
6783	}
6784}
6785
6786// Code returns the exception type name.
6787func (s *InvalidRequestException) Code() string {
6788	return "InvalidRequestException"
6789}
6790
6791// Message returns the exception's message.
6792func (s *InvalidRequestException) Message() string {
6793	if s.Message_ != nil {
6794		return *s.Message_
6795	}
6796	return ""
6797}
6798
6799// OrigErr always returns nil, satisfies awserr.Error interface.
6800func (s *InvalidRequestException) OrigErr() error {
6801	return nil
6802}
6803
6804func (s *InvalidRequestException) Error() string {
6805	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
6806}
6807
6808// Status code returns the HTTP status code for the request's response error.
6809func (s *InvalidRequestException) StatusCode() int {
6810	return s.RespMetadata.StatusCode
6811}
6812
6813// RequestID returns the service's response RequestID for request.
6814func (s *InvalidRequestException) RequestID() string {
6815	return s.RespMetadata.RequestID
6816}
6817
6818type ListTagsForResourceInput struct {
6819	_ struct{} `type:"structure"`
6820
6821	// A pagination token. If multiple pages of results are returned, use the NextToken
6822	// value returned with the current page of results as the value of this parameter
6823	// to get the next page of results.
6824	NextToken *string `type:"string"`
6825
6826	// The Amazon Resource Number (ARN) of an X-Ray group or sampling rule.
6827	//
6828	// ResourceARN is a required field
6829	ResourceARN *string `min:"1" type:"string" required:"true"`
6830}
6831
6832// String returns the string representation.
6833//
6834// API parameter values that are decorated as "sensitive" in the API will not
6835// be included in the string output. The member name will be present, but the
6836// value will be replaced with "sensitive".
6837func (s ListTagsForResourceInput) String() string {
6838	return awsutil.Prettify(s)
6839}
6840
6841// GoString returns the string representation.
6842//
6843// API parameter values that are decorated as "sensitive" in the API will not
6844// be included in the string output. The member name will be present, but the
6845// value will be replaced with "sensitive".
6846func (s ListTagsForResourceInput) GoString() string {
6847	return s.String()
6848}
6849
6850// Validate inspects the fields of the type to determine if they are valid.
6851func (s *ListTagsForResourceInput) Validate() error {
6852	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
6853	if s.ResourceARN == nil {
6854		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
6855	}
6856	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
6857		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
6858	}
6859
6860	if invalidParams.Len() > 0 {
6861		return invalidParams
6862	}
6863	return nil
6864}
6865
6866// SetNextToken sets the NextToken field's value.
6867func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
6868	s.NextToken = &v
6869	return s
6870}
6871
6872// SetResourceARN sets the ResourceARN field's value.
6873func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
6874	s.ResourceARN = &v
6875	return s
6876}
6877
6878type ListTagsForResourceOutput struct {
6879	_ struct{} `type:"structure"`
6880
6881	// A pagination token. If multiple pages of results are returned, use the NextToken
6882	// value returned with the current page of results to get the next page of results.
6883	NextToken *string `type:"string"`
6884
6885	// A list of tags, as key and value pairs, that is associated with the specified
6886	// X-Ray group or sampling rule.
6887	Tags []*Tag `type:"list"`
6888}
6889
6890// String returns the string representation.
6891//
6892// API parameter values that are decorated as "sensitive" in the API will not
6893// be included in the string output. The member name will be present, but the
6894// value will be replaced with "sensitive".
6895func (s ListTagsForResourceOutput) String() string {
6896	return awsutil.Prettify(s)
6897}
6898
6899// GoString returns the string representation.
6900//
6901// API parameter values that are decorated as "sensitive" in the API will not
6902// be included in the string output. The member name will be present, but the
6903// value will be replaced with "sensitive".
6904func (s ListTagsForResourceOutput) GoString() string {
6905	return s.String()
6906}
6907
6908// SetNextToken sets the NextToken field's value.
6909func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
6910	s.NextToken = &v
6911	return s
6912}
6913
6914// SetTags sets the Tags field's value.
6915func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
6916	s.Tags = v
6917	return s
6918}
6919
6920type PutEncryptionConfigInput struct {
6921	_ struct{} `type:"structure"`
6922
6923	// An Amazon Web Services KMS key in one of the following formats:
6924	//
6925	//    * Alias - The name of the key. For example, alias/MyKey.
6926	//
6927	//    * Key ID - The KMS key ID of the key. For example, ae4aa6d49-a4d8-9df9-a475-4ff6d7898456.
6928	//    Amazon Web Services X-Ray does not support asymmetric KMS keys.
6929	//
6930	//    * ARN - The full Amazon Resource Name of the key ID or alias. For example,
6931	//    arn:aws:kms:us-east-2:123456789012:key/ae4aa6d49-a4d8-9df9-a475-4ff6d7898456.
6932	//    Use this format to specify a key in a different account.
6933	//
6934	// Omit this key if you set Type to NONE.
6935	KeyId *string `min:"1" type:"string"`
6936
6937	// The type of encryption. Set to KMS to use your own key for encryption. Set
6938	// to NONE for default encryption.
6939	//
6940	// Type is a required field
6941	Type *string `type:"string" required:"true" enum:"EncryptionType"`
6942}
6943
6944// String returns the string representation.
6945//
6946// API parameter values that are decorated as "sensitive" in the API will not
6947// be included in the string output. The member name will be present, but the
6948// value will be replaced with "sensitive".
6949func (s PutEncryptionConfigInput) String() string {
6950	return awsutil.Prettify(s)
6951}
6952
6953// GoString returns the string representation.
6954//
6955// API parameter values that are decorated as "sensitive" in the API will not
6956// be included in the string output. The member name will be present, but the
6957// value will be replaced with "sensitive".
6958func (s PutEncryptionConfigInput) GoString() string {
6959	return s.String()
6960}
6961
6962// Validate inspects the fields of the type to determine if they are valid.
6963func (s *PutEncryptionConfigInput) Validate() error {
6964	invalidParams := request.ErrInvalidParams{Context: "PutEncryptionConfigInput"}
6965	if s.KeyId != nil && len(*s.KeyId) < 1 {
6966		invalidParams.Add(request.NewErrParamMinLen("KeyId", 1))
6967	}
6968	if s.Type == nil {
6969		invalidParams.Add(request.NewErrParamRequired("Type"))
6970	}
6971
6972	if invalidParams.Len() > 0 {
6973		return invalidParams
6974	}
6975	return nil
6976}
6977
6978// SetKeyId sets the KeyId field's value.
6979func (s *PutEncryptionConfigInput) SetKeyId(v string) *PutEncryptionConfigInput {
6980	s.KeyId = &v
6981	return s
6982}
6983
6984// SetType sets the Type field's value.
6985func (s *PutEncryptionConfigInput) SetType(v string) *PutEncryptionConfigInput {
6986	s.Type = &v
6987	return s
6988}
6989
6990type PutEncryptionConfigOutput struct {
6991	_ struct{} `type:"structure"`
6992
6993	// The new encryption configuration.
6994	EncryptionConfig *EncryptionConfig `type:"structure"`
6995}
6996
6997// String returns the string representation.
6998//
6999// API parameter values that are decorated as "sensitive" in the API will not
7000// be included in the string output. The member name will be present, but the
7001// value will be replaced with "sensitive".
7002func (s PutEncryptionConfigOutput) String() string {
7003	return awsutil.Prettify(s)
7004}
7005
7006// GoString returns the string representation.
7007//
7008// API parameter values that are decorated as "sensitive" in the API will not
7009// be included in the string output. The member name will be present, but the
7010// value will be replaced with "sensitive".
7011func (s PutEncryptionConfigOutput) GoString() string {
7012	return s.String()
7013}
7014
7015// SetEncryptionConfig sets the EncryptionConfig field's value.
7016func (s *PutEncryptionConfigOutput) SetEncryptionConfig(v *EncryptionConfig) *PutEncryptionConfigOutput {
7017	s.EncryptionConfig = v
7018	return s
7019}
7020
7021type PutTelemetryRecordsInput struct {
7022	_ struct{} `type:"structure"`
7023
7024	EC2InstanceId *string `type:"string"`
7025
7026	Hostname *string `type:"string"`
7027
7028	ResourceARN *string `type:"string"`
7029
7030	// TelemetryRecords is a required field
7031	TelemetryRecords []*TelemetryRecord `type:"list" required:"true"`
7032}
7033
7034// String returns the string representation.
7035//
7036// API parameter values that are decorated as "sensitive" in the API will not
7037// be included in the string output. The member name will be present, but the
7038// value will be replaced with "sensitive".
7039func (s PutTelemetryRecordsInput) String() string {
7040	return awsutil.Prettify(s)
7041}
7042
7043// GoString returns the string representation.
7044//
7045// API parameter values that are decorated as "sensitive" in the API will not
7046// be included in the string output. The member name will be present, but the
7047// value will be replaced with "sensitive".
7048func (s PutTelemetryRecordsInput) GoString() string {
7049	return s.String()
7050}
7051
7052// Validate inspects the fields of the type to determine if they are valid.
7053func (s *PutTelemetryRecordsInput) Validate() error {
7054	invalidParams := request.ErrInvalidParams{Context: "PutTelemetryRecordsInput"}
7055	if s.TelemetryRecords == nil {
7056		invalidParams.Add(request.NewErrParamRequired("TelemetryRecords"))
7057	}
7058	if s.TelemetryRecords != nil {
7059		for i, v := range s.TelemetryRecords {
7060			if v == nil {
7061				continue
7062			}
7063			if err := v.Validate(); err != nil {
7064				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TelemetryRecords", i), err.(request.ErrInvalidParams))
7065			}
7066		}
7067	}
7068
7069	if invalidParams.Len() > 0 {
7070		return invalidParams
7071	}
7072	return nil
7073}
7074
7075// SetEC2InstanceId sets the EC2InstanceId field's value.
7076func (s *PutTelemetryRecordsInput) SetEC2InstanceId(v string) *PutTelemetryRecordsInput {
7077	s.EC2InstanceId = &v
7078	return s
7079}
7080
7081// SetHostname sets the Hostname field's value.
7082func (s *PutTelemetryRecordsInput) SetHostname(v string) *PutTelemetryRecordsInput {
7083	s.Hostname = &v
7084	return s
7085}
7086
7087// SetResourceARN sets the ResourceARN field's value.
7088func (s *PutTelemetryRecordsInput) SetResourceARN(v string) *PutTelemetryRecordsInput {
7089	s.ResourceARN = &v
7090	return s
7091}
7092
7093// SetTelemetryRecords sets the TelemetryRecords field's value.
7094func (s *PutTelemetryRecordsInput) SetTelemetryRecords(v []*TelemetryRecord) *PutTelemetryRecordsInput {
7095	s.TelemetryRecords = v
7096	return s
7097}
7098
7099type PutTelemetryRecordsOutput struct {
7100	_ struct{} `type:"structure"`
7101}
7102
7103// String returns the string representation.
7104//
7105// API parameter values that are decorated as "sensitive" in the API will not
7106// be included in the string output. The member name will be present, but the
7107// value will be replaced with "sensitive".
7108func (s PutTelemetryRecordsOutput) String() string {
7109	return awsutil.Prettify(s)
7110}
7111
7112// GoString returns the string representation.
7113//
7114// API parameter values that are decorated as "sensitive" in the API will not
7115// be included in the string output. The member name will be present, but the
7116// value will be replaced with "sensitive".
7117func (s PutTelemetryRecordsOutput) GoString() string {
7118	return s.String()
7119}
7120
7121type PutTraceSegmentsInput struct {
7122	_ struct{} `type:"structure"`
7123
7124	// A string containing a JSON document defining one or more segments or subsegments.
7125	//
7126	// TraceSegmentDocuments is a required field
7127	TraceSegmentDocuments []*string `type:"list" required:"true"`
7128}
7129
7130// String returns the string representation.
7131//
7132// API parameter values that are decorated as "sensitive" in the API will not
7133// be included in the string output. The member name will be present, but the
7134// value will be replaced with "sensitive".
7135func (s PutTraceSegmentsInput) String() string {
7136	return awsutil.Prettify(s)
7137}
7138
7139// GoString returns the string representation.
7140//
7141// API parameter values that are decorated as "sensitive" in the API will not
7142// be included in the string output. The member name will be present, but the
7143// value will be replaced with "sensitive".
7144func (s PutTraceSegmentsInput) GoString() string {
7145	return s.String()
7146}
7147
7148// Validate inspects the fields of the type to determine if they are valid.
7149func (s *PutTraceSegmentsInput) Validate() error {
7150	invalidParams := request.ErrInvalidParams{Context: "PutTraceSegmentsInput"}
7151	if s.TraceSegmentDocuments == nil {
7152		invalidParams.Add(request.NewErrParamRequired("TraceSegmentDocuments"))
7153	}
7154
7155	if invalidParams.Len() > 0 {
7156		return invalidParams
7157	}
7158	return nil
7159}
7160
7161// SetTraceSegmentDocuments sets the TraceSegmentDocuments field's value.
7162func (s *PutTraceSegmentsInput) SetTraceSegmentDocuments(v []*string) *PutTraceSegmentsInput {
7163	s.TraceSegmentDocuments = v
7164	return s
7165}
7166
7167type PutTraceSegmentsOutput struct {
7168	_ struct{} `type:"structure"`
7169
7170	// Segments that failed processing.
7171	UnprocessedTraceSegments []*UnprocessedTraceSegment `type:"list"`
7172}
7173
7174// String returns the string representation.
7175//
7176// API parameter values that are decorated as "sensitive" in the API will not
7177// be included in the string output. The member name will be present, but the
7178// value will be replaced with "sensitive".
7179func (s PutTraceSegmentsOutput) String() string {
7180	return awsutil.Prettify(s)
7181}
7182
7183// GoString returns the string representation.
7184//
7185// API parameter values that are decorated as "sensitive" in the API will not
7186// be included in the string output. The member name will be present, but the
7187// value will be replaced with "sensitive".
7188func (s PutTraceSegmentsOutput) GoString() string {
7189	return s.String()
7190}
7191
7192// SetUnprocessedTraceSegments sets the UnprocessedTraceSegments field's value.
7193func (s *PutTraceSegmentsOutput) SetUnprocessedTraceSegments(v []*UnprocessedTraceSegment) *PutTraceSegmentsOutput {
7194	s.UnprocessedTraceSegments = v
7195	return s
7196}
7197
7198// Statistics that describe how the incident has impacted a service.
7199type RequestImpactStatistics struct {
7200	_ struct{} `type:"structure"`
7201
7202	// The number of requests that have resulted in a fault,
7203	FaultCount *int64 `type:"long"`
7204
7205	// The number of successful requests.
7206	OkCount *int64 `type:"long"`
7207
7208	// The total number of requests to the service.
7209	TotalCount *int64 `type:"long"`
7210}
7211
7212// String returns the string representation.
7213//
7214// API parameter values that are decorated as "sensitive" in the API will not
7215// be included in the string output. The member name will be present, but the
7216// value will be replaced with "sensitive".
7217func (s RequestImpactStatistics) String() string {
7218	return awsutil.Prettify(s)
7219}
7220
7221// GoString returns the string representation.
7222//
7223// API parameter values that are decorated as "sensitive" in the API will not
7224// be included in the string output. The member name will be present, but the
7225// value will be replaced with "sensitive".
7226func (s RequestImpactStatistics) GoString() string {
7227	return s.String()
7228}
7229
7230// SetFaultCount sets the FaultCount field's value.
7231func (s *RequestImpactStatistics) SetFaultCount(v int64) *RequestImpactStatistics {
7232	s.FaultCount = &v
7233	return s
7234}
7235
7236// SetOkCount sets the OkCount field's value.
7237func (s *RequestImpactStatistics) SetOkCount(v int64) *RequestImpactStatistics {
7238	s.OkCount = &v
7239	return s
7240}
7241
7242// SetTotalCount sets the TotalCount field's value.
7243func (s *RequestImpactStatistics) SetTotalCount(v int64) *RequestImpactStatistics {
7244	s.TotalCount = &v
7245	return s
7246}
7247
7248// A list of resources ARNs corresponding to the segments in a trace.
7249type ResourceARNDetail struct {
7250	_ struct{} `type:"structure"`
7251
7252	// The ARN of a corresponding resource.
7253	ARN *string `type:"string"`
7254}
7255
7256// String returns the string representation.
7257//
7258// API parameter values that are decorated as "sensitive" in the API will not
7259// be included in the string output. The member name will be present, but the
7260// value will be replaced with "sensitive".
7261func (s ResourceARNDetail) String() string {
7262	return awsutil.Prettify(s)
7263}
7264
7265// GoString returns the string representation.
7266//
7267// API parameter values that are decorated as "sensitive" in the API will not
7268// be included in the string output. The member name will be present, but the
7269// value will be replaced with "sensitive".
7270func (s ResourceARNDetail) GoString() string {
7271	return s.String()
7272}
7273
7274// SetARN sets the ARN field's value.
7275func (s *ResourceARNDetail) SetARN(v string) *ResourceARNDetail {
7276	s.ARN = &v
7277	return s
7278}
7279
7280// The resource was not found. Verify that the name or Amazon Resource Name
7281// (ARN) of the resource is correct.
7282type ResourceNotFoundException struct {
7283	_            struct{}                  `type:"structure"`
7284	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7285
7286	Message_ *string `locationName:"Message" type:"string"`
7287
7288	ResourceName *string `min:"1" type:"string"`
7289}
7290
7291// String returns the string representation.
7292//
7293// API parameter values that are decorated as "sensitive" in the API will not
7294// be included in the string output. The member name will be present, but the
7295// value will be replaced with "sensitive".
7296func (s ResourceNotFoundException) String() string {
7297	return awsutil.Prettify(s)
7298}
7299
7300// GoString returns the string representation.
7301//
7302// API parameter values that are decorated as "sensitive" in the API will not
7303// be included in the string output. The member name will be present, but the
7304// value will be replaced with "sensitive".
7305func (s ResourceNotFoundException) GoString() string {
7306	return s.String()
7307}
7308
7309func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
7310	return &ResourceNotFoundException{
7311		RespMetadata: v,
7312	}
7313}
7314
7315// Code returns the exception type name.
7316func (s *ResourceNotFoundException) Code() string {
7317	return "ResourceNotFoundException"
7318}
7319
7320// Message returns the exception's message.
7321func (s *ResourceNotFoundException) Message() string {
7322	if s.Message_ != nil {
7323		return *s.Message_
7324	}
7325	return ""
7326}
7327
7328// OrigErr always returns nil, satisfies awserr.Error interface.
7329func (s *ResourceNotFoundException) OrigErr() error {
7330	return nil
7331}
7332
7333func (s *ResourceNotFoundException) Error() string {
7334	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
7335}
7336
7337// Status code returns the HTTP status code for the request's response error.
7338func (s *ResourceNotFoundException) StatusCode() int {
7339	return s.RespMetadata.StatusCode
7340}
7341
7342// RequestID returns the service's response RequestID for request.
7343func (s *ResourceNotFoundException) RequestID() string {
7344	return s.RespMetadata.RequestID
7345}
7346
7347// The root cause information for a response time warning.
7348type ResponseTimeRootCause struct {
7349	_ struct{} `type:"structure"`
7350
7351	// A flag that denotes that the root cause impacts the trace client.
7352	ClientImpacting *bool `type:"boolean"`
7353
7354	// A list of corresponding services. A service identifies a segment and contains
7355	// a name, account ID, type, and inferred flag.
7356	Services []*ResponseTimeRootCauseService `type:"list"`
7357}
7358
7359// String returns the string representation.
7360//
7361// API parameter values that are decorated as "sensitive" in the API will not
7362// be included in the string output. The member name will be present, but the
7363// value will be replaced with "sensitive".
7364func (s ResponseTimeRootCause) String() string {
7365	return awsutil.Prettify(s)
7366}
7367
7368// GoString returns the string representation.
7369//
7370// API parameter values that are decorated as "sensitive" in the API will not
7371// be included in the string output. The member name will be present, but the
7372// value will be replaced with "sensitive".
7373func (s ResponseTimeRootCause) GoString() string {
7374	return s.String()
7375}
7376
7377// SetClientImpacting sets the ClientImpacting field's value.
7378func (s *ResponseTimeRootCause) SetClientImpacting(v bool) *ResponseTimeRootCause {
7379	s.ClientImpacting = &v
7380	return s
7381}
7382
7383// SetServices sets the Services field's value.
7384func (s *ResponseTimeRootCause) SetServices(v []*ResponseTimeRootCauseService) *ResponseTimeRootCause {
7385	s.Services = v
7386	return s
7387}
7388
7389// A collection of segments and corresponding subsegments associated to a response
7390// time warning.
7391type ResponseTimeRootCauseEntity struct {
7392	_ struct{} `type:"structure"`
7393
7394	// The type and messages of the exceptions.
7395	Coverage *float64 `type:"double"`
7396
7397	// The name of the entity.
7398	Name *string `type:"string"`
7399
7400	// A flag that denotes a remote subsegment.
7401	Remote *bool `type:"boolean"`
7402}
7403
7404// String returns the string representation.
7405//
7406// API parameter values that are decorated as "sensitive" in the API will not
7407// be included in the string output. The member name will be present, but the
7408// value will be replaced with "sensitive".
7409func (s ResponseTimeRootCauseEntity) String() string {
7410	return awsutil.Prettify(s)
7411}
7412
7413// GoString returns the string representation.
7414//
7415// API parameter values that are decorated as "sensitive" in the API will not
7416// be included in the string output. The member name will be present, but the
7417// value will be replaced with "sensitive".
7418func (s ResponseTimeRootCauseEntity) GoString() string {
7419	return s.String()
7420}
7421
7422// SetCoverage sets the Coverage field's value.
7423func (s *ResponseTimeRootCauseEntity) SetCoverage(v float64) *ResponseTimeRootCauseEntity {
7424	s.Coverage = &v
7425	return s
7426}
7427
7428// SetName sets the Name field's value.
7429func (s *ResponseTimeRootCauseEntity) SetName(v string) *ResponseTimeRootCauseEntity {
7430	s.Name = &v
7431	return s
7432}
7433
7434// SetRemote sets the Remote field's value.
7435func (s *ResponseTimeRootCauseEntity) SetRemote(v bool) *ResponseTimeRootCauseEntity {
7436	s.Remote = &v
7437	return s
7438}
7439
7440// A collection of fields identifying the service in a response time warning.
7441type ResponseTimeRootCauseService struct {
7442	_ struct{} `type:"structure"`
7443
7444	// The account ID associated to the service.
7445	AccountId *string `type:"string"`
7446
7447	// The path of root cause entities found on the service.
7448	EntityPath []*ResponseTimeRootCauseEntity `type:"list"`
7449
7450	// A Boolean value indicating if the service is inferred from the trace.
7451	Inferred *bool `type:"boolean"`
7452
7453	// The service name.
7454	Name *string `type:"string"`
7455
7456	// A collection of associated service names.
7457	Names []*string `type:"list"`
7458
7459	// The type associated to the service.
7460	Type *string `type:"string"`
7461}
7462
7463// String returns the string representation.
7464//
7465// API parameter values that are decorated as "sensitive" in the API will not
7466// be included in the string output. The member name will be present, but the
7467// value will be replaced with "sensitive".
7468func (s ResponseTimeRootCauseService) String() string {
7469	return awsutil.Prettify(s)
7470}
7471
7472// GoString returns the string representation.
7473//
7474// API parameter values that are decorated as "sensitive" in the API will not
7475// be included in the string output. The member name will be present, but the
7476// value will be replaced with "sensitive".
7477func (s ResponseTimeRootCauseService) GoString() string {
7478	return s.String()
7479}
7480
7481// SetAccountId sets the AccountId field's value.
7482func (s *ResponseTimeRootCauseService) SetAccountId(v string) *ResponseTimeRootCauseService {
7483	s.AccountId = &v
7484	return s
7485}
7486
7487// SetEntityPath sets the EntityPath field's value.
7488func (s *ResponseTimeRootCauseService) SetEntityPath(v []*ResponseTimeRootCauseEntity) *ResponseTimeRootCauseService {
7489	s.EntityPath = v
7490	return s
7491}
7492
7493// SetInferred sets the Inferred field's value.
7494func (s *ResponseTimeRootCauseService) SetInferred(v bool) *ResponseTimeRootCauseService {
7495	s.Inferred = &v
7496	return s
7497}
7498
7499// SetName sets the Name field's value.
7500func (s *ResponseTimeRootCauseService) SetName(v string) *ResponseTimeRootCauseService {
7501	s.Name = &v
7502	return s
7503}
7504
7505// SetNames sets the Names field's value.
7506func (s *ResponseTimeRootCauseService) SetNames(v []*string) *ResponseTimeRootCauseService {
7507	s.Names = v
7508	return s
7509}
7510
7511// SetType sets the Type field's value.
7512func (s *ResponseTimeRootCauseService) SetType(v string) *ResponseTimeRootCauseService {
7513	s.Type = &v
7514	return s
7515}
7516
7517// The exception associated with a root cause.
7518type RootCauseException struct {
7519	_ struct{} `type:"structure"`
7520
7521	// The message of the exception.
7522	Message *string `type:"string"`
7523
7524	// The name of the exception.
7525	Name *string `type:"string"`
7526}
7527
7528// String returns the string representation.
7529//
7530// API parameter values that are decorated as "sensitive" in the API will not
7531// be included in the string output. The member name will be present, but the
7532// value will be replaced with "sensitive".
7533func (s RootCauseException) String() string {
7534	return awsutil.Prettify(s)
7535}
7536
7537// GoString returns the string representation.
7538//
7539// API parameter values that are decorated as "sensitive" in the API will not
7540// be included in the string output. The member name will be present, but the
7541// value will be replaced with "sensitive".
7542func (s RootCauseException) GoString() string {
7543	return s.String()
7544}
7545
7546// SetMessage sets the Message field's value.
7547func (s *RootCauseException) SetMessage(v string) *RootCauseException {
7548	s.Message = &v
7549	return s
7550}
7551
7552// SetName sets the Name field's value.
7553func (s *RootCauseException) SetName(v string) *RootCauseException {
7554	s.Name = &v
7555	return s
7556}
7557
7558// You have reached the maximum number of sampling rules.
7559type RuleLimitExceededException struct {
7560	_            struct{}                  `type:"structure"`
7561	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7562
7563	Message_ *string `locationName:"Message" type:"string"`
7564}
7565
7566// String returns the string representation.
7567//
7568// API parameter values that are decorated as "sensitive" in the API will not
7569// be included in the string output. The member name will be present, but the
7570// value will be replaced with "sensitive".
7571func (s RuleLimitExceededException) String() string {
7572	return awsutil.Prettify(s)
7573}
7574
7575// GoString returns the string representation.
7576//
7577// API parameter values that are decorated as "sensitive" in the API will not
7578// be included in the string output. The member name will be present, but the
7579// value will be replaced with "sensitive".
7580func (s RuleLimitExceededException) GoString() string {
7581	return s.String()
7582}
7583
7584func newErrorRuleLimitExceededException(v protocol.ResponseMetadata) error {
7585	return &RuleLimitExceededException{
7586		RespMetadata: v,
7587	}
7588}
7589
7590// Code returns the exception type name.
7591func (s *RuleLimitExceededException) Code() string {
7592	return "RuleLimitExceededException"
7593}
7594
7595// Message returns the exception's message.
7596func (s *RuleLimitExceededException) Message() string {
7597	if s.Message_ != nil {
7598		return *s.Message_
7599	}
7600	return ""
7601}
7602
7603// OrigErr always returns nil, satisfies awserr.Error interface.
7604func (s *RuleLimitExceededException) OrigErr() error {
7605	return nil
7606}
7607
7608func (s *RuleLimitExceededException) Error() string {
7609	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7610}
7611
7612// Status code returns the HTTP status code for the request's response error.
7613func (s *RuleLimitExceededException) StatusCode() int {
7614	return s.RespMetadata.StatusCode
7615}
7616
7617// RequestID returns the service's response RequestID for request.
7618func (s *RuleLimitExceededException) RequestID() string {
7619	return s.RespMetadata.RequestID
7620}
7621
7622// A sampling rule that services use to decide whether to instrument a request.
7623// Rule fields can match properties of the service, or properties of a request.
7624// The service can ignore rules that don't match its properties.
7625type SamplingRule struct {
7626	_ struct{} `type:"structure"`
7627
7628	// Matches attributes derived from the request.
7629	Attributes map[string]*string `type:"map"`
7630
7631	// The percentage of matching requests to instrument, after the reservoir is
7632	// exhausted.
7633	//
7634	// FixedRate is a required field
7635	FixedRate *float64 `type:"double" required:"true"`
7636
7637	// Matches the HTTP method of a request.
7638	//
7639	// HTTPMethod is a required field
7640	HTTPMethod *string `type:"string" required:"true"`
7641
7642	// Matches the hostname from a request URL.
7643	//
7644	// Host is a required field
7645	Host *string `type:"string" required:"true"`
7646
7647	// The priority of the sampling rule.
7648	//
7649	// Priority is a required field
7650	Priority *int64 `min:"1" type:"integer" required:"true"`
7651
7652	// A fixed number of matching requests to instrument per second, prior to applying
7653	// the fixed rate. The reservoir is not used directly by services, but applies
7654	// to all services using the rule collectively.
7655	//
7656	// ReservoirSize is a required field
7657	ReservoirSize *int64 `type:"integer" required:"true"`
7658
7659	// Matches the ARN of the Amazon Web Services resource on which the service
7660	// runs.
7661	//
7662	// ResourceARN is a required field
7663	ResourceARN *string `type:"string" required:"true"`
7664
7665	// The ARN of the sampling rule. Specify a rule by either name or ARN, but not
7666	// both.
7667	RuleARN *string `type:"string"`
7668
7669	// The name of the sampling rule. Specify a rule by either name or ARN, but
7670	// not both.
7671	RuleName *string `min:"1" type:"string"`
7672
7673	// Matches the name that the service uses to identify itself in segments.
7674	//
7675	// ServiceName is a required field
7676	ServiceName *string `type:"string" required:"true"`
7677
7678	// Matches the origin that the service uses to identify its type in segments.
7679	//
7680	// ServiceType is a required field
7681	ServiceType *string `type:"string" required:"true"`
7682
7683	// Matches the path from a request URL.
7684	//
7685	// URLPath is a required field
7686	URLPath *string `type:"string" required:"true"`
7687
7688	// The version of the sampling rule format (1).
7689	//
7690	// Version is a required field
7691	Version *int64 `min:"1" type:"integer" required:"true"`
7692}
7693
7694// String returns the string representation.
7695//
7696// API parameter values that are decorated as "sensitive" in the API will not
7697// be included in the string output. The member name will be present, but the
7698// value will be replaced with "sensitive".
7699func (s SamplingRule) String() string {
7700	return awsutil.Prettify(s)
7701}
7702
7703// GoString returns the string representation.
7704//
7705// API parameter values that are decorated as "sensitive" in the API will not
7706// be included in the string output. The member name will be present, but the
7707// value will be replaced with "sensitive".
7708func (s SamplingRule) GoString() string {
7709	return s.String()
7710}
7711
7712// Validate inspects the fields of the type to determine if they are valid.
7713func (s *SamplingRule) Validate() error {
7714	invalidParams := request.ErrInvalidParams{Context: "SamplingRule"}
7715	if s.FixedRate == nil {
7716		invalidParams.Add(request.NewErrParamRequired("FixedRate"))
7717	}
7718	if s.HTTPMethod == nil {
7719		invalidParams.Add(request.NewErrParamRequired("HTTPMethod"))
7720	}
7721	if s.Host == nil {
7722		invalidParams.Add(request.NewErrParamRequired("Host"))
7723	}
7724	if s.Priority == nil {
7725		invalidParams.Add(request.NewErrParamRequired("Priority"))
7726	}
7727	if s.Priority != nil && *s.Priority < 1 {
7728		invalidParams.Add(request.NewErrParamMinValue("Priority", 1))
7729	}
7730	if s.ReservoirSize == nil {
7731		invalidParams.Add(request.NewErrParamRequired("ReservoirSize"))
7732	}
7733	if s.ResourceARN == nil {
7734		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
7735	}
7736	if s.RuleName != nil && len(*s.RuleName) < 1 {
7737		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
7738	}
7739	if s.ServiceName == nil {
7740		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
7741	}
7742	if s.ServiceType == nil {
7743		invalidParams.Add(request.NewErrParamRequired("ServiceType"))
7744	}
7745	if s.URLPath == nil {
7746		invalidParams.Add(request.NewErrParamRequired("URLPath"))
7747	}
7748	if s.Version == nil {
7749		invalidParams.Add(request.NewErrParamRequired("Version"))
7750	}
7751	if s.Version != nil && *s.Version < 1 {
7752		invalidParams.Add(request.NewErrParamMinValue("Version", 1))
7753	}
7754
7755	if invalidParams.Len() > 0 {
7756		return invalidParams
7757	}
7758	return nil
7759}
7760
7761// SetAttributes sets the Attributes field's value.
7762func (s *SamplingRule) SetAttributes(v map[string]*string) *SamplingRule {
7763	s.Attributes = v
7764	return s
7765}
7766
7767// SetFixedRate sets the FixedRate field's value.
7768func (s *SamplingRule) SetFixedRate(v float64) *SamplingRule {
7769	s.FixedRate = &v
7770	return s
7771}
7772
7773// SetHTTPMethod sets the HTTPMethod field's value.
7774func (s *SamplingRule) SetHTTPMethod(v string) *SamplingRule {
7775	s.HTTPMethod = &v
7776	return s
7777}
7778
7779// SetHost sets the Host field's value.
7780func (s *SamplingRule) SetHost(v string) *SamplingRule {
7781	s.Host = &v
7782	return s
7783}
7784
7785// SetPriority sets the Priority field's value.
7786func (s *SamplingRule) SetPriority(v int64) *SamplingRule {
7787	s.Priority = &v
7788	return s
7789}
7790
7791// SetReservoirSize sets the ReservoirSize field's value.
7792func (s *SamplingRule) SetReservoirSize(v int64) *SamplingRule {
7793	s.ReservoirSize = &v
7794	return s
7795}
7796
7797// SetResourceARN sets the ResourceARN field's value.
7798func (s *SamplingRule) SetResourceARN(v string) *SamplingRule {
7799	s.ResourceARN = &v
7800	return s
7801}
7802
7803// SetRuleARN sets the RuleARN field's value.
7804func (s *SamplingRule) SetRuleARN(v string) *SamplingRule {
7805	s.RuleARN = &v
7806	return s
7807}
7808
7809// SetRuleName sets the RuleName field's value.
7810func (s *SamplingRule) SetRuleName(v string) *SamplingRule {
7811	s.RuleName = &v
7812	return s
7813}
7814
7815// SetServiceName sets the ServiceName field's value.
7816func (s *SamplingRule) SetServiceName(v string) *SamplingRule {
7817	s.ServiceName = &v
7818	return s
7819}
7820
7821// SetServiceType sets the ServiceType field's value.
7822func (s *SamplingRule) SetServiceType(v string) *SamplingRule {
7823	s.ServiceType = &v
7824	return s
7825}
7826
7827// SetURLPath sets the URLPath field's value.
7828func (s *SamplingRule) SetURLPath(v string) *SamplingRule {
7829	s.URLPath = &v
7830	return s
7831}
7832
7833// SetVersion sets the Version field's value.
7834func (s *SamplingRule) SetVersion(v int64) *SamplingRule {
7835	s.Version = &v
7836	return s
7837}
7838
7839// A SamplingRule (https://docs.aws.amazon.com/xray/latest/api/API_SamplingRule.html)
7840// and its metadata.
7841type SamplingRuleRecord struct {
7842	_ struct{} `type:"structure"`
7843
7844	// When the rule was created.
7845	CreatedAt *time.Time `type:"timestamp"`
7846
7847	// When the rule was last modified.
7848	ModifiedAt *time.Time `type:"timestamp"`
7849
7850	// The sampling rule.
7851	SamplingRule *SamplingRule `type:"structure"`
7852}
7853
7854// String returns the string representation.
7855//
7856// API parameter values that are decorated as "sensitive" in the API will not
7857// be included in the string output. The member name will be present, but the
7858// value will be replaced with "sensitive".
7859func (s SamplingRuleRecord) String() string {
7860	return awsutil.Prettify(s)
7861}
7862
7863// GoString returns the string representation.
7864//
7865// API parameter values that are decorated as "sensitive" in the API will not
7866// be included in the string output. The member name will be present, but the
7867// value will be replaced with "sensitive".
7868func (s SamplingRuleRecord) GoString() string {
7869	return s.String()
7870}
7871
7872// SetCreatedAt sets the CreatedAt field's value.
7873func (s *SamplingRuleRecord) SetCreatedAt(v time.Time) *SamplingRuleRecord {
7874	s.CreatedAt = &v
7875	return s
7876}
7877
7878// SetModifiedAt sets the ModifiedAt field's value.
7879func (s *SamplingRuleRecord) SetModifiedAt(v time.Time) *SamplingRuleRecord {
7880	s.ModifiedAt = &v
7881	return s
7882}
7883
7884// SetSamplingRule sets the SamplingRule field's value.
7885func (s *SamplingRuleRecord) SetSamplingRule(v *SamplingRule) *SamplingRuleRecord {
7886	s.SamplingRule = v
7887	return s
7888}
7889
7890// A document specifying changes to a sampling rule's configuration.
7891type SamplingRuleUpdate struct {
7892	_ struct{} `type:"structure"`
7893
7894	// Matches attributes derived from the request.
7895	Attributes map[string]*string `type:"map"`
7896
7897	// The percentage of matching requests to instrument, after the reservoir is
7898	// exhausted.
7899	FixedRate *float64 `type:"double"`
7900
7901	// Matches the HTTP method of a request.
7902	HTTPMethod *string `type:"string"`
7903
7904	// Matches the hostname from a request URL.
7905	Host *string `type:"string"`
7906
7907	// The priority of the sampling rule.
7908	Priority *int64 `type:"integer"`
7909
7910	// A fixed number of matching requests to instrument per second, prior to applying
7911	// the fixed rate. The reservoir is not used directly by services, but applies
7912	// to all services using the rule collectively.
7913	ReservoirSize *int64 `type:"integer"`
7914
7915	// Matches the ARN of the Amazon Web Services resource on which the service
7916	// runs.
7917	ResourceARN *string `type:"string"`
7918
7919	// The ARN of the sampling rule. Specify a rule by either name or ARN, but not
7920	// both.
7921	RuleARN *string `type:"string"`
7922
7923	// The name of the sampling rule. Specify a rule by either name or ARN, but
7924	// not both.
7925	RuleName *string `min:"1" type:"string"`
7926
7927	// Matches the name that the service uses to identify itself in segments.
7928	ServiceName *string `type:"string"`
7929
7930	// Matches the origin that the service uses to identify its type in segments.
7931	ServiceType *string `type:"string"`
7932
7933	// Matches the path from a request URL.
7934	URLPath *string `type:"string"`
7935}
7936
7937// String returns the string representation.
7938//
7939// API parameter values that are decorated as "sensitive" in the API will not
7940// be included in the string output. The member name will be present, but the
7941// value will be replaced with "sensitive".
7942func (s SamplingRuleUpdate) String() string {
7943	return awsutil.Prettify(s)
7944}
7945
7946// GoString returns the string representation.
7947//
7948// API parameter values that are decorated as "sensitive" in the API will not
7949// be included in the string output. The member name will be present, but the
7950// value will be replaced with "sensitive".
7951func (s SamplingRuleUpdate) GoString() string {
7952	return s.String()
7953}
7954
7955// Validate inspects the fields of the type to determine if they are valid.
7956func (s *SamplingRuleUpdate) Validate() error {
7957	invalidParams := request.ErrInvalidParams{Context: "SamplingRuleUpdate"}
7958	if s.RuleName != nil && len(*s.RuleName) < 1 {
7959		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
7960	}
7961
7962	if invalidParams.Len() > 0 {
7963		return invalidParams
7964	}
7965	return nil
7966}
7967
7968// SetAttributes sets the Attributes field's value.
7969func (s *SamplingRuleUpdate) SetAttributes(v map[string]*string) *SamplingRuleUpdate {
7970	s.Attributes = v
7971	return s
7972}
7973
7974// SetFixedRate sets the FixedRate field's value.
7975func (s *SamplingRuleUpdate) SetFixedRate(v float64) *SamplingRuleUpdate {
7976	s.FixedRate = &v
7977	return s
7978}
7979
7980// SetHTTPMethod sets the HTTPMethod field's value.
7981func (s *SamplingRuleUpdate) SetHTTPMethod(v string) *SamplingRuleUpdate {
7982	s.HTTPMethod = &v
7983	return s
7984}
7985
7986// SetHost sets the Host field's value.
7987func (s *SamplingRuleUpdate) SetHost(v string) *SamplingRuleUpdate {
7988	s.Host = &v
7989	return s
7990}
7991
7992// SetPriority sets the Priority field's value.
7993func (s *SamplingRuleUpdate) SetPriority(v int64) *SamplingRuleUpdate {
7994	s.Priority = &v
7995	return s
7996}
7997
7998// SetReservoirSize sets the ReservoirSize field's value.
7999func (s *SamplingRuleUpdate) SetReservoirSize(v int64) *SamplingRuleUpdate {
8000	s.ReservoirSize = &v
8001	return s
8002}
8003
8004// SetResourceARN sets the ResourceARN field's value.
8005func (s *SamplingRuleUpdate) SetResourceARN(v string) *SamplingRuleUpdate {
8006	s.ResourceARN = &v
8007	return s
8008}
8009
8010// SetRuleARN sets the RuleARN field's value.
8011func (s *SamplingRuleUpdate) SetRuleARN(v string) *SamplingRuleUpdate {
8012	s.RuleARN = &v
8013	return s
8014}
8015
8016// SetRuleName sets the RuleName field's value.
8017func (s *SamplingRuleUpdate) SetRuleName(v string) *SamplingRuleUpdate {
8018	s.RuleName = &v
8019	return s
8020}
8021
8022// SetServiceName sets the ServiceName field's value.
8023func (s *SamplingRuleUpdate) SetServiceName(v string) *SamplingRuleUpdate {
8024	s.ServiceName = &v
8025	return s
8026}
8027
8028// SetServiceType sets the ServiceType field's value.
8029func (s *SamplingRuleUpdate) SetServiceType(v string) *SamplingRuleUpdate {
8030	s.ServiceType = &v
8031	return s
8032}
8033
8034// SetURLPath sets the URLPath field's value.
8035func (s *SamplingRuleUpdate) SetURLPath(v string) *SamplingRuleUpdate {
8036	s.URLPath = &v
8037	return s
8038}
8039
8040// Aggregated request sampling data for a sampling rule across all services
8041// for a 10-second window.
8042type SamplingStatisticSummary struct {
8043	_ struct{} `type:"structure"`
8044
8045	// The number of requests recorded with borrowed reservoir quota.
8046	BorrowCount *int64 `type:"integer"`
8047
8048	// The number of requests that matched the rule.
8049	RequestCount *int64 `type:"integer"`
8050
8051	// The name of the sampling rule.
8052	RuleName *string `type:"string"`
8053
8054	// The number of requests recorded.
8055	SampledCount *int64 `type:"integer"`
8056
8057	// The start time of the reporting window.
8058	Timestamp *time.Time `type:"timestamp"`
8059}
8060
8061// String returns the string representation.
8062//
8063// API parameter values that are decorated as "sensitive" in the API will not
8064// be included in the string output. The member name will be present, but the
8065// value will be replaced with "sensitive".
8066func (s SamplingStatisticSummary) String() string {
8067	return awsutil.Prettify(s)
8068}
8069
8070// GoString returns the string representation.
8071//
8072// API parameter values that are decorated as "sensitive" in the API will not
8073// be included in the string output. The member name will be present, but the
8074// value will be replaced with "sensitive".
8075func (s SamplingStatisticSummary) GoString() string {
8076	return s.String()
8077}
8078
8079// SetBorrowCount sets the BorrowCount field's value.
8080func (s *SamplingStatisticSummary) SetBorrowCount(v int64) *SamplingStatisticSummary {
8081	s.BorrowCount = &v
8082	return s
8083}
8084
8085// SetRequestCount sets the RequestCount field's value.
8086func (s *SamplingStatisticSummary) SetRequestCount(v int64) *SamplingStatisticSummary {
8087	s.RequestCount = &v
8088	return s
8089}
8090
8091// SetRuleName sets the RuleName field's value.
8092func (s *SamplingStatisticSummary) SetRuleName(v string) *SamplingStatisticSummary {
8093	s.RuleName = &v
8094	return s
8095}
8096
8097// SetSampledCount sets the SampledCount field's value.
8098func (s *SamplingStatisticSummary) SetSampledCount(v int64) *SamplingStatisticSummary {
8099	s.SampledCount = &v
8100	return s
8101}
8102
8103// SetTimestamp sets the Timestamp field's value.
8104func (s *SamplingStatisticSummary) SetTimestamp(v time.Time) *SamplingStatisticSummary {
8105	s.Timestamp = &v
8106	return s
8107}
8108
8109// Request sampling results for a single rule from a service. Results are for
8110// the last 10 seconds unless the service has been assigned a longer reporting
8111// interval after a previous call to GetSamplingTargets (https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html).
8112type SamplingStatisticsDocument struct {
8113	_ struct{} `type:"structure"`
8114
8115	// The number of requests recorded with borrowed reservoir quota.
8116	BorrowCount *int64 `type:"integer"`
8117
8118	// A unique identifier for the service in hexadecimal.
8119	//
8120	// ClientID is a required field
8121	ClientID *string `min:"24" type:"string" required:"true"`
8122
8123	// The number of requests that matched the rule.
8124	//
8125	// RequestCount is a required field
8126	RequestCount *int64 `type:"integer" required:"true"`
8127
8128	// The name of the sampling rule.
8129	//
8130	// RuleName is a required field
8131	RuleName *string `min:"1" type:"string" required:"true"`
8132
8133	// The number of requests recorded.
8134	//
8135	// SampledCount is a required field
8136	SampledCount *int64 `type:"integer" required:"true"`
8137
8138	// The current time.
8139	//
8140	// Timestamp is a required field
8141	Timestamp *time.Time `type:"timestamp" required:"true"`
8142}
8143
8144// String returns the string representation.
8145//
8146// API parameter values that are decorated as "sensitive" in the API will not
8147// be included in the string output. The member name will be present, but the
8148// value will be replaced with "sensitive".
8149func (s SamplingStatisticsDocument) String() string {
8150	return awsutil.Prettify(s)
8151}
8152
8153// GoString returns the string representation.
8154//
8155// API parameter values that are decorated as "sensitive" in the API will not
8156// be included in the string output. The member name will be present, but the
8157// value will be replaced with "sensitive".
8158func (s SamplingStatisticsDocument) GoString() string {
8159	return s.String()
8160}
8161
8162// Validate inspects the fields of the type to determine if they are valid.
8163func (s *SamplingStatisticsDocument) Validate() error {
8164	invalidParams := request.ErrInvalidParams{Context: "SamplingStatisticsDocument"}
8165	if s.ClientID == nil {
8166		invalidParams.Add(request.NewErrParamRequired("ClientID"))
8167	}
8168	if s.ClientID != nil && len(*s.ClientID) < 24 {
8169		invalidParams.Add(request.NewErrParamMinLen("ClientID", 24))
8170	}
8171	if s.RequestCount == nil {
8172		invalidParams.Add(request.NewErrParamRequired("RequestCount"))
8173	}
8174	if s.RuleName == nil {
8175		invalidParams.Add(request.NewErrParamRequired("RuleName"))
8176	}
8177	if s.RuleName != nil && len(*s.RuleName) < 1 {
8178		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
8179	}
8180	if s.SampledCount == nil {
8181		invalidParams.Add(request.NewErrParamRequired("SampledCount"))
8182	}
8183	if s.Timestamp == nil {
8184		invalidParams.Add(request.NewErrParamRequired("Timestamp"))
8185	}
8186
8187	if invalidParams.Len() > 0 {
8188		return invalidParams
8189	}
8190	return nil
8191}
8192
8193// SetBorrowCount sets the BorrowCount field's value.
8194func (s *SamplingStatisticsDocument) SetBorrowCount(v int64) *SamplingStatisticsDocument {
8195	s.BorrowCount = &v
8196	return s
8197}
8198
8199// SetClientID sets the ClientID field's value.
8200func (s *SamplingStatisticsDocument) SetClientID(v string) *SamplingStatisticsDocument {
8201	s.ClientID = &v
8202	return s
8203}
8204
8205// SetRequestCount sets the RequestCount field's value.
8206func (s *SamplingStatisticsDocument) SetRequestCount(v int64) *SamplingStatisticsDocument {
8207	s.RequestCount = &v
8208	return s
8209}
8210
8211// SetRuleName sets the RuleName field's value.
8212func (s *SamplingStatisticsDocument) SetRuleName(v string) *SamplingStatisticsDocument {
8213	s.RuleName = &v
8214	return s
8215}
8216
8217// SetSampledCount sets the SampledCount field's value.
8218func (s *SamplingStatisticsDocument) SetSampledCount(v int64) *SamplingStatisticsDocument {
8219	s.SampledCount = &v
8220	return s
8221}
8222
8223// SetTimestamp sets the Timestamp field's value.
8224func (s *SamplingStatisticsDocument) SetTimestamp(v time.Time) *SamplingStatisticsDocument {
8225	s.Timestamp = &v
8226	return s
8227}
8228
8229// The name and value of a sampling rule to apply to a trace summary.
8230type SamplingStrategy struct {
8231	_ struct{} `type:"structure"`
8232
8233	// The name of a sampling rule.
8234	Name *string `type:"string" enum:"SamplingStrategyName"`
8235
8236	// The value of a sampling rule.
8237	Value *float64 `type:"double"`
8238}
8239
8240// String returns the string representation.
8241//
8242// API parameter values that are decorated as "sensitive" in the API will not
8243// be included in the string output. The member name will be present, but the
8244// value will be replaced with "sensitive".
8245func (s SamplingStrategy) String() string {
8246	return awsutil.Prettify(s)
8247}
8248
8249// GoString returns the string representation.
8250//
8251// API parameter values that are decorated as "sensitive" in the API will not
8252// be included in the string output. The member name will be present, but the
8253// value will be replaced with "sensitive".
8254func (s SamplingStrategy) GoString() string {
8255	return s.String()
8256}
8257
8258// SetName sets the Name field's value.
8259func (s *SamplingStrategy) SetName(v string) *SamplingStrategy {
8260	s.Name = &v
8261	return s
8262}
8263
8264// SetValue sets the Value field's value.
8265func (s *SamplingStrategy) SetValue(v float64) *SamplingStrategy {
8266	s.Value = &v
8267	return s
8268}
8269
8270// Temporary changes to a sampling rule configuration. To meet the global sampling
8271// target for a rule, X-Ray calculates a new reservoir for each service based
8272// on the recent sampling results of all services that called GetSamplingTargets
8273// (https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html).
8274type SamplingTargetDocument struct {
8275	_ struct{} `type:"structure"`
8276
8277	// The percentage of matching requests to instrument, after the reservoir is
8278	// exhausted.
8279	FixedRate *float64 `type:"double"`
8280
8281	// The number of seconds for the service to wait before getting sampling targets
8282	// again.
8283	Interval *int64 `type:"integer"`
8284
8285	// The number of requests per second that X-Ray allocated for this service.
8286	ReservoirQuota *int64 `type:"integer"`
8287
8288	// When the reservoir quota expires.
8289	ReservoirQuotaTTL *time.Time `type:"timestamp"`
8290
8291	// The name of the sampling rule.
8292	RuleName *string `type:"string"`
8293}
8294
8295// String returns the string representation.
8296//
8297// API parameter values that are decorated as "sensitive" in the API will not
8298// be included in the string output. The member name will be present, but the
8299// value will be replaced with "sensitive".
8300func (s SamplingTargetDocument) String() string {
8301	return awsutil.Prettify(s)
8302}
8303
8304// GoString returns the string representation.
8305//
8306// API parameter values that are decorated as "sensitive" in the API will not
8307// be included in the string output. The member name will be present, but the
8308// value will be replaced with "sensitive".
8309func (s SamplingTargetDocument) GoString() string {
8310	return s.String()
8311}
8312
8313// SetFixedRate sets the FixedRate field's value.
8314func (s *SamplingTargetDocument) SetFixedRate(v float64) *SamplingTargetDocument {
8315	s.FixedRate = &v
8316	return s
8317}
8318
8319// SetInterval sets the Interval field's value.
8320func (s *SamplingTargetDocument) SetInterval(v int64) *SamplingTargetDocument {
8321	s.Interval = &v
8322	return s
8323}
8324
8325// SetReservoirQuota sets the ReservoirQuota field's value.
8326func (s *SamplingTargetDocument) SetReservoirQuota(v int64) *SamplingTargetDocument {
8327	s.ReservoirQuota = &v
8328	return s
8329}
8330
8331// SetReservoirQuotaTTL sets the ReservoirQuotaTTL field's value.
8332func (s *SamplingTargetDocument) SetReservoirQuotaTTL(v time.Time) *SamplingTargetDocument {
8333	s.ReservoirQuotaTTL = &v
8334	return s
8335}
8336
8337// SetRuleName sets the RuleName field's value.
8338func (s *SamplingTargetDocument) SetRuleName(v string) *SamplingTargetDocument {
8339	s.RuleName = &v
8340	return s
8341}
8342
8343// A segment from a trace that has been ingested by the X-Ray service. The segment
8344// can be compiled from documents uploaded with PutTraceSegments (https://docs.aws.amazon.com/xray/latest/api/API_PutTraceSegments.html),
8345// or an inferred segment for a downstream service, generated from a subsegment
8346// sent by the service that called it.
8347//
8348// For the full segment document schema, see Amazon Web Services X-Ray Segment
8349// Documents (https://docs.aws.amazon.com/xray/latest/devguide/xray-api-segmentdocuments.html)
8350// in the Amazon Web Services X-Ray Developer Guide.
8351type Segment struct {
8352	_ struct{} `type:"structure"`
8353
8354	// The segment document.
8355	Document *string `min:"1" type:"string"`
8356
8357	// The segment's ID.
8358	Id *string `type:"string"`
8359}
8360
8361// String returns the string representation.
8362//
8363// API parameter values that are decorated as "sensitive" in the API will not
8364// be included in the string output. The member name will be present, but the
8365// value will be replaced with "sensitive".
8366func (s Segment) String() string {
8367	return awsutil.Prettify(s)
8368}
8369
8370// GoString returns the string representation.
8371//
8372// API parameter values that are decorated as "sensitive" in the API will not
8373// be included in the string output. The member name will be present, but the
8374// value will be replaced with "sensitive".
8375func (s Segment) GoString() string {
8376	return s.String()
8377}
8378
8379// SetDocument sets the Document field's value.
8380func (s *Segment) SetDocument(v string) *Segment {
8381	s.Document = &v
8382	return s
8383}
8384
8385// SetId sets the Id field's value.
8386func (s *Segment) SetId(v string) *Segment {
8387	s.Id = &v
8388	return s
8389}
8390
8391// Information about an application that processed requests, users that made
8392// requests, or downstream services, resources, and applications that an application
8393// used.
8394type Service struct {
8395	_ struct{} `type:"structure"`
8396
8397	// Identifier of the Amazon Web Services account in which the service runs.
8398	AccountId *string `type:"string"`
8399
8400	// A histogram that maps the spread of service durations.
8401	DurationHistogram []*HistogramEntry `type:"list"`
8402
8403	// Connections to downstream services.
8404	Edges []*Edge `type:"list"`
8405
8406	// The end time of the last segment that the service generated.
8407	EndTime *time.Time `type:"timestamp"`
8408
8409	// The canonical name of the service.
8410	Name *string `type:"string"`
8411
8412	// A list of names for the service, including the canonical name.
8413	Names []*string `type:"list"`
8414
8415	// Identifier for the service. Unique within the service map.
8416	ReferenceId *int64 `type:"integer"`
8417
8418	// A histogram that maps the spread of service response times.
8419	ResponseTimeHistogram []*HistogramEntry `type:"list"`
8420
8421	// Indicates that the service was the first service to process a request.
8422	Root *bool `type:"boolean"`
8423
8424	// The start time of the first segment that the service generated.
8425	StartTime *time.Time `type:"timestamp"`
8426
8427	// The service's state.
8428	State *string `type:"string"`
8429
8430	// Aggregated statistics for the service.
8431	SummaryStatistics *ServiceStatistics `type:"structure"`
8432
8433	// The type of service.
8434	//
8435	//    * Amazon Web Services Resource - The type of an Amazon Web Services resource.
8436	//    For example, AWS::EC2::Instance for an application running on Amazon EC2
8437	//    or AWS::DynamoDB::Table for an Amazon DynamoDB table that the application
8438	//    used.
8439	//
8440	//    * Amazon Web Services Service - The type of an Amazon Web Services service.
8441	//    For example, AWS::DynamoDB for downstream calls to Amazon DynamoDB that
8442	//    didn't target a specific table.
8443	//
8444	//    * client - Represents the clients that sent requests to a root service.
8445	//
8446	//    * remote - A downstream service of indeterminate type.
8447	Type *string `type:"string"`
8448}
8449
8450// String returns the string representation.
8451//
8452// API parameter values that are decorated as "sensitive" in the API will not
8453// be included in the string output. The member name will be present, but the
8454// value will be replaced with "sensitive".
8455func (s Service) String() string {
8456	return awsutil.Prettify(s)
8457}
8458
8459// GoString returns the string representation.
8460//
8461// API parameter values that are decorated as "sensitive" in the API will not
8462// be included in the string output. The member name will be present, but the
8463// value will be replaced with "sensitive".
8464func (s Service) GoString() string {
8465	return s.String()
8466}
8467
8468// SetAccountId sets the AccountId field's value.
8469func (s *Service) SetAccountId(v string) *Service {
8470	s.AccountId = &v
8471	return s
8472}
8473
8474// SetDurationHistogram sets the DurationHistogram field's value.
8475func (s *Service) SetDurationHistogram(v []*HistogramEntry) *Service {
8476	s.DurationHistogram = v
8477	return s
8478}
8479
8480// SetEdges sets the Edges field's value.
8481func (s *Service) SetEdges(v []*Edge) *Service {
8482	s.Edges = v
8483	return s
8484}
8485
8486// SetEndTime sets the EndTime field's value.
8487func (s *Service) SetEndTime(v time.Time) *Service {
8488	s.EndTime = &v
8489	return s
8490}
8491
8492// SetName sets the Name field's value.
8493func (s *Service) SetName(v string) *Service {
8494	s.Name = &v
8495	return s
8496}
8497
8498// SetNames sets the Names field's value.
8499func (s *Service) SetNames(v []*string) *Service {
8500	s.Names = v
8501	return s
8502}
8503
8504// SetReferenceId sets the ReferenceId field's value.
8505func (s *Service) SetReferenceId(v int64) *Service {
8506	s.ReferenceId = &v
8507	return s
8508}
8509
8510// SetResponseTimeHistogram sets the ResponseTimeHistogram field's value.
8511func (s *Service) SetResponseTimeHistogram(v []*HistogramEntry) *Service {
8512	s.ResponseTimeHistogram = v
8513	return s
8514}
8515
8516// SetRoot sets the Root field's value.
8517func (s *Service) SetRoot(v bool) *Service {
8518	s.Root = &v
8519	return s
8520}
8521
8522// SetStartTime sets the StartTime field's value.
8523func (s *Service) SetStartTime(v time.Time) *Service {
8524	s.StartTime = &v
8525	return s
8526}
8527
8528// SetState sets the State field's value.
8529func (s *Service) SetState(v string) *Service {
8530	s.State = &v
8531	return s
8532}
8533
8534// SetSummaryStatistics sets the SummaryStatistics field's value.
8535func (s *Service) SetSummaryStatistics(v *ServiceStatistics) *Service {
8536	s.SummaryStatistics = v
8537	return s
8538}
8539
8540// SetType sets the Type field's value.
8541func (s *Service) SetType(v string) *Service {
8542	s.Type = &v
8543	return s
8544}
8545
8546type ServiceId struct {
8547	_ struct{} `type:"structure"`
8548
8549	AccountId *string `type:"string"`
8550
8551	Name *string `type:"string"`
8552
8553	Names []*string `type:"list"`
8554
8555	Type *string `type:"string"`
8556}
8557
8558// String returns the string representation.
8559//
8560// API parameter values that are decorated as "sensitive" in the API will not
8561// be included in the string output. The member name will be present, but the
8562// value will be replaced with "sensitive".
8563func (s ServiceId) String() string {
8564	return awsutil.Prettify(s)
8565}
8566
8567// GoString returns the string representation.
8568//
8569// API parameter values that are decorated as "sensitive" in the API will not
8570// be included in the string output. The member name will be present, but the
8571// value will be replaced with "sensitive".
8572func (s ServiceId) GoString() string {
8573	return s.String()
8574}
8575
8576// SetAccountId sets the AccountId field's value.
8577func (s *ServiceId) SetAccountId(v string) *ServiceId {
8578	s.AccountId = &v
8579	return s
8580}
8581
8582// SetName sets the Name field's value.
8583func (s *ServiceId) SetName(v string) *ServiceId {
8584	s.Name = &v
8585	return s
8586}
8587
8588// SetNames sets the Names field's value.
8589func (s *ServiceId) SetNames(v []*string) *ServiceId {
8590	s.Names = v
8591	return s
8592}
8593
8594// SetType sets the Type field's value.
8595func (s *ServiceId) SetType(v string) *ServiceId {
8596	s.Type = &v
8597	return s
8598}
8599
8600// Response statistics for a service.
8601type ServiceStatistics struct {
8602	_ struct{} `type:"structure"`
8603
8604	// Information about requests that failed with a 4xx Client Error status code.
8605	ErrorStatistics *ErrorStatistics `type:"structure"`
8606
8607	// Information about requests that failed with a 5xx Server Error status code.
8608	FaultStatistics *FaultStatistics `type:"structure"`
8609
8610	// The number of requests that completed with a 2xx Success status code.
8611	OkCount *int64 `type:"long"`
8612
8613	// The total number of completed requests.
8614	TotalCount *int64 `type:"long"`
8615
8616	// The aggregate response time of completed requests.
8617	TotalResponseTime *float64 `type:"double"`
8618}
8619
8620// String returns the string representation.
8621//
8622// API parameter values that are decorated as "sensitive" in the API will not
8623// be included in the string output. The member name will be present, but the
8624// value will be replaced with "sensitive".
8625func (s ServiceStatistics) String() string {
8626	return awsutil.Prettify(s)
8627}
8628
8629// GoString returns the string representation.
8630//
8631// API parameter values that are decorated as "sensitive" in the API will not
8632// be included in the string output. The member name will be present, but the
8633// value will be replaced with "sensitive".
8634func (s ServiceStatistics) GoString() string {
8635	return s.String()
8636}
8637
8638// SetErrorStatistics sets the ErrorStatistics field's value.
8639func (s *ServiceStatistics) SetErrorStatistics(v *ErrorStatistics) *ServiceStatistics {
8640	s.ErrorStatistics = v
8641	return s
8642}
8643
8644// SetFaultStatistics sets the FaultStatistics field's value.
8645func (s *ServiceStatistics) SetFaultStatistics(v *FaultStatistics) *ServiceStatistics {
8646	s.FaultStatistics = v
8647	return s
8648}
8649
8650// SetOkCount sets the OkCount field's value.
8651func (s *ServiceStatistics) SetOkCount(v int64) *ServiceStatistics {
8652	s.OkCount = &v
8653	return s
8654}
8655
8656// SetTotalCount sets the TotalCount field's value.
8657func (s *ServiceStatistics) SetTotalCount(v int64) *ServiceStatistics {
8658	s.TotalCount = &v
8659	return s
8660}
8661
8662// SetTotalResponseTime sets the TotalResponseTime field's value.
8663func (s *ServiceStatistics) SetTotalResponseTime(v float64) *ServiceStatistics {
8664	s.TotalResponseTime = &v
8665	return s
8666}
8667
8668// A map that contains tag keys and tag values to attach to an Amazon Web Services
8669// X-Ray group or sampling rule. For more information about ways to use tags,
8670// see Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
8671// in the Amazon Web Services General Reference.
8672//
8673// The following restrictions apply to tags:
8674//
8675//    * Maximum number of user-applied tags per resource: 50
8676//
8677//    * Tag keys and values are case sensitive.
8678//
8679//    * Don't use aws: as a prefix for keys; it's reserved for Amazon Web Services
8680//    use. You cannot edit or delete system tags.
8681type Tag struct {
8682	_ struct{} `type:"structure"`
8683
8684	// A tag key, such as Stage or Name. A tag key cannot be empty. The key can
8685	// be a maximum of 128 characters, and can contain only Unicode letters, numbers,
8686	// or separators, or the following special characters: + - = . _ : /
8687	//
8688	// Key is a required field
8689	Key *string `min:"1" type:"string" required:"true"`
8690
8691	// An optional tag value, such as Production or test-only. The value can be
8692	// a maximum of 255 characters, and contain only Unicode letters, numbers, or
8693	// separators, or the following special characters: + - = . _ : /
8694	//
8695	// Value is a required field
8696	Value *string `type:"string" required:"true"`
8697}
8698
8699// String returns the string representation.
8700//
8701// API parameter values that are decorated as "sensitive" in the API will not
8702// be included in the string output. The member name will be present, but the
8703// value will be replaced with "sensitive".
8704func (s Tag) String() string {
8705	return awsutil.Prettify(s)
8706}
8707
8708// GoString returns the string representation.
8709//
8710// API parameter values that are decorated as "sensitive" in the API will not
8711// be included in the string output. The member name will be present, but the
8712// value will be replaced with "sensitive".
8713func (s Tag) GoString() string {
8714	return s.String()
8715}
8716
8717// Validate inspects the fields of the type to determine if they are valid.
8718func (s *Tag) Validate() error {
8719	invalidParams := request.ErrInvalidParams{Context: "Tag"}
8720	if s.Key == nil {
8721		invalidParams.Add(request.NewErrParamRequired("Key"))
8722	}
8723	if s.Key != nil && len(*s.Key) < 1 {
8724		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
8725	}
8726	if s.Value == nil {
8727		invalidParams.Add(request.NewErrParamRequired("Value"))
8728	}
8729
8730	if invalidParams.Len() > 0 {
8731		return invalidParams
8732	}
8733	return nil
8734}
8735
8736// SetKey sets the Key field's value.
8737func (s *Tag) SetKey(v string) *Tag {
8738	s.Key = &v
8739	return s
8740}
8741
8742// SetValue sets the Value field's value.
8743func (s *Tag) SetValue(v string) *Tag {
8744	s.Value = &v
8745	return s
8746}
8747
8748type TagResourceInput struct {
8749	_ struct{} `type:"structure"`
8750
8751	// The Amazon Resource Number (ARN) of an X-Ray group or sampling rule.
8752	//
8753	// ResourceARN is a required field
8754	ResourceARN *string `min:"1" type:"string" required:"true"`
8755
8756	// A map that contains one or more tag keys and tag values to attach to an X-Ray
8757	// group or sampling rule. For more information about ways to use tags, see
8758	// Tagging Amazon Web Services resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
8759	// in the Amazon Web Services General Reference.
8760	//
8761	// The following restrictions apply to tags:
8762	//
8763	//    * Maximum number of user-applied tags per resource: 50
8764	//
8765	//    * Maximum tag key length: 128 Unicode characters
8766	//
8767	//    * Maximum tag value length: 256 Unicode characters
8768	//
8769	//    * Valid values for key and value: a-z, A-Z, 0-9, space, and the following
8770	//    characters: _ . : / = + - and @
8771	//
8772	//    * Tag keys and values are case sensitive.
8773	//
8774	//    * Don't use aws: as a prefix for keys; it's reserved for Amazon Web Services
8775	//    use. You cannot edit or delete system tags.
8776	//
8777	// Tags is a required field
8778	Tags []*Tag `type:"list" required:"true"`
8779}
8780
8781// String returns the string representation.
8782//
8783// API parameter values that are decorated as "sensitive" in the API will not
8784// be included in the string output. The member name will be present, but the
8785// value will be replaced with "sensitive".
8786func (s TagResourceInput) String() string {
8787	return awsutil.Prettify(s)
8788}
8789
8790// GoString returns the string representation.
8791//
8792// API parameter values that are decorated as "sensitive" in the API will not
8793// be included in the string output. The member name will be present, but the
8794// value will be replaced with "sensitive".
8795func (s TagResourceInput) GoString() string {
8796	return s.String()
8797}
8798
8799// Validate inspects the fields of the type to determine if they are valid.
8800func (s *TagResourceInput) Validate() error {
8801	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
8802	if s.ResourceARN == nil {
8803		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
8804	}
8805	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
8806		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
8807	}
8808	if s.Tags == nil {
8809		invalidParams.Add(request.NewErrParamRequired("Tags"))
8810	}
8811	if s.Tags != nil {
8812		for i, v := range s.Tags {
8813			if v == nil {
8814				continue
8815			}
8816			if err := v.Validate(); err != nil {
8817				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8818			}
8819		}
8820	}
8821
8822	if invalidParams.Len() > 0 {
8823		return invalidParams
8824	}
8825	return nil
8826}
8827
8828// SetResourceARN sets the ResourceARN field's value.
8829func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
8830	s.ResourceARN = &v
8831	return s
8832}
8833
8834// SetTags sets the Tags field's value.
8835func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
8836	s.Tags = v
8837	return s
8838}
8839
8840type TagResourceOutput struct {
8841	_ struct{} `type:"structure"`
8842}
8843
8844// String returns the string representation.
8845//
8846// API parameter values that are decorated as "sensitive" in the API will not
8847// be included in the string output. The member name will be present, but the
8848// value will be replaced with "sensitive".
8849func (s TagResourceOutput) String() string {
8850	return awsutil.Prettify(s)
8851}
8852
8853// GoString returns the string representation.
8854//
8855// API parameter values that are decorated as "sensitive" in the API will not
8856// be included in the string output. The member name will be present, but the
8857// value will be replaced with "sensitive".
8858func (s TagResourceOutput) GoString() string {
8859	return s.String()
8860}
8861
8862type TelemetryRecord struct {
8863	_ struct{} `type:"structure"`
8864
8865	BackendConnectionErrors *BackendConnectionErrors `type:"structure"`
8866
8867	SegmentsReceivedCount *int64 `type:"integer"`
8868
8869	SegmentsRejectedCount *int64 `type:"integer"`
8870
8871	SegmentsSentCount *int64 `type:"integer"`
8872
8873	SegmentsSpilloverCount *int64 `type:"integer"`
8874
8875	// Timestamp is a required field
8876	Timestamp *time.Time `type:"timestamp" required:"true"`
8877}
8878
8879// String returns the string representation.
8880//
8881// API parameter values that are decorated as "sensitive" in the API will not
8882// be included in the string output. The member name will be present, but the
8883// value will be replaced with "sensitive".
8884func (s TelemetryRecord) String() string {
8885	return awsutil.Prettify(s)
8886}
8887
8888// GoString returns the string representation.
8889//
8890// API parameter values that are decorated as "sensitive" in the API will not
8891// be included in the string output. The member name will be present, but the
8892// value will be replaced with "sensitive".
8893func (s TelemetryRecord) GoString() string {
8894	return s.String()
8895}
8896
8897// Validate inspects the fields of the type to determine if they are valid.
8898func (s *TelemetryRecord) Validate() error {
8899	invalidParams := request.ErrInvalidParams{Context: "TelemetryRecord"}
8900	if s.Timestamp == nil {
8901		invalidParams.Add(request.NewErrParamRequired("Timestamp"))
8902	}
8903
8904	if invalidParams.Len() > 0 {
8905		return invalidParams
8906	}
8907	return nil
8908}
8909
8910// SetBackendConnectionErrors sets the BackendConnectionErrors field's value.
8911func (s *TelemetryRecord) SetBackendConnectionErrors(v *BackendConnectionErrors) *TelemetryRecord {
8912	s.BackendConnectionErrors = v
8913	return s
8914}
8915
8916// SetSegmentsReceivedCount sets the SegmentsReceivedCount field's value.
8917func (s *TelemetryRecord) SetSegmentsReceivedCount(v int64) *TelemetryRecord {
8918	s.SegmentsReceivedCount = &v
8919	return s
8920}
8921
8922// SetSegmentsRejectedCount sets the SegmentsRejectedCount field's value.
8923func (s *TelemetryRecord) SetSegmentsRejectedCount(v int64) *TelemetryRecord {
8924	s.SegmentsRejectedCount = &v
8925	return s
8926}
8927
8928// SetSegmentsSentCount sets the SegmentsSentCount field's value.
8929func (s *TelemetryRecord) SetSegmentsSentCount(v int64) *TelemetryRecord {
8930	s.SegmentsSentCount = &v
8931	return s
8932}
8933
8934// SetSegmentsSpilloverCount sets the SegmentsSpilloverCount field's value.
8935func (s *TelemetryRecord) SetSegmentsSpilloverCount(v int64) *TelemetryRecord {
8936	s.SegmentsSpilloverCount = &v
8937	return s
8938}
8939
8940// SetTimestamp sets the Timestamp field's value.
8941func (s *TelemetryRecord) SetTimestamp(v time.Time) *TelemetryRecord {
8942	s.Timestamp = &v
8943	return s
8944}
8945
8946// The request exceeds the maximum number of requests per second.
8947type ThrottledException struct {
8948	_            struct{}                  `type:"structure"`
8949	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8950
8951	Message_ *string `locationName:"Message" type:"string"`
8952}
8953
8954// String returns the string representation.
8955//
8956// API parameter values that are decorated as "sensitive" in the API will not
8957// be included in the string output. The member name will be present, but the
8958// value will be replaced with "sensitive".
8959func (s ThrottledException) String() string {
8960	return awsutil.Prettify(s)
8961}
8962
8963// GoString returns the string representation.
8964//
8965// API parameter values that are decorated as "sensitive" in the API will not
8966// be included in the string output. The member name will be present, but the
8967// value will be replaced with "sensitive".
8968func (s ThrottledException) GoString() string {
8969	return s.String()
8970}
8971
8972func newErrorThrottledException(v protocol.ResponseMetadata) error {
8973	return &ThrottledException{
8974		RespMetadata: v,
8975	}
8976}
8977
8978// Code returns the exception type name.
8979func (s *ThrottledException) Code() string {
8980	return "ThrottledException"
8981}
8982
8983// Message returns the exception's message.
8984func (s *ThrottledException) Message() string {
8985	if s.Message_ != nil {
8986		return *s.Message_
8987	}
8988	return ""
8989}
8990
8991// OrigErr always returns nil, satisfies awserr.Error interface.
8992func (s *ThrottledException) OrigErr() error {
8993	return nil
8994}
8995
8996func (s *ThrottledException) Error() string {
8997	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8998}
8999
9000// Status code returns the HTTP status code for the request's response error.
9001func (s *ThrottledException) StatusCode() int {
9002	return s.RespMetadata.StatusCode
9003}
9004
9005// RequestID returns the service's response RequestID for request.
9006func (s *ThrottledException) RequestID() string {
9007	return s.RespMetadata.RequestID
9008}
9009
9010// A list of TimeSeriesStatistic structures.
9011type TimeSeriesServiceStatistics struct {
9012	_ struct{} `type:"structure"`
9013
9014	// Response statistics for an edge.
9015	EdgeSummaryStatistics *EdgeStatistics `type:"structure"`
9016
9017	// The response time histogram for the selected entities.
9018	ResponseTimeHistogram []*HistogramEntry `type:"list"`
9019
9020	// The forecasted high and low fault count values.
9021	ServiceForecastStatistics *ForecastStatistics `type:"structure"`
9022
9023	// Response statistics for a service.
9024	ServiceSummaryStatistics *ServiceStatistics `type:"structure"`
9025
9026	// Timestamp of the window for which statistics are aggregated.
9027	Timestamp *time.Time `type:"timestamp"`
9028}
9029
9030// String returns the string representation.
9031//
9032// API parameter values that are decorated as "sensitive" in the API will not
9033// be included in the string output. The member name will be present, but the
9034// value will be replaced with "sensitive".
9035func (s TimeSeriesServiceStatistics) String() string {
9036	return awsutil.Prettify(s)
9037}
9038
9039// GoString returns the string representation.
9040//
9041// API parameter values that are decorated as "sensitive" in the API will not
9042// be included in the string output. The member name will be present, but the
9043// value will be replaced with "sensitive".
9044func (s TimeSeriesServiceStatistics) GoString() string {
9045	return s.String()
9046}
9047
9048// SetEdgeSummaryStatistics sets the EdgeSummaryStatistics field's value.
9049func (s *TimeSeriesServiceStatistics) SetEdgeSummaryStatistics(v *EdgeStatistics) *TimeSeriesServiceStatistics {
9050	s.EdgeSummaryStatistics = v
9051	return s
9052}
9053
9054// SetResponseTimeHistogram sets the ResponseTimeHistogram field's value.
9055func (s *TimeSeriesServiceStatistics) SetResponseTimeHistogram(v []*HistogramEntry) *TimeSeriesServiceStatistics {
9056	s.ResponseTimeHistogram = v
9057	return s
9058}
9059
9060// SetServiceForecastStatistics sets the ServiceForecastStatistics field's value.
9061func (s *TimeSeriesServiceStatistics) SetServiceForecastStatistics(v *ForecastStatistics) *TimeSeriesServiceStatistics {
9062	s.ServiceForecastStatistics = v
9063	return s
9064}
9065
9066// SetServiceSummaryStatistics sets the ServiceSummaryStatistics field's value.
9067func (s *TimeSeriesServiceStatistics) SetServiceSummaryStatistics(v *ServiceStatistics) *TimeSeriesServiceStatistics {
9068	s.ServiceSummaryStatistics = v
9069	return s
9070}
9071
9072// SetTimestamp sets the Timestamp field's value.
9073func (s *TimeSeriesServiceStatistics) SetTimestamp(v time.Time) *TimeSeriesServiceStatistics {
9074	s.Timestamp = &v
9075	return s
9076}
9077
9078// You have exceeded the maximum number of tags you can apply to this resource.
9079type TooManyTagsException struct {
9080	_            struct{}                  `type:"structure"`
9081	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9082
9083	Message_ *string `locationName:"Message" type:"string"`
9084
9085	ResourceName *string `min:"1" type:"string"`
9086}
9087
9088// String returns the string representation.
9089//
9090// API parameter values that are decorated as "sensitive" in the API will not
9091// be included in the string output. The member name will be present, but the
9092// value will be replaced with "sensitive".
9093func (s TooManyTagsException) String() string {
9094	return awsutil.Prettify(s)
9095}
9096
9097// GoString returns the string representation.
9098//
9099// API parameter values that are decorated as "sensitive" in the API will not
9100// be included in the string output. The member name will be present, but the
9101// value will be replaced with "sensitive".
9102func (s TooManyTagsException) GoString() string {
9103	return s.String()
9104}
9105
9106func newErrorTooManyTagsException(v protocol.ResponseMetadata) error {
9107	return &TooManyTagsException{
9108		RespMetadata: v,
9109	}
9110}
9111
9112// Code returns the exception type name.
9113func (s *TooManyTagsException) Code() string {
9114	return "TooManyTagsException"
9115}
9116
9117// Message returns the exception's message.
9118func (s *TooManyTagsException) Message() string {
9119	if s.Message_ != nil {
9120		return *s.Message_
9121	}
9122	return ""
9123}
9124
9125// OrigErr always returns nil, satisfies awserr.Error interface.
9126func (s *TooManyTagsException) OrigErr() error {
9127	return nil
9128}
9129
9130func (s *TooManyTagsException) Error() string {
9131	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
9132}
9133
9134// Status code returns the HTTP status code for the request's response error.
9135func (s *TooManyTagsException) StatusCode() int {
9136	return s.RespMetadata.StatusCode
9137}
9138
9139// RequestID returns the service's response RequestID for request.
9140func (s *TooManyTagsException) RequestID() string {
9141	return s.RespMetadata.RequestID
9142}
9143
9144// A collection of segment documents with matching trace IDs.
9145type Trace struct {
9146	_ struct{} `type:"structure"`
9147
9148	// The length of time in seconds between the start time of the root segment
9149	// and the end time of the last segment that completed.
9150	Duration *float64 `type:"double"`
9151
9152	// The unique identifier for the request that generated the trace's segments
9153	// and subsegments.
9154	Id *string `min:"1" type:"string"`
9155
9156	// LimitExceeded is set to true when the trace has exceeded one of the defined
9157	// quotas. For more information about quotas, see Amazon Web Services X-Ray
9158	// endpoints and quotas (https://docs.aws.amazon.com/general/latest/gr/xray.html).
9159	LimitExceeded *bool `type:"boolean"`
9160
9161	// Segment documents for the segments and subsegments that comprise the trace.
9162	Segments []*Segment `type:"list"`
9163}
9164
9165// String returns the string representation.
9166//
9167// API parameter values that are decorated as "sensitive" in the API will not
9168// be included in the string output. The member name will be present, but the
9169// value will be replaced with "sensitive".
9170func (s Trace) String() string {
9171	return awsutil.Prettify(s)
9172}
9173
9174// GoString returns the string representation.
9175//
9176// API parameter values that are decorated as "sensitive" in the API will not
9177// be included in the string output. The member name will be present, but the
9178// value will be replaced with "sensitive".
9179func (s Trace) GoString() string {
9180	return s.String()
9181}
9182
9183// SetDuration sets the Duration field's value.
9184func (s *Trace) SetDuration(v float64) *Trace {
9185	s.Duration = &v
9186	return s
9187}
9188
9189// SetId sets the Id field's value.
9190func (s *Trace) SetId(v string) *Trace {
9191	s.Id = &v
9192	return s
9193}
9194
9195// SetLimitExceeded sets the LimitExceeded field's value.
9196func (s *Trace) SetLimitExceeded(v bool) *Trace {
9197	s.LimitExceeded = &v
9198	return s
9199}
9200
9201// SetSegments sets the Segments field's value.
9202func (s *Trace) SetSegments(v []*Segment) *Trace {
9203	s.Segments = v
9204	return s
9205}
9206
9207// Metadata generated from the segment documents in a trace.
9208type TraceSummary struct {
9209	_ struct{} `type:"structure"`
9210
9211	// Annotations from the trace's segment documents.
9212	Annotations map[string][]*ValueWithServiceIds `type:"map"`
9213
9214	// A list of Availability Zones for any zone corresponding to the trace segments.
9215	AvailabilityZones []*AvailabilityZoneDetail `type:"list"`
9216
9217	// The length of time in seconds between the start time of the root segment
9218	// and the end time of the last segment that completed.
9219	Duration *float64 `type:"double"`
9220
9221	// The root of a trace.
9222	EntryPoint *ServiceId `type:"structure"`
9223
9224	// A collection of ErrorRootCause structures corresponding to the trace segments.
9225	ErrorRootCauses []*ErrorRootCause `type:"list"`
9226
9227	// A collection of FaultRootCause structures corresponding to the trace segments.
9228	FaultRootCauses []*FaultRootCause `type:"list"`
9229
9230	// The root segment document has a 400 series error.
9231	HasError *bool `type:"boolean"`
9232
9233	// The root segment document has a 500 series error.
9234	HasFault *bool `type:"boolean"`
9235
9236	// One or more of the segment documents has a 429 throttling error.
9237	HasThrottle *bool `type:"boolean"`
9238
9239	// Information about the HTTP request served by the trace.
9240	Http *Http `type:"structure"`
9241
9242	// The unique identifier for the request that generated the trace's segments
9243	// and subsegments.
9244	Id *string `min:"1" type:"string"`
9245
9246	// A list of EC2 instance IDs for any instance corresponding to the trace segments.
9247	InstanceIds []*InstanceIdDetail `type:"list"`
9248
9249	// One or more of the segment documents is in progress.
9250	IsPartial *bool `type:"boolean"`
9251
9252	// The matched time stamp of a defined event.
9253	MatchedEventTime *time.Time `type:"timestamp"`
9254
9255	// A list of resource ARNs for any resource corresponding to the trace segments.
9256	ResourceARNs []*ResourceARNDetail `type:"list"`
9257
9258	// The length of time in seconds between the start and end times of the root
9259	// segment. If the service performs work asynchronously, the response time measures
9260	// the time before the response is sent to the user, while the duration measures
9261	// the amount of time before the last traced activity completes.
9262	ResponseTime *float64 `type:"double"`
9263
9264	// A collection of ResponseTimeRootCause structures corresponding to the trace
9265	// segments.
9266	ResponseTimeRootCauses []*ResponseTimeRootCause `type:"list"`
9267
9268	// The revision number of a trace.
9269	Revision *int64 `type:"integer"`
9270
9271	// Service IDs from the trace's segment documents.
9272	ServiceIds []*ServiceId `type:"list"`
9273
9274	// Users from the trace's segment documents.
9275	Users []*TraceUser `type:"list"`
9276}
9277
9278// String returns the string representation.
9279//
9280// API parameter values that are decorated as "sensitive" in the API will not
9281// be included in the string output. The member name will be present, but the
9282// value will be replaced with "sensitive".
9283func (s TraceSummary) String() string {
9284	return awsutil.Prettify(s)
9285}
9286
9287// GoString returns the string representation.
9288//
9289// API parameter values that are decorated as "sensitive" in the API will not
9290// be included in the string output. The member name will be present, but the
9291// value will be replaced with "sensitive".
9292func (s TraceSummary) GoString() string {
9293	return s.String()
9294}
9295
9296// SetAnnotations sets the Annotations field's value.
9297func (s *TraceSummary) SetAnnotations(v map[string][]*ValueWithServiceIds) *TraceSummary {
9298	s.Annotations = v
9299	return s
9300}
9301
9302// SetAvailabilityZones sets the AvailabilityZones field's value.
9303func (s *TraceSummary) SetAvailabilityZones(v []*AvailabilityZoneDetail) *TraceSummary {
9304	s.AvailabilityZones = v
9305	return s
9306}
9307
9308// SetDuration sets the Duration field's value.
9309func (s *TraceSummary) SetDuration(v float64) *TraceSummary {
9310	s.Duration = &v
9311	return s
9312}
9313
9314// SetEntryPoint sets the EntryPoint field's value.
9315func (s *TraceSummary) SetEntryPoint(v *ServiceId) *TraceSummary {
9316	s.EntryPoint = v
9317	return s
9318}
9319
9320// SetErrorRootCauses sets the ErrorRootCauses field's value.
9321func (s *TraceSummary) SetErrorRootCauses(v []*ErrorRootCause) *TraceSummary {
9322	s.ErrorRootCauses = v
9323	return s
9324}
9325
9326// SetFaultRootCauses sets the FaultRootCauses field's value.
9327func (s *TraceSummary) SetFaultRootCauses(v []*FaultRootCause) *TraceSummary {
9328	s.FaultRootCauses = v
9329	return s
9330}
9331
9332// SetHasError sets the HasError field's value.
9333func (s *TraceSummary) SetHasError(v bool) *TraceSummary {
9334	s.HasError = &v
9335	return s
9336}
9337
9338// SetHasFault sets the HasFault field's value.
9339func (s *TraceSummary) SetHasFault(v bool) *TraceSummary {
9340	s.HasFault = &v
9341	return s
9342}
9343
9344// SetHasThrottle sets the HasThrottle field's value.
9345func (s *TraceSummary) SetHasThrottle(v bool) *TraceSummary {
9346	s.HasThrottle = &v
9347	return s
9348}
9349
9350// SetHttp sets the Http field's value.
9351func (s *TraceSummary) SetHttp(v *Http) *TraceSummary {
9352	s.Http = v
9353	return s
9354}
9355
9356// SetId sets the Id field's value.
9357func (s *TraceSummary) SetId(v string) *TraceSummary {
9358	s.Id = &v
9359	return s
9360}
9361
9362// SetInstanceIds sets the InstanceIds field's value.
9363func (s *TraceSummary) SetInstanceIds(v []*InstanceIdDetail) *TraceSummary {
9364	s.InstanceIds = v
9365	return s
9366}
9367
9368// SetIsPartial sets the IsPartial field's value.
9369func (s *TraceSummary) SetIsPartial(v bool) *TraceSummary {
9370	s.IsPartial = &v
9371	return s
9372}
9373
9374// SetMatchedEventTime sets the MatchedEventTime field's value.
9375func (s *TraceSummary) SetMatchedEventTime(v time.Time) *TraceSummary {
9376	s.MatchedEventTime = &v
9377	return s
9378}
9379
9380// SetResourceARNs sets the ResourceARNs field's value.
9381func (s *TraceSummary) SetResourceARNs(v []*ResourceARNDetail) *TraceSummary {
9382	s.ResourceARNs = v
9383	return s
9384}
9385
9386// SetResponseTime sets the ResponseTime field's value.
9387func (s *TraceSummary) SetResponseTime(v float64) *TraceSummary {
9388	s.ResponseTime = &v
9389	return s
9390}
9391
9392// SetResponseTimeRootCauses sets the ResponseTimeRootCauses field's value.
9393func (s *TraceSummary) SetResponseTimeRootCauses(v []*ResponseTimeRootCause) *TraceSummary {
9394	s.ResponseTimeRootCauses = v
9395	return s
9396}
9397
9398// SetRevision sets the Revision field's value.
9399func (s *TraceSummary) SetRevision(v int64) *TraceSummary {
9400	s.Revision = &v
9401	return s
9402}
9403
9404// SetServiceIds sets the ServiceIds field's value.
9405func (s *TraceSummary) SetServiceIds(v []*ServiceId) *TraceSummary {
9406	s.ServiceIds = v
9407	return s
9408}
9409
9410// SetUsers sets the Users field's value.
9411func (s *TraceSummary) SetUsers(v []*TraceUser) *TraceSummary {
9412	s.Users = v
9413	return s
9414}
9415
9416// Information about a user recorded in segment documents.
9417type TraceUser struct {
9418	_ struct{} `type:"structure"`
9419
9420	// Services that the user's request hit.
9421	ServiceIds []*ServiceId `type:"list"`
9422
9423	// The user's name.
9424	UserName *string `type:"string"`
9425}
9426
9427// String returns the string representation.
9428//
9429// API parameter values that are decorated as "sensitive" in the API will not
9430// be included in the string output. The member name will be present, but the
9431// value will be replaced with "sensitive".
9432func (s TraceUser) String() string {
9433	return awsutil.Prettify(s)
9434}
9435
9436// GoString returns the string representation.
9437//
9438// API parameter values that are decorated as "sensitive" in the API will not
9439// be included in the string output. The member name will be present, but the
9440// value will be replaced with "sensitive".
9441func (s TraceUser) GoString() string {
9442	return s.String()
9443}
9444
9445// SetServiceIds sets the ServiceIds field's value.
9446func (s *TraceUser) SetServiceIds(v []*ServiceId) *TraceUser {
9447	s.ServiceIds = v
9448	return s
9449}
9450
9451// SetUserName sets the UserName field's value.
9452func (s *TraceUser) SetUserName(v string) *TraceUser {
9453	s.UserName = &v
9454	return s
9455}
9456
9457// Sampling statistics from a call to GetSamplingTargets (https://docs.aws.amazon.com/xray/latest/api/API_GetSamplingTargets.html)
9458// that X-Ray could not process.
9459type UnprocessedStatistics struct {
9460	_ struct{} `type:"structure"`
9461
9462	// The error code.
9463	ErrorCode *string `type:"string"`
9464
9465	// The error message.
9466	Message *string `type:"string"`
9467
9468	// The name of the sampling rule.
9469	RuleName *string `type:"string"`
9470}
9471
9472// String returns the string representation.
9473//
9474// API parameter values that are decorated as "sensitive" in the API will not
9475// be included in the string output. The member name will be present, but the
9476// value will be replaced with "sensitive".
9477func (s UnprocessedStatistics) String() string {
9478	return awsutil.Prettify(s)
9479}
9480
9481// GoString returns the string representation.
9482//
9483// API parameter values that are decorated as "sensitive" in the API will not
9484// be included in the string output. The member name will be present, but the
9485// value will be replaced with "sensitive".
9486func (s UnprocessedStatistics) GoString() string {
9487	return s.String()
9488}
9489
9490// SetErrorCode sets the ErrorCode field's value.
9491func (s *UnprocessedStatistics) SetErrorCode(v string) *UnprocessedStatistics {
9492	s.ErrorCode = &v
9493	return s
9494}
9495
9496// SetMessage sets the Message field's value.
9497func (s *UnprocessedStatistics) SetMessage(v string) *UnprocessedStatistics {
9498	s.Message = &v
9499	return s
9500}
9501
9502// SetRuleName sets the RuleName field's value.
9503func (s *UnprocessedStatistics) SetRuleName(v string) *UnprocessedStatistics {
9504	s.RuleName = &v
9505	return s
9506}
9507
9508// Information about a segment that failed processing.
9509type UnprocessedTraceSegment struct {
9510	_ struct{} `type:"structure"`
9511
9512	// The error that caused processing to fail.
9513	ErrorCode *string `type:"string"`
9514
9515	// The segment's ID.
9516	Id *string `type:"string"`
9517
9518	// The error message.
9519	Message *string `type:"string"`
9520}
9521
9522// String returns the string representation.
9523//
9524// API parameter values that are decorated as "sensitive" in the API will not
9525// be included in the string output. The member name will be present, but the
9526// value will be replaced with "sensitive".
9527func (s UnprocessedTraceSegment) String() string {
9528	return awsutil.Prettify(s)
9529}
9530
9531// GoString returns the string representation.
9532//
9533// API parameter values that are decorated as "sensitive" in the API will not
9534// be included in the string output. The member name will be present, but the
9535// value will be replaced with "sensitive".
9536func (s UnprocessedTraceSegment) GoString() string {
9537	return s.String()
9538}
9539
9540// SetErrorCode sets the ErrorCode field's value.
9541func (s *UnprocessedTraceSegment) SetErrorCode(v string) *UnprocessedTraceSegment {
9542	s.ErrorCode = &v
9543	return s
9544}
9545
9546// SetId sets the Id field's value.
9547func (s *UnprocessedTraceSegment) SetId(v string) *UnprocessedTraceSegment {
9548	s.Id = &v
9549	return s
9550}
9551
9552// SetMessage sets the Message field's value.
9553func (s *UnprocessedTraceSegment) SetMessage(v string) *UnprocessedTraceSegment {
9554	s.Message = &v
9555	return s
9556}
9557
9558type UntagResourceInput struct {
9559	_ struct{} `type:"structure"`
9560
9561	// The Amazon Resource Number (ARN) of an X-Ray group or sampling rule.
9562	//
9563	// ResourceARN is a required field
9564	ResourceARN *string `min:"1" type:"string" required:"true"`
9565
9566	// Keys for one or more tags that you want to remove from an X-Ray group or
9567	// sampling rule.
9568	//
9569	// TagKeys is a required field
9570	TagKeys []*string `type:"list" required:"true"`
9571}
9572
9573// String returns the string representation.
9574//
9575// API parameter values that are decorated as "sensitive" in the API will not
9576// be included in the string output. The member name will be present, but the
9577// value will be replaced with "sensitive".
9578func (s UntagResourceInput) String() string {
9579	return awsutil.Prettify(s)
9580}
9581
9582// GoString returns the string representation.
9583//
9584// API parameter values that are decorated as "sensitive" in the API will not
9585// be included in the string output. The member name will be present, but the
9586// value will be replaced with "sensitive".
9587func (s UntagResourceInput) GoString() string {
9588	return s.String()
9589}
9590
9591// Validate inspects the fields of the type to determine if they are valid.
9592func (s *UntagResourceInput) Validate() error {
9593	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
9594	if s.ResourceARN == nil {
9595		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
9596	}
9597	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
9598		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
9599	}
9600	if s.TagKeys == nil {
9601		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
9602	}
9603
9604	if invalidParams.Len() > 0 {
9605		return invalidParams
9606	}
9607	return nil
9608}
9609
9610// SetResourceARN sets the ResourceARN field's value.
9611func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
9612	s.ResourceARN = &v
9613	return s
9614}
9615
9616// SetTagKeys sets the TagKeys field's value.
9617func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
9618	s.TagKeys = v
9619	return s
9620}
9621
9622type UntagResourceOutput struct {
9623	_ struct{} `type:"structure"`
9624}
9625
9626// String returns the string representation.
9627//
9628// API parameter values that are decorated as "sensitive" in the API will not
9629// be included in the string output. The member name will be present, but the
9630// value will be replaced with "sensitive".
9631func (s UntagResourceOutput) String() string {
9632	return awsutil.Prettify(s)
9633}
9634
9635// GoString returns the string representation.
9636//
9637// API parameter values that are decorated as "sensitive" in the API will not
9638// be included in the string output. The member name will be present, but the
9639// value will be replaced with "sensitive".
9640func (s UntagResourceOutput) GoString() string {
9641	return s.String()
9642}
9643
9644type UpdateGroupInput struct {
9645	_ struct{} `type:"structure"`
9646
9647	// The updated filter expression defining criteria by which to group traces.
9648	FilterExpression *string `type:"string"`
9649
9650	// The ARN that was generated upon creation.
9651	GroupARN *string `min:"1" type:"string"`
9652
9653	// The case-sensitive name of the group.
9654	GroupName *string `min:"1" type:"string"`
9655
9656	// The structure containing configurations related to insights.
9657	//
9658	//    * The InsightsEnabled boolean can be set to true to enable insights for
9659	//    the group or false to disable insights for the group.
9660	//
9661	//    * The NotifcationsEnabled boolean can be set to true to enable insights
9662	//    notifications for the group. Notifications can only be enabled on a group
9663	//    with InsightsEnabled set to true.
9664	InsightsConfiguration *InsightsConfiguration `type:"structure"`
9665}
9666
9667// String returns the string representation.
9668//
9669// API parameter values that are decorated as "sensitive" in the API will not
9670// be included in the string output. The member name will be present, but the
9671// value will be replaced with "sensitive".
9672func (s UpdateGroupInput) String() string {
9673	return awsutil.Prettify(s)
9674}
9675
9676// GoString returns the string representation.
9677//
9678// API parameter values that are decorated as "sensitive" in the API will not
9679// be included in the string output. The member name will be present, but the
9680// value will be replaced with "sensitive".
9681func (s UpdateGroupInput) GoString() string {
9682	return s.String()
9683}
9684
9685// Validate inspects the fields of the type to determine if they are valid.
9686func (s *UpdateGroupInput) Validate() error {
9687	invalidParams := request.ErrInvalidParams{Context: "UpdateGroupInput"}
9688	if s.GroupARN != nil && len(*s.GroupARN) < 1 {
9689		invalidParams.Add(request.NewErrParamMinLen("GroupARN", 1))
9690	}
9691	if s.GroupName != nil && len(*s.GroupName) < 1 {
9692		invalidParams.Add(request.NewErrParamMinLen("GroupName", 1))
9693	}
9694
9695	if invalidParams.Len() > 0 {
9696		return invalidParams
9697	}
9698	return nil
9699}
9700
9701// SetFilterExpression sets the FilterExpression field's value.
9702func (s *UpdateGroupInput) SetFilterExpression(v string) *UpdateGroupInput {
9703	s.FilterExpression = &v
9704	return s
9705}
9706
9707// SetGroupARN sets the GroupARN field's value.
9708func (s *UpdateGroupInput) SetGroupARN(v string) *UpdateGroupInput {
9709	s.GroupARN = &v
9710	return s
9711}
9712
9713// SetGroupName sets the GroupName field's value.
9714func (s *UpdateGroupInput) SetGroupName(v string) *UpdateGroupInput {
9715	s.GroupName = &v
9716	return s
9717}
9718
9719// SetInsightsConfiguration sets the InsightsConfiguration field's value.
9720func (s *UpdateGroupInput) SetInsightsConfiguration(v *InsightsConfiguration) *UpdateGroupInput {
9721	s.InsightsConfiguration = v
9722	return s
9723}
9724
9725type UpdateGroupOutput struct {
9726	_ struct{} `type:"structure"`
9727
9728	// The group that was updated. Contains the name of the group that was updated,
9729	// the ARN of the group that was updated, the updated filter expression, and
9730	// the updated insight configuration assigned to the group.
9731	Group *Group `type:"structure"`
9732}
9733
9734// String returns the string representation.
9735//
9736// API parameter values that are decorated as "sensitive" in the API will not
9737// be included in the string output. The member name will be present, but the
9738// value will be replaced with "sensitive".
9739func (s UpdateGroupOutput) String() string {
9740	return awsutil.Prettify(s)
9741}
9742
9743// GoString returns the string representation.
9744//
9745// API parameter values that are decorated as "sensitive" in the API will not
9746// be included in the string output. The member name will be present, but the
9747// value will be replaced with "sensitive".
9748func (s UpdateGroupOutput) GoString() string {
9749	return s.String()
9750}
9751
9752// SetGroup sets the Group field's value.
9753func (s *UpdateGroupOutput) SetGroup(v *Group) *UpdateGroupOutput {
9754	s.Group = v
9755	return s
9756}
9757
9758type UpdateSamplingRuleInput struct {
9759	_ struct{} `type:"structure"`
9760
9761	// The rule and fields to change.
9762	//
9763	// SamplingRuleUpdate is a required field
9764	SamplingRuleUpdate *SamplingRuleUpdate `type:"structure" required:"true"`
9765}
9766
9767// String returns the string representation.
9768//
9769// API parameter values that are decorated as "sensitive" in the API will not
9770// be included in the string output. The member name will be present, but the
9771// value will be replaced with "sensitive".
9772func (s UpdateSamplingRuleInput) String() string {
9773	return awsutil.Prettify(s)
9774}
9775
9776// GoString returns the string representation.
9777//
9778// API parameter values that are decorated as "sensitive" in the API will not
9779// be included in the string output. The member name will be present, but the
9780// value will be replaced with "sensitive".
9781func (s UpdateSamplingRuleInput) GoString() string {
9782	return s.String()
9783}
9784
9785// Validate inspects the fields of the type to determine if they are valid.
9786func (s *UpdateSamplingRuleInput) Validate() error {
9787	invalidParams := request.ErrInvalidParams{Context: "UpdateSamplingRuleInput"}
9788	if s.SamplingRuleUpdate == nil {
9789		invalidParams.Add(request.NewErrParamRequired("SamplingRuleUpdate"))
9790	}
9791	if s.SamplingRuleUpdate != nil {
9792		if err := s.SamplingRuleUpdate.Validate(); err != nil {
9793			invalidParams.AddNested("SamplingRuleUpdate", err.(request.ErrInvalidParams))
9794		}
9795	}
9796
9797	if invalidParams.Len() > 0 {
9798		return invalidParams
9799	}
9800	return nil
9801}
9802
9803// SetSamplingRuleUpdate sets the SamplingRuleUpdate field's value.
9804func (s *UpdateSamplingRuleInput) SetSamplingRuleUpdate(v *SamplingRuleUpdate) *UpdateSamplingRuleInput {
9805	s.SamplingRuleUpdate = v
9806	return s
9807}
9808
9809type UpdateSamplingRuleOutput struct {
9810	_ struct{} `type:"structure"`
9811
9812	// The updated rule definition and metadata.
9813	SamplingRuleRecord *SamplingRuleRecord `type:"structure"`
9814}
9815
9816// String returns the string representation.
9817//
9818// API parameter values that are decorated as "sensitive" in the API will not
9819// be included in the string output. The member name will be present, but the
9820// value will be replaced with "sensitive".
9821func (s UpdateSamplingRuleOutput) String() string {
9822	return awsutil.Prettify(s)
9823}
9824
9825// GoString returns the string representation.
9826//
9827// API parameter values that are decorated as "sensitive" in the API will not
9828// be included in the string output. The member name will be present, but the
9829// value will be replaced with "sensitive".
9830func (s UpdateSamplingRuleOutput) GoString() string {
9831	return s.String()
9832}
9833
9834// SetSamplingRuleRecord sets the SamplingRuleRecord field's value.
9835func (s *UpdateSamplingRuleOutput) SetSamplingRuleRecord(v *SamplingRuleRecord) *UpdateSamplingRuleOutput {
9836	s.SamplingRuleRecord = v
9837	return s
9838}
9839
9840// Information about a segment annotation.
9841type ValueWithServiceIds struct {
9842	_ struct{} `type:"structure"`
9843
9844	// Values of the annotation.
9845	AnnotationValue *AnnotationValue `type:"structure"`
9846
9847	// Services to which the annotation applies.
9848	ServiceIds []*ServiceId `type:"list"`
9849}
9850
9851// String returns the string representation.
9852//
9853// API parameter values that are decorated as "sensitive" in the API will not
9854// be included in the string output. The member name will be present, but the
9855// value will be replaced with "sensitive".
9856func (s ValueWithServiceIds) String() string {
9857	return awsutil.Prettify(s)
9858}
9859
9860// GoString returns the string representation.
9861//
9862// API parameter values that are decorated as "sensitive" in the API will not
9863// be included in the string output. The member name will be present, but the
9864// value will be replaced with "sensitive".
9865func (s ValueWithServiceIds) GoString() string {
9866	return s.String()
9867}
9868
9869// SetAnnotationValue sets the AnnotationValue field's value.
9870func (s *ValueWithServiceIds) SetAnnotationValue(v *AnnotationValue) *ValueWithServiceIds {
9871	s.AnnotationValue = v
9872	return s
9873}
9874
9875// SetServiceIds sets the ServiceIds field's value.
9876func (s *ValueWithServiceIds) SetServiceIds(v []*ServiceId) *ValueWithServiceIds {
9877	s.ServiceIds = v
9878	return s
9879}
9880
9881const (
9882	// EncryptionStatusUpdating is a EncryptionStatus enum value
9883	EncryptionStatusUpdating = "UPDATING"
9884
9885	// EncryptionStatusActive is a EncryptionStatus enum value
9886	EncryptionStatusActive = "ACTIVE"
9887)
9888
9889// EncryptionStatus_Values returns all elements of the EncryptionStatus enum
9890func EncryptionStatus_Values() []string {
9891	return []string{
9892		EncryptionStatusUpdating,
9893		EncryptionStatusActive,
9894	}
9895}
9896
9897const (
9898	// EncryptionTypeNone is a EncryptionType enum value
9899	EncryptionTypeNone = "NONE"
9900
9901	// EncryptionTypeKms is a EncryptionType enum value
9902	EncryptionTypeKms = "KMS"
9903)
9904
9905// EncryptionType_Values returns all elements of the EncryptionType enum
9906func EncryptionType_Values() []string {
9907	return []string{
9908		EncryptionTypeNone,
9909		EncryptionTypeKms,
9910	}
9911}
9912
9913const (
9914	// InsightCategoryFault is a InsightCategory enum value
9915	InsightCategoryFault = "FAULT"
9916)
9917
9918// InsightCategory_Values returns all elements of the InsightCategory enum
9919func InsightCategory_Values() []string {
9920	return []string{
9921		InsightCategoryFault,
9922	}
9923}
9924
9925const (
9926	// InsightStateActive is a InsightState enum value
9927	InsightStateActive = "ACTIVE"
9928
9929	// InsightStateClosed is a InsightState enum value
9930	InsightStateClosed = "CLOSED"
9931)
9932
9933// InsightState_Values returns all elements of the InsightState enum
9934func InsightState_Values() []string {
9935	return []string{
9936		InsightStateActive,
9937		InsightStateClosed,
9938	}
9939}
9940
9941const (
9942	// SamplingStrategyNamePartialScan is a SamplingStrategyName enum value
9943	SamplingStrategyNamePartialScan = "PartialScan"
9944
9945	// SamplingStrategyNameFixedRate is a SamplingStrategyName enum value
9946	SamplingStrategyNameFixedRate = "FixedRate"
9947)
9948
9949// SamplingStrategyName_Values returns all elements of the SamplingStrategyName enum
9950func SamplingStrategyName_Values() []string {
9951	return []string{
9952		SamplingStrategyNamePartialScan,
9953		SamplingStrategyNameFixedRate,
9954	}
9955}
9956
9957const (
9958	// TimeRangeTypeTraceId is a TimeRangeType enum value
9959	TimeRangeTypeTraceId = "TraceId"
9960
9961	// TimeRangeTypeEvent is a TimeRangeType enum value
9962	TimeRangeTypeEvent = "Event"
9963)
9964
9965// TimeRangeType_Values returns all elements of the TimeRangeType enum
9966func TimeRangeType_Values() []string {
9967	return []string{
9968		TimeRangeTypeTraceId,
9969		TimeRangeTypeEvent,
9970	}
9971}
9972