1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package detective
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 opAcceptInvitation = "AcceptInvitation"
17
18// AcceptInvitationRequest generates a "aws/request.Request" representing the
19// client's request for the AcceptInvitation 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 AcceptInvitation for more information on using the AcceptInvitation
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 AcceptInvitationRequest method.
34//    req, resp := client.AcceptInvitationRequest(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/detective-2018-10-26/AcceptInvitation
42func (c *Detective) AcceptInvitationRequest(input *AcceptInvitationInput) (req *request.Request, output *AcceptInvitationOutput) {
43	op := &request.Operation{
44		Name:       opAcceptInvitation,
45		HTTPMethod: "PUT",
46		HTTPPath:   "/invitation",
47	}
48
49	if input == nil {
50		input = &AcceptInvitationInput{}
51	}
52
53	output = &AcceptInvitationOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AcceptInvitation API operation for Amazon Detective.
60//
61// Accepts an invitation for the member account to contribute data to a behavior
62// graph. This operation can only be called by an invited member account.
63//
64// The request provides the ARN of behavior graph.
65//
66// The member account status in the graph must be INVITED.
67//
68// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
69// with awserr.Error's Code and Message methods to get detailed information about
70// the error.
71//
72// See the AWS API reference guide for Amazon Detective's
73// API operation AcceptInvitation for usage and error information.
74//
75// Returned Error Types:
76//   * ConflictException
77//   The request attempted an invalid action.
78//
79//   * InternalServerException
80//   The request was valid but failed because of a problem with the service.
81//
82//   * ResourceNotFoundException
83//   The request refers to a nonexistent resource.
84//
85//   * ValidationException
86//   The request parameters are invalid.
87//
88// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/AcceptInvitation
89func (c *Detective) AcceptInvitation(input *AcceptInvitationInput) (*AcceptInvitationOutput, error) {
90	req, out := c.AcceptInvitationRequest(input)
91	return out, req.Send()
92}
93
94// AcceptInvitationWithContext is the same as AcceptInvitation with the addition of
95// the ability to pass a context and additional request options.
96//
97// See AcceptInvitation for details on how to use this API operation.
98//
99// The context must be non-nil and will be used for request cancellation. If
100// the context is nil a panic will occur. In the future the SDK may create
101// sub-contexts for http.Requests. See https://golang.org/pkg/context/
102// for more information on using Contexts.
103func (c *Detective) AcceptInvitationWithContext(ctx aws.Context, input *AcceptInvitationInput, opts ...request.Option) (*AcceptInvitationOutput, error) {
104	req, out := c.AcceptInvitationRequest(input)
105	req.SetContext(ctx)
106	req.ApplyOptions(opts...)
107	return out, req.Send()
108}
109
110const opCreateGraph = "CreateGraph"
111
112// CreateGraphRequest generates a "aws/request.Request" representing the
113// client's request for the CreateGraph operation. The "output" return
114// value will be populated with the request's response once the request completes
115// successfully.
116//
117// Use "Send" method on the returned Request to send the API call to the service.
118// the "output" return value is not valid until after Send returns without error.
119//
120// See CreateGraph for more information on using the CreateGraph
121// API call, and error handling.
122//
123// This method is useful when you want to inject custom logic or configuration
124// into the SDK's request lifecycle. Such as custom headers, or retry logic.
125//
126//
127//    // Example sending a request using the CreateGraphRequest method.
128//    req, resp := client.CreateGraphRequest(params)
129//
130//    err := req.Send()
131//    if err == nil { // resp is now filled
132//        fmt.Println(resp)
133//    }
134//
135// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/CreateGraph
136func (c *Detective) CreateGraphRequest(input *CreateGraphInput) (req *request.Request, output *CreateGraphOutput) {
137	op := &request.Operation{
138		Name:       opCreateGraph,
139		HTTPMethod: "POST",
140		HTTPPath:   "/graph",
141	}
142
143	if input == nil {
144		input = &CreateGraphInput{}
145	}
146
147	output = &CreateGraphOutput{}
148	req = c.newRequest(op, input, output)
149	return
150}
151
152// CreateGraph API operation for Amazon Detective.
153//
154// Creates a new behavior graph for the calling account, and sets that account
155// as the master account. This operation is called by the account that is enabling
156// Detective.
157//
158// Before you try to enable Detective, make sure that your account has been
159// enrolled in Amazon GuardDuty for at least 48 hours. If you do not meet this
160// requirement, you cannot enable Detective. If you do meet the GuardDuty prerequisite,
161// then when you make the request to enable Detective, it checks whether your
162// data volume is within the Detective quota. If it exceeds the quota, then
163// you cannot enable Detective.
164//
165// The operation also enables Detective for the calling account in the currently
166// selected Region. It returns the ARN of the new behavior graph.
167//
168// CreateGraph triggers a process to create the corresponding data tables for
169// the new behavior graph.
170//
171// An account can only be the master account for one behavior graph within a
172// Region. If the same account calls CreateGraph with the same master account,
173// it always returns the same behavior graph ARN. It does not create a new behavior
174// graph.
175//
176// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
177// with awserr.Error's Code and Message methods to get detailed information about
178// the error.
179//
180// See the AWS API reference guide for Amazon Detective's
181// API operation CreateGraph for usage and error information.
182//
183// Returned Error Types:
184//   * ConflictException
185//   The request attempted an invalid action.
186//
187//   * InternalServerException
188//   The request was valid but failed because of a problem with the service.
189//
190//   * ServiceQuotaExceededException
191//   This request cannot be completed for one of the following reasons.
192//
193//      * The request would cause the number of member accounts in the behavior
194//      graph to exceed the maximum allowed. A behavior graph cannot have more
195//      than 1000 member accounts.
196//
197//      * The request would cause the data rate for the behavior graph to exceed
198//      the maximum allowed.
199//
200//      * Detective is unable to verify the data rate for the member account.
201//      This is usually because the member account is not enrolled in Amazon GuardDuty.
202//
203// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/CreateGraph
204func (c *Detective) CreateGraph(input *CreateGraphInput) (*CreateGraphOutput, error) {
205	req, out := c.CreateGraphRequest(input)
206	return out, req.Send()
207}
208
209// CreateGraphWithContext is the same as CreateGraph with the addition of
210// the ability to pass a context and additional request options.
211//
212// See CreateGraph for details on how to use this API operation.
213//
214// The context must be non-nil and will be used for request cancellation. If
215// the context is nil a panic will occur. In the future the SDK may create
216// sub-contexts for http.Requests. See https://golang.org/pkg/context/
217// for more information on using Contexts.
218func (c *Detective) CreateGraphWithContext(ctx aws.Context, input *CreateGraphInput, opts ...request.Option) (*CreateGraphOutput, error) {
219	req, out := c.CreateGraphRequest(input)
220	req.SetContext(ctx)
221	req.ApplyOptions(opts...)
222	return out, req.Send()
223}
224
225const opCreateMembers = "CreateMembers"
226
227// CreateMembersRequest generates a "aws/request.Request" representing the
228// client's request for the CreateMembers operation. The "output" return
229// value will be populated with the request's response once the request completes
230// successfully.
231//
232// Use "Send" method on the returned Request to send the API call to the service.
233// the "output" return value is not valid until after Send returns without error.
234//
235// See CreateMembers for more information on using the CreateMembers
236// API call, and error handling.
237//
238// This method is useful when you want to inject custom logic or configuration
239// into the SDK's request lifecycle. Such as custom headers, or retry logic.
240//
241//
242//    // Example sending a request using the CreateMembersRequest method.
243//    req, resp := client.CreateMembersRequest(params)
244//
245//    err := req.Send()
246//    if err == nil { // resp is now filled
247//        fmt.Println(resp)
248//    }
249//
250// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/CreateMembers
251func (c *Detective) CreateMembersRequest(input *CreateMembersInput) (req *request.Request, output *CreateMembersOutput) {
252	op := &request.Operation{
253		Name:       opCreateMembers,
254		HTTPMethod: "POST",
255		HTTPPath:   "/graph/members",
256	}
257
258	if input == nil {
259		input = &CreateMembersInput{}
260	}
261
262	output = &CreateMembersOutput{}
263	req = c.newRequest(op, input, output)
264	return
265}
266
267// CreateMembers API operation for Amazon Detective.
268//
269// Sends a request to invite the specified AWS accounts to be member accounts
270// in the behavior graph. This operation can only be called by the master account
271// for a behavior graph.
272//
273// CreateMembers verifies the accounts and then sends invitations to the verified
274// accounts.
275//
276// The request provides the behavior graph ARN and the list of accounts to invite.
277//
278// The response separates the requested accounts into two lists:
279//
280//    * The accounts that CreateMembers was able to start the verification for.
281//    This list includes member accounts that are being verified, that have
282//    passed verification and are being sent an invitation, and that have failed
283//    verification.
284//
285//    * The accounts that CreateMembers was unable to process. This list includes
286//    accounts that were already invited to be member accounts in the behavior
287//    graph.
288//
289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
290// with awserr.Error's Code and Message methods to get detailed information about
291// the error.
292//
293// See the AWS API reference guide for Amazon Detective's
294// API operation CreateMembers for usage and error information.
295//
296// Returned Error Types:
297//   * InternalServerException
298//   The request was valid but failed because of a problem with the service.
299//
300//   * ResourceNotFoundException
301//   The request refers to a nonexistent resource.
302//
303//   * ValidationException
304//   The request parameters are invalid.
305//
306//   * ServiceQuotaExceededException
307//   This request cannot be completed for one of the following reasons.
308//
309//      * The request would cause the number of member accounts in the behavior
310//      graph to exceed the maximum allowed. A behavior graph cannot have more
311//      than 1000 member accounts.
312//
313//      * The request would cause the data rate for the behavior graph to exceed
314//      the maximum allowed.
315//
316//      * Detective is unable to verify the data rate for the member account.
317//      This is usually because the member account is not enrolled in Amazon GuardDuty.
318//
319// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/CreateMembers
320func (c *Detective) CreateMembers(input *CreateMembersInput) (*CreateMembersOutput, error) {
321	req, out := c.CreateMembersRequest(input)
322	return out, req.Send()
323}
324
325// CreateMembersWithContext is the same as CreateMembers with the addition of
326// the ability to pass a context and additional request options.
327//
328// See CreateMembers for details on how to use this API operation.
329//
330// The context must be non-nil and will be used for request cancellation. If
331// the context is nil a panic will occur. In the future the SDK may create
332// sub-contexts for http.Requests. See https://golang.org/pkg/context/
333// for more information on using Contexts.
334func (c *Detective) CreateMembersWithContext(ctx aws.Context, input *CreateMembersInput, opts ...request.Option) (*CreateMembersOutput, error) {
335	req, out := c.CreateMembersRequest(input)
336	req.SetContext(ctx)
337	req.ApplyOptions(opts...)
338	return out, req.Send()
339}
340
341const opDeleteGraph = "DeleteGraph"
342
343// DeleteGraphRequest generates a "aws/request.Request" representing the
344// client's request for the DeleteGraph operation. The "output" return
345// value will be populated with the request's response once the request completes
346// successfully.
347//
348// Use "Send" method on the returned Request to send the API call to the service.
349// the "output" return value is not valid until after Send returns without error.
350//
351// See DeleteGraph for more information on using the DeleteGraph
352// API call, and error handling.
353//
354// This method is useful when you want to inject custom logic or configuration
355// into the SDK's request lifecycle. Such as custom headers, or retry logic.
356//
357//
358//    // Example sending a request using the DeleteGraphRequest method.
359//    req, resp := client.DeleteGraphRequest(params)
360//
361//    err := req.Send()
362//    if err == nil { // resp is now filled
363//        fmt.Println(resp)
364//    }
365//
366// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/DeleteGraph
367func (c *Detective) DeleteGraphRequest(input *DeleteGraphInput) (req *request.Request, output *DeleteGraphOutput) {
368	op := &request.Operation{
369		Name:       opDeleteGraph,
370		HTTPMethod: "POST",
371		HTTPPath:   "/graph/removal",
372	}
373
374	if input == nil {
375		input = &DeleteGraphInput{}
376	}
377
378	output = &DeleteGraphOutput{}
379	req = c.newRequest(op, input, output)
380	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
381	return
382}
383
384// DeleteGraph API operation for Amazon Detective.
385//
386// Disables the specified behavior graph and queues it to be deleted. This operation
387// removes the graph from each member account's list of behavior graphs.
388//
389// DeleteGraph can only be called by the master account for a behavior graph.
390//
391// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
392// with awserr.Error's Code and Message methods to get detailed information about
393// the error.
394//
395// See the AWS API reference guide for Amazon Detective's
396// API operation DeleteGraph for usage and error information.
397//
398// Returned Error Types:
399//   * InternalServerException
400//   The request was valid but failed because of a problem with the service.
401//
402//   * ResourceNotFoundException
403//   The request refers to a nonexistent resource.
404//
405//   * ValidationException
406//   The request parameters are invalid.
407//
408// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/DeleteGraph
409func (c *Detective) DeleteGraph(input *DeleteGraphInput) (*DeleteGraphOutput, error) {
410	req, out := c.DeleteGraphRequest(input)
411	return out, req.Send()
412}
413
414// DeleteGraphWithContext is the same as DeleteGraph with the addition of
415// the ability to pass a context and additional request options.
416//
417// See DeleteGraph for details on how to use this API operation.
418//
419// The context must be non-nil and will be used for request cancellation. If
420// the context is nil a panic will occur. In the future the SDK may create
421// sub-contexts for http.Requests. See https://golang.org/pkg/context/
422// for more information on using Contexts.
423func (c *Detective) DeleteGraphWithContext(ctx aws.Context, input *DeleteGraphInput, opts ...request.Option) (*DeleteGraphOutput, error) {
424	req, out := c.DeleteGraphRequest(input)
425	req.SetContext(ctx)
426	req.ApplyOptions(opts...)
427	return out, req.Send()
428}
429
430const opDeleteMembers = "DeleteMembers"
431
432// DeleteMembersRequest generates a "aws/request.Request" representing the
433// client's request for the DeleteMembers operation. The "output" return
434// value will be populated with the request's response once the request completes
435// successfully.
436//
437// Use "Send" method on the returned Request to send the API call to the service.
438// the "output" return value is not valid until after Send returns without error.
439//
440// See DeleteMembers for more information on using the DeleteMembers
441// API call, and error handling.
442//
443// This method is useful when you want to inject custom logic or configuration
444// into the SDK's request lifecycle. Such as custom headers, or retry logic.
445//
446//
447//    // Example sending a request using the DeleteMembersRequest method.
448//    req, resp := client.DeleteMembersRequest(params)
449//
450//    err := req.Send()
451//    if err == nil { // resp is now filled
452//        fmt.Println(resp)
453//    }
454//
455// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/DeleteMembers
456func (c *Detective) DeleteMembersRequest(input *DeleteMembersInput) (req *request.Request, output *DeleteMembersOutput) {
457	op := &request.Operation{
458		Name:       opDeleteMembers,
459		HTTPMethod: "POST",
460		HTTPPath:   "/graph/members/removal",
461	}
462
463	if input == nil {
464		input = &DeleteMembersInput{}
465	}
466
467	output = &DeleteMembersOutput{}
468	req = c.newRequest(op, input, output)
469	return
470}
471
472// DeleteMembers API operation for Amazon Detective.
473//
474// Deletes one or more member accounts from the master account behavior graph.
475// This operation can only be called by a Detective master account. That account
476// cannot use DeleteMembers to delete their own account from the behavior graph.
477// To disable a behavior graph, the master account uses the DeleteGraph API
478// method.
479//
480// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
481// with awserr.Error's Code and Message methods to get detailed information about
482// the error.
483//
484// See the AWS API reference guide for Amazon Detective's
485// API operation DeleteMembers for usage and error information.
486//
487// Returned Error Types:
488//   * ConflictException
489//   The request attempted an invalid action.
490//
491//   * InternalServerException
492//   The request was valid but failed because of a problem with the service.
493//
494//   * ResourceNotFoundException
495//   The request refers to a nonexistent resource.
496//
497//   * ValidationException
498//   The request parameters are invalid.
499//
500// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/DeleteMembers
501func (c *Detective) DeleteMembers(input *DeleteMembersInput) (*DeleteMembersOutput, error) {
502	req, out := c.DeleteMembersRequest(input)
503	return out, req.Send()
504}
505
506// DeleteMembersWithContext is the same as DeleteMembers with the addition of
507// the ability to pass a context and additional request options.
508//
509// See DeleteMembers for details on how to use this API operation.
510//
511// The context must be non-nil and will be used for request cancellation. If
512// the context is nil a panic will occur. In the future the SDK may create
513// sub-contexts for http.Requests. See https://golang.org/pkg/context/
514// for more information on using Contexts.
515func (c *Detective) DeleteMembersWithContext(ctx aws.Context, input *DeleteMembersInput, opts ...request.Option) (*DeleteMembersOutput, error) {
516	req, out := c.DeleteMembersRequest(input)
517	req.SetContext(ctx)
518	req.ApplyOptions(opts...)
519	return out, req.Send()
520}
521
522const opDisassociateMembership = "DisassociateMembership"
523
524// DisassociateMembershipRequest generates a "aws/request.Request" representing the
525// client's request for the DisassociateMembership operation. The "output" return
526// value will be populated with the request's response once the request completes
527// successfully.
528//
529// Use "Send" method on the returned Request to send the API call to the service.
530// the "output" return value is not valid until after Send returns without error.
531//
532// See DisassociateMembership for more information on using the DisassociateMembership
533// API call, and error handling.
534//
535// This method is useful when you want to inject custom logic or configuration
536// into the SDK's request lifecycle. Such as custom headers, or retry logic.
537//
538//
539//    // Example sending a request using the DisassociateMembershipRequest method.
540//    req, resp := client.DisassociateMembershipRequest(params)
541//
542//    err := req.Send()
543//    if err == nil { // resp is now filled
544//        fmt.Println(resp)
545//    }
546//
547// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/DisassociateMembership
548func (c *Detective) DisassociateMembershipRequest(input *DisassociateMembershipInput) (req *request.Request, output *DisassociateMembershipOutput) {
549	op := &request.Operation{
550		Name:       opDisassociateMembership,
551		HTTPMethod: "POST",
552		HTTPPath:   "/membership/removal",
553	}
554
555	if input == nil {
556		input = &DisassociateMembershipInput{}
557	}
558
559	output = &DisassociateMembershipOutput{}
560	req = c.newRequest(op, input, output)
561	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
562	return
563}
564
565// DisassociateMembership API operation for Amazon Detective.
566//
567// Removes the member account from the specified behavior graph. This operation
568// can only be called by a member account that has the ENABLED status.
569//
570// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
571// with awserr.Error's Code and Message methods to get detailed information about
572// the error.
573//
574// See the AWS API reference guide for Amazon Detective's
575// API operation DisassociateMembership for usage and error information.
576//
577// Returned Error Types:
578//   * ConflictException
579//   The request attempted an invalid action.
580//
581//   * InternalServerException
582//   The request was valid but failed because of a problem with the service.
583//
584//   * ResourceNotFoundException
585//   The request refers to a nonexistent resource.
586//
587//   * ValidationException
588//   The request parameters are invalid.
589//
590// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/DisassociateMembership
591func (c *Detective) DisassociateMembership(input *DisassociateMembershipInput) (*DisassociateMembershipOutput, error) {
592	req, out := c.DisassociateMembershipRequest(input)
593	return out, req.Send()
594}
595
596// DisassociateMembershipWithContext is the same as DisassociateMembership with the addition of
597// the ability to pass a context and additional request options.
598//
599// See DisassociateMembership for details on how to use this API operation.
600//
601// The context must be non-nil and will be used for request cancellation. If
602// the context is nil a panic will occur. In the future the SDK may create
603// sub-contexts for http.Requests. See https://golang.org/pkg/context/
604// for more information on using Contexts.
605func (c *Detective) DisassociateMembershipWithContext(ctx aws.Context, input *DisassociateMembershipInput, opts ...request.Option) (*DisassociateMembershipOutput, error) {
606	req, out := c.DisassociateMembershipRequest(input)
607	req.SetContext(ctx)
608	req.ApplyOptions(opts...)
609	return out, req.Send()
610}
611
612const opGetMembers = "GetMembers"
613
614// GetMembersRequest generates a "aws/request.Request" representing the
615// client's request for the GetMembers operation. The "output" return
616// value will be populated with the request's response once the request completes
617// successfully.
618//
619// Use "Send" method on the returned Request to send the API call to the service.
620// the "output" return value is not valid until after Send returns without error.
621//
622// See GetMembers for more information on using the GetMembers
623// API call, and error handling.
624//
625// This method is useful when you want to inject custom logic or configuration
626// into the SDK's request lifecycle. Such as custom headers, or retry logic.
627//
628//
629//    // Example sending a request using the GetMembersRequest method.
630//    req, resp := client.GetMembersRequest(params)
631//
632//    err := req.Send()
633//    if err == nil { // resp is now filled
634//        fmt.Println(resp)
635//    }
636//
637// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/GetMembers
638func (c *Detective) GetMembersRequest(input *GetMembersInput) (req *request.Request, output *GetMembersOutput) {
639	op := &request.Operation{
640		Name:       opGetMembers,
641		HTTPMethod: "POST",
642		HTTPPath:   "/graph/members/get",
643	}
644
645	if input == nil {
646		input = &GetMembersInput{}
647	}
648
649	output = &GetMembersOutput{}
650	req = c.newRequest(op, input, output)
651	return
652}
653
654// GetMembers API operation for Amazon Detective.
655//
656// Returns the membership details for specified member accounts for a behavior
657// graph.
658//
659// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
660// with awserr.Error's Code and Message methods to get detailed information about
661// the error.
662//
663// See the AWS API reference guide for Amazon Detective's
664// API operation GetMembers for usage and error information.
665//
666// Returned Error Types:
667//   * InternalServerException
668//   The request was valid but failed because of a problem with the service.
669//
670//   * ResourceNotFoundException
671//   The request refers to a nonexistent resource.
672//
673//   * ValidationException
674//   The request parameters are invalid.
675//
676// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/GetMembers
677func (c *Detective) GetMembers(input *GetMembersInput) (*GetMembersOutput, error) {
678	req, out := c.GetMembersRequest(input)
679	return out, req.Send()
680}
681
682// GetMembersWithContext is the same as GetMembers with the addition of
683// the ability to pass a context and additional request options.
684//
685// See GetMembers for details on how to use this API operation.
686//
687// The context must be non-nil and will be used for request cancellation. If
688// the context is nil a panic will occur. In the future the SDK may create
689// sub-contexts for http.Requests. See https://golang.org/pkg/context/
690// for more information on using Contexts.
691func (c *Detective) GetMembersWithContext(ctx aws.Context, input *GetMembersInput, opts ...request.Option) (*GetMembersOutput, error) {
692	req, out := c.GetMembersRequest(input)
693	req.SetContext(ctx)
694	req.ApplyOptions(opts...)
695	return out, req.Send()
696}
697
698const opListGraphs = "ListGraphs"
699
700// ListGraphsRequest generates a "aws/request.Request" representing the
701// client's request for the ListGraphs operation. The "output" return
702// value will be populated with the request's response once the request completes
703// successfully.
704//
705// Use "Send" method on the returned Request to send the API call to the service.
706// the "output" return value is not valid until after Send returns without error.
707//
708// See ListGraphs for more information on using the ListGraphs
709// API call, and error handling.
710//
711// This method is useful when you want to inject custom logic or configuration
712// into the SDK's request lifecycle. Such as custom headers, or retry logic.
713//
714//
715//    // Example sending a request using the ListGraphsRequest method.
716//    req, resp := client.ListGraphsRequest(params)
717//
718//    err := req.Send()
719//    if err == nil { // resp is now filled
720//        fmt.Println(resp)
721//    }
722//
723// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/ListGraphs
724func (c *Detective) ListGraphsRequest(input *ListGraphsInput) (req *request.Request, output *ListGraphsOutput) {
725	op := &request.Operation{
726		Name:       opListGraphs,
727		HTTPMethod: "POST",
728		HTTPPath:   "/graphs/list",
729		Paginator: &request.Paginator{
730			InputTokens:     []string{"NextToken"},
731			OutputTokens:    []string{"NextToken"},
732			LimitToken:      "MaxResults",
733			TruncationToken: "",
734		},
735	}
736
737	if input == nil {
738		input = &ListGraphsInput{}
739	}
740
741	output = &ListGraphsOutput{}
742	req = c.newRequest(op, input, output)
743	return
744}
745
746// ListGraphs API operation for Amazon Detective.
747//
748// Returns the list of behavior graphs that the calling account is a master
749// of. This operation can only be called by a master account.
750//
751// Because an account can currently only be the master of one behavior graph
752// within a Region, the results always contain a single graph.
753//
754// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
755// with awserr.Error's Code and Message methods to get detailed information about
756// the error.
757//
758// See the AWS API reference guide for Amazon Detective's
759// API operation ListGraphs for usage and error information.
760//
761// Returned Error Types:
762//   * InternalServerException
763//   The request was valid but failed because of a problem with the service.
764//
765//   * ValidationException
766//   The request parameters are invalid.
767//
768// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/ListGraphs
769func (c *Detective) ListGraphs(input *ListGraphsInput) (*ListGraphsOutput, error) {
770	req, out := c.ListGraphsRequest(input)
771	return out, req.Send()
772}
773
774// ListGraphsWithContext is the same as ListGraphs with the addition of
775// the ability to pass a context and additional request options.
776//
777// See ListGraphs for details on how to use this API operation.
778//
779// The context must be non-nil and will be used for request cancellation. If
780// the context is nil a panic will occur. In the future the SDK may create
781// sub-contexts for http.Requests. See https://golang.org/pkg/context/
782// for more information on using Contexts.
783func (c *Detective) ListGraphsWithContext(ctx aws.Context, input *ListGraphsInput, opts ...request.Option) (*ListGraphsOutput, error) {
784	req, out := c.ListGraphsRequest(input)
785	req.SetContext(ctx)
786	req.ApplyOptions(opts...)
787	return out, req.Send()
788}
789
790// ListGraphsPages iterates over the pages of a ListGraphs operation,
791// calling the "fn" function with the response data for each page. To stop
792// iterating, return false from the fn function.
793//
794// See ListGraphs method for more information on how to use this operation.
795//
796// Note: This operation can generate multiple requests to a service.
797//
798//    // Example iterating over at most 3 pages of a ListGraphs operation.
799//    pageNum := 0
800//    err := client.ListGraphsPages(params,
801//        func(page *detective.ListGraphsOutput, lastPage bool) bool {
802//            pageNum++
803//            fmt.Println(page)
804//            return pageNum <= 3
805//        })
806//
807func (c *Detective) ListGraphsPages(input *ListGraphsInput, fn func(*ListGraphsOutput, bool) bool) error {
808	return c.ListGraphsPagesWithContext(aws.BackgroundContext(), input, fn)
809}
810
811// ListGraphsPagesWithContext same as ListGraphsPages except
812// it takes a Context and allows setting request options on the pages.
813//
814// The context must be non-nil and will be used for request cancellation. If
815// the context is nil a panic will occur. In the future the SDK may create
816// sub-contexts for http.Requests. See https://golang.org/pkg/context/
817// for more information on using Contexts.
818func (c *Detective) ListGraphsPagesWithContext(ctx aws.Context, input *ListGraphsInput, fn func(*ListGraphsOutput, bool) bool, opts ...request.Option) error {
819	p := request.Pagination{
820		NewRequest: func() (*request.Request, error) {
821			var inCpy *ListGraphsInput
822			if input != nil {
823				tmp := *input
824				inCpy = &tmp
825			}
826			req, _ := c.ListGraphsRequest(inCpy)
827			req.SetContext(ctx)
828			req.ApplyOptions(opts...)
829			return req, nil
830		},
831	}
832
833	for p.Next() {
834		if !fn(p.Page().(*ListGraphsOutput), !p.HasNextPage()) {
835			break
836		}
837	}
838
839	return p.Err()
840}
841
842const opListInvitations = "ListInvitations"
843
844// ListInvitationsRequest generates a "aws/request.Request" representing the
845// client's request for the ListInvitations operation. The "output" return
846// value will be populated with the request's response once the request completes
847// successfully.
848//
849// Use "Send" method on the returned Request to send the API call to the service.
850// the "output" return value is not valid until after Send returns without error.
851//
852// See ListInvitations for more information on using the ListInvitations
853// API call, and error handling.
854//
855// This method is useful when you want to inject custom logic or configuration
856// into the SDK's request lifecycle. Such as custom headers, or retry logic.
857//
858//
859//    // Example sending a request using the ListInvitationsRequest method.
860//    req, resp := client.ListInvitationsRequest(params)
861//
862//    err := req.Send()
863//    if err == nil { // resp is now filled
864//        fmt.Println(resp)
865//    }
866//
867// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/ListInvitations
868func (c *Detective) ListInvitationsRequest(input *ListInvitationsInput) (req *request.Request, output *ListInvitationsOutput) {
869	op := &request.Operation{
870		Name:       opListInvitations,
871		HTTPMethod: "POST",
872		HTTPPath:   "/invitations/list",
873		Paginator: &request.Paginator{
874			InputTokens:     []string{"NextToken"},
875			OutputTokens:    []string{"NextToken"},
876			LimitToken:      "MaxResults",
877			TruncationToken: "",
878		},
879	}
880
881	if input == nil {
882		input = &ListInvitationsInput{}
883	}
884
885	output = &ListInvitationsOutput{}
886	req = c.newRequest(op, input, output)
887	return
888}
889
890// ListInvitations API operation for Amazon Detective.
891//
892// Retrieves the list of open and accepted behavior graph invitations for the
893// member account. This operation can only be called by a member account.
894//
895// Open invitations are invitations that the member account has not responded
896// to.
897//
898// The results do not include behavior graphs for which the member account declined
899// the invitation. The results also do not include behavior graphs that the
900// member account resigned from or was removed from.
901//
902// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
903// with awserr.Error's Code and Message methods to get detailed information about
904// the error.
905//
906// See the AWS API reference guide for Amazon Detective's
907// API operation ListInvitations for usage and error information.
908//
909// Returned Error Types:
910//   * InternalServerException
911//   The request was valid but failed because of a problem with the service.
912//
913//   * ValidationException
914//   The request parameters are invalid.
915//
916// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/ListInvitations
917func (c *Detective) ListInvitations(input *ListInvitationsInput) (*ListInvitationsOutput, error) {
918	req, out := c.ListInvitationsRequest(input)
919	return out, req.Send()
920}
921
922// ListInvitationsWithContext is the same as ListInvitations with the addition of
923// the ability to pass a context and additional request options.
924//
925// See ListInvitations for details on how to use this API operation.
926//
927// The context must be non-nil and will be used for request cancellation. If
928// the context is nil a panic will occur. In the future the SDK may create
929// sub-contexts for http.Requests. See https://golang.org/pkg/context/
930// for more information on using Contexts.
931func (c *Detective) ListInvitationsWithContext(ctx aws.Context, input *ListInvitationsInput, opts ...request.Option) (*ListInvitationsOutput, error) {
932	req, out := c.ListInvitationsRequest(input)
933	req.SetContext(ctx)
934	req.ApplyOptions(opts...)
935	return out, req.Send()
936}
937
938// ListInvitationsPages iterates over the pages of a ListInvitations operation,
939// calling the "fn" function with the response data for each page. To stop
940// iterating, return false from the fn function.
941//
942// See ListInvitations method for more information on how to use this operation.
943//
944// Note: This operation can generate multiple requests to a service.
945//
946//    // Example iterating over at most 3 pages of a ListInvitations operation.
947//    pageNum := 0
948//    err := client.ListInvitationsPages(params,
949//        func(page *detective.ListInvitationsOutput, lastPage bool) bool {
950//            pageNum++
951//            fmt.Println(page)
952//            return pageNum <= 3
953//        })
954//
955func (c *Detective) ListInvitationsPages(input *ListInvitationsInput, fn func(*ListInvitationsOutput, bool) bool) error {
956	return c.ListInvitationsPagesWithContext(aws.BackgroundContext(), input, fn)
957}
958
959// ListInvitationsPagesWithContext same as ListInvitationsPages except
960// it takes a Context and allows setting request options on the pages.
961//
962// The context must be non-nil and will be used for request cancellation. If
963// the context is nil a panic will occur. In the future the SDK may create
964// sub-contexts for http.Requests. See https://golang.org/pkg/context/
965// for more information on using Contexts.
966func (c *Detective) ListInvitationsPagesWithContext(ctx aws.Context, input *ListInvitationsInput, fn func(*ListInvitationsOutput, bool) bool, opts ...request.Option) error {
967	p := request.Pagination{
968		NewRequest: func() (*request.Request, error) {
969			var inCpy *ListInvitationsInput
970			if input != nil {
971				tmp := *input
972				inCpy = &tmp
973			}
974			req, _ := c.ListInvitationsRequest(inCpy)
975			req.SetContext(ctx)
976			req.ApplyOptions(opts...)
977			return req, nil
978		},
979	}
980
981	for p.Next() {
982		if !fn(p.Page().(*ListInvitationsOutput), !p.HasNextPage()) {
983			break
984		}
985	}
986
987	return p.Err()
988}
989
990const opListMembers = "ListMembers"
991
992// ListMembersRequest generates a "aws/request.Request" representing the
993// client's request for the ListMembers operation. The "output" return
994// value will be populated with the request's response once the request completes
995// successfully.
996//
997// Use "Send" method on the returned Request to send the API call to the service.
998// the "output" return value is not valid until after Send returns without error.
999//
1000// See ListMembers for more information on using the ListMembers
1001// API call, and error handling.
1002//
1003// This method is useful when you want to inject custom logic or configuration
1004// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1005//
1006//
1007//    // Example sending a request using the ListMembersRequest method.
1008//    req, resp := client.ListMembersRequest(params)
1009//
1010//    err := req.Send()
1011//    if err == nil { // resp is now filled
1012//        fmt.Println(resp)
1013//    }
1014//
1015// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/ListMembers
1016func (c *Detective) ListMembersRequest(input *ListMembersInput) (req *request.Request, output *ListMembersOutput) {
1017	op := &request.Operation{
1018		Name:       opListMembers,
1019		HTTPMethod: "POST",
1020		HTTPPath:   "/graph/members/list",
1021		Paginator: &request.Paginator{
1022			InputTokens:     []string{"NextToken"},
1023			OutputTokens:    []string{"NextToken"},
1024			LimitToken:      "MaxResults",
1025			TruncationToken: "",
1026		},
1027	}
1028
1029	if input == nil {
1030		input = &ListMembersInput{}
1031	}
1032
1033	output = &ListMembersOutput{}
1034	req = c.newRequest(op, input, output)
1035	return
1036}
1037
1038// ListMembers API operation for Amazon Detective.
1039//
1040// Retrieves the list of member accounts for a behavior graph. Does not return
1041// member accounts that were removed from the behavior graph.
1042//
1043// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1044// with awserr.Error's Code and Message methods to get detailed information about
1045// the error.
1046//
1047// See the AWS API reference guide for Amazon Detective's
1048// API operation ListMembers for usage and error information.
1049//
1050// Returned Error Types:
1051//   * InternalServerException
1052//   The request was valid but failed because of a problem with the service.
1053//
1054//   * ResourceNotFoundException
1055//   The request refers to a nonexistent resource.
1056//
1057//   * ValidationException
1058//   The request parameters are invalid.
1059//
1060// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/ListMembers
1061func (c *Detective) ListMembers(input *ListMembersInput) (*ListMembersOutput, error) {
1062	req, out := c.ListMembersRequest(input)
1063	return out, req.Send()
1064}
1065
1066// ListMembersWithContext is the same as ListMembers with the addition of
1067// the ability to pass a context and additional request options.
1068//
1069// See ListMembers for details on how to use this API operation.
1070//
1071// The context must be non-nil and will be used for request cancellation. If
1072// the context is nil a panic will occur. In the future the SDK may create
1073// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1074// for more information on using Contexts.
1075func (c *Detective) ListMembersWithContext(ctx aws.Context, input *ListMembersInput, opts ...request.Option) (*ListMembersOutput, error) {
1076	req, out := c.ListMembersRequest(input)
1077	req.SetContext(ctx)
1078	req.ApplyOptions(opts...)
1079	return out, req.Send()
1080}
1081
1082// ListMembersPages iterates over the pages of a ListMembers operation,
1083// calling the "fn" function with the response data for each page. To stop
1084// iterating, return false from the fn function.
1085//
1086// See ListMembers method for more information on how to use this operation.
1087//
1088// Note: This operation can generate multiple requests to a service.
1089//
1090//    // Example iterating over at most 3 pages of a ListMembers operation.
1091//    pageNum := 0
1092//    err := client.ListMembersPages(params,
1093//        func(page *detective.ListMembersOutput, lastPage bool) bool {
1094//            pageNum++
1095//            fmt.Println(page)
1096//            return pageNum <= 3
1097//        })
1098//
1099func (c *Detective) ListMembersPages(input *ListMembersInput, fn func(*ListMembersOutput, bool) bool) error {
1100	return c.ListMembersPagesWithContext(aws.BackgroundContext(), input, fn)
1101}
1102
1103// ListMembersPagesWithContext same as ListMembersPages except
1104// it takes a Context and allows setting request options on the pages.
1105//
1106// The context must be non-nil and will be used for request cancellation. If
1107// the context is nil a panic will occur. In the future the SDK may create
1108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1109// for more information on using Contexts.
1110func (c *Detective) ListMembersPagesWithContext(ctx aws.Context, input *ListMembersInput, fn func(*ListMembersOutput, bool) bool, opts ...request.Option) error {
1111	p := request.Pagination{
1112		NewRequest: func() (*request.Request, error) {
1113			var inCpy *ListMembersInput
1114			if input != nil {
1115				tmp := *input
1116				inCpy = &tmp
1117			}
1118			req, _ := c.ListMembersRequest(inCpy)
1119			req.SetContext(ctx)
1120			req.ApplyOptions(opts...)
1121			return req, nil
1122		},
1123	}
1124
1125	for p.Next() {
1126		if !fn(p.Page().(*ListMembersOutput), !p.HasNextPage()) {
1127			break
1128		}
1129	}
1130
1131	return p.Err()
1132}
1133
1134const opRejectInvitation = "RejectInvitation"
1135
1136// RejectInvitationRequest generates a "aws/request.Request" representing the
1137// client's request for the RejectInvitation operation. The "output" return
1138// value will be populated with the request's response once the request completes
1139// successfully.
1140//
1141// Use "Send" method on the returned Request to send the API call to the service.
1142// the "output" return value is not valid until after Send returns without error.
1143//
1144// See RejectInvitation for more information on using the RejectInvitation
1145// API call, and error handling.
1146//
1147// This method is useful when you want to inject custom logic or configuration
1148// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1149//
1150//
1151//    // Example sending a request using the RejectInvitationRequest method.
1152//    req, resp := client.RejectInvitationRequest(params)
1153//
1154//    err := req.Send()
1155//    if err == nil { // resp is now filled
1156//        fmt.Println(resp)
1157//    }
1158//
1159// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/RejectInvitation
1160func (c *Detective) RejectInvitationRequest(input *RejectInvitationInput) (req *request.Request, output *RejectInvitationOutput) {
1161	op := &request.Operation{
1162		Name:       opRejectInvitation,
1163		HTTPMethod: "POST",
1164		HTTPPath:   "/invitation/removal",
1165	}
1166
1167	if input == nil {
1168		input = &RejectInvitationInput{}
1169	}
1170
1171	output = &RejectInvitationOutput{}
1172	req = c.newRequest(op, input, output)
1173	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1174	return
1175}
1176
1177// RejectInvitation API operation for Amazon Detective.
1178//
1179// Rejects an invitation to contribute the account data to a behavior graph.
1180// This operation must be called by a member account that has the INVITED status.
1181//
1182// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1183// with awserr.Error's Code and Message methods to get detailed information about
1184// the error.
1185//
1186// See the AWS API reference guide for Amazon Detective's
1187// API operation RejectInvitation for usage and error information.
1188//
1189// Returned Error Types:
1190//   * ConflictException
1191//   The request attempted an invalid action.
1192//
1193//   * InternalServerException
1194//   The request was valid but failed because of a problem with the service.
1195//
1196//   * ResourceNotFoundException
1197//   The request refers to a nonexistent resource.
1198//
1199//   * ValidationException
1200//   The request parameters are invalid.
1201//
1202// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/RejectInvitation
1203func (c *Detective) RejectInvitation(input *RejectInvitationInput) (*RejectInvitationOutput, error) {
1204	req, out := c.RejectInvitationRequest(input)
1205	return out, req.Send()
1206}
1207
1208// RejectInvitationWithContext is the same as RejectInvitation with the addition of
1209// the ability to pass a context and additional request options.
1210//
1211// See RejectInvitation for details on how to use this API operation.
1212//
1213// The context must be non-nil and will be used for request cancellation. If
1214// the context is nil a panic will occur. In the future the SDK may create
1215// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1216// for more information on using Contexts.
1217func (c *Detective) RejectInvitationWithContext(ctx aws.Context, input *RejectInvitationInput, opts ...request.Option) (*RejectInvitationOutput, error) {
1218	req, out := c.RejectInvitationRequest(input)
1219	req.SetContext(ctx)
1220	req.ApplyOptions(opts...)
1221	return out, req.Send()
1222}
1223
1224const opStartMonitoringMember = "StartMonitoringMember"
1225
1226// StartMonitoringMemberRequest generates a "aws/request.Request" representing the
1227// client's request for the StartMonitoringMember operation. The "output" return
1228// value will be populated with the request's response once the request completes
1229// successfully.
1230//
1231// Use "Send" method on the returned Request to send the API call to the service.
1232// the "output" return value is not valid until after Send returns without error.
1233//
1234// See StartMonitoringMember for more information on using the StartMonitoringMember
1235// API call, and error handling.
1236//
1237// This method is useful when you want to inject custom logic or configuration
1238// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1239//
1240//
1241//    // Example sending a request using the StartMonitoringMemberRequest method.
1242//    req, resp := client.StartMonitoringMemberRequest(params)
1243//
1244//    err := req.Send()
1245//    if err == nil { // resp is now filled
1246//        fmt.Println(resp)
1247//    }
1248//
1249// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/StartMonitoringMember
1250func (c *Detective) StartMonitoringMemberRequest(input *StartMonitoringMemberInput) (req *request.Request, output *StartMonitoringMemberOutput) {
1251	op := &request.Operation{
1252		Name:       opStartMonitoringMember,
1253		HTTPMethod: "POST",
1254		HTTPPath:   "/graph/member/monitoringstate",
1255	}
1256
1257	if input == nil {
1258		input = &StartMonitoringMemberInput{}
1259	}
1260
1261	output = &StartMonitoringMemberOutput{}
1262	req = c.newRequest(op, input, output)
1263	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1264	return
1265}
1266
1267// StartMonitoringMember API operation for Amazon Detective.
1268//
1269// Sends a request to enable data ingest for a member account that has a status
1270// of ACCEPTED_BUT_DISABLED.
1271//
1272// For valid member accounts, the status is updated as follows.
1273//
1274//    * If Detective enabled the member account, then the new status is ENABLED.
1275//
1276//    * If Detective cannot enable the member account, the status remains ACCEPTED_BUT_DISABLED.
1277//
1278// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1279// with awserr.Error's Code and Message methods to get detailed information about
1280// the error.
1281//
1282// See the AWS API reference guide for Amazon Detective's
1283// API operation StartMonitoringMember for usage and error information.
1284//
1285// Returned Error Types:
1286//   * ConflictException
1287//   The request attempted an invalid action.
1288//
1289//   * InternalServerException
1290//   The request was valid but failed because of a problem with the service.
1291//
1292//   * ResourceNotFoundException
1293//   The request refers to a nonexistent resource.
1294//
1295//   * ServiceQuotaExceededException
1296//   This request cannot be completed for one of the following reasons.
1297//
1298//      * The request would cause the number of member accounts in the behavior
1299//      graph to exceed the maximum allowed. A behavior graph cannot have more
1300//      than 1000 member accounts.
1301//
1302//      * The request would cause the data rate for the behavior graph to exceed
1303//      the maximum allowed.
1304//
1305//      * Detective is unable to verify the data rate for the member account.
1306//      This is usually because the member account is not enrolled in Amazon GuardDuty.
1307//
1308//   * ValidationException
1309//   The request parameters are invalid.
1310//
1311// See also, https://docs.aws.amazon.com/goto/WebAPI/detective-2018-10-26/StartMonitoringMember
1312func (c *Detective) StartMonitoringMember(input *StartMonitoringMemberInput) (*StartMonitoringMemberOutput, error) {
1313	req, out := c.StartMonitoringMemberRequest(input)
1314	return out, req.Send()
1315}
1316
1317// StartMonitoringMemberWithContext is the same as StartMonitoringMember with the addition of
1318// the ability to pass a context and additional request options.
1319//
1320// See StartMonitoringMember for details on how to use this API operation.
1321//
1322// The context must be non-nil and will be used for request cancellation. If
1323// the context is nil a panic will occur. In the future the SDK may create
1324// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1325// for more information on using Contexts.
1326func (c *Detective) StartMonitoringMemberWithContext(ctx aws.Context, input *StartMonitoringMemberInput, opts ...request.Option) (*StartMonitoringMemberOutput, error) {
1327	req, out := c.StartMonitoringMemberRequest(input)
1328	req.SetContext(ctx)
1329	req.ApplyOptions(opts...)
1330	return out, req.Send()
1331}
1332
1333type AcceptInvitationInput struct {
1334	_ struct{} `type:"structure"`
1335
1336	// The ARN of the behavior graph that the member account is accepting the invitation
1337	// for.
1338	//
1339	// The member account status in the behavior graph must be INVITED.
1340	//
1341	// GraphArn is a required field
1342	GraphArn *string `type:"string" required:"true"`
1343}
1344
1345// String returns the string representation
1346func (s AcceptInvitationInput) String() string {
1347	return awsutil.Prettify(s)
1348}
1349
1350// GoString returns the string representation
1351func (s AcceptInvitationInput) GoString() string {
1352	return s.String()
1353}
1354
1355// Validate inspects the fields of the type to determine if they are valid.
1356func (s *AcceptInvitationInput) Validate() error {
1357	invalidParams := request.ErrInvalidParams{Context: "AcceptInvitationInput"}
1358	if s.GraphArn == nil {
1359		invalidParams.Add(request.NewErrParamRequired("GraphArn"))
1360	}
1361
1362	if invalidParams.Len() > 0 {
1363		return invalidParams
1364	}
1365	return nil
1366}
1367
1368// SetGraphArn sets the GraphArn field's value.
1369func (s *AcceptInvitationInput) SetGraphArn(v string) *AcceptInvitationInput {
1370	s.GraphArn = &v
1371	return s
1372}
1373
1374type AcceptInvitationOutput struct {
1375	_ struct{} `type:"structure"`
1376}
1377
1378// String returns the string representation
1379func (s AcceptInvitationOutput) String() string {
1380	return awsutil.Prettify(s)
1381}
1382
1383// GoString returns the string representation
1384func (s AcceptInvitationOutput) GoString() string {
1385	return s.String()
1386}
1387
1388// An AWS account that is the master of or a member of a behavior graph.
1389type Account struct {
1390	_ struct{} `type:"structure"`
1391
1392	// The account identifier of the AWS account.
1393	//
1394	// AccountId is a required field
1395	AccountId *string `min:"12" type:"string" required:"true"`
1396
1397	// The AWS account root user email address for the AWS account.
1398	//
1399	// EmailAddress is a required field
1400	EmailAddress *string `min:"1" type:"string" required:"true"`
1401}
1402
1403// String returns the string representation
1404func (s Account) String() string {
1405	return awsutil.Prettify(s)
1406}
1407
1408// GoString returns the string representation
1409func (s Account) GoString() string {
1410	return s.String()
1411}
1412
1413// Validate inspects the fields of the type to determine if they are valid.
1414func (s *Account) Validate() error {
1415	invalidParams := request.ErrInvalidParams{Context: "Account"}
1416	if s.AccountId == nil {
1417		invalidParams.Add(request.NewErrParamRequired("AccountId"))
1418	}
1419	if s.AccountId != nil && len(*s.AccountId) < 12 {
1420		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
1421	}
1422	if s.EmailAddress == nil {
1423		invalidParams.Add(request.NewErrParamRequired("EmailAddress"))
1424	}
1425	if s.EmailAddress != nil && len(*s.EmailAddress) < 1 {
1426		invalidParams.Add(request.NewErrParamMinLen("EmailAddress", 1))
1427	}
1428
1429	if invalidParams.Len() > 0 {
1430		return invalidParams
1431	}
1432	return nil
1433}
1434
1435// SetAccountId sets the AccountId field's value.
1436func (s *Account) SetAccountId(v string) *Account {
1437	s.AccountId = &v
1438	return s
1439}
1440
1441// SetEmailAddress sets the EmailAddress field's value.
1442func (s *Account) SetEmailAddress(v string) *Account {
1443	s.EmailAddress = &v
1444	return s
1445}
1446
1447// The request attempted an invalid action.
1448type ConflictException struct {
1449	_            struct{}                  `type:"structure"`
1450	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1451
1452	Message_ *string `locationName:"Message" type:"string"`
1453}
1454
1455// String returns the string representation
1456func (s ConflictException) String() string {
1457	return awsutil.Prettify(s)
1458}
1459
1460// GoString returns the string representation
1461func (s ConflictException) GoString() string {
1462	return s.String()
1463}
1464
1465func newErrorConflictException(v protocol.ResponseMetadata) error {
1466	return &ConflictException{
1467		RespMetadata: v,
1468	}
1469}
1470
1471// Code returns the exception type name.
1472func (s *ConflictException) Code() string {
1473	return "ConflictException"
1474}
1475
1476// Message returns the exception's message.
1477func (s *ConflictException) Message() string {
1478	if s.Message_ != nil {
1479		return *s.Message_
1480	}
1481	return ""
1482}
1483
1484// OrigErr always returns nil, satisfies awserr.Error interface.
1485func (s *ConflictException) OrigErr() error {
1486	return nil
1487}
1488
1489func (s *ConflictException) Error() string {
1490	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
1491}
1492
1493// Status code returns the HTTP status code for the request's response error.
1494func (s *ConflictException) StatusCode() int {
1495	return s.RespMetadata.StatusCode
1496}
1497
1498// RequestID returns the service's response RequestID for request.
1499func (s *ConflictException) RequestID() string {
1500	return s.RespMetadata.RequestID
1501}
1502
1503type CreateGraphInput struct {
1504	_ struct{} `type:"structure"`
1505}
1506
1507// String returns the string representation
1508func (s CreateGraphInput) String() string {
1509	return awsutil.Prettify(s)
1510}
1511
1512// GoString returns the string representation
1513func (s CreateGraphInput) GoString() string {
1514	return s.String()
1515}
1516
1517type CreateGraphOutput struct {
1518	_ struct{} `type:"structure"`
1519
1520	// The ARN of the new behavior graph.
1521	GraphArn *string `type:"string"`
1522}
1523
1524// String returns the string representation
1525func (s CreateGraphOutput) String() string {
1526	return awsutil.Prettify(s)
1527}
1528
1529// GoString returns the string representation
1530func (s CreateGraphOutput) GoString() string {
1531	return s.String()
1532}
1533
1534// SetGraphArn sets the GraphArn field's value.
1535func (s *CreateGraphOutput) SetGraphArn(v string) *CreateGraphOutput {
1536	s.GraphArn = &v
1537	return s
1538}
1539
1540type CreateMembersInput struct {
1541	_ struct{} `type:"structure"`
1542
1543	// The list of AWS accounts to invite to become member accounts in the behavior
1544	// graph. For each invited account, the account list contains the account identifier
1545	// and the AWS account root user email address.
1546	//
1547	// Accounts is a required field
1548	Accounts []*Account `min:"1" type:"list" required:"true"`
1549
1550	// The ARN of the behavior graph to invite the member accounts to contribute
1551	// their data to.
1552	//
1553	// GraphArn is a required field
1554	GraphArn *string `type:"string" required:"true"`
1555
1556	// Customized message text to include in the invitation email message to the
1557	// invited member accounts.
1558	Message *string `min:"1" type:"string"`
1559}
1560
1561// String returns the string representation
1562func (s CreateMembersInput) String() string {
1563	return awsutil.Prettify(s)
1564}
1565
1566// GoString returns the string representation
1567func (s CreateMembersInput) GoString() string {
1568	return s.String()
1569}
1570
1571// Validate inspects the fields of the type to determine if they are valid.
1572func (s *CreateMembersInput) Validate() error {
1573	invalidParams := request.ErrInvalidParams{Context: "CreateMembersInput"}
1574	if s.Accounts == nil {
1575		invalidParams.Add(request.NewErrParamRequired("Accounts"))
1576	}
1577	if s.Accounts != nil && len(s.Accounts) < 1 {
1578		invalidParams.Add(request.NewErrParamMinLen("Accounts", 1))
1579	}
1580	if s.GraphArn == nil {
1581		invalidParams.Add(request.NewErrParamRequired("GraphArn"))
1582	}
1583	if s.Message != nil && len(*s.Message) < 1 {
1584		invalidParams.Add(request.NewErrParamMinLen("Message", 1))
1585	}
1586	if s.Accounts != nil {
1587		for i, v := range s.Accounts {
1588			if v == nil {
1589				continue
1590			}
1591			if err := v.Validate(); err != nil {
1592				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Accounts", i), err.(request.ErrInvalidParams))
1593			}
1594		}
1595	}
1596
1597	if invalidParams.Len() > 0 {
1598		return invalidParams
1599	}
1600	return nil
1601}
1602
1603// SetAccounts sets the Accounts field's value.
1604func (s *CreateMembersInput) SetAccounts(v []*Account) *CreateMembersInput {
1605	s.Accounts = v
1606	return s
1607}
1608
1609// SetGraphArn sets the GraphArn field's value.
1610func (s *CreateMembersInput) SetGraphArn(v string) *CreateMembersInput {
1611	s.GraphArn = &v
1612	return s
1613}
1614
1615// SetMessage sets the Message field's value.
1616func (s *CreateMembersInput) SetMessage(v string) *CreateMembersInput {
1617	s.Message = &v
1618	return s
1619}
1620
1621type CreateMembersOutput struct {
1622	_ struct{} `type:"structure"`
1623
1624	// The set of member account invitation requests that Detective was able to
1625	// process. This includes accounts that are being verified, that failed verification,
1626	// and that passed verification and are being sent an invitation.
1627	Members []*MemberDetail `type:"list"`
1628
1629	// The list of accounts for which Detective was unable to process the invitation
1630	// request. For each account, the list provides the reason why the request could
1631	// not be processed. The list includes accounts that are already member accounts
1632	// in the behavior graph.
1633	UnprocessedAccounts []*UnprocessedAccount `type:"list"`
1634}
1635
1636// String returns the string representation
1637func (s CreateMembersOutput) String() string {
1638	return awsutil.Prettify(s)
1639}
1640
1641// GoString returns the string representation
1642func (s CreateMembersOutput) GoString() string {
1643	return s.String()
1644}
1645
1646// SetMembers sets the Members field's value.
1647func (s *CreateMembersOutput) SetMembers(v []*MemberDetail) *CreateMembersOutput {
1648	s.Members = v
1649	return s
1650}
1651
1652// SetUnprocessedAccounts sets the UnprocessedAccounts field's value.
1653func (s *CreateMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccount) *CreateMembersOutput {
1654	s.UnprocessedAccounts = v
1655	return s
1656}
1657
1658type DeleteGraphInput struct {
1659	_ struct{} `type:"structure"`
1660
1661	// The ARN of the behavior graph to disable.
1662	//
1663	// GraphArn is a required field
1664	GraphArn *string `type:"string" required:"true"`
1665}
1666
1667// String returns the string representation
1668func (s DeleteGraphInput) String() string {
1669	return awsutil.Prettify(s)
1670}
1671
1672// GoString returns the string representation
1673func (s DeleteGraphInput) GoString() string {
1674	return s.String()
1675}
1676
1677// Validate inspects the fields of the type to determine if they are valid.
1678func (s *DeleteGraphInput) Validate() error {
1679	invalidParams := request.ErrInvalidParams{Context: "DeleteGraphInput"}
1680	if s.GraphArn == nil {
1681		invalidParams.Add(request.NewErrParamRequired("GraphArn"))
1682	}
1683
1684	if invalidParams.Len() > 0 {
1685		return invalidParams
1686	}
1687	return nil
1688}
1689
1690// SetGraphArn sets the GraphArn field's value.
1691func (s *DeleteGraphInput) SetGraphArn(v string) *DeleteGraphInput {
1692	s.GraphArn = &v
1693	return s
1694}
1695
1696type DeleteGraphOutput struct {
1697	_ struct{} `type:"structure"`
1698}
1699
1700// String returns the string representation
1701func (s DeleteGraphOutput) String() string {
1702	return awsutil.Prettify(s)
1703}
1704
1705// GoString returns the string representation
1706func (s DeleteGraphOutput) GoString() string {
1707	return s.String()
1708}
1709
1710type DeleteMembersInput struct {
1711	_ struct{} `type:"structure"`
1712
1713	// The list of AWS account identifiers for the member accounts to delete from
1714	// the behavior graph.
1715	//
1716	// AccountIds is a required field
1717	AccountIds []*string `min:"1" type:"list" required:"true"`
1718
1719	// The ARN of the behavior graph to delete members from.
1720	//
1721	// GraphArn is a required field
1722	GraphArn *string `type:"string" required:"true"`
1723}
1724
1725// String returns the string representation
1726func (s DeleteMembersInput) String() string {
1727	return awsutil.Prettify(s)
1728}
1729
1730// GoString returns the string representation
1731func (s DeleteMembersInput) GoString() string {
1732	return s.String()
1733}
1734
1735// Validate inspects the fields of the type to determine if they are valid.
1736func (s *DeleteMembersInput) Validate() error {
1737	invalidParams := request.ErrInvalidParams{Context: "DeleteMembersInput"}
1738	if s.AccountIds == nil {
1739		invalidParams.Add(request.NewErrParamRequired("AccountIds"))
1740	}
1741	if s.AccountIds != nil && len(s.AccountIds) < 1 {
1742		invalidParams.Add(request.NewErrParamMinLen("AccountIds", 1))
1743	}
1744	if s.GraphArn == nil {
1745		invalidParams.Add(request.NewErrParamRequired("GraphArn"))
1746	}
1747
1748	if invalidParams.Len() > 0 {
1749		return invalidParams
1750	}
1751	return nil
1752}
1753
1754// SetAccountIds sets the AccountIds field's value.
1755func (s *DeleteMembersInput) SetAccountIds(v []*string) *DeleteMembersInput {
1756	s.AccountIds = v
1757	return s
1758}
1759
1760// SetGraphArn sets the GraphArn field's value.
1761func (s *DeleteMembersInput) SetGraphArn(v string) *DeleteMembersInput {
1762	s.GraphArn = &v
1763	return s
1764}
1765
1766type DeleteMembersOutput struct {
1767	_ struct{} `type:"structure"`
1768
1769	// The list of AWS account identifiers for the member accounts that Detective
1770	// successfully deleted from the behavior graph.
1771	AccountIds []*string `min:"1" type:"list"`
1772
1773	// The list of member accounts that Detective was not able to delete from the
1774	// behavior graph. For each member account, provides the reason that the deletion
1775	// could not be processed.
1776	UnprocessedAccounts []*UnprocessedAccount `type:"list"`
1777}
1778
1779// String returns the string representation
1780func (s DeleteMembersOutput) String() string {
1781	return awsutil.Prettify(s)
1782}
1783
1784// GoString returns the string representation
1785func (s DeleteMembersOutput) GoString() string {
1786	return s.String()
1787}
1788
1789// SetAccountIds sets the AccountIds field's value.
1790func (s *DeleteMembersOutput) SetAccountIds(v []*string) *DeleteMembersOutput {
1791	s.AccountIds = v
1792	return s
1793}
1794
1795// SetUnprocessedAccounts sets the UnprocessedAccounts field's value.
1796func (s *DeleteMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccount) *DeleteMembersOutput {
1797	s.UnprocessedAccounts = v
1798	return s
1799}
1800
1801type DisassociateMembershipInput struct {
1802	_ struct{} `type:"structure"`
1803
1804	// The ARN of the behavior graph to remove the member account from.
1805	//
1806	// The member account's member status in the behavior graph must be ENABLED.
1807	//
1808	// GraphArn is a required field
1809	GraphArn *string `type:"string" required:"true"`
1810}
1811
1812// String returns the string representation
1813func (s DisassociateMembershipInput) String() string {
1814	return awsutil.Prettify(s)
1815}
1816
1817// GoString returns the string representation
1818func (s DisassociateMembershipInput) GoString() string {
1819	return s.String()
1820}
1821
1822// Validate inspects the fields of the type to determine if they are valid.
1823func (s *DisassociateMembershipInput) Validate() error {
1824	invalidParams := request.ErrInvalidParams{Context: "DisassociateMembershipInput"}
1825	if s.GraphArn == nil {
1826		invalidParams.Add(request.NewErrParamRequired("GraphArn"))
1827	}
1828
1829	if invalidParams.Len() > 0 {
1830		return invalidParams
1831	}
1832	return nil
1833}
1834
1835// SetGraphArn sets the GraphArn field's value.
1836func (s *DisassociateMembershipInput) SetGraphArn(v string) *DisassociateMembershipInput {
1837	s.GraphArn = &v
1838	return s
1839}
1840
1841type DisassociateMembershipOutput struct {
1842	_ struct{} `type:"structure"`
1843}
1844
1845// String returns the string representation
1846func (s DisassociateMembershipOutput) String() string {
1847	return awsutil.Prettify(s)
1848}
1849
1850// GoString returns the string representation
1851func (s DisassociateMembershipOutput) GoString() string {
1852	return s.String()
1853}
1854
1855type GetMembersInput struct {
1856	_ struct{} `type:"structure"`
1857
1858	// The list of AWS account identifiers for the member account for which to return
1859	// member details.
1860	//
1861	// You cannot use GetMembers to retrieve information about member accounts that
1862	// were removed from the behavior graph.
1863	//
1864	// AccountIds is a required field
1865	AccountIds []*string `min:"1" type:"list" required:"true"`
1866
1867	// The ARN of the behavior graph for which to request the member details.
1868	//
1869	// GraphArn is a required field
1870	GraphArn *string `type:"string" required:"true"`
1871}
1872
1873// String returns the string representation
1874func (s GetMembersInput) String() string {
1875	return awsutil.Prettify(s)
1876}
1877
1878// GoString returns the string representation
1879func (s GetMembersInput) GoString() string {
1880	return s.String()
1881}
1882
1883// Validate inspects the fields of the type to determine if they are valid.
1884func (s *GetMembersInput) Validate() error {
1885	invalidParams := request.ErrInvalidParams{Context: "GetMembersInput"}
1886	if s.AccountIds == nil {
1887		invalidParams.Add(request.NewErrParamRequired("AccountIds"))
1888	}
1889	if s.AccountIds != nil && len(s.AccountIds) < 1 {
1890		invalidParams.Add(request.NewErrParamMinLen("AccountIds", 1))
1891	}
1892	if s.GraphArn == nil {
1893		invalidParams.Add(request.NewErrParamRequired("GraphArn"))
1894	}
1895
1896	if invalidParams.Len() > 0 {
1897		return invalidParams
1898	}
1899	return nil
1900}
1901
1902// SetAccountIds sets the AccountIds field's value.
1903func (s *GetMembersInput) SetAccountIds(v []*string) *GetMembersInput {
1904	s.AccountIds = v
1905	return s
1906}
1907
1908// SetGraphArn sets the GraphArn field's value.
1909func (s *GetMembersInput) SetGraphArn(v string) *GetMembersInput {
1910	s.GraphArn = &v
1911	return s
1912}
1913
1914type GetMembersOutput struct {
1915	_ struct{} `type:"structure"`
1916
1917	// The member account details that Detective is returning in response to the
1918	// request.
1919	MemberDetails []*MemberDetail `type:"list"`
1920
1921	// The requested member accounts for which Detective was unable to return member
1922	// details.
1923	//
1924	// For each account, provides the reason why the request could not be processed.
1925	UnprocessedAccounts []*UnprocessedAccount `type:"list"`
1926}
1927
1928// String returns the string representation
1929func (s GetMembersOutput) String() string {
1930	return awsutil.Prettify(s)
1931}
1932
1933// GoString returns the string representation
1934func (s GetMembersOutput) GoString() string {
1935	return s.String()
1936}
1937
1938// SetMemberDetails sets the MemberDetails field's value.
1939func (s *GetMembersOutput) SetMemberDetails(v []*MemberDetail) *GetMembersOutput {
1940	s.MemberDetails = v
1941	return s
1942}
1943
1944// SetUnprocessedAccounts sets the UnprocessedAccounts field's value.
1945func (s *GetMembersOutput) SetUnprocessedAccounts(v []*UnprocessedAccount) *GetMembersOutput {
1946	s.UnprocessedAccounts = v
1947	return s
1948}
1949
1950// A behavior graph in Detective.
1951type Graph struct {
1952	_ struct{} `type:"structure"`
1953
1954	// The ARN of the behavior graph.
1955	Arn *string `type:"string"`
1956
1957	// The date and time that the behavior graph was created. The value is in milliseconds
1958	// since the epoch.
1959	CreatedTime *time.Time `type:"timestamp"`
1960}
1961
1962// String returns the string representation
1963func (s Graph) String() string {
1964	return awsutil.Prettify(s)
1965}
1966
1967// GoString returns the string representation
1968func (s Graph) GoString() string {
1969	return s.String()
1970}
1971
1972// SetArn sets the Arn field's value.
1973func (s *Graph) SetArn(v string) *Graph {
1974	s.Arn = &v
1975	return s
1976}
1977
1978// SetCreatedTime sets the CreatedTime field's value.
1979func (s *Graph) SetCreatedTime(v time.Time) *Graph {
1980	s.CreatedTime = &v
1981	return s
1982}
1983
1984// The request was valid but failed because of a problem with the service.
1985type InternalServerException struct {
1986	_            struct{}                  `type:"structure"`
1987	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
1988
1989	Message_ *string `locationName:"Message" type:"string"`
1990}
1991
1992// String returns the string representation
1993func (s InternalServerException) String() string {
1994	return awsutil.Prettify(s)
1995}
1996
1997// GoString returns the string representation
1998func (s InternalServerException) GoString() string {
1999	return s.String()
2000}
2001
2002func newErrorInternalServerException(v protocol.ResponseMetadata) error {
2003	return &InternalServerException{
2004		RespMetadata: v,
2005	}
2006}
2007
2008// Code returns the exception type name.
2009func (s *InternalServerException) Code() string {
2010	return "InternalServerException"
2011}
2012
2013// Message returns the exception's message.
2014func (s *InternalServerException) Message() string {
2015	if s.Message_ != nil {
2016		return *s.Message_
2017	}
2018	return ""
2019}
2020
2021// OrigErr always returns nil, satisfies awserr.Error interface.
2022func (s *InternalServerException) OrigErr() error {
2023	return nil
2024}
2025
2026func (s *InternalServerException) Error() string {
2027	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2028}
2029
2030// Status code returns the HTTP status code for the request's response error.
2031func (s *InternalServerException) StatusCode() int {
2032	return s.RespMetadata.StatusCode
2033}
2034
2035// RequestID returns the service's response RequestID for request.
2036func (s *InternalServerException) RequestID() string {
2037	return s.RespMetadata.RequestID
2038}
2039
2040type ListGraphsInput struct {
2041	_ struct{} `type:"structure"`
2042
2043	// The maximum number of graphs to return at a time. The total must be less
2044	// than the overall limit on the number of results to return, which is currently
2045	// 200.
2046	MaxResults *int64 `min:"1" type:"integer"`
2047
2048	// For requests to get the next page of results, the pagination token that was
2049	// returned with the previous set of results. The initial request does not include
2050	// a pagination token.
2051	NextToken *string `min:"1" type:"string"`
2052}
2053
2054// String returns the string representation
2055func (s ListGraphsInput) String() string {
2056	return awsutil.Prettify(s)
2057}
2058
2059// GoString returns the string representation
2060func (s ListGraphsInput) GoString() string {
2061	return s.String()
2062}
2063
2064// Validate inspects the fields of the type to determine if they are valid.
2065func (s *ListGraphsInput) Validate() error {
2066	invalidParams := request.ErrInvalidParams{Context: "ListGraphsInput"}
2067	if s.MaxResults != nil && *s.MaxResults < 1 {
2068		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
2069	}
2070	if s.NextToken != nil && len(*s.NextToken) < 1 {
2071		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
2072	}
2073
2074	if invalidParams.Len() > 0 {
2075		return invalidParams
2076	}
2077	return nil
2078}
2079
2080// SetMaxResults sets the MaxResults field's value.
2081func (s *ListGraphsInput) SetMaxResults(v int64) *ListGraphsInput {
2082	s.MaxResults = &v
2083	return s
2084}
2085
2086// SetNextToken sets the NextToken field's value.
2087func (s *ListGraphsInput) SetNextToken(v string) *ListGraphsInput {
2088	s.NextToken = &v
2089	return s
2090}
2091
2092type ListGraphsOutput struct {
2093	_ struct{} `type:"structure"`
2094
2095	// A list of behavior graphs that the account is a master for.
2096	GraphList []*Graph `type:"list"`
2097
2098	// If there are more behavior graphs remaining in the results, then this is
2099	// the pagination token to use to request the next page of behavior graphs.
2100	NextToken *string `min:"1" type:"string"`
2101}
2102
2103// String returns the string representation
2104func (s ListGraphsOutput) String() string {
2105	return awsutil.Prettify(s)
2106}
2107
2108// GoString returns the string representation
2109func (s ListGraphsOutput) GoString() string {
2110	return s.String()
2111}
2112
2113// SetGraphList sets the GraphList field's value.
2114func (s *ListGraphsOutput) SetGraphList(v []*Graph) *ListGraphsOutput {
2115	s.GraphList = v
2116	return s
2117}
2118
2119// SetNextToken sets the NextToken field's value.
2120func (s *ListGraphsOutput) SetNextToken(v string) *ListGraphsOutput {
2121	s.NextToken = &v
2122	return s
2123}
2124
2125type ListInvitationsInput struct {
2126	_ struct{} `type:"structure"`
2127
2128	// The maximum number of behavior graph invitations to return in the response.
2129	// The total must be less than the overall limit on the number of results to
2130	// return, which is currently 200.
2131	MaxResults *int64 `min:"1" type:"integer"`
2132
2133	// For requests to retrieve the next page of results, the pagination token that
2134	// was returned with the previous page of results. The initial request does
2135	// not include a pagination token.
2136	NextToken *string `min:"1" type:"string"`
2137}
2138
2139// String returns the string representation
2140func (s ListInvitationsInput) String() string {
2141	return awsutil.Prettify(s)
2142}
2143
2144// GoString returns the string representation
2145func (s ListInvitationsInput) GoString() string {
2146	return s.String()
2147}
2148
2149// Validate inspects the fields of the type to determine if they are valid.
2150func (s *ListInvitationsInput) Validate() error {
2151	invalidParams := request.ErrInvalidParams{Context: "ListInvitationsInput"}
2152	if s.MaxResults != nil && *s.MaxResults < 1 {
2153		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
2154	}
2155	if s.NextToken != nil && len(*s.NextToken) < 1 {
2156		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
2157	}
2158
2159	if invalidParams.Len() > 0 {
2160		return invalidParams
2161	}
2162	return nil
2163}
2164
2165// SetMaxResults sets the MaxResults field's value.
2166func (s *ListInvitationsInput) SetMaxResults(v int64) *ListInvitationsInput {
2167	s.MaxResults = &v
2168	return s
2169}
2170
2171// SetNextToken sets the NextToken field's value.
2172func (s *ListInvitationsInput) SetNextToken(v string) *ListInvitationsInput {
2173	s.NextToken = &v
2174	return s
2175}
2176
2177type ListInvitationsOutput struct {
2178	_ struct{} `type:"structure"`
2179
2180	// The list of behavior graphs for which the member account has open or accepted
2181	// invitations.
2182	Invitations []*MemberDetail `type:"list"`
2183
2184	// If there are more behavior graphs remaining in the results, then this is
2185	// the pagination token to use to request the next page of behavior graphs.
2186	NextToken *string `min:"1" type:"string"`
2187}
2188
2189// String returns the string representation
2190func (s ListInvitationsOutput) String() string {
2191	return awsutil.Prettify(s)
2192}
2193
2194// GoString returns the string representation
2195func (s ListInvitationsOutput) GoString() string {
2196	return s.String()
2197}
2198
2199// SetInvitations sets the Invitations field's value.
2200func (s *ListInvitationsOutput) SetInvitations(v []*MemberDetail) *ListInvitationsOutput {
2201	s.Invitations = v
2202	return s
2203}
2204
2205// SetNextToken sets the NextToken field's value.
2206func (s *ListInvitationsOutput) SetNextToken(v string) *ListInvitationsOutput {
2207	s.NextToken = &v
2208	return s
2209}
2210
2211type ListMembersInput struct {
2212	_ struct{} `type:"structure"`
2213
2214	// The ARN of the behavior graph for which to retrieve the list of member accounts.
2215	//
2216	// GraphArn is a required field
2217	GraphArn *string `type:"string" required:"true"`
2218
2219	// The maximum number of member accounts to include in the response. The total
2220	// must be less than the overall limit on the number of results to return, which
2221	// is currently 200.
2222	MaxResults *int64 `min:"1" type:"integer"`
2223
2224	// For requests to retrieve the next page of member account results, the pagination
2225	// token that was returned with the previous page of results. The initial request
2226	// does not include a pagination token.
2227	NextToken *string `min:"1" type:"string"`
2228}
2229
2230// String returns the string representation
2231func (s ListMembersInput) String() string {
2232	return awsutil.Prettify(s)
2233}
2234
2235// GoString returns the string representation
2236func (s ListMembersInput) GoString() string {
2237	return s.String()
2238}
2239
2240// Validate inspects the fields of the type to determine if they are valid.
2241func (s *ListMembersInput) Validate() error {
2242	invalidParams := request.ErrInvalidParams{Context: "ListMembersInput"}
2243	if s.GraphArn == nil {
2244		invalidParams.Add(request.NewErrParamRequired("GraphArn"))
2245	}
2246	if s.MaxResults != nil && *s.MaxResults < 1 {
2247		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
2248	}
2249	if s.NextToken != nil && len(*s.NextToken) < 1 {
2250		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
2251	}
2252
2253	if invalidParams.Len() > 0 {
2254		return invalidParams
2255	}
2256	return nil
2257}
2258
2259// SetGraphArn sets the GraphArn field's value.
2260func (s *ListMembersInput) SetGraphArn(v string) *ListMembersInput {
2261	s.GraphArn = &v
2262	return s
2263}
2264
2265// SetMaxResults sets the MaxResults field's value.
2266func (s *ListMembersInput) SetMaxResults(v int64) *ListMembersInput {
2267	s.MaxResults = &v
2268	return s
2269}
2270
2271// SetNextToken sets the NextToken field's value.
2272func (s *ListMembersInput) SetNextToken(v string) *ListMembersInput {
2273	s.NextToken = &v
2274	return s
2275}
2276
2277type ListMembersOutput struct {
2278	_ struct{} `type:"structure"`
2279
2280	// The list of member accounts in the behavior graph.
2281	//
2282	// The results include member accounts that did not pass verification and member
2283	// accounts that have not yet accepted the invitation to the behavior graph.
2284	// The results do not include member accounts that were removed from the behavior
2285	// graph.
2286	MemberDetails []*MemberDetail `type:"list"`
2287
2288	// If there are more member accounts remaining in the results, then this is
2289	// the pagination token to use to request the next page of member accounts.
2290	NextToken *string `min:"1" type:"string"`
2291}
2292
2293// String returns the string representation
2294func (s ListMembersOutput) String() string {
2295	return awsutil.Prettify(s)
2296}
2297
2298// GoString returns the string representation
2299func (s ListMembersOutput) GoString() string {
2300	return s.String()
2301}
2302
2303// SetMemberDetails sets the MemberDetails field's value.
2304func (s *ListMembersOutput) SetMemberDetails(v []*MemberDetail) *ListMembersOutput {
2305	s.MemberDetails = v
2306	return s
2307}
2308
2309// SetNextToken sets the NextToken field's value.
2310func (s *ListMembersOutput) SetNextToken(v string) *ListMembersOutput {
2311	s.NextToken = &v
2312	return s
2313}
2314
2315// Details about a member account that was invited to contribute to a behavior
2316// graph.
2317type MemberDetail struct {
2318	_ struct{} `type:"structure"`
2319
2320	// The AWS account identifier for the member account.
2321	AccountId *string `min:"12" type:"string"`
2322
2323	// For member accounts with a status of ACCEPTED_BUT_DISABLED, the reason that
2324	// the member account is not enabled.
2325	//
2326	// The reason can have one of the following values:
2327	//
2328	//    * VOLUME_TOO_HIGH - Indicates that adding the member account would cause
2329	//    the data volume for the behavior graph to be too high.
2330	//
2331	//    * VOLUME_UNKNOWN - Indicates that Detective is unable to verify the data
2332	//    volume for the member account. This is usually because the member account
2333	//    is not enrolled in Amazon GuardDuty.
2334	DisabledReason *string `type:"string" enum:"MemberDisabledReason"`
2335
2336	// The AWS account root user email address for the member account.
2337	EmailAddress *string `min:"1" type:"string"`
2338
2339	// The ARN of the behavior graph that the member account was invited to.
2340	GraphArn *string `type:"string"`
2341
2342	// The date and time that Detective sent the invitation to the member account.
2343	// The value is in milliseconds since the epoch.
2344	InvitedTime *time.Time `type:"timestamp"`
2345
2346	// The AWS account identifier of the master account for the behavior graph.
2347	MasterId *string `min:"12" type:"string"`
2348
2349	// The member account data volume as a percentage of the maximum allowed data
2350	// volume. 0 indicates 0 percent, and 100 indicates 100 percent.
2351	//
2352	// Note that this is not the percentage of the behavior graph data volume.
2353	//
2354	// For example, the data volume for the behavior graph is 80 GB per day. The
2355	// maximum data volume is 160 GB per day. If the data volume for the member
2356	// account is 40 GB per day, then PercentOfGraphUtilization is 25. It represents
2357	// 25% of the maximum allowed data volume.
2358	PercentOfGraphUtilization *float64 `type:"double"`
2359
2360	// The date and time when the graph utilization percentage was last updated.
2361	PercentOfGraphUtilizationUpdatedTime *time.Time `type:"timestamp"`
2362
2363	// The current membership status of the member account. The status can have
2364	// one of the following values:
2365	//
2366	//    * INVITED - Indicates that the member was sent an invitation but has not
2367	//    yet responded.
2368	//
2369	//    * VERIFICATION_IN_PROGRESS - Indicates that Detective is verifying that
2370	//    the account identifier and email address provided for the member account
2371	//    match. If they do match, then Detective sends the invitation. If the email
2372	//    address and account identifier don't match, then the member cannot be
2373	//    added to the behavior graph.
2374	//
2375	//    * VERIFICATION_FAILED - Indicates that the account and email address provided
2376	//    for the member account do not match, and Detective did not send an invitation
2377	//    to the account.
2378	//
2379	//    * ENABLED - Indicates that the member account accepted the invitation
2380	//    to contribute to the behavior graph.
2381	//
2382	//    * ACCEPTED_BUT_DISABLED - Indicates that the member account accepted the
2383	//    invitation but is prevented from contributing data to the behavior graph.
2384	//    DisabledReason provides the reason why the member account is not enabled.
2385	//
2386	// Member accounts that declined an invitation or that were removed from the
2387	// behavior graph are not included.
2388	Status *string `type:"string" enum:"MemberStatus"`
2389
2390	// The date and time that the member account was last updated. The value is
2391	// in milliseconds since the epoch.
2392	UpdatedTime *time.Time `type:"timestamp"`
2393}
2394
2395// String returns the string representation
2396func (s MemberDetail) String() string {
2397	return awsutil.Prettify(s)
2398}
2399
2400// GoString returns the string representation
2401func (s MemberDetail) GoString() string {
2402	return s.String()
2403}
2404
2405// SetAccountId sets the AccountId field's value.
2406func (s *MemberDetail) SetAccountId(v string) *MemberDetail {
2407	s.AccountId = &v
2408	return s
2409}
2410
2411// SetDisabledReason sets the DisabledReason field's value.
2412func (s *MemberDetail) SetDisabledReason(v string) *MemberDetail {
2413	s.DisabledReason = &v
2414	return s
2415}
2416
2417// SetEmailAddress sets the EmailAddress field's value.
2418func (s *MemberDetail) SetEmailAddress(v string) *MemberDetail {
2419	s.EmailAddress = &v
2420	return s
2421}
2422
2423// SetGraphArn sets the GraphArn field's value.
2424func (s *MemberDetail) SetGraphArn(v string) *MemberDetail {
2425	s.GraphArn = &v
2426	return s
2427}
2428
2429// SetInvitedTime sets the InvitedTime field's value.
2430func (s *MemberDetail) SetInvitedTime(v time.Time) *MemberDetail {
2431	s.InvitedTime = &v
2432	return s
2433}
2434
2435// SetMasterId sets the MasterId field's value.
2436func (s *MemberDetail) SetMasterId(v string) *MemberDetail {
2437	s.MasterId = &v
2438	return s
2439}
2440
2441// SetPercentOfGraphUtilization sets the PercentOfGraphUtilization field's value.
2442func (s *MemberDetail) SetPercentOfGraphUtilization(v float64) *MemberDetail {
2443	s.PercentOfGraphUtilization = &v
2444	return s
2445}
2446
2447// SetPercentOfGraphUtilizationUpdatedTime sets the PercentOfGraphUtilizationUpdatedTime field's value.
2448func (s *MemberDetail) SetPercentOfGraphUtilizationUpdatedTime(v time.Time) *MemberDetail {
2449	s.PercentOfGraphUtilizationUpdatedTime = &v
2450	return s
2451}
2452
2453// SetStatus sets the Status field's value.
2454func (s *MemberDetail) SetStatus(v string) *MemberDetail {
2455	s.Status = &v
2456	return s
2457}
2458
2459// SetUpdatedTime sets the UpdatedTime field's value.
2460func (s *MemberDetail) SetUpdatedTime(v time.Time) *MemberDetail {
2461	s.UpdatedTime = &v
2462	return s
2463}
2464
2465type RejectInvitationInput struct {
2466	_ struct{} `type:"structure"`
2467
2468	// The ARN of the behavior graph to reject the invitation to.
2469	//
2470	// The member account's current member status in the behavior graph must be
2471	// INVITED.
2472	//
2473	// GraphArn is a required field
2474	GraphArn *string `type:"string" required:"true"`
2475}
2476
2477// String returns the string representation
2478func (s RejectInvitationInput) String() string {
2479	return awsutil.Prettify(s)
2480}
2481
2482// GoString returns the string representation
2483func (s RejectInvitationInput) GoString() string {
2484	return s.String()
2485}
2486
2487// Validate inspects the fields of the type to determine if they are valid.
2488func (s *RejectInvitationInput) Validate() error {
2489	invalidParams := request.ErrInvalidParams{Context: "RejectInvitationInput"}
2490	if s.GraphArn == nil {
2491		invalidParams.Add(request.NewErrParamRequired("GraphArn"))
2492	}
2493
2494	if invalidParams.Len() > 0 {
2495		return invalidParams
2496	}
2497	return nil
2498}
2499
2500// SetGraphArn sets the GraphArn field's value.
2501func (s *RejectInvitationInput) SetGraphArn(v string) *RejectInvitationInput {
2502	s.GraphArn = &v
2503	return s
2504}
2505
2506type RejectInvitationOutput struct {
2507	_ struct{} `type:"structure"`
2508}
2509
2510// String returns the string representation
2511func (s RejectInvitationOutput) String() string {
2512	return awsutil.Prettify(s)
2513}
2514
2515// GoString returns the string representation
2516func (s RejectInvitationOutput) GoString() string {
2517	return s.String()
2518}
2519
2520// The request refers to a nonexistent resource.
2521type ResourceNotFoundException struct {
2522	_            struct{}                  `type:"structure"`
2523	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2524
2525	Message_ *string `locationName:"Message" type:"string"`
2526}
2527
2528// String returns the string representation
2529func (s ResourceNotFoundException) String() string {
2530	return awsutil.Prettify(s)
2531}
2532
2533// GoString returns the string representation
2534func (s ResourceNotFoundException) GoString() string {
2535	return s.String()
2536}
2537
2538func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
2539	return &ResourceNotFoundException{
2540		RespMetadata: v,
2541	}
2542}
2543
2544// Code returns the exception type name.
2545func (s *ResourceNotFoundException) Code() string {
2546	return "ResourceNotFoundException"
2547}
2548
2549// Message returns the exception's message.
2550func (s *ResourceNotFoundException) Message() string {
2551	if s.Message_ != nil {
2552		return *s.Message_
2553	}
2554	return ""
2555}
2556
2557// OrigErr always returns nil, satisfies awserr.Error interface.
2558func (s *ResourceNotFoundException) OrigErr() error {
2559	return nil
2560}
2561
2562func (s *ResourceNotFoundException) Error() string {
2563	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2564}
2565
2566// Status code returns the HTTP status code for the request's response error.
2567func (s *ResourceNotFoundException) StatusCode() int {
2568	return s.RespMetadata.StatusCode
2569}
2570
2571// RequestID returns the service's response RequestID for request.
2572func (s *ResourceNotFoundException) RequestID() string {
2573	return s.RespMetadata.RequestID
2574}
2575
2576// This request cannot be completed for one of the following reasons.
2577//
2578//    * The request would cause the number of member accounts in the behavior
2579//    graph to exceed the maximum allowed. A behavior graph cannot have more
2580//    than 1000 member accounts.
2581//
2582//    * The request would cause the data rate for the behavior graph to exceed
2583//    the maximum allowed.
2584//
2585//    * Detective is unable to verify the data rate for the member account.
2586//    This is usually because the member account is not enrolled in Amazon GuardDuty.
2587type ServiceQuotaExceededException struct {
2588	_            struct{}                  `type:"structure"`
2589	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2590
2591	Message_ *string `locationName:"Message" type:"string"`
2592}
2593
2594// String returns the string representation
2595func (s ServiceQuotaExceededException) String() string {
2596	return awsutil.Prettify(s)
2597}
2598
2599// GoString returns the string representation
2600func (s ServiceQuotaExceededException) GoString() string {
2601	return s.String()
2602}
2603
2604func newErrorServiceQuotaExceededException(v protocol.ResponseMetadata) error {
2605	return &ServiceQuotaExceededException{
2606		RespMetadata: v,
2607	}
2608}
2609
2610// Code returns the exception type name.
2611func (s *ServiceQuotaExceededException) Code() string {
2612	return "ServiceQuotaExceededException"
2613}
2614
2615// Message returns the exception's message.
2616func (s *ServiceQuotaExceededException) Message() string {
2617	if s.Message_ != nil {
2618		return *s.Message_
2619	}
2620	return ""
2621}
2622
2623// OrigErr always returns nil, satisfies awserr.Error interface.
2624func (s *ServiceQuotaExceededException) OrigErr() error {
2625	return nil
2626}
2627
2628func (s *ServiceQuotaExceededException) Error() string {
2629	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2630}
2631
2632// Status code returns the HTTP status code for the request's response error.
2633func (s *ServiceQuotaExceededException) StatusCode() int {
2634	return s.RespMetadata.StatusCode
2635}
2636
2637// RequestID returns the service's response RequestID for request.
2638func (s *ServiceQuotaExceededException) RequestID() string {
2639	return s.RespMetadata.RequestID
2640}
2641
2642type StartMonitoringMemberInput struct {
2643	_ struct{} `type:"structure"`
2644
2645	// The account ID of the member account to try to enable.
2646	//
2647	// The account must be an invited member account with a status of ACCEPTED_BUT_DISABLED.
2648	//
2649	// AccountId is a required field
2650	AccountId *string `min:"12" type:"string" required:"true"`
2651
2652	// The ARN of the behavior graph.
2653	//
2654	// GraphArn is a required field
2655	GraphArn *string `type:"string" required:"true"`
2656}
2657
2658// String returns the string representation
2659func (s StartMonitoringMemberInput) String() string {
2660	return awsutil.Prettify(s)
2661}
2662
2663// GoString returns the string representation
2664func (s StartMonitoringMemberInput) GoString() string {
2665	return s.String()
2666}
2667
2668// Validate inspects the fields of the type to determine if they are valid.
2669func (s *StartMonitoringMemberInput) Validate() error {
2670	invalidParams := request.ErrInvalidParams{Context: "StartMonitoringMemberInput"}
2671	if s.AccountId == nil {
2672		invalidParams.Add(request.NewErrParamRequired("AccountId"))
2673	}
2674	if s.AccountId != nil && len(*s.AccountId) < 12 {
2675		invalidParams.Add(request.NewErrParamMinLen("AccountId", 12))
2676	}
2677	if s.GraphArn == nil {
2678		invalidParams.Add(request.NewErrParamRequired("GraphArn"))
2679	}
2680
2681	if invalidParams.Len() > 0 {
2682		return invalidParams
2683	}
2684	return nil
2685}
2686
2687// SetAccountId sets the AccountId field's value.
2688func (s *StartMonitoringMemberInput) SetAccountId(v string) *StartMonitoringMemberInput {
2689	s.AccountId = &v
2690	return s
2691}
2692
2693// SetGraphArn sets the GraphArn field's value.
2694func (s *StartMonitoringMemberInput) SetGraphArn(v string) *StartMonitoringMemberInput {
2695	s.GraphArn = &v
2696	return s
2697}
2698
2699type StartMonitoringMemberOutput struct {
2700	_ struct{} `type:"structure"`
2701}
2702
2703// String returns the string representation
2704func (s StartMonitoringMemberOutput) String() string {
2705	return awsutil.Prettify(s)
2706}
2707
2708// GoString returns the string representation
2709func (s StartMonitoringMemberOutput) GoString() string {
2710	return s.String()
2711}
2712
2713// A member account that was included in a request but for which the request
2714// could not be processed.
2715type UnprocessedAccount struct {
2716	_ struct{} `type:"structure"`
2717
2718	// The AWS account identifier of the member account that was not processed.
2719	AccountId *string `min:"12" type:"string"`
2720
2721	// The reason that the member account request could not be processed.
2722	Reason *string `type:"string"`
2723}
2724
2725// String returns the string representation
2726func (s UnprocessedAccount) String() string {
2727	return awsutil.Prettify(s)
2728}
2729
2730// GoString returns the string representation
2731func (s UnprocessedAccount) GoString() string {
2732	return s.String()
2733}
2734
2735// SetAccountId sets the AccountId field's value.
2736func (s *UnprocessedAccount) SetAccountId(v string) *UnprocessedAccount {
2737	s.AccountId = &v
2738	return s
2739}
2740
2741// SetReason sets the Reason field's value.
2742func (s *UnprocessedAccount) SetReason(v string) *UnprocessedAccount {
2743	s.Reason = &v
2744	return s
2745}
2746
2747// The request parameters are invalid.
2748type ValidationException struct {
2749	_            struct{}                  `type:"structure"`
2750	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
2751
2752	Message_ *string `locationName:"Message" type:"string"`
2753}
2754
2755// String returns the string representation
2756func (s ValidationException) String() string {
2757	return awsutil.Prettify(s)
2758}
2759
2760// GoString returns the string representation
2761func (s ValidationException) GoString() string {
2762	return s.String()
2763}
2764
2765func newErrorValidationException(v protocol.ResponseMetadata) error {
2766	return &ValidationException{
2767		RespMetadata: v,
2768	}
2769}
2770
2771// Code returns the exception type name.
2772func (s *ValidationException) Code() string {
2773	return "ValidationException"
2774}
2775
2776// Message returns the exception's message.
2777func (s *ValidationException) Message() string {
2778	if s.Message_ != nil {
2779		return *s.Message_
2780	}
2781	return ""
2782}
2783
2784// OrigErr always returns nil, satisfies awserr.Error interface.
2785func (s *ValidationException) OrigErr() error {
2786	return nil
2787}
2788
2789func (s *ValidationException) Error() string {
2790	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
2791}
2792
2793// Status code returns the HTTP status code for the request's response error.
2794func (s *ValidationException) StatusCode() int {
2795	return s.RespMetadata.StatusCode
2796}
2797
2798// RequestID returns the service's response RequestID for request.
2799func (s *ValidationException) RequestID() string {
2800	return s.RespMetadata.RequestID
2801}
2802
2803const (
2804	// MemberDisabledReasonVolumeTooHigh is a MemberDisabledReason enum value
2805	MemberDisabledReasonVolumeTooHigh = "VOLUME_TOO_HIGH"
2806
2807	// MemberDisabledReasonVolumeUnknown is a MemberDisabledReason enum value
2808	MemberDisabledReasonVolumeUnknown = "VOLUME_UNKNOWN"
2809)
2810
2811const (
2812	// MemberStatusInvited is a MemberStatus enum value
2813	MemberStatusInvited = "INVITED"
2814
2815	// MemberStatusVerificationInProgress is a MemberStatus enum value
2816	MemberStatusVerificationInProgress = "VERIFICATION_IN_PROGRESS"
2817
2818	// MemberStatusVerificationFailed is a MemberStatus enum value
2819	MemberStatusVerificationFailed = "VERIFICATION_FAILED"
2820
2821	// MemberStatusEnabled is a MemberStatus enum value
2822	MemberStatusEnabled = "ENABLED"
2823
2824	// MemberStatusAcceptedButDisabled is a MemberStatus enum value
2825	MemberStatusAcceptedButDisabled = "ACCEPTED_BUT_DISABLED"
2826)
2827