1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package workmail
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/jsonrpc"
14)
15
16const opAssociateDelegateToResource = "AssociateDelegateToResource"
17
18// AssociateDelegateToResourceRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateDelegateToResource 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 AssociateDelegateToResource for more information on using the AssociateDelegateToResource
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 AssociateDelegateToResourceRequest method.
34//    req, resp := client.AssociateDelegateToResourceRequest(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/workmail-2017-10-01/AssociateDelegateToResource
42func (c *WorkMail) AssociateDelegateToResourceRequest(input *AssociateDelegateToResourceInput) (req *request.Request, output *AssociateDelegateToResourceOutput) {
43	op := &request.Operation{
44		Name:       opAssociateDelegateToResource,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AssociateDelegateToResourceInput{}
51	}
52
53	output = &AssociateDelegateToResourceOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AssociateDelegateToResource API operation for Amazon WorkMail.
60//
61// Adds a member (user or group) to the resource's set of delegates.
62//
63// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
64// with awserr.Error's Code and Message methods to get detailed information about
65// the error.
66//
67// See the AWS API reference guide for Amazon WorkMail's
68// API operation AssociateDelegateToResource for usage and error information.
69//
70// Returned Error Types:
71//   * EntityNotFoundException
72//   The identifier supplied for the user, group, or resource does not exist in
73//   your organization.
74//
75//   * EntityStateException
76//   You are performing an operation on a user, group, or resource that isn't
77//   in the expected state, such as trying to delete an active user.
78//
79//   * InvalidParameterException
80//   One or more of the input parameters don't match the service's restrictions.
81//
82//   * OrganizationNotFoundException
83//   An operation received a valid organization identifier that either doesn't
84//   belong or exist in the system.
85//
86//   * OrganizationStateException
87//   The organization must have a valid state to perform certain operations on
88//   the organization or its members.
89//
90// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/AssociateDelegateToResource
91func (c *WorkMail) AssociateDelegateToResource(input *AssociateDelegateToResourceInput) (*AssociateDelegateToResourceOutput, error) {
92	req, out := c.AssociateDelegateToResourceRequest(input)
93	return out, req.Send()
94}
95
96// AssociateDelegateToResourceWithContext is the same as AssociateDelegateToResource with the addition of
97// the ability to pass a context and additional request options.
98//
99// See AssociateDelegateToResource for details on how to use this API operation.
100//
101// The context must be non-nil and will be used for request cancellation. If
102// the context is nil a panic will occur. In the future the SDK may create
103// sub-contexts for http.Requests. See https://golang.org/pkg/context/
104// for more information on using Contexts.
105func (c *WorkMail) AssociateDelegateToResourceWithContext(ctx aws.Context, input *AssociateDelegateToResourceInput, opts ...request.Option) (*AssociateDelegateToResourceOutput, error) {
106	req, out := c.AssociateDelegateToResourceRequest(input)
107	req.SetContext(ctx)
108	req.ApplyOptions(opts...)
109	return out, req.Send()
110}
111
112const opAssociateMemberToGroup = "AssociateMemberToGroup"
113
114// AssociateMemberToGroupRequest generates a "aws/request.Request" representing the
115// client's request for the AssociateMemberToGroup operation. The "output" return
116// value will be populated with the request's response once the request completes
117// successfully.
118//
119// Use "Send" method on the returned Request to send the API call to the service.
120// the "output" return value is not valid until after Send returns without error.
121//
122// See AssociateMemberToGroup for more information on using the AssociateMemberToGroup
123// API call, and error handling.
124//
125// This method is useful when you want to inject custom logic or configuration
126// into the SDK's request lifecycle. Such as custom headers, or retry logic.
127//
128//
129//    // Example sending a request using the AssociateMemberToGroupRequest method.
130//    req, resp := client.AssociateMemberToGroupRequest(params)
131//
132//    err := req.Send()
133//    if err == nil { // resp is now filled
134//        fmt.Println(resp)
135//    }
136//
137// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/AssociateMemberToGroup
138func (c *WorkMail) AssociateMemberToGroupRequest(input *AssociateMemberToGroupInput) (req *request.Request, output *AssociateMemberToGroupOutput) {
139	op := &request.Operation{
140		Name:       opAssociateMemberToGroup,
141		HTTPMethod: "POST",
142		HTTPPath:   "/",
143	}
144
145	if input == nil {
146		input = &AssociateMemberToGroupInput{}
147	}
148
149	output = &AssociateMemberToGroupOutput{}
150	req = c.newRequest(op, input, output)
151	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
152	return
153}
154
155// AssociateMemberToGroup API operation for Amazon WorkMail.
156//
157// Adds a member (user or group) to the group's set.
158//
159// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
160// with awserr.Error's Code and Message methods to get detailed information about
161// the error.
162//
163// See the AWS API reference guide for Amazon WorkMail's
164// API operation AssociateMemberToGroup for usage and error information.
165//
166// Returned Error Types:
167//   * DirectoryServiceAuthenticationFailedException
168//   The directory service doesn't recognize the credentials supplied by WorkMail.
169//
170//   * DirectoryUnavailableException
171//   The directory is unavailable. It might be located in another Region or deleted.
172//
173//   * EntityNotFoundException
174//   The identifier supplied for the user, group, or resource does not exist in
175//   your organization.
176//
177//   * EntityStateException
178//   You are performing an operation on a user, group, or resource that isn't
179//   in the expected state, such as trying to delete an active user.
180//
181//   * InvalidParameterException
182//   One or more of the input parameters don't match the service's restrictions.
183//
184//   * OrganizationNotFoundException
185//   An operation received a valid organization identifier that either doesn't
186//   belong or exist in the system.
187//
188//   * OrganizationStateException
189//   The organization must have a valid state to perform certain operations on
190//   the organization or its members.
191//
192//   * UnsupportedOperationException
193//   You can't perform a write operation against a read-only directory.
194//
195// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/AssociateMemberToGroup
196func (c *WorkMail) AssociateMemberToGroup(input *AssociateMemberToGroupInput) (*AssociateMemberToGroupOutput, error) {
197	req, out := c.AssociateMemberToGroupRequest(input)
198	return out, req.Send()
199}
200
201// AssociateMemberToGroupWithContext is the same as AssociateMemberToGroup with the addition of
202// the ability to pass a context and additional request options.
203//
204// See AssociateMemberToGroup for details on how to use this API operation.
205//
206// The context must be non-nil and will be used for request cancellation. If
207// the context is nil a panic will occur. In the future the SDK may create
208// sub-contexts for http.Requests. See https://golang.org/pkg/context/
209// for more information on using Contexts.
210func (c *WorkMail) AssociateMemberToGroupWithContext(ctx aws.Context, input *AssociateMemberToGroupInput, opts ...request.Option) (*AssociateMemberToGroupOutput, error) {
211	req, out := c.AssociateMemberToGroupRequest(input)
212	req.SetContext(ctx)
213	req.ApplyOptions(opts...)
214	return out, req.Send()
215}
216
217const opCancelMailboxExportJob = "CancelMailboxExportJob"
218
219// CancelMailboxExportJobRequest generates a "aws/request.Request" representing the
220// client's request for the CancelMailboxExportJob operation. The "output" return
221// value will be populated with the request's response once the request completes
222// successfully.
223//
224// Use "Send" method on the returned Request to send the API call to the service.
225// the "output" return value is not valid until after Send returns without error.
226//
227// See CancelMailboxExportJob for more information on using the CancelMailboxExportJob
228// API call, and error handling.
229//
230// This method is useful when you want to inject custom logic or configuration
231// into the SDK's request lifecycle. Such as custom headers, or retry logic.
232//
233//
234//    // Example sending a request using the CancelMailboxExportJobRequest method.
235//    req, resp := client.CancelMailboxExportJobRequest(params)
236//
237//    err := req.Send()
238//    if err == nil { // resp is now filled
239//        fmt.Println(resp)
240//    }
241//
242// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CancelMailboxExportJob
243func (c *WorkMail) CancelMailboxExportJobRequest(input *CancelMailboxExportJobInput) (req *request.Request, output *CancelMailboxExportJobOutput) {
244	op := &request.Operation{
245		Name:       opCancelMailboxExportJob,
246		HTTPMethod: "POST",
247		HTTPPath:   "/",
248	}
249
250	if input == nil {
251		input = &CancelMailboxExportJobInput{}
252	}
253
254	output = &CancelMailboxExportJobOutput{}
255	req = c.newRequest(op, input, output)
256	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
257	return
258}
259
260// CancelMailboxExportJob API operation for Amazon WorkMail.
261//
262// Cancels a mailbox export job.
263//
264// If the mailbox export job is near completion, it might not be possible to
265// cancel it.
266//
267// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
268// with awserr.Error's Code and Message methods to get detailed information about
269// the error.
270//
271// See the AWS API reference guide for Amazon WorkMail's
272// API operation CancelMailboxExportJob for usage and error information.
273//
274// Returned Error Types:
275//   * InvalidParameterException
276//   One or more of the input parameters don't match the service's restrictions.
277//
278//   * OrganizationNotFoundException
279//   An operation received a valid organization identifier that either doesn't
280//   belong or exist in the system.
281//
282//   * OrganizationStateException
283//   The organization must have a valid state to perform certain operations on
284//   the organization or its members.
285//
286//   * EntityNotFoundException
287//   The identifier supplied for the user, group, or resource does not exist in
288//   your organization.
289//
290// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CancelMailboxExportJob
291func (c *WorkMail) CancelMailboxExportJob(input *CancelMailboxExportJobInput) (*CancelMailboxExportJobOutput, error) {
292	req, out := c.CancelMailboxExportJobRequest(input)
293	return out, req.Send()
294}
295
296// CancelMailboxExportJobWithContext is the same as CancelMailboxExportJob with the addition of
297// the ability to pass a context and additional request options.
298//
299// See CancelMailboxExportJob for details on how to use this API operation.
300//
301// The context must be non-nil and will be used for request cancellation. If
302// the context is nil a panic will occur. In the future the SDK may create
303// sub-contexts for http.Requests. See https://golang.org/pkg/context/
304// for more information on using Contexts.
305func (c *WorkMail) CancelMailboxExportJobWithContext(ctx aws.Context, input *CancelMailboxExportJobInput, opts ...request.Option) (*CancelMailboxExportJobOutput, error) {
306	req, out := c.CancelMailboxExportJobRequest(input)
307	req.SetContext(ctx)
308	req.ApplyOptions(opts...)
309	return out, req.Send()
310}
311
312const opCreateAlias = "CreateAlias"
313
314// CreateAliasRequest generates a "aws/request.Request" representing the
315// client's request for the CreateAlias operation. The "output" return
316// value will be populated with the request's response once the request completes
317// successfully.
318//
319// Use "Send" method on the returned Request to send the API call to the service.
320// the "output" return value is not valid until after Send returns without error.
321//
322// See CreateAlias for more information on using the CreateAlias
323// API call, and error handling.
324//
325// This method is useful when you want to inject custom logic or configuration
326// into the SDK's request lifecycle. Such as custom headers, or retry logic.
327//
328//
329//    // Example sending a request using the CreateAliasRequest method.
330//    req, resp := client.CreateAliasRequest(params)
331//
332//    err := req.Send()
333//    if err == nil { // resp is now filled
334//        fmt.Println(resp)
335//    }
336//
337// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateAlias
338func (c *WorkMail) CreateAliasRequest(input *CreateAliasInput) (req *request.Request, output *CreateAliasOutput) {
339	op := &request.Operation{
340		Name:       opCreateAlias,
341		HTTPMethod: "POST",
342		HTTPPath:   "/",
343	}
344
345	if input == nil {
346		input = &CreateAliasInput{}
347	}
348
349	output = &CreateAliasOutput{}
350	req = c.newRequest(op, input, output)
351	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
352	return
353}
354
355// CreateAlias API operation for Amazon WorkMail.
356//
357// Adds an alias to the set of a given member (user or group) of Amazon WorkMail.
358//
359// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
360// with awserr.Error's Code and Message methods to get detailed information about
361// the error.
362//
363// See the AWS API reference guide for Amazon WorkMail's
364// API operation CreateAlias for usage and error information.
365//
366// Returned Error Types:
367//   * EmailAddressInUseException
368//   The email address that you're trying to assign is already created for a different
369//   user, group, or resource.
370//
371//   * EntityNotFoundException
372//   The identifier supplied for the user, group, or resource does not exist in
373//   your organization.
374//
375//   * EntityStateException
376//   You are performing an operation on a user, group, or resource that isn't
377//   in the expected state, such as trying to delete an active user.
378//
379//   * InvalidParameterException
380//   One or more of the input parameters don't match the service's restrictions.
381//
382//   * MailDomainNotFoundException
383//   For an email or alias to be created in Amazon WorkMail, the included domain
384//   must be defined in the organization.
385//
386//   * MailDomainStateException
387//   After a domain has been added to the organization, it must be verified. The
388//   domain is not yet verified.
389//
390//   * OrganizationNotFoundException
391//   An operation received a valid organization identifier that either doesn't
392//   belong or exist in the system.
393//
394//   * OrganizationStateException
395//   The organization must have a valid state to perform certain operations on
396//   the organization or its members.
397//
398//   * LimitExceededException
399//   The request exceeds the limit of the resource.
400//
401// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateAlias
402func (c *WorkMail) CreateAlias(input *CreateAliasInput) (*CreateAliasOutput, error) {
403	req, out := c.CreateAliasRequest(input)
404	return out, req.Send()
405}
406
407// CreateAliasWithContext is the same as CreateAlias with the addition of
408// the ability to pass a context and additional request options.
409//
410// See CreateAlias for details on how to use this API operation.
411//
412// The context must be non-nil and will be used for request cancellation. If
413// the context is nil a panic will occur. In the future the SDK may create
414// sub-contexts for http.Requests. See https://golang.org/pkg/context/
415// for more information on using Contexts.
416func (c *WorkMail) CreateAliasWithContext(ctx aws.Context, input *CreateAliasInput, opts ...request.Option) (*CreateAliasOutput, error) {
417	req, out := c.CreateAliasRequest(input)
418	req.SetContext(ctx)
419	req.ApplyOptions(opts...)
420	return out, req.Send()
421}
422
423const opCreateGroup = "CreateGroup"
424
425// CreateGroupRequest generates a "aws/request.Request" representing the
426// client's request for the CreateGroup operation. The "output" return
427// value will be populated with the request's response once the request completes
428// successfully.
429//
430// Use "Send" method on the returned Request to send the API call to the service.
431// the "output" return value is not valid until after Send returns without error.
432//
433// See CreateGroup for more information on using the CreateGroup
434// API call, and error handling.
435//
436// This method is useful when you want to inject custom logic or configuration
437// into the SDK's request lifecycle. Such as custom headers, or retry logic.
438//
439//
440//    // Example sending a request using the CreateGroupRequest method.
441//    req, resp := client.CreateGroupRequest(params)
442//
443//    err := req.Send()
444//    if err == nil { // resp is now filled
445//        fmt.Println(resp)
446//    }
447//
448// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateGroup
449func (c *WorkMail) CreateGroupRequest(input *CreateGroupInput) (req *request.Request, output *CreateGroupOutput) {
450	op := &request.Operation{
451		Name:       opCreateGroup,
452		HTTPMethod: "POST",
453		HTTPPath:   "/",
454	}
455
456	if input == nil {
457		input = &CreateGroupInput{}
458	}
459
460	output = &CreateGroupOutput{}
461	req = c.newRequest(op, input, output)
462	return
463}
464
465// CreateGroup API operation for Amazon WorkMail.
466//
467// Creates a group that can be used in Amazon WorkMail by calling the RegisterToWorkMail
468// operation.
469//
470// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
471// with awserr.Error's Code and Message methods to get detailed information about
472// the error.
473//
474// See the AWS API reference guide for Amazon WorkMail's
475// API operation CreateGroup for usage and error information.
476//
477// Returned Error Types:
478//   * DirectoryServiceAuthenticationFailedException
479//   The directory service doesn't recognize the credentials supplied by WorkMail.
480//
481//   * DirectoryUnavailableException
482//   The directory is unavailable. It might be located in another Region or deleted.
483//
484//   * InvalidParameterException
485//   One or more of the input parameters don't match the service's restrictions.
486//
487//   * NameAvailabilityException
488//   The user, group, or resource name isn't unique in Amazon WorkMail.
489//
490//   * OrganizationNotFoundException
491//   An operation received a valid organization identifier that either doesn't
492//   belong or exist in the system.
493//
494//   * OrganizationStateException
495//   The organization must have a valid state to perform certain operations on
496//   the organization or its members.
497//
498//   * ReservedNameException
499//   This user, group, or resource name is not allowed in Amazon WorkMail.
500//
501//   * UnsupportedOperationException
502//   You can't perform a write operation against a read-only directory.
503//
504// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateGroup
505func (c *WorkMail) CreateGroup(input *CreateGroupInput) (*CreateGroupOutput, error) {
506	req, out := c.CreateGroupRequest(input)
507	return out, req.Send()
508}
509
510// CreateGroupWithContext is the same as CreateGroup with the addition of
511// the ability to pass a context and additional request options.
512//
513// See CreateGroup for details on how to use this API operation.
514//
515// The context must be non-nil and will be used for request cancellation. If
516// the context is nil a panic will occur. In the future the SDK may create
517// sub-contexts for http.Requests. See https://golang.org/pkg/context/
518// for more information on using Contexts.
519func (c *WorkMail) CreateGroupWithContext(ctx aws.Context, input *CreateGroupInput, opts ...request.Option) (*CreateGroupOutput, error) {
520	req, out := c.CreateGroupRequest(input)
521	req.SetContext(ctx)
522	req.ApplyOptions(opts...)
523	return out, req.Send()
524}
525
526const opCreateMobileDeviceAccessRule = "CreateMobileDeviceAccessRule"
527
528// CreateMobileDeviceAccessRuleRequest generates a "aws/request.Request" representing the
529// client's request for the CreateMobileDeviceAccessRule operation. The "output" return
530// value will be populated with the request's response once the request completes
531// successfully.
532//
533// Use "Send" method on the returned Request to send the API call to the service.
534// the "output" return value is not valid until after Send returns without error.
535//
536// See CreateMobileDeviceAccessRule for more information on using the CreateMobileDeviceAccessRule
537// API call, and error handling.
538//
539// This method is useful when you want to inject custom logic or configuration
540// into the SDK's request lifecycle. Such as custom headers, or retry logic.
541//
542//
543//    // Example sending a request using the CreateMobileDeviceAccessRuleRequest method.
544//    req, resp := client.CreateMobileDeviceAccessRuleRequest(params)
545//
546//    err := req.Send()
547//    if err == nil { // resp is now filled
548//        fmt.Println(resp)
549//    }
550//
551// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateMobileDeviceAccessRule
552func (c *WorkMail) CreateMobileDeviceAccessRuleRequest(input *CreateMobileDeviceAccessRuleInput) (req *request.Request, output *CreateMobileDeviceAccessRuleOutput) {
553	op := &request.Operation{
554		Name:       opCreateMobileDeviceAccessRule,
555		HTTPMethod: "POST",
556		HTTPPath:   "/",
557	}
558
559	if input == nil {
560		input = &CreateMobileDeviceAccessRuleInput{}
561	}
562
563	output = &CreateMobileDeviceAccessRuleOutput{}
564	req = c.newRequest(op, input, output)
565	return
566}
567
568// CreateMobileDeviceAccessRule API operation for Amazon WorkMail.
569//
570// Creates a new mobile device access rule for the specified Amazon WorkMail
571// organization.
572//
573// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
574// with awserr.Error's Code and Message methods to get detailed information about
575// the error.
576//
577// See the AWS API reference guide for Amazon WorkMail's
578// API operation CreateMobileDeviceAccessRule for usage and error information.
579//
580// Returned Error Types:
581//   * InvalidParameterException
582//   One or more of the input parameters don't match the service's restrictions.
583//
584//   * LimitExceededException
585//   The request exceeds the limit of the resource.
586//
587//   * OrganizationNotFoundException
588//   An operation received a valid organization identifier that either doesn't
589//   belong or exist in the system.
590//
591//   * OrganizationStateException
592//   The organization must have a valid state to perform certain operations on
593//   the organization or its members.
594//
595// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateMobileDeviceAccessRule
596func (c *WorkMail) CreateMobileDeviceAccessRule(input *CreateMobileDeviceAccessRuleInput) (*CreateMobileDeviceAccessRuleOutput, error) {
597	req, out := c.CreateMobileDeviceAccessRuleRequest(input)
598	return out, req.Send()
599}
600
601// CreateMobileDeviceAccessRuleWithContext is the same as CreateMobileDeviceAccessRule with the addition of
602// the ability to pass a context and additional request options.
603//
604// See CreateMobileDeviceAccessRule for details on how to use this API operation.
605//
606// The context must be non-nil and will be used for request cancellation. If
607// the context is nil a panic will occur. In the future the SDK may create
608// sub-contexts for http.Requests. See https://golang.org/pkg/context/
609// for more information on using Contexts.
610func (c *WorkMail) CreateMobileDeviceAccessRuleWithContext(ctx aws.Context, input *CreateMobileDeviceAccessRuleInput, opts ...request.Option) (*CreateMobileDeviceAccessRuleOutput, error) {
611	req, out := c.CreateMobileDeviceAccessRuleRequest(input)
612	req.SetContext(ctx)
613	req.ApplyOptions(opts...)
614	return out, req.Send()
615}
616
617const opCreateOrganization = "CreateOrganization"
618
619// CreateOrganizationRequest generates a "aws/request.Request" representing the
620// client's request for the CreateOrganization operation. The "output" return
621// value will be populated with the request's response once the request completes
622// successfully.
623//
624// Use "Send" method on the returned Request to send the API call to the service.
625// the "output" return value is not valid until after Send returns without error.
626//
627// See CreateOrganization for more information on using the CreateOrganization
628// API call, and error handling.
629//
630// This method is useful when you want to inject custom logic or configuration
631// into the SDK's request lifecycle. Such as custom headers, or retry logic.
632//
633//
634//    // Example sending a request using the CreateOrganizationRequest method.
635//    req, resp := client.CreateOrganizationRequest(params)
636//
637//    err := req.Send()
638//    if err == nil { // resp is now filled
639//        fmt.Println(resp)
640//    }
641//
642// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateOrganization
643func (c *WorkMail) CreateOrganizationRequest(input *CreateOrganizationInput) (req *request.Request, output *CreateOrganizationOutput) {
644	op := &request.Operation{
645		Name:       opCreateOrganization,
646		HTTPMethod: "POST",
647		HTTPPath:   "/",
648	}
649
650	if input == nil {
651		input = &CreateOrganizationInput{}
652	}
653
654	output = &CreateOrganizationOutput{}
655	req = c.newRequest(op, input, output)
656	return
657}
658
659// CreateOrganization API operation for Amazon WorkMail.
660//
661// Creates a new Amazon WorkMail organization. Optionally, you can choose to
662// associate an existing AWS Directory Service directory with your organization.
663// If an AWS Directory Service directory ID is specified, the organization alias
664// must match the directory alias. If you choose not to associate an existing
665// directory with your organization, then we create a new Amazon WorkMail directory
666// for you. For more information, see Adding an organization (https://docs.aws.amazon.com/workmail/latest/adminguide/add_new_organization.html)
667// in the Amazon WorkMail Administrator Guide.
668//
669// You can associate multiple email domains with an organization, then set your
670// default email domain from the Amazon WorkMail console. You can also associate
671// a domain that is managed in an Amazon Route 53 public hosted zone. For more
672// information, see Adding a domain (https://docs.aws.amazon.com/workmail/latest/adminguide/add_domain.html)
673// and Choosing the default domain (https://docs.aws.amazon.com/workmail/latest/adminguide/default_domain.html)
674// in the Amazon WorkMail Administrator Guide.
675//
676// Optionally, you can use a customer managed master key from AWS Key Management
677// Service (AWS KMS) to encrypt email for your organization. If you don't associate
678// an AWS KMS key, Amazon WorkMail creates a default AWS managed master key
679// for you.
680//
681// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
682// with awserr.Error's Code and Message methods to get detailed information about
683// the error.
684//
685// See the AWS API reference guide for Amazon WorkMail's
686// API operation CreateOrganization for usage and error information.
687//
688// Returned Error Types:
689//   * InvalidParameterException
690//   One or more of the input parameters don't match the service's restrictions.
691//
692//   * DirectoryInUseException
693//   The directory is already in use by another WorkMail organization in the same
694//   account and Region.
695//
696//   * DirectoryUnavailableException
697//   The directory is unavailable. It might be located in another Region or deleted.
698//
699//   * LimitExceededException
700//   The request exceeds the limit of the resource.
701//
702//   * NameAvailabilityException
703//   The user, group, or resource name isn't unique in Amazon WorkMail.
704//
705// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateOrganization
706func (c *WorkMail) CreateOrganization(input *CreateOrganizationInput) (*CreateOrganizationOutput, error) {
707	req, out := c.CreateOrganizationRequest(input)
708	return out, req.Send()
709}
710
711// CreateOrganizationWithContext is the same as CreateOrganization with the addition of
712// the ability to pass a context and additional request options.
713//
714// See CreateOrganization for details on how to use this API operation.
715//
716// The context must be non-nil and will be used for request cancellation. If
717// the context is nil a panic will occur. In the future the SDK may create
718// sub-contexts for http.Requests. See https://golang.org/pkg/context/
719// for more information on using Contexts.
720func (c *WorkMail) CreateOrganizationWithContext(ctx aws.Context, input *CreateOrganizationInput, opts ...request.Option) (*CreateOrganizationOutput, error) {
721	req, out := c.CreateOrganizationRequest(input)
722	req.SetContext(ctx)
723	req.ApplyOptions(opts...)
724	return out, req.Send()
725}
726
727const opCreateResource = "CreateResource"
728
729// CreateResourceRequest generates a "aws/request.Request" representing the
730// client's request for the CreateResource operation. The "output" return
731// value will be populated with the request's response once the request completes
732// successfully.
733//
734// Use "Send" method on the returned Request to send the API call to the service.
735// the "output" return value is not valid until after Send returns without error.
736//
737// See CreateResource for more information on using the CreateResource
738// API call, and error handling.
739//
740// This method is useful when you want to inject custom logic or configuration
741// into the SDK's request lifecycle. Such as custom headers, or retry logic.
742//
743//
744//    // Example sending a request using the CreateResourceRequest method.
745//    req, resp := client.CreateResourceRequest(params)
746//
747//    err := req.Send()
748//    if err == nil { // resp is now filled
749//        fmt.Println(resp)
750//    }
751//
752// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateResource
753func (c *WorkMail) CreateResourceRequest(input *CreateResourceInput) (req *request.Request, output *CreateResourceOutput) {
754	op := &request.Operation{
755		Name:       opCreateResource,
756		HTTPMethod: "POST",
757		HTTPPath:   "/",
758	}
759
760	if input == nil {
761		input = &CreateResourceInput{}
762	}
763
764	output = &CreateResourceOutput{}
765	req = c.newRequest(op, input, output)
766	return
767}
768
769// CreateResource API operation for Amazon WorkMail.
770//
771// Creates a new Amazon WorkMail resource.
772//
773// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
774// with awserr.Error's Code and Message methods to get detailed information about
775// the error.
776//
777// See the AWS API reference guide for Amazon WorkMail's
778// API operation CreateResource for usage and error information.
779//
780// Returned Error Types:
781//   * DirectoryServiceAuthenticationFailedException
782//   The directory service doesn't recognize the credentials supplied by WorkMail.
783//
784//   * DirectoryUnavailableException
785//   The directory is unavailable. It might be located in another Region or deleted.
786//
787//   * InvalidParameterException
788//   One or more of the input parameters don't match the service's restrictions.
789//
790//   * NameAvailabilityException
791//   The user, group, or resource name isn't unique in Amazon WorkMail.
792//
793//   * OrganizationNotFoundException
794//   An operation received a valid organization identifier that either doesn't
795//   belong or exist in the system.
796//
797//   * OrganizationStateException
798//   The organization must have a valid state to perform certain operations on
799//   the organization or its members.
800//
801//   * ReservedNameException
802//   This user, group, or resource name is not allowed in Amazon WorkMail.
803//
804// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateResource
805func (c *WorkMail) CreateResource(input *CreateResourceInput) (*CreateResourceOutput, error) {
806	req, out := c.CreateResourceRequest(input)
807	return out, req.Send()
808}
809
810// CreateResourceWithContext is the same as CreateResource with the addition of
811// the ability to pass a context and additional request options.
812//
813// See CreateResource for details on how to use this API operation.
814//
815// The context must be non-nil and will be used for request cancellation. If
816// the context is nil a panic will occur. In the future the SDK may create
817// sub-contexts for http.Requests. See https://golang.org/pkg/context/
818// for more information on using Contexts.
819func (c *WorkMail) CreateResourceWithContext(ctx aws.Context, input *CreateResourceInput, opts ...request.Option) (*CreateResourceOutput, error) {
820	req, out := c.CreateResourceRequest(input)
821	req.SetContext(ctx)
822	req.ApplyOptions(opts...)
823	return out, req.Send()
824}
825
826const opCreateUser = "CreateUser"
827
828// CreateUserRequest generates a "aws/request.Request" representing the
829// client's request for the CreateUser operation. The "output" return
830// value will be populated with the request's response once the request completes
831// successfully.
832//
833// Use "Send" method on the returned Request to send the API call to the service.
834// the "output" return value is not valid until after Send returns without error.
835//
836// See CreateUser for more information on using the CreateUser
837// API call, and error handling.
838//
839// This method is useful when you want to inject custom logic or configuration
840// into the SDK's request lifecycle. Such as custom headers, or retry logic.
841//
842//
843//    // Example sending a request using the CreateUserRequest method.
844//    req, resp := client.CreateUserRequest(params)
845//
846//    err := req.Send()
847//    if err == nil { // resp is now filled
848//        fmt.Println(resp)
849//    }
850//
851// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateUser
852func (c *WorkMail) CreateUserRequest(input *CreateUserInput) (req *request.Request, output *CreateUserOutput) {
853	op := &request.Operation{
854		Name:       opCreateUser,
855		HTTPMethod: "POST",
856		HTTPPath:   "/",
857	}
858
859	if input == nil {
860		input = &CreateUserInput{}
861	}
862
863	output = &CreateUserOutput{}
864	req = c.newRequest(op, input, output)
865	return
866}
867
868// CreateUser API operation for Amazon WorkMail.
869//
870// Creates a user who can be used in Amazon WorkMail by calling the RegisterToWorkMail
871// operation.
872//
873// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
874// with awserr.Error's Code and Message methods to get detailed information about
875// the error.
876//
877// See the AWS API reference guide for Amazon WorkMail's
878// API operation CreateUser for usage and error information.
879//
880// Returned Error Types:
881//   * DirectoryServiceAuthenticationFailedException
882//   The directory service doesn't recognize the credentials supplied by WorkMail.
883//
884//   * DirectoryUnavailableException
885//   The directory is unavailable. It might be located in another Region or deleted.
886//
887//   * InvalidParameterException
888//   One or more of the input parameters don't match the service's restrictions.
889//
890//   * InvalidPasswordException
891//   The supplied password doesn't match the minimum security constraints, such
892//   as length or use of special characters.
893//
894//   * NameAvailabilityException
895//   The user, group, or resource name isn't unique in Amazon WorkMail.
896//
897//   * OrganizationNotFoundException
898//   An operation received a valid organization identifier that either doesn't
899//   belong or exist in the system.
900//
901//   * OrganizationStateException
902//   The organization must have a valid state to perform certain operations on
903//   the organization or its members.
904//
905//   * ReservedNameException
906//   This user, group, or resource name is not allowed in Amazon WorkMail.
907//
908//   * UnsupportedOperationException
909//   You can't perform a write operation against a read-only directory.
910//
911// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/CreateUser
912func (c *WorkMail) CreateUser(input *CreateUserInput) (*CreateUserOutput, error) {
913	req, out := c.CreateUserRequest(input)
914	return out, req.Send()
915}
916
917// CreateUserWithContext is the same as CreateUser with the addition of
918// the ability to pass a context and additional request options.
919//
920// See CreateUser for details on how to use this API operation.
921//
922// The context must be non-nil and will be used for request cancellation. If
923// the context is nil a panic will occur. In the future the SDK may create
924// sub-contexts for http.Requests. See https://golang.org/pkg/context/
925// for more information on using Contexts.
926func (c *WorkMail) CreateUserWithContext(ctx aws.Context, input *CreateUserInput, opts ...request.Option) (*CreateUserOutput, error) {
927	req, out := c.CreateUserRequest(input)
928	req.SetContext(ctx)
929	req.ApplyOptions(opts...)
930	return out, req.Send()
931}
932
933const opDeleteAccessControlRule = "DeleteAccessControlRule"
934
935// DeleteAccessControlRuleRequest generates a "aws/request.Request" representing the
936// client's request for the DeleteAccessControlRule operation. The "output" return
937// value will be populated with the request's response once the request completes
938// successfully.
939//
940// Use "Send" method on the returned Request to send the API call to the service.
941// the "output" return value is not valid until after Send returns without error.
942//
943// See DeleteAccessControlRule for more information on using the DeleteAccessControlRule
944// API call, and error handling.
945//
946// This method is useful when you want to inject custom logic or configuration
947// into the SDK's request lifecycle. Such as custom headers, or retry logic.
948//
949//
950//    // Example sending a request using the DeleteAccessControlRuleRequest method.
951//    req, resp := client.DeleteAccessControlRuleRequest(params)
952//
953//    err := req.Send()
954//    if err == nil { // resp is now filled
955//        fmt.Println(resp)
956//    }
957//
958// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteAccessControlRule
959func (c *WorkMail) DeleteAccessControlRuleRequest(input *DeleteAccessControlRuleInput) (req *request.Request, output *DeleteAccessControlRuleOutput) {
960	op := &request.Operation{
961		Name:       opDeleteAccessControlRule,
962		HTTPMethod: "POST",
963		HTTPPath:   "/",
964	}
965
966	if input == nil {
967		input = &DeleteAccessControlRuleInput{}
968	}
969
970	output = &DeleteAccessControlRuleOutput{}
971	req = c.newRequest(op, input, output)
972	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
973	return
974}
975
976// DeleteAccessControlRule API operation for Amazon WorkMail.
977//
978// Deletes an access control rule for the specified WorkMail organization.
979//
980// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
981// with awserr.Error's Code and Message methods to get detailed information about
982// the error.
983//
984// See the AWS API reference guide for Amazon WorkMail's
985// API operation DeleteAccessControlRule for usage and error information.
986//
987// Returned Error Types:
988//   * OrganizationNotFoundException
989//   An operation received a valid organization identifier that either doesn't
990//   belong or exist in the system.
991//
992//   * OrganizationStateException
993//   The organization must have a valid state to perform certain operations on
994//   the organization or its members.
995//
996// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteAccessControlRule
997func (c *WorkMail) DeleteAccessControlRule(input *DeleteAccessControlRuleInput) (*DeleteAccessControlRuleOutput, error) {
998	req, out := c.DeleteAccessControlRuleRequest(input)
999	return out, req.Send()
1000}
1001
1002// DeleteAccessControlRuleWithContext is the same as DeleteAccessControlRule with the addition of
1003// the ability to pass a context and additional request options.
1004//
1005// See DeleteAccessControlRule for details on how to use this API operation.
1006//
1007// The context must be non-nil and will be used for request cancellation. If
1008// the context is nil a panic will occur. In the future the SDK may create
1009// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1010// for more information on using Contexts.
1011func (c *WorkMail) DeleteAccessControlRuleWithContext(ctx aws.Context, input *DeleteAccessControlRuleInput, opts ...request.Option) (*DeleteAccessControlRuleOutput, error) {
1012	req, out := c.DeleteAccessControlRuleRequest(input)
1013	req.SetContext(ctx)
1014	req.ApplyOptions(opts...)
1015	return out, req.Send()
1016}
1017
1018const opDeleteAlias = "DeleteAlias"
1019
1020// DeleteAliasRequest generates a "aws/request.Request" representing the
1021// client's request for the DeleteAlias operation. The "output" return
1022// value will be populated with the request's response once the request completes
1023// successfully.
1024//
1025// Use "Send" method on the returned Request to send the API call to the service.
1026// the "output" return value is not valid until after Send returns without error.
1027//
1028// See DeleteAlias for more information on using the DeleteAlias
1029// API call, and error handling.
1030//
1031// This method is useful when you want to inject custom logic or configuration
1032// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1033//
1034//
1035//    // Example sending a request using the DeleteAliasRequest method.
1036//    req, resp := client.DeleteAliasRequest(params)
1037//
1038//    err := req.Send()
1039//    if err == nil { // resp is now filled
1040//        fmt.Println(resp)
1041//    }
1042//
1043// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteAlias
1044func (c *WorkMail) DeleteAliasRequest(input *DeleteAliasInput) (req *request.Request, output *DeleteAliasOutput) {
1045	op := &request.Operation{
1046		Name:       opDeleteAlias,
1047		HTTPMethod: "POST",
1048		HTTPPath:   "/",
1049	}
1050
1051	if input == nil {
1052		input = &DeleteAliasInput{}
1053	}
1054
1055	output = &DeleteAliasOutput{}
1056	req = c.newRequest(op, input, output)
1057	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1058	return
1059}
1060
1061// DeleteAlias API operation for Amazon WorkMail.
1062//
1063// Remove one or more specified aliases from a set of aliases for a given user.
1064//
1065// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1066// with awserr.Error's Code and Message methods to get detailed information about
1067// the error.
1068//
1069// See the AWS API reference guide for Amazon WorkMail's
1070// API operation DeleteAlias for usage and error information.
1071//
1072// Returned Error Types:
1073//   * EntityNotFoundException
1074//   The identifier supplied for the user, group, or resource does not exist in
1075//   your organization.
1076//
1077//   * EntityStateException
1078//   You are performing an operation on a user, group, or resource that isn't
1079//   in the expected state, such as trying to delete an active user.
1080//
1081//   * InvalidParameterException
1082//   One or more of the input parameters don't match the service's restrictions.
1083//
1084//   * OrganizationNotFoundException
1085//   An operation received a valid organization identifier that either doesn't
1086//   belong or exist in the system.
1087//
1088//   * OrganizationStateException
1089//   The organization must have a valid state to perform certain operations on
1090//   the organization or its members.
1091//
1092// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteAlias
1093func (c *WorkMail) DeleteAlias(input *DeleteAliasInput) (*DeleteAliasOutput, error) {
1094	req, out := c.DeleteAliasRequest(input)
1095	return out, req.Send()
1096}
1097
1098// DeleteAliasWithContext is the same as DeleteAlias with the addition of
1099// the ability to pass a context and additional request options.
1100//
1101// See DeleteAlias for details on how to use this API operation.
1102//
1103// The context must be non-nil and will be used for request cancellation. If
1104// the context is nil a panic will occur. In the future the SDK may create
1105// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1106// for more information on using Contexts.
1107func (c *WorkMail) DeleteAliasWithContext(ctx aws.Context, input *DeleteAliasInput, opts ...request.Option) (*DeleteAliasOutput, error) {
1108	req, out := c.DeleteAliasRequest(input)
1109	req.SetContext(ctx)
1110	req.ApplyOptions(opts...)
1111	return out, req.Send()
1112}
1113
1114const opDeleteGroup = "DeleteGroup"
1115
1116// DeleteGroupRequest generates a "aws/request.Request" representing the
1117// client's request for the DeleteGroup operation. The "output" return
1118// value will be populated with the request's response once the request completes
1119// successfully.
1120//
1121// Use "Send" method on the returned Request to send the API call to the service.
1122// the "output" return value is not valid until after Send returns without error.
1123//
1124// See DeleteGroup for more information on using the DeleteGroup
1125// API call, and error handling.
1126//
1127// This method is useful when you want to inject custom logic or configuration
1128// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1129//
1130//
1131//    // Example sending a request using the DeleteGroupRequest method.
1132//    req, resp := client.DeleteGroupRequest(params)
1133//
1134//    err := req.Send()
1135//    if err == nil { // resp is now filled
1136//        fmt.Println(resp)
1137//    }
1138//
1139// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteGroup
1140func (c *WorkMail) DeleteGroupRequest(input *DeleteGroupInput) (req *request.Request, output *DeleteGroupOutput) {
1141	op := &request.Operation{
1142		Name:       opDeleteGroup,
1143		HTTPMethod: "POST",
1144		HTTPPath:   "/",
1145	}
1146
1147	if input == nil {
1148		input = &DeleteGroupInput{}
1149	}
1150
1151	output = &DeleteGroupOutput{}
1152	req = c.newRequest(op, input, output)
1153	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1154	return
1155}
1156
1157// DeleteGroup API operation for Amazon WorkMail.
1158//
1159// Deletes a group from Amazon WorkMail.
1160//
1161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1162// with awserr.Error's Code and Message methods to get detailed information about
1163// the error.
1164//
1165// See the AWS API reference guide for Amazon WorkMail's
1166// API operation DeleteGroup for usage and error information.
1167//
1168// Returned Error Types:
1169//   * DirectoryServiceAuthenticationFailedException
1170//   The directory service doesn't recognize the credentials supplied by WorkMail.
1171//
1172//   * DirectoryUnavailableException
1173//   The directory is unavailable. It might be located in another Region or deleted.
1174//
1175//   * EntityStateException
1176//   You are performing an operation on a user, group, or resource that isn't
1177//   in the expected state, such as trying to delete an active user.
1178//
1179//   * InvalidParameterException
1180//   One or more of the input parameters don't match the service's restrictions.
1181//
1182//   * OrganizationNotFoundException
1183//   An operation received a valid organization identifier that either doesn't
1184//   belong or exist in the system.
1185//
1186//   * OrganizationStateException
1187//   The organization must have a valid state to perform certain operations on
1188//   the organization or its members.
1189//
1190//   * UnsupportedOperationException
1191//   You can't perform a write operation against a read-only directory.
1192//
1193// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteGroup
1194func (c *WorkMail) DeleteGroup(input *DeleteGroupInput) (*DeleteGroupOutput, error) {
1195	req, out := c.DeleteGroupRequest(input)
1196	return out, req.Send()
1197}
1198
1199// DeleteGroupWithContext is the same as DeleteGroup with the addition of
1200// the ability to pass a context and additional request options.
1201//
1202// See DeleteGroup for details on how to use this API operation.
1203//
1204// The context must be non-nil and will be used for request cancellation. If
1205// the context is nil a panic will occur. In the future the SDK may create
1206// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1207// for more information on using Contexts.
1208func (c *WorkMail) DeleteGroupWithContext(ctx aws.Context, input *DeleteGroupInput, opts ...request.Option) (*DeleteGroupOutput, error) {
1209	req, out := c.DeleteGroupRequest(input)
1210	req.SetContext(ctx)
1211	req.ApplyOptions(opts...)
1212	return out, req.Send()
1213}
1214
1215const opDeleteMailboxPermissions = "DeleteMailboxPermissions"
1216
1217// DeleteMailboxPermissionsRequest generates a "aws/request.Request" representing the
1218// client's request for the DeleteMailboxPermissions operation. The "output" return
1219// value will be populated with the request's response once the request completes
1220// successfully.
1221//
1222// Use "Send" method on the returned Request to send the API call to the service.
1223// the "output" return value is not valid until after Send returns without error.
1224//
1225// See DeleteMailboxPermissions for more information on using the DeleteMailboxPermissions
1226// API call, and error handling.
1227//
1228// This method is useful when you want to inject custom logic or configuration
1229// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1230//
1231//
1232//    // Example sending a request using the DeleteMailboxPermissionsRequest method.
1233//    req, resp := client.DeleteMailboxPermissionsRequest(params)
1234//
1235//    err := req.Send()
1236//    if err == nil { // resp is now filled
1237//        fmt.Println(resp)
1238//    }
1239//
1240// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteMailboxPermissions
1241func (c *WorkMail) DeleteMailboxPermissionsRequest(input *DeleteMailboxPermissionsInput) (req *request.Request, output *DeleteMailboxPermissionsOutput) {
1242	op := &request.Operation{
1243		Name:       opDeleteMailboxPermissions,
1244		HTTPMethod: "POST",
1245		HTTPPath:   "/",
1246	}
1247
1248	if input == nil {
1249		input = &DeleteMailboxPermissionsInput{}
1250	}
1251
1252	output = &DeleteMailboxPermissionsOutput{}
1253	req = c.newRequest(op, input, output)
1254	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1255	return
1256}
1257
1258// DeleteMailboxPermissions API operation for Amazon WorkMail.
1259//
1260// Deletes permissions granted to a member (user or group).
1261//
1262// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1263// with awserr.Error's Code and Message methods to get detailed information about
1264// the error.
1265//
1266// See the AWS API reference guide for Amazon WorkMail's
1267// API operation DeleteMailboxPermissions for usage and error information.
1268//
1269// Returned Error Types:
1270//   * EntityNotFoundException
1271//   The identifier supplied for the user, group, or resource does not exist in
1272//   your organization.
1273//
1274//   * EntityStateException
1275//   You are performing an operation on a user, group, or resource that isn't
1276//   in the expected state, such as trying to delete an active user.
1277//
1278//   * InvalidParameterException
1279//   One or more of the input parameters don't match the service's restrictions.
1280//
1281//   * OrganizationNotFoundException
1282//   An operation received a valid organization identifier that either doesn't
1283//   belong or exist in the system.
1284//
1285//   * OrganizationStateException
1286//   The organization must have a valid state to perform certain operations on
1287//   the organization or its members.
1288//
1289// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteMailboxPermissions
1290func (c *WorkMail) DeleteMailboxPermissions(input *DeleteMailboxPermissionsInput) (*DeleteMailboxPermissionsOutput, error) {
1291	req, out := c.DeleteMailboxPermissionsRequest(input)
1292	return out, req.Send()
1293}
1294
1295// DeleteMailboxPermissionsWithContext is the same as DeleteMailboxPermissions with the addition of
1296// the ability to pass a context and additional request options.
1297//
1298// See DeleteMailboxPermissions for details on how to use this API operation.
1299//
1300// The context must be non-nil and will be used for request cancellation. If
1301// the context is nil a panic will occur. In the future the SDK may create
1302// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1303// for more information on using Contexts.
1304func (c *WorkMail) DeleteMailboxPermissionsWithContext(ctx aws.Context, input *DeleteMailboxPermissionsInput, opts ...request.Option) (*DeleteMailboxPermissionsOutput, error) {
1305	req, out := c.DeleteMailboxPermissionsRequest(input)
1306	req.SetContext(ctx)
1307	req.ApplyOptions(opts...)
1308	return out, req.Send()
1309}
1310
1311const opDeleteMobileDeviceAccessRule = "DeleteMobileDeviceAccessRule"
1312
1313// DeleteMobileDeviceAccessRuleRequest generates a "aws/request.Request" representing the
1314// client's request for the DeleteMobileDeviceAccessRule operation. The "output" return
1315// value will be populated with the request's response once the request completes
1316// successfully.
1317//
1318// Use "Send" method on the returned Request to send the API call to the service.
1319// the "output" return value is not valid until after Send returns without error.
1320//
1321// See DeleteMobileDeviceAccessRule for more information on using the DeleteMobileDeviceAccessRule
1322// API call, and error handling.
1323//
1324// This method is useful when you want to inject custom logic or configuration
1325// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1326//
1327//
1328//    // Example sending a request using the DeleteMobileDeviceAccessRuleRequest method.
1329//    req, resp := client.DeleteMobileDeviceAccessRuleRequest(params)
1330//
1331//    err := req.Send()
1332//    if err == nil { // resp is now filled
1333//        fmt.Println(resp)
1334//    }
1335//
1336// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteMobileDeviceAccessRule
1337func (c *WorkMail) DeleteMobileDeviceAccessRuleRequest(input *DeleteMobileDeviceAccessRuleInput) (req *request.Request, output *DeleteMobileDeviceAccessRuleOutput) {
1338	op := &request.Operation{
1339		Name:       opDeleteMobileDeviceAccessRule,
1340		HTTPMethod: "POST",
1341		HTTPPath:   "/",
1342	}
1343
1344	if input == nil {
1345		input = &DeleteMobileDeviceAccessRuleInput{}
1346	}
1347
1348	output = &DeleteMobileDeviceAccessRuleOutput{}
1349	req = c.newRequest(op, input, output)
1350	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1351	return
1352}
1353
1354// DeleteMobileDeviceAccessRule API operation for Amazon WorkMail.
1355//
1356// Deletes a mobile device access rule for the specified Amazon WorkMail organization.
1357//
1358// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1359// with awserr.Error's Code and Message methods to get detailed information about
1360// the error.
1361//
1362// See the AWS API reference guide for Amazon WorkMail's
1363// API operation DeleteMobileDeviceAccessRule for usage and error information.
1364//
1365// Returned Error Types:
1366//   * InvalidParameterException
1367//   One or more of the input parameters don't match the service's restrictions.
1368//
1369//   * OrganizationNotFoundException
1370//   An operation received a valid organization identifier that either doesn't
1371//   belong or exist in the system.
1372//
1373//   * OrganizationStateException
1374//   The organization must have a valid state to perform certain operations on
1375//   the organization or its members.
1376//
1377// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteMobileDeviceAccessRule
1378func (c *WorkMail) DeleteMobileDeviceAccessRule(input *DeleteMobileDeviceAccessRuleInput) (*DeleteMobileDeviceAccessRuleOutput, error) {
1379	req, out := c.DeleteMobileDeviceAccessRuleRequest(input)
1380	return out, req.Send()
1381}
1382
1383// DeleteMobileDeviceAccessRuleWithContext is the same as DeleteMobileDeviceAccessRule with the addition of
1384// the ability to pass a context and additional request options.
1385//
1386// See DeleteMobileDeviceAccessRule for details on how to use this API operation.
1387//
1388// The context must be non-nil and will be used for request cancellation. If
1389// the context is nil a panic will occur. In the future the SDK may create
1390// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1391// for more information on using Contexts.
1392func (c *WorkMail) DeleteMobileDeviceAccessRuleWithContext(ctx aws.Context, input *DeleteMobileDeviceAccessRuleInput, opts ...request.Option) (*DeleteMobileDeviceAccessRuleOutput, error) {
1393	req, out := c.DeleteMobileDeviceAccessRuleRequest(input)
1394	req.SetContext(ctx)
1395	req.ApplyOptions(opts...)
1396	return out, req.Send()
1397}
1398
1399const opDeleteOrganization = "DeleteOrganization"
1400
1401// DeleteOrganizationRequest generates a "aws/request.Request" representing the
1402// client's request for the DeleteOrganization operation. The "output" return
1403// value will be populated with the request's response once the request completes
1404// successfully.
1405//
1406// Use "Send" method on the returned Request to send the API call to the service.
1407// the "output" return value is not valid until after Send returns without error.
1408//
1409// See DeleteOrganization for more information on using the DeleteOrganization
1410// API call, and error handling.
1411//
1412// This method is useful when you want to inject custom logic or configuration
1413// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1414//
1415//
1416//    // Example sending a request using the DeleteOrganizationRequest method.
1417//    req, resp := client.DeleteOrganizationRequest(params)
1418//
1419//    err := req.Send()
1420//    if err == nil { // resp is now filled
1421//        fmt.Println(resp)
1422//    }
1423//
1424// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteOrganization
1425func (c *WorkMail) DeleteOrganizationRequest(input *DeleteOrganizationInput) (req *request.Request, output *DeleteOrganizationOutput) {
1426	op := &request.Operation{
1427		Name:       opDeleteOrganization,
1428		HTTPMethod: "POST",
1429		HTTPPath:   "/",
1430	}
1431
1432	if input == nil {
1433		input = &DeleteOrganizationInput{}
1434	}
1435
1436	output = &DeleteOrganizationOutput{}
1437	req = c.newRequest(op, input, output)
1438	return
1439}
1440
1441// DeleteOrganization API operation for Amazon WorkMail.
1442//
1443// Deletes an Amazon WorkMail organization and all underlying AWS resources
1444// managed by Amazon WorkMail as part of the organization. You can choose whether
1445// to delete the associated directory. For more information, see Removing an
1446// organization (https://docs.aws.amazon.com/workmail/latest/adminguide/remove_organization.html)
1447// in the Amazon WorkMail Administrator Guide.
1448//
1449// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1450// with awserr.Error's Code and Message methods to get detailed information about
1451// the error.
1452//
1453// See the AWS API reference guide for Amazon WorkMail's
1454// API operation DeleteOrganization for usage and error information.
1455//
1456// Returned Error Types:
1457//   * InvalidParameterException
1458//   One or more of the input parameters don't match the service's restrictions.
1459//
1460//   * OrganizationNotFoundException
1461//   An operation received a valid organization identifier that either doesn't
1462//   belong or exist in the system.
1463//
1464//   * OrganizationStateException
1465//   The organization must have a valid state to perform certain operations on
1466//   the organization or its members.
1467//
1468// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteOrganization
1469func (c *WorkMail) DeleteOrganization(input *DeleteOrganizationInput) (*DeleteOrganizationOutput, error) {
1470	req, out := c.DeleteOrganizationRequest(input)
1471	return out, req.Send()
1472}
1473
1474// DeleteOrganizationWithContext is the same as DeleteOrganization with the addition of
1475// the ability to pass a context and additional request options.
1476//
1477// See DeleteOrganization for details on how to use this API operation.
1478//
1479// The context must be non-nil and will be used for request cancellation. If
1480// the context is nil a panic will occur. In the future the SDK may create
1481// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1482// for more information on using Contexts.
1483func (c *WorkMail) DeleteOrganizationWithContext(ctx aws.Context, input *DeleteOrganizationInput, opts ...request.Option) (*DeleteOrganizationOutput, error) {
1484	req, out := c.DeleteOrganizationRequest(input)
1485	req.SetContext(ctx)
1486	req.ApplyOptions(opts...)
1487	return out, req.Send()
1488}
1489
1490const opDeleteResource = "DeleteResource"
1491
1492// DeleteResourceRequest generates a "aws/request.Request" representing the
1493// client's request for the DeleteResource operation. The "output" return
1494// value will be populated with the request's response once the request completes
1495// successfully.
1496//
1497// Use "Send" method on the returned Request to send the API call to the service.
1498// the "output" return value is not valid until after Send returns without error.
1499//
1500// See DeleteResource for more information on using the DeleteResource
1501// API call, and error handling.
1502//
1503// This method is useful when you want to inject custom logic or configuration
1504// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1505//
1506//
1507//    // Example sending a request using the DeleteResourceRequest method.
1508//    req, resp := client.DeleteResourceRequest(params)
1509//
1510//    err := req.Send()
1511//    if err == nil { // resp is now filled
1512//        fmt.Println(resp)
1513//    }
1514//
1515// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteResource
1516func (c *WorkMail) DeleteResourceRequest(input *DeleteResourceInput) (req *request.Request, output *DeleteResourceOutput) {
1517	op := &request.Operation{
1518		Name:       opDeleteResource,
1519		HTTPMethod: "POST",
1520		HTTPPath:   "/",
1521	}
1522
1523	if input == nil {
1524		input = &DeleteResourceInput{}
1525	}
1526
1527	output = &DeleteResourceOutput{}
1528	req = c.newRequest(op, input, output)
1529	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1530	return
1531}
1532
1533// DeleteResource API operation for Amazon WorkMail.
1534//
1535// Deletes the specified resource.
1536//
1537// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1538// with awserr.Error's Code and Message methods to get detailed information about
1539// the error.
1540//
1541// See the AWS API reference guide for Amazon WorkMail's
1542// API operation DeleteResource for usage and error information.
1543//
1544// Returned Error Types:
1545//   * EntityStateException
1546//   You are performing an operation on a user, group, or resource that isn't
1547//   in the expected state, such as trying to delete an active user.
1548//
1549//   * InvalidParameterException
1550//   One or more of the input parameters don't match the service's restrictions.
1551//
1552//   * OrganizationNotFoundException
1553//   An operation received a valid organization identifier that either doesn't
1554//   belong or exist in the system.
1555//
1556//   * OrganizationStateException
1557//   The organization must have a valid state to perform certain operations on
1558//   the organization or its members.
1559//
1560// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteResource
1561func (c *WorkMail) DeleteResource(input *DeleteResourceInput) (*DeleteResourceOutput, error) {
1562	req, out := c.DeleteResourceRequest(input)
1563	return out, req.Send()
1564}
1565
1566// DeleteResourceWithContext is the same as DeleteResource with the addition of
1567// the ability to pass a context and additional request options.
1568//
1569// See DeleteResource for details on how to use this API operation.
1570//
1571// The context must be non-nil and will be used for request cancellation. If
1572// the context is nil a panic will occur. In the future the SDK may create
1573// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1574// for more information on using Contexts.
1575func (c *WorkMail) DeleteResourceWithContext(ctx aws.Context, input *DeleteResourceInput, opts ...request.Option) (*DeleteResourceOutput, error) {
1576	req, out := c.DeleteResourceRequest(input)
1577	req.SetContext(ctx)
1578	req.ApplyOptions(opts...)
1579	return out, req.Send()
1580}
1581
1582const opDeleteRetentionPolicy = "DeleteRetentionPolicy"
1583
1584// DeleteRetentionPolicyRequest generates a "aws/request.Request" representing the
1585// client's request for the DeleteRetentionPolicy operation. The "output" return
1586// value will be populated with the request's response once the request completes
1587// successfully.
1588//
1589// Use "Send" method on the returned Request to send the API call to the service.
1590// the "output" return value is not valid until after Send returns without error.
1591//
1592// See DeleteRetentionPolicy for more information on using the DeleteRetentionPolicy
1593// API call, and error handling.
1594//
1595// This method is useful when you want to inject custom logic or configuration
1596// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1597//
1598//
1599//    // Example sending a request using the DeleteRetentionPolicyRequest method.
1600//    req, resp := client.DeleteRetentionPolicyRequest(params)
1601//
1602//    err := req.Send()
1603//    if err == nil { // resp is now filled
1604//        fmt.Println(resp)
1605//    }
1606//
1607// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteRetentionPolicy
1608func (c *WorkMail) DeleteRetentionPolicyRequest(input *DeleteRetentionPolicyInput) (req *request.Request, output *DeleteRetentionPolicyOutput) {
1609	op := &request.Operation{
1610		Name:       opDeleteRetentionPolicy,
1611		HTTPMethod: "POST",
1612		HTTPPath:   "/",
1613	}
1614
1615	if input == nil {
1616		input = &DeleteRetentionPolicyInput{}
1617	}
1618
1619	output = &DeleteRetentionPolicyOutput{}
1620	req = c.newRequest(op, input, output)
1621	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1622	return
1623}
1624
1625// DeleteRetentionPolicy API operation for Amazon WorkMail.
1626//
1627// Deletes the specified retention policy from the specified organization.
1628//
1629// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1630// with awserr.Error's Code and Message methods to get detailed information about
1631// the error.
1632//
1633// See the AWS API reference guide for Amazon WorkMail's
1634// API operation DeleteRetentionPolicy for usage and error information.
1635//
1636// Returned Error Types:
1637//   * InvalidParameterException
1638//   One or more of the input parameters don't match the service's restrictions.
1639//
1640//   * OrganizationNotFoundException
1641//   An operation received a valid organization identifier that either doesn't
1642//   belong or exist in the system.
1643//
1644//   * OrganizationStateException
1645//   The organization must have a valid state to perform certain operations on
1646//   the organization or its members.
1647//
1648// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteRetentionPolicy
1649func (c *WorkMail) DeleteRetentionPolicy(input *DeleteRetentionPolicyInput) (*DeleteRetentionPolicyOutput, error) {
1650	req, out := c.DeleteRetentionPolicyRequest(input)
1651	return out, req.Send()
1652}
1653
1654// DeleteRetentionPolicyWithContext is the same as DeleteRetentionPolicy with the addition of
1655// the ability to pass a context and additional request options.
1656//
1657// See DeleteRetentionPolicy for details on how to use this API operation.
1658//
1659// The context must be non-nil and will be used for request cancellation. If
1660// the context is nil a panic will occur. In the future the SDK may create
1661// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1662// for more information on using Contexts.
1663func (c *WorkMail) DeleteRetentionPolicyWithContext(ctx aws.Context, input *DeleteRetentionPolicyInput, opts ...request.Option) (*DeleteRetentionPolicyOutput, error) {
1664	req, out := c.DeleteRetentionPolicyRequest(input)
1665	req.SetContext(ctx)
1666	req.ApplyOptions(opts...)
1667	return out, req.Send()
1668}
1669
1670const opDeleteUser = "DeleteUser"
1671
1672// DeleteUserRequest generates a "aws/request.Request" representing the
1673// client's request for the DeleteUser operation. The "output" return
1674// value will be populated with the request's response once the request completes
1675// successfully.
1676//
1677// Use "Send" method on the returned Request to send the API call to the service.
1678// the "output" return value is not valid until after Send returns without error.
1679//
1680// See DeleteUser for more information on using the DeleteUser
1681// API call, and error handling.
1682//
1683// This method is useful when you want to inject custom logic or configuration
1684// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1685//
1686//
1687//    // Example sending a request using the DeleteUserRequest method.
1688//    req, resp := client.DeleteUserRequest(params)
1689//
1690//    err := req.Send()
1691//    if err == nil { // resp is now filled
1692//        fmt.Println(resp)
1693//    }
1694//
1695// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteUser
1696func (c *WorkMail) DeleteUserRequest(input *DeleteUserInput) (req *request.Request, output *DeleteUserOutput) {
1697	op := &request.Operation{
1698		Name:       opDeleteUser,
1699		HTTPMethod: "POST",
1700		HTTPPath:   "/",
1701	}
1702
1703	if input == nil {
1704		input = &DeleteUserInput{}
1705	}
1706
1707	output = &DeleteUserOutput{}
1708	req = c.newRequest(op, input, output)
1709	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1710	return
1711}
1712
1713// DeleteUser API operation for Amazon WorkMail.
1714//
1715// Deletes a user from Amazon WorkMail and all subsequent systems. Before you
1716// can delete a user, the user state must be DISABLED. Use the DescribeUser
1717// action to confirm the user state.
1718//
1719// Deleting a user is permanent and cannot be undone. WorkMail archives user
1720// mailboxes for 30 days before they are permanently removed.
1721//
1722// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1723// with awserr.Error's Code and Message methods to get detailed information about
1724// the error.
1725//
1726// See the AWS API reference guide for Amazon WorkMail's
1727// API operation DeleteUser for usage and error information.
1728//
1729// Returned Error Types:
1730//   * DirectoryServiceAuthenticationFailedException
1731//   The directory service doesn't recognize the credentials supplied by WorkMail.
1732//
1733//   * DirectoryUnavailableException
1734//   The directory is unavailable. It might be located in another Region or deleted.
1735//
1736//   * EntityStateException
1737//   You are performing an operation on a user, group, or resource that isn't
1738//   in the expected state, such as trying to delete an active user.
1739//
1740//   * InvalidParameterException
1741//   One or more of the input parameters don't match the service's restrictions.
1742//
1743//   * OrganizationNotFoundException
1744//   An operation received a valid organization identifier that either doesn't
1745//   belong or exist in the system.
1746//
1747//   * OrganizationStateException
1748//   The organization must have a valid state to perform certain operations on
1749//   the organization or its members.
1750//
1751//   * UnsupportedOperationException
1752//   You can't perform a write operation against a read-only directory.
1753//
1754// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeleteUser
1755func (c *WorkMail) DeleteUser(input *DeleteUserInput) (*DeleteUserOutput, error) {
1756	req, out := c.DeleteUserRequest(input)
1757	return out, req.Send()
1758}
1759
1760// DeleteUserWithContext is the same as DeleteUser with the addition of
1761// the ability to pass a context and additional request options.
1762//
1763// See DeleteUser for details on how to use this API operation.
1764//
1765// The context must be non-nil and will be used for request cancellation. If
1766// the context is nil a panic will occur. In the future the SDK may create
1767// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1768// for more information on using Contexts.
1769func (c *WorkMail) DeleteUserWithContext(ctx aws.Context, input *DeleteUserInput, opts ...request.Option) (*DeleteUserOutput, error) {
1770	req, out := c.DeleteUserRequest(input)
1771	req.SetContext(ctx)
1772	req.ApplyOptions(opts...)
1773	return out, req.Send()
1774}
1775
1776const opDeregisterFromWorkMail = "DeregisterFromWorkMail"
1777
1778// DeregisterFromWorkMailRequest generates a "aws/request.Request" representing the
1779// client's request for the DeregisterFromWorkMail operation. The "output" return
1780// value will be populated with the request's response once the request completes
1781// successfully.
1782//
1783// Use "Send" method on the returned Request to send the API call to the service.
1784// the "output" return value is not valid until after Send returns without error.
1785//
1786// See DeregisterFromWorkMail for more information on using the DeregisterFromWorkMail
1787// API call, and error handling.
1788//
1789// This method is useful when you want to inject custom logic or configuration
1790// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1791//
1792//
1793//    // Example sending a request using the DeregisterFromWorkMailRequest method.
1794//    req, resp := client.DeregisterFromWorkMailRequest(params)
1795//
1796//    err := req.Send()
1797//    if err == nil { // resp is now filled
1798//        fmt.Println(resp)
1799//    }
1800//
1801// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeregisterFromWorkMail
1802func (c *WorkMail) DeregisterFromWorkMailRequest(input *DeregisterFromWorkMailInput) (req *request.Request, output *DeregisterFromWorkMailOutput) {
1803	op := &request.Operation{
1804		Name:       opDeregisterFromWorkMail,
1805		HTTPMethod: "POST",
1806		HTTPPath:   "/",
1807	}
1808
1809	if input == nil {
1810		input = &DeregisterFromWorkMailInput{}
1811	}
1812
1813	output = &DeregisterFromWorkMailOutput{}
1814	req = c.newRequest(op, input, output)
1815	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1816	return
1817}
1818
1819// DeregisterFromWorkMail API operation for Amazon WorkMail.
1820//
1821// Mark a user, group, or resource as no longer used in Amazon WorkMail. This
1822// action disassociates the mailbox and schedules it for clean-up. WorkMail
1823// keeps mailboxes for 30 days before they are permanently removed. The functionality
1824// in the console is Disable.
1825//
1826// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1827// with awserr.Error's Code and Message methods to get detailed information about
1828// the error.
1829//
1830// See the AWS API reference guide for Amazon WorkMail's
1831// API operation DeregisterFromWorkMail for usage and error information.
1832//
1833// Returned Error Types:
1834//   * EntityNotFoundException
1835//   The identifier supplied for the user, group, or resource does not exist in
1836//   your organization.
1837//
1838//   * EntityStateException
1839//   You are performing an operation on a user, group, or resource that isn't
1840//   in the expected state, such as trying to delete an active user.
1841//
1842//   * InvalidParameterException
1843//   One or more of the input parameters don't match the service's restrictions.
1844//
1845//   * OrganizationNotFoundException
1846//   An operation received a valid organization identifier that either doesn't
1847//   belong or exist in the system.
1848//
1849//   * OrganizationStateException
1850//   The organization must have a valid state to perform certain operations on
1851//   the organization or its members.
1852//
1853// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DeregisterFromWorkMail
1854func (c *WorkMail) DeregisterFromWorkMail(input *DeregisterFromWorkMailInput) (*DeregisterFromWorkMailOutput, error) {
1855	req, out := c.DeregisterFromWorkMailRequest(input)
1856	return out, req.Send()
1857}
1858
1859// DeregisterFromWorkMailWithContext is the same as DeregisterFromWorkMail with the addition of
1860// the ability to pass a context and additional request options.
1861//
1862// See DeregisterFromWorkMail for details on how to use this API operation.
1863//
1864// The context must be non-nil and will be used for request cancellation. If
1865// the context is nil a panic will occur. In the future the SDK may create
1866// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1867// for more information on using Contexts.
1868func (c *WorkMail) DeregisterFromWorkMailWithContext(ctx aws.Context, input *DeregisterFromWorkMailInput, opts ...request.Option) (*DeregisterFromWorkMailOutput, error) {
1869	req, out := c.DeregisterFromWorkMailRequest(input)
1870	req.SetContext(ctx)
1871	req.ApplyOptions(opts...)
1872	return out, req.Send()
1873}
1874
1875const opDescribeGroup = "DescribeGroup"
1876
1877// DescribeGroupRequest generates a "aws/request.Request" representing the
1878// client's request for the DescribeGroup operation. The "output" return
1879// value will be populated with the request's response once the request completes
1880// successfully.
1881//
1882// Use "Send" method on the returned Request to send the API call to the service.
1883// the "output" return value is not valid until after Send returns without error.
1884//
1885// See DescribeGroup for more information on using the DescribeGroup
1886// API call, and error handling.
1887//
1888// This method is useful when you want to inject custom logic or configuration
1889// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1890//
1891//
1892//    // Example sending a request using the DescribeGroupRequest method.
1893//    req, resp := client.DescribeGroupRequest(params)
1894//
1895//    err := req.Send()
1896//    if err == nil { // resp is now filled
1897//        fmt.Println(resp)
1898//    }
1899//
1900// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeGroup
1901func (c *WorkMail) DescribeGroupRequest(input *DescribeGroupInput) (req *request.Request, output *DescribeGroupOutput) {
1902	op := &request.Operation{
1903		Name:       opDescribeGroup,
1904		HTTPMethod: "POST",
1905		HTTPPath:   "/",
1906	}
1907
1908	if input == nil {
1909		input = &DescribeGroupInput{}
1910	}
1911
1912	output = &DescribeGroupOutput{}
1913	req = c.newRequest(op, input, output)
1914	return
1915}
1916
1917// DescribeGroup API operation for Amazon WorkMail.
1918//
1919// Returns the data available for the group.
1920//
1921// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1922// with awserr.Error's Code and Message methods to get detailed information about
1923// the error.
1924//
1925// See the AWS API reference guide for Amazon WorkMail's
1926// API operation DescribeGroup for usage and error information.
1927//
1928// Returned Error Types:
1929//   * EntityNotFoundException
1930//   The identifier supplied for the user, group, or resource does not exist in
1931//   your organization.
1932//
1933//   * InvalidParameterException
1934//   One or more of the input parameters don't match the service's restrictions.
1935//
1936//   * OrganizationNotFoundException
1937//   An operation received a valid organization identifier that either doesn't
1938//   belong or exist in the system.
1939//
1940//   * OrganizationStateException
1941//   The organization must have a valid state to perform certain operations on
1942//   the organization or its members.
1943//
1944// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeGroup
1945func (c *WorkMail) DescribeGroup(input *DescribeGroupInput) (*DescribeGroupOutput, error) {
1946	req, out := c.DescribeGroupRequest(input)
1947	return out, req.Send()
1948}
1949
1950// DescribeGroupWithContext is the same as DescribeGroup with the addition of
1951// the ability to pass a context and additional request options.
1952//
1953// See DescribeGroup for details on how to use this API operation.
1954//
1955// The context must be non-nil and will be used for request cancellation. If
1956// the context is nil a panic will occur. In the future the SDK may create
1957// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1958// for more information on using Contexts.
1959func (c *WorkMail) DescribeGroupWithContext(ctx aws.Context, input *DescribeGroupInput, opts ...request.Option) (*DescribeGroupOutput, error) {
1960	req, out := c.DescribeGroupRequest(input)
1961	req.SetContext(ctx)
1962	req.ApplyOptions(opts...)
1963	return out, req.Send()
1964}
1965
1966const opDescribeMailboxExportJob = "DescribeMailboxExportJob"
1967
1968// DescribeMailboxExportJobRequest generates a "aws/request.Request" representing the
1969// client's request for the DescribeMailboxExportJob operation. The "output" return
1970// value will be populated with the request's response once the request completes
1971// successfully.
1972//
1973// Use "Send" method on the returned Request to send the API call to the service.
1974// the "output" return value is not valid until after Send returns without error.
1975//
1976// See DescribeMailboxExportJob for more information on using the DescribeMailboxExportJob
1977// API call, and error handling.
1978//
1979// This method is useful when you want to inject custom logic or configuration
1980// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1981//
1982//
1983//    // Example sending a request using the DescribeMailboxExportJobRequest method.
1984//    req, resp := client.DescribeMailboxExportJobRequest(params)
1985//
1986//    err := req.Send()
1987//    if err == nil { // resp is now filled
1988//        fmt.Println(resp)
1989//    }
1990//
1991// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeMailboxExportJob
1992func (c *WorkMail) DescribeMailboxExportJobRequest(input *DescribeMailboxExportJobInput) (req *request.Request, output *DescribeMailboxExportJobOutput) {
1993	op := &request.Operation{
1994		Name:       opDescribeMailboxExportJob,
1995		HTTPMethod: "POST",
1996		HTTPPath:   "/",
1997	}
1998
1999	if input == nil {
2000		input = &DescribeMailboxExportJobInput{}
2001	}
2002
2003	output = &DescribeMailboxExportJobOutput{}
2004	req = c.newRequest(op, input, output)
2005	return
2006}
2007
2008// DescribeMailboxExportJob API operation for Amazon WorkMail.
2009//
2010// Describes the current status of a mailbox export job.
2011//
2012// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2013// with awserr.Error's Code and Message methods to get detailed information about
2014// the error.
2015//
2016// See the AWS API reference guide for Amazon WorkMail's
2017// API operation DescribeMailboxExportJob for usage and error information.
2018//
2019// Returned Error Types:
2020//   * InvalidParameterException
2021//   One or more of the input parameters don't match the service's restrictions.
2022//
2023//   * OrganizationNotFoundException
2024//   An operation received a valid organization identifier that either doesn't
2025//   belong or exist in the system.
2026//
2027//   * OrganizationStateException
2028//   The organization must have a valid state to perform certain operations on
2029//   the organization or its members.
2030//
2031//   * EntityNotFoundException
2032//   The identifier supplied for the user, group, or resource does not exist in
2033//   your organization.
2034//
2035// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeMailboxExportJob
2036func (c *WorkMail) DescribeMailboxExportJob(input *DescribeMailboxExportJobInput) (*DescribeMailboxExportJobOutput, error) {
2037	req, out := c.DescribeMailboxExportJobRequest(input)
2038	return out, req.Send()
2039}
2040
2041// DescribeMailboxExportJobWithContext is the same as DescribeMailboxExportJob with the addition of
2042// the ability to pass a context and additional request options.
2043//
2044// See DescribeMailboxExportJob for details on how to use this API operation.
2045//
2046// The context must be non-nil and will be used for request cancellation. If
2047// the context is nil a panic will occur. In the future the SDK may create
2048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2049// for more information on using Contexts.
2050func (c *WorkMail) DescribeMailboxExportJobWithContext(ctx aws.Context, input *DescribeMailboxExportJobInput, opts ...request.Option) (*DescribeMailboxExportJobOutput, error) {
2051	req, out := c.DescribeMailboxExportJobRequest(input)
2052	req.SetContext(ctx)
2053	req.ApplyOptions(opts...)
2054	return out, req.Send()
2055}
2056
2057const opDescribeOrganization = "DescribeOrganization"
2058
2059// DescribeOrganizationRequest generates a "aws/request.Request" representing the
2060// client's request for the DescribeOrganization operation. The "output" return
2061// value will be populated with the request's response once the request completes
2062// successfully.
2063//
2064// Use "Send" method on the returned Request to send the API call to the service.
2065// the "output" return value is not valid until after Send returns without error.
2066//
2067// See DescribeOrganization for more information on using the DescribeOrganization
2068// API call, and error handling.
2069//
2070// This method is useful when you want to inject custom logic or configuration
2071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2072//
2073//
2074//    // Example sending a request using the DescribeOrganizationRequest method.
2075//    req, resp := client.DescribeOrganizationRequest(params)
2076//
2077//    err := req.Send()
2078//    if err == nil { // resp is now filled
2079//        fmt.Println(resp)
2080//    }
2081//
2082// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeOrganization
2083func (c *WorkMail) DescribeOrganizationRequest(input *DescribeOrganizationInput) (req *request.Request, output *DescribeOrganizationOutput) {
2084	op := &request.Operation{
2085		Name:       opDescribeOrganization,
2086		HTTPMethod: "POST",
2087		HTTPPath:   "/",
2088	}
2089
2090	if input == nil {
2091		input = &DescribeOrganizationInput{}
2092	}
2093
2094	output = &DescribeOrganizationOutput{}
2095	req = c.newRequest(op, input, output)
2096	return
2097}
2098
2099// DescribeOrganization API operation for Amazon WorkMail.
2100//
2101// Provides more information regarding a given organization based on its identifier.
2102//
2103// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2104// with awserr.Error's Code and Message methods to get detailed information about
2105// the error.
2106//
2107// See the AWS API reference guide for Amazon WorkMail's
2108// API operation DescribeOrganization for usage and error information.
2109//
2110// Returned Error Types:
2111//   * InvalidParameterException
2112//   One or more of the input parameters don't match the service's restrictions.
2113//
2114//   * OrganizationNotFoundException
2115//   An operation received a valid organization identifier that either doesn't
2116//   belong or exist in the system.
2117//
2118// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeOrganization
2119func (c *WorkMail) DescribeOrganization(input *DescribeOrganizationInput) (*DescribeOrganizationOutput, error) {
2120	req, out := c.DescribeOrganizationRequest(input)
2121	return out, req.Send()
2122}
2123
2124// DescribeOrganizationWithContext is the same as DescribeOrganization with the addition of
2125// the ability to pass a context and additional request options.
2126//
2127// See DescribeOrganization for details on how to use this API operation.
2128//
2129// The context must be non-nil and will be used for request cancellation. If
2130// the context is nil a panic will occur. In the future the SDK may create
2131// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2132// for more information on using Contexts.
2133func (c *WorkMail) DescribeOrganizationWithContext(ctx aws.Context, input *DescribeOrganizationInput, opts ...request.Option) (*DescribeOrganizationOutput, error) {
2134	req, out := c.DescribeOrganizationRequest(input)
2135	req.SetContext(ctx)
2136	req.ApplyOptions(opts...)
2137	return out, req.Send()
2138}
2139
2140const opDescribeResource = "DescribeResource"
2141
2142// DescribeResourceRequest generates a "aws/request.Request" representing the
2143// client's request for the DescribeResource operation. The "output" return
2144// value will be populated with the request's response once the request completes
2145// successfully.
2146//
2147// Use "Send" method on the returned Request to send the API call to the service.
2148// the "output" return value is not valid until after Send returns without error.
2149//
2150// See DescribeResource for more information on using the DescribeResource
2151// API call, and error handling.
2152//
2153// This method is useful when you want to inject custom logic or configuration
2154// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2155//
2156//
2157//    // Example sending a request using the DescribeResourceRequest method.
2158//    req, resp := client.DescribeResourceRequest(params)
2159//
2160//    err := req.Send()
2161//    if err == nil { // resp is now filled
2162//        fmt.Println(resp)
2163//    }
2164//
2165// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeResource
2166func (c *WorkMail) DescribeResourceRequest(input *DescribeResourceInput) (req *request.Request, output *DescribeResourceOutput) {
2167	op := &request.Operation{
2168		Name:       opDescribeResource,
2169		HTTPMethod: "POST",
2170		HTTPPath:   "/",
2171	}
2172
2173	if input == nil {
2174		input = &DescribeResourceInput{}
2175	}
2176
2177	output = &DescribeResourceOutput{}
2178	req = c.newRequest(op, input, output)
2179	return
2180}
2181
2182// DescribeResource API operation for Amazon WorkMail.
2183//
2184// Returns the data available for the resource.
2185//
2186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2187// with awserr.Error's Code and Message methods to get detailed information about
2188// the error.
2189//
2190// See the AWS API reference guide for Amazon WorkMail's
2191// API operation DescribeResource for usage and error information.
2192//
2193// Returned Error Types:
2194//   * EntityNotFoundException
2195//   The identifier supplied for the user, group, or resource does not exist in
2196//   your organization.
2197//
2198//   * InvalidParameterException
2199//   One or more of the input parameters don't match the service's restrictions.
2200//
2201//   * OrganizationNotFoundException
2202//   An operation received a valid organization identifier that either doesn't
2203//   belong or exist in the system.
2204//
2205//   * OrganizationStateException
2206//   The organization must have a valid state to perform certain operations on
2207//   the organization or its members.
2208//
2209// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeResource
2210func (c *WorkMail) DescribeResource(input *DescribeResourceInput) (*DescribeResourceOutput, error) {
2211	req, out := c.DescribeResourceRequest(input)
2212	return out, req.Send()
2213}
2214
2215// DescribeResourceWithContext is the same as DescribeResource with the addition of
2216// the ability to pass a context and additional request options.
2217//
2218// See DescribeResource for details on how to use this API operation.
2219//
2220// The context must be non-nil and will be used for request cancellation. If
2221// the context is nil a panic will occur. In the future the SDK may create
2222// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2223// for more information on using Contexts.
2224func (c *WorkMail) DescribeResourceWithContext(ctx aws.Context, input *DescribeResourceInput, opts ...request.Option) (*DescribeResourceOutput, error) {
2225	req, out := c.DescribeResourceRequest(input)
2226	req.SetContext(ctx)
2227	req.ApplyOptions(opts...)
2228	return out, req.Send()
2229}
2230
2231const opDescribeUser = "DescribeUser"
2232
2233// DescribeUserRequest generates a "aws/request.Request" representing the
2234// client's request for the DescribeUser operation. The "output" return
2235// value will be populated with the request's response once the request completes
2236// successfully.
2237//
2238// Use "Send" method on the returned Request to send the API call to the service.
2239// the "output" return value is not valid until after Send returns without error.
2240//
2241// See DescribeUser for more information on using the DescribeUser
2242// API call, and error handling.
2243//
2244// This method is useful when you want to inject custom logic or configuration
2245// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2246//
2247//
2248//    // Example sending a request using the DescribeUserRequest method.
2249//    req, resp := client.DescribeUserRequest(params)
2250//
2251//    err := req.Send()
2252//    if err == nil { // resp is now filled
2253//        fmt.Println(resp)
2254//    }
2255//
2256// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeUser
2257func (c *WorkMail) DescribeUserRequest(input *DescribeUserInput) (req *request.Request, output *DescribeUserOutput) {
2258	op := &request.Operation{
2259		Name:       opDescribeUser,
2260		HTTPMethod: "POST",
2261		HTTPPath:   "/",
2262	}
2263
2264	if input == nil {
2265		input = &DescribeUserInput{}
2266	}
2267
2268	output = &DescribeUserOutput{}
2269	req = c.newRequest(op, input, output)
2270	return
2271}
2272
2273// DescribeUser API operation for Amazon WorkMail.
2274//
2275// Provides information regarding the user.
2276//
2277// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2278// with awserr.Error's Code and Message methods to get detailed information about
2279// the error.
2280//
2281// See the AWS API reference guide for Amazon WorkMail's
2282// API operation DescribeUser for usage and error information.
2283//
2284// Returned Error Types:
2285//   * EntityNotFoundException
2286//   The identifier supplied for the user, group, or resource does not exist in
2287//   your organization.
2288//
2289//   * InvalidParameterException
2290//   One or more of the input parameters don't match the service's restrictions.
2291//
2292//   * OrganizationNotFoundException
2293//   An operation received a valid organization identifier that either doesn't
2294//   belong or exist in the system.
2295//
2296//   * OrganizationStateException
2297//   The organization must have a valid state to perform certain operations on
2298//   the organization or its members.
2299//
2300// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DescribeUser
2301func (c *WorkMail) DescribeUser(input *DescribeUserInput) (*DescribeUserOutput, error) {
2302	req, out := c.DescribeUserRequest(input)
2303	return out, req.Send()
2304}
2305
2306// DescribeUserWithContext is the same as DescribeUser with the addition of
2307// the ability to pass a context and additional request options.
2308//
2309// See DescribeUser for details on how to use this API operation.
2310//
2311// The context must be non-nil and will be used for request cancellation. If
2312// the context is nil a panic will occur. In the future the SDK may create
2313// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2314// for more information on using Contexts.
2315func (c *WorkMail) DescribeUserWithContext(ctx aws.Context, input *DescribeUserInput, opts ...request.Option) (*DescribeUserOutput, error) {
2316	req, out := c.DescribeUserRequest(input)
2317	req.SetContext(ctx)
2318	req.ApplyOptions(opts...)
2319	return out, req.Send()
2320}
2321
2322const opDisassociateDelegateFromResource = "DisassociateDelegateFromResource"
2323
2324// DisassociateDelegateFromResourceRequest generates a "aws/request.Request" representing the
2325// client's request for the DisassociateDelegateFromResource operation. The "output" return
2326// value will be populated with the request's response once the request completes
2327// successfully.
2328//
2329// Use "Send" method on the returned Request to send the API call to the service.
2330// the "output" return value is not valid until after Send returns without error.
2331//
2332// See DisassociateDelegateFromResource for more information on using the DisassociateDelegateFromResource
2333// API call, and error handling.
2334//
2335// This method is useful when you want to inject custom logic or configuration
2336// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2337//
2338//
2339//    // Example sending a request using the DisassociateDelegateFromResourceRequest method.
2340//    req, resp := client.DisassociateDelegateFromResourceRequest(params)
2341//
2342//    err := req.Send()
2343//    if err == nil { // resp is now filled
2344//        fmt.Println(resp)
2345//    }
2346//
2347// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DisassociateDelegateFromResource
2348func (c *WorkMail) DisassociateDelegateFromResourceRequest(input *DisassociateDelegateFromResourceInput) (req *request.Request, output *DisassociateDelegateFromResourceOutput) {
2349	op := &request.Operation{
2350		Name:       opDisassociateDelegateFromResource,
2351		HTTPMethod: "POST",
2352		HTTPPath:   "/",
2353	}
2354
2355	if input == nil {
2356		input = &DisassociateDelegateFromResourceInput{}
2357	}
2358
2359	output = &DisassociateDelegateFromResourceOutput{}
2360	req = c.newRequest(op, input, output)
2361	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2362	return
2363}
2364
2365// DisassociateDelegateFromResource API operation for Amazon WorkMail.
2366//
2367// Removes a member from the resource's set of delegates.
2368//
2369// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2370// with awserr.Error's Code and Message methods to get detailed information about
2371// the error.
2372//
2373// See the AWS API reference guide for Amazon WorkMail's
2374// API operation DisassociateDelegateFromResource for usage and error information.
2375//
2376// Returned Error Types:
2377//   * EntityNotFoundException
2378//   The identifier supplied for the user, group, or resource does not exist in
2379//   your organization.
2380//
2381//   * EntityStateException
2382//   You are performing an operation on a user, group, or resource that isn't
2383//   in the expected state, such as trying to delete an active user.
2384//
2385//   * InvalidParameterException
2386//   One or more of the input parameters don't match the service's restrictions.
2387//
2388//   * OrganizationNotFoundException
2389//   An operation received a valid organization identifier that either doesn't
2390//   belong or exist in the system.
2391//
2392//   * OrganizationStateException
2393//   The organization must have a valid state to perform certain operations on
2394//   the organization or its members.
2395//
2396// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DisassociateDelegateFromResource
2397func (c *WorkMail) DisassociateDelegateFromResource(input *DisassociateDelegateFromResourceInput) (*DisassociateDelegateFromResourceOutput, error) {
2398	req, out := c.DisassociateDelegateFromResourceRequest(input)
2399	return out, req.Send()
2400}
2401
2402// DisassociateDelegateFromResourceWithContext is the same as DisassociateDelegateFromResource with the addition of
2403// the ability to pass a context and additional request options.
2404//
2405// See DisassociateDelegateFromResource for details on how to use this API operation.
2406//
2407// The context must be non-nil and will be used for request cancellation. If
2408// the context is nil a panic will occur. In the future the SDK may create
2409// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2410// for more information on using Contexts.
2411func (c *WorkMail) DisassociateDelegateFromResourceWithContext(ctx aws.Context, input *DisassociateDelegateFromResourceInput, opts ...request.Option) (*DisassociateDelegateFromResourceOutput, error) {
2412	req, out := c.DisassociateDelegateFromResourceRequest(input)
2413	req.SetContext(ctx)
2414	req.ApplyOptions(opts...)
2415	return out, req.Send()
2416}
2417
2418const opDisassociateMemberFromGroup = "DisassociateMemberFromGroup"
2419
2420// DisassociateMemberFromGroupRequest generates a "aws/request.Request" representing the
2421// client's request for the DisassociateMemberFromGroup operation. The "output" return
2422// value will be populated with the request's response once the request completes
2423// successfully.
2424//
2425// Use "Send" method on the returned Request to send the API call to the service.
2426// the "output" return value is not valid until after Send returns without error.
2427//
2428// See DisassociateMemberFromGroup for more information on using the DisassociateMemberFromGroup
2429// API call, and error handling.
2430//
2431// This method is useful when you want to inject custom logic or configuration
2432// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2433//
2434//
2435//    // Example sending a request using the DisassociateMemberFromGroupRequest method.
2436//    req, resp := client.DisassociateMemberFromGroupRequest(params)
2437//
2438//    err := req.Send()
2439//    if err == nil { // resp is now filled
2440//        fmt.Println(resp)
2441//    }
2442//
2443// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DisassociateMemberFromGroup
2444func (c *WorkMail) DisassociateMemberFromGroupRequest(input *DisassociateMemberFromGroupInput) (req *request.Request, output *DisassociateMemberFromGroupOutput) {
2445	op := &request.Operation{
2446		Name:       opDisassociateMemberFromGroup,
2447		HTTPMethod: "POST",
2448		HTTPPath:   "/",
2449	}
2450
2451	if input == nil {
2452		input = &DisassociateMemberFromGroupInput{}
2453	}
2454
2455	output = &DisassociateMemberFromGroupOutput{}
2456	req = c.newRequest(op, input, output)
2457	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2458	return
2459}
2460
2461// DisassociateMemberFromGroup API operation for Amazon WorkMail.
2462//
2463// Removes a member from a group.
2464//
2465// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2466// with awserr.Error's Code and Message methods to get detailed information about
2467// the error.
2468//
2469// See the AWS API reference guide for Amazon WorkMail's
2470// API operation DisassociateMemberFromGroup for usage and error information.
2471//
2472// Returned Error Types:
2473//   * DirectoryServiceAuthenticationFailedException
2474//   The directory service doesn't recognize the credentials supplied by WorkMail.
2475//
2476//   * DirectoryUnavailableException
2477//   The directory is unavailable. It might be located in another Region or deleted.
2478//
2479//   * EntityNotFoundException
2480//   The identifier supplied for the user, group, or resource does not exist in
2481//   your organization.
2482//
2483//   * EntityStateException
2484//   You are performing an operation on a user, group, or resource that isn't
2485//   in the expected state, such as trying to delete an active user.
2486//
2487//   * InvalidParameterException
2488//   One or more of the input parameters don't match the service's restrictions.
2489//
2490//   * OrganizationNotFoundException
2491//   An operation received a valid organization identifier that either doesn't
2492//   belong or exist in the system.
2493//
2494//   * OrganizationStateException
2495//   The organization must have a valid state to perform certain operations on
2496//   the organization or its members.
2497//
2498//   * UnsupportedOperationException
2499//   You can't perform a write operation against a read-only directory.
2500//
2501// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/DisassociateMemberFromGroup
2502func (c *WorkMail) DisassociateMemberFromGroup(input *DisassociateMemberFromGroupInput) (*DisassociateMemberFromGroupOutput, error) {
2503	req, out := c.DisassociateMemberFromGroupRequest(input)
2504	return out, req.Send()
2505}
2506
2507// DisassociateMemberFromGroupWithContext is the same as DisassociateMemberFromGroup with the addition of
2508// the ability to pass a context and additional request options.
2509//
2510// See DisassociateMemberFromGroup for details on how to use this API operation.
2511//
2512// The context must be non-nil and will be used for request cancellation. If
2513// the context is nil a panic will occur. In the future the SDK may create
2514// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2515// for more information on using Contexts.
2516func (c *WorkMail) DisassociateMemberFromGroupWithContext(ctx aws.Context, input *DisassociateMemberFromGroupInput, opts ...request.Option) (*DisassociateMemberFromGroupOutput, error) {
2517	req, out := c.DisassociateMemberFromGroupRequest(input)
2518	req.SetContext(ctx)
2519	req.ApplyOptions(opts...)
2520	return out, req.Send()
2521}
2522
2523const opGetAccessControlEffect = "GetAccessControlEffect"
2524
2525// GetAccessControlEffectRequest generates a "aws/request.Request" representing the
2526// client's request for the GetAccessControlEffect operation. The "output" return
2527// value will be populated with the request's response once the request completes
2528// successfully.
2529//
2530// Use "Send" method on the returned Request to send the API call to the service.
2531// the "output" return value is not valid until after Send returns without error.
2532//
2533// See GetAccessControlEffect for more information on using the GetAccessControlEffect
2534// API call, and error handling.
2535//
2536// This method is useful when you want to inject custom logic or configuration
2537// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2538//
2539//
2540//    // Example sending a request using the GetAccessControlEffectRequest method.
2541//    req, resp := client.GetAccessControlEffectRequest(params)
2542//
2543//    err := req.Send()
2544//    if err == nil { // resp is now filled
2545//        fmt.Println(resp)
2546//    }
2547//
2548// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetAccessControlEffect
2549func (c *WorkMail) GetAccessControlEffectRequest(input *GetAccessControlEffectInput) (req *request.Request, output *GetAccessControlEffectOutput) {
2550	op := &request.Operation{
2551		Name:       opGetAccessControlEffect,
2552		HTTPMethod: "POST",
2553		HTTPPath:   "/",
2554	}
2555
2556	if input == nil {
2557		input = &GetAccessControlEffectInput{}
2558	}
2559
2560	output = &GetAccessControlEffectOutput{}
2561	req = c.newRequest(op, input, output)
2562	return
2563}
2564
2565// GetAccessControlEffect API operation for Amazon WorkMail.
2566//
2567// Gets the effects of an organization's access control rules as they apply
2568// to a specified IPv4 address, access protocol action, or user ID.
2569//
2570// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2571// with awserr.Error's Code and Message methods to get detailed information about
2572// the error.
2573//
2574// See the AWS API reference guide for Amazon WorkMail's
2575// API operation GetAccessControlEffect for usage and error information.
2576//
2577// Returned Error Types:
2578//   * EntityNotFoundException
2579//   The identifier supplied for the user, group, or resource does not exist in
2580//   your organization.
2581//
2582//   * InvalidParameterException
2583//   One or more of the input parameters don't match the service's restrictions.
2584//
2585//   * OrganizationNotFoundException
2586//   An operation received a valid organization identifier that either doesn't
2587//   belong or exist in the system.
2588//
2589//   * OrganizationStateException
2590//   The organization must have a valid state to perform certain operations on
2591//   the organization or its members.
2592//
2593// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetAccessControlEffect
2594func (c *WorkMail) GetAccessControlEffect(input *GetAccessControlEffectInput) (*GetAccessControlEffectOutput, error) {
2595	req, out := c.GetAccessControlEffectRequest(input)
2596	return out, req.Send()
2597}
2598
2599// GetAccessControlEffectWithContext is the same as GetAccessControlEffect with the addition of
2600// the ability to pass a context and additional request options.
2601//
2602// See GetAccessControlEffect for details on how to use this API operation.
2603//
2604// The context must be non-nil and will be used for request cancellation. If
2605// the context is nil a panic will occur. In the future the SDK may create
2606// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2607// for more information on using Contexts.
2608func (c *WorkMail) GetAccessControlEffectWithContext(ctx aws.Context, input *GetAccessControlEffectInput, opts ...request.Option) (*GetAccessControlEffectOutput, error) {
2609	req, out := c.GetAccessControlEffectRequest(input)
2610	req.SetContext(ctx)
2611	req.ApplyOptions(opts...)
2612	return out, req.Send()
2613}
2614
2615const opGetDefaultRetentionPolicy = "GetDefaultRetentionPolicy"
2616
2617// GetDefaultRetentionPolicyRequest generates a "aws/request.Request" representing the
2618// client's request for the GetDefaultRetentionPolicy operation. The "output" return
2619// value will be populated with the request's response once the request completes
2620// successfully.
2621//
2622// Use "Send" method on the returned Request to send the API call to the service.
2623// the "output" return value is not valid until after Send returns without error.
2624//
2625// See GetDefaultRetentionPolicy for more information on using the GetDefaultRetentionPolicy
2626// API call, and error handling.
2627//
2628// This method is useful when you want to inject custom logic or configuration
2629// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2630//
2631//
2632//    // Example sending a request using the GetDefaultRetentionPolicyRequest method.
2633//    req, resp := client.GetDefaultRetentionPolicyRequest(params)
2634//
2635//    err := req.Send()
2636//    if err == nil { // resp is now filled
2637//        fmt.Println(resp)
2638//    }
2639//
2640// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetDefaultRetentionPolicy
2641func (c *WorkMail) GetDefaultRetentionPolicyRequest(input *GetDefaultRetentionPolicyInput) (req *request.Request, output *GetDefaultRetentionPolicyOutput) {
2642	op := &request.Operation{
2643		Name:       opGetDefaultRetentionPolicy,
2644		HTTPMethod: "POST",
2645		HTTPPath:   "/",
2646	}
2647
2648	if input == nil {
2649		input = &GetDefaultRetentionPolicyInput{}
2650	}
2651
2652	output = &GetDefaultRetentionPolicyOutput{}
2653	req = c.newRequest(op, input, output)
2654	return
2655}
2656
2657// GetDefaultRetentionPolicy API operation for Amazon WorkMail.
2658//
2659// Gets the default retention policy details for the specified organization.
2660//
2661// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2662// with awserr.Error's Code and Message methods to get detailed information about
2663// the error.
2664//
2665// See the AWS API reference guide for Amazon WorkMail's
2666// API operation GetDefaultRetentionPolicy for usage and error information.
2667//
2668// Returned Error Types:
2669//   * InvalidParameterException
2670//   One or more of the input parameters don't match the service's restrictions.
2671//
2672//   * OrganizationNotFoundException
2673//   An operation received a valid organization identifier that either doesn't
2674//   belong or exist in the system.
2675//
2676//   * OrganizationStateException
2677//   The organization must have a valid state to perform certain operations on
2678//   the organization or its members.
2679//
2680//   * EntityNotFoundException
2681//   The identifier supplied for the user, group, or resource does not exist in
2682//   your organization.
2683//
2684// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetDefaultRetentionPolicy
2685func (c *WorkMail) GetDefaultRetentionPolicy(input *GetDefaultRetentionPolicyInput) (*GetDefaultRetentionPolicyOutput, error) {
2686	req, out := c.GetDefaultRetentionPolicyRequest(input)
2687	return out, req.Send()
2688}
2689
2690// GetDefaultRetentionPolicyWithContext is the same as GetDefaultRetentionPolicy with the addition of
2691// the ability to pass a context and additional request options.
2692//
2693// See GetDefaultRetentionPolicy for details on how to use this API operation.
2694//
2695// The context must be non-nil and will be used for request cancellation. If
2696// the context is nil a panic will occur. In the future the SDK may create
2697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2698// for more information on using Contexts.
2699func (c *WorkMail) GetDefaultRetentionPolicyWithContext(ctx aws.Context, input *GetDefaultRetentionPolicyInput, opts ...request.Option) (*GetDefaultRetentionPolicyOutput, error) {
2700	req, out := c.GetDefaultRetentionPolicyRequest(input)
2701	req.SetContext(ctx)
2702	req.ApplyOptions(opts...)
2703	return out, req.Send()
2704}
2705
2706const opGetMailboxDetails = "GetMailboxDetails"
2707
2708// GetMailboxDetailsRequest generates a "aws/request.Request" representing the
2709// client's request for the GetMailboxDetails operation. The "output" return
2710// value will be populated with the request's response once the request completes
2711// successfully.
2712//
2713// Use "Send" method on the returned Request to send the API call to the service.
2714// the "output" return value is not valid until after Send returns without error.
2715//
2716// See GetMailboxDetails for more information on using the GetMailboxDetails
2717// API call, and error handling.
2718//
2719// This method is useful when you want to inject custom logic or configuration
2720// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2721//
2722//
2723//    // Example sending a request using the GetMailboxDetailsRequest method.
2724//    req, resp := client.GetMailboxDetailsRequest(params)
2725//
2726//    err := req.Send()
2727//    if err == nil { // resp is now filled
2728//        fmt.Println(resp)
2729//    }
2730//
2731// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetMailboxDetails
2732func (c *WorkMail) GetMailboxDetailsRequest(input *GetMailboxDetailsInput) (req *request.Request, output *GetMailboxDetailsOutput) {
2733	op := &request.Operation{
2734		Name:       opGetMailboxDetails,
2735		HTTPMethod: "POST",
2736		HTTPPath:   "/",
2737	}
2738
2739	if input == nil {
2740		input = &GetMailboxDetailsInput{}
2741	}
2742
2743	output = &GetMailboxDetailsOutput{}
2744	req = c.newRequest(op, input, output)
2745	return
2746}
2747
2748// GetMailboxDetails API operation for Amazon WorkMail.
2749//
2750// Requests a user's mailbox details for a specified organization and user.
2751//
2752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2753// with awserr.Error's Code and Message methods to get detailed information about
2754// the error.
2755//
2756// See the AWS API reference guide for Amazon WorkMail's
2757// API operation GetMailboxDetails for usage and error information.
2758//
2759// Returned Error Types:
2760//   * OrganizationNotFoundException
2761//   An operation received a valid organization identifier that either doesn't
2762//   belong or exist in the system.
2763//
2764//   * OrganizationStateException
2765//   The organization must have a valid state to perform certain operations on
2766//   the organization or its members.
2767//
2768//   * EntityNotFoundException
2769//   The identifier supplied for the user, group, or resource does not exist in
2770//   your organization.
2771//
2772// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetMailboxDetails
2773func (c *WorkMail) GetMailboxDetails(input *GetMailboxDetailsInput) (*GetMailboxDetailsOutput, error) {
2774	req, out := c.GetMailboxDetailsRequest(input)
2775	return out, req.Send()
2776}
2777
2778// GetMailboxDetailsWithContext is the same as GetMailboxDetails with the addition of
2779// the ability to pass a context and additional request options.
2780//
2781// See GetMailboxDetails for details on how to use this API operation.
2782//
2783// The context must be non-nil and will be used for request cancellation. If
2784// the context is nil a panic will occur. In the future the SDK may create
2785// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2786// for more information on using Contexts.
2787func (c *WorkMail) GetMailboxDetailsWithContext(ctx aws.Context, input *GetMailboxDetailsInput, opts ...request.Option) (*GetMailboxDetailsOutput, error) {
2788	req, out := c.GetMailboxDetailsRequest(input)
2789	req.SetContext(ctx)
2790	req.ApplyOptions(opts...)
2791	return out, req.Send()
2792}
2793
2794const opGetMobileDeviceAccessEffect = "GetMobileDeviceAccessEffect"
2795
2796// GetMobileDeviceAccessEffectRequest generates a "aws/request.Request" representing the
2797// client's request for the GetMobileDeviceAccessEffect operation. The "output" return
2798// value will be populated with the request's response once the request completes
2799// successfully.
2800//
2801// Use "Send" method on the returned Request to send the API call to the service.
2802// the "output" return value is not valid until after Send returns without error.
2803//
2804// See GetMobileDeviceAccessEffect for more information on using the GetMobileDeviceAccessEffect
2805// API call, and error handling.
2806//
2807// This method is useful when you want to inject custom logic or configuration
2808// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2809//
2810//
2811//    // Example sending a request using the GetMobileDeviceAccessEffectRequest method.
2812//    req, resp := client.GetMobileDeviceAccessEffectRequest(params)
2813//
2814//    err := req.Send()
2815//    if err == nil { // resp is now filled
2816//        fmt.Println(resp)
2817//    }
2818//
2819// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetMobileDeviceAccessEffect
2820func (c *WorkMail) GetMobileDeviceAccessEffectRequest(input *GetMobileDeviceAccessEffectInput) (req *request.Request, output *GetMobileDeviceAccessEffectOutput) {
2821	op := &request.Operation{
2822		Name:       opGetMobileDeviceAccessEffect,
2823		HTTPMethod: "POST",
2824		HTTPPath:   "/",
2825	}
2826
2827	if input == nil {
2828		input = &GetMobileDeviceAccessEffectInput{}
2829	}
2830
2831	output = &GetMobileDeviceAccessEffectOutput{}
2832	req = c.newRequest(op, input, output)
2833	return
2834}
2835
2836// GetMobileDeviceAccessEffect API operation for Amazon WorkMail.
2837//
2838// Simulates the effect of the mobile device access rules for the given attributes
2839// of a sample access event. Use this method to test the effects of the current
2840// set of mobile device access rules for the Amazon WorkMail organization for
2841// a particular user's attributes.
2842//
2843// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2844// with awserr.Error's Code and Message methods to get detailed information about
2845// the error.
2846//
2847// See the AWS API reference guide for Amazon WorkMail's
2848// API operation GetMobileDeviceAccessEffect for usage and error information.
2849//
2850// Returned Error Types:
2851//   * InvalidParameterException
2852//   One or more of the input parameters don't match the service's restrictions.
2853//
2854//   * OrganizationNotFoundException
2855//   An operation received a valid organization identifier that either doesn't
2856//   belong or exist in the system.
2857//
2858//   * OrganizationStateException
2859//   The organization must have a valid state to perform certain operations on
2860//   the organization or its members.
2861//
2862// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/GetMobileDeviceAccessEffect
2863func (c *WorkMail) GetMobileDeviceAccessEffect(input *GetMobileDeviceAccessEffectInput) (*GetMobileDeviceAccessEffectOutput, error) {
2864	req, out := c.GetMobileDeviceAccessEffectRequest(input)
2865	return out, req.Send()
2866}
2867
2868// GetMobileDeviceAccessEffectWithContext is the same as GetMobileDeviceAccessEffect with the addition of
2869// the ability to pass a context and additional request options.
2870//
2871// See GetMobileDeviceAccessEffect for details on how to use this API operation.
2872//
2873// The context must be non-nil and will be used for request cancellation. If
2874// the context is nil a panic will occur. In the future the SDK may create
2875// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2876// for more information on using Contexts.
2877func (c *WorkMail) GetMobileDeviceAccessEffectWithContext(ctx aws.Context, input *GetMobileDeviceAccessEffectInput, opts ...request.Option) (*GetMobileDeviceAccessEffectOutput, error) {
2878	req, out := c.GetMobileDeviceAccessEffectRequest(input)
2879	req.SetContext(ctx)
2880	req.ApplyOptions(opts...)
2881	return out, req.Send()
2882}
2883
2884const opListAccessControlRules = "ListAccessControlRules"
2885
2886// ListAccessControlRulesRequest generates a "aws/request.Request" representing the
2887// client's request for the ListAccessControlRules operation. The "output" return
2888// value will be populated with the request's response once the request completes
2889// successfully.
2890//
2891// Use "Send" method on the returned Request to send the API call to the service.
2892// the "output" return value is not valid until after Send returns without error.
2893//
2894// See ListAccessControlRules for more information on using the ListAccessControlRules
2895// API call, and error handling.
2896//
2897// This method is useful when you want to inject custom logic or configuration
2898// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2899//
2900//
2901//    // Example sending a request using the ListAccessControlRulesRequest method.
2902//    req, resp := client.ListAccessControlRulesRequest(params)
2903//
2904//    err := req.Send()
2905//    if err == nil { // resp is now filled
2906//        fmt.Println(resp)
2907//    }
2908//
2909// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListAccessControlRules
2910func (c *WorkMail) ListAccessControlRulesRequest(input *ListAccessControlRulesInput) (req *request.Request, output *ListAccessControlRulesOutput) {
2911	op := &request.Operation{
2912		Name:       opListAccessControlRules,
2913		HTTPMethod: "POST",
2914		HTTPPath:   "/",
2915	}
2916
2917	if input == nil {
2918		input = &ListAccessControlRulesInput{}
2919	}
2920
2921	output = &ListAccessControlRulesOutput{}
2922	req = c.newRequest(op, input, output)
2923	return
2924}
2925
2926// ListAccessControlRules API operation for Amazon WorkMail.
2927//
2928// Lists the access control rules for the specified organization.
2929//
2930// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2931// with awserr.Error's Code and Message methods to get detailed information about
2932// the error.
2933//
2934// See the AWS API reference guide for Amazon WorkMail's
2935// API operation ListAccessControlRules for usage and error information.
2936//
2937// Returned Error Types:
2938//   * OrganizationNotFoundException
2939//   An operation received a valid organization identifier that either doesn't
2940//   belong or exist in the system.
2941//
2942//   * OrganizationStateException
2943//   The organization must have a valid state to perform certain operations on
2944//   the organization or its members.
2945//
2946// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListAccessControlRules
2947func (c *WorkMail) ListAccessControlRules(input *ListAccessControlRulesInput) (*ListAccessControlRulesOutput, error) {
2948	req, out := c.ListAccessControlRulesRequest(input)
2949	return out, req.Send()
2950}
2951
2952// ListAccessControlRulesWithContext is the same as ListAccessControlRules with the addition of
2953// the ability to pass a context and additional request options.
2954//
2955// See ListAccessControlRules for details on how to use this API operation.
2956//
2957// The context must be non-nil and will be used for request cancellation. If
2958// the context is nil a panic will occur. In the future the SDK may create
2959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2960// for more information on using Contexts.
2961func (c *WorkMail) ListAccessControlRulesWithContext(ctx aws.Context, input *ListAccessControlRulesInput, opts ...request.Option) (*ListAccessControlRulesOutput, error) {
2962	req, out := c.ListAccessControlRulesRequest(input)
2963	req.SetContext(ctx)
2964	req.ApplyOptions(opts...)
2965	return out, req.Send()
2966}
2967
2968const opListAliases = "ListAliases"
2969
2970// ListAliasesRequest generates a "aws/request.Request" representing the
2971// client's request for the ListAliases operation. The "output" return
2972// value will be populated with the request's response once the request completes
2973// successfully.
2974//
2975// Use "Send" method on the returned Request to send the API call to the service.
2976// the "output" return value is not valid until after Send returns without error.
2977//
2978// See ListAliases for more information on using the ListAliases
2979// API call, and error handling.
2980//
2981// This method is useful when you want to inject custom logic or configuration
2982// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2983//
2984//
2985//    // Example sending a request using the ListAliasesRequest method.
2986//    req, resp := client.ListAliasesRequest(params)
2987//
2988//    err := req.Send()
2989//    if err == nil { // resp is now filled
2990//        fmt.Println(resp)
2991//    }
2992//
2993// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListAliases
2994func (c *WorkMail) ListAliasesRequest(input *ListAliasesInput) (req *request.Request, output *ListAliasesOutput) {
2995	op := &request.Operation{
2996		Name:       opListAliases,
2997		HTTPMethod: "POST",
2998		HTTPPath:   "/",
2999		Paginator: &request.Paginator{
3000			InputTokens:     []string{"NextToken"},
3001			OutputTokens:    []string{"NextToken"},
3002			LimitToken:      "MaxResults",
3003			TruncationToken: "",
3004		},
3005	}
3006
3007	if input == nil {
3008		input = &ListAliasesInput{}
3009	}
3010
3011	output = &ListAliasesOutput{}
3012	req = c.newRequest(op, input, output)
3013	return
3014}
3015
3016// ListAliases API operation for Amazon WorkMail.
3017//
3018// Creates a paginated call to list the aliases associated with a given entity.
3019//
3020// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3021// with awserr.Error's Code and Message methods to get detailed information about
3022// the error.
3023//
3024// See the AWS API reference guide for Amazon WorkMail's
3025// API operation ListAliases for usage and error information.
3026//
3027// Returned Error Types:
3028//   * EntityNotFoundException
3029//   The identifier supplied for the user, group, or resource does not exist in
3030//   your organization.
3031//
3032//   * EntityStateException
3033//   You are performing an operation on a user, group, or resource that isn't
3034//   in the expected state, such as trying to delete an active user.
3035//
3036//   * InvalidParameterException
3037//   One or more of the input parameters don't match the service's restrictions.
3038//
3039//   * OrganizationNotFoundException
3040//   An operation received a valid organization identifier that either doesn't
3041//   belong or exist in the system.
3042//
3043//   * OrganizationStateException
3044//   The organization must have a valid state to perform certain operations on
3045//   the organization or its members.
3046//
3047// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListAliases
3048func (c *WorkMail) ListAliases(input *ListAliasesInput) (*ListAliasesOutput, error) {
3049	req, out := c.ListAliasesRequest(input)
3050	return out, req.Send()
3051}
3052
3053// ListAliasesWithContext is the same as ListAliases with the addition of
3054// the ability to pass a context and additional request options.
3055//
3056// See ListAliases for details on how to use this API operation.
3057//
3058// The context must be non-nil and will be used for request cancellation. If
3059// the context is nil a panic will occur. In the future the SDK may create
3060// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3061// for more information on using Contexts.
3062func (c *WorkMail) ListAliasesWithContext(ctx aws.Context, input *ListAliasesInput, opts ...request.Option) (*ListAliasesOutput, error) {
3063	req, out := c.ListAliasesRequest(input)
3064	req.SetContext(ctx)
3065	req.ApplyOptions(opts...)
3066	return out, req.Send()
3067}
3068
3069// ListAliasesPages iterates over the pages of a ListAliases operation,
3070// calling the "fn" function with the response data for each page. To stop
3071// iterating, return false from the fn function.
3072//
3073// See ListAliases method for more information on how to use this operation.
3074//
3075// Note: This operation can generate multiple requests to a service.
3076//
3077//    // Example iterating over at most 3 pages of a ListAliases operation.
3078//    pageNum := 0
3079//    err := client.ListAliasesPages(params,
3080//        func(page *workmail.ListAliasesOutput, lastPage bool) bool {
3081//            pageNum++
3082//            fmt.Println(page)
3083//            return pageNum <= 3
3084//        })
3085//
3086func (c *WorkMail) ListAliasesPages(input *ListAliasesInput, fn func(*ListAliasesOutput, bool) bool) error {
3087	return c.ListAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
3088}
3089
3090// ListAliasesPagesWithContext same as ListAliasesPages except
3091// it takes a Context and allows setting request options on the pages.
3092//
3093// The context must be non-nil and will be used for request cancellation. If
3094// the context is nil a panic will occur. In the future the SDK may create
3095// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3096// for more information on using Contexts.
3097func (c *WorkMail) ListAliasesPagesWithContext(ctx aws.Context, input *ListAliasesInput, fn func(*ListAliasesOutput, bool) bool, opts ...request.Option) error {
3098	p := request.Pagination{
3099		NewRequest: func() (*request.Request, error) {
3100			var inCpy *ListAliasesInput
3101			if input != nil {
3102				tmp := *input
3103				inCpy = &tmp
3104			}
3105			req, _ := c.ListAliasesRequest(inCpy)
3106			req.SetContext(ctx)
3107			req.ApplyOptions(opts...)
3108			return req, nil
3109		},
3110	}
3111
3112	for p.Next() {
3113		if !fn(p.Page().(*ListAliasesOutput), !p.HasNextPage()) {
3114			break
3115		}
3116	}
3117
3118	return p.Err()
3119}
3120
3121const opListGroupMembers = "ListGroupMembers"
3122
3123// ListGroupMembersRequest generates a "aws/request.Request" representing the
3124// client's request for the ListGroupMembers operation. The "output" return
3125// value will be populated with the request's response once the request completes
3126// successfully.
3127//
3128// Use "Send" method on the returned Request to send the API call to the service.
3129// the "output" return value is not valid until after Send returns without error.
3130//
3131// See ListGroupMembers for more information on using the ListGroupMembers
3132// API call, and error handling.
3133//
3134// This method is useful when you want to inject custom logic or configuration
3135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3136//
3137//
3138//    // Example sending a request using the ListGroupMembersRequest method.
3139//    req, resp := client.ListGroupMembersRequest(params)
3140//
3141//    err := req.Send()
3142//    if err == nil { // resp is now filled
3143//        fmt.Println(resp)
3144//    }
3145//
3146// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListGroupMembers
3147func (c *WorkMail) ListGroupMembersRequest(input *ListGroupMembersInput) (req *request.Request, output *ListGroupMembersOutput) {
3148	op := &request.Operation{
3149		Name:       opListGroupMembers,
3150		HTTPMethod: "POST",
3151		HTTPPath:   "/",
3152		Paginator: &request.Paginator{
3153			InputTokens:     []string{"NextToken"},
3154			OutputTokens:    []string{"NextToken"},
3155			LimitToken:      "MaxResults",
3156			TruncationToken: "",
3157		},
3158	}
3159
3160	if input == nil {
3161		input = &ListGroupMembersInput{}
3162	}
3163
3164	output = &ListGroupMembersOutput{}
3165	req = c.newRequest(op, input, output)
3166	return
3167}
3168
3169// ListGroupMembers API operation for Amazon WorkMail.
3170//
3171// Returns an overview of the members of a group. Users and groups can be members
3172// of a group.
3173//
3174// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3175// with awserr.Error's Code and Message methods to get detailed information about
3176// the error.
3177//
3178// See the AWS API reference guide for Amazon WorkMail's
3179// API operation ListGroupMembers for usage and error information.
3180//
3181// Returned Error Types:
3182//   * EntityNotFoundException
3183//   The identifier supplied for the user, group, or resource does not exist in
3184//   your organization.
3185//
3186//   * EntityStateException
3187//   You are performing an operation on a user, group, or resource that isn't
3188//   in the expected state, such as trying to delete an active user.
3189//
3190//   * InvalidParameterException
3191//   One or more of the input parameters don't match the service's restrictions.
3192//
3193//   * OrganizationNotFoundException
3194//   An operation received a valid organization identifier that either doesn't
3195//   belong or exist in the system.
3196//
3197//   * OrganizationStateException
3198//   The organization must have a valid state to perform certain operations on
3199//   the organization or its members.
3200//
3201// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListGroupMembers
3202func (c *WorkMail) ListGroupMembers(input *ListGroupMembersInput) (*ListGroupMembersOutput, error) {
3203	req, out := c.ListGroupMembersRequest(input)
3204	return out, req.Send()
3205}
3206
3207// ListGroupMembersWithContext is the same as ListGroupMembers with the addition of
3208// the ability to pass a context and additional request options.
3209//
3210// See ListGroupMembers for details on how to use this API operation.
3211//
3212// The context must be non-nil and will be used for request cancellation. If
3213// the context is nil a panic will occur. In the future the SDK may create
3214// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3215// for more information on using Contexts.
3216func (c *WorkMail) ListGroupMembersWithContext(ctx aws.Context, input *ListGroupMembersInput, opts ...request.Option) (*ListGroupMembersOutput, error) {
3217	req, out := c.ListGroupMembersRequest(input)
3218	req.SetContext(ctx)
3219	req.ApplyOptions(opts...)
3220	return out, req.Send()
3221}
3222
3223// ListGroupMembersPages iterates over the pages of a ListGroupMembers operation,
3224// calling the "fn" function with the response data for each page. To stop
3225// iterating, return false from the fn function.
3226//
3227// See ListGroupMembers method for more information on how to use this operation.
3228//
3229// Note: This operation can generate multiple requests to a service.
3230//
3231//    // Example iterating over at most 3 pages of a ListGroupMembers operation.
3232//    pageNum := 0
3233//    err := client.ListGroupMembersPages(params,
3234//        func(page *workmail.ListGroupMembersOutput, lastPage bool) bool {
3235//            pageNum++
3236//            fmt.Println(page)
3237//            return pageNum <= 3
3238//        })
3239//
3240func (c *WorkMail) ListGroupMembersPages(input *ListGroupMembersInput, fn func(*ListGroupMembersOutput, bool) bool) error {
3241	return c.ListGroupMembersPagesWithContext(aws.BackgroundContext(), input, fn)
3242}
3243
3244// ListGroupMembersPagesWithContext same as ListGroupMembersPages except
3245// it takes a Context and allows setting request options on the pages.
3246//
3247// The context must be non-nil and will be used for request cancellation. If
3248// the context is nil a panic will occur. In the future the SDK may create
3249// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3250// for more information on using Contexts.
3251func (c *WorkMail) ListGroupMembersPagesWithContext(ctx aws.Context, input *ListGroupMembersInput, fn func(*ListGroupMembersOutput, bool) bool, opts ...request.Option) error {
3252	p := request.Pagination{
3253		NewRequest: func() (*request.Request, error) {
3254			var inCpy *ListGroupMembersInput
3255			if input != nil {
3256				tmp := *input
3257				inCpy = &tmp
3258			}
3259			req, _ := c.ListGroupMembersRequest(inCpy)
3260			req.SetContext(ctx)
3261			req.ApplyOptions(opts...)
3262			return req, nil
3263		},
3264	}
3265
3266	for p.Next() {
3267		if !fn(p.Page().(*ListGroupMembersOutput), !p.HasNextPage()) {
3268			break
3269		}
3270	}
3271
3272	return p.Err()
3273}
3274
3275const opListGroups = "ListGroups"
3276
3277// ListGroupsRequest generates a "aws/request.Request" representing the
3278// client's request for the ListGroups operation. The "output" return
3279// value will be populated with the request's response once the request completes
3280// successfully.
3281//
3282// Use "Send" method on the returned Request to send the API call to the service.
3283// the "output" return value is not valid until after Send returns without error.
3284//
3285// See ListGroups for more information on using the ListGroups
3286// API call, and error handling.
3287//
3288// This method is useful when you want to inject custom logic or configuration
3289// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3290//
3291//
3292//    // Example sending a request using the ListGroupsRequest method.
3293//    req, resp := client.ListGroupsRequest(params)
3294//
3295//    err := req.Send()
3296//    if err == nil { // resp is now filled
3297//        fmt.Println(resp)
3298//    }
3299//
3300// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListGroups
3301func (c *WorkMail) ListGroupsRequest(input *ListGroupsInput) (req *request.Request, output *ListGroupsOutput) {
3302	op := &request.Operation{
3303		Name:       opListGroups,
3304		HTTPMethod: "POST",
3305		HTTPPath:   "/",
3306		Paginator: &request.Paginator{
3307			InputTokens:     []string{"NextToken"},
3308			OutputTokens:    []string{"NextToken"},
3309			LimitToken:      "MaxResults",
3310			TruncationToken: "",
3311		},
3312	}
3313
3314	if input == nil {
3315		input = &ListGroupsInput{}
3316	}
3317
3318	output = &ListGroupsOutput{}
3319	req = c.newRequest(op, input, output)
3320	return
3321}
3322
3323// ListGroups API operation for Amazon WorkMail.
3324//
3325// Returns summaries of the organization's groups.
3326//
3327// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3328// with awserr.Error's Code and Message methods to get detailed information about
3329// the error.
3330//
3331// See the AWS API reference guide for Amazon WorkMail's
3332// API operation ListGroups for usage and error information.
3333//
3334// Returned Error Types:
3335//   * EntityNotFoundException
3336//   The identifier supplied for the user, group, or resource does not exist in
3337//   your organization.
3338//
3339//   * InvalidParameterException
3340//   One or more of the input parameters don't match the service's restrictions.
3341//
3342//   * OrganizationNotFoundException
3343//   An operation received a valid organization identifier that either doesn't
3344//   belong or exist in the system.
3345//
3346//   * OrganizationStateException
3347//   The organization must have a valid state to perform certain operations on
3348//   the organization or its members.
3349//
3350// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListGroups
3351func (c *WorkMail) ListGroups(input *ListGroupsInput) (*ListGroupsOutput, error) {
3352	req, out := c.ListGroupsRequest(input)
3353	return out, req.Send()
3354}
3355
3356// ListGroupsWithContext is the same as ListGroups with the addition of
3357// the ability to pass a context and additional request options.
3358//
3359// See ListGroups for details on how to use this API operation.
3360//
3361// The context must be non-nil and will be used for request cancellation. If
3362// the context is nil a panic will occur. In the future the SDK may create
3363// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3364// for more information on using Contexts.
3365func (c *WorkMail) ListGroupsWithContext(ctx aws.Context, input *ListGroupsInput, opts ...request.Option) (*ListGroupsOutput, error) {
3366	req, out := c.ListGroupsRequest(input)
3367	req.SetContext(ctx)
3368	req.ApplyOptions(opts...)
3369	return out, req.Send()
3370}
3371
3372// ListGroupsPages iterates over the pages of a ListGroups operation,
3373// calling the "fn" function with the response data for each page. To stop
3374// iterating, return false from the fn function.
3375//
3376// See ListGroups method for more information on how to use this operation.
3377//
3378// Note: This operation can generate multiple requests to a service.
3379//
3380//    // Example iterating over at most 3 pages of a ListGroups operation.
3381//    pageNum := 0
3382//    err := client.ListGroupsPages(params,
3383//        func(page *workmail.ListGroupsOutput, lastPage bool) bool {
3384//            pageNum++
3385//            fmt.Println(page)
3386//            return pageNum <= 3
3387//        })
3388//
3389func (c *WorkMail) ListGroupsPages(input *ListGroupsInput, fn func(*ListGroupsOutput, bool) bool) error {
3390	return c.ListGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
3391}
3392
3393// ListGroupsPagesWithContext same as ListGroupsPages except
3394// it takes a Context and allows setting request options on the pages.
3395//
3396// The context must be non-nil and will be used for request cancellation. If
3397// the context is nil a panic will occur. In the future the SDK may create
3398// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3399// for more information on using Contexts.
3400func (c *WorkMail) ListGroupsPagesWithContext(ctx aws.Context, input *ListGroupsInput, fn func(*ListGroupsOutput, bool) bool, opts ...request.Option) error {
3401	p := request.Pagination{
3402		NewRequest: func() (*request.Request, error) {
3403			var inCpy *ListGroupsInput
3404			if input != nil {
3405				tmp := *input
3406				inCpy = &tmp
3407			}
3408			req, _ := c.ListGroupsRequest(inCpy)
3409			req.SetContext(ctx)
3410			req.ApplyOptions(opts...)
3411			return req, nil
3412		},
3413	}
3414
3415	for p.Next() {
3416		if !fn(p.Page().(*ListGroupsOutput), !p.HasNextPage()) {
3417			break
3418		}
3419	}
3420
3421	return p.Err()
3422}
3423
3424const opListMailboxExportJobs = "ListMailboxExportJobs"
3425
3426// ListMailboxExportJobsRequest generates a "aws/request.Request" representing the
3427// client's request for the ListMailboxExportJobs operation. The "output" return
3428// value will be populated with the request's response once the request completes
3429// successfully.
3430//
3431// Use "Send" method on the returned Request to send the API call to the service.
3432// the "output" return value is not valid until after Send returns without error.
3433//
3434// See ListMailboxExportJobs for more information on using the ListMailboxExportJobs
3435// API call, and error handling.
3436//
3437// This method is useful when you want to inject custom logic or configuration
3438// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3439//
3440//
3441//    // Example sending a request using the ListMailboxExportJobsRequest method.
3442//    req, resp := client.ListMailboxExportJobsRequest(params)
3443//
3444//    err := req.Send()
3445//    if err == nil { // resp is now filled
3446//        fmt.Println(resp)
3447//    }
3448//
3449// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMailboxExportJobs
3450func (c *WorkMail) ListMailboxExportJobsRequest(input *ListMailboxExportJobsInput) (req *request.Request, output *ListMailboxExportJobsOutput) {
3451	op := &request.Operation{
3452		Name:       opListMailboxExportJobs,
3453		HTTPMethod: "POST",
3454		HTTPPath:   "/",
3455		Paginator: &request.Paginator{
3456			InputTokens:     []string{"NextToken"},
3457			OutputTokens:    []string{"NextToken"},
3458			LimitToken:      "MaxResults",
3459			TruncationToken: "",
3460		},
3461	}
3462
3463	if input == nil {
3464		input = &ListMailboxExportJobsInput{}
3465	}
3466
3467	output = &ListMailboxExportJobsOutput{}
3468	req = c.newRequest(op, input, output)
3469	return
3470}
3471
3472// ListMailboxExportJobs API operation for Amazon WorkMail.
3473//
3474// Lists the mailbox export jobs started for the specified organization within
3475// the last seven days.
3476//
3477// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3478// with awserr.Error's Code and Message methods to get detailed information about
3479// the error.
3480//
3481// See the AWS API reference guide for Amazon WorkMail's
3482// API operation ListMailboxExportJobs for usage and error information.
3483//
3484// Returned Error Types:
3485//   * InvalidParameterException
3486//   One or more of the input parameters don't match the service's restrictions.
3487//
3488//   * OrganizationNotFoundException
3489//   An operation received a valid organization identifier that either doesn't
3490//   belong or exist in the system.
3491//
3492//   * OrganizationStateException
3493//   The organization must have a valid state to perform certain operations on
3494//   the organization or its members.
3495//
3496// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMailboxExportJobs
3497func (c *WorkMail) ListMailboxExportJobs(input *ListMailboxExportJobsInput) (*ListMailboxExportJobsOutput, error) {
3498	req, out := c.ListMailboxExportJobsRequest(input)
3499	return out, req.Send()
3500}
3501
3502// ListMailboxExportJobsWithContext is the same as ListMailboxExportJobs with the addition of
3503// the ability to pass a context and additional request options.
3504//
3505// See ListMailboxExportJobs for details on how to use this API operation.
3506//
3507// The context must be non-nil and will be used for request cancellation. If
3508// the context is nil a panic will occur. In the future the SDK may create
3509// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3510// for more information on using Contexts.
3511func (c *WorkMail) ListMailboxExportJobsWithContext(ctx aws.Context, input *ListMailboxExportJobsInput, opts ...request.Option) (*ListMailboxExportJobsOutput, error) {
3512	req, out := c.ListMailboxExportJobsRequest(input)
3513	req.SetContext(ctx)
3514	req.ApplyOptions(opts...)
3515	return out, req.Send()
3516}
3517
3518// ListMailboxExportJobsPages iterates over the pages of a ListMailboxExportJobs operation,
3519// calling the "fn" function with the response data for each page. To stop
3520// iterating, return false from the fn function.
3521//
3522// See ListMailboxExportJobs method for more information on how to use this operation.
3523//
3524// Note: This operation can generate multiple requests to a service.
3525//
3526//    // Example iterating over at most 3 pages of a ListMailboxExportJobs operation.
3527//    pageNum := 0
3528//    err := client.ListMailboxExportJobsPages(params,
3529//        func(page *workmail.ListMailboxExportJobsOutput, lastPage bool) bool {
3530//            pageNum++
3531//            fmt.Println(page)
3532//            return pageNum <= 3
3533//        })
3534//
3535func (c *WorkMail) ListMailboxExportJobsPages(input *ListMailboxExportJobsInput, fn func(*ListMailboxExportJobsOutput, bool) bool) error {
3536	return c.ListMailboxExportJobsPagesWithContext(aws.BackgroundContext(), input, fn)
3537}
3538
3539// ListMailboxExportJobsPagesWithContext same as ListMailboxExportJobsPages except
3540// it takes a Context and allows setting request options on the pages.
3541//
3542// The context must be non-nil and will be used for request cancellation. If
3543// the context is nil a panic will occur. In the future the SDK may create
3544// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3545// for more information on using Contexts.
3546func (c *WorkMail) ListMailboxExportJobsPagesWithContext(ctx aws.Context, input *ListMailboxExportJobsInput, fn func(*ListMailboxExportJobsOutput, bool) bool, opts ...request.Option) error {
3547	p := request.Pagination{
3548		NewRequest: func() (*request.Request, error) {
3549			var inCpy *ListMailboxExportJobsInput
3550			if input != nil {
3551				tmp := *input
3552				inCpy = &tmp
3553			}
3554			req, _ := c.ListMailboxExportJobsRequest(inCpy)
3555			req.SetContext(ctx)
3556			req.ApplyOptions(opts...)
3557			return req, nil
3558		},
3559	}
3560
3561	for p.Next() {
3562		if !fn(p.Page().(*ListMailboxExportJobsOutput), !p.HasNextPage()) {
3563			break
3564		}
3565	}
3566
3567	return p.Err()
3568}
3569
3570const opListMailboxPermissions = "ListMailboxPermissions"
3571
3572// ListMailboxPermissionsRequest generates a "aws/request.Request" representing the
3573// client's request for the ListMailboxPermissions operation. The "output" return
3574// value will be populated with the request's response once the request completes
3575// successfully.
3576//
3577// Use "Send" method on the returned Request to send the API call to the service.
3578// the "output" return value is not valid until after Send returns without error.
3579//
3580// See ListMailboxPermissions for more information on using the ListMailboxPermissions
3581// API call, and error handling.
3582//
3583// This method is useful when you want to inject custom logic or configuration
3584// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3585//
3586//
3587//    // Example sending a request using the ListMailboxPermissionsRequest method.
3588//    req, resp := client.ListMailboxPermissionsRequest(params)
3589//
3590//    err := req.Send()
3591//    if err == nil { // resp is now filled
3592//        fmt.Println(resp)
3593//    }
3594//
3595// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMailboxPermissions
3596func (c *WorkMail) ListMailboxPermissionsRequest(input *ListMailboxPermissionsInput) (req *request.Request, output *ListMailboxPermissionsOutput) {
3597	op := &request.Operation{
3598		Name:       opListMailboxPermissions,
3599		HTTPMethod: "POST",
3600		HTTPPath:   "/",
3601		Paginator: &request.Paginator{
3602			InputTokens:     []string{"NextToken"},
3603			OutputTokens:    []string{"NextToken"},
3604			LimitToken:      "MaxResults",
3605			TruncationToken: "",
3606		},
3607	}
3608
3609	if input == nil {
3610		input = &ListMailboxPermissionsInput{}
3611	}
3612
3613	output = &ListMailboxPermissionsOutput{}
3614	req = c.newRequest(op, input, output)
3615	return
3616}
3617
3618// ListMailboxPermissions API operation for Amazon WorkMail.
3619//
3620// Lists the mailbox permissions associated with a user, group, or resource
3621// mailbox.
3622//
3623// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3624// with awserr.Error's Code and Message methods to get detailed information about
3625// the error.
3626//
3627// See the AWS API reference guide for Amazon WorkMail's
3628// API operation ListMailboxPermissions for usage and error information.
3629//
3630// Returned Error Types:
3631//   * EntityNotFoundException
3632//   The identifier supplied for the user, group, or resource does not exist in
3633//   your organization.
3634//
3635//   * InvalidParameterException
3636//   One or more of the input parameters don't match the service's restrictions.
3637//
3638//   * OrganizationNotFoundException
3639//   An operation received a valid organization identifier that either doesn't
3640//   belong or exist in the system.
3641//
3642//   * OrganizationStateException
3643//   The organization must have a valid state to perform certain operations on
3644//   the organization or its members.
3645//
3646// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMailboxPermissions
3647func (c *WorkMail) ListMailboxPermissions(input *ListMailboxPermissionsInput) (*ListMailboxPermissionsOutput, error) {
3648	req, out := c.ListMailboxPermissionsRequest(input)
3649	return out, req.Send()
3650}
3651
3652// ListMailboxPermissionsWithContext is the same as ListMailboxPermissions with the addition of
3653// the ability to pass a context and additional request options.
3654//
3655// See ListMailboxPermissions for details on how to use this API operation.
3656//
3657// The context must be non-nil and will be used for request cancellation. If
3658// the context is nil a panic will occur. In the future the SDK may create
3659// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3660// for more information on using Contexts.
3661func (c *WorkMail) ListMailboxPermissionsWithContext(ctx aws.Context, input *ListMailboxPermissionsInput, opts ...request.Option) (*ListMailboxPermissionsOutput, error) {
3662	req, out := c.ListMailboxPermissionsRequest(input)
3663	req.SetContext(ctx)
3664	req.ApplyOptions(opts...)
3665	return out, req.Send()
3666}
3667
3668// ListMailboxPermissionsPages iterates over the pages of a ListMailboxPermissions operation,
3669// calling the "fn" function with the response data for each page. To stop
3670// iterating, return false from the fn function.
3671//
3672// See ListMailboxPermissions method for more information on how to use this operation.
3673//
3674// Note: This operation can generate multiple requests to a service.
3675//
3676//    // Example iterating over at most 3 pages of a ListMailboxPermissions operation.
3677//    pageNum := 0
3678//    err := client.ListMailboxPermissionsPages(params,
3679//        func(page *workmail.ListMailboxPermissionsOutput, lastPage bool) bool {
3680//            pageNum++
3681//            fmt.Println(page)
3682//            return pageNum <= 3
3683//        })
3684//
3685func (c *WorkMail) ListMailboxPermissionsPages(input *ListMailboxPermissionsInput, fn func(*ListMailboxPermissionsOutput, bool) bool) error {
3686	return c.ListMailboxPermissionsPagesWithContext(aws.BackgroundContext(), input, fn)
3687}
3688
3689// ListMailboxPermissionsPagesWithContext same as ListMailboxPermissionsPages except
3690// it takes a Context and allows setting request options on the pages.
3691//
3692// The context must be non-nil and will be used for request cancellation. If
3693// the context is nil a panic will occur. In the future the SDK may create
3694// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3695// for more information on using Contexts.
3696func (c *WorkMail) ListMailboxPermissionsPagesWithContext(ctx aws.Context, input *ListMailboxPermissionsInput, fn func(*ListMailboxPermissionsOutput, bool) bool, opts ...request.Option) error {
3697	p := request.Pagination{
3698		NewRequest: func() (*request.Request, error) {
3699			var inCpy *ListMailboxPermissionsInput
3700			if input != nil {
3701				tmp := *input
3702				inCpy = &tmp
3703			}
3704			req, _ := c.ListMailboxPermissionsRequest(inCpy)
3705			req.SetContext(ctx)
3706			req.ApplyOptions(opts...)
3707			return req, nil
3708		},
3709	}
3710
3711	for p.Next() {
3712		if !fn(p.Page().(*ListMailboxPermissionsOutput), !p.HasNextPage()) {
3713			break
3714		}
3715	}
3716
3717	return p.Err()
3718}
3719
3720const opListMobileDeviceAccessRules = "ListMobileDeviceAccessRules"
3721
3722// ListMobileDeviceAccessRulesRequest generates a "aws/request.Request" representing the
3723// client's request for the ListMobileDeviceAccessRules operation. The "output" return
3724// value will be populated with the request's response once the request completes
3725// successfully.
3726//
3727// Use "Send" method on the returned Request to send the API call to the service.
3728// the "output" return value is not valid until after Send returns without error.
3729//
3730// See ListMobileDeviceAccessRules for more information on using the ListMobileDeviceAccessRules
3731// API call, and error handling.
3732//
3733// This method is useful when you want to inject custom logic or configuration
3734// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3735//
3736//
3737//    // Example sending a request using the ListMobileDeviceAccessRulesRequest method.
3738//    req, resp := client.ListMobileDeviceAccessRulesRequest(params)
3739//
3740//    err := req.Send()
3741//    if err == nil { // resp is now filled
3742//        fmt.Println(resp)
3743//    }
3744//
3745// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMobileDeviceAccessRules
3746func (c *WorkMail) ListMobileDeviceAccessRulesRequest(input *ListMobileDeviceAccessRulesInput) (req *request.Request, output *ListMobileDeviceAccessRulesOutput) {
3747	op := &request.Operation{
3748		Name:       opListMobileDeviceAccessRules,
3749		HTTPMethod: "POST",
3750		HTTPPath:   "/",
3751	}
3752
3753	if input == nil {
3754		input = &ListMobileDeviceAccessRulesInput{}
3755	}
3756
3757	output = &ListMobileDeviceAccessRulesOutput{}
3758	req = c.newRequest(op, input, output)
3759	return
3760}
3761
3762// ListMobileDeviceAccessRules API operation for Amazon WorkMail.
3763//
3764// Lists the mobile device access rules for the specified Amazon WorkMail organization.
3765//
3766// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3767// with awserr.Error's Code and Message methods to get detailed information about
3768// the error.
3769//
3770// See the AWS API reference guide for Amazon WorkMail's
3771// API operation ListMobileDeviceAccessRules for usage and error information.
3772//
3773// Returned Error Types:
3774//   * InvalidParameterException
3775//   One or more of the input parameters don't match the service's restrictions.
3776//
3777//   * OrganizationNotFoundException
3778//   An operation received a valid organization identifier that either doesn't
3779//   belong or exist in the system.
3780//
3781//   * OrganizationStateException
3782//   The organization must have a valid state to perform certain operations on
3783//   the organization or its members.
3784//
3785// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListMobileDeviceAccessRules
3786func (c *WorkMail) ListMobileDeviceAccessRules(input *ListMobileDeviceAccessRulesInput) (*ListMobileDeviceAccessRulesOutput, error) {
3787	req, out := c.ListMobileDeviceAccessRulesRequest(input)
3788	return out, req.Send()
3789}
3790
3791// ListMobileDeviceAccessRulesWithContext is the same as ListMobileDeviceAccessRules with the addition of
3792// the ability to pass a context and additional request options.
3793//
3794// See ListMobileDeviceAccessRules for details on how to use this API operation.
3795//
3796// The context must be non-nil and will be used for request cancellation. If
3797// the context is nil a panic will occur. In the future the SDK may create
3798// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3799// for more information on using Contexts.
3800func (c *WorkMail) ListMobileDeviceAccessRulesWithContext(ctx aws.Context, input *ListMobileDeviceAccessRulesInput, opts ...request.Option) (*ListMobileDeviceAccessRulesOutput, error) {
3801	req, out := c.ListMobileDeviceAccessRulesRequest(input)
3802	req.SetContext(ctx)
3803	req.ApplyOptions(opts...)
3804	return out, req.Send()
3805}
3806
3807const opListOrganizations = "ListOrganizations"
3808
3809// ListOrganizationsRequest generates a "aws/request.Request" representing the
3810// client's request for the ListOrganizations operation. The "output" return
3811// value will be populated with the request's response once the request completes
3812// successfully.
3813//
3814// Use "Send" method on the returned Request to send the API call to the service.
3815// the "output" return value is not valid until after Send returns without error.
3816//
3817// See ListOrganizations for more information on using the ListOrganizations
3818// API call, and error handling.
3819//
3820// This method is useful when you want to inject custom logic or configuration
3821// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3822//
3823//
3824//    // Example sending a request using the ListOrganizationsRequest method.
3825//    req, resp := client.ListOrganizationsRequest(params)
3826//
3827//    err := req.Send()
3828//    if err == nil { // resp is now filled
3829//        fmt.Println(resp)
3830//    }
3831//
3832// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListOrganizations
3833func (c *WorkMail) ListOrganizationsRequest(input *ListOrganizationsInput) (req *request.Request, output *ListOrganizationsOutput) {
3834	op := &request.Operation{
3835		Name:       opListOrganizations,
3836		HTTPMethod: "POST",
3837		HTTPPath:   "/",
3838		Paginator: &request.Paginator{
3839			InputTokens:     []string{"NextToken"},
3840			OutputTokens:    []string{"NextToken"},
3841			LimitToken:      "MaxResults",
3842			TruncationToken: "",
3843		},
3844	}
3845
3846	if input == nil {
3847		input = &ListOrganizationsInput{}
3848	}
3849
3850	output = &ListOrganizationsOutput{}
3851	req = c.newRequest(op, input, output)
3852	return
3853}
3854
3855// ListOrganizations API operation for Amazon WorkMail.
3856//
3857// Returns summaries of the customer's organizations.
3858//
3859// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3860// with awserr.Error's Code and Message methods to get detailed information about
3861// the error.
3862//
3863// See the AWS API reference guide for Amazon WorkMail's
3864// API operation ListOrganizations for usage and error information.
3865//
3866// Returned Error Types:
3867//   * InvalidParameterException
3868//   One or more of the input parameters don't match the service's restrictions.
3869//
3870// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListOrganizations
3871func (c *WorkMail) ListOrganizations(input *ListOrganizationsInput) (*ListOrganizationsOutput, error) {
3872	req, out := c.ListOrganizationsRequest(input)
3873	return out, req.Send()
3874}
3875
3876// ListOrganizationsWithContext is the same as ListOrganizations with the addition of
3877// the ability to pass a context and additional request options.
3878//
3879// See ListOrganizations for details on how to use this API operation.
3880//
3881// The context must be non-nil and will be used for request cancellation. If
3882// the context is nil a panic will occur. In the future the SDK may create
3883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3884// for more information on using Contexts.
3885func (c *WorkMail) ListOrganizationsWithContext(ctx aws.Context, input *ListOrganizationsInput, opts ...request.Option) (*ListOrganizationsOutput, error) {
3886	req, out := c.ListOrganizationsRequest(input)
3887	req.SetContext(ctx)
3888	req.ApplyOptions(opts...)
3889	return out, req.Send()
3890}
3891
3892// ListOrganizationsPages iterates over the pages of a ListOrganizations operation,
3893// calling the "fn" function with the response data for each page. To stop
3894// iterating, return false from the fn function.
3895//
3896// See ListOrganizations method for more information on how to use this operation.
3897//
3898// Note: This operation can generate multiple requests to a service.
3899//
3900//    // Example iterating over at most 3 pages of a ListOrganizations operation.
3901//    pageNum := 0
3902//    err := client.ListOrganizationsPages(params,
3903//        func(page *workmail.ListOrganizationsOutput, lastPage bool) bool {
3904//            pageNum++
3905//            fmt.Println(page)
3906//            return pageNum <= 3
3907//        })
3908//
3909func (c *WorkMail) ListOrganizationsPages(input *ListOrganizationsInput, fn func(*ListOrganizationsOutput, bool) bool) error {
3910	return c.ListOrganizationsPagesWithContext(aws.BackgroundContext(), input, fn)
3911}
3912
3913// ListOrganizationsPagesWithContext same as ListOrganizationsPages except
3914// it takes a Context and allows setting request options on the pages.
3915//
3916// The context must be non-nil and will be used for request cancellation. If
3917// the context is nil a panic will occur. In the future the SDK may create
3918// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3919// for more information on using Contexts.
3920func (c *WorkMail) ListOrganizationsPagesWithContext(ctx aws.Context, input *ListOrganizationsInput, fn func(*ListOrganizationsOutput, bool) bool, opts ...request.Option) error {
3921	p := request.Pagination{
3922		NewRequest: func() (*request.Request, error) {
3923			var inCpy *ListOrganizationsInput
3924			if input != nil {
3925				tmp := *input
3926				inCpy = &tmp
3927			}
3928			req, _ := c.ListOrganizationsRequest(inCpy)
3929			req.SetContext(ctx)
3930			req.ApplyOptions(opts...)
3931			return req, nil
3932		},
3933	}
3934
3935	for p.Next() {
3936		if !fn(p.Page().(*ListOrganizationsOutput), !p.HasNextPage()) {
3937			break
3938		}
3939	}
3940
3941	return p.Err()
3942}
3943
3944const opListResourceDelegates = "ListResourceDelegates"
3945
3946// ListResourceDelegatesRequest generates a "aws/request.Request" representing the
3947// client's request for the ListResourceDelegates operation. The "output" return
3948// value will be populated with the request's response once the request completes
3949// successfully.
3950//
3951// Use "Send" method on the returned Request to send the API call to the service.
3952// the "output" return value is not valid until after Send returns without error.
3953//
3954// See ListResourceDelegates for more information on using the ListResourceDelegates
3955// API call, and error handling.
3956//
3957// This method is useful when you want to inject custom logic or configuration
3958// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3959//
3960//
3961//    // Example sending a request using the ListResourceDelegatesRequest method.
3962//    req, resp := client.ListResourceDelegatesRequest(params)
3963//
3964//    err := req.Send()
3965//    if err == nil { // resp is now filled
3966//        fmt.Println(resp)
3967//    }
3968//
3969// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListResourceDelegates
3970func (c *WorkMail) ListResourceDelegatesRequest(input *ListResourceDelegatesInput) (req *request.Request, output *ListResourceDelegatesOutput) {
3971	op := &request.Operation{
3972		Name:       opListResourceDelegates,
3973		HTTPMethod: "POST",
3974		HTTPPath:   "/",
3975		Paginator: &request.Paginator{
3976			InputTokens:     []string{"NextToken"},
3977			OutputTokens:    []string{"NextToken"},
3978			LimitToken:      "MaxResults",
3979			TruncationToken: "",
3980		},
3981	}
3982
3983	if input == nil {
3984		input = &ListResourceDelegatesInput{}
3985	}
3986
3987	output = &ListResourceDelegatesOutput{}
3988	req = c.newRequest(op, input, output)
3989	return
3990}
3991
3992// ListResourceDelegates API operation for Amazon WorkMail.
3993//
3994// Lists the delegates associated with a resource. Users and groups can be resource
3995// delegates and answer requests on behalf of the resource.
3996//
3997// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3998// with awserr.Error's Code and Message methods to get detailed information about
3999// the error.
4000//
4001// See the AWS API reference guide for Amazon WorkMail's
4002// API operation ListResourceDelegates for usage and error information.
4003//
4004// Returned Error Types:
4005//   * EntityNotFoundException
4006//   The identifier supplied for the user, group, or resource does not exist in
4007//   your organization.
4008//
4009//   * EntityStateException
4010//   You are performing an operation on a user, group, or resource that isn't
4011//   in the expected state, such as trying to delete an active user.
4012//
4013//   * InvalidParameterException
4014//   One or more of the input parameters don't match the service's restrictions.
4015//
4016//   * OrganizationNotFoundException
4017//   An operation received a valid organization identifier that either doesn't
4018//   belong or exist in the system.
4019//
4020//   * OrganizationStateException
4021//   The organization must have a valid state to perform certain operations on
4022//   the organization or its members.
4023//
4024// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListResourceDelegates
4025func (c *WorkMail) ListResourceDelegates(input *ListResourceDelegatesInput) (*ListResourceDelegatesOutput, error) {
4026	req, out := c.ListResourceDelegatesRequest(input)
4027	return out, req.Send()
4028}
4029
4030// ListResourceDelegatesWithContext is the same as ListResourceDelegates with the addition of
4031// the ability to pass a context and additional request options.
4032//
4033// See ListResourceDelegates for details on how to use this API operation.
4034//
4035// The context must be non-nil and will be used for request cancellation. If
4036// the context is nil a panic will occur. In the future the SDK may create
4037// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4038// for more information on using Contexts.
4039func (c *WorkMail) ListResourceDelegatesWithContext(ctx aws.Context, input *ListResourceDelegatesInput, opts ...request.Option) (*ListResourceDelegatesOutput, error) {
4040	req, out := c.ListResourceDelegatesRequest(input)
4041	req.SetContext(ctx)
4042	req.ApplyOptions(opts...)
4043	return out, req.Send()
4044}
4045
4046// ListResourceDelegatesPages iterates over the pages of a ListResourceDelegates operation,
4047// calling the "fn" function with the response data for each page. To stop
4048// iterating, return false from the fn function.
4049//
4050// See ListResourceDelegates method for more information on how to use this operation.
4051//
4052// Note: This operation can generate multiple requests to a service.
4053//
4054//    // Example iterating over at most 3 pages of a ListResourceDelegates operation.
4055//    pageNum := 0
4056//    err := client.ListResourceDelegatesPages(params,
4057//        func(page *workmail.ListResourceDelegatesOutput, lastPage bool) bool {
4058//            pageNum++
4059//            fmt.Println(page)
4060//            return pageNum <= 3
4061//        })
4062//
4063func (c *WorkMail) ListResourceDelegatesPages(input *ListResourceDelegatesInput, fn func(*ListResourceDelegatesOutput, bool) bool) error {
4064	return c.ListResourceDelegatesPagesWithContext(aws.BackgroundContext(), input, fn)
4065}
4066
4067// ListResourceDelegatesPagesWithContext same as ListResourceDelegatesPages except
4068// it takes a Context and allows setting request options on the pages.
4069//
4070// The context must be non-nil and will be used for request cancellation. If
4071// the context is nil a panic will occur. In the future the SDK may create
4072// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4073// for more information on using Contexts.
4074func (c *WorkMail) ListResourceDelegatesPagesWithContext(ctx aws.Context, input *ListResourceDelegatesInput, fn func(*ListResourceDelegatesOutput, bool) bool, opts ...request.Option) error {
4075	p := request.Pagination{
4076		NewRequest: func() (*request.Request, error) {
4077			var inCpy *ListResourceDelegatesInput
4078			if input != nil {
4079				tmp := *input
4080				inCpy = &tmp
4081			}
4082			req, _ := c.ListResourceDelegatesRequest(inCpy)
4083			req.SetContext(ctx)
4084			req.ApplyOptions(opts...)
4085			return req, nil
4086		},
4087	}
4088
4089	for p.Next() {
4090		if !fn(p.Page().(*ListResourceDelegatesOutput), !p.HasNextPage()) {
4091			break
4092		}
4093	}
4094
4095	return p.Err()
4096}
4097
4098const opListResources = "ListResources"
4099
4100// ListResourcesRequest generates a "aws/request.Request" representing the
4101// client's request for the ListResources operation. The "output" return
4102// value will be populated with the request's response once the request completes
4103// successfully.
4104//
4105// Use "Send" method on the returned Request to send the API call to the service.
4106// the "output" return value is not valid until after Send returns without error.
4107//
4108// See ListResources for more information on using the ListResources
4109// API call, and error handling.
4110//
4111// This method is useful when you want to inject custom logic or configuration
4112// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4113//
4114//
4115//    // Example sending a request using the ListResourcesRequest method.
4116//    req, resp := client.ListResourcesRequest(params)
4117//
4118//    err := req.Send()
4119//    if err == nil { // resp is now filled
4120//        fmt.Println(resp)
4121//    }
4122//
4123// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListResources
4124func (c *WorkMail) ListResourcesRequest(input *ListResourcesInput) (req *request.Request, output *ListResourcesOutput) {
4125	op := &request.Operation{
4126		Name:       opListResources,
4127		HTTPMethod: "POST",
4128		HTTPPath:   "/",
4129		Paginator: &request.Paginator{
4130			InputTokens:     []string{"NextToken"},
4131			OutputTokens:    []string{"NextToken"},
4132			LimitToken:      "MaxResults",
4133			TruncationToken: "",
4134		},
4135	}
4136
4137	if input == nil {
4138		input = &ListResourcesInput{}
4139	}
4140
4141	output = &ListResourcesOutput{}
4142	req = c.newRequest(op, input, output)
4143	return
4144}
4145
4146// ListResources API operation for Amazon WorkMail.
4147//
4148// Returns summaries of the organization's resources.
4149//
4150// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4151// with awserr.Error's Code and Message methods to get detailed information about
4152// the error.
4153//
4154// See the AWS API reference guide for Amazon WorkMail's
4155// API operation ListResources for usage and error information.
4156//
4157// Returned Error Types:
4158//   * InvalidParameterException
4159//   One or more of the input parameters don't match the service's restrictions.
4160//
4161//   * OrganizationNotFoundException
4162//   An operation received a valid organization identifier that either doesn't
4163//   belong or exist in the system.
4164//
4165//   * OrganizationStateException
4166//   The organization must have a valid state to perform certain operations on
4167//   the organization or its members.
4168//
4169// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListResources
4170func (c *WorkMail) ListResources(input *ListResourcesInput) (*ListResourcesOutput, error) {
4171	req, out := c.ListResourcesRequest(input)
4172	return out, req.Send()
4173}
4174
4175// ListResourcesWithContext is the same as ListResources with the addition of
4176// the ability to pass a context and additional request options.
4177//
4178// See ListResources for details on how to use this API operation.
4179//
4180// The context must be non-nil and will be used for request cancellation. If
4181// the context is nil a panic will occur. In the future the SDK may create
4182// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4183// for more information on using Contexts.
4184func (c *WorkMail) ListResourcesWithContext(ctx aws.Context, input *ListResourcesInput, opts ...request.Option) (*ListResourcesOutput, error) {
4185	req, out := c.ListResourcesRequest(input)
4186	req.SetContext(ctx)
4187	req.ApplyOptions(opts...)
4188	return out, req.Send()
4189}
4190
4191// ListResourcesPages iterates over the pages of a ListResources operation,
4192// calling the "fn" function with the response data for each page. To stop
4193// iterating, return false from the fn function.
4194//
4195// See ListResources method for more information on how to use this operation.
4196//
4197// Note: This operation can generate multiple requests to a service.
4198//
4199//    // Example iterating over at most 3 pages of a ListResources operation.
4200//    pageNum := 0
4201//    err := client.ListResourcesPages(params,
4202//        func(page *workmail.ListResourcesOutput, lastPage bool) bool {
4203//            pageNum++
4204//            fmt.Println(page)
4205//            return pageNum <= 3
4206//        })
4207//
4208func (c *WorkMail) ListResourcesPages(input *ListResourcesInput, fn func(*ListResourcesOutput, bool) bool) error {
4209	return c.ListResourcesPagesWithContext(aws.BackgroundContext(), input, fn)
4210}
4211
4212// ListResourcesPagesWithContext same as ListResourcesPages except
4213// it takes a Context and allows setting request options on the pages.
4214//
4215// The context must be non-nil and will be used for request cancellation. If
4216// the context is nil a panic will occur. In the future the SDK may create
4217// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4218// for more information on using Contexts.
4219func (c *WorkMail) ListResourcesPagesWithContext(ctx aws.Context, input *ListResourcesInput, fn func(*ListResourcesOutput, bool) bool, opts ...request.Option) error {
4220	p := request.Pagination{
4221		NewRequest: func() (*request.Request, error) {
4222			var inCpy *ListResourcesInput
4223			if input != nil {
4224				tmp := *input
4225				inCpy = &tmp
4226			}
4227			req, _ := c.ListResourcesRequest(inCpy)
4228			req.SetContext(ctx)
4229			req.ApplyOptions(opts...)
4230			return req, nil
4231		},
4232	}
4233
4234	for p.Next() {
4235		if !fn(p.Page().(*ListResourcesOutput), !p.HasNextPage()) {
4236			break
4237		}
4238	}
4239
4240	return p.Err()
4241}
4242
4243const opListTagsForResource = "ListTagsForResource"
4244
4245// ListTagsForResourceRequest generates a "aws/request.Request" representing the
4246// client's request for the ListTagsForResource operation. The "output" return
4247// value will be populated with the request's response once the request completes
4248// successfully.
4249//
4250// Use "Send" method on the returned Request to send the API call to the service.
4251// the "output" return value is not valid until after Send returns without error.
4252//
4253// See ListTagsForResource for more information on using the ListTagsForResource
4254// API call, and error handling.
4255//
4256// This method is useful when you want to inject custom logic or configuration
4257// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4258//
4259//
4260//    // Example sending a request using the ListTagsForResourceRequest method.
4261//    req, resp := client.ListTagsForResourceRequest(params)
4262//
4263//    err := req.Send()
4264//    if err == nil { // resp is now filled
4265//        fmt.Println(resp)
4266//    }
4267//
4268// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListTagsForResource
4269func (c *WorkMail) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
4270	op := &request.Operation{
4271		Name:       opListTagsForResource,
4272		HTTPMethod: "POST",
4273		HTTPPath:   "/",
4274	}
4275
4276	if input == nil {
4277		input = &ListTagsForResourceInput{}
4278	}
4279
4280	output = &ListTagsForResourceOutput{}
4281	req = c.newRequest(op, input, output)
4282	return
4283}
4284
4285// ListTagsForResource API operation for Amazon WorkMail.
4286//
4287// Lists the tags applied to an Amazon WorkMail organization resource.
4288//
4289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4290// with awserr.Error's Code and Message methods to get detailed information about
4291// the error.
4292//
4293// See the AWS API reference guide for Amazon WorkMail's
4294// API operation ListTagsForResource for usage and error information.
4295//
4296// Returned Error Types:
4297//   * ResourceNotFoundException
4298//   The resource cannot be found.
4299//
4300// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListTagsForResource
4301func (c *WorkMail) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
4302	req, out := c.ListTagsForResourceRequest(input)
4303	return out, req.Send()
4304}
4305
4306// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
4307// the ability to pass a context and additional request options.
4308//
4309// See ListTagsForResource for details on how to use this API operation.
4310//
4311// The context must be non-nil and will be used for request cancellation. If
4312// the context is nil a panic will occur. In the future the SDK may create
4313// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4314// for more information on using Contexts.
4315func (c *WorkMail) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
4316	req, out := c.ListTagsForResourceRequest(input)
4317	req.SetContext(ctx)
4318	req.ApplyOptions(opts...)
4319	return out, req.Send()
4320}
4321
4322const opListUsers = "ListUsers"
4323
4324// ListUsersRequest generates a "aws/request.Request" representing the
4325// client's request for the ListUsers operation. The "output" return
4326// value will be populated with the request's response once the request completes
4327// successfully.
4328//
4329// Use "Send" method on the returned Request to send the API call to the service.
4330// the "output" return value is not valid until after Send returns without error.
4331//
4332// See ListUsers for more information on using the ListUsers
4333// API call, and error handling.
4334//
4335// This method is useful when you want to inject custom logic or configuration
4336// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4337//
4338//
4339//    // Example sending a request using the ListUsersRequest method.
4340//    req, resp := client.ListUsersRequest(params)
4341//
4342//    err := req.Send()
4343//    if err == nil { // resp is now filled
4344//        fmt.Println(resp)
4345//    }
4346//
4347// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListUsers
4348func (c *WorkMail) ListUsersRequest(input *ListUsersInput) (req *request.Request, output *ListUsersOutput) {
4349	op := &request.Operation{
4350		Name:       opListUsers,
4351		HTTPMethod: "POST",
4352		HTTPPath:   "/",
4353		Paginator: &request.Paginator{
4354			InputTokens:     []string{"NextToken"},
4355			OutputTokens:    []string{"NextToken"},
4356			LimitToken:      "MaxResults",
4357			TruncationToken: "",
4358		},
4359	}
4360
4361	if input == nil {
4362		input = &ListUsersInput{}
4363	}
4364
4365	output = &ListUsersOutput{}
4366	req = c.newRequest(op, input, output)
4367	return
4368}
4369
4370// ListUsers API operation for Amazon WorkMail.
4371//
4372// Returns summaries of the organization's users.
4373//
4374// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4375// with awserr.Error's Code and Message methods to get detailed information about
4376// the error.
4377//
4378// See the AWS API reference guide for Amazon WorkMail's
4379// API operation ListUsers for usage and error information.
4380//
4381// Returned Error Types:
4382//   * InvalidParameterException
4383//   One or more of the input parameters don't match the service's restrictions.
4384//
4385//   * OrganizationNotFoundException
4386//   An operation received a valid organization identifier that either doesn't
4387//   belong or exist in the system.
4388//
4389//   * OrganizationStateException
4390//   The organization must have a valid state to perform certain operations on
4391//   the organization or its members.
4392//
4393// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ListUsers
4394func (c *WorkMail) ListUsers(input *ListUsersInput) (*ListUsersOutput, error) {
4395	req, out := c.ListUsersRequest(input)
4396	return out, req.Send()
4397}
4398
4399// ListUsersWithContext is the same as ListUsers with the addition of
4400// the ability to pass a context and additional request options.
4401//
4402// See ListUsers for details on how to use this API operation.
4403//
4404// The context must be non-nil and will be used for request cancellation. If
4405// the context is nil a panic will occur. In the future the SDK may create
4406// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4407// for more information on using Contexts.
4408func (c *WorkMail) ListUsersWithContext(ctx aws.Context, input *ListUsersInput, opts ...request.Option) (*ListUsersOutput, error) {
4409	req, out := c.ListUsersRequest(input)
4410	req.SetContext(ctx)
4411	req.ApplyOptions(opts...)
4412	return out, req.Send()
4413}
4414
4415// ListUsersPages iterates over the pages of a ListUsers operation,
4416// calling the "fn" function with the response data for each page. To stop
4417// iterating, return false from the fn function.
4418//
4419// See ListUsers method for more information on how to use this operation.
4420//
4421// Note: This operation can generate multiple requests to a service.
4422//
4423//    // Example iterating over at most 3 pages of a ListUsers operation.
4424//    pageNum := 0
4425//    err := client.ListUsersPages(params,
4426//        func(page *workmail.ListUsersOutput, lastPage bool) bool {
4427//            pageNum++
4428//            fmt.Println(page)
4429//            return pageNum <= 3
4430//        })
4431//
4432func (c *WorkMail) ListUsersPages(input *ListUsersInput, fn func(*ListUsersOutput, bool) bool) error {
4433	return c.ListUsersPagesWithContext(aws.BackgroundContext(), input, fn)
4434}
4435
4436// ListUsersPagesWithContext same as ListUsersPages except
4437// it takes a Context and allows setting request options on the pages.
4438//
4439// The context must be non-nil and will be used for request cancellation. If
4440// the context is nil a panic will occur. In the future the SDK may create
4441// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4442// for more information on using Contexts.
4443func (c *WorkMail) ListUsersPagesWithContext(ctx aws.Context, input *ListUsersInput, fn func(*ListUsersOutput, bool) bool, opts ...request.Option) error {
4444	p := request.Pagination{
4445		NewRequest: func() (*request.Request, error) {
4446			var inCpy *ListUsersInput
4447			if input != nil {
4448				tmp := *input
4449				inCpy = &tmp
4450			}
4451			req, _ := c.ListUsersRequest(inCpy)
4452			req.SetContext(ctx)
4453			req.ApplyOptions(opts...)
4454			return req, nil
4455		},
4456	}
4457
4458	for p.Next() {
4459		if !fn(p.Page().(*ListUsersOutput), !p.HasNextPage()) {
4460			break
4461		}
4462	}
4463
4464	return p.Err()
4465}
4466
4467const opPutAccessControlRule = "PutAccessControlRule"
4468
4469// PutAccessControlRuleRequest generates a "aws/request.Request" representing the
4470// client's request for the PutAccessControlRule operation. The "output" return
4471// value will be populated with the request's response once the request completes
4472// successfully.
4473//
4474// Use "Send" method on the returned Request to send the API call to the service.
4475// the "output" return value is not valid until after Send returns without error.
4476//
4477// See PutAccessControlRule for more information on using the PutAccessControlRule
4478// API call, and error handling.
4479//
4480// This method is useful when you want to inject custom logic or configuration
4481// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4482//
4483//
4484//    // Example sending a request using the PutAccessControlRuleRequest method.
4485//    req, resp := client.PutAccessControlRuleRequest(params)
4486//
4487//    err := req.Send()
4488//    if err == nil { // resp is now filled
4489//        fmt.Println(resp)
4490//    }
4491//
4492// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutAccessControlRule
4493func (c *WorkMail) PutAccessControlRuleRequest(input *PutAccessControlRuleInput) (req *request.Request, output *PutAccessControlRuleOutput) {
4494	op := &request.Operation{
4495		Name:       opPutAccessControlRule,
4496		HTTPMethod: "POST",
4497		HTTPPath:   "/",
4498	}
4499
4500	if input == nil {
4501		input = &PutAccessControlRuleInput{}
4502	}
4503
4504	output = &PutAccessControlRuleOutput{}
4505	req = c.newRequest(op, input, output)
4506	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4507	return
4508}
4509
4510// PutAccessControlRule API operation for Amazon WorkMail.
4511//
4512// Adds a new access control rule for the specified organization. The rule allows
4513// or denies access to the organization for the specified IPv4 addresses, access
4514// protocol actions, and user IDs. Adding a new rule with the same name as an
4515// existing rule replaces the older rule.
4516//
4517// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4518// with awserr.Error's Code and Message methods to get detailed information about
4519// the error.
4520//
4521// See the AWS API reference guide for Amazon WorkMail's
4522// API operation PutAccessControlRule for usage and error information.
4523//
4524// Returned Error Types:
4525//   * LimitExceededException
4526//   The request exceeds the limit of the resource.
4527//
4528//   * InvalidParameterException
4529//   One or more of the input parameters don't match the service's restrictions.
4530//
4531//   * EntityNotFoundException
4532//   The identifier supplied for the user, group, or resource does not exist in
4533//   your organization.
4534//
4535//   * OrganizationNotFoundException
4536//   An operation received a valid organization identifier that either doesn't
4537//   belong or exist in the system.
4538//
4539//   * OrganizationStateException
4540//   The organization must have a valid state to perform certain operations on
4541//   the organization or its members.
4542//
4543// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutAccessControlRule
4544func (c *WorkMail) PutAccessControlRule(input *PutAccessControlRuleInput) (*PutAccessControlRuleOutput, error) {
4545	req, out := c.PutAccessControlRuleRequest(input)
4546	return out, req.Send()
4547}
4548
4549// PutAccessControlRuleWithContext is the same as PutAccessControlRule with the addition of
4550// the ability to pass a context and additional request options.
4551//
4552// See PutAccessControlRule for details on how to use this API operation.
4553//
4554// The context must be non-nil and will be used for request cancellation. If
4555// the context is nil a panic will occur. In the future the SDK may create
4556// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4557// for more information on using Contexts.
4558func (c *WorkMail) PutAccessControlRuleWithContext(ctx aws.Context, input *PutAccessControlRuleInput, opts ...request.Option) (*PutAccessControlRuleOutput, error) {
4559	req, out := c.PutAccessControlRuleRequest(input)
4560	req.SetContext(ctx)
4561	req.ApplyOptions(opts...)
4562	return out, req.Send()
4563}
4564
4565const opPutMailboxPermissions = "PutMailboxPermissions"
4566
4567// PutMailboxPermissionsRequest generates a "aws/request.Request" representing the
4568// client's request for the PutMailboxPermissions operation. The "output" return
4569// value will be populated with the request's response once the request completes
4570// successfully.
4571//
4572// Use "Send" method on the returned Request to send the API call to the service.
4573// the "output" return value is not valid until after Send returns without error.
4574//
4575// See PutMailboxPermissions for more information on using the PutMailboxPermissions
4576// API call, and error handling.
4577//
4578// This method is useful when you want to inject custom logic or configuration
4579// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4580//
4581//
4582//    // Example sending a request using the PutMailboxPermissionsRequest method.
4583//    req, resp := client.PutMailboxPermissionsRequest(params)
4584//
4585//    err := req.Send()
4586//    if err == nil { // resp is now filled
4587//        fmt.Println(resp)
4588//    }
4589//
4590// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutMailboxPermissions
4591func (c *WorkMail) PutMailboxPermissionsRequest(input *PutMailboxPermissionsInput) (req *request.Request, output *PutMailboxPermissionsOutput) {
4592	op := &request.Operation{
4593		Name:       opPutMailboxPermissions,
4594		HTTPMethod: "POST",
4595		HTTPPath:   "/",
4596	}
4597
4598	if input == nil {
4599		input = &PutMailboxPermissionsInput{}
4600	}
4601
4602	output = &PutMailboxPermissionsOutput{}
4603	req = c.newRequest(op, input, output)
4604	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4605	return
4606}
4607
4608// PutMailboxPermissions API operation for Amazon WorkMail.
4609//
4610// Sets permissions for a user, group, or resource. This replaces any pre-existing
4611// permissions.
4612//
4613// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4614// with awserr.Error's Code and Message methods to get detailed information about
4615// the error.
4616//
4617// See the AWS API reference guide for Amazon WorkMail's
4618// API operation PutMailboxPermissions for usage and error information.
4619//
4620// Returned Error Types:
4621//   * EntityNotFoundException
4622//   The identifier supplied for the user, group, or resource does not exist in
4623//   your organization.
4624//
4625//   * EntityStateException
4626//   You are performing an operation on a user, group, or resource that isn't
4627//   in the expected state, such as trying to delete an active user.
4628//
4629//   * InvalidParameterException
4630//   One or more of the input parameters don't match the service's restrictions.
4631//
4632//   * OrganizationNotFoundException
4633//   An operation received a valid organization identifier that either doesn't
4634//   belong or exist in the system.
4635//
4636//   * OrganizationStateException
4637//   The organization must have a valid state to perform certain operations on
4638//   the organization or its members.
4639//
4640// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutMailboxPermissions
4641func (c *WorkMail) PutMailboxPermissions(input *PutMailboxPermissionsInput) (*PutMailboxPermissionsOutput, error) {
4642	req, out := c.PutMailboxPermissionsRequest(input)
4643	return out, req.Send()
4644}
4645
4646// PutMailboxPermissionsWithContext is the same as PutMailboxPermissions with the addition of
4647// the ability to pass a context and additional request options.
4648//
4649// See PutMailboxPermissions for details on how to use this API operation.
4650//
4651// The context must be non-nil and will be used for request cancellation. If
4652// the context is nil a panic will occur. In the future the SDK may create
4653// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4654// for more information on using Contexts.
4655func (c *WorkMail) PutMailboxPermissionsWithContext(ctx aws.Context, input *PutMailboxPermissionsInput, opts ...request.Option) (*PutMailboxPermissionsOutput, error) {
4656	req, out := c.PutMailboxPermissionsRequest(input)
4657	req.SetContext(ctx)
4658	req.ApplyOptions(opts...)
4659	return out, req.Send()
4660}
4661
4662const opPutRetentionPolicy = "PutRetentionPolicy"
4663
4664// PutRetentionPolicyRequest generates a "aws/request.Request" representing the
4665// client's request for the PutRetentionPolicy operation. The "output" return
4666// value will be populated with the request's response once the request completes
4667// successfully.
4668//
4669// Use "Send" method on the returned Request to send the API call to the service.
4670// the "output" return value is not valid until after Send returns without error.
4671//
4672// See PutRetentionPolicy for more information on using the PutRetentionPolicy
4673// API call, and error handling.
4674//
4675// This method is useful when you want to inject custom logic or configuration
4676// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4677//
4678//
4679//    // Example sending a request using the PutRetentionPolicyRequest method.
4680//    req, resp := client.PutRetentionPolicyRequest(params)
4681//
4682//    err := req.Send()
4683//    if err == nil { // resp is now filled
4684//        fmt.Println(resp)
4685//    }
4686//
4687// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutRetentionPolicy
4688func (c *WorkMail) PutRetentionPolicyRequest(input *PutRetentionPolicyInput) (req *request.Request, output *PutRetentionPolicyOutput) {
4689	op := &request.Operation{
4690		Name:       opPutRetentionPolicy,
4691		HTTPMethod: "POST",
4692		HTTPPath:   "/",
4693	}
4694
4695	if input == nil {
4696		input = &PutRetentionPolicyInput{}
4697	}
4698
4699	output = &PutRetentionPolicyOutput{}
4700	req = c.newRequest(op, input, output)
4701	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4702	return
4703}
4704
4705// PutRetentionPolicy API operation for Amazon WorkMail.
4706//
4707// Puts a retention policy to the specified organization.
4708//
4709// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4710// with awserr.Error's Code and Message methods to get detailed information about
4711// the error.
4712//
4713// See the AWS API reference guide for Amazon WorkMail's
4714// API operation PutRetentionPolicy for usage and error information.
4715//
4716// Returned Error Types:
4717//   * InvalidParameterException
4718//   One or more of the input parameters don't match the service's restrictions.
4719//
4720//   * OrganizationNotFoundException
4721//   An operation received a valid organization identifier that either doesn't
4722//   belong or exist in the system.
4723//
4724//   * OrganizationStateException
4725//   The organization must have a valid state to perform certain operations on
4726//   the organization or its members.
4727//
4728//   * LimitExceededException
4729//   The request exceeds the limit of the resource.
4730//
4731// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/PutRetentionPolicy
4732func (c *WorkMail) PutRetentionPolicy(input *PutRetentionPolicyInput) (*PutRetentionPolicyOutput, error) {
4733	req, out := c.PutRetentionPolicyRequest(input)
4734	return out, req.Send()
4735}
4736
4737// PutRetentionPolicyWithContext is the same as PutRetentionPolicy with the addition of
4738// the ability to pass a context and additional request options.
4739//
4740// See PutRetentionPolicy for details on how to use this API operation.
4741//
4742// The context must be non-nil and will be used for request cancellation. If
4743// the context is nil a panic will occur. In the future the SDK may create
4744// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4745// for more information on using Contexts.
4746func (c *WorkMail) PutRetentionPolicyWithContext(ctx aws.Context, input *PutRetentionPolicyInput, opts ...request.Option) (*PutRetentionPolicyOutput, error) {
4747	req, out := c.PutRetentionPolicyRequest(input)
4748	req.SetContext(ctx)
4749	req.ApplyOptions(opts...)
4750	return out, req.Send()
4751}
4752
4753const opRegisterToWorkMail = "RegisterToWorkMail"
4754
4755// RegisterToWorkMailRequest generates a "aws/request.Request" representing the
4756// client's request for the RegisterToWorkMail operation. The "output" return
4757// value will be populated with the request's response once the request completes
4758// successfully.
4759//
4760// Use "Send" method on the returned Request to send the API call to the service.
4761// the "output" return value is not valid until after Send returns without error.
4762//
4763// See RegisterToWorkMail for more information on using the RegisterToWorkMail
4764// API call, and error handling.
4765//
4766// This method is useful when you want to inject custom logic or configuration
4767// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4768//
4769//
4770//    // Example sending a request using the RegisterToWorkMailRequest method.
4771//    req, resp := client.RegisterToWorkMailRequest(params)
4772//
4773//    err := req.Send()
4774//    if err == nil { // resp is now filled
4775//        fmt.Println(resp)
4776//    }
4777//
4778// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/RegisterToWorkMail
4779func (c *WorkMail) RegisterToWorkMailRequest(input *RegisterToWorkMailInput) (req *request.Request, output *RegisterToWorkMailOutput) {
4780	op := &request.Operation{
4781		Name:       opRegisterToWorkMail,
4782		HTTPMethod: "POST",
4783		HTTPPath:   "/",
4784	}
4785
4786	if input == nil {
4787		input = &RegisterToWorkMailInput{}
4788	}
4789
4790	output = &RegisterToWorkMailOutput{}
4791	req = c.newRequest(op, input, output)
4792	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4793	return
4794}
4795
4796// RegisterToWorkMail API operation for Amazon WorkMail.
4797//
4798// Registers an existing and disabled user, group, or resource for Amazon WorkMail
4799// use by associating a mailbox and calendaring capabilities. It performs no
4800// change if the user, group, or resource is enabled and fails if the user,
4801// group, or resource is deleted. This operation results in the accumulation
4802// of costs. For more information, see Pricing (https://aws.amazon.com/workmail/pricing).
4803// The equivalent console functionality for this operation is Enable.
4804//
4805// Users can either be created by calling the CreateUser API operation or they
4806// can be synchronized from your directory. For more information, see DeregisterFromWorkMail.
4807//
4808// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4809// with awserr.Error's Code and Message methods to get detailed information about
4810// the error.
4811//
4812// See the AWS API reference guide for Amazon WorkMail's
4813// API operation RegisterToWorkMail for usage and error information.
4814//
4815// Returned Error Types:
4816//   * DirectoryServiceAuthenticationFailedException
4817//   The directory service doesn't recognize the credentials supplied by WorkMail.
4818//
4819//   * DirectoryUnavailableException
4820//   The directory is unavailable. It might be located in another Region or deleted.
4821//
4822//   * EmailAddressInUseException
4823//   The email address that you're trying to assign is already created for a different
4824//   user, group, or resource.
4825//
4826//   * EntityNotFoundException
4827//   The identifier supplied for the user, group, or resource does not exist in
4828//   your organization.
4829//
4830//   * EntityStateException
4831//   You are performing an operation on a user, group, or resource that isn't
4832//   in the expected state, such as trying to delete an active user.
4833//
4834//   * EntityAlreadyRegisteredException
4835//   The user, group, or resource that you're trying to register is already registered.
4836//
4837//   * InvalidParameterException
4838//   One or more of the input parameters don't match the service's restrictions.
4839//
4840//   * MailDomainNotFoundException
4841//   For an email or alias to be created in Amazon WorkMail, the included domain
4842//   must be defined in the organization.
4843//
4844//   * MailDomainStateException
4845//   After a domain has been added to the organization, it must be verified. The
4846//   domain is not yet verified.
4847//
4848//   * OrganizationNotFoundException
4849//   An operation received a valid organization identifier that either doesn't
4850//   belong or exist in the system.
4851//
4852//   * OrganizationStateException
4853//   The organization must have a valid state to perform certain operations on
4854//   the organization or its members.
4855//
4856// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/RegisterToWorkMail
4857func (c *WorkMail) RegisterToWorkMail(input *RegisterToWorkMailInput) (*RegisterToWorkMailOutput, error) {
4858	req, out := c.RegisterToWorkMailRequest(input)
4859	return out, req.Send()
4860}
4861
4862// RegisterToWorkMailWithContext is the same as RegisterToWorkMail with the addition of
4863// the ability to pass a context and additional request options.
4864//
4865// See RegisterToWorkMail for details on how to use this API operation.
4866//
4867// The context must be non-nil and will be used for request cancellation. If
4868// the context is nil a panic will occur. In the future the SDK may create
4869// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4870// for more information on using Contexts.
4871func (c *WorkMail) RegisterToWorkMailWithContext(ctx aws.Context, input *RegisterToWorkMailInput, opts ...request.Option) (*RegisterToWorkMailOutput, error) {
4872	req, out := c.RegisterToWorkMailRequest(input)
4873	req.SetContext(ctx)
4874	req.ApplyOptions(opts...)
4875	return out, req.Send()
4876}
4877
4878const opResetPassword = "ResetPassword"
4879
4880// ResetPasswordRequest generates a "aws/request.Request" representing the
4881// client's request for the ResetPassword operation. The "output" return
4882// value will be populated with the request's response once the request completes
4883// successfully.
4884//
4885// Use "Send" method on the returned Request to send the API call to the service.
4886// the "output" return value is not valid until after Send returns without error.
4887//
4888// See ResetPassword for more information on using the ResetPassword
4889// API call, and error handling.
4890//
4891// This method is useful when you want to inject custom logic or configuration
4892// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4893//
4894//
4895//    // Example sending a request using the ResetPasswordRequest method.
4896//    req, resp := client.ResetPasswordRequest(params)
4897//
4898//    err := req.Send()
4899//    if err == nil { // resp is now filled
4900//        fmt.Println(resp)
4901//    }
4902//
4903// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ResetPassword
4904func (c *WorkMail) ResetPasswordRequest(input *ResetPasswordInput) (req *request.Request, output *ResetPasswordOutput) {
4905	op := &request.Operation{
4906		Name:       opResetPassword,
4907		HTTPMethod: "POST",
4908		HTTPPath:   "/",
4909	}
4910
4911	if input == nil {
4912		input = &ResetPasswordInput{}
4913	}
4914
4915	output = &ResetPasswordOutput{}
4916	req = c.newRequest(op, input, output)
4917	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4918	return
4919}
4920
4921// ResetPassword API operation for Amazon WorkMail.
4922//
4923// Allows the administrator to reset the password for a user.
4924//
4925// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4926// with awserr.Error's Code and Message methods to get detailed information about
4927// the error.
4928//
4929// See the AWS API reference guide for Amazon WorkMail's
4930// API operation ResetPassword for usage and error information.
4931//
4932// Returned Error Types:
4933//   * DirectoryServiceAuthenticationFailedException
4934//   The directory service doesn't recognize the credentials supplied by WorkMail.
4935//
4936//   * DirectoryUnavailableException
4937//   The directory is unavailable. It might be located in another Region or deleted.
4938//
4939//   * EntityNotFoundException
4940//   The identifier supplied for the user, group, or resource does not exist in
4941//   your organization.
4942//
4943//   * EntityStateException
4944//   You are performing an operation on a user, group, or resource that isn't
4945//   in the expected state, such as trying to delete an active user.
4946//
4947//   * InvalidParameterException
4948//   One or more of the input parameters don't match the service's restrictions.
4949//
4950//   * InvalidPasswordException
4951//   The supplied password doesn't match the minimum security constraints, such
4952//   as length or use of special characters.
4953//
4954//   * OrganizationNotFoundException
4955//   An operation received a valid organization identifier that either doesn't
4956//   belong or exist in the system.
4957//
4958//   * OrganizationStateException
4959//   The organization must have a valid state to perform certain operations on
4960//   the organization or its members.
4961//
4962//   * UnsupportedOperationException
4963//   You can't perform a write operation against a read-only directory.
4964//
4965// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/ResetPassword
4966func (c *WorkMail) ResetPassword(input *ResetPasswordInput) (*ResetPasswordOutput, error) {
4967	req, out := c.ResetPasswordRequest(input)
4968	return out, req.Send()
4969}
4970
4971// ResetPasswordWithContext is the same as ResetPassword with the addition of
4972// the ability to pass a context and additional request options.
4973//
4974// See ResetPassword for details on how to use this API operation.
4975//
4976// The context must be non-nil and will be used for request cancellation. If
4977// the context is nil a panic will occur. In the future the SDK may create
4978// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4979// for more information on using Contexts.
4980func (c *WorkMail) ResetPasswordWithContext(ctx aws.Context, input *ResetPasswordInput, opts ...request.Option) (*ResetPasswordOutput, error) {
4981	req, out := c.ResetPasswordRequest(input)
4982	req.SetContext(ctx)
4983	req.ApplyOptions(opts...)
4984	return out, req.Send()
4985}
4986
4987const opStartMailboxExportJob = "StartMailboxExportJob"
4988
4989// StartMailboxExportJobRequest generates a "aws/request.Request" representing the
4990// client's request for the StartMailboxExportJob operation. The "output" return
4991// value will be populated with the request's response once the request completes
4992// successfully.
4993//
4994// Use "Send" method on the returned Request to send the API call to the service.
4995// the "output" return value is not valid until after Send returns without error.
4996//
4997// See StartMailboxExportJob for more information on using the StartMailboxExportJob
4998// API call, and error handling.
4999//
5000// This method is useful when you want to inject custom logic or configuration
5001// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5002//
5003//
5004//    // Example sending a request using the StartMailboxExportJobRequest method.
5005//    req, resp := client.StartMailboxExportJobRequest(params)
5006//
5007//    err := req.Send()
5008//    if err == nil { // resp is now filled
5009//        fmt.Println(resp)
5010//    }
5011//
5012// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/StartMailboxExportJob
5013func (c *WorkMail) StartMailboxExportJobRequest(input *StartMailboxExportJobInput) (req *request.Request, output *StartMailboxExportJobOutput) {
5014	op := &request.Operation{
5015		Name:       opStartMailboxExportJob,
5016		HTTPMethod: "POST",
5017		HTTPPath:   "/",
5018	}
5019
5020	if input == nil {
5021		input = &StartMailboxExportJobInput{}
5022	}
5023
5024	output = &StartMailboxExportJobOutput{}
5025	req = c.newRequest(op, input, output)
5026	return
5027}
5028
5029// StartMailboxExportJob API operation for Amazon WorkMail.
5030//
5031// Starts a mailbox export job to export MIME-format email messages and calendar
5032// items from the specified mailbox to the specified Amazon Simple Storage Service
5033// (Amazon S3) bucket. For more information, see Exporting mailbox content (https://docs.aws.amazon.com/workmail/latest/adminguide/mail-export.html)
5034// in the Amazon WorkMail Administrator Guide.
5035//
5036// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5037// with awserr.Error's Code and Message methods to get detailed information about
5038// the error.
5039//
5040// See the AWS API reference guide for Amazon WorkMail's
5041// API operation StartMailboxExportJob for usage and error information.
5042//
5043// Returned Error Types:
5044//   * InvalidParameterException
5045//   One or more of the input parameters don't match the service's restrictions.
5046//
5047//   * OrganizationNotFoundException
5048//   An operation received a valid organization identifier that either doesn't
5049//   belong or exist in the system.
5050//
5051//   * OrganizationStateException
5052//   The organization must have a valid state to perform certain operations on
5053//   the organization or its members.
5054//
5055//   * EntityNotFoundException
5056//   The identifier supplied for the user, group, or resource does not exist in
5057//   your organization.
5058//
5059//   * LimitExceededException
5060//   The request exceeds the limit of the resource.
5061//
5062// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/StartMailboxExportJob
5063func (c *WorkMail) StartMailboxExportJob(input *StartMailboxExportJobInput) (*StartMailboxExportJobOutput, error) {
5064	req, out := c.StartMailboxExportJobRequest(input)
5065	return out, req.Send()
5066}
5067
5068// StartMailboxExportJobWithContext is the same as StartMailboxExportJob with the addition of
5069// the ability to pass a context and additional request options.
5070//
5071// See StartMailboxExportJob for details on how to use this API operation.
5072//
5073// The context must be non-nil and will be used for request cancellation. If
5074// the context is nil a panic will occur. In the future the SDK may create
5075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5076// for more information on using Contexts.
5077func (c *WorkMail) StartMailboxExportJobWithContext(ctx aws.Context, input *StartMailboxExportJobInput, opts ...request.Option) (*StartMailboxExportJobOutput, error) {
5078	req, out := c.StartMailboxExportJobRequest(input)
5079	req.SetContext(ctx)
5080	req.ApplyOptions(opts...)
5081	return out, req.Send()
5082}
5083
5084const opTagResource = "TagResource"
5085
5086// TagResourceRequest generates a "aws/request.Request" representing the
5087// client's request for the TagResource operation. The "output" return
5088// value will be populated with the request's response once the request completes
5089// successfully.
5090//
5091// Use "Send" method on the returned Request to send the API call to the service.
5092// the "output" return value is not valid until after Send returns without error.
5093//
5094// See TagResource for more information on using the TagResource
5095// API call, and error handling.
5096//
5097// This method is useful when you want to inject custom logic or configuration
5098// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5099//
5100//
5101//    // Example sending a request using the TagResourceRequest method.
5102//    req, resp := client.TagResourceRequest(params)
5103//
5104//    err := req.Send()
5105//    if err == nil { // resp is now filled
5106//        fmt.Println(resp)
5107//    }
5108//
5109// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/TagResource
5110func (c *WorkMail) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
5111	op := &request.Operation{
5112		Name:       opTagResource,
5113		HTTPMethod: "POST",
5114		HTTPPath:   "/",
5115	}
5116
5117	if input == nil {
5118		input = &TagResourceInput{}
5119	}
5120
5121	output = &TagResourceOutput{}
5122	req = c.newRequest(op, input, output)
5123	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5124	return
5125}
5126
5127// TagResource API operation for Amazon WorkMail.
5128//
5129// Applies the specified tags to the specified Amazon WorkMail organization
5130// resource.
5131//
5132// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5133// with awserr.Error's Code and Message methods to get detailed information about
5134// the error.
5135//
5136// See the AWS API reference guide for Amazon WorkMail's
5137// API operation TagResource for usage and error information.
5138//
5139// Returned Error Types:
5140//   * ResourceNotFoundException
5141//   The resource cannot be found.
5142//
5143//   * TooManyTagsException
5144//   The resource can have up to 50 user-applied tags.
5145//
5146//   * OrganizationStateException
5147//   The organization must have a valid state to perform certain operations on
5148//   the organization or its members.
5149//
5150// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/TagResource
5151func (c *WorkMail) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
5152	req, out := c.TagResourceRequest(input)
5153	return out, req.Send()
5154}
5155
5156// TagResourceWithContext is the same as TagResource with the addition of
5157// the ability to pass a context and additional request options.
5158//
5159// See TagResource for details on how to use this API operation.
5160//
5161// The context must be non-nil and will be used for request cancellation. If
5162// the context is nil a panic will occur. In the future the SDK may create
5163// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5164// for more information on using Contexts.
5165func (c *WorkMail) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
5166	req, out := c.TagResourceRequest(input)
5167	req.SetContext(ctx)
5168	req.ApplyOptions(opts...)
5169	return out, req.Send()
5170}
5171
5172const opUntagResource = "UntagResource"
5173
5174// UntagResourceRequest generates a "aws/request.Request" representing the
5175// client's request for the UntagResource operation. The "output" return
5176// value will be populated with the request's response once the request completes
5177// successfully.
5178//
5179// Use "Send" method on the returned Request to send the API call to the service.
5180// the "output" return value is not valid until after Send returns without error.
5181//
5182// See UntagResource for more information on using the UntagResource
5183// API call, and error handling.
5184//
5185// This method is useful when you want to inject custom logic or configuration
5186// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5187//
5188//
5189//    // Example sending a request using the UntagResourceRequest method.
5190//    req, resp := client.UntagResourceRequest(params)
5191//
5192//    err := req.Send()
5193//    if err == nil { // resp is now filled
5194//        fmt.Println(resp)
5195//    }
5196//
5197// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UntagResource
5198func (c *WorkMail) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
5199	op := &request.Operation{
5200		Name:       opUntagResource,
5201		HTTPMethod: "POST",
5202		HTTPPath:   "/",
5203	}
5204
5205	if input == nil {
5206		input = &UntagResourceInput{}
5207	}
5208
5209	output = &UntagResourceOutput{}
5210	req = c.newRequest(op, input, output)
5211	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5212	return
5213}
5214
5215// UntagResource API operation for Amazon WorkMail.
5216//
5217// Untags the specified tags from the specified Amazon WorkMail organization
5218// resource.
5219//
5220// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5221// with awserr.Error's Code and Message methods to get detailed information about
5222// the error.
5223//
5224// See the AWS API reference guide for Amazon WorkMail's
5225// API operation UntagResource for usage and error information.
5226//
5227// Returned Error Types:
5228//   * ResourceNotFoundException
5229//   The resource cannot be found.
5230//
5231// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UntagResource
5232func (c *WorkMail) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
5233	req, out := c.UntagResourceRequest(input)
5234	return out, req.Send()
5235}
5236
5237// UntagResourceWithContext is the same as UntagResource with the addition of
5238// the ability to pass a context and additional request options.
5239//
5240// See UntagResource for details on how to use this API operation.
5241//
5242// The context must be non-nil and will be used for request cancellation. If
5243// the context is nil a panic will occur. In the future the SDK may create
5244// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5245// for more information on using Contexts.
5246func (c *WorkMail) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
5247	req, out := c.UntagResourceRequest(input)
5248	req.SetContext(ctx)
5249	req.ApplyOptions(opts...)
5250	return out, req.Send()
5251}
5252
5253const opUpdateMailboxQuota = "UpdateMailboxQuota"
5254
5255// UpdateMailboxQuotaRequest generates a "aws/request.Request" representing the
5256// client's request for the UpdateMailboxQuota operation. The "output" return
5257// value will be populated with the request's response once the request completes
5258// successfully.
5259//
5260// Use "Send" method on the returned Request to send the API call to the service.
5261// the "output" return value is not valid until after Send returns without error.
5262//
5263// See UpdateMailboxQuota for more information on using the UpdateMailboxQuota
5264// API call, and error handling.
5265//
5266// This method is useful when you want to inject custom logic or configuration
5267// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5268//
5269//
5270//    // Example sending a request using the UpdateMailboxQuotaRequest method.
5271//    req, resp := client.UpdateMailboxQuotaRequest(params)
5272//
5273//    err := req.Send()
5274//    if err == nil { // resp is now filled
5275//        fmt.Println(resp)
5276//    }
5277//
5278// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateMailboxQuota
5279func (c *WorkMail) UpdateMailboxQuotaRequest(input *UpdateMailboxQuotaInput) (req *request.Request, output *UpdateMailboxQuotaOutput) {
5280	op := &request.Operation{
5281		Name:       opUpdateMailboxQuota,
5282		HTTPMethod: "POST",
5283		HTTPPath:   "/",
5284	}
5285
5286	if input == nil {
5287		input = &UpdateMailboxQuotaInput{}
5288	}
5289
5290	output = &UpdateMailboxQuotaOutput{}
5291	req = c.newRequest(op, input, output)
5292	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5293	return
5294}
5295
5296// UpdateMailboxQuota API operation for Amazon WorkMail.
5297//
5298// Updates a user's current mailbox quota for a specified organization and user.
5299//
5300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5301// with awserr.Error's Code and Message methods to get detailed information about
5302// the error.
5303//
5304// See the AWS API reference guide for Amazon WorkMail's
5305// API operation UpdateMailboxQuota for usage and error information.
5306//
5307// Returned Error Types:
5308//   * InvalidParameterException
5309//   One or more of the input parameters don't match the service's restrictions.
5310//
5311//   * OrganizationNotFoundException
5312//   An operation received a valid organization identifier that either doesn't
5313//   belong or exist in the system.
5314//
5315//   * OrganizationStateException
5316//   The organization must have a valid state to perform certain operations on
5317//   the organization or its members.
5318//
5319//   * EntityNotFoundException
5320//   The identifier supplied for the user, group, or resource does not exist in
5321//   your organization.
5322//
5323//   * EntityStateException
5324//   You are performing an operation on a user, group, or resource that isn't
5325//   in the expected state, such as trying to delete an active user.
5326//
5327// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateMailboxQuota
5328func (c *WorkMail) UpdateMailboxQuota(input *UpdateMailboxQuotaInput) (*UpdateMailboxQuotaOutput, error) {
5329	req, out := c.UpdateMailboxQuotaRequest(input)
5330	return out, req.Send()
5331}
5332
5333// UpdateMailboxQuotaWithContext is the same as UpdateMailboxQuota with the addition of
5334// the ability to pass a context and additional request options.
5335//
5336// See UpdateMailboxQuota for details on how to use this API operation.
5337//
5338// The context must be non-nil and will be used for request cancellation. If
5339// the context is nil a panic will occur. In the future the SDK may create
5340// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5341// for more information on using Contexts.
5342func (c *WorkMail) UpdateMailboxQuotaWithContext(ctx aws.Context, input *UpdateMailboxQuotaInput, opts ...request.Option) (*UpdateMailboxQuotaOutput, error) {
5343	req, out := c.UpdateMailboxQuotaRequest(input)
5344	req.SetContext(ctx)
5345	req.ApplyOptions(opts...)
5346	return out, req.Send()
5347}
5348
5349const opUpdateMobileDeviceAccessRule = "UpdateMobileDeviceAccessRule"
5350
5351// UpdateMobileDeviceAccessRuleRequest generates a "aws/request.Request" representing the
5352// client's request for the UpdateMobileDeviceAccessRule operation. The "output" return
5353// value will be populated with the request's response once the request completes
5354// successfully.
5355//
5356// Use "Send" method on the returned Request to send the API call to the service.
5357// the "output" return value is not valid until after Send returns without error.
5358//
5359// See UpdateMobileDeviceAccessRule for more information on using the UpdateMobileDeviceAccessRule
5360// API call, and error handling.
5361//
5362// This method is useful when you want to inject custom logic or configuration
5363// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5364//
5365//
5366//    // Example sending a request using the UpdateMobileDeviceAccessRuleRequest method.
5367//    req, resp := client.UpdateMobileDeviceAccessRuleRequest(params)
5368//
5369//    err := req.Send()
5370//    if err == nil { // resp is now filled
5371//        fmt.Println(resp)
5372//    }
5373//
5374// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateMobileDeviceAccessRule
5375func (c *WorkMail) UpdateMobileDeviceAccessRuleRequest(input *UpdateMobileDeviceAccessRuleInput) (req *request.Request, output *UpdateMobileDeviceAccessRuleOutput) {
5376	op := &request.Operation{
5377		Name:       opUpdateMobileDeviceAccessRule,
5378		HTTPMethod: "POST",
5379		HTTPPath:   "/",
5380	}
5381
5382	if input == nil {
5383		input = &UpdateMobileDeviceAccessRuleInput{}
5384	}
5385
5386	output = &UpdateMobileDeviceAccessRuleOutput{}
5387	req = c.newRequest(op, input, output)
5388	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5389	return
5390}
5391
5392// UpdateMobileDeviceAccessRule API operation for Amazon WorkMail.
5393//
5394// Updates a mobile device access rule for the specified Amazon WorkMail organization.
5395//
5396// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5397// with awserr.Error's Code and Message methods to get detailed information about
5398// the error.
5399//
5400// See the AWS API reference guide for Amazon WorkMail's
5401// API operation UpdateMobileDeviceAccessRule for usage and error information.
5402//
5403// Returned Error Types:
5404//   * InvalidParameterException
5405//   One or more of the input parameters don't match the service's restrictions.
5406//
5407//   * EntityNotFoundException
5408//   The identifier supplied for the user, group, or resource does not exist in
5409//   your organization.
5410//
5411//   * OrganizationNotFoundException
5412//   An operation received a valid organization identifier that either doesn't
5413//   belong or exist in the system.
5414//
5415//   * OrganizationStateException
5416//   The organization must have a valid state to perform certain operations on
5417//   the organization or its members.
5418//
5419// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateMobileDeviceAccessRule
5420func (c *WorkMail) UpdateMobileDeviceAccessRule(input *UpdateMobileDeviceAccessRuleInput) (*UpdateMobileDeviceAccessRuleOutput, error) {
5421	req, out := c.UpdateMobileDeviceAccessRuleRequest(input)
5422	return out, req.Send()
5423}
5424
5425// UpdateMobileDeviceAccessRuleWithContext is the same as UpdateMobileDeviceAccessRule with the addition of
5426// the ability to pass a context and additional request options.
5427//
5428// See UpdateMobileDeviceAccessRule for details on how to use this API operation.
5429//
5430// The context must be non-nil and will be used for request cancellation. If
5431// the context is nil a panic will occur. In the future the SDK may create
5432// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5433// for more information on using Contexts.
5434func (c *WorkMail) UpdateMobileDeviceAccessRuleWithContext(ctx aws.Context, input *UpdateMobileDeviceAccessRuleInput, opts ...request.Option) (*UpdateMobileDeviceAccessRuleOutput, error) {
5435	req, out := c.UpdateMobileDeviceAccessRuleRequest(input)
5436	req.SetContext(ctx)
5437	req.ApplyOptions(opts...)
5438	return out, req.Send()
5439}
5440
5441const opUpdatePrimaryEmailAddress = "UpdatePrimaryEmailAddress"
5442
5443// UpdatePrimaryEmailAddressRequest generates a "aws/request.Request" representing the
5444// client's request for the UpdatePrimaryEmailAddress operation. The "output" return
5445// value will be populated with the request's response once the request completes
5446// successfully.
5447//
5448// Use "Send" method on the returned Request to send the API call to the service.
5449// the "output" return value is not valid until after Send returns without error.
5450//
5451// See UpdatePrimaryEmailAddress for more information on using the UpdatePrimaryEmailAddress
5452// API call, and error handling.
5453//
5454// This method is useful when you want to inject custom logic or configuration
5455// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5456//
5457//
5458//    // Example sending a request using the UpdatePrimaryEmailAddressRequest method.
5459//    req, resp := client.UpdatePrimaryEmailAddressRequest(params)
5460//
5461//    err := req.Send()
5462//    if err == nil { // resp is now filled
5463//        fmt.Println(resp)
5464//    }
5465//
5466// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdatePrimaryEmailAddress
5467func (c *WorkMail) UpdatePrimaryEmailAddressRequest(input *UpdatePrimaryEmailAddressInput) (req *request.Request, output *UpdatePrimaryEmailAddressOutput) {
5468	op := &request.Operation{
5469		Name:       opUpdatePrimaryEmailAddress,
5470		HTTPMethod: "POST",
5471		HTTPPath:   "/",
5472	}
5473
5474	if input == nil {
5475		input = &UpdatePrimaryEmailAddressInput{}
5476	}
5477
5478	output = &UpdatePrimaryEmailAddressOutput{}
5479	req = c.newRequest(op, input, output)
5480	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5481	return
5482}
5483
5484// UpdatePrimaryEmailAddress API operation for Amazon WorkMail.
5485//
5486// Updates the primary email for a user, group, or resource. The current email
5487// is moved into the list of aliases (or swapped between an existing alias and
5488// the current primary email), and the email provided in the input is promoted
5489// as the primary.
5490//
5491// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5492// with awserr.Error's Code and Message methods to get detailed information about
5493// the error.
5494//
5495// See the AWS API reference guide for Amazon WorkMail's
5496// API operation UpdatePrimaryEmailAddress for usage and error information.
5497//
5498// Returned Error Types:
5499//   * DirectoryServiceAuthenticationFailedException
5500//   The directory service doesn't recognize the credentials supplied by WorkMail.
5501//
5502//   * DirectoryUnavailableException
5503//   The directory is unavailable. It might be located in another Region or deleted.
5504//
5505//   * EmailAddressInUseException
5506//   The email address that you're trying to assign is already created for a different
5507//   user, group, or resource.
5508//
5509//   * EntityNotFoundException
5510//   The identifier supplied for the user, group, or resource does not exist in
5511//   your organization.
5512//
5513//   * EntityStateException
5514//   You are performing an operation on a user, group, or resource that isn't
5515//   in the expected state, such as trying to delete an active user.
5516//
5517//   * InvalidParameterException
5518//   One or more of the input parameters don't match the service's restrictions.
5519//
5520//   * MailDomainNotFoundException
5521//   For an email or alias to be created in Amazon WorkMail, the included domain
5522//   must be defined in the organization.
5523//
5524//   * MailDomainStateException
5525//   After a domain has been added to the organization, it must be verified. The
5526//   domain is not yet verified.
5527//
5528//   * InvalidParameterException
5529//   One or more of the input parameters don't match the service's restrictions.
5530//
5531//   * OrganizationNotFoundException
5532//   An operation received a valid organization identifier that either doesn't
5533//   belong or exist in the system.
5534//
5535//   * OrganizationStateException
5536//   The organization must have a valid state to perform certain operations on
5537//   the organization or its members.
5538//
5539//   * UnsupportedOperationException
5540//   You can't perform a write operation against a read-only directory.
5541//
5542// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdatePrimaryEmailAddress
5543func (c *WorkMail) UpdatePrimaryEmailAddress(input *UpdatePrimaryEmailAddressInput) (*UpdatePrimaryEmailAddressOutput, error) {
5544	req, out := c.UpdatePrimaryEmailAddressRequest(input)
5545	return out, req.Send()
5546}
5547
5548// UpdatePrimaryEmailAddressWithContext is the same as UpdatePrimaryEmailAddress with the addition of
5549// the ability to pass a context and additional request options.
5550//
5551// See UpdatePrimaryEmailAddress for details on how to use this API operation.
5552//
5553// The context must be non-nil and will be used for request cancellation. If
5554// the context is nil a panic will occur. In the future the SDK may create
5555// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5556// for more information on using Contexts.
5557func (c *WorkMail) UpdatePrimaryEmailAddressWithContext(ctx aws.Context, input *UpdatePrimaryEmailAddressInput, opts ...request.Option) (*UpdatePrimaryEmailAddressOutput, error) {
5558	req, out := c.UpdatePrimaryEmailAddressRequest(input)
5559	req.SetContext(ctx)
5560	req.ApplyOptions(opts...)
5561	return out, req.Send()
5562}
5563
5564const opUpdateResource = "UpdateResource"
5565
5566// UpdateResourceRequest generates a "aws/request.Request" representing the
5567// client's request for the UpdateResource operation. The "output" return
5568// value will be populated with the request's response once the request completes
5569// successfully.
5570//
5571// Use "Send" method on the returned Request to send the API call to the service.
5572// the "output" return value is not valid until after Send returns without error.
5573//
5574// See UpdateResource for more information on using the UpdateResource
5575// API call, and error handling.
5576//
5577// This method is useful when you want to inject custom logic or configuration
5578// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5579//
5580//
5581//    // Example sending a request using the UpdateResourceRequest method.
5582//    req, resp := client.UpdateResourceRequest(params)
5583//
5584//    err := req.Send()
5585//    if err == nil { // resp is now filled
5586//        fmt.Println(resp)
5587//    }
5588//
5589// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateResource
5590func (c *WorkMail) UpdateResourceRequest(input *UpdateResourceInput) (req *request.Request, output *UpdateResourceOutput) {
5591	op := &request.Operation{
5592		Name:       opUpdateResource,
5593		HTTPMethod: "POST",
5594		HTTPPath:   "/",
5595	}
5596
5597	if input == nil {
5598		input = &UpdateResourceInput{}
5599	}
5600
5601	output = &UpdateResourceOutput{}
5602	req = c.newRequest(op, input, output)
5603	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5604	return
5605}
5606
5607// UpdateResource API operation for Amazon WorkMail.
5608//
5609// Updates data for the resource. To have the latest information, it must be
5610// preceded by a DescribeResource call. The dataset in the request should be
5611// the one expected when performing another DescribeResource call.
5612//
5613// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5614// with awserr.Error's Code and Message methods to get detailed information about
5615// the error.
5616//
5617// See the AWS API reference guide for Amazon WorkMail's
5618// API operation UpdateResource for usage and error information.
5619//
5620// Returned Error Types:
5621//   * DirectoryUnavailableException
5622//   The directory is unavailable. It might be located in another Region or deleted.
5623//
5624//   * EntityNotFoundException
5625//   The identifier supplied for the user, group, or resource does not exist in
5626//   your organization.
5627//
5628//   * EntityStateException
5629//   You are performing an operation on a user, group, or resource that isn't
5630//   in the expected state, such as trying to delete an active user.
5631//
5632//   * InvalidConfigurationException
5633//   The configuration for a resource isn't valid. A resource must either be able
5634//   to auto-respond to requests or have at least one delegate associated that
5635//   can do so on its behalf.
5636//
5637//   * EmailAddressInUseException
5638//   The email address that you're trying to assign is already created for a different
5639//   user, group, or resource.
5640//
5641//   * MailDomainNotFoundException
5642//   For an email or alias to be created in Amazon WorkMail, the included domain
5643//   must be defined in the organization.
5644//
5645//   * MailDomainStateException
5646//   After a domain has been added to the organization, it must be verified. The
5647//   domain is not yet verified.
5648//
5649//   * NameAvailabilityException
5650//   The user, group, or resource name isn't unique in Amazon WorkMail.
5651//
5652//   * OrganizationNotFoundException
5653//   An operation received a valid organization identifier that either doesn't
5654//   belong or exist in the system.
5655//
5656//   * OrganizationStateException
5657//   The organization must have a valid state to perform certain operations on
5658//   the organization or its members.
5659//
5660// See also, https://docs.aws.amazon.com/goto/WebAPI/workmail-2017-10-01/UpdateResource
5661func (c *WorkMail) UpdateResource(input *UpdateResourceInput) (*UpdateResourceOutput, error) {
5662	req, out := c.UpdateResourceRequest(input)
5663	return out, req.Send()
5664}
5665
5666// UpdateResourceWithContext is the same as UpdateResource with the addition of
5667// the ability to pass a context and additional request options.
5668//
5669// See UpdateResource for details on how to use this API operation.
5670//
5671// The context must be non-nil and will be used for request cancellation. If
5672// the context is nil a panic will occur. In the future the SDK may create
5673// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5674// for more information on using Contexts.
5675func (c *WorkMail) UpdateResourceWithContext(ctx aws.Context, input *UpdateResourceInput, opts ...request.Option) (*UpdateResourceOutput, error) {
5676	req, out := c.UpdateResourceRequest(input)
5677	req.SetContext(ctx)
5678	req.ApplyOptions(opts...)
5679	return out, req.Send()
5680}
5681
5682// A rule that controls access to an Amazon WorkMail organization.
5683type AccessControlRule struct {
5684	_ struct{} `type:"structure"`
5685
5686	// Access protocol actions to include in the rule. Valid values include ActiveSync,
5687	// AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.
5688	Actions []*string `type:"list"`
5689
5690	// The date that the rule was created.
5691	DateCreated *time.Time `type:"timestamp"`
5692
5693	// The date that the rule was modified.
5694	DateModified *time.Time `type:"timestamp"`
5695
5696	// The rule description.
5697	Description *string `type:"string"`
5698
5699	// The rule effect.
5700	Effect *string `type:"string" enum:"AccessControlRuleEffect"`
5701
5702	// IPv4 CIDR ranges to include in the rule.
5703	IpRanges []*string `type:"list"`
5704
5705	// The rule name.
5706	Name *string `min:"1" type:"string"`
5707
5708	// Access protocol actions to exclude from the rule. Valid values include ActiveSync,
5709	// AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.
5710	NotActions []*string `type:"list"`
5711
5712	// IPv4 CIDR ranges to exclude from the rule.
5713	NotIpRanges []*string `type:"list"`
5714
5715	// User IDs to exclude from the rule.
5716	NotUserIds []*string `type:"list"`
5717
5718	// User IDs to include in the rule.
5719	UserIds []*string `type:"list"`
5720}
5721
5722// String returns the string representation
5723func (s AccessControlRule) String() string {
5724	return awsutil.Prettify(s)
5725}
5726
5727// GoString returns the string representation
5728func (s AccessControlRule) GoString() string {
5729	return s.String()
5730}
5731
5732// SetActions sets the Actions field's value.
5733func (s *AccessControlRule) SetActions(v []*string) *AccessControlRule {
5734	s.Actions = v
5735	return s
5736}
5737
5738// SetDateCreated sets the DateCreated field's value.
5739func (s *AccessControlRule) SetDateCreated(v time.Time) *AccessControlRule {
5740	s.DateCreated = &v
5741	return s
5742}
5743
5744// SetDateModified sets the DateModified field's value.
5745func (s *AccessControlRule) SetDateModified(v time.Time) *AccessControlRule {
5746	s.DateModified = &v
5747	return s
5748}
5749
5750// SetDescription sets the Description field's value.
5751func (s *AccessControlRule) SetDescription(v string) *AccessControlRule {
5752	s.Description = &v
5753	return s
5754}
5755
5756// SetEffect sets the Effect field's value.
5757func (s *AccessControlRule) SetEffect(v string) *AccessControlRule {
5758	s.Effect = &v
5759	return s
5760}
5761
5762// SetIpRanges sets the IpRanges field's value.
5763func (s *AccessControlRule) SetIpRanges(v []*string) *AccessControlRule {
5764	s.IpRanges = v
5765	return s
5766}
5767
5768// SetName sets the Name field's value.
5769func (s *AccessControlRule) SetName(v string) *AccessControlRule {
5770	s.Name = &v
5771	return s
5772}
5773
5774// SetNotActions sets the NotActions field's value.
5775func (s *AccessControlRule) SetNotActions(v []*string) *AccessControlRule {
5776	s.NotActions = v
5777	return s
5778}
5779
5780// SetNotIpRanges sets the NotIpRanges field's value.
5781func (s *AccessControlRule) SetNotIpRanges(v []*string) *AccessControlRule {
5782	s.NotIpRanges = v
5783	return s
5784}
5785
5786// SetNotUserIds sets the NotUserIds field's value.
5787func (s *AccessControlRule) SetNotUserIds(v []*string) *AccessControlRule {
5788	s.NotUserIds = v
5789	return s
5790}
5791
5792// SetUserIds sets the UserIds field's value.
5793func (s *AccessControlRule) SetUserIds(v []*string) *AccessControlRule {
5794	s.UserIds = v
5795	return s
5796}
5797
5798type AssociateDelegateToResourceInput struct {
5799	_ struct{} `type:"structure"`
5800
5801	// The member (user or group) to associate to the resource.
5802	//
5803	// EntityId is a required field
5804	EntityId *string `min:"12" type:"string" required:"true"`
5805
5806	// The organization under which the resource exists.
5807	//
5808	// OrganizationId is a required field
5809	OrganizationId *string `min:"34" type:"string" required:"true"`
5810
5811	// The resource for which members (users or groups) are associated.
5812	//
5813	// ResourceId is a required field
5814	ResourceId *string `min:"34" type:"string" required:"true"`
5815}
5816
5817// String returns the string representation
5818func (s AssociateDelegateToResourceInput) String() string {
5819	return awsutil.Prettify(s)
5820}
5821
5822// GoString returns the string representation
5823func (s AssociateDelegateToResourceInput) GoString() string {
5824	return s.String()
5825}
5826
5827// Validate inspects the fields of the type to determine if they are valid.
5828func (s *AssociateDelegateToResourceInput) Validate() error {
5829	invalidParams := request.ErrInvalidParams{Context: "AssociateDelegateToResourceInput"}
5830	if s.EntityId == nil {
5831		invalidParams.Add(request.NewErrParamRequired("EntityId"))
5832	}
5833	if s.EntityId != nil && len(*s.EntityId) < 12 {
5834		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
5835	}
5836	if s.OrganizationId == nil {
5837		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
5838	}
5839	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
5840		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
5841	}
5842	if s.ResourceId == nil {
5843		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
5844	}
5845	if s.ResourceId != nil && len(*s.ResourceId) < 34 {
5846		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 34))
5847	}
5848
5849	if invalidParams.Len() > 0 {
5850		return invalidParams
5851	}
5852	return nil
5853}
5854
5855// SetEntityId sets the EntityId field's value.
5856func (s *AssociateDelegateToResourceInput) SetEntityId(v string) *AssociateDelegateToResourceInput {
5857	s.EntityId = &v
5858	return s
5859}
5860
5861// SetOrganizationId sets the OrganizationId field's value.
5862func (s *AssociateDelegateToResourceInput) SetOrganizationId(v string) *AssociateDelegateToResourceInput {
5863	s.OrganizationId = &v
5864	return s
5865}
5866
5867// SetResourceId sets the ResourceId field's value.
5868func (s *AssociateDelegateToResourceInput) SetResourceId(v string) *AssociateDelegateToResourceInput {
5869	s.ResourceId = &v
5870	return s
5871}
5872
5873type AssociateDelegateToResourceOutput struct {
5874	_ struct{} `type:"structure"`
5875}
5876
5877// String returns the string representation
5878func (s AssociateDelegateToResourceOutput) String() string {
5879	return awsutil.Prettify(s)
5880}
5881
5882// GoString returns the string representation
5883func (s AssociateDelegateToResourceOutput) GoString() string {
5884	return s.String()
5885}
5886
5887type AssociateMemberToGroupInput struct {
5888	_ struct{} `type:"structure"`
5889
5890	// The group to which the member (user or group) is associated.
5891	//
5892	// GroupId is a required field
5893	GroupId *string `min:"12" type:"string" required:"true"`
5894
5895	// The member (user or group) to associate to the group.
5896	//
5897	// MemberId is a required field
5898	MemberId *string `min:"12" type:"string" required:"true"`
5899
5900	// The organization under which the group exists.
5901	//
5902	// OrganizationId is a required field
5903	OrganizationId *string `min:"34" type:"string" required:"true"`
5904}
5905
5906// String returns the string representation
5907func (s AssociateMemberToGroupInput) String() string {
5908	return awsutil.Prettify(s)
5909}
5910
5911// GoString returns the string representation
5912func (s AssociateMemberToGroupInput) GoString() string {
5913	return s.String()
5914}
5915
5916// Validate inspects the fields of the type to determine if they are valid.
5917func (s *AssociateMemberToGroupInput) Validate() error {
5918	invalidParams := request.ErrInvalidParams{Context: "AssociateMemberToGroupInput"}
5919	if s.GroupId == nil {
5920		invalidParams.Add(request.NewErrParamRequired("GroupId"))
5921	}
5922	if s.GroupId != nil && len(*s.GroupId) < 12 {
5923		invalidParams.Add(request.NewErrParamMinLen("GroupId", 12))
5924	}
5925	if s.MemberId == nil {
5926		invalidParams.Add(request.NewErrParamRequired("MemberId"))
5927	}
5928	if s.MemberId != nil && len(*s.MemberId) < 12 {
5929		invalidParams.Add(request.NewErrParamMinLen("MemberId", 12))
5930	}
5931	if s.OrganizationId == nil {
5932		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
5933	}
5934	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
5935		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
5936	}
5937
5938	if invalidParams.Len() > 0 {
5939		return invalidParams
5940	}
5941	return nil
5942}
5943
5944// SetGroupId sets the GroupId field's value.
5945func (s *AssociateMemberToGroupInput) SetGroupId(v string) *AssociateMemberToGroupInput {
5946	s.GroupId = &v
5947	return s
5948}
5949
5950// SetMemberId sets the MemberId field's value.
5951func (s *AssociateMemberToGroupInput) SetMemberId(v string) *AssociateMemberToGroupInput {
5952	s.MemberId = &v
5953	return s
5954}
5955
5956// SetOrganizationId sets the OrganizationId field's value.
5957func (s *AssociateMemberToGroupInput) SetOrganizationId(v string) *AssociateMemberToGroupInput {
5958	s.OrganizationId = &v
5959	return s
5960}
5961
5962type AssociateMemberToGroupOutput struct {
5963	_ struct{} `type:"structure"`
5964}
5965
5966// String returns the string representation
5967func (s AssociateMemberToGroupOutput) String() string {
5968	return awsutil.Prettify(s)
5969}
5970
5971// GoString returns the string representation
5972func (s AssociateMemberToGroupOutput) GoString() string {
5973	return s.String()
5974}
5975
5976// At least one delegate must be associated to the resource to disable automatic
5977// replies from the resource.
5978type BookingOptions struct {
5979	_ struct{} `type:"structure"`
5980
5981	// The resource's ability to automatically reply to requests. If disabled, delegates
5982	// must be associated to the resource.
5983	AutoAcceptRequests *bool `type:"boolean"`
5984
5985	// The resource's ability to automatically decline any conflicting requests.
5986	AutoDeclineConflictingRequests *bool `type:"boolean"`
5987
5988	// The resource's ability to automatically decline any recurring requests.
5989	AutoDeclineRecurringRequests *bool `type:"boolean"`
5990}
5991
5992// String returns the string representation
5993func (s BookingOptions) String() string {
5994	return awsutil.Prettify(s)
5995}
5996
5997// GoString returns the string representation
5998func (s BookingOptions) GoString() string {
5999	return s.String()
6000}
6001
6002// SetAutoAcceptRequests sets the AutoAcceptRequests field's value.
6003func (s *BookingOptions) SetAutoAcceptRequests(v bool) *BookingOptions {
6004	s.AutoAcceptRequests = &v
6005	return s
6006}
6007
6008// SetAutoDeclineConflictingRequests sets the AutoDeclineConflictingRequests field's value.
6009func (s *BookingOptions) SetAutoDeclineConflictingRequests(v bool) *BookingOptions {
6010	s.AutoDeclineConflictingRequests = &v
6011	return s
6012}
6013
6014// SetAutoDeclineRecurringRequests sets the AutoDeclineRecurringRequests field's value.
6015func (s *BookingOptions) SetAutoDeclineRecurringRequests(v bool) *BookingOptions {
6016	s.AutoDeclineRecurringRequests = &v
6017	return s
6018}
6019
6020type CancelMailboxExportJobInput struct {
6021	_ struct{} `type:"structure"`
6022
6023	// The idempotency token for the client request.
6024	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
6025
6026	// The job ID.
6027	//
6028	// JobId is a required field
6029	JobId *string `min:"1" type:"string" required:"true"`
6030
6031	// The organization ID.
6032	//
6033	// OrganizationId is a required field
6034	OrganizationId *string `min:"34" type:"string" required:"true"`
6035}
6036
6037// String returns the string representation
6038func (s CancelMailboxExportJobInput) String() string {
6039	return awsutil.Prettify(s)
6040}
6041
6042// GoString returns the string representation
6043func (s CancelMailboxExportJobInput) GoString() string {
6044	return s.String()
6045}
6046
6047// Validate inspects the fields of the type to determine if they are valid.
6048func (s *CancelMailboxExportJobInput) Validate() error {
6049	invalidParams := request.ErrInvalidParams{Context: "CancelMailboxExportJobInput"}
6050	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
6051		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
6052	}
6053	if s.JobId == nil {
6054		invalidParams.Add(request.NewErrParamRequired("JobId"))
6055	}
6056	if s.JobId != nil && len(*s.JobId) < 1 {
6057		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
6058	}
6059	if s.OrganizationId == nil {
6060		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
6061	}
6062	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
6063		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
6064	}
6065
6066	if invalidParams.Len() > 0 {
6067		return invalidParams
6068	}
6069	return nil
6070}
6071
6072// SetClientToken sets the ClientToken field's value.
6073func (s *CancelMailboxExportJobInput) SetClientToken(v string) *CancelMailboxExportJobInput {
6074	s.ClientToken = &v
6075	return s
6076}
6077
6078// SetJobId sets the JobId field's value.
6079func (s *CancelMailboxExportJobInput) SetJobId(v string) *CancelMailboxExportJobInput {
6080	s.JobId = &v
6081	return s
6082}
6083
6084// SetOrganizationId sets the OrganizationId field's value.
6085func (s *CancelMailboxExportJobInput) SetOrganizationId(v string) *CancelMailboxExportJobInput {
6086	s.OrganizationId = &v
6087	return s
6088}
6089
6090type CancelMailboxExportJobOutput struct {
6091	_ struct{} `type:"structure"`
6092}
6093
6094// String returns the string representation
6095func (s CancelMailboxExportJobOutput) String() string {
6096	return awsutil.Prettify(s)
6097}
6098
6099// GoString returns the string representation
6100func (s CancelMailboxExportJobOutput) GoString() string {
6101	return s.String()
6102}
6103
6104type CreateAliasInput struct {
6105	_ struct{} `type:"structure"`
6106
6107	// The alias to add to the member set.
6108	//
6109	// Alias is a required field
6110	Alias *string `min:"1" type:"string" required:"true"`
6111
6112	// The member (user or group) to which this alias is added.
6113	//
6114	// EntityId is a required field
6115	EntityId *string `min:"12" type:"string" required:"true"`
6116
6117	// The organization under which the member (user or group) exists.
6118	//
6119	// OrganizationId is a required field
6120	OrganizationId *string `min:"34" type:"string" required:"true"`
6121}
6122
6123// String returns the string representation
6124func (s CreateAliasInput) String() string {
6125	return awsutil.Prettify(s)
6126}
6127
6128// GoString returns the string representation
6129func (s CreateAliasInput) GoString() string {
6130	return s.String()
6131}
6132
6133// Validate inspects the fields of the type to determine if they are valid.
6134func (s *CreateAliasInput) Validate() error {
6135	invalidParams := request.ErrInvalidParams{Context: "CreateAliasInput"}
6136	if s.Alias == nil {
6137		invalidParams.Add(request.NewErrParamRequired("Alias"))
6138	}
6139	if s.Alias != nil && len(*s.Alias) < 1 {
6140		invalidParams.Add(request.NewErrParamMinLen("Alias", 1))
6141	}
6142	if s.EntityId == nil {
6143		invalidParams.Add(request.NewErrParamRequired("EntityId"))
6144	}
6145	if s.EntityId != nil && len(*s.EntityId) < 12 {
6146		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
6147	}
6148	if s.OrganizationId == nil {
6149		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
6150	}
6151	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
6152		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
6153	}
6154
6155	if invalidParams.Len() > 0 {
6156		return invalidParams
6157	}
6158	return nil
6159}
6160
6161// SetAlias sets the Alias field's value.
6162func (s *CreateAliasInput) SetAlias(v string) *CreateAliasInput {
6163	s.Alias = &v
6164	return s
6165}
6166
6167// SetEntityId sets the EntityId field's value.
6168func (s *CreateAliasInput) SetEntityId(v string) *CreateAliasInput {
6169	s.EntityId = &v
6170	return s
6171}
6172
6173// SetOrganizationId sets the OrganizationId field's value.
6174func (s *CreateAliasInput) SetOrganizationId(v string) *CreateAliasInput {
6175	s.OrganizationId = &v
6176	return s
6177}
6178
6179type CreateAliasOutput struct {
6180	_ struct{} `type:"structure"`
6181}
6182
6183// String returns the string representation
6184func (s CreateAliasOutput) String() string {
6185	return awsutil.Prettify(s)
6186}
6187
6188// GoString returns the string representation
6189func (s CreateAliasOutput) GoString() string {
6190	return s.String()
6191}
6192
6193type CreateGroupInput struct {
6194	_ struct{} `type:"structure"`
6195
6196	// The name of the group.
6197	//
6198	// Name is a required field
6199	Name *string `min:"1" type:"string" required:"true"`
6200
6201	// The organization under which the group is to be created.
6202	//
6203	// OrganizationId is a required field
6204	OrganizationId *string `min:"34" type:"string" required:"true"`
6205}
6206
6207// String returns the string representation
6208func (s CreateGroupInput) String() string {
6209	return awsutil.Prettify(s)
6210}
6211
6212// GoString returns the string representation
6213func (s CreateGroupInput) GoString() string {
6214	return s.String()
6215}
6216
6217// Validate inspects the fields of the type to determine if they are valid.
6218func (s *CreateGroupInput) Validate() error {
6219	invalidParams := request.ErrInvalidParams{Context: "CreateGroupInput"}
6220	if s.Name == nil {
6221		invalidParams.Add(request.NewErrParamRequired("Name"))
6222	}
6223	if s.Name != nil && len(*s.Name) < 1 {
6224		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6225	}
6226	if s.OrganizationId == nil {
6227		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
6228	}
6229	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
6230		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
6231	}
6232
6233	if invalidParams.Len() > 0 {
6234		return invalidParams
6235	}
6236	return nil
6237}
6238
6239// SetName sets the Name field's value.
6240func (s *CreateGroupInput) SetName(v string) *CreateGroupInput {
6241	s.Name = &v
6242	return s
6243}
6244
6245// SetOrganizationId sets the OrganizationId field's value.
6246func (s *CreateGroupInput) SetOrganizationId(v string) *CreateGroupInput {
6247	s.OrganizationId = &v
6248	return s
6249}
6250
6251type CreateGroupOutput struct {
6252	_ struct{} `type:"structure"`
6253
6254	// The identifier of the group.
6255	GroupId *string `min:"12" type:"string"`
6256}
6257
6258// String returns the string representation
6259func (s CreateGroupOutput) String() string {
6260	return awsutil.Prettify(s)
6261}
6262
6263// GoString returns the string representation
6264func (s CreateGroupOutput) GoString() string {
6265	return s.String()
6266}
6267
6268// SetGroupId sets the GroupId field's value.
6269func (s *CreateGroupOutput) SetGroupId(v string) *CreateGroupOutput {
6270	s.GroupId = &v
6271	return s
6272}
6273
6274type CreateMobileDeviceAccessRuleInput struct {
6275	_ struct{} `type:"structure"`
6276
6277	// The idempotency token for the client request.
6278	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
6279
6280	// The rule description.
6281	Description *string `min:"1" type:"string"`
6282
6283	// Device models that the rule will match.
6284	DeviceModels []*string `min:"1" type:"list"`
6285
6286	// Device operating systems that the rule will match.
6287	DeviceOperatingSystems []*string `min:"1" type:"list"`
6288
6289	// Device types that the rule will match.
6290	DeviceTypes []*string `min:"1" type:"list"`
6291
6292	// Device user agents that the rule will match.
6293	DeviceUserAgents []*string `min:"1" type:"list"`
6294
6295	// The effect of the rule when it matches. Allowed values are ALLOW or DENY.
6296	//
6297	// Effect is a required field
6298	Effect *string `type:"string" required:"true" enum:"MobileDeviceAccessRuleEffect"`
6299
6300	// The rule name.
6301	//
6302	// Name is a required field
6303	Name *string `min:"1" type:"string" required:"true"`
6304
6305	// Device models that the rule will not match. All other device models will
6306	// match.
6307	NotDeviceModels []*string `min:"1" type:"list"`
6308
6309	// Device operating systems that the rule will not match. All other device operating
6310	// systems will match.
6311	NotDeviceOperatingSystems []*string `min:"1" type:"list"`
6312
6313	// Device types that the rule will not match. All other device types will match.
6314	NotDeviceTypes []*string `min:"1" type:"list"`
6315
6316	// Device user agents that the rule will not match. All other device user agents
6317	// will match.
6318	NotDeviceUserAgents []*string `min:"1" type:"list"`
6319
6320	// The Amazon WorkMail organization under which the rule will be created.
6321	//
6322	// OrganizationId is a required field
6323	OrganizationId *string `min:"34" type:"string" required:"true"`
6324}
6325
6326// String returns the string representation
6327func (s CreateMobileDeviceAccessRuleInput) String() string {
6328	return awsutil.Prettify(s)
6329}
6330
6331// GoString returns the string representation
6332func (s CreateMobileDeviceAccessRuleInput) GoString() string {
6333	return s.String()
6334}
6335
6336// Validate inspects the fields of the type to determine if they are valid.
6337func (s *CreateMobileDeviceAccessRuleInput) Validate() error {
6338	invalidParams := request.ErrInvalidParams{Context: "CreateMobileDeviceAccessRuleInput"}
6339	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
6340		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
6341	}
6342	if s.Description != nil && len(*s.Description) < 1 {
6343		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
6344	}
6345	if s.DeviceModels != nil && len(s.DeviceModels) < 1 {
6346		invalidParams.Add(request.NewErrParamMinLen("DeviceModels", 1))
6347	}
6348	if s.DeviceOperatingSystems != nil && len(s.DeviceOperatingSystems) < 1 {
6349		invalidParams.Add(request.NewErrParamMinLen("DeviceOperatingSystems", 1))
6350	}
6351	if s.DeviceTypes != nil && len(s.DeviceTypes) < 1 {
6352		invalidParams.Add(request.NewErrParamMinLen("DeviceTypes", 1))
6353	}
6354	if s.DeviceUserAgents != nil && len(s.DeviceUserAgents) < 1 {
6355		invalidParams.Add(request.NewErrParamMinLen("DeviceUserAgents", 1))
6356	}
6357	if s.Effect == nil {
6358		invalidParams.Add(request.NewErrParamRequired("Effect"))
6359	}
6360	if s.Name == nil {
6361		invalidParams.Add(request.NewErrParamRequired("Name"))
6362	}
6363	if s.Name != nil && len(*s.Name) < 1 {
6364		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6365	}
6366	if s.NotDeviceModels != nil && len(s.NotDeviceModels) < 1 {
6367		invalidParams.Add(request.NewErrParamMinLen("NotDeviceModels", 1))
6368	}
6369	if s.NotDeviceOperatingSystems != nil && len(s.NotDeviceOperatingSystems) < 1 {
6370		invalidParams.Add(request.NewErrParamMinLen("NotDeviceOperatingSystems", 1))
6371	}
6372	if s.NotDeviceTypes != nil && len(s.NotDeviceTypes) < 1 {
6373		invalidParams.Add(request.NewErrParamMinLen("NotDeviceTypes", 1))
6374	}
6375	if s.NotDeviceUserAgents != nil && len(s.NotDeviceUserAgents) < 1 {
6376		invalidParams.Add(request.NewErrParamMinLen("NotDeviceUserAgents", 1))
6377	}
6378	if s.OrganizationId == nil {
6379		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
6380	}
6381	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
6382		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
6383	}
6384
6385	if invalidParams.Len() > 0 {
6386		return invalidParams
6387	}
6388	return nil
6389}
6390
6391// SetClientToken sets the ClientToken field's value.
6392func (s *CreateMobileDeviceAccessRuleInput) SetClientToken(v string) *CreateMobileDeviceAccessRuleInput {
6393	s.ClientToken = &v
6394	return s
6395}
6396
6397// SetDescription sets the Description field's value.
6398func (s *CreateMobileDeviceAccessRuleInput) SetDescription(v string) *CreateMobileDeviceAccessRuleInput {
6399	s.Description = &v
6400	return s
6401}
6402
6403// SetDeviceModels sets the DeviceModels field's value.
6404func (s *CreateMobileDeviceAccessRuleInput) SetDeviceModels(v []*string) *CreateMobileDeviceAccessRuleInput {
6405	s.DeviceModels = v
6406	return s
6407}
6408
6409// SetDeviceOperatingSystems sets the DeviceOperatingSystems field's value.
6410func (s *CreateMobileDeviceAccessRuleInput) SetDeviceOperatingSystems(v []*string) *CreateMobileDeviceAccessRuleInput {
6411	s.DeviceOperatingSystems = v
6412	return s
6413}
6414
6415// SetDeviceTypes sets the DeviceTypes field's value.
6416func (s *CreateMobileDeviceAccessRuleInput) SetDeviceTypes(v []*string) *CreateMobileDeviceAccessRuleInput {
6417	s.DeviceTypes = v
6418	return s
6419}
6420
6421// SetDeviceUserAgents sets the DeviceUserAgents field's value.
6422func (s *CreateMobileDeviceAccessRuleInput) SetDeviceUserAgents(v []*string) *CreateMobileDeviceAccessRuleInput {
6423	s.DeviceUserAgents = v
6424	return s
6425}
6426
6427// SetEffect sets the Effect field's value.
6428func (s *CreateMobileDeviceAccessRuleInput) SetEffect(v string) *CreateMobileDeviceAccessRuleInput {
6429	s.Effect = &v
6430	return s
6431}
6432
6433// SetName sets the Name field's value.
6434func (s *CreateMobileDeviceAccessRuleInput) SetName(v string) *CreateMobileDeviceAccessRuleInput {
6435	s.Name = &v
6436	return s
6437}
6438
6439// SetNotDeviceModels sets the NotDeviceModels field's value.
6440func (s *CreateMobileDeviceAccessRuleInput) SetNotDeviceModels(v []*string) *CreateMobileDeviceAccessRuleInput {
6441	s.NotDeviceModels = v
6442	return s
6443}
6444
6445// SetNotDeviceOperatingSystems sets the NotDeviceOperatingSystems field's value.
6446func (s *CreateMobileDeviceAccessRuleInput) SetNotDeviceOperatingSystems(v []*string) *CreateMobileDeviceAccessRuleInput {
6447	s.NotDeviceOperatingSystems = v
6448	return s
6449}
6450
6451// SetNotDeviceTypes sets the NotDeviceTypes field's value.
6452func (s *CreateMobileDeviceAccessRuleInput) SetNotDeviceTypes(v []*string) *CreateMobileDeviceAccessRuleInput {
6453	s.NotDeviceTypes = v
6454	return s
6455}
6456
6457// SetNotDeviceUserAgents sets the NotDeviceUserAgents field's value.
6458func (s *CreateMobileDeviceAccessRuleInput) SetNotDeviceUserAgents(v []*string) *CreateMobileDeviceAccessRuleInput {
6459	s.NotDeviceUserAgents = v
6460	return s
6461}
6462
6463// SetOrganizationId sets the OrganizationId field's value.
6464func (s *CreateMobileDeviceAccessRuleInput) SetOrganizationId(v string) *CreateMobileDeviceAccessRuleInput {
6465	s.OrganizationId = &v
6466	return s
6467}
6468
6469type CreateMobileDeviceAccessRuleOutput struct {
6470	_ struct{} `type:"structure"`
6471
6472	// The identifier for the newly created mobile device access rule.
6473	MobileDeviceAccessRuleId *string `min:"1" type:"string"`
6474}
6475
6476// String returns the string representation
6477func (s CreateMobileDeviceAccessRuleOutput) String() string {
6478	return awsutil.Prettify(s)
6479}
6480
6481// GoString returns the string representation
6482func (s CreateMobileDeviceAccessRuleOutput) GoString() string {
6483	return s.String()
6484}
6485
6486// SetMobileDeviceAccessRuleId sets the MobileDeviceAccessRuleId field's value.
6487func (s *CreateMobileDeviceAccessRuleOutput) SetMobileDeviceAccessRuleId(v string) *CreateMobileDeviceAccessRuleOutput {
6488	s.MobileDeviceAccessRuleId = &v
6489	return s
6490}
6491
6492type CreateOrganizationInput struct {
6493	_ struct{} `type:"structure"`
6494
6495	// The organization alias.
6496	//
6497	// Alias is a required field
6498	Alias *string `min:"1" type:"string" required:"true"`
6499
6500	// The idempotency token associated with the request.
6501	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
6502
6503	// The AWS Directory Service directory ID.
6504	DirectoryId *string `min:"12" type:"string"`
6505
6506	// The email domains to associate with the organization.
6507	Domains []*Domain `type:"list"`
6508
6509	// When true, allows organization interoperability between Amazon WorkMail and
6510	// Microsoft Exchange. Can only be set to true if an AD Connector directory
6511	// ID is included in the request.
6512	EnableInteroperability *bool `type:"boolean"`
6513
6514	// The Amazon Resource Name (ARN) of a customer managed master key from AWS
6515	// KMS.
6516	KmsKeyArn *string `min:"20" type:"string"`
6517}
6518
6519// String returns the string representation
6520func (s CreateOrganizationInput) String() string {
6521	return awsutil.Prettify(s)
6522}
6523
6524// GoString returns the string representation
6525func (s CreateOrganizationInput) GoString() string {
6526	return s.String()
6527}
6528
6529// Validate inspects the fields of the type to determine if they are valid.
6530func (s *CreateOrganizationInput) Validate() error {
6531	invalidParams := request.ErrInvalidParams{Context: "CreateOrganizationInput"}
6532	if s.Alias == nil {
6533		invalidParams.Add(request.NewErrParamRequired("Alias"))
6534	}
6535	if s.Alias != nil && len(*s.Alias) < 1 {
6536		invalidParams.Add(request.NewErrParamMinLen("Alias", 1))
6537	}
6538	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
6539		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
6540	}
6541	if s.DirectoryId != nil && len(*s.DirectoryId) < 12 {
6542		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 12))
6543	}
6544	if s.KmsKeyArn != nil && len(*s.KmsKeyArn) < 20 {
6545		invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 20))
6546	}
6547	if s.Domains != nil {
6548		for i, v := range s.Domains {
6549			if v == nil {
6550				continue
6551			}
6552			if err := v.Validate(); err != nil {
6553				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Domains", i), err.(request.ErrInvalidParams))
6554			}
6555		}
6556	}
6557
6558	if invalidParams.Len() > 0 {
6559		return invalidParams
6560	}
6561	return nil
6562}
6563
6564// SetAlias sets the Alias field's value.
6565func (s *CreateOrganizationInput) SetAlias(v string) *CreateOrganizationInput {
6566	s.Alias = &v
6567	return s
6568}
6569
6570// SetClientToken sets the ClientToken field's value.
6571func (s *CreateOrganizationInput) SetClientToken(v string) *CreateOrganizationInput {
6572	s.ClientToken = &v
6573	return s
6574}
6575
6576// SetDirectoryId sets the DirectoryId field's value.
6577func (s *CreateOrganizationInput) SetDirectoryId(v string) *CreateOrganizationInput {
6578	s.DirectoryId = &v
6579	return s
6580}
6581
6582// SetDomains sets the Domains field's value.
6583func (s *CreateOrganizationInput) SetDomains(v []*Domain) *CreateOrganizationInput {
6584	s.Domains = v
6585	return s
6586}
6587
6588// SetEnableInteroperability sets the EnableInteroperability field's value.
6589func (s *CreateOrganizationInput) SetEnableInteroperability(v bool) *CreateOrganizationInput {
6590	s.EnableInteroperability = &v
6591	return s
6592}
6593
6594// SetKmsKeyArn sets the KmsKeyArn field's value.
6595func (s *CreateOrganizationInput) SetKmsKeyArn(v string) *CreateOrganizationInput {
6596	s.KmsKeyArn = &v
6597	return s
6598}
6599
6600type CreateOrganizationOutput struct {
6601	_ struct{} `type:"structure"`
6602
6603	// The organization ID.
6604	OrganizationId *string `min:"34" type:"string"`
6605}
6606
6607// String returns the string representation
6608func (s CreateOrganizationOutput) String() string {
6609	return awsutil.Prettify(s)
6610}
6611
6612// GoString returns the string representation
6613func (s CreateOrganizationOutput) GoString() string {
6614	return s.String()
6615}
6616
6617// SetOrganizationId sets the OrganizationId field's value.
6618func (s *CreateOrganizationOutput) SetOrganizationId(v string) *CreateOrganizationOutput {
6619	s.OrganizationId = &v
6620	return s
6621}
6622
6623type CreateResourceInput struct {
6624	_ struct{} `type:"structure"`
6625
6626	// The name of the new resource.
6627	//
6628	// Name is a required field
6629	Name *string `min:"1" type:"string" required:"true"`
6630
6631	// The identifier associated with the organization for which the resource is
6632	// created.
6633	//
6634	// OrganizationId is a required field
6635	OrganizationId *string `min:"34" type:"string" required:"true"`
6636
6637	// The type of the new resource. The available types are equipment and room.
6638	//
6639	// Type is a required field
6640	Type *string `type:"string" required:"true" enum:"ResourceType"`
6641}
6642
6643// String returns the string representation
6644func (s CreateResourceInput) String() string {
6645	return awsutil.Prettify(s)
6646}
6647
6648// GoString returns the string representation
6649func (s CreateResourceInput) GoString() string {
6650	return s.String()
6651}
6652
6653// Validate inspects the fields of the type to determine if they are valid.
6654func (s *CreateResourceInput) Validate() error {
6655	invalidParams := request.ErrInvalidParams{Context: "CreateResourceInput"}
6656	if s.Name == nil {
6657		invalidParams.Add(request.NewErrParamRequired("Name"))
6658	}
6659	if s.Name != nil && len(*s.Name) < 1 {
6660		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6661	}
6662	if s.OrganizationId == nil {
6663		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
6664	}
6665	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
6666		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
6667	}
6668	if s.Type == nil {
6669		invalidParams.Add(request.NewErrParamRequired("Type"))
6670	}
6671
6672	if invalidParams.Len() > 0 {
6673		return invalidParams
6674	}
6675	return nil
6676}
6677
6678// SetName sets the Name field's value.
6679func (s *CreateResourceInput) SetName(v string) *CreateResourceInput {
6680	s.Name = &v
6681	return s
6682}
6683
6684// SetOrganizationId sets the OrganizationId field's value.
6685func (s *CreateResourceInput) SetOrganizationId(v string) *CreateResourceInput {
6686	s.OrganizationId = &v
6687	return s
6688}
6689
6690// SetType sets the Type field's value.
6691func (s *CreateResourceInput) SetType(v string) *CreateResourceInput {
6692	s.Type = &v
6693	return s
6694}
6695
6696type CreateResourceOutput struct {
6697	_ struct{} `type:"structure"`
6698
6699	// The identifier of the new resource.
6700	ResourceId *string `min:"34" type:"string"`
6701}
6702
6703// String returns the string representation
6704func (s CreateResourceOutput) String() string {
6705	return awsutil.Prettify(s)
6706}
6707
6708// GoString returns the string representation
6709func (s CreateResourceOutput) GoString() string {
6710	return s.String()
6711}
6712
6713// SetResourceId sets the ResourceId field's value.
6714func (s *CreateResourceOutput) SetResourceId(v string) *CreateResourceOutput {
6715	s.ResourceId = &v
6716	return s
6717}
6718
6719type CreateUserInput struct {
6720	_ struct{} `type:"structure"`
6721
6722	// The display name for the new user.
6723	//
6724	// DisplayName is a required field
6725	DisplayName *string `type:"string" required:"true"`
6726
6727	// The name for the new user. WorkMail directory user names have a maximum length
6728	// of 64. All others have a maximum length of 20.
6729	//
6730	// Name is a required field
6731	Name *string `min:"1" type:"string" required:"true"`
6732
6733	// The identifier of the organization for which the user is created.
6734	//
6735	// OrganizationId is a required field
6736	OrganizationId *string `min:"34" type:"string" required:"true"`
6737
6738	// The password for the new user.
6739	//
6740	// Password is a required field
6741	Password *string `type:"string" required:"true" sensitive:"true"`
6742}
6743
6744// String returns the string representation
6745func (s CreateUserInput) String() string {
6746	return awsutil.Prettify(s)
6747}
6748
6749// GoString returns the string representation
6750func (s CreateUserInput) GoString() string {
6751	return s.String()
6752}
6753
6754// Validate inspects the fields of the type to determine if they are valid.
6755func (s *CreateUserInput) Validate() error {
6756	invalidParams := request.ErrInvalidParams{Context: "CreateUserInput"}
6757	if s.DisplayName == nil {
6758		invalidParams.Add(request.NewErrParamRequired("DisplayName"))
6759	}
6760	if s.Name == nil {
6761		invalidParams.Add(request.NewErrParamRequired("Name"))
6762	}
6763	if s.Name != nil && len(*s.Name) < 1 {
6764		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6765	}
6766	if s.OrganizationId == nil {
6767		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
6768	}
6769	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
6770		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
6771	}
6772	if s.Password == nil {
6773		invalidParams.Add(request.NewErrParamRequired("Password"))
6774	}
6775
6776	if invalidParams.Len() > 0 {
6777		return invalidParams
6778	}
6779	return nil
6780}
6781
6782// SetDisplayName sets the DisplayName field's value.
6783func (s *CreateUserInput) SetDisplayName(v string) *CreateUserInput {
6784	s.DisplayName = &v
6785	return s
6786}
6787
6788// SetName sets the Name field's value.
6789func (s *CreateUserInput) SetName(v string) *CreateUserInput {
6790	s.Name = &v
6791	return s
6792}
6793
6794// SetOrganizationId sets the OrganizationId field's value.
6795func (s *CreateUserInput) SetOrganizationId(v string) *CreateUserInput {
6796	s.OrganizationId = &v
6797	return s
6798}
6799
6800// SetPassword sets the Password field's value.
6801func (s *CreateUserInput) SetPassword(v string) *CreateUserInput {
6802	s.Password = &v
6803	return s
6804}
6805
6806type CreateUserOutput struct {
6807	_ struct{} `type:"structure"`
6808
6809	// The identifier for the new user.
6810	UserId *string `min:"12" type:"string"`
6811}
6812
6813// String returns the string representation
6814func (s CreateUserOutput) String() string {
6815	return awsutil.Prettify(s)
6816}
6817
6818// GoString returns the string representation
6819func (s CreateUserOutput) GoString() string {
6820	return s.String()
6821}
6822
6823// SetUserId sets the UserId field's value.
6824func (s *CreateUserOutput) SetUserId(v string) *CreateUserOutput {
6825	s.UserId = &v
6826	return s
6827}
6828
6829// The name of the attribute, which is one of the values defined in the UserAttribute
6830// enumeration.
6831type Delegate struct {
6832	_ struct{} `type:"structure"`
6833
6834	// The identifier for the user or group associated as the resource's delegate.
6835	//
6836	// Id is a required field
6837	Id *string `type:"string" required:"true"`
6838
6839	// The type of the delegate: user or group.
6840	//
6841	// Type is a required field
6842	Type *string `type:"string" required:"true" enum:"MemberType"`
6843}
6844
6845// String returns the string representation
6846func (s Delegate) String() string {
6847	return awsutil.Prettify(s)
6848}
6849
6850// GoString returns the string representation
6851func (s Delegate) GoString() string {
6852	return s.String()
6853}
6854
6855// SetId sets the Id field's value.
6856func (s *Delegate) SetId(v string) *Delegate {
6857	s.Id = &v
6858	return s
6859}
6860
6861// SetType sets the Type field's value.
6862func (s *Delegate) SetType(v string) *Delegate {
6863	s.Type = &v
6864	return s
6865}
6866
6867type DeleteAccessControlRuleInput struct {
6868	_ struct{} `type:"structure"`
6869
6870	// The name of the access control rule.
6871	//
6872	// Name is a required field
6873	Name *string `min:"1" type:"string" required:"true"`
6874
6875	// The identifier for the organization.
6876	//
6877	// OrganizationId is a required field
6878	OrganizationId *string `min:"34" type:"string" required:"true"`
6879}
6880
6881// String returns the string representation
6882func (s DeleteAccessControlRuleInput) String() string {
6883	return awsutil.Prettify(s)
6884}
6885
6886// GoString returns the string representation
6887func (s DeleteAccessControlRuleInput) GoString() string {
6888	return s.String()
6889}
6890
6891// Validate inspects the fields of the type to determine if they are valid.
6892func (s *DeleteAccessControlRuleInput) Validate() error {
6893	invalidParams := request.ErrInvalidParams{Context: "DeleteAccessControlRuleInput"}
6894	if s.Name == nil {
6895		invalidParams.Add(request.NewErrParamRequired("Name"))
6896	}
6897	if s.Name != nil && len(*s.Name) < 1 {
6898		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6899	}
6900	if s.OrganizationId == nil {
6901		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
6902	}
6903	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
6904		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
6905	}
6906
6907	if invalidParams.Len() > 0 {
6908		return invalidParams
6909	}
6910	return nil
6911}
6912
6913// SetName sets the Name field's value.
6914func (s *DeleteAccessControlRuleInput) SetName(v string) *DeleteAccessControlRuleInput {
6915	s.Name = &v
6916	return s
6917}
6918
6919// SetOrganizationId sets the OrganizationId field's value.
6920func (s *DeleteAccessControlRuleInput) SetOrganizationId(v string) *DeleteAccessControlRuleInput {
6921	s.OrganizationId = &v
6922	return s
6923}
6924
6925type DeleteAccessControlRuleOutput struct {
6926	_ struct{} `type:"structure"`
6927}
6928
6929// String returns the string representation
6930func (s DeleteAccessControlRuleOutput) String() string {
6931	return awsutil.Prettify(s)
6932}
6933
6934// GoString returns the string representation
6935func (s DeleteAccessControlRuleOutput) GoString() string {
6936	return s.String()
6937}
6938
6939type DeleteAliasInput struct {
6940	_ struct{} `type:"structure"`
6941
6942	// The aliases to be removed from the user's set of aliases. Duplicate entries
6943	// in the list are collapsed into single entries (the list is transformed into
6944	// a set).
6945	//
6946	// Alias is a required field
6947	Alias *string `min:"1" type:"string" required:"true"`
6948
6949	// The identifier for the member (user or group) from which to have the aliases
6950	// removed.
6951	//
6952	// EntityId is a required field
6953	EntityId *string `min:"12" type:"string" required:"true"`
6954
6955	// The identifier for the organization under which the user exists.
6956	//
6957	// OrganizationId is a required field
6958	OrganizationId *string `min:"34" type:"string" required:"true"`
6959}
6960
6961// String returns the string representation
6962func (s DeleteAliasInput) String() string {
6963	return awsutil.Prettify(s)
6964}
6965
6966// GoString returns the string representation
6967func (s DeleteAliasInput) GoString() string {
6968	return s.String()
6969}
6970
6971// Validate inspects the fields of the type to determine if they are valid.
6972func (s *DeleteAliasInput) Validate() error {
6973	invalidParams := request.ErrInvalidParams{Context: "DeleteAliasInput"}
6974	if s.Alias == nil {
6975		invalidParams.Add(request.NewErrParamRequired("Alias"))
6976	}
6977	if s.Alias != nil && len(*s.Alias) < 1 {
6978		invalidParams.Add(request.NewErrParamMinLen("Alias", 1))
6979	}
6980	if s.EntityId == nil {
6981		invalidParams.Add(request.NewErrParamRequired("EntityId"))
6982	}
6983	if s.EntityId != nil && len(*s.EntityId) < 12 {
6984		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
6985	}
6986	if s.OrganizationId == nil {
6987		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
6988	}
6989	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
6990		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
6991	}
6992
6993	if invalidParams.Len() > 0 {
6994		return invalidParams
6995	}
6996	return nil
6997}
6998
6999// SetAlias sets the Alias field's value.
7000func (s *DeleteAliasInput) SetAlias(v string) *DeleteAliasInput {
7001	s.Alias = &v
7002	return s
7003}
7004
7005// SetEntityId sets the EntityId field's value.
7006func (s *DeleteAliasInput) SetEntityId(v string) *DeleteAliasInput {
7007	s.EntityId = &v
7008	return s
7009}
7010
7011// SetOrganizationId sets the OrganizationId field's value.
7012func (s *DeleteAliasInput) SetOrganizationId(v string) *DeleteAliasInput {
7013	s.OrganizationId = &v
7014	return s
7015}
7016
7017type DeleteAliasOutput struct {
7018	_ struct{} `type:"structure"`
7019}
7020
7021// String returns the string representation
7022func (s DeleteAliasOutput) String() string {
7023	return awsutil.Prettify(s)
7024}
7025
7026// GoString returns the string representation
7027func (s DeleteAliasOutput) GoString() string {
7028	return s.String()
7029}
7030
7031type DeleteGroupInput struct {
7032	_ struct{} `type:"structure"`
7033
7034	// The identifier of the group to be deleted.
7035	//
7036	// GroupId is a required field
7037	GroupId *string `min:"12" type:"string" required:"true"`
7038
7039	// The organization that contains the group.
7040	//
7041	// OrganizationId is a required field
7042	OrganizationId *string `min:"34" type:"string" required:"true"`
7043}
7044
7045// String returns the string representation
7046func (s DeleteGroupInput) String() string {
7047	return awsutil.Prettify(s)
7048}
7049
7050// GoString returns the string representation
7051func (s DeleteGroupInput) GoString() string {
7052	return s.String()
7053}
7054
7055// Validate inspects the fields of the type to determine if they are valid.
7056func (s *DeleteGroupInput) Validate() error {
7057	invalidParams := request.ErrInvalidParams{Context: "DeleteGroupInput"}
7058	if s.GroupId == nil {
7059		invalidParams.Add(request.NewErrParamRequired("GroupId"))
7060	}
7061	if s.GroupId != nil && len(*s.GroupId) < 12 {
7062		invalidParams.Add(request.NewErrParamMinLen("GroupId", 12))
7063	}
7064	if s.OrganizationId == nil {
7065		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
7066	}
7067	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
7068		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
7069	}
7070
7071	if invalidParams.Len() > 0 {
7072		return invalidParams
7073	}
7074	return nil
7075}
7076
7077// SetGroupId sets the GroupId field's value.
7078func (s *DeleteGroupInput) SetGroupId(v string) *DeleteGroupInput {
7079	s.GroupId = &v
7080	return s
7081}
7082
7083// SetOrganizationId sets the OrganizationId field's value.
7084func (s *DeleteGroupInput) SetOrganizationId(v string) *DeleteGroupInput {
7085	s.OrganizationId = &v
7086	return s
7087}
7088
7089type DeleteGroupOutput struct {
7090	_ struct{} `type:"structure"`
7091}
7092
7093// String returns the string representation
7094func (s DeleteGroupOutput) String() string {
7095	return awsutil.Prettify(s)
7096}
7097
7098// GoString returns the string representation
7099func (s DeleteGroupOutput) GoString() string {
7100	return s.String()
7101}
7102
7103type DeleteMailboxPermissionsInput struct {
7104	_ struct{} `type:"structure"`
7105
7106	// The identifier of the member (user or group) that owns the mailbox.
7107	//
7108	// EntityId is a required field
7109	EntityId *string `min:"12" type:"string" required:"true"`
7110
7111	// The identifier of the member (user or group) for which to delete granted
7112	// permissions.
7113	//
7114	// GranteeId is a required field
7115	GranteeId *string `min:"12" type:"string" required:"true"`
7116
7117	// The identifier of the organization under which the member (user or group)
7118	// exists.
7119	//
7120	// OrganizationId is a required field
7121	OrganizationId *string `min:"34" type:"string" required:"true"`
7122}
7123
7124// String returns the string representation
7125func (s DeleteMailboxPermissionsInput) String() string {
7126	return awsutil.Prettify(s)
7127}
7128
7129// GoString returns the string representation
7130func (s DeleteMailboxPermissionsInput) GoString() string {
7131	return s.String()
7132}
7133
7134// Validate inspects the fields of the type to determine if they are valid.
7135func (s *DeleteMailboxPermissionsInput) Validate() error {
7136	invalidParams := request.ErrInvalidParams{Context: "DeleteMailboxPermissionsInput"}
7137	if s.EntityId == nil {
7138		invalidParams.Add(request.NewErrParamRequired("EntityId"))
7139	}
7140	if s.EntityId != nil && len(*s.EntityId) < 12 {
7141		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
7142	}
7143	if s.GranteeId == nil {
7144		invalidParams.Add(request.NewErrParamRequired("GranteeId"))
7145	}
7146	if s.GranteeId != nil && len(*s.GranteeId) < 12 {
7147		invalidParams.Add(request.NewErrParamMinLen("GranteeId", 12))
7148	}
7149	if s.OrganizationId == nil {
7150		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
7151	}
7152	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
7153		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
7154	}
7155
7156	if invalidParams.Len() > 0 {
7157		return invalidParams
7158	}
7159	return nil
7160}
7161
7162// SetEntityId sets the EntityId field's value.
7163func (s *DeleteMailboxPermissionsInput) SetEntityId(v string) *DeleteMailboxPermissionsInput {
7164	s.EntityId = &v
7165	return s
7166}
7167
7168// SetGranteeId sets the GranteeId field's value.
7169func (s *DeleteMailboxPermissionsInput) SetGranteeId(v string) *DeleteMailboxPermissionsInput {
7170	s.GranteeId = &v
7171	return s
7172}
7173
7174// SetOrganizationId sets the OrganizationId field's value.
7175func (s *DeleteMailboxPermissionsInput) SetOrganizationId(v string) *DeleteMailboxPermissionsInput {
7176	s.OrganizationId = &v
7177	return s
7178}
7179
7180type DeleteMailboxPermissionsOutput struct {
7181	_ struct{} `type:"structure"`
7182}
7183
7184// String returns the string representation
7185func (s DeleteMailboxPermissionsOutput) String() string {
7186	return awsutil.Prettify(s)
7187}
7188
7189// GoString returns the string representation
7190func (s DeleteMailboxPermissionsOutput) GoString() string {
7191	return s.String()
7192}
7193
7194type DeleteMobileDeviceAccessRuleInput struct {
7195	_ struct{} `type:"structure"`
7196
7197	// The identifier of the rule to be deleted.
7198	//
7199	// MobileDeviceAccessRuleId is a required field
7200	MobileDeviceAccessRuleId *string `min:"1" type:"string" required:"true"`
7201
7202	// The Amazon WorkMail organization under which the rule will be deleted.
7203	//
7204	// OrganizationId is a required field
7205	OrganizationId *string `min:"34" type:"string" required:"true"`
7206}
7207
7208// String returns the string representation
7209func (s DeleteMobileDeviceAccessRuleInput) String() string {
7210	return awsutil.Prettify(s)
7211}
7212
7213// GoString returns the string representation
7214func (s DeleteMobileDeviceAccessRuleInput) GoString() string {
7215	return s.String()
7216}
7217
7218// Validate inspects the fields of the type to determine if they are valid.
7219func (s *DeleteMobileDeviceAccessRuleInput) Validate() error {
7220	invalidParams := request.ErrInvalidParams{Context: "DeleteMobileDeviceAccessRuleInput"}
7221	if s.MobileDeviceAccessRuleId == nil {
7222		invalidParams.Add(request.NewErrParamRequired("MobileDeviceAccessRuleId"))
7223	}
7224	if s.MobileDeviceAccessRuleId != nil && len(*s.MobileDeviceAccessRuleId) < 1 {
7225		invalidParams.Add(request.NewErrParamMinLen("MobileDeviceAccessRuleId", 1))
7226	}
7227	if s.OrganizationId == nil {
7228		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
7229	}
7230	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
7231		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
7232	}
7233
7234	if invalidParams.Len() > 0 {
7235		return invalidParams
7236	}
7237	return nil
7238}
7239
7240// SetMobileDeviceAccessRuleId sets the MobileDeviceAccessRuleId field's value.
7241func (s *DeleteMobileDeviceAccessRuleInput) SetMobileDeviceAccessRuleId(v string) *DeleteMobileDeviceAccessRuleInput {
7242	s.MobileDeviceAccessRuleId = &v
7243	return s
7244}
7245
7246// SetOrganizationId sets the OrganizationId field's value.
7247func (s *DeleteMobileDeviceAccessRuleInput) SetOrganizationId(v string) *DeleteMobileDeviceAccessRuleInput {
7248	s.OrganizationId = &v
7249	return s
7250}
7251
7252type DeleteMobileDeviceAccessRuleOutput struct {
7253	_ struct{} `type:"structure"`
7254}
7255
7256// String returns the string representation
7257func (s DeleteMobileDeviceAccessRuleOutput) String() string {
7258	return awsutil.Prettify(s)
7259}
7260
7261// GoString returns the string representation
7262func (s DeleteMobileDeviceAccessRuleOutput) GoString() string {
7263	return s.String()
7264}
7265
7266type DeleteOrganizationInput struct {
7267	_ struct{} `type:"structure"`
7268
7269	// The idempotency token associated with the request.
7270	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
7271
7272	// If true, deletes the AWS Directory Service directory associated with the
7273	// organization.
7274	//
7275	// DeleteDirectory is a required field
7276	DeleteDirectory *bool `type:"boolean" required:"true"`
7277
7278	// The organization ID.
7279	//
7280	// OrganizationId is a required field
7281	OrganizationId *string `min:"34" type:"string" required:"true"`
7282}
7283
7284// String returns the string representation
7285func (s DeleteOrganizationInput) String() string {
7286	return awsutil.Prettify(s)
7287}
7288
7289// GoString returns the string representation
7290func (s DeleteOrganizationInput) GoString() string {
7291	return s.String()
7292}
7293
7294// Validate inspects the fields of the type to determine if they are valid.
7295func (s *DeleteOrganizationInput) Validate() error {
7296	invalidParams := request.ErrInvalidParams{Context: "DeleteOrganizationInput"}
7297	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
7298		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
7299	}
7300	if s.DeleteDirectory == nil {
7301		invalidParams.Add(request.NewErrParamRequired("DeleteDirectory"))
7302	}
7303	if s.OrganizationId == nil {
7304		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
7305	}
7306	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
7307		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
7308	}
7309
7310	if invalidParams.Len() > 0 {
7311		return invalidParams
7312	}
7313	return nil
7314}
7315
7316// SetClientToken sets the ClientToken field's value.
7317func (s *DeleteOrganizationInput) SetClientToken(v string) *DeleteOrganizationInput {
7318	s.ClientToken = &v
7319	return s
7320}
7321
7322// SetDeleteDirectory sets the DeleteDirectory field's value.
7323func (s *DeleteOrganizationInput) SetDeleteDirectory(v bool) *DeleteOrganizationInput {
7324	s.DeleteDirectory = &v
7325	return s
7326}
7327
7328// SetOrganizationId sets the OrganizationId field's value.
7329func (s *DeleteOrganizationInput) SetOrganizationId(v string) *DeleteOrganizationInput {
7330	s.OrganizationId = &v
7331	return s
7332}
7333
7334type DeleteOrganizationOutput struct {
7335	_ struct{} `type:"structure"`
7336
7337	// The organization ID.
7338	OrganizationId *string `min:"34" type:"string"`
7339
7340	// The state of the organization.
7341	State *string `type:"string"`
7342}
7343
7344// String returns the string representation
7345func (s DeleteOrganizationOutput) String() string {
7346	return awsutil.Prettify(s)
7347}
7348
7349// GoString returns the string representation
7350func (s DeleteOrganizationOutput) GoString() string {
7351	return s.String()
7352}
7353
7354// SetOrganizationId sets the OrganizationId field's value.
7355func (s *DeleteOrganizationOutput) SetOrganizationId(v string) *DeleteOrganizationOutput {
7356	s.OrganizationId = &v
7357	return s
7358}
7359
7360// SetState sets the State field's value.
7361func (s *DeleteOrganizationOutput) SetState(v string) *DeleteOrganizationOutput {
7362	s.State = &v
7363	return s
7364}
7365
7366type DeleteResourceInput struct {
7367	_ struct{} `type:"structure"`
7368
7369	// The identifier associated with the organization from which the resource is
7370	// deleted.
7371	//
7372	// OrganizationId is a required field
7373	OrganizationId *string `min:"34" type:"string" required:"true"`
7374
7375	// The identifier of the resource to be deleted.
7376	//
7377	// ResourceId is a required field
7378	ResourceId *string `min:"34" type:"string" required:"true"`
7379}
7380
7381// String returns the string representation
7382func (s DeleteResourceInput) String() string {
7383	return awsutil.Prettify(s)
7384}
7385
7386// GoString returns the string representation
7387func (s DeleteResourceInput) GoString() string {
7388	return s.String()
7389}
7390
7391// Validate inspects the fields of the type to determine if they are valid.
7392func (s *DeleteResourceInput) Validate() error {
7393	invalidParams := request.ErrInvalidParams{Context: "DeleteResourceInput"}
7394	if s.OrganizationId == nil {
7395		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
7396	}
7397	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
7398		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
7399	}
7400	if s.ResourceId == nil {
7401		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
7402	}
7403	if s.ResourceId != nil && len(*s.ResourceId) < 34 {
7404		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 34))
7405	}
7406
7407	if invalidParams.Len() > 0 {
7408		return invalidParams
7409	}
7410	return nil
7411}
7412
7413// SetOrganizationId sets the OrganizationId field's value.
7414func (s *DeleteResourceInput) SetOrganizationId(v string) *DeleteResourceInput {
7415	s.OrganizationId = &v
7416	return s
7417}
7418
7419// SetResourceId sets the ResourceId field's value.
7420func (s *DeleteResourceInput) SetResourceId(v string) *DeleteResourceInput {
7421	s.ResourceId = &v
7422	return s
7423}
7424
7425type DeleteResourceOutput struct {
7426	_ struct{} `type:"structure"`
7427}
7428
7429// String returns the string representation
7430func (s DeleteResourceOutput) String() string {
7431	return awsutil.Prettify(s)
7432}
7433
7434// GoString returns the string representation
7435func (s DeleteResourceOutput) GoString() string {
7436	return s.String()
7437}
7438
7439type DeleteRetentionPolicyInput struct {
7440	_ struct{} `type:"structure"`
7441
7442	// The retention policy ID.
7443	//
7444	// Id is a required field
7445	Id *string `min:"1" type:"string" required:"true"`
7446
7447	// The organization ID.
7448	//
7449	// OrganizationId is a required field
7450	OrganizationId *string `min:"34" type:"string" required:"true"`
7451}
7452
7453// String returns the string representation
7454func (s DeleteRetentionPolicyInput) String() string {
7455	return awsutil.Prettify(s)
7456}
7457
7458// GoString returns the string representation
7459func (s DeleteRetentionPolicyInput) GoString() string {
7460	return s.String()
7461}
7462
7463// Validate inspects the fields of the type to determine if they are valid.
7464func (s *DeleteRetentionPolicyInput) Validate() error {
7465	invalidParams := request.ErrInvalidParams{Context: "DeleteRetentionPolicyInput"}
7466	if s.Id == nil {
7467		invalidParams.Add(request.NewErrParamRequired("Id"))
7468	}
7469	if s.Id != nil && len(*s.Id) < 1 {
7470		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
7471	}
7472	if s.OrganizationId == nil {
7473		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
7474	}
7475	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
7476		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
7477	}
7478
7479	if invalidParams.Len() > 0 {
7480		return invalidParams
7481	}
7482	return nil
7483}
7484
7485// SetId sets the Id field's value.
7486func (s *DeleteRetentionPolicyInput) SetId(v string) *DeleteRetentionPolicyInput {
7487	s.Id = &v
7488	return s
7489}
7490
7491// SetOrganizationId sets the OrganizationId field's value.
7492func (s *DeleteRetentionPolicyInput) SetOrganizationId(v string) *DeleteRetentionPolicyInput {
7493	s.OrganizationId = &v
7494	return s
7495}
7496
7497type DeleteRetentionPolicyOutput struct {
7498	_ struct{} `type:"structure"`
7499}
7500
7501// String returns the string representation
7502func (s DeleteRetentionPolicyOutput) String() string {
7503	return awsutil.Prettify(s)
7504}
7505
7506// GoString returns the string representation
7507func (s DeleteRetentionPolicyOutput) GoString() string {
7508	return s.String()
7509}
7510
7511type DeleteUserInput struct {
7512	_ struct{} `type:"structure"`
7513
7514	// The organization that contains the user to be deleted.
7515	//
7516	// OrganizationId is a required field
7517	OrganizationId *string `min:"34" type:"string" required:"true"`
7518
7519	// The identifier of the user to be deleted.
7520	//
7521	// UserId is a required field
7522	UserId *string `min:"12" type:"string" required:"true"`
7523}
7524
7525// String returns the string representation
7526func (s DeleteUserInput) String() string {
7527	return awsutil.Prettify(s)
7528}
7529
7530// GoString returns the string representation
7531func (s DeleteUserInput) GoString() string {
7532	return s.String()
7533}
7534
7535// Validate inspects the fields of the type to determine if they are valid.
7536func (s *DeleteUserInput) Validate() error {
7537	invalidParams := request.ErrInvalidParams{Context: "DeleteUserInput"}
7538	if s.OrganizationId == nil {
7539		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
7540	}
7541	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
7542		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
7543	}
7544	if s.UserId == nil {
7545		invalidParams.Add(request.NewErrParamRequired("UserId"))
7546	}
7547	if s.UserId != nil && len(*s.UserId) < 12 {
7548		invalidParams.Add(request.NewErrParamMinLen("UserId", 12))
7549	}
7550
7551	if invalidParams.Len() > 0 {
7552		return invalidParams
7553	}
7554	return nil
7555}
7556
7557// SetOrganizationId sets the OrganizationId field's value.
7558func (s *DeleteUserInput) SetOrganizationId(v string) *DeleteUserInput {
7559	s.OrganizationId = &v
7560	return s
7561}
7562
7563// SetUserId sets the UserId field's value.
7564func (s *DeleteUserInput) SetUserId(v string) *DeleteUserInput {
7565	s.UserId = &v
7566	return s
7567}
7568
7569type DeleteUserOutput struct {
7570	_ struct{} `type:"structure"`
7571}
7572
7573// String returns the string representation
7574func (s DeleteUserOutput) String() string {
7575	return awsutil.Prettify(s)
7576}
7577
7578// GoString returns the string representation
7579func (s DeleteUserOutput) GoString() string {
7580	return s.String()
7581}
7582
7583type DeregisterFromWorkMailInput struct {
7584	_ struct{} `type:"structure"`
7585
7586	// The identifier for the member (user or group) to be updated.
7587	//
7588	// EntityId is a required field
7589	EntityId *string `min:"12" type:"string" required:"true"`
7590
7591	// The identifier for the organization under which the Amazon WorkMail entity
7592	// exists.
7593	//
7594	// OrganizationId is a required field
7595	OrganizationId *string `min:"34" type:"string" required:"true"`
7596}
7597
7598// String returns the string representation
7599func (s DeregisterFromWorkMailInput) String() string {
7600	return awsutil.Prettify(s)
7601}
7602
7603// GoString returns the string representation
7604func (s DeregisterFromWorkMailInput) GoString() string {
7605	return s.String()
7606}
7607
7608// Validate inspects the fields of the type to determine if they are valid.
7609func (s *DeregisterFromWorkMailInput) Validate() error {
7610	invalidParams := request.ErrInvalidParams{Context: "DeregisterFromWorkMailInput"}
7611	if s.EntityId == nil {
7612		invalidParams.Add(request.NewErrParamRequired("EntityId"))
7613	}
7614	if s.EntityId != nil && len(*s.EntityId) < 12 {
7615		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
7616	}
7617	if s.OrganizationId == nil {
7618		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
7619	}
7620	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
7621		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
7622	}
7623
7624	if invalidParams.Len() > 0 {
7625		return invalidParams
7626	}
7627	return nil
7628}
7629
7630// SetEntityId sets the EntityId field's value.
7631func (s *DeregisterFromWorkMailInput) SetEntityId(v string) *DeregisterFromWorkMailInput {
7632	s.EntityId = &v
7633	return s
7634}
7635
7636// SetOrganizationId sets the OrganizationId field's value.
7637func (s *DeregisterFromWorkMailInput) SetOrganizationId(v string) *DeregisterFromWorkMailInput {
7638	s.OrganizationId = &v
7639	return s
7640}
7641
7642type DeregisterFromWorkMailOutput struct {
7643	_ struct{} `type:"structure"`
7644}
7645
7646// String returns the string representation
7647func (s DeregisterFromWorkMailOutput) String() string {
7648	return awsutil.Prettify(s)
7649}
7650
7651// GoString returns the string representation
7652func (s DeregisterFromWorkMailOutput) GoString() string {
7653	return s.String()
7654}
7655
7656type DescribeGroupInput struct {
7657	_ struct{} `type:"structure"`
7658
7659	// The identifier for the group to be described.
7660	//
7661	// GroupId is a required field
7662	GroupId *string `min:"12" type:"string" required:"true"`
7663
7664	// The identifier for the organization under which the group exists.
7665	//
7666	// OrganizationId is a required field
7667	OrganizationId *string `min:"34" type:"string" required:"true"`
7668}
7669
7670// String returns the string representation
7671func (s DescribeGroupInput) String() string {
7672	return awsutil.Prettify(s)
7673}
7674
7675// GoString returns the string representation
7676func (s DescribeGroupInput) GoString() string {
7677	return s.String()
7678}
7679
7680// Validate inspects the fields of the type to determine if they are valid.
7681func (s *DescribeGroupInput) Validate() error {
7682	invalidParams := request.ErrInvalidParams{Context: "DescribeGroupInput"}
7683	if s.GroupId == nil {
7684		invalidParams.Add(request.NewErrParamRequired("GroupId"))
7685	}
7686	if s.GroupId != nil && len(*s.GroupId) < 12 {
7687		invalidParams.Add(request.NewErrParamMinLen("GroupId", 12))
7688	}
7689	if s.OrganizationId == nil {
7690		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
7691	}
7692	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
7693		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
7694	}
7695
7696	if invalidParams.Len() > 0 {
7697		return invalidParams
7698	}
7699	return nil
7700}
7701
7702// SetGroupId sets the GroupId field's value.
7703func (s *DescribeGroupInput) SetGroupId(v string) *DescribeGroupInput {
7704	s.GroupId = &v
7705	return s
7706}
7707
7708// SetOrganizationId sets the OrganizationId field's value.
7709func (s *DescribeGroupInput) SetOrganizationId(v string) *DescribeGroupInput {
7710	s.OrganizationId = &v
7711	return s
7712}
7713
7714type DescribeGroupOutput struct {
7715	_ struct{} `type:"structure"`
7716
7717	// The date and time when a user was deregistered from WorkMail, in UNIX epoch
7718	// time format.
7719	DisabledDate *time.Time `type:"timestamp"`
7720
7721	// The email of the described group.
7722	Email *string `min:"1" type:"string"`
7723
7724	// The date and time when a user was registered to WorkMail, in UNIX epoch time
7725	// format.
7726	EnabledDate *time.Time `type:"timestamp"`
7727
7728	// The identifier of the described group.
7729	GroupId *string `min:"12" type:"string"`
7730
7731	// The name of the described group.
7732	Name *string `min:"1" type:"string"`
7733
7734	// The state of the user: enabled (registered to Amazon WorkMail) or disabled
7735	// (deregistered or never registered to WorkMail).
7736	State *string `type:"string" enum:"EntityState"`
7737}
7738
7739// String returns the string representation
7740func (s DescribeGroupOutput) String() string {
7741	return awsutil.Prettify(s)
7742}
7743
7744// GoString returns the string representation
7745func (s DescribeGroupOutput) GoString() string {
7746	return s.String()
7747}
7748
7749// SetDisabledDate sets the DisabledDate field's value.
7750func (s *DescribeGroupOutput) SetDisabledDate(v time.Time) *DescribeGroupOutput {
7751	s.DisabledDate = &v
7752	return s
7753}
7754
7755// SetEmail sets the Email field's value.
7756func (s *DescribeGroupOutput) SetEmail(v string) *DescribeGroupOutput {
7757	s.Email = &v
7758	return s
7759}
7760
7761// SetEnabledDate sets the EnabledDate field's value.
7762func (s *DescribeGroupOutput) SetEnabledDate(v time.Time) *DescribeGroupOutput {
7763	s.EnabledDate = &v
7764	return s
7765}
7766
7767// SetGroupId sets the GroupId field's value.
7768func (s *DescribeGroupOutput) SetGroupId(v string) *DescribeGroupOutput {
7769	s.GroupId = &v
7770	return s
7771}
7772
7773// SetName sets the Name field's value.
7774func (s *DescribeGroupOutput) SetName(v string) *DescribeGroupOutput {
7775	s.Name = &v
7776	return s
7777}
7778
7779// SetState sets the State field's value.
7780func (s *DescribeGroupOutput) SetState(v string) *DescribeGroupOutput {
7781	s.State = &v
7782	return s
7783}
7784
7785type DescribeMailboxExportJobInput struct {
7786	_ struct{} `type:"structure"`
7787
7788	// The mailbox export job ID.
7789	//
7790	// JobId is a required field
7791	JobId *string `min:"1" type:"string" required:"true"`
7792
7793	// The organization ID.
7794	//
7795	// OrganizationId is a required field
7796	OrganizationId *string `min:"34" type:"string" required:"true"`
7797}
7798
7799// String returns the string representation
7800func (s DescribeMailboxExportJobInput) String() string {
7801	return awsutil.Prettify(s)
7802}
7803
7804// GoString returns the string representation
7805func (s DescribeMailboxExportJobInput) GoString() string {
7806	return s.String()
7807}
7808
7809// Validate inspects the fields of the type to determine if they are valid.
7810func (s *DescribeMailboxExportJobInput) Validate() error {
7811	invalidParams := request.ErrInvalidParams{Context: "DescribeMailboxExportJobInput"}
7812	if s.JobId == nil {
7813		invalidParams.Add(request.NewErrParamRequired("JobId"))
7814	}
7815	if s.JobId != nil && len(*s.JobId) < 1 {
7816		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
7817	}
7818	if s.OrganizationId == nil {
7819		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
7820	}
7821	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
7822		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
7823	}
7824
7825	if invalidParams.Len() > 0 {
7826		return invalidParams
7827	}
7828	return nil
7829}
7830
7831// SetJobId sets the JobId field's value.
7832func (s *DescribeMailboxExportJobInput) SetJobId(v string) *DescribeMailboxExportJobInput {
7833	s.JobId = &v
7834	return s
7835}
7836
7837// SetOrganizationId sets the OrganizationId field's value.
7838func (s *DescribeMailboxExportJobInput) SetOrganizationId(v string) *DescribeMailboxExportJobInput {
7839	s.OrganizationId = &v
7840	return s
7841}
7842
7843type DescribeMailboxExportJobOutput struct {
7844	_ struct{} `type:"structure"`
7845
7846	// The mailbox export job description.
7847	Description *string `type:"string"`
7848
7849	// The mailbox export job end timestamp.
7850	EndTime *time.Time `type:"timestamp"`
7851
7852	// The identifier of the user or resource associated with the mailbox.
7853	EntityId *string `min:"12" type:"string"`
7854
7855	// Error information for failed mailbox export jobs.
7856	ErrorInfo *string `min:"1" type:"string"`
7857
7858	// The estimated progress of the mailbox export job, in percentage points.
7859	EstimatedProgress *int64 `type:"integer"`
7860
7861	// The Amazon Resource Name (ARN) of the symmetric AWS Key Management Service
7862	// (AWS KMS) key that encrypts the exported mailbox content.
7863	KmsKeyArn *string `min:"20" type:"string"`
7864
7865	// The ARN of the AWS Identity and Access Management (IAM) role that grants
7866	// write permission to the Amazon Simple Storage Service (Amazon S3) bucket.
7867	RoleArn *string `min:"20" type:"string"`
7868
7869	// The name of the S3 bucket.
7870	S3BucketName *string `min:"1" type:"string"`
7871
7872	// The path to the S3 bucket and file that the mailbox export job is exporting
7873	// to.
7874	S3Path *string `min:"1" type:"string"`
7875
7876	// The S3 bucket prefix.
7877	S3Prefix *string `min:"1" type:"string"`
7878
7879	// The mailbox export job start timestamp.
7880	StartTime *time.Time `type:"timestamp"`
7881
7882	// The state of the mailbox export job.
7883	State *string `type:"string" enum:"MailboxExportJobState"`
7884}
7885
7886// String returns the string representation
7887func (s DescribeMailboxExportJobOutput) String() string {
7888	return awsutil.Prettify(s)
7889}
7890
7891// GoString returns the string representation
7892func (s DescribeMailboxExportJobOutput) GoString() string {
7893	return s.String()
7894}
7895
7896// SetDescription sets the Description field's value.
7897func (s *DescribeMailboxExportJobOutput) SetDescription(v string) *DescribeMailboxExportJobOutput {
7898	s.Description = &v
7899	return s
7900}
7901
7902// SetEndTime sets the EndTime field's value.
7903func (s *DescribeMailboxExportJobOutput) SetEndTime(v time.Time) *DescribeMailboxExportJobOutput {
7904	s.EndTime = &v
7905	return s
7906}
7907
7908// SetEntityId sets the EntityId field's value.
7909func (s *DescribeMailboxExportJobOutput) SetEntityId(v string) *DescribeMailboxExportJobOutput {
7910	s.EntityId = &v
7911	return s
7912}
7913
7914// SetErrorInfo sets the ErrorInfo field's value.
7915func (s *DescribeMailboxExportJobOutput) SetErrorInfo(v string) *DescribeMailboxExportJobOutput {
7916	s.ErrorInfo = &v
7917	return s
7918}
7919
7920// SetEstimatedProgress sets the EstimatedProgress field's value.
7921func (s *DescribeMailboxExportJobOutput) SetEstimatedProgress(v int64) *DescribeMailboxExportJobOutput {
7922	s.EstimatedProgress = &v
7923	return s
7924}
7925
7926// SetKmsKeyArn sets the KmsKeyArn field's value.
7927func (s *DescribeMailboxExportJobOutput) SetKmsKeyArn(v string) *DescribeMailboxExportJobOutput {
7928	s.KmsKeyArn = &v
7929	return s
7930}
7931
7932// SetRoleArn sets the RoleArn field's value.
7933func (s *DescribeMailboxExportJobOutput) SetRoleArn(v string) *DescribeMailboxExportJobOutput {
7934	s.RoleArn = &v
7935	return s
7936}
7937
7938// SetS3BucketName sets the S3BucketName field's value.
7939func (s *DescribeMailboxExportJobOutput) SetS3BucketName(v string) *DescribeMailboxExportJobOutput {
7940	s.S3BucketName = &v
7941	return s
7942}
7943
7944// SetS3Path sets the S3Path field's value.
7945func (s *DescribeMailboxExportJobOutput) SetS3Path(v string) *DescribeMailboxExportJobOutput {
7946	s.S3Path = &v
7947	return s
7948}
7949
7950// SetS3Prefix sets the S3Prefix field's value.
7951func (s *DescribeMailboxExportJobOutput) SetS3Prefix(v string) *DescribeMailboxExportJobOutput {
7952	s.S3Prefix = &v
7953	return s
7954}
7955
7956// SetStartTime sets the StartTime field's value.
7957func (s *DescribeMailboxExportJobOutput) SetStartTime(v time.Time) *DescribeMailboxExportJobOutput {
7958	s.StartTime = &v
7959	return s
7960}
7961
7962// SetState sets the State field's value.
7963func (s *DescribeMailboxExportJobOutput) SetState(v string) *DescribeMailboxExportJobOutput {
7964	s.State = &v
7965	return s
7966}
7967
7968type DescribeOrganizationInput struct {
7969	_ struct{} `type:"structure"`
7970
7971	// The identifier for the organization to be described.
7972	//
7973	// OrganizationId is a required field
7974	OrganizationId *string `min:"34" type:"string" required:"true"`
7975}
7976
7977// String returns the string representation
7978func (s DescribeOrganizationInput) String() string {
7979	return awsutil.Prettify(s)
7980}
7981
7982// GoString returns the string representation
7983func (s DescribeOrganizationInput) GoString() string {
7984	return s.String()
7985}
7986
7987// Validate inspects the fields of the type to determine if they are valid.
7988func (s *DescribeOrganizationInput) Validate() error {
7989	invalidParams := request.ErrInvalidParams{Context: "DescribeOrganizationInput"}
7990	if s.OrganizationId == nil {
7991		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
7992	}
7993	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
7994		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
7995	}
7996
7997	if invalidParams.Len() > 0 {
7998		return invalidParams
7999	}
8000	return nil
8001}
8002
8003// SetOrganizationId sets the OrganizationId field's value.
8004func (s *DescribeOrganizationInput) SetOrganizationId(v string) *DescribeOrganizationInput {
8005	s.OrganizationId = &v
8006	return s
8007}
8008
8009type DescribeOrganizationOutput struct {
8010	_ struct{} `type:"structure"`
8011
8012	// The Amazon Resource Name (ARN) of the organization.
8013	ARN *string `min:"1" type:"string"`
8014
8015	// The alias for an organization.
8016	Alias *string `min:"1" type:"string"`
8017
8018	// The date at which the organization became usable in the WorkMail context,
8019	// in UNIX epoch time format.
8020	CompletedDate *time.Time `type:"timestamp"`
8021
8022	// The default mail domain associated with the organization.
8023	DefaultMailDomain *string `type:"string"`
8024
8025	// The identifier for the directory associated with an Amazon WorkMail organization.
8026	DirectoryId *string `type:"string"`
8027
8028	// The type of directory associated with the WorkMail organization.
8029	DirectoryType *string `type:"string"`
8030
8031	// (Optional) The error message indicating if unexpected behavior was encountered
8032	// with regards to the organization.
8033	ErrorMessage *string `type:"string"`
8034
8035	// The identifier of an organization.
8036	OrganizationId *string `min:"34" type:"string"`
8037
8038	// The state of an organization.
8039	State *string `type:"string"`
8040}
8041
8042// String returns the string representation
8043func (s DescribeOrganizationOutput) String() string {
8044	return awsutil.Prettify(s)
8045}
8046
8047// GoString returns the string representation
8048func (s DescribeOrganizationOutput) GoString() string {
8049	return s.String()
8050}
8051
8052// SetARN sets the ARN field's value.
8053func (s *DescribeOrganizationOutput) SetARN(v string) *DescribeOrganizationOutput {
8054	s.ARN = &v
8055	return s
8056}
8057
8058// SetAlias sets the Alias field's value.
8059func (s *DescribeOrganizationOutput) SetAlias(v string) *DescribeOrganizationOutput {
8060	s.Alias = &v
8061	return s
8062}
8063
8064// SetCompletedDate sets the CompletedDate field's value.
8065func (s *DescribeOrganizationOutput) SetCompletedDate(v time.Time) *DescribeOrganizationOutput {
8066	s.CompletedDate = &v
8067	return s
8068}
8069
8070// SetDefaultMailDomain sets the DefaultMailDomain field's value.
8071func (s *DescribeOrganizationOutput) SetDefaultMailDomain(v string) *DescribeOrganizationOutput {
8072	s.DefaultMailDomain = &v
8073	return s
8074}
8075
8076// SetDirectoryId sets the DirectoryId field's value.
8077func (s *DescribeOrganizationOutput) SetDirectoryId(v string) *DescribeOrganizationOutput {
8078	s.DirectoryId = &v
8079	return s
8080}
8081
8082// SetDirectoryType sets the DirectoryType field's value.
8083func (s *DescribeOrganizationOutput) SetDirectoryType(v string) *DescribeOrganizationOutput {
8084	s.DirectoryType = &v
8085	return s
8086}
8087
8088// SetErrorMessage sets the ErrorMessage field's value.
8089func (s *DescribeOrganizationOutput) SetErrorMessage(v string) *DescribeOrganizationOutput {
8090	s.ErrorMessage = &v
8091	return s
8092}
8093
8094// SetOrganizationId sets the OrganizationId field's value.
8095func (s *DescribeOrganizationOutput) SetOrganizationId(v string) *DescribeOrganizationOutput {
8096	s.OrganizationId = &v
8097	return s
8098}
8099
8100// SetState sets the State field's value.
8101func (s *DescribeOrganizationOutput) SetState(v string) *DescribeOrganizationOutput {
8102	s.State = &v
8103	return s
8104}
8105
8106type DescribeResourceInput struct {
8107	_ struct{} `type:"structure"`
8108
8109	// The identifier associated with the organization for which the resource is
8110	// described.
8111	//
8112	// OrganizationId is a required field
8113	OrganizationId *string `min:"34" type:"string" required:"true"`
8114
8115	// The identifier of the resource to be described.
8116	//
8117	// ResourceId is a required field
8118	ResourceId *string `min:"34" type:"string" required:"true"`
8119}
8120
8121// String returns the string representation
8122func (s DescribeResourceInput) String() string {
8123	return awsutil.Prettify(s)
8124}
8125
8126// GoString returns the string representation
8127func (s DescribeResourceInput) GoString() string {
8128	return s.String()
8129}
8130
8131// Validate inspects the fields of the type to determine if they are valid.
8132func (s *DescribeResourceInput) Validate() error {
8133	invalidParams := request.ErrInvalidParams{Context: "DescribeResourceInput"}
8134	if s.OrganizationId == nil {
8135		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
8136	}
8137	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
8138		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
8139	}
8140	if s.ResourceId == nil {
8141		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
8142	}
8143	if s.ResourceId != nil && len(*s.ResourceId) < 34 {
8144		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 34))
8145	}
8146
8147	if invalidParams.Len() > 0 {
8148		return invalidParams
8149	}
8150	return nil
8151}
8152
8153// SetOrganizationId sets the OrganizationId field's value.
8154func (s *DescribeResourceInput) SetOrganizationId(v string) *DescribeResourceInput {
8155	s.OrganizationId = &v
8156	return s
8157}
8158
8159// SetResourceId sets the ResourceId field's value.
8160func (s *DescribeResourceInput) SetResourceId(v string) *DescribeResourceInput {
8161	s.ResourceId = &v
8162	return s
8163}
8164
8165type DescribeResourceOutput struct {
8166	_ struct{} `type:"structure"`
8167
8168	// The booking options for the described resource.
8169	BookingOptions *BookingOptions `type:"structure"`
8170
8171	// The date and time when a resource was disabled from WorkMail, in UNIX epoch
8172	// time format.
8173	DisabledDate *time.Time `type:"timestamp"`
8174
8175	// The email of the described resource.
8176	Email *string `min:"1" type:"string"`
8177
8178	// The date and time when a resource was enabled for WorkMail, in UNIX epoch
8179	// time format.
8180	EnabledDate *time.Time `type:"timestamp"`
8181
8182	// The name of the described resource.
8183	Name *string `min:"1" type:"string"`
8184
8185	// The identifier of the described resource.
8186	ResourceId *string `min:"34" type:"string"`
8187
8188	// The state of the resource: enabled (registered to Amazon WorkMail), disabled
8189	// (deregistered or never registered to WorkMail), or deleted.
8190	State *string `type:"string" enum:"EntityState"`
8191
8192	// The type of the described resource.
8193	Type *string `type:"string" enum:"ResourceType"`
8194}
8195
8196// String returns the string representation
8197func (s DescribeResourceOutput) String() string {
8198	return awsutil.Prettify(s)
8199}
8200
8201// GoString returns the string representation
8202func (s DescribeResourceOutput) GoString() string {
8203	return s.String()
8204}
8205
8206// SetBookingOptions sets the BookingOptions field's value.
8207func (s *DescribeResourceOutput) SetBookingOptions(v *BookingOptions) *DescribeResourceOutput {
8208	s.BookingOptions = v
8209	return s
8210}
8211
8212// SetDisabledDate sets the DisabledDate field's value.
8213func (s *DescribeResourceOutput) SetDisabledDate(v time.Time) *DescribeResourceOutput {
8214	s.DisabledDate = &v
8215	return s
8216}
8217
8218// SetEmail sets the Email field's value.
8219func (s *DescribeResourceOutput) SetEmail(v string) *DescribeResourceOutput {
8220	s.Email = &v
8221	return s
8222}
8223
8224// SetEnabledDate sets the EnabledDate field's value.
8225func (s *DescribeResourceOutput) SetEnabledDate(v time.Time) *DescribeResourceOutput {
8226	s.EnabledDate = &v
8227	return s
8228}
8229
8230// SetName sets the Name field's value.
8231func (s *DescribeResourceOutput) SetName(v string) *DescribeResourceOutput {
8232	s.Name = &v
8233	return s
8234}
8235
8236// SetResourceId sets the ResourceId field's value.
8237func (s *DescribeResourceOutput) SetResourceId(v string) *DescribeResourceOutput {
8238	s.ResourceId = &v
8239	return s
8240}
8241
8242// SetState sets the State field's value.
8243func (s *DescribeResourceOutput) SetState(v string) *DescribeResourceOutput {
8244	s.State = &v
8245	return s
8246}
8247
8248// SetType sets the Type field's value.
8249func (s *DescribeResourceOutput) SetType(v string) *DescribeResourceOutput {
8250	s.Type = &v
8251	return s
8252}
8253
8254type DescribeUserInput struct {
8255	_ struct{} `type:"structure"`
8256
8257	// The identifier for the organization under which the user exists.
8258	//
8259	// OrganizationId is a required field
8260	OrganizationId *string `min:"34" type:"string" required:"true"`
8261
8262	// The identifier for the user to be described.
8263	//
8264	// UserId is a required field
8265	UserId *string `min:"12" type:"string" required:"true"`
8266}
8267
8268// String returns the string representation
8269func (s DescribeUserInput) String() string {
8270	return awsutil.Prettify(s)
8271}
8272
8273// GoString returns the string representation
8274func (s DescribeUserInput) GoString() string {
8275	return s.String()
8276}
8277
8278// Validate inspects the fields of the type to determine if they are valid.
8279func (s *DescribeUserInput) Validate() error {
8280	invalidParams := request.ErrInvalidParams{Context: "DescribeUserInput"}
8281	if s.OrganizationId == nil {
8282		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
8283	}
8284	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
8285		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
8286	}
8287	if s.UserId == nil {
8288		invalidParams.Add(request.NewErrParamRequired("UserId"))
8289	}
8290	if s.UserId != nil && len(*s.UserId) < 12 {
8291		invalidParams.Add(request.NewErrParamMinLen("UserId", 12))
8292	}
8293
8294	if invalidParams.Len() > 0 {
8295		return invalidParams
8296	}
8297	return nil
8298}
8299
8300// SetOrganizationId sets the OrganizationId field's value.
8301func (s *DescribeUserInput) SetOrganizationId(v string) *DescribeUserInput {
8302	s.OrganizationId = &v
8303	return s
8304}
8305
8306// SetUserId sets the UserId field's value.
8307func (s *DescribeUserInput) SetUserId(v string) *DescribeUserInput {
8308	s.UserId = &v
8309	return s
8310}
8311
8312type DescribeUserOutput struct {
8313	_ struct{} `type:"structure"`
8314
8315	// The date and time at which the user was disabled for Amazon WorkMail usage,
8316	// in UNIX epoch time format.
8317	DisabledDate *time.Time `type:"timestamp"`
8318
8319	// The display name of the user.
8320	DisplayName *string `type:"string"`
8321
8322	// The email of the user.
8323	Email *string `min:"1" type:"string"`
8324
8325	// The date and time at which the user was enabled for Amazon WorkMail usage,
8326	// in UNIX epoch time format.
8327	EnabledDate *time.Time `type:"timestamp"`
8328
8329	// The name for the user.
8330	Name *string `min:"1" type:"string"`
8331
8332	// The state of a user: enabled (registered to Amazon WorkMail) or disabled
8333	// (deregistered or never registered to WorkMail).
8334	State *string `type:"string" enum:"EntityState"`
8335
8336	// The identifier for the described user.
8337	UserId *string `min:"12" type:"string"`
8338
8339	// In certain cases, other entities are modeled as users. If interoperability
8340	// is enabled, resources are imported into Amazon WorkMail as users. Because
8341	// different WorkMail organizations rely on different directory types, administrators
8342	// can distinguish between an unregistered user (account is disabled and has
8343	// a user role) and the directory administrators. The values are USER, RESOURCE,
8344	// and SYSTEM_USER.
8345	UserRole *string `type:"string" enum:"UserRole"`
8346}
8347
8348// String returns the string representation
8349func (s DescribeUserOutput) String() string {
8350	return awsutil.Prettify(s)
8351}
8352
8353// GoString returns the string representation
8354func (s DescribeUserOutput) GoString() string {
8355	return s.String()
8356}
8357
8358// SetDisabledDate sets the DisabledDate field's value.
8359func (s *DescribeUserOutput) SetDisabledDate(v time.Time) *DescribeUserOutput {
8360	s.DisabledDate = &v
8361	return s
8362}
8363
8364// SetDisplayName sets the DisplayName field's value.
8365func (s *DescribeUserOutput) SetDisplayName(v string) *DescribeUserOutput {
8366	s.DisplayName = &v
8367	return s
8368}
8369
8370// SetEmail sets the Email field's value.
8371func (s *DescribeUserOutput) SetEmail(v string) *DescribeUserOutput {
8372	s.Email = &v
8373	return s
8374}
8375
8376// SetEnabledDate sets the EnabledDate field's value.
8377func (s *DescribeUserOutput) SetEnabledDate(v time.Time) *DescribeUserOutput {
8378	s.EnabledDate = &v
8379	return s
8380}
8381
8382// SetName sets the Name field's value.
8383func (s *DescribeUserOutput) SetName(v string) *DescribeUserOutput {
8384	s.Name = &v
8385	return s
8386}
8387
8388// SetState sets the State field's value.
8389func (s *DescribeUserOutput) SetState(v string) *DescribeUserOutput {
8390	s.State = &v
8391	return s
8392}
8393
8394// SetUserId sets the UserId field's value.
8395func (s *DescribeUserOutput) SetUserId(v string) *DescribeUserOutput {
8396	s.UserId = &v
8397	return s
8398}
8399
8400// SetUserRole sets the UserRole field's value.
8401func (s *DescribeUserOutput) SetUserRole(v string) *DescribeUserOutput {
8402	s.UserRole = &v
8403	return s
8404}
8405
8406// The directory is already in use by another WorkMail organization in the same
8407// account and Region.
8408type DirectoryInUseException struct {
8409	_            struct{}                  `type:"structure"`
8410	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8411
8412	Message_ *string `locationName:"Message" type:"string"`
8413}
8414
8415// String returns the string representation
8416func (s DirectoryInUseException) String() string {
8417	return awsutil.Prettify(s)
8418}
8419
8420// GoString returns the string representation
8421func (s DirectoryInUseException) GoString() string {
8422	return s.String()
8423}
8424
8425func newErrorDirectoryInUseException(v protocol.ResponseMetadata) error {
8426	return &DirectoryInUseException{
8427		RespMetadata: v,
8428	}
8429}
8430
8431// Code returns the exception type name.
8432func (s *DirectoryInUseException) Code() string {
8433	return "DirectoryInUseException"
8434}
8435
8436// Message returns the exception's message.
8437func (s *DirectoryInUseException) Message() string {
8438	if s.Message_ != nil {
8439		return *s.Message_
8440	}
8441	return ""
8442}
8443
8444// OrigErr always returns nil, satisfies awserr.Error interface.
8445func (s *DirectoryInUseException) OrigErr() error {
8446	return nil
8447}
8448
8449func (s *DirectoryInUseException) Error() string {
8450	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8451}
8452
8453// Status code returns the HTTP status code for the request's response error.
8454func (s *DirectoryInUseException) StatusCode() int {
8455	return s.RespMetadata.StatusCode
8456}
8457
8458// RequestID returns the service's response RequestID for request.
8459func (s *DirectoryInUseException) RequestID() string {
8460	return s.RespMetadata.RequestID
8461}
8462
8463// The directory service doesn't recognize the credentials supplied by WorkMail.
8464type DirectoryServiceAuthenticationFailedException struct {
8465	_            struct{}                  `type:"structure"`
8466	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8467
8468	Message_ *string `locationName:"Message" type:"string"`
8469}
8470
8471// String returns the string representation
8472func (s DirectoryServiceAuthenticationFailedException) String() string {
8473	return awsutil.Prettify(s)
8474}
8475
8476// GoString returns the string representation
8477func (s DirectoryServiceAuthenticationFailedException) GoString() string {
8478	return s.String()
8479}
8480
8481func newErrorDirectoryServiceAuthenticationFailedException(v protocol.ResponseMetadata) error {
8482	return &DirectoryServiceAuthenticationFailedException{
8483		RespMetadata: v,
8484	}
8485}
8486
8487// Code returns the exception type name.
8488func (s *DirectoryServiceAuthenticationFailedException) Code() string {
8489	return "DirectoryServiceAuthenticationFailedException"
8490}
8491
8492// Message returns the exception's message.
8493func (s *DirectoryServiceAuthenticationFailedException) Message() string {
8494	if s.Message_ != nil {
8495		return *s.Message_
8496	}
8497	return ""
8498}
8499
8500// OrigErr always returns nil, satisfies awserr.Error interface.
8501func (s *DirectoryServiceAuthenticationFailedException) OrigErr() error {
8502	return nil
8503}
8504
8505func (s *DirectoryServiceAuthenticationFailedException) Error() string {
8506	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8507}
8508
8509// Status code returns the HTTP status code for the request's response error.
8510func (s *DirectoryServiceAuthenticationFailedException) StatusCode() int {
8511	return s.RespMetadata.StatusCode
8512}
8513
8514// RequestID returns the service's response RequestID for request.
8515func (s *DirectoryServiceAuthenticationFailedException) RequestID() string {
8516	return s.RespMetadata.RequestID
8517}
8518
8519// The directory is unavailable. It might be located in another Region or deleted.
8520type DirectoryUnavailableException struct {
8521	_            struct{}                  `type:"structure"`
8522	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8523
8524	Message_ *string `locationName:"Message" type:"string"`
8525}
8526
8527// String returns the string representation
8528func (s DirectoryUnavailableException) String() string {
8529	return awsutil.Prettify(s)
8530}
8531
8532// GoString returns the string representation
8533func (s DirectoryUnavailableException) GoString() string {
8534	return s.String()
8535}
8536
8537func newErrorDirectoryUnavailableException(v protocol.ResponseMetadata) error {
8538	return &DirectoryUnavailableException{
8539		RespMetadata: v,
8540	}
8541}
8542
8543// Code returns the exception type name.
8544func (s *DirectoryUnavailableException) Code() string {
8545	return "DirectoryUnavailableException"
8546}
8547
8548// Message returns the exception's message.
8549func (s *DirectoryUnavailableException) Message() string {
8550	if s.Message_ != nil {
8551		return *s.Message_
8552	}
8553	return ""
8554}
8555
8556// OrigErr always returns nil, satisfies awserr.Error interface.
8557func (s *DirectoryUnavailableException) OrigErr() error {
8558	return nil
8559}
8560
8561func (s *DirectoryUnavailableException) Error() string {
8562	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8563}
8564
8565// Status code returns the HTTP status code for the request's response error.
8566func (s *DirectoryUnavailableException) StatusCode() int {
8567	return s.RespMetadata.StatusCode
8568}
8569
8570// RequestID returns the service's response RequestID for request.
8571func (s *DirectoryUnavailableException) RequestID() string {
8572	return s.RespMetadata.RequestID
8573}
8574
8575type DisassociateDelegateFromResourceInput struct {
8576	_ struct{} `type:"structure"`
8577
8578	// The identifier for the member (user, group) to be removed from the resource's
8579	// delegates.
8580	//
8581	// EntityId is a required field
8582	EntityId *string `min:"12" type:"string" required:"true"`
8583
8584	// The identifier for the organization under which the resource exists.
8585	//
8586	// OrganizationId is a required field
8587	OrganizationId *string `min:"34" type:"string" required:"true"`
8588
8589	// The identifier of the resource from which delegates' set members are removed.
8590	//
8591	// ResourceId is a required field
8592	ResourceId *string `min:"34" type:"string" required:"true"`
8593}
8594
8595// String returns the string representation
8596func (s DisassociateDelegateFromResourceInput) String() string {
8597	return awsutil.Prettify(s)
8598}
8599
8600// GoString returns the string representation
8601func (s DisassociateDelegateFromResourceInput) GoString() string {
8602	return s.String()
8603}
8604
8605// Validate inspects the fields of the type to determine if they are valid.
8606func (s *DisassociateDelegateFromResourceInput) Validate() error {
8607	invalidParams := request.ErrInvalidParams{Context: "DisassociateDelegateFromResourceInput"}
8608	if s.EntityId == nil {
8609		invalidParams.Add(request.NewErrParamRequired("EntityId"))
8610	}
8611	if s.EntityId != nil && len(*s.EntityId) < 12 {
8612		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
8613	}
8614	if s.OrganizationId == nil {
8615		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
8616	}
8617	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
8618		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
8619	}
8620	if s.ResourceId == nil {
8621		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
8622	}
8623	if s.ResourceId != nil && len(*s.ResourceId) < 34 {
8624		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 34))
8625	}
8626
8627	if invalidParams.Len() > 0 {
8628		return invalidParams
8629	}
8630	return nil
8631}
8632
8633// SetEntityId sets the EntityId field's value.
8634func (s *DisassociateDelegateFromResourceInput) SetEntityId(v string) *DisassociateDelegateFromResourceInput {
8635	s.EntityId = &v
8636	return s
8637}
8638
8639// SetOrganizationId sets the OrganizationId field's value.
8640func (s *DisassociateDelegateFromResourceInput) SetOrganizationId(v string) *DisassociateDelegateFromResourceInput {
8641	s.OrganizationId = &v
8642	return s
8643}
8644
8645// SetResourceId sets the ResourceId field's value.
8646func (s *DisassociateDelegateFromResourceInput) SetResourceId(v string) *DisassociateDelegateFromResourceInput {
8647	s.ResourceId = &v
8648	return s
8649}
8650
8651type DisassociateDelegateFromResourceOutput struct {
8652	_ struct{} `type:"structure"`
8653}
8654
8655// String returns the string representation
8656func (s DisassociateDelegateFromResourceOutput) String() string {
8657	return awsutil.Prettify(s)
8658}
8659
8660// GoString returns the string representation
8661func (s DisassociateDelegateFromResourceOutput) GoString() string {
8662	return s.String()
8663}
8664
8665type DisassociateMemberFromGroupInput struct {
8666	_ struct{} `type:"structure"`
8667
8668	// The identifier for the group from which members are removed.
8669	//
8670	// GroupId is a required field
8671	GroupId *string `min:"12" type:"string" required:"true"`
8672
8673	// The identifier for the member to be removed to the group.
8674	//
8675	// MemberId is a required field
8676	MemberId *string `min:"12" type:"string" required:"true"`
8677
8678	// The identifier for the organization under which the group exists.
8679	//
8680	// OrganizationId is a required field
8681	OrganizationId *string `min:"34" type:"string" required:"true"`
8682}
8683
8684// String returns the string representation
8685func (s DisassociateMemberFromGroupInput) String() string {
8686	return awsutil.Prettify(s)
8687}
8688
8689// GoString returns the string representation
8690func (s DisassociateMemberFromGroupInput) GoString() string {
8691	return s.String()
8692}
8693
8694// Validate inspects the fields of the type to determine if they are valid.
8695func (s *DisassociateMemberFromGroupInput) Validate() error {
8696	invalidParams := request.ErrInvalidParams{Context: "DisassociateMemberFromGroupInput"}
8697	if s.GroupId == nil {
8698		invalidParams.Add(request.NewErrParamRequired("GroupId"))
8699	}
8700	if s.GroupId != nil && len(*s.GroupId) < 12 {
8701		invalidParams.Add(request.NewErrParamMinLen("GroupId", 12))
8702	}
8703	if s.MemberId == nil {
8704		invalidParams.Add(request.NewErrParamRequired("MemberId"))
8705	}
8706	if s.MemberId != nil && len(*s.MemberId) < 12 {
8707		invalidParams.Add(request.NewErrParamMinLen("MemberId", 12))
8708	}
8709	if s.OrganizationId == nil {
8710		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
8711	}
8712	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
8713		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
8714	}
8715
8716	if invalidParams.Len() > 0 {
8717		return invalidParams
8718	}
8719	return nil
8720}
8721
8722// SetGroupId sets the GroupId field's value.
8723func (s *DisassociateMemberFromGroupInput) SetGroupId(v string) *DisassociateMemberFromGroupInput {
8724	s.GroupId = &v
8725	return s
8726}
8727
8728// SetMemberId sets the MemberId field's value.
8729func (s *DisassociateMemberFromGroupInput) SetMemberId(v string) *DisassociateMemberFromGroupInput {
8730	s.MemberId = &v
8731	return s
8732}
8733
8734// SetOrganizationId sets the OrganizationId field's value.
8735func (s *DisassociateMemberFromGroupInput) SetOrganizationId(v string) *DisassociateMemberFromGroupInput {
8736	s.OrganizationId = &v
8737	return s
8738}
8739
8740type DisassociateMemberFromGroupOutput struct {
8741	_ struct{} `type:"structure"`
8742}
8743
8744// String returns the string representation
8745func (s DisassociateMemberFromGroupOutput) String() string {
8746	return awsutil.Prettify(s)
8747}
8748
8749// GoString returns the string representation
8750func (s DisassociateMemberFromGroupOutput) GoString() string {
8751	return s.String()
8752}
8753
8754// The domain to associate with an Amazon WorkMail organization.
8755//
8756// When you configure a domain hosted in Amazon Route 53 (Route 53), all recommended
8757// DNS records are added to the organization when you create it. For more information,
8758// see Adding a domain (https://docs.aws.amazon.com/workmail/latest/adminguide/add_domain.html)
8759// in the Amazon WorkMail Administrator Guide.
8760type Domain struct {
8761	_ struct{} `type:"structure"`
8762
8763	// The fully qualified domain name.
8764	DomainName *string `min:"3" type:"string"`
8765
8766	// The hosted zone ID for a domain hosted in Route 53. Required when configuring
8767	// a domain hosted in Route 53.
8768	HostedZoneId *string `min:"1" type:"string"`
8769}
8770
8771// String returns the string representation
8772func (s Domain) String() string {
8773	return awsutil.Prettify(s)
8774}
8775
8776// GoString returns the string representation
8777func (s Domain) GoString() string {
8778	return s.String()
8779}
8780
8781// Validate inspects the fields of the type to determine if they are valid.
8782func (s *Domain) Validate() error {
8783	invalidParams := request.ErrInvalidParams{Context: "Domain"}
8784	if s.DomainName != nil && len(*s.DomainName) < 3 {
8785		invalidParams.Add(request.NewErrParamMinLen("DomainName", 3))
8786	}
8787	if s.HostedZoneId != nil && len(*s.HostedZoneId) < 1 {
8788		invalidParams.Add(request.NewErrParamMinLen("HostedZoneId", 1))
8789	}
8790
8791	if invalidParams.Len() > 0 {
8792		return invalidParams
8793	}
8794	return nil
8795}
8796
8797// SetDomainName sets the DomainName field's value.
8798func (s *Domain) SetDomainName(v string) *Domain {
8799	s.DomainName = &v
8800	return s
8801}
8802
8803// SetHostedZoneId sets the HostedZoneId field's value.
8804func (s *Domain) SetHostedZoneId(v string) *Domain {
8805	s.HostedZoneId = &v
8806	return s
8807}
8808
8809// The email address that you're trying to assign is already created for a different
8810// user, group, or resource.
8811type EmailAddressInUseException struct {
8812	_            struct{}                  `type:"structure"`
8813	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8814
8815	Message_ *string `locationName:"Message" type:"string"`
8816}
8817
8818// String returns the string representation
8819func (s EmailAddressInUseException) String() string {
8820	return awsutil.Prettify(s)
8821}
8822
8823// GoString returns the string representation
8824func (s EmailAddressInUseException) GoString() string {
8825	return s.String()
8826}
8827
8828func newErrorEmailAddressInUseException(v protocol.ResponseMetadata) error {
8829	return &EmailAddressInUseException{
8830		RespMetadata: v,
8831	}
8832}
8833
8834// Code returns the exception type name.
8835func (s *EmailAddressInUseException) Code() string {
8836	return "EmailAddressInUseException"
8837}
8838
8839// Message returns the exception's message.
8840func (s *EmailAddressInUseException) Message() string {
8841	if s.Message_ != nil {
8842		return *s.Message_
8843	}
8844	return ""
8845}
8846
8847// OrigErr always returns nil, satisfies awserr.Error interface.
8848func (s *EmailAddressInUseException) OrigErr() error {
8849	return nil
8850}
8851
8852func (s *EmailAddressInUseException) Error() string {
8853	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8854}
8855
8856// Status code returns the HTTP status code for the request's response error.
8857func (s *EmailAddressInUseException) StatusCode() int {
8858	return s.RespMetadata.StatusCode
8859}
8860
8861// RequestID returns the service's response RequestID for request.
8862func (s *EmailAddressInUseException) RequestID() string {
8863	return s.RespMetadata.RequestID
8864}
8865
8866// The user, group, or resource that you're trying to register is already registered.
8867type EntityAlreadyRegisteredException struct {
8868	_            struct{}                  `type:"structure"`
8869	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8870
8871	Message_ *string `locationName:"Message" type:"string"`
8872}
8873
8874// String returns the string representation
8875func (s EntityAlreadyRegisteredException) String() string {
8876	return awsutil.Prettify(s)
8877}
8878
8879// GoString returns the string representation
8880func (s EntityAlreadyRegisteredException) GoString() string {
8881	return s.String()
8882}
8883
8884func newErrorEntityAlreadyRegisteredException(v protocol.ResponseMetadata) error {
8885	return &EntityAlreadyRegisteredException{
8886		RespMetadata: v,
8887	}
8888}
8889
8890// Code returns the exception type name.
8891func (s *EntityAlreadyRegisteredException) Code() string {
8892	return "EntityAlreadyRegisteredException"
8893}
8894
8895// Message returns the exception's message.
8896func (s *EntityAlreadyRegisteredException) Message() string {
8897	if s.Message_ != nil {
8898		return *s.Message_
8899	}
8900	return ""
8901}
8902
8903// OrigErr always returns nil, satisfies awserr.Error interface.
8904func (s *EntityAlreadyRegisteredException) OrigErr() error {
8905	return nil
8906}
8907
8908func (s *EntityAlreadyRegisteredException) Error() string {
8909	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8910}
8911
8912// Status code returns the HTTP status code for the request's response error.
8913func (s *EntityAlreadyRegisteredException) StatusCode() int {
8914	return s.RespMetadata.StatusCode
8915}
8916
8917// RequestID returns the service's response RequestID for request.
8918func (s *EntityAlreadyRegisteredException) RequestID() string {
8919	return s.RespMetadata.RequestID
8920}
8921
8922// The identifier supplied for the user, group, or resource does not exist in
8923// your organization.
8924type EntityNotFoundException struct {
8925	_            struct{}                  `type:"structure"`
8926	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8927
8928	Message_ *string `locationName:"Message" type:"string"`
8929}
8930
8931// String returns the string representation
8932func (s EntityNotFoundException) String() string {
8933	return awsutil.Prettify(s)
8934}
8935
8936// GoString returns the string representation
8937func (s EntityNotFoundException) GoString() string {
8938	return s.String()
8939}
8940
8941func newErrorEntityNotFoundException(v protocol.ResponseMetadata) error {
8942	return &EntityNotFoundException{
8943		RespMetadata: v,
8944	}
8945}
8946
8947// Code returns the exception type name.
8948func (s *EntityNotFoundException) Code() string {
8949	return "EntityNotFoundException"
8950}
8951
8952// Message returns the exception's message.
8953func (s *EntityNotFoundException) Message() string {
8954	if s.Message_ != nil {
8955		return *s.Message_
8956	}
8957	return ""
8958}
8959
8960// OrigErr always returns nil, satisfies awserr.Error interface.
8961func (s *EntityNotFoundException) OrigErr() error {
8962	return nil
8963}
8964
8965func (s *EntityNotFoundException) Error() string {
8966	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8967}
8968
8969// Status code returns the HTTP status code for the request's response error.
8970func (s *EntityNotFoundException) StatusCode() int {
8971	return s.RespMetadata.StatusCode
8972}
8973
8974// RequestID returns the service's response RequestID for request.
8975func (s *EntityNotFoundException) RequestID() string {
8976	return s.RespMetadata.RequestID
8977}
8978
8979// You are performing an operation on a user, group, or resource that isn't
8980// in the expected state, such as trying to delete an active user.
8981type EntityStateException struct {
8982	_            struct{}                  `type:"structure"`
8983	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8984
8985	Message_ *string `locationName:"Message" type:"string"`
8986}
8987
8988// String returns the string representation
8989func (s EntityStateException) String() string {
8990	return awsutil.Prettify(s)
8991}
8992
8993// GoString returns the string representation
8994func (s EntityStateException) GoString() string {
8995	return s.String()
8996}
8997
8998func newErrorEntityStateException(v protocol.ResponseMetadata) error {
8999	return &EntityStateException{
9000		RespMetadata: v,
9001	}
9002}
9003
9004// Code returns the exception type name.
9005func (s *EntityStateException) Code() string {
9006	return "EntityStateException"
9007}
9008
9009// Message returns the exception's message.
9010func (s *EntityStateException) Message() string {
9011	if s.Message_ != nil {
9012		return *s.Message_
9013	}
9014	return ""
9015}
9016
9017// OrigErr always returns nil, satisfies awserr.Error interface.
9018func (s *EntityStateException) OrigErr() error {
9019	return nil
9020}
9021
9022func (s *EntityStateException) Error() string {
9023	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9024}
9025
9026// Status code returns the HTTP status code for the request's response error.
9027func (s *EntityStateException) StatusCode() int {
9028	return s.RespMetadata.StatusCode
9029}
9030
9031// RequestID returns the service's response RequestID for request.
9032func (s *EntityStateException) RequestID() string {
9033	return s.RespMetadata.RequestID
9034}
9035
9036// The configuration applied to an organization's folders by its retention policy.
9037type FolderConfiguration struct {
9038	_ struct{} `type:"structure"`
9039
9040	// The action to take on the folder contents at the end of the folder configuration
9041	// period.
9042	//
9043	// Action is a required field
9044	Action *string `type:"string" required:"true" enum:"RetentionAction"`
9045
9046	// The folder name.
9047	//
9048	// Name is a required field
9049	Name *string `type:"string" required:"true" enum:"FolderName"`
9050
9051	// The period of time at which the folder configuration action is applied.
9052	Period *int64 `min:"1" type:"integer"`
9053}
9054
9055// String returns the string representation
9056func (s FolderConfiguration) String() string {
9057	return awsutil.Prettify(s)
9058}
9059
9060// GoString returns the string representation
9061func (s FolderConfiguration) GoString() string {
9062	return s.String()
9063}
9064
9065// Validate inspects the fields of the type to determine if they are valid.
9066func (s *FolderConfiguration) Validate() error {
9067	invalidParams := request.ErrInvalidParams{Context: "FolderConfiguration"}
9068	if s.Action == nil {
9069		invalidParams.Add(request.NewErrParamRequired("Action"))
9070	}
9071	if s.Name == nil {
9072		invalidParams.Add(request.NewErrParamRequired("Name"))
9073	}
9074	if s.Period != nil && *s.Period < 1 {
9075		invalidParams.Add(request.NewErrParamMinValue("Period", 1))
9076	}
9077
9078	if invalidParams.Len() > 0 {
9079		return invalidParams
9080	}
9081	return nil
9082}
9083
9084// SetAction sets the Action field's value.
9085func (s *FolderConfiguration) SetAction(v string) *FolderConfiguration {
9086	s.Action = &v
9087	return s
9088}
9089
9090// SetName sets the Name field's value.
9091func (s *FolderConfiguration) SetName(v string) *FolderConfiguration {
9092	s.Name = &v
9093	return s
9094}
9095
9096// SetPeriod sets the Period field's value.
9097func (s *FolderConfiguration) SetPeriod(v int64) *FolderConfiguration {
9098	s.Period = &v
9099	return s
9100}
9101
9102type GetAccessControlEffectInput struct {
9103	_ struct{} `type:"structure"`
9104
9105	// The access protocol action. Valid values include ActiveSync, AutoDiscover,
9106	// EWS, IMAP, SMTP, WindowsOutlook, and WebMail.
9107	//
9108	// Action is a required field
9109	Action *string `min:"1" type:"string" required:"true"`
9110
9111	// The IPv4 address.
9112	//
9113	// IpAddress is a required field
9114	IpAddress *string `min:"1" type:"string" required:"true"`
9115
9116	// The identifier for the organization.
9117	//
9118	// OrganizationId is a required field
9119	OrganizationId *string `min:"34" type:"string" required:"true"`
9120
9121	// The user ID.
9122	//
9123	// UserId is a required field
9124	UserId *string `min:"12" type:"string" required:"true"`
9125}
9126
9127// String returns the string representation
9128func (s GetAccessControlEffectInput) String() string {
9129	return awsutil.Prettify(s)
9130}
9131
9132// GoString returns the string representation
9133func (s GetAccessControlEffectInput) GoString() string {
9134	return s.String()
9135}
9136
9137// Validate inspects the fields of the type to determine if they are valid.
9138func (s *GetAccessControlEffectInput) Validate() error {
9139	invalidParams := request.ErrInvalidParams{Context: "GetAccessControlEffectInput"}
9140	if s.Action == nil {
9141		invalidParams.Add(request.NewErrParamRequired("Action"))
9142	}
9143	if s.Action != nil && len(*s.Action) < 1 {
9144		invalidParams.Add(request.NewErrParamMinLen("Action", 1))
9145	}
9146	if s.IpAddress == nil {
9147		invalidParams.Add(request.NewErrParamRequired("IpAddress"))
9148	}
9149	if s.IpAddress != nil && len(*s.IpAddress) < 1 {
9150		invalidParams.Add(request.NewErrParamMinLen("IpAddress", 1))
9151	}
9152	if s.OrganizationId == nil {
9153		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
9154	}
9155	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
9156		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
9157	}
9158	if s.UserId == nil {
9159		invalidParams.Add(request.NewErrParamRequired("UserId"))
9160	}
9161	if s.UserId != nil && len(*s.UserId) < 12 {
9162		invalidParams.Add(request.NewErrParamMinLen("UserId", 12))
9163	}
9164
9165	if invalidParams.Len() > 0 {
9166		return invalidParams
9167	}
9168	return nil
9169}
9170
9171// SetAction sets the Action field's value.
9172func (s *GetAccessControlEffectInput) SetAction(v string) *GetAccessControlEffectInput {
9173	s.Action = &v
9174	return s
9175}
9176
9177// SetIpAddress sets the IpAddress field's value.
9178func (s *GetAccessControlEffectInput) SetIpAddress(v string) *GetAccessControlEffectInput {
9179	s.IpAddress = &v
9180	return s
9181}
9182
9183// SetOrganizationId sets the OrganizationId field's value.
9184func (s *GetAccessControlEffectInput) SetOrganizationId(v string) *GetAccessControlEffectInput {
9185	s.OrganizationId = &v
9186	return s
9187}
9188
9189// SetUserId sets the UserId field's value.
9190func (s *GetAccessControlEffectInput) SetUserId(v string) *GetAccessControlEffectInput {
9191	s.UserId = &v
9192	return s
9193}
9194
9195type GetAccessControlEffectOutput struct {
9196	_ struct{} `type:"structure"`
9197
9198	// The rule effect.
9199	Effect *string `type:"string" enum:"AccessControlRuleEffect"`
9200
9201	// The rules that match the given parameters, resulting in an effect.
9202	MatchedRules []*string `type:"list"`
9203}
9204
9205// String returns the string representation
9206func (s GetAccessControlEffectOutput) String() string {
9207	return awsutil.Prettify(s)
9208}
9209
9210// GoString returns the string representation
9211func (s GetAccessControlEffectOutput) GoString() string {
9212	return s.String()
9213}
9214
9215// SetEffect sets the Effect field's value.
9216func (s *GetAccessControlEffectOutput) SetEffect(v string) *GetAccessControlEffectOutput {
9217	s.Effect = &v
9218	return s
9219}
9220
9221// SetMatchedRules sets the MatchedRules field's value.
9222func (s *GetAccessControlEffectOutput) SetMatchedRules(v []*string) *GetAccessControlEffectOutput {
9223	s.MatchedRules = v
9224	return s
9225}
9226
9227type GetDefaultRetentionPolicyInput struct {
9228	_ struct{} `type:"structure"`
9229
9230	// The organization ID.
9231	//
9232	// OrganizationId is a required field
9233	OrganizationId *string `min:"34" type:"string" required:"true"`
9234}
9235
9236// String returns the string representation
9237func (s GetDefaultRetentionPolicyInput) String() string {
9238	return awsutil.Prettify(s)
9239}
9240
9241// GoString returns the string representation
9242func (s GetDefaultRetentionPolicyInput) GoString() string {
9243	return s.String()
9244}
9245
9246// Validate inspects the fields of the type to determine if they are valid.
9247func (s *GetDefaultRetentionPolicyInput) Validate() error {
9248	invalidParams := request.ErrInvalidParams{Context: "GetDefaultRetentionPolicyInput"}
9249	if s.OrganizationId == nil {
9250		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
9251	}
9252	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
9253		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
9254	}
9255
9256	if invalidParams.Len() > 0 {
9257		return invalidParams
9258	}
9259	return nil
9260}
9261
9262// SetOrganizationId sets the OrganizationId field's value.
9263func (s *GetDefaultRetentionPolicyInput) SetOrganizationId(v string) *GetDefaultRetentionPolicyInput {
9264	s.OrganizationId = &v
9265	return s
9266}
9267
9268type GetDefaultRetentionPolicyOutput struct {
9269	_ struct{} `type:"structure"`
9270
9271	// The retention policy description.
9272	Description *string `type:"string"`
9273
9274	// The retention policy folder configurations.
9275	FolderConfigurations []*FolderConfiguration `type:"list"`
9276
9277	// The retention policy ID.
9278	Id *string `min:"1" type:"string"`
9279
9280	// The retention policy name.
9281	Name *string `min:"1" type:"string"`
9282}
9283
9284// String returns the string representation
9285func (s GetDefaultRetentionPolicyOutput) String() string {
9286	return awsutil.Prettify(s)
9287}
9288
9289// GoString returns the string representation
9290func (s GetDefaultRetentionPolicyOutput) GoString() string {
9291	return s.String()
9292}
9293
9294// SetDescription sets the Description field's value.
9295func (s *GetDefaultRetentionPolicyOutput) SetDescription(v string) *GetDefaultRetentionPolicyOutput {
9296	s.Description = &v
9297	return s
9298}
9299
9300// SetFolderConfigurations sets the FolderConfigurations field's value.
9301func (s *GetDefaultRetentionPolicyOutput) SetFolderConfigurations(v []*FolderConfiguration) *GetDefaultRetentionPolicyOutput {
9302	s.FolderConfigurations = v
9303	return s
9304}
9305
9306// SetId sets the Id field's value.
9307func (s *GetDefaultRetentionPolicyOutput) SetId(v string) *GetDefaultRetentionPolicyOutput {
9308	s.Id = &v
9309	return s
9310}
9311
9312// SetName sets the Name field's value.
9313func (s *GetDefaultRetentionPolicyOutput) SetName(v string) *GetDefaultRetentionPolicyOutput {
9314	s.Name = &v
9315	return s
9316}
9317
9318type GetMailboxDetailsInput struct {
9319	_ struct{} `type:"structure"`
9320
9321	// The identifier for the organization that contains the user whose mailbox
9322	// details are being requested.
9323	//
9324	// OrganizationId is a required field
9325	OrganizationId *string `min:"34" type:"string" required:"true"`
9326
9327	// The identifier for the user whose mailbox details are being requested.
9328	//
9329	// UserId is a required field
9330	UserId *string `min:"12" type:"string" required:"true"`
9331}
9332
9333// String returns the string representation
9334func (s GetMailboxDetailsInput) String() string {
9335	return awsutil.Prettify(s)
9336}
9337
9338// GoString returns the string representation
9339func (s GetMailboxDetailsInput) GoString() string {
9340	return s.String()
9341}
9342
9343// Validate inspects the fields of the type to determine if they are valid.
9344func (s *GetMailboxDetailsInput) Validate() error {
9345	invalidParams := request.ErrInvalidParams{Context: "GetMailboxDetailsInput"}
9346	if s.OrganizationId == nil {
9347		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
9348	}
9349	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
9350		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
9351	}
9352	if s.UserId == nil {
9353		invalidParams.Add(request.NewErrParamRequired("UserId"))
9354	}
9355	if s.UserId != nil && len(*s.UserId) < 12 {
9356		invalidParams.Add(request.NewErrParamMinLen("UserId", 12))
9357	}
9358
9359	if invalidParams.Len() > 0 {
9360		return invalidParams
9361	}
9362	return nil
9363}
9364
9365// SetOrganizationId sets the OrganizationId field's value.
9366func (s *GetMailboxDetailsInput) SetOrganizationId(v string) *GetMailboxDetailsInput {
9367	s.OrganizationId = &v
9368	return s
9369}
9370
9371// SetUserId sets the UserId field's value.
9372func (s *GetMailboxDetailsInput) SetUserId(v string) *GetMailboxDetailsInput {
9373	s.UserId = &v
9374	return s
9375}
9376
9377type GetMailboxDetailsOutput struct {
9378	_ struct{} `type:"structure"`
9379
9380	// The maximum allowed mailbox size, in MB, for the specified user.
9381	MailboxQuota *int64 `min:"1" type:"integer"`
9382
9383	// The current mailbox size, in MB, for the specified user.
9384	MailboxSize *float64 `type:"double"`
9385}
9386
9387// String returns the string representation
9388func (s GetMailboxDetailsOutput) String() string {
9389	return awsutil.Prettify(s)
9390}
9391
9392// GoString returns the string representation
9393func (s GetMailboxDetailsOutput) GoString() string {
9394	return s.String()
9395}
9396
9397// SetMailboxQuota sets the MailboxQuota field's value.
9398func (s *GetMailboxDetailsOutput) SetMailboxQuota(v int64) *GetMailboxDetailsOutput {
9399	s.MailboxQuota = &v
9400	return s
9401}
9402
9403// SetMailboxSize sets the MailboxSize field's value.
9404func (s *GetMailboxDetailsOutput) SetMailboxSize(v float64) *GetMailboxDetailsOutput {
9405	s.MailboxSize = &v
9406	return s
9407}
9408
9409type GetMobileDeviceAccessEffectInput struct {
9410	_ struct{} `type:"structure"`
9411
9412	// Device model the simulated user will report.
9413	DeviceModel *string `min:"1" type:"string"`
9414
9415	// Device operating system the simulated user will report.
9416	DeviceOperatingSystem *string `min:"1" type:"string"`
9417
9418	// Device type the simulated user will report.
9419	DeviceType *string `min:"1" type:"string"`
9420
9421	// Device user agent the simulated user will report.
9422	DeviceUserAgent *string `min:"1" type:"string"`
9423
9424	// The Amazon WorkMail organization to simulate the access effect for.
9425	//
9426	// OrganizationId is a required field
9427	OrganizationId *string `min:"34" type:"string" required:"true"`
9428}
9429
9430// String returns the string representation
9431func (s GetMobileDeviceAccessEffectInput) String() string {
9432	return awsutil.Prettify(s)
9433}
9434
9435// GoString returns the string representation
9436func (s GetMobileDeviceAccessEffectInput) GoString() string {
9437	return s.String()
9438}
9439
9440// Validate inspects the fields of the type to determine if they are valid.
9441func (s *GetMobileDeviceAccessEffectInput) Validate() error {
9442	invalidParams := request.ErrInvalidParams{Context: "GetMobileDeviceAccessEffectInput"}
9443	if s.DeviceModel != nil && len(*s.DeviceModel) < 1 {
9444		invalidParams.Add(request.NewErrParamMinLen("DeviceModel", 1))
9445	}
9446	if s.DeviceOperatingSystem != nil && len(*s.DeviceOperatingSystem) < 1 {
9447		invalidParams.Add(request.NewErrParamMinLen("DeviceOperatingSystem", 1))
9448	}
9449	if s.DeviceType != nil && len(*s.DeviceType) < 1 {
9450		invalidParams.Add(request.NewErrParamMinLen("DeviceType", 1))
9451	}
9452	if s.DeviceUserAgent != nil && len(*s.DeviceUserAgent) < 1 {
9453		invalidParams.Add(request.NewErrParamMinLen("DeviceUserAgent", 1))
9454	}
9455	if s.OrganizationId == nil {
9456		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
9457	}
9458	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
9459		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
9460	}
9461
9462	if invalidParams.Len() > 0 {
9463		return invalidParams
9464	}
9465	return nil
9466}
9467
9468// SetDeviceModel sets the DeviceModel field's value.
9469func (s *GetMobileDeviceAccessEffectInput) SetDeviceModel(v string) *GetMobileDeviceAccessEffectInput {
9470	s.DeviceModel = &v
9471	return s
9472}
9473
9474// SetDeviceOperatingSystem sets the DeviceOperatingSystem field's value.
9475func (s *GetMobileDeviceAccessEffectInput) SetDeviceOperatingSystem(v string) *GetMobileDeviceAccessEffectInput {
9476	s.DeviceOperatingSystem = &v
9477	return s
9478}
9479
9480// SetDeviceType sets the DeviceType field's value.
9481func (s *GetMobileDeviceAccessEffectInput) SetDeviceType(v string) *GetMobileDeviceAccessEffectInput {
9482	s.DeviceType = &v
9483	return s
9484}
9485
9486// SetDeviceUserAgent sets the DeviceUserAgent field's value.
9487func (s *GetMobileDeviceAccessEffectInput) SetDeviceUserAgent(v string) *GetMobileDeviceAccessEffectInput {
9488	s.DeviceUserAgent = &v
9489	return s
9490}
9491
9492// SetOrganizationId sets the OrganizationId field's value.
9493func (s *GetMobileDeviceAccessEffectInput) SetOrganizationId(v string) *GetMobileDeviceAccessEffectInput {
9494	s.OrganizationId = &v
9495	return s
9496}
9497
9498type GetMobileDeviceAccessEffectOutput struct {
9499	_ struct{} `type:"structure"`
9500
9501	// The effect of the simulated access, ALLOW or DENY, after evaluating mobile
9502	// device access rules in the Amazon WorkMail organization for the simulated
9503	// user parameters.
9504	Effect *string `type:"string" enum:"MobileDeviceAccessRuleEffect"`
9505
9506	// A list of the rules which matched the simulated user input and produced the
9507	// effect.
9508	MatchedRules []*MobileDeviceAccessMatchedRule `type:"list"`
9509}
9510
9511// String returns the string representation
9512func (s GetMobileDeviceAccessEffectOutput) String() string {
9513	return awsutil.Prettify(s)
9514}
9515
9516// GoString returns the string representation
9517func (s GetMobileDeviceAccessEffectOutput) GoString() string {
9518	return s.String()
9519}
9520
9521// SetEffect sets the Effect field's value.
9522func (s *GetMobileDeviceAccessEffectOutput) SetEffect(v string) *GetMobileDeviceAccessEffectOutput {
9523	s.Effect = &v
9524	return s
9525}
9526
9527// SetMatchedRules sets the MatchedRules field's value.
9528func (s *GetMobileDeviceAccessEffectOutput) SetMatchedRules(v []*MobileDeviceAccessMatchedRule) *GetMobileDeviceAccessEffectOutput {
9529	s.MatchedRules = v
9530	return s
9531}
9532
9533// The representation of an Amazon WorkMail group.
9534type Group struct {
9535	_ struct{} `type:"structure"`
9536
9537	// The date indicating when the group was disabled from Amazon WorkMail use.
9538	DisabledDate *time.Time `type:"timestamp"`
9539
9540	// The email of the group.
9541	Email *string `min:"1" type:"string"`
9542
9543	// The date indicating when the group was enabled for Amazon WorkMail use.
9544	EnabledDate *time.Time `type:"timestamp"`
9545
9546	// The identifier of the group.
9547	Id *string `min:"12" type:"string"`
9548
9549	// The name of the group.
9550	Name *string `min:"1" type:"string"`
9551
9552	// The state of the group, which can be ENABLED, DISABLED, or DELETED.
9553	State *string `type:"string" enum:"EntityState"`
9554}
9555
9556// String returns the string representation
9557func (s Group) String() string {
9558	return awsutil.Prettify(s)
9559}
9560
9561// GoString returns the string representation
9562func (s Group) GoString() string {
9563	return s.String()
9564}
9565
9566// SetDisabledDate sets the DisabledDate field's value.
9567func (s *Group) SetDisabledDate(v time.Time) *Group {
9568	s.DisabledDate = &v
9569	return s
9570}
9571
9572// SetEmail sets the Email field's value.
9573func (s *Group) SetEmail(v string) *Group {
9574	s.Email = &v
9575	return s
9576}
9577
9578// SetEnabledDate sets the EnabledDate field's value.
9579func (s *Group) SetEnabledDate(v time.Time) *Group {
9580	s.EnabledDate = &v
9581	return s
9582}
9583
9584// SetId sets the Id field's value.
9585func (s *Group) SetId(v string) *Group {
9586	s.Id = &v
9587	return s
9588}
9589
9590// SetName sets the Name field's value.
9591func (s *Group) SetName(v string) *Group {
9592	s.Name = &v
9593	return s
9594}
9595
9596// SetState sets the State field's value.
9597func (s *Group) SetState(v string) *Group {
9598	s.State = &v
9599	return s
9600}
9601
9602// The configuration for a resource isn't valid. A resource must either be able
9603// to auto-respond to requests or have at least one delegate associated that
9604// can do so on its behalf.
9605type InvalidConfigurationException struct {
9606	_            struct{}                  `type:"structure"`
9607	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9608
9609	Message_ *string `locationName:"Message" type:"string"`
9610}
9611
9612// String returns the string representation
9613func (s InvalidConfigurationException) String() string {
9614	return awsutil.Prettify(s)
9615}
9616
9617// GoString returns the string representation
9618func (s InvalidConfigurationException) GoString() string {
9619	return s.String()
9620}
9621
9622func newErrorInvalidConfigurationException(v protocol.ResponseMetadata) error {
9623	return &InvalidConfigurationException{
9624		RespMetadata: v,
9625	}
9626}
9627
9628// Code returns the exception type name.
9629func (s *InvalidConfigurationException) Code() string {
9630	return "InvalidConfigurationException"
9631}
9632
9633// Message returns the exception's message.
9634func (s *InvalidConfigurationException) Message() string {
9635	if s.Message_ != nil {
9636		return *s.Message_
9637	}
9638	return ""
9639}
9640
9641// OrigErr always returns nil, satisfies awserr.Error interface.
9642func (s *InvalidConfigurationException) OrigErr() error {
9643	return nil
9644}
9645
9646func (s *InvalidConfigurationException) Error() string {
9647	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9648}
9649
9650// Status code returns the HTTP status code for the request's response error.
9651func (s *InvalidConfigurationException) StatusCode() int {
9652	return s.RespMetadata.StatusCode
9653}
9654
9655// RequestID returns the service's response RequestID for request.
9656func (s *InvalidConfigurationException) RequestID() string {
9657	return s.RespMetadata.RequestID
9658}
9659
9660// One or more of the input parameters don't match the service's restrictions.
9661type InvalidParameterException struct {
9662	_            struct{}                  `type:"structure"`
9663	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9664
9665	Message_ *string `locationName:"Message" type:"string"`
9666}
9667
9668// String returns the string representation
9669func (s InvalidParameterException) String() string {
9670	return awsutil.Prettify(s)
9671}
9672
9673// GoString returns the string representation
9674func (s InvalidParameterException) GoString() string {
9675	return s.String()
9676}
9677
9678func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
9679	return &InvalidParameterException{
9680		RespMetadata: v,
9681	}
9682}
9683
9684// Code returns the exception type name.
9685func (s *InvalidParameterException) Code() string {
9686	return "InvalidParameterException"
9687}
9688
9689// Message returns the exception's message.
9690func (s *InvalidParameterException) Message() string {
9691	if s.Message_ != nil {
9692		return *s.Message_
9693	}
9694	return ""
9695}
9696
9697// OrigErr always returns nil, satisfies awserr.Error interface.
9698func (s *InvalidParameterException) OrigErr() error {
9699	return nil
9700}
9701
9702func (s *InvalidParameterException) Error() string {
9703	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9704}
9705
9706// Status code returns the HTTP status code for the request's response error.
9707func (s *InvalidParameterException) StatusCode() int {
9708	return s.RespMetadata.StatusCode
9709}
9710
9711// RequestID returns the service's response RequestID for request.
9712func (s *InvalidParameterException) RequestID() string {
9713	return s.RespMetadata.RequestID
9714}
9715
9716// The supplied password doesn't match the minimum security constraints, such
9717// as length or use of special characters.
9718type InvalidPasswordException struct {
9719	_            struct{}                  `type:"structure"`
9720	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9721
9722	Message_ *string `locationName:"Message" type:"string"`
9723}
9724
9725// String returns the string representation
9726func (s InvalidPasswordException) String() string {
9727	return awsutil.Prettify(s)
9728}
9729
9730// GoString returns the string representation
9731func (s InvalidPasswordException) GoString() string {
9732	return s.String()
9733}
9734
9735func newErrorInvalidPasswordException(v protocol.ResponseMetadata) error {
9736	return &InvalidPasswordException{
9737		RespMetadata: v,
9738	}
9739}
9740
9741// Code returns the exception type name.
9742func (s *InvalidPasswordException) Code() string {
9743	return "InvalidPasswordException"
9744}
9745
9746// Message returns the exception's message.
9747func (s *InvalidPasswordException) Message() string {
9748	if s.Message_ != nil {
9749		return *s.Message_
9750	}
9751	return ""
9752}
9753
9754// OrigErr always returns nil, satisfies awserr.Error interface.
9755func (s *InvalidPasswordException) OrigErr() error {
9756	return nil
9757}
9758
9759func (s *InvalidPasswordException) Error() string {
9760	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9761}
9762
9763// Status code returns the HTTP status code for the request's response error.
9764func (s *InvalidPasswordException) StatusCode() int {
9765	return s.RespMetadata.StatusCode
9766}
9767
9768// RequestID returns the service's response RequestID for request.
9769func (s *InvalidPasswordException) RequestID() string {
9770	return s.RespMetadata.RequestID
9771}
9772
9773// The request exceeds the limit of the resource.
9774type LimitExceededException struct {
9775	_            struct{}                  `type:"structure"`
9776	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9777
9778	Message_ *string `locationName:"Message" type:"string"`
9779}
9780
9781// String returns the string representation
9782func (s LimitExceededException) String() string {
9783	return awsutil.Prettify(s)
9784}
9785
9786// GoString returns the string representation
9787func (s LimitExceededException) GoString() string {
9788	return s.String()
9789}
9790
9791func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
9792	return &LimitExceededException{
9793		RespMetadata: v,
9794	}
9795}
9796
9797// Code returns the exception type name.
9798func (s *LimitExceededException) Code() string {
9799	return "LimitExceededException"
9800}
9801
9802// Message returns the exception's message.
9803func (s *LimitExceededException) Message() string {
9804	if s.Message_ != nil {
9805		return *s.Message_
9806	}
9807	return ""
9808}
9809
9810// OrigErr always returns nil, satisfies awserr.Error interface.
9811func (s *LimitExceededException) OrigErr() error {
9812	return nil
9813}
9814
9815func (s *LimitExceededException) Error() string {
9816	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9817}
9818
9819// Status code returns the HTTP status code for the request's response error.
9820func (s *LimitExceededException) StatusCode() int {
9821	return s.RespMetadata.StatusCode
9822}
9823
9824// RequestID returns the service's response RequestID for request.
9825func (s *LimitExceededException) RequestID() string {
9826	return s.RespMetadata.RequestID
9827}
9828
9829type ListAccessControlRulesInput struct {
9830	_ struct{} `type:"structure"`
9831
9832	// The identifier for the organization.
9833	//
9834	// OrganizationId is a required field
9835	OrganizationId *string `min:"34" type:"string" required:"true"`
9836}
9837
9838// String returns the string representation
9839func (s ListAccessControlRulesInput) String() string {
9840	return awsutil.Prettify(s)
9841}
9842
9843// GoString returns the string representation
9844func (s ListAccessControlRulesInput) GoString() string {
9845	return s.String()
9846}
9847
9848// Validate inspects the fields of the type to determine if they are valid.
9849func (s *ListAccessControlRulesInput) Validate() error {
9850	invalidParams := request.ErrInvalidParams{Context: "ListAccessControlRulesInput"}
9851	if s.OrganizationId == nil {
9852		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
9853	}
9854	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
9855		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
9856	}
9857
9858	if invalidParams.Len() > 0 {
9859		return invalidParams
9860	}
9861	return nil
9862}
9863
9864// SetOrganizationId sets the OrganizationId field's value.
9865func (s *ListAccessControlRulesInput) SetOrganizationId(v string) *ListAccessControlRulesInput {
9866	s.OrganizationId = &v
9867	return s
9868}
9869
9870type ListAccessControlRulesOutput struct {
9871	_ struct{} `type:"structure"`
9872
9873	// The access control rules.
9874	Rules []*AccessControlRule `type:"list"`
9875}
9876
9877// String returns the string representation
9878func (s ListAccessControlRulesOutput) String() string {
9879	return awsutil.Prettify(s)
9880}
9881
9882// GoString returns the string representation
9883func (s ListAccessControlRulesOutput) GoString() string {
9884	return s.String()
9885}
9886
9887// SetRules sets the Rules field's value.
9888func (s *ListAccessControlRulesOutput) SetRules(v []*AccessControlRule) *ListAccessControlRulesOutput {
9889	s.Rules = v
9890	return s
9891}
9892
9893type ListAliasesInput struct {
9894	_ struct{} `type:"structure"`
9895
9896	// The identifier for the entity for which to list the aliases.
9897	//
9898	// EntityId is a required field
9899	EntityId *string `min:"12" type:"string" required:"true"`
9900
9901	// The maximum number of results to return in a single call.
9902	MaxResults *int64 `min:"1" type:"integer"`
9903
9904	// The token to use to retrieve the next page of results. The first call does
9905	// not contain any tokens.
9906	NextToken *string `min:"1" type:"string"`
9907
9908	// The identifier for the organization under which the entity exists.
9909	//
9910	// OrganizationId is a required field
9911	OrganizationId *string `min:"34" type:"string" required:"true"`
9912}
9913
9914// String returns the string representation
9915func (s ListAliasesInput) String() string {
9916	return awsutil.Prettify(s)
9917}
9918
9919// GoString returns the string representation
9920func (s ListAliasesInput) GoString() string {
9921	return s.String()
9922}
9923
9924// Validate inspects the fields of the type to determine if they are valid.
9925func (s *ListAliasesInput) Validate() error {
9926	invalidParams := request.ErrInvalidParams{Context: "ListAliasesInput"}
9927	if s.EntityId == nil {
9928		invalidParams.Add(request.NewErrParamRequired("EntityId"))
9929	}
9930	if s.EntityId != nil && len(*s.EntityId) < 12 {
9931		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
9932	}
9933	if s.MaxResults != nil && *s.MaxResults < 1 {
9934		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9935	}
9936	if s.NextToken != nil && len(*s.NextToken) < 1 {
9937		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9938	}
9939	if s.OrganizationId == nil {
9940		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
9941	}
9942	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
9943		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
9944	}
9945
9946	if invalidParams.Len() > 0 {
9947		return invalidParams
9948	}
9949	return nil
9950}
9951
9952// SetEntityId sets the EntityId field's value.
9953func (s *ListAliasesInput) SetEntityId(v string) *ListAliasesInput {
9954	s.EntityId = &v
9955	return s
9956}
9957
9958// SetMaxResults sets the MaxResults field's value.
9959func (s *ListAliasesInput) SetMaxResults(v int64) *ListAliasesInput {
9960	s.MaxResults = &v
9961	return s
9962}
9963
9964// SetNextToken sets the NextToken field's value.
9965func (s *ListAliasesInput) SetNextToken(v string) *ListAliasesInput {
9966	s.NextToken = &v
9967	return s
9968}
9969
9970// SetOrganizationId sets the OrganizationId field's value.
9971func (s *ListAliasesInput) SetOrganizationId(v string) *ListAliasesInput {
9972	s.OrganizationId = &v
9973	return s
9974}
9975
9976type ListAliasesOutput struct {
9977	_ struct{} `type:"structure"`
9978
9979	// The entity's paginated aliases.
9980	Aliases []*string `type:"list"`
9981
9982	// The token to use to retrieve the next page of results. The value is "null"
9983	// when there are no more results to return.
9984	NextToken *string `min:"1" type:"string"`
9985}
9986
9987// String returns the string representation
9988func (s ListAliasesOutput) String() string {
9989	return awsutil.Prettify(s)
9990}
9991
9992// GoString returns the string representation
9993func (s ListAliasesOutput) GoString() string {
9994	return s.String()
9995}
9996
9997// SetAliases sets the Aliases field's value.
9998func (s *ListAliasesOutput) SetAliases(v []*string) *ListAliasesOutput {
9999	s.Aliases = v
10000	return s
10001}
10002
10003// SetNextToken sets the NextToken field's value.
10004func (s *ListAliasesOutput) SetNextToken(v string) *ListAliasesOutput {
10005	s.NextToken = &v
10006	return s
10007}
10008
10009type ListGroupMembersInput struct {
10010	_ struct{} `type:"structure"`
10011
10012	// The identifier for the group to which the members (users or groups) are associated.
10013	//
10014	// GroupId is a required field
10015	GroupId *string `min:"12" type:"string" required:"true"`
10016
10017	// The maximum number of results to return in a single call.
10018	MaxResults *int64 `min:"1" type:"integer"`
10019
10020	// The token to use to retrieve the next page of results. The first call does
10021	// not contain any tokens.
10022	NextToken *string `min:"1" type:"string"`
10023
10024	// The identifier for the organization under which the group exists.
10025	//
10026	// OrganizationId is a required field
10027	OrganizationId *string `min:"34" type:"string" required:"true"`
10028}
10029
10030// String returns the string representation
10031func (s ListGroupMembersInput) String() string {
10032	return awsutil.Prettify(s)
10033}
10034
10035// GoString returns the string representation
10036func (s ListGroupMembersInput) GoString() string {
10037	return s.String()
10038}
10039
10040// Validate inspects the fields of the type to determine if they are valid.
10041func (s *ListGroupMembersInput) Validate() error {
10042	invalidParams := request.ErrInvalidParams{Context: "ListGroupMembersInput"}
10043	if s.GroupId == nil {
10044		invalidParams.Add(request.NewErrParamRequired("GroupId"))
10045	}
10046	if s.GroupId != nil && len(*s.GroupId) < 12 {
10047		invalidParams.Add(request.NewErrParamMinLen("GroupId", 12))
10048	}
10049	if s.MaxResults != nil && *s.MaxResults < 1 {
10050		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10051	}
10052	if s.NextToken != nil && len(*s.NextToken) < 1 {
10053		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10054	}
10055	if s.OrganizationId == nil {
10056		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
10057	}
10058	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
10059		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
10060	}
10061
10062	if invalidParams.Len() > 0 {
10063		return invalidParams
10064	}
10065	return nil
10066}
10067
10068// SetGroupId sets the GroupId field's value.
10069func (s *ListGroupMembersInput) SetGroupId(v string) *ListGroupMembersInput {
10070	s.GroupId = &v
10071	return s
10072}
10073
10074// SetMaxResults sets the MaxResults field's value.
10075func (s *ListGroupMembersInput) SetMaxResults(v int64) *ListGroupMembersInput {
10076	s.MaxResults = &v
10077	return s
10078}
10079
10080// SetNextToken sets the NextToken field's value.
10081func (s *ListGroupMembersInput) SetNextToken(v string) *ListGroupMembersInput {
10082	s.NextToken = &v
10083	return s
10084}
10085
10086// SetOrganizationId sets the OrganizationId field's value.
10087func (s *ListGroupMembersInput) SetOrganizationId(v string) *ListGroupMembersInput {
10088	s.OrganizationId = &v
10089	return s
10090}
10091
10092type ListGroupMembersOutput struct {
10093	_ struct{} `type:"structure"`
10094
10095	// The members associated to the group.
10096	Members []*Member `type:"list"`
10097
10098	// The token to use to retrieve the next page of results. The first call does
10099	// not contain any tokens.
10100	NextToken *string `min:"1" type:"string"`
10101}
10102
10103// String returns the string representation
10104func (s ListGroupMembersOutput) String() string {
10105	return awsutil.Prettify(s)
10106}
10107
10108// GoString returns the string representation
10109func (s ListGroupMembersOutput) GoString() string {
10110	return s.String()
10111}
10112
10113// SetMembers sets the Members field's value.
10114func (s *ListGroupMembersOutput) SetMembers(v []*Member) *ListGroupMembersOutput {
10115	s.Members = v
10116	return s
10117}
10118
10119// SetNextToken sets the NextToken field's value.
10120func (s *ListGroupMembersOutput) SetNextToken(v string) *ListGroupMembersOutput {
10121	s.NextToken = &v
10122	return s
10123}
10124
10125type ListGroupsInput struct {
10126	_ struct{} `type:"structure"`
10127
10128	// The maximum number of results to return in a single call.
10129	MaxResults *int64 `min:"1" type:"integer"`
10130
10131	// The token to use to retrieve the next page of results. The first call does
10132	// not contain any tokens.
10133	NextToken *string `min:"1" type:"string"`
10134
10135	// The identifier for the organization under which the groups exist.
10136	//
10137	// OrganizationId is a required field
10138	OrganizationId *string `min:"34" type:"string" required:"true"`
10139}
10140
10141// String returns the string representation
10142func (s ListGroupsInput) String() string {
10143	return awsutil.Prettify(s)
10144}
10145
10146// GoString returns the string representation
10147func (s ListGroupsInput) GoString() string {
10148	return s.String()
10149}
10150
10151// Validate inspects the fields of the type to determine if they are valid.
10152func (s *ListGroupsInput) Validate() error {
10153	invalidParams := request.ErrInvalidParams{Context: "ListGroupsInput"}
10154	if s.MaxResults != nil && *s.MaxResults < 1 {
10155		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10156	}
10157	if s.NextToken != nil && len(*s.NextToken) < 1 {
10158		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10159	}
10160	if s.OrganizationId == nil {
10161		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
10162	}
10163	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
10164		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
10165	}
10166
10167	if invalidParams.Len() > 0 {
10168		return invalidParams
10169	}
10170	return nil
10171}
10172
10173// SetMaxResults sets the MaxResults field's value.
10174func (s *ListGroupsInput) SetMaxResults(v int64) *ListGroupsInput {
10175	s.MaxResults = &v
10176	return s
10177}
10178
10179// SetNextToken sets the NextToken field's value.
10180func (s *ListGroupsInput) SetNextToken(v string) *ListGroupsInput {
10181	s.NextToken = &v
10182	return s
10183}
10184
10185// SetOrganizationId sets the OrganizationId field's value.
10186func (s *ListGroupsInput) SetOrganizationId(v string) *ListGroupsInput {
10187	s.OrganizationId = &v
10188	return s
10189}
10190
10191type ListGroupsOutput struct {
10192	_ struct{} `type:"structure"`
10193
10194	// The overview of groups for an organization.
10195	Groups []*Group `type:"list"`
10196
10197	// The token to use to retrieve the next page of results. The value is "null"
10198	// when there are no more results to return.
10199	NextToken *string `min:"1" type:"string"`
10200}
10201
10202// String returns the string representation
10203func (s ListGroupsOutput) String() string {
10204	return awsutil.Prettify(s)
10205}
10206
10207// GoString returns the string representation
10208func (s ListGroupsOutput) GoString() string {
10209	return s.String()
10210}
10211
10212// SetGroups sets the Groups field's value.
10213func (s *ListGroupsOutput) SetGroups(v []*Group) *ListGroupsOutput {
10214	s.Groups = v
10215	return s
10216}
10217
10218// SetNextToken sets the NextToken field's value.
10219func (s *ListGroupsOutput) SetNextToken(v string) *ListGroupsOutput {
10220	s.NextToken = &v
10221	return s
10222}
10223
10224type ListMailboxExportJobsInput struct {
10225	_ struct{} `type:"structure"`
10226
10227	// The maximum number of results to return in a single call.
10228	MaxResults *int64 `min:"1" type:"integer"`
10229
10230	// The token to use to retrieve the next page of results.
10231	NextToken *string `min:"1" type:"string"`
10232
10233	// The organization ID.
10234	//
10235	// OrganizationId is a required field
10236	OrganizationId *string `min:"34" type:"string" required:"true"`
10237}
10238
10239// String returns the string representation
10240func (s ListMailboxExportJobsInput) String() string {
10241	return awsutil.Prettify(s)
10242}
10243
10244// GoString returns the string representation
10245func (s ListMailboxExportJobsInput) GoString() string {
10246	return s.String()
10247}
10248
10249// Validate inspects the fields of the type to determine if they are valid.
10250func (s *ListMailboxExportJobsInput) Validate() error {
10251	invalidParams := request.ErrInvalidParams{Context: "ListMailboxExportJobsInput"}
10252	if s.MaxResults != nil && *s.MaxResults < 1 {
10253		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10254	}
10255	if s.NextToken != nil && len(*s.NextToken) < 1 {
10256		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10257	}
10258	if s.OrganizationId == nil {
10259		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
10260	}
10261	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
10262		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
10263	}
10264
10265	if invalidParams.Len() > 0 {
10266		return invalidParams
10267	}
10268	return nil
10269}
10270
10271// SetMaxResults sets the MaxResults field's value.
10272func (s *ListMailboxExportJobsInput) SetMaxResults(v int64) *ListMailboxExportJobsInput {
10273	s.MaxResults = &v
10274	return s
10275}
10276
10277// SetNextToken sets the NextToken field's value.
10278func (s *ListMailboxExportJobsInput) SetNextToken(v string) *ListMailboxExportJobsInput {
10279	s.NextToken = &v
10280	return s
10281}
10282
10283// SetOrganizationId sets the OrganizationId field's value.
10284func (s *ListMailboxExportJobsInput) SetOrganizationId(v string) *ListMailboxExportJobsInput {
10285	s.OrganizationId = &v
10286	return s
10287}
10288
10289type ListMailboxExportJobsOutput struct {
10290	_ struct{} `type:"structure"`
10291
10292	// The mailbox export job details.
10293	Jobs []*MailboxExportJob `type:"list"`
10294
10295	// The token to use to retrieve the next page of results.
10296	NextToken *string `min:"1" type:"string"`
10297}
10298
10299// String returns the string representation
10300func (s ListMailboxExportJobsOutput) String() string {
10301	return awsutil.Prettify(s)
10302}
10303
10304// GoString returns the string representation
10305func (s ListMailboxExportJobsOutput) GoString() string {
10306	return s.String()
10307}
10308
10309// SetJobs sets the Jobs field's value.
10310func (s *ListMailboxExportJobsOutput) SetJobs(v []*MailboxExportJob) *ListMailboxExportJobsOutput {
10311	s.Jobs = v
10312	return s
10313}
10314
10315// SetNextToken sets the NextToken field's value.
10316func (s *ListMailboxExportJobsOutput) SetNextToken(v string) *ListMailboxExportJobsOutput {
10317	s.NextToken = &v
10318	return s
10319}
10320
10321type ListMailboxPermissionsInput struct {
10322	_ struct{} `type:"structure"`
10323
10324	// The identifier of the user, group, or resource for which to list mailbox
10325	// permissions.
10326	//
10327	// EntityId is a required field
10328	EntityId *string `min:"12" type:"string" required:"true"`
10329
10330	// The maximum number of results to return in a single call.
10331	MaxResults *int64 `min:"1" type:"integer"`
10332
10333	// The token to use to retrieve the next page of results. The first call does
10334	// not contain any tokens.
10335	NextToken *string `min:"1" type:"string"`
10336
10337	// The identifier of the organization under which the user, group, or resource
10338	// exists.
10339	//
10340	// OrganizationId is a required field
10341	OrganizationId *string `min:"34" type:"string" required:"true"`
10342}
10343
10344// String returns the string representation
10345func (s ListMailboxPermissionsInput) String() string {
10346	return awsutil.Prettify(s)
10347}
10348
10349// GoString returns the string representation
10350func (s ListMailboxPermissionsInput) GoString() string {
10351	return s.String()
10352}
10353
10354// Validate inspects the fields of the type to determine if they are valid.
10355func (s *ListMailboxPermissionsInput) Validate() error {
10356	invalidParams := request.ErrInvalidParams{Context: "ListMailboxPermissionsInput"}
10357	if s.EntityId == nil {
10358		invalidParams.Add(request.NewErrParamRequired("EntityId"))
10359	}
10360	if s.EntityId != nil && len(*s.EntityId) < 12 {
10361		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
10362	}
10363	if s.MaxResults != nil && *s.MaxResults < 1 {
10364		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10365	}
10366	if s.NextToken != nil && len(*s.NextToken) < 1 {
10367		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10368	}
10369	if s.OrganizationId == nil {
10370		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
10371	}
10372	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
10373		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
10374	}
10375
10376	if invalidParams.Len() > 0 {
10377		return invalidParams
10378	}
10379	return nil
10380}
10381
10382// SetEntityId sets the EntityId field's value.
10383func (s *ListMailboxPermissionsInput) SetEntityId(v string) *ListMailboxPermissionsInput {
10384	s.EntityId = &v
10385	return s
10386}
10387
10388// SetMaxResults sets the MaxResults field's value.
10389func (s *ListMailboxPermissionsInput) SetMaxResults(v int64) *ListMailboxPermissionsInput {
10390	s.MaxResults = &v
10391	return s
10392}
10393
10394// SetNextToken sets the NextToken field's value.
10395func (s *ListMailboxPermissionsInput) SetNextToken(v string) *ListMailboxPermissionsInput {
10396	s.NextToken = &v
10397	return s
10398}
10399
10400// SetOrganizationId sets the OrganizationId field's value.
10401func (s *ListMailboxPermissionsInput) SetOrganizationId(v string) *ListMailboxPermissionsInput {
10402	s.OrganizationId = &v
10403	return s
10404}
10405
10406type ListMailboxPermissionsOutput struct {
10407	_ struct{} `type:"structure"`
10408
10409	// The token to use to retrieve the next page of results. The value is "null"
10410	// when there are no more results to return.
10411	NextToken *string `min:"1" type:"string"`
10412
10413	// One page of the user, group, or resource mailbox permissions.
10414	Permissions []*Permission `type:"list"`
10415}
10416
10417// String returns the string representation
10418func (s ListMailboxPermissionsOutput) String() string {
10419	return awsutil.Prettify(s)
10420}
10421
10422// GoString returns the string representation
10423func (s ListMailboxPermissionsOutput) GoString() string {
10424	return s.String()
10425}
10426
10427// SetNextToken sets the NextToken field's value.
10428func (s *ListMailboxPermissionsOutput) SetNextToken(v string) *ListMailboxPermissionsOutput {
10429	s.NextToken = &v
10430	return s
10431}
10432
10433// SetPermissions sets the Permissions field's value.
10434func (s *ListMailboxPermissionsOutput) SetPermissions(v []*Permission) *ListMailboxPermissionsOutput {
10435	s.Permissions = v
10436	return s
10437}
10438
10439type ListMobileDeviceAccessRulesInput struct {
10440	_ struct{} `type:"structure"`
10441
10442	// The Amazon WorkMail organization for which to list the rules.
10443	//
10444	// OrganizationId is a required field
10445	OrganizationId *string `min:"34" type:"string" required:"true"`
10446}
10447
10448// String returns the string representation
10449func (s ListMobileDeviceAccessRulesInput) String() string {
10450	return awsutil.Prettify(s)
10451}
10452
10453// GoString returns the string representation
10454func (s ListMobileDeviceAccessRulesInput) GoString() string {
10455	return s.String()
10456}
10457
10458// Validate inspects the fields of the type to determine if they are valid.
10459func (s *ListMobileDeviceAccessRulesInput) Validate() error {
10460	invalidParams := request.ErrInvalidParams{Context: "ListMobileDeviceAccessRulesInput"}
10461	if s.OrganizationId == nil {
10462		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
10463	}
10464	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
10465		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
10466	}
10467
10468	if invalidParams.Len() > 0 {
10469		return invalidParams
10470	}
10471	return nil
10472}
10473
10474// SetOrganizationId sets the OrganizationId field's value.
10475func (s *ListMobileDeviceAccessRulesInput) SetOrganizationId(v string) *ListMobileDeviceAccessRulesInput {
10476	s.OrganizationId = &v
10477	return s
10478}
10479
10480type ListMobileDeviceAccessRulesOutput struct {
10481	_ struct{} `type:"structure"`
10482
10483	// The list of mobile device access rules that exist under the specified Amazon
10484	// WorkMail organization.
10485	Rules []*MobileDeviceAccessRule `type:"list"`
10486}
10487
10488// String returns the string representation
10489func (s ListMobileDeviceAccessRulesOutput) String() string {
10490	return awsutil.Prettify(s)
10491}
10492
10493// GoString returns the string representation
10494func (s ListMobileDeviceAccessRulesOutput) GoString() string {
10495	return s.String()
10496}
10497
10498// SetRules sets the Rules field's value.
10499func (s *ListMobileDeviceAccessRulesOutput) SetRules(v []*MobileDeviceAccessRule) *ListMobileDeviceAccessRulesOutput {
10500	s.Rules = v
10501	return s
10502}
10503
10504type ListOrganizationsInput struct {
10505	_ struct{} `type:"structure"`
10506
10507	// The maximum number of results to return in a single call.
10508	MaxResults *int64 `min:"1" type:"integer"`
10509
10510	// The token to use to retrieve the next page of results. The first call does
10511	// not contain any tokens.
10512	NextToken *string `min:"1" type:"string"`
10513}
10514
10515// String returns the string representation
10516func (s ListOrganizationsInput) String() string {
10517	return awsutil.Prettify(s)
10518}
10519
10520// GoString returns the string representation
10521func (s ListOrganizationsInput) GoString() string {
10522	return s.String()
10523}
10524
10525// Validate inspects the fields of the type to determine if they are valid.
10526func (s *ListOrganizationsInput) Validate() error {
10527	invalidParams := request.ErrInvalidParams{Context: "ListOrganizationsInput"}
10528	if s.MaxResults != nil && *s.MaxResults < 1 {
10529		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10530	}
10531	if s.NextToken != nil && len(*s.NextToken) < 1 {
10532		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10533	}
10534
10535	if invalidParams.Len() > 0 {
10536		return invalidParams
10537	}
10538	return nil
10539}
10540
10541// SetMaxResults sets the MaxResults field's value.
10542func (s *ListOrganizationsInput) SetMaxResults(v int64) *ListOrganizationsInput {
10543	s.MaxResults = &v
10544	return s
10545}
10546
10547// SetNextToken sets the NextToken field's value.
10548func (s *ListOrganizationsInput) SetNextToken(v string) *ListOrganizationsInput {
10549	s.NextToken = &v
10550	return s
10551}
10552
10553type ListOrganizationsOutput struct {
10554	_ struct{} `type:"structure"`
10555
10556	// The token to use to retrieve the next page of results. The value is "null"
10557	// when there are no more results to return.
10558	NextToken *string `min:"1" type:"string"`
10559
10560	// The overview of owned organizations presented as a list of organization summaries.
10561	OrganizationSummaries []*OrganizationSummary `type:"list"`
10562}
10563
10564// String returns the string representation
10565func (s ListOrganizationsOutput) String() string {
10566	return awsutil.Prettify(s)
10567}
10568
10569// GoString returns the string representation
10570func (s ListOrganizationsOutput) GoString() string {
10571	return s.String()
10572}
10573
10574// SetNextToken sets the NextToken field's value.
10575func (s *ListOrganizationsOutput) SetNextToken(v string) *ListOrganizationsOutput {
10576	s.NextToken = &v
10577	return s
10578}
10579
10580// SetOrganizationSummaries sets the OrganizationSummaries field's value.
10581func (s *ListOrganizationsOutput) SetOrganizationSummaries(v []*OrganizationSummary) *ListOrganizationsOutput {
10582	s.OrganizationSummaries = v
10583	return s
10584}
10585
10586type ListResourceDelegatesInput struct {
10587	_ struct{} `type:"structure"`
10588
10589	// The number of maximum results in a page.
10590	MaxResults *int64 `min:"1" type:"integer"`
10591
10592	// The token used to paginate through the delegates associated with a resource.
10593	NextToken *string `min:"1" type:"string"`
10594
10595	// The identifier for the organization that contains the resource for which
10596	// delegates are listed.
10597	//
10598	// OrganizationId is a required field
10599	OrganizationId *string `min:"34" type:"string" required:"true"`
10600
10601	// The identifier for the resource whose delegates are listed.
10602	//
10603	// ResourceId is a required field
10604	ResourceId *string `min:"12" type:"string" required:"true"`
10605}
10606
10607// String returns the string representation
10608func (s ListResourceDelegatesInput) String() string {
10609	return awsutil.Prettify(s)
10610}
10611
10612// GoString returns the string representation
10613func (s ListResourceDelegatesInput) GoString() string {
10614	return s.String()
10615}
10616
10617// Validate inspects the fields of the type to determine if they are valid.
10618func (s *ListResourceDelegatesInput) Validate() error {
10619	invalidParams := request.ErrInvalidParams{Context: "ListResourceDelegatesInput"}
10620	if s.MaxResults != nil && *s.MaxResults < 1 {
10621		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10622	}
10623	if s.NextToken != nil && len(*s.NextToken) < 1 {
10624		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10625	}
10626	if s.OrganizationId == nil {
10627		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
10628	}
10629	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
10630		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
10631	}
10632	if s.ResourceId == nil {
10633		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
10634	}
10635	if s.ResourceId != nil && len(*s.ResourceId) < 12 {
10636		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 12))
10637	}
10638
10639	if invalidParams.Len() > 0 {
10640		return invalidParams
10641	}
10642	return nil
10643}
10644
10645// SetMaxResults sets the MaxResults field's value.
10646func (s *ListResourceDelegatesInput) SetMaxResults(v int64) *ListResourceDelegatesInput {
10647	s.MaxResults = &v
10648	return s
10649}
10650
10651// SetNextToken sets the NextToken field's value.
10652func (s *ListResourceDelegatesInput) SetNextToken(v string) *ListResourceDelegatesInput {
10653	s.NextToken = &v
10654	return s
10655}
10656
10657// SetOrganizationId sets the OrganizationId field's value.
10658func (s *ListResourceDelegatesInput) SetOrganizationId(v string) *ListResourceDelegatesInput {
10659	s.OrganizationId = &v
10660	return s
10661}
10662
10663// SetResourceId sets the ResourceId field's value.
10664func (s *ListResourceDelegatesInput) SetResourceId(v string) *ListResourceDelegatesInput {
10665	s.ResourceId = &v
10666	return s
10667}
10668
10669type ListResourceDelegatesOutput struct {
10670	_ struct{} `type:"structure"`
10671
10672	// One page of the resource's delegates.
10673	Delegates []*Delegate `type:"list"`
10674
10675	// The token used to paginate through the delegates associated with a resource.
10676	// While results are still available, it has an associated value. When the last
10677	// page is reached, the token is empty.
10678	NextToken *string `min:"1" type:"string"`
10679}
10680
10681// String returns the string representation
10682func (s ListResourceDelegatesOutput) String() string {
10683	return awsutil.Prettify(s)
10684}
10685
10686// GoString returns the string representation
10687func (s ListResourceDelegatesOutput) GoString() string {
10688	return s.String()
10689}
10690
10691// SetDelegates sets the Delegates field's value.
10692func (s *ListResourceDelegatesOutput) SetDelegates(v []*Delegate) *ListResourceDelegatesOutput {
10693	s.Delegates = v
10694	return s
10695}
10696
10697// SetNextToken sets the NextToken field's value.
10698func (s *ListResourceDelegatesOutput) SetNextToken(v string) *ListResourceDelegatesOutput {
10699	s.NextToken = &v
10700	return s
10701}
10702
10703type ListResourcesInput struct {
10704	_ struct{} `type:"structure"`
10705
10706	// The maximum number of results to return in a single call.
10707	MaxResults *int64 `min:"1" type:"integer"`
10708
10709	// The token to use to retrieve the next page of results. The first call does
10710	// not contain any tokens.
10711	NextToken *string `min:"1" type:"string"`
10712
10713	// The identifier for the organization under which the resources exist.
10714	//
10715	// OrganizationId is a required field
10716	OrganizationId *string `min:"34" type:"string" required:"true"`
10717}
10718
10719// String returns the string representation
10720func (s ListResourcesInput) String() string {
10721	return awsutil.Prettify(s)
10722}
10723
10724// GoString returns the string representation
10725func (s ListResourcesInput) GoString() string {
10726	return s.String()
10727}
10728
10729// Validate inspects the fields of the type to determine if they are valid.
10730func (s *ListResourcesInput) Validate() error {
10731	invalidParams := request.ErrInvalidParams{Context: "ListResourcesInput"}
10732	if s.MaxResults != nil && *s.MaxResults < 1 {
10733		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10734	}
10735	if s.NextToken != nil && len(*s.NextToken) < 1 {
10736		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10737	}
10738	if s.OrganizationId == nil {
10739		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
10740	}
10741	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
10742		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
10743	}
10744
10745	if invalidParams.Len() > 0 {
10746		return invalidParams
10747	}
10748	return nil
10749}
10750
10751// SetMaxResults sets the MaxResults field's value.
10752func (s *ListResourcesInput) SetMaxResults(v int64) *ListResourcesInput {
10753	s.MaxResults = &v
10754	return s
10755}
10756
10757// SetNextToken sets the NextToken field's value.
10758func (s *ListResourcesInput) SetNextToken(v string) *ListResourcesInput {
10759	s.NextToken = &v
10760	return s
10761}
10762
10763// SetOrganizationId sets the OrganizationId field's value.
10764func (s *ListResourcesInput) SetOrganizationId(v string) *ListResourcesInput {
10765	s.OrganizationId = &v
10766	return s
10767}
10768
10769type ListResourcesOutput struct {
10770	_ struct{} `type:"structure"`
10771
10772	// The token used to paginate through all the organization's resources. While
10773	// results are still available, it has an associated value. When the last page
10774	// is reached, the token is empty.
10775	NextToken *string `min:"1" type:"string"`
10776
10777	// One page of the organization's resource representation.
10778	Resources []*Resource `type:"list"`
10779}
10780
10781// String returns the string representation
10782func (s ListResourcesOutput) String() string {
10783	return awsutil.Prettify(s)
10784}
10785
10786// GoString returns the string representation
10787func (s ListResourcesOutput) GoString() string {
10788	return s.String()
10789}
10790
10791// SetNextToken sets the NextToken field's value.
10792func (s *ListResourcesOutput) SetNextToken(v string) *ListResourcesOutput {
10793	s.NextToken = &v
10794	return s
10795}
10796
10797// SetResources sets the Resources field's value.
10798func (s *ListResourcesOutput) SetResources(v []*Resource) *ListResourcesOutput {
10799	s.Resources = v
10800	return s
10801}
10802
10803type ListTagsForResourceInput struct {
10804	_ struct{} `type:"structure"`
10805
10806	// The resource ARN.
10807	//
10808	// ResourceARN is a required field
10809	ResourceARN *string `min:"1" type:"string" required:"true"`
10810}
10811
10812// String returns the string representation
10813func (s ListTagsForResourceInput) String() string {
10814	return awsutil.Prettify(s)
10815}
10816
10817// GoString returns the string representation
10818func (s ListTagsForResourceInput) GoString() string {
10819	return s.String()
10820}
10821
10822// Validate inspects the fields of the type to determine if they are valid.
10823func (s *ListTagsForResourceInput) Validate() error {
10824	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
10825	if s.ResourceARN == nil {
10826		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
10827	}
10828	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
10829		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
10830	}
10831
10832	if invalidParams.Len() > 0 {
10833		return invalidParams
10834	}
10835	return nil
10836}
10837
10838// SetResourceARN sets the ResourceARN field's value.
10839func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
10840	s.ResourceARN = &v
10841	return s
10842}
10843
10844type ListTagsForResourceOutput struct {
10845	_ struct{} `type:"structure"`
10846
10847	// A list of tag key-value pairs.
10848	Tags []*Tag `type:"list"`
10849}
10850
10851// String returns the string representation
10852func (s ListTagsForResourceOutput) String() string {
10853	return awsutil.Prettify(s)
10854}
10855
10856// GoString returns the string representation
10857func (s ListTagsForResourceOutput) GoString() string {
10858	return s.String()
10859}
10860
10861// SetTags sets the Tags field's value.
10862func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
10863	s.Tags = v
10864	return s
10865}
10866
10867type ListUsersInput struct {
10868	_ struct{} `type:"structure"`
10869
10870	// The maximum number of results to return in a single call.
10871	MaxResults *int64 `min:"1" type:"integer"`
10872
10873	// The token to use to retrieve the next page of results. The first call does
10874	// not contain any tokens.
10875	NextToken *string `min:"1" type:"string"`
10876
10877	// The identifier for the organization under which the users exist.
10878	//
10879	// OrganizationId is a required field
10880	OrganizationId *string `min:"34" type:"string" required:"true"`
10881}
10882
10883// String returns the string representation
10884func (s ListUsersInput) String() string {
10885	return awsutil.Prettify(s)
10886}
10887
10888// GoString returns the string representation
10889func (s ListUsersInput) GoString() string {
10890	return s.String()
10891}
10892
10893// Validate inspects the fields of the type to determine if they are valid.
10894func (s *ListUsersInput) Validate() error {
10895	invalidParams := request.ErrInvalidParams{Context: "ListUsersInput"}
10896	if s.MaxResults != nil && *s.MaxResults < 1 {
10897		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
10898	}
10899	if s.NextToken != nil && len(*s.NextToken) < 1 {
10900		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
10901	}
10902	if s.OrganizationId == nil {
10903		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
10904	}
10905	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
10906		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
10907	}
10908
10909	if invalidParams.Len() > 0 {
10910		return invalidParams
10911	}
10912	return nil
10913}
10914
10915// SetMaxResults sets the MaxResults field's value.
10916func (s *ListUsersInput) SetMaxResults(v int64) *ListUsersInput {
10917	s.MaxResults = &v
10918	return s
10919}
10920
10921// SetNextToken sets the NextToken field's value.
10922func (s *ListUsersInput) SetNextToken(v string) *ListUsersInput {
10923	s.NextToken = &v
10924	return s
10925}
10926
10927// SetOrganizationId sets the OrganizationId field's value.
10928func (s *ListUsersInput) SetOrganizationId(v string) *ListUsersInput {
10929	s.OrganizationId = &v
10930	return s
10931}
10932
10933type ListUsersOutput struct {
10934	_ struct{} `type:"structure"`
10935
10936	// The token to use to retrieve the next page of results. This value is `null`
10937	// when there are no more results to return.
10938	NextToken *string `min:"1" type:"string"`
10939
10940	// The overview of users for an organization.
10941	Users []*User `type:"list"`
10942}
10943
10944// String returns the string representation
10945func (s ListUsersOutput) String() string {
10946	return awsutil.Prettify(s)
10947}
10948
10949// GoString returns the string representation
10950func (s ListUsersOutput) GoString() string {
10951	return s.String()
10952}
10953
10954// SetNextToken sets the NextToken field's value.
10955func (s *ListUsersOutput) SetNextToken(v string) *ListUsersOutput {
10956	s.NextToken = &v
10957	return s
10958}
10959
10960// SetUsers sets the Users field's value.
10961func (s *ListUsersOutput) SetUsers(v []*User) *ListUsersOutput {
10962	s.Users = v
10963	return s
10964}
10965
10966// For an email or alias to be created in Amazon WorkMail, the included domain
10967// must be defined in the organization.
10968type MailDomainNotFoundException struct {
10969	_            struct{}                  `type:"structure"`
10970	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10971
10972	Message_ *string `locationName:"Message" type:"string"`
10973}
10974
10975// String returns the string representation
10976func (s MailDomainNotFoundException) String() string {
10977	return awsutil.Prettify(s)
10978}
10979
10980// GoString returns the string representation
10981func (s MailDomainNotFoundException) GoString() string {
10982	return s.String()
10983}
10984
10985func newErrorMailDomainNotFoundException(v protocol.ResponseMetadata) error {
10986	return &MailDomainNotFoundException{
10987		RespMetadata: v,
10988	}
10989}
10990
10991// Code returns the exception type name.
10992func (s *MailDomainNotFoundException) Code() string {
10993	return "MailDomainNotFoundException"
10994}
10995
10996// Message returns the exception's message.
10997func (s *MailDomainNotFoundException) Message() string {
10998	if s.Message_ != nil {
10999		return *s.Message_
11000	}
11001	return ""
11002}
11003
11004// OrigErr always returns nil, satisfies awserr.Error interface.
11005func (s *MailDomainNotFoundException) OrigErr() error {
11006	return nil
11007}
11008
11009func (s *MailDomainNotFoundException) Error() string {
11010	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11011}
11012
11013// Status code returns the HTTP status code for the request's response error.
11014func (s *MailDomainNotFoundException) StatusCode() int {
11015	return s.RespMetadata.StatusCode
11016}
11017
11018// RequestID returns the service's response RequestID for request.
11019func (s *MailDomainNotFoundException) RequestID() string {
11020	return s.RespMetadata.RequestID
11021}
11022
11023// After a domain has been added to the organization, it must be verified. The
11024// domain is not yet verified.
11025type MailDomainStateException struct {
11026	_            struct{}                  `type:"structure"`
11027	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11028
11029	Message_ *string `locationName:"Message" type:"string"`
11030}
11031
11032// String returns the string representation
11033func (s MailDomainStateException) String() string {
11034	return awsutil.Prettify(s)
11035}
11036
11037// GoString returns the string representation
11038func (s MailDomainStateException) GoString() string {
11039	return s.String()
11040}
11041
11042func newErrorMailDomainStateException(v protocol.ResponseMetadata) error {
11043	return &MailDomainStateException{
11044		RespMetadata: v,
11045	}
11046}
11047
11048// Code returns the exception type name.
11049func (s *MailDomainStateException) Code() string {
11050	return "MailDomainStateException"
11051}
11052
11053// Message returns the exception's message.
11054func (s *MailDomainStateException) Message() string {
11055	if s.Message_ != nil {
11056		return *s.Message_
11057	}
11058	return ""
11059}
11060
11061// OrigErr always returns nil, satisfies awserr.Error interface.
11062func (s *MailDomainStateException) OrigErr() error {
11063	return nil
11064}
11065
11066func (s *MailDomainStateException) Error() string {
11067	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11068}
11069
11070// Status code returns the HTTP status code for the request's response error.
11071func (s *MailDomainStateException) StatusCode() int {
11072	return s.RespMetadata.StatusCode
11073}
11074
11075// RequestID returns the service's response RequestID for request.
11076func (s *MailDomainStateException) RequestID() string {
11077	return s.RespMetadata.RequestID
11078}
11079
11080// The details of a mailbox export job, including the user or resource ID associated
11081// with the mailbox and the S3 bucket that the mailbox contents are exported
11082// to.
11083type MailboxExportJob struct {
11084	_ struct{} `type:"structure"`
11085
11086	// The mailbox export job description.
11087	Description *string `type:"string"`
11088
11089	// The mailbox export job end timestamp.
11090	EndTime *time.Time `type:"timestamp"`
11091
11092	// The identifier of the user or resource associated with the mailbox.
11093	EntityId *string `min:"12" type:"string"`
11094
11095	// The estimated progress of the mailbox export job, in percentage points.
11096	EstimatedProgress *int64 `type:"integer"`
11097
11098	// The identifier of the mailbox export job.
11099	JobId *string `min:"1" type:"string"`
11100
11101	// The name of the S3 bucket.
11102	S3BucketName *string `min:"1" type:"string"`
11103
11104	// The path to the S3 bucket and file that the mailbox export job exports to.
11105	S3Path *string `min:"1" type:"string"`
11106
11107	// The mailbox export job start timestamp.
11108	StartTime *time.Time `type:"timestamp"`
11109
11110	// The state of the mailbox export job.
11111	State *string `type:"string" enum:"MailboxExportJobState"`
11112}
11113
11114// String returns the string representation
11115func (s MailboxExportJob) String() string {
11116	return awsutil.Prettify(s)
11117}
11118
11119// GoString returns the string representation
11120func (s MailboxExportJob) GoString() string {
11121	return s.String()
11122}
11123
11124// SetDescription sets the Description field's value.
11125func (s *MailboxExportJob) SetDescription(v string) *MailboxExportJob {
11126	s.Description = &v
11127	return s
11128}
11129
11130// SetEndTime sets the EndTime field's value.
11131func (s *MailboxExportJob) SetEndTime(v time.Time) *MailboxExportJob {
11132	s.EndTime = &v
11133	return s
11134}
11135
11136// SetEntityId sets the EntityId field's value.
11137func (s *MailboxExportJob) SetEntityId(v string) *MailboxExportJob {
11138	s.EntityId = &v
11139	return s
11140}
11141
11142// SetEstimatedProgress sets the EstimatedProgress field's value.
11143func (s *MailboxExportJob) SetEstimatedProgress(v int64) *MailboxExportJob {
11144	s.EstimatedProgress = &v
11145	return s
11146}
11147
11148// SetJobId sets the JobId field's value.
11149func (s *MailboxExportJob) SetJobId(v string) *MailboxExportJob {
11150	s.JobId = &v
11151	return s
11152}
11153
11154// SetS3BucketName sets the S3BucketName field's value.
11155func (s *MailboxExportJob) SetS3BucketName(v string) *MailboxExportJob {
11156	s.S3BucketName = &v
11157	return s
11158}
11159
11160// SetS3Path sets the S3Path field's value.
11161func (s *MailboxExportJob) SetS3Path(v string) *MailboxExportJob {
11162	s.S3Path = &v
11163	return s
11164}
11165
11166// SetStartTime sets the StartTime field's value.
11167func (s *MailboxExportJob) SetStartTime(v time.Time) *MailboxExportJob {
11168	s.StartTime = &v
11169	return s
11170}
11171
11172// SetState sets the State field's value.
11173func (s *MailboxExportJob) SetState(v string) *MailboxExportJob {
11174	s.State = &v
11175	return s
11176}
11177
11178// The representation of a user or group.
11179type Member struct {
11180	_ struct{} `type:"structure"`
11181
11182	// The date indicating when the member was disabled from Amazon WorkMail use.
11183	DisabledDate *time.Time `type:"timestamp"`
11184
11185	// The date indicating when the member was enabled for Amazon WorkMail use.
11186	EnabledDate *time.Time `type:"timestamp"`
11187
11188	// The identifier of the member.
11189	Id *string `type:"string"`
11190
11191	// The name of the member.
11192	Name *string `type:"string"`
11193
11194	// The state of the member, which can be ENABLED, DISABLED, or DELETED.
11195	State *string `type:"string" enum:"EntityState"`
11196
11197	// A member can be a user or group.
11198	Type *string `type:"string" enum:"MemberType"`
11199}
11200
11201// String returns the string representation
11202func (s Member) String() string {
11203	return awsutil.Prettify(s)
11204}
11205
11206// GoString returns the string representation
11207func (s Member) GoString() string {
11208	return s.String()
11209}
11210
11211// SetDisabledDate sets the DisabledDate field's value.
11212func (s *Member) SetDisabledDate(v time.Time) *Member {
11213	s.DisabledDate = &v
11214	return s
11215}
11216
11217// SetEnabledDate sets the EnabledDate field's value.
11218func (s *Member) SetEnabledDate(v time.Time) *Member {
11219	s.EnabledDate = &v
11220	return s
11221}
11222
11223// SetId sets the Id field's value.
11224func (s *Member) SetId(v string) *Member {
11225	s.Id = &v
11226	return s
11227}
11228
11229// SetName sets the Name field's value.
11230func (s *Member) SetName(v string) *Member {
11231	s.Name = &v
11232	return s
11233}
11234
11235// SetState sets the State field's value.
11236func (s *Member) SetState(v string) *Member {
11237	s.State = &v
11238	return s
11239}
11240
11241// SetType sets the Type field's value.
11242func (s *Member) SetType(v string) *Member {
11243	s.Type = &v
11244	return s
11245}
11246
11247// The rule that a simulated user matches.
11248type MobileDeviceAccessMatchedRule struct {
11249	_ struct{} `type:"structure"`
11250
11251	// Identifier of the rule that a simulated user matches.
11252	MobileDeviceAccessRuleId *string `min:"1" type:"string"`
11253
11254	// Name of a rule that a simulated user matches.
11255	Name *string `min:"1" type:"string"`
11256}
11257
11258// String returns the string representation
11259func (s MobileDeviceAccessMatchedRule) String() string {
11260	return awsutil.Prettify(s)
11261}
11262
11263// GoString returns the string representation
11264func (s MobileDeviceAccessMatchedRule) GoString() string {
11265	return s.String()
11266}
11267
11268// SetMobileDeviceAccessRuleId sets the MobileDeviceAccessRuleId field's value.
11269func (s *MobileDeviceAccessMatchedRule) SetMobileDeviceAccessRuleId(v string) *MobileDeviceAccessMatchedRule {
11270	s.MobileDeviceAccessRuleId = &v
11271	return s
11272}
11273
11274// SetName sets the Name field's value.
11275func (s *MobileDeviceAccessMatchedRule) SetName(v string) *MobileDeviceAccessMatchedRule {
11276	s.Name = &v
11277	return s
11278}
11279
11280// A rule that controls access to mobile devices for an Amazon WorkMail group.
11281type MobileDeviceAccessRule struct {
11282	_ struct{} `type:"structure"`
11283
11284	// The date and time at which an access rule was created.
11285	DateCreated *time.Time `type:"timestamp"`
11286
11287	// The date and time at which an access rule was modified.
11288	DateModified *time.Time `type:"timestamp"`
11289
11290	// The description of a mobile access rule.
11291	Description *string `min:"1" type:"string"`
11292
11293	// Device models that a rule will match.
11294	DeviceModels []*string `min:"1" type:"list"`
11295
11296	// Device operating systems that a rule will match.
11297	DeviceOperatingSystems []*string `min:"1" type:"list"`
11298
11299	// Device types that a rule will match.
11300	DeviceTypes []*string `min:"1" type:"list"`
11301
11302	// Device user agents that a rule will match.
11303	DeviceUserAgents []*string `min:"1" type:"list"`
11304
11305	// The effect of the rule when it matches. Allowed values are ALLOW or DENY.
11306	Effect *string `type:"string" enum:"MobileDeviceAccessRuleEffect"`
11307
11308	// The ID assigned to a mobile access rule.
11309	MobileDeviceAccessRuleId *string `min:"1" type:"string"`
11310
11311	// The name of a mobile access rule.
11312	Name *string `min:"1" type:"string"`
11313
11314	// Device models that a rule will not match. All other device models will match.
11315	NotDeviceModels []*string `min:"1" type:"list"`
11316
11317	// Device operating systems that a rule will not match. All other device types
11318	// will match.
11319	NotDeviceOperatingSystems []*string `min:"1" type:"list"`
11320
11321	// Device types that a rule will not match. All other device types will match.
11322	NotDeviceTypes []*string `min:"1" type:"list"`
11323
11324	// Device user agents that a rule will not match. All other device user agents
11325	// will match.
11326	NotDeviceUserAgents []*string `min:"1" type:"list"`
11327}
11328
11329// String returns the string representation
11330func (s MobileDeviceAccessRule) String() string {
11331	return awsutil.Prettify(s)
11332}
11333
11334// GoString returns the string representation
11335func (s MobileDeviceAccessRule) GoString() string {
11336	return s.String()
11337}
11338
11339// SetDateCreated sets the DateCreated field's value.
11340func (s *MobileDeviceAccessRule) SetDateCreated(v time.Time) *MobileDeviceAccessRule {
11341	s.DateCreated = &v
11342	return s
11343}
11344
11345// SetDateModified sets the DateModified field's value.
11346func (s *MobileDeviceAccessRule) SetDateModified(v time.Time) *MobileDeviceAccessRule {
11347	s.DateModified = &v
11348	return s
11349}
11350
11351// SetDescription sets the Description field's value.
11352func (s *MobileDeviceAccessRule) SetDescription(v string) *MobileDeviceAccessRule {
11353	s.Description = &v
11354	return s
11355}
11356
11357// SetDeviceModels sets the DeviceModels field's value.
11358func (s *MobileDeviceAccessRule) SetDeviceModels(v []*string) *MobileDeviceAccessRule {
11359	s.DeviceModels = v
11360	return s
11361}
11362
11363// SetDeviceOperatingSystems sets the DeviceOperatingSystems field's value.
11364func (s *MobileDeviceAccessRule) SetDeviceOperatingSystems(v []*string) *MobileDeviceAccessRule {
11365	s.DeviceOperatingSystems = v
11366	return s
11367}
11368
11369// SetDeviceTypes sets the DeviceTypes field's value.
11370func (s *MobileDeviceAccessRule) SetDeviceTypes(v []*string) *MobileDeviceAccessRule {
11371	s.DeviceTypes = v
11372	return s
11373}
11374
11375// SetDeviceUserAgents sets the DeviceUserAgents field's value.
11376func (s *MobileDeviceAccessRule) SetDeviceUserAgents(v []*string) *MobileDeviceAccessRule {
11377	s.DeviceUserAgents = v
11378	return s
11379}
11380
11381// SetEffect sets the Effect field's value.
11382func (s *MobileDeviceAccessRule) SetEffect(v string) *MobileDeviceAccessRule {
11383	s.Effect = &v
11384	return s
11385}
11386
11387// SetMobileDeviceAccessRuleId sets the MobileDeviceAccessRuleId field's value.
11388func (s *MobileDeviceAccessRule) SetMobileDeviceAccessRuleId(v string) *MobileDeviceAccessRule {
11389	s.MobileDeviceAccessRuleId = &v
11390	return s
11391}
11392
11393// SetName sets the Name field's value.
11394func (s *MobileDeviceAccessRule) SetName(v string) *MobileDeviceAccessRule {
11395	s.Name = &v
11396	return s
11397}
11398
11399// SetNotDeviceModels sets the NotDeviceModels field's value.
11400func (s *MobileDeviceAccessRule) SetNotDeviceModels(v []*string) *MobileDeviceAccessRule {
11401	s.NotDeviceModels = v
11402	return s
11403}
11404
11405// SetNotDeviceOperatingSystems sets the NotDeviceOperatingSystems field's value.
11406func (s *MobileDeviceAccessRule) SetNotDeviceOperatingSystems(v []*string) *MobileDeviceAccessRule {
11407	s.NotDeviceOperatingSystems = v
11408	return s
11409}
11410
11411// SetNotDeviceTypes sets the NotDeviceTypes field's value.
11412func (s *MobileDeviceAccessRule) SetNotDeviceTypes(v []*string) *MobileDeviceAccessRule {
11413	s.NotDeviceTypes = v
11414	return s
11415}
11416
11417// SetNotDeviceUserAgents sets the NotDeviceUserAgents field's value.
11418func (s *MobileDeviceAccessRule) SetNotDeviceUserAgents(v []*string) *MobileDeviceAccessRule {
11419	s.NotDeviceUserAgents = v
11420	return s
11421}
11422
11423// The user, group, or resource name isn't unique in Amazon WorkMail.
11424type NameAvailabilityException struct {
11425	_            struct{}                  `type:"structure"`
11426	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11427
11428	Message_ *string `locationName:"Message" type:"string"`
11429}
11430
11431// String returns the string representation
11432func (s NameAvailabilityException) String() string {
11433	return awsutil.Prettify(s)
11434}
11435
11436// GoString returns the string representation
11437func (s NameAvailabilityException) GoString() string {
11438	return s.String()
11439}
11440
11441func newErrorNameAvailabilityException(v protocol.ResponseMetadata) error {
11442	return &NameAvailabilityException{
11443		RespMetadata: v,
11444	}
11445}
11446
11447// Code returns the exception type name.
11448func (s *NameAvailabilityException) Code() string {
11449	return "NameAvailabilityException"
11450}
11451
11452// Message returns the exception's message.
11453func (s *NameAvailabilityException) Message() string {
11454	if s.Message_ != nil {
11455		return *s.Message_
11456	}
11457	return ""
11458}
11459
11460// OrigErr always returns nil, satisfies awserr.Error interface.
11461func (s *NameAvailabilityException) OrigErr() error {
11462	return nil
11463}
11464
11465func (s *NameAvailabilityException) Error() string {
11466	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11467}
11468
11469// Status code returns the HTTP status code for the request's response error.
11470func (s *NameAvailabilityException) StatusCode() int {
11471	return s.RespMetadata.StatusCode
11472}
11473
11474// RequestID returns the service's response RequestID for request.
11475func (s *NameAvailabilityException) RequestID() string {
11476	return s.RespMetadata.RequestID
11477}
11478
11479// An operation received a valid organization identifier that either doesn't
11480// belong or exist in the system.
11481type OrganizationNotFoundException struct {
11482	_            struct{}                  `type:"structure"`
11483	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11484
11485	Message_ *string `locationName:"Message" type:"string"`
11486}
11487
11488// String returns the string representation
11489func (s OrganizationNotFoundException) String() string {
11490	return awsutil.Prettify(s)
11491}
11492
11493// GoString returns the string representation
11494func (s OrganizationNotFoundException) GoString() string {
11495	return s.String()
11496}
11497
11498func newErrorOrganizationNotFoundException(v protocol.ResponseMetadata) error {
11499	return &OrganizationNotFoundException{
11500		RespMetadata: v,
11501	}
11502}
11503
11504// Code returns the exception type name.
11505func (s *OrganizationNotFoundException) Code() string {
11506	return "OrganizationNotFoundException"
11507}
11508
11509// Message returns the exception's message.
11510func (s *OrganizationNotFoundException) Message() string {
11511	if s.Message_ != nil {
11512		return *s.Message_
11513	}
11514	return ""
11515}
11516
11517// OrigErr always returns nil, satisfies awserr.Error interface.
11518func (s *OrganizationNotFoundException) OrigErr() error {
11519	return nil
11520}
11521
11522func (s *OrganizationNotFoundException) Error() string {
11523	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11524}
11525
11526// Status code returns the HTTP status code for the request's response error.
11527func (s *OrganizationNotFoundException) StatusCode() int {
11528	return s.RespMetadata.StatusCode
11529}
11530
11531// RequestID returns the service's response RequestID for request.
11532func (s *OrganizationNotFoundException) RequestID() string {
11533	return s.RespMetadata.RequestID
11534}
11535
11536// The organization must have a valid state to perform certain operations on
11537// the organization or its members.
11538type OrganizationStateException struct {
11539	_            struct{}                  `type:"structure"`
11540	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11541
11542	Message_ *string `locationName:"Message" type:"string"`
11543}
11544
11545// String returns the string representation
11546func (s OrganizationStateException) String() string {
11547	return awsutil.Prettify(s)
11548}
11549
11550// GoString returns the string representation
11551func (s OrganizationStateException) GoString() string {
11552	return s.String()
11553}
11554
11555func newErrorOrganizationStateException(v protocol.ResponseMetadata) error {
11556	return &OrganizationStateException{
11557		RespMetadata: v,
11558	}
11559}
11560
11561// Code returns the exception type name.
11562func (s *OrganizationStateException) Code() string {
11563	return "OrganizationStateException"
11564}
11565
11566// Message returns the exception's message.
11567func (s *OrganizationStateException) Message() string {
11568	if s.Message_ != nil {
11569		return *s.Message_
11570	}
11571	return ""
11572}
11573
11574// OrigErr always returns nil, satisfies awserr.Error interface.
11575func (s *OrganizationStateException) OrigErr() error {
11576	return nil
11577}
11578
11579func (s *OrganizationStateException) Error() string {
11580	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11581}
11582
11583// Status code returns the HTTP status code for the request's response error.
11584func (s *OrganizationStateException) StatusCode() int {
11585	return s.RespMetadata.StatusCode
11586}
11587
11588// RequestID returns the service's response RequestID for request.
11589func (s *OrganizationStateException) RequestID() string {
11590	return s.RespMetadata.RequestID
11591}
11592
11593// The representation of an organization.
11594type OrganizationSummary struct {
11595	_ struct{} `type:"structure"`
11596
11597	// The alias associated with the organization.
11598	Alias *string `min:"1" type:"string"`
11599
11600	// The default email domain associated with the organization.
11601	DefaultMailDomain *string `min:"3" type:"string"`
11602
11603	// The error message associated with the organization. It is only present if
11604	// unexpected behavior has occurred with regards to the organization. It provides
11605	// insight or solutions regarding unexpected behavior.
11606	ErrorMessage *string `type:"string"`
11607
11608	// The identifier associated with the organization.
11609	OrganizationId *string `min:"34" type:"string"`
11610
11611	// The state associated with the organization.
11612	State *string `type:"string"`
11613}
11614
11615// String returns the string representation
11616func (s OrganizationSummary) String() string {
11617	return awsutil.Prettify(s)
11618}
11619
11620// GoString returns the string representation
11621func (s OrganizationSummary) GoString() string {
11622	return s.String()
11623}
11624
11625// SetAlias sets the Alias field's value.
11626func (s *OrganizationSummary) SetAlias(v string) *OrganizationSummary {
11627	s.Alias = &v
11628	return s
11629}
11630
11631// SetDefaultMailDomain sets the DefaultMailDomain field's value.
11632func (s *OrganizationSummary) SetDefaultMailDomain(v string) *OrganizationSummary {
11633	s.DefaultMailDomain = &v
11634	return s
11635}
11636
11637// SetErrorMessage sets the ErrorMessage field's value.
11638func (s *OrganizationSummary) SetErrorMessage(v string) *OrganizationSummary {
11639	s.ErrorMessage = &v
11640	return s
11641}
11642
11643// SetOrganizationId sets the OrganizationId field's value.
11644func (s *OrganizationSummary) SetOrganizationId(v string) *OrganizationSummary {
11645	s.OrganizationId = &v
11646	return s
11647}
11648
11649// SetState sets the State field's value.
11650func (s *OrganizationSummary) SetState(v string) *OrganizationSummary {
11651	s.State = &v
11652	return s
11653}
11654
11655// Permission granted to a user, group, or resource to access a certain aspect
11656// of another user, group, or resource mailbox.
11657type Permission struct {
11658	_ struct{} `type:"structure"`
11659
11660	// The identifier of the user, group, or resource to which the permissions are
11661	// granted.
11662	//
11663	// GranteeId is a required field
11664	GranteeId *string `min:"12" type:"string" required:"true"`
11665
11666	// The type of user, group, or resource referred to in GranteeId.
11667	//
11668	// GranteeType is a required field
11669	GranteeType *string `type:"string" required:"true" enum:"MemberType"`
11670
11671	// The permissions granted to the grantee. SEND_AS allows the grantee to send
11672	// email as the owner of the mailbox (the grantee is not mentioned on these
11673	// emails). SEND_ON_BEHALF allows the grantee to send email on behalf of the
11674	// owner of the mailbox (the grantee is not mentioned as the physical sender
11675	// of these emails). FULL_ACCESS allows the grantee full access to the mailbox,
11676	// irrespective of other folder-level permissions set on the mailbox.
11677	//
11678	// PermissionValues is a required field
11679	PermissionValues []*string `type:"list" required:"true"`
11680}
11681
11682// String returns the string representation
11683func (s Permission) String() string {
11684	return awsutil.Prettify(s)
11685}
11686
11687// GoString returns the string representation
11688func (s Permission) GoString() string {
11689	return s.String()
11690}
11691
11692// SetGranteeId sets the GranteeId field's value.
11693func (s *Permission) SetGranteeId(v string) *Permission {
11694	s.GranteeId = &v
11695	return s
11696}
11697
11698// SetGranteeType sets the GranteeType field's value.
11699func (s *Permission) SetGranteeType(v string) *Permission {
11700	s.GranteeType = &v
11701	return s
11702}
11703
11704// SetPermissionValues sets the PermissionValues field's value.
11705func (s *Permission) SetPermissionValues(v []*string) *Permission {
11706	s.PermissionValues = v
11707	return s
11708}
11709
11710type PutAccessControlRuleInput struct {
11711	_ struct{} `type:"structure"`
11712
11713	// Access protocol actions to include in the rule. Valid values include ActiveSync,
11714	// AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.
11715	Actions []*string `type:"list"`
11716
11717	// The rule description.
11718	//
11719	// Description is a required field
11720	Description *string `type:"string" required:"true"`
11721
11722	// The rule effect.
11723	//
11724	// Effect is a required field
11725	Effect *string `type:"string" required:"true" enum:"AccessControlRuleEffect"`
11726
11727	// IPv4 CIDR ranges to include in the rule.
11728	IpRanges []*string `type:"list"`
11729
11730	// The rule name.
11731	//
11732	// Name is a required field
11733	Name *string `min:"1" type:"string" required:"true"`
11734
11735	// Access protocol actions to exclude from the rule. Valid values include ActiveSync,
11736	// AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.
11737	NotActions []*string `type:"list"`
11738
11739	// IPv4 CIDR ranges to exclude from the rule.
11740	NotIpRanges []*string `type:"list"`
11741
11742	// User IDs to exclude from the rule.
11743	NotUserIds []*string `type:"list"`
11744
11745	// The identifier of the organization.
11746	//
11747	// OrganizationId is a required field
11748	OrganizationId *string `min:"34" type:"string" required:"true"`
11749
11750	// User IDs to include in the rule.
11751	UserIds []*string `type:"list"`
11752}
11753
11754// String returns the string representation
11755func (s PutAccessControlRuleInput) String() string {
11756	return awsutil.Prettify(s)
11757}
11758
11759// GoString returns the string representation
11760func (s PutAccessControlRuleInput) GoString() string {
11761	return s.String()
11762}
11763
11764// Validate inspects the fields of the type to determine if they are valid.
11765func (s *PutAccessControlRuleInput) Validate() error {
11766	invalidParams := request.ErrInvalidParams{Context: "PutAccessControlRuleInput"}
11767	if s.Description == nil {
11768		invalidParams.Add(request.NewErrParamRequired("Description"))
11769	}
11770	if s.Effect == nil {
11771		invalidParams.Add(request.NewErrParamRequired("Effect"))
11772	}
11773	if s.Name == nil {
11774		invalidParams.Add(request.NewErrParamRequired("Name"))
11775	}
11776	if s.Name != nil && len(*s.Name) < 1 {
11777		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
11778	}
11779	if s.OrganizationId == nil {
11780		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
11781	}
11782	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
11783		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
11784	}
11785
11786	if invalidParams.Len() > 0 {
11787		return invalidParams
11788	}
11789	return nil
11790}
11791
11792// SetActions sets the Actions field's value.
11793func (s *PutAccessControlRuleInput) SetActions(v []*string) *PutAccessControlRuleInput {
11794	s.Actions = v
11795	return s
11796}
11797
11798// SetDescription sets the Description field's value.
11799func (s *PutAccessControlRuleInput) SetDescription(v string) *PutAccessControlRuleInput {
11800	s.Description = &v
11801	return s
11802}
11803
11804// SetEffect sets the Effect field's value.
11805func (s *PutAccessControlRuleInput) SetEffect(v string) *PutAccessControlRuleInput {
11806	s.Effect = &v
11807	return s
11808}
11809
11810// SetIpRanges sets the IpRanges field's value.
11811func (s *PutAccessControlRuleInput) SetIpRanges(v []*string) *PutAccessControlRuleInput {
11812	s.IpRanges = v
11813	return s
11814}
11815
11816// SetName sets the Name field's value.
11817func (s *PutAccessControlRuleInput) SetName(v string) *PutAccessControlRuleInput {
11818	s.Name = &v
11819	return s
11820}
11821
11822// SetNotActions sets the NotActions field's value.
11823func (s *PutAccessControlRuleInput) SetNotActions(v []*string) *PutAccessControlRuleInput {
11824	s.NotActions = v
11825	return s
11826}
11827
11828// SetNotIpRanges sets the NotIpRanges field's value.
11829func (s *PutAccessControlRuleInput) SetNotIpRanges(v []*string) *PutAccessControlRuleInput {
11830	s.NotIpRanges = v
11831	return s
11832}
11833
11834// SetNotUserIds sets the NotUserIds field's value.
11835func (s *PutAccessControlRuleInput) SetNotUserIds(v []*string) *PutAccessControlRuleInput {
11836	s.NotUserIds = v
11837	return s
11838}
11839
11840// SetOrganizationId sets the OrganizationId field's value.
11841func (s *PutAccessControlRuleInput) SetOrganizationId(v string) *PutAccessControlRuleInput {
11842	s.OrganizationId = &v
11843	return s
11844}
11845
11846// SetUserIds sets the UserIds field's value.
11847func (s *PutAccessControlRuleInput) SetUserIds(v []*string) *PutAccessControlRuleInput {
11848	s.UserIds = v
11849	return s
11850}
11851
11852type PutAccessControlRuleOutput struct {
11853	_ struct{} `type:"structure"`
11854}
11855
11856// String returns the string representation
11857func (s PutAccessControlRuleOutput) String() string {
11858	return awsutil.Prettify(s)
11859}
11860
11861// GoString returns the string representation
11862func (s PutAccessControlRuleOutput) GoString() string {
11863	return s.String()
11864}
11865
11866type PutMailboxPermissionsInput struct {
11867	_ struct{} `type:"structure"`
11868
11869	// The identifier of the user, group, or resource for which to update mailbox
11870	// permissions.
11871	//
11872	// EntityId is a required field
11873	EntityId *string `min:"12" type:"string" required:"true"`
11874
11875	// The identifier of the user, group, or resource to which to grant the permissions.
11876	//
11877	// GranteeId is a required field
11878	GranteeId *string `min:"12" type:"string" required:"true"`
11879
11880	// The identifier of the organization under which the user, group, or resource
11881	// exists.
11882	//
11883	// OrganizationId is a required field
11884	OrganizationId *string `min:"34" type:"string" required:"true"`
11885
11886	// The permissions granted to the grantee. SEND_AS allows the grantee to send
11887	// email as the owner of the mailbox (the grantee is not mentioned on these
11888	// emails). SEND_ON_BEHALF allows the grantee to send email on behalf of the
11889	// owner of the mailbox (the grantee is not mentioned as the physical sender
11890	// of these emails). FULL_ACCESS allows the grantee full access to the mailbox,
11891	// irrespective of other folder-level permissions set on the mailbox.
11892	//
11893	// PermissionValues is a required field
11894	PermissionValues []*string `type:"list" required:"true"`
11895}
11896
11897// String returns the string representation
11898func (s PutMailboxPermissionsInput) String() string {
11899	return awsutil.Prettify(s)
11900}
11901
11902// GoString returns the string representation
11903func (s PutMailboxPermissionsInput) GoString() string {
11904	return s.String()
11905}
11906
11907// Validate inspects the fields of the type to determine if they are valid.
11908func (s *PutMailboxPermissionsInput) Validate() error {
11909	invalidParams := request.ErrInvalidParams{Context: "PutMailboxPermissionsInput"}
11910	if s.EntityId == nil {
11911		invalidParams.Add(request.NewErrParamRequired("EntityId"))
11912	}
11913	if s.EntityId != nil && len(*s.EntityId) < 12 {
11914		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
11915	}
11916	if s.GranteeId == nil {
11917		invalidParams.Add(request.NewErrParamRequired("GranteeId"))
11918	}
11919	if s.GranteeId != nil && len(*s.GranteeId) < 12 {
11920		invalidParams.Add(request.NewErrParamMinLen("GranteeId", 12))
11921	}
11922	if s.OrganizationId == nil {
11923		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
11924	}
11925	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
11926		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
11927	}
11928	if s.PermissionValues == nil {
11929		invalidParams.Add(request.NewErrParamRequired("PermissionValues"))
11930	}
11931
11932	if invalidParams.Len() > 0 {
11933		return invalidParams
11934	}
11935	return nil
11936}
11937
11938// SetEntityId sets the EntityId field's value.
11939func (s *PutMailboxPermissionsInput) SetEntityId(v string) *PutMailboxPermissionsInput {
11940	s.EntityId = &v
11941	return s
11942}
11943
11944// SetGranteeId sets the GranteeId field's value.
11945func (s *PutMailboxPermissionsInput) SetGranteeId(v string) *PutMailboxPermissionsInput {
11946	s.GranteeId = &v
11947	return s
11948}
11949
11950// SetOrganizationId sets the OrganizationId field's value.
11951func (s *PutMailboxPermissionsInput) SetOrganizationId(v string) *PutMailboxPermissionsInput {
11952	s.OrganizationId = &v
11953	return s
11954}
11955
11956// SetPermissionValues sets the PermissionValues field's value.
11957func (s *PutMailboxPermissionsInput) SetPermissionValues(v []*string) *PutMailboxPermissionsInput {
11958	s.PermissionValues = v
11959	return s
11960}
11961
11962type PutMailboxPermissionsOutput struct {
11963	_ struct{} `type:"structure"`
11964}
11965
11966// String returns the string representation
11967func (s PutMailboxPermissionsOutput) String() string {
11968	return awsutil.Prettify(s)
11969}
11970
11971// GoString returns the string representation
11972func (s PutMailboxPermissionsOutput) GoString() string {
11973	return s.String()
11974}
11975
11976type PutRetentionPolicyInput struct {
11977	_ struct{} `type:"structure"`
11978
11979	// The retention policy description.
11980	Description *string `type:"string" sensitive:"true"`
11981
11982	// The retention policy folder configurations.
11983	//
11984	// FolderConfigurations is a required field
11985	FolderConfigurations []*FolderConfiguration `type:"list" required:"true"`
11986
11987	// The retention policy ID.
11988	Id *string `min:"1" type:"string"`
11989
11990	// The retention policy name.
11991	//
11992	// Name is a required field
11993	Name *string `min:"1" type:"string" required:"true"`
11994
11995	// The organization ID.
11996	//
11997	// OrganizationId is a required field
11998	OrganizationId *string `min:"34" type:"string" required:"true"`
11999}
12000
12001// String returns the string representation
12002func (s PutRetentionPolicyInput) String() string {
12003	return awsutil.Prettify(s)
12004}
12005
12006// GoString returns the string representation
12007func (s PutRetentionPolicyInput) GoString() string {
12008	return s.String()
12009}
12010
12011// Validate inspects the fields of the type to determine if they are valid.
12012func (s *PutRetentionPolicyInput) Validate() error {
12013	invalidParams := request.ErrInvalidParams{Context: "PutRetentionPolicyInput"}
12014	if s.FolderConfigurations == nil {
12015		invalidParams.Add(request.NewErrParamRequired("FolderConfigurations"))
12016	}
12017	if s.Id != nil && len(*s.Id) < 1 {
12018		invalidParams.Add(request.NewErrParamMinLen("Id", 1))
12019	}
12020	if s.Name == nil {
12021		invalidParams.Add(request.NewErrParamRequired("Name"))
12022	}
12023	if s.Name != nil && len(*s.Name) < 1 {
12024		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
12025	}
12026	if s.OrganizationId == nil {
12027		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
12028	}
12029	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
12030		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
12031	}
12032	if s.FolderConfigurations != nil {
12033		for i, v := range s.FolderConfigurations {
12034			if v == nil {
12035				continue
12036			}
12037			if err := v.Validate(); err != nil {
12038				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "FolderConfigurations", i), err.(request.ErrInvalidParams))
12039			}
12040		}
12041	}
12042
12043	if invalidParams.Len() > 0 {
12044		return invalidParams
12045	}
12046	return nil
12047}
12048
12049// SetDescription sets the Description field's value.
12050func (s *PutRetentionPolicyInput) SetDescription(v string) *PutRetentionPolicyInput {
12051	s.Description = &v
12052	return s
12053}
12054
12055// SetFolderConfigurations sets the FolderConfigurations field's value.
12056func (s *PutRetentionPolicyInput) SetFolderConfigurations(v []*FolderConfiguration) *PutRetentionPolicyInput {
12057	s.FolderConfigurations = v
12058	return s
12059}
12060
12061// SetId sets the Id field's value.
12062func (s *PutRetentionPolicyInput) SetId(v string) *PutRetentionPolicyInput {
12063	s.Id = &v
12064	return s
12065}
12066
12067// SetName sets the Name field's value.
12068func (s *PutRetentionPolicyInput) SetName(v string) *PutRetentionPolicyInput {
12069	s.Name = &v
12070	return s
12071}
12072
12073// SetOrganizationId sets the OrganizationId field's value.
12074func (s *PutRetentionPolicyInput) SetOrganizationId(v string) *PutRetentionPolicyInput {
12075	s.OrganizationId = &v
12076	return s
12077}
12078
12079type PutRetentionPolicyOutput struct {
12080	_ struct{} `type:"structure"`
12081}
12082
12083// String returns the string representation
12084func (s PutRetentionPolicyOutput) String() string {
12085	return awsutil.Prettify(s)
12086}
12087
12088// GoString returns the string representation
12089func (s PutRetentionPolicyOutput) GoString() string {
12090	return s.String()
12091}
12092
12093type RegisterToWorkMailInput struct {
12094	_ struct{} `type:"structure"`
12095
12096	// The email for the user, group, or resource to be updated.
12097	//
12098	// Email is a required field
12099	Email *string `min:"1" type:"string" required:"true"`
12100
12101	// The identifier for the user, group, or resource to be updated.
12102	//
12103	// EntityId is a required field
12104	EntityId *string `min:"12" type:"string" required:"true"`
12105
12106	// The identifier for the organization under which the user, group, or resource
12107	// exists.
12108	//
12109	// OrganizationId is a required field
12110	OrganizationId *string `min:"34" type:"string" required:"true"`
12111}
12112
12113// String returns the string representation
12114func (s RegisterToWorkMailInput) String() string {
12115	return awsutil.Prettify(s)
12116}
12117
12118// GoString returns the string representation
12119func (s RegisterToWorkMailInput) GoString() string {
12120	return s.String()
12121}
12122
12123// Validate inspects the fields of the type to determine if they are valid.
12124func (s *RegisterToWorkMailInput) Validate() error {
12125	invalidParams := request.ErrInvalidParams{Context: "RegisterToWorkMailInput"}
12126	if s.Email == nil {
12127		invalidParams.Add(request.NewErrParamRequired("Email"))
12128	}
12129	if s.Email != nil && len(*s.Email) < 1 {
12130		invalidParams.Add(request.NewErrParamMinLen("Email", 1))
12131	}
12132	if s.EntityId == nil {
12133		invalidParams.Add(request.NewErrParamRequired("EntityId"))
12134	}
12135	if s.EntityId != nil && len(*s.EntityId) < 12 {
12136		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
12137	}
12138	if s.OrganizationId == nil {
12139		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
12140	}
12141	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
12142		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
12143	}
12144
12145	if invalidParams.Len() > 0 {
12146		return invalidParams
12147	}
12148	return nil
12149}
12150
12151// SetEmail sets the Email field's value.
12152func (s *RegisterToWorkMailInput) SetEmail(v string) *RegisterToWorkMailInput {
12153	s.Email = &v
12154	return s
12155}
12156
12157// SetEntityId sets the EntityId field's value.
12158func (s *RegisterToWorkMailInput) SetEntityId(v string) *RegisterToWorkMailInput {
12159	s.EntityId = &v
12160	return s
12161}
12162
12163// SetOrganizationId sets the OrganizationId field's value.
12164func (s *RegisterToWorkMailInput) SetOrganizationId(v string) *RegisterToWorkMailInput {
12165	s.OrganizationId = &v
12166	return s
12167}
12168
12169type RegisterToWorkMailOutput struct {
12170	_ struct{} `type:"structure"`
12171}
12172
12173// String returns the string representation
12174func (s RegisterToWorkMailOutput) String() string {
12175	return awsutil.Prettify(s)
12176}
12177
12178// GoString returns the string representation
12179func (s RegisterToWorkMailOutput) GoString() string {
12180	return s.String()
12181}
12182
12183// This user, group, or resource name is not allowed in Amazon WorkMail.
12184type ReservedNameException struct {
12185	_            struct{}                  `type:"structure"`
12186	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12187
12188	Message_ *string `locationName:"Message" type:"string"`
12189}
12190
12191// String returns the string representation
12192func (s ReservedNameException) String() string {
12193	return awsutil.Prettify(s)
12194}
12195
12196// GoString returns the string representation
12197func (s ReservedNameException) GoString() string {
12198	return s.String()
12199}
12200
12201func newErrorReservedNameException(v protocol.ResponseMetadata) error {
12202	return &ReservedNameException{
12203		RespMetadata: v,
12204	}
12205}
12206
12207// Code returns the exception type name.
12208func (s *ReservedNameException) Code() string {
12209	return "ReservedNameException"
12210}
12211
12212// Message returns the exception's message.
12213func (s *ReservedNameException) Message() string {
12214	if s.Message_ != nil {
12215		return *s.Message_
12216	}
12217	return ""
12218}
12219
12220// OrigErr always returns nil, satisfies awserr.Error interface.
12221func (s *ReservedNameException) OrigErr() error {
12222	return nil
12223}
12224
12225func (s *ReservedNameException) Error() string {
12226	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12227}
12228
12229// Status code returns the HTTP status code for the request's response error.
12230func (s *ReservedNameException) StatusCode() int {
12231	return s.RespMetadata.StatusCode
12232}
12233
12234// RequestID returns the service's response RequestID for request.
12235func (s *ReservedNameException) RequestID() string {
12236	return s.RespMetadata.RequestID
12237}
12238
12239type ResetPasswordInput struct {
12240	_ struct{} `type:"structure"`
12241
12242	// The identifier of the organization that contains the user for which the password
12243	// is reset.
12244	//
12245	// OrganizationId is a required field
12246	OrganizationId *string `min:"34" type:"string" required:"true"`
12247
12248	// The new password for the user.
12249	//
12250	// Password is a required field
12251	Password *string `type:"string" required:"true" sensitive:"true"`
12252
12253	// The identifier of the user for whom the password is reset.
12254	//
12255	// UserId is a required field
12256	UserId *string `min:"12" type:"string" required:"true"`
12257}
12258
12259// String returns the string representation
12260func (s ResetPasswordInput) String() string {
12261	return awsutil.Prettify(s)
12262}
12263
12264// GoString returns the string representation
12265func (s ResetPasswordInput) GoString() string {
12266	return s.String()
12267}
12268
12269// Validate inspects the fields of the type to determine if they are valid.
12270func (s *ResetPasswordInput) Validate() error {
12271	invalidParams := request.ErrInvalidParams{Context: "ResetPasswordInput"}
12272	if s.OrganizationId == nil {
12273		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
12274	}
12275	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
12276		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
12277	}
12278	if s.Password == nil {
12279		invalidParams.Add(request.NewErrParamRequired("Password"))
12280	}
12281	if s.UserId == nil {
12282		invalidParams.Add(request.NewErrParamRequired("UserId"))
12283	}
12284	if s.UserId != nil && len(*s.UserId) < 12 {
12285		invalidParams.Add(request.NewErrParamMinLen("UserId", 12))
12286	}
12287
12288	if invalidParams.Len() > 0 {
12289		return invalidParams
12290	}
12291	return nil
12292}
12293
12294// SetOrganizationId sets the OrganizationId field's value.
12295func (s *ResetPasswordInput) SetOrganizationId(v string) *ResetPasswordInput {
12296	s.OrganizationId = &v
12297	return s
12298}
12299
12300// SetPassword sets the Password field's value.
12301func (s *ResetPasswordInput) SetPassword(v string) *ResetPasswordInput {
12302	s.Password = &v
12303	return s
12304}
12305
12306// SetUserId sets the UserId field's value.
12307func (s *ResetPasswordInput) SetUserId(v string) *ResetPasswordInput {
12308	s.UserId = &v
12309	return s
12310}
12311
12312type ResetPasswordOutput struct {
12313	_ struct{} `type:"structure"`
12314}
12315
12316// String returns the string representation
12317func (s ResetPasswordOutput) String() string {
12318	return awsutil.Prettify(s)
12319}
12320
12321// GoString returns the string representation
12322func (s ResetPasswordOutput) GoString() string {
12323	return s.String()
12324}
12325
12326// The representation of a resource.
12327type Resource struct {
12328	_ struct{} `type:"structure"`
12329
12330	// The date indicating when the resource was disabled from Amazon WorkMail use.
12331	DisabledDate *time.Time `type:"timestamp"`
12332
12333	// The email of the resource.
12334	Email *string `min:"1" type:"string"`
12335
12336	// The date indicating when the resource was enabled for Amazon WorkMail use.
12337	EnabledDate *time.Time `type:"timestamp"`
12338
12339	// The identifier of the resource.
12340	Id *string `min:"12" type:"string"`
12341
12342	// The name of the resource.
12343	Name *string `min:"1" type:"string"`
12344
12345	// The state of the resource, which can be ENABLED, DISABLED, or DELETED.
12346	State *string `type:"string" enum:"EntityState"`
12347
12348	// The type of the resource: equipment or room.
12349	Type *string `type:"string" enum:"ResourceType"`
12350}
12351
12352// String returns the string representation
12353func (s Resource) String() string {
12354	return awsutil.Prettify(s)
12355}
12356
12357// GoString returns the string representation
12358func (s Resource) GoString() string {
12359	return s.String()
12360}
12361
12362// SetDisabledDate sets the DisabledDate field's value.
12363func (s *Resource) SetDisabledDate(v time.Time) *Resource {
12364	s.DisabledDate = &v
12365	return s
12366}
12367
12368// SetEmail sets the Email field's value.
12369func (s *Resource) SetEmail(v string) *Resource {
12370	s.Email = &v
12371	return s
12372}
12373
12374// SetEnabledDate sets the EnabledDate field's value.
12375func (s *Resource) SetEnabledDate(v time.Time) *Resource {
12376	s.EnabledDate = &v
12377	return s
12378}
12379
12380// SetId sets the Id field's value.
12381func (s *Resource) SetId(v string) *Resource {
12382	s.Id = &v
12383	return s
12384}
12385
12386// SetName sets the Name field's value.
12387func (s *Resource) SetName(v string) *Resource {
12388	s.Name = &v
12389	return s
12390}
12391
12392// SetState sets the State field's value.
12393func (s *Resource) SetState(v string) *Resource {
12394	s.State = &v
12395	return s
12396}
12397
12398// SetType sets the Type field's value.
12399func (s *Resource) SetType(v string) *Resource {
12400	s.Type = &v
12401	return s
12402}
12403
12404// The resource cannot be found.
12405type ResourceNotFoundException struct {
12406	_            struct{}                  `type:"structure"`
12407	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12408
12409	Message_ *string `locationName:"Message" type:"string"`
12410}
12411
12412// String returns the string representation
12413func (s ResourceNotFoundException) String() string {
12414	return awsutil.Prettify(s)
12415}
12416
12417// GoString returns the string representation
12418func (s ResourceNotFoundException) GoString() string {
12419	return s.String()
12420}
12421
12422func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
12423	return &ResourceNotFoundException{
12424		RespMetadata: v,
12425	}
12426}
12427
12428// Code returns the exception type name.
12429func (s *ResourceNotFoundException) Code() string {
12430	return "ResourceNotFoundException"
12431}
12432
12433// Message returns the exception's message.
12434func (s *ResourceNotFoundException) Message() string {
12435	if s.Message_ != nil {
12436		return *s.Message_
12437	}
12438	return ""
12439}
12440
12441// OrigErr always returns nil, satisfies awserr.Error interface.
12442func (s *ResourceNotFoundException) OrigErr() error {
12443	return nil
12444}
12445
12446func (s *ResourceNotFoundException) Error() string {
12447	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12448}
12449
12450// Status code returns the HTTP status code for the request's response error.
12451func (s *ResourceNotFoundException) StatusCode() int {
12452	return s.RespMetadata.StatusCode
12453}
12454
12455// RequestID returns the service's response RequestID for request.
12456func (s *ResourceNotFoundException) RequestID() string {
12457	return s.RespMetadata.RequestID
12458}
12459
12460type StartMailboxExportJobInput struct {
12461	_ struct{} `type:"structure"`
12462
12463	// The idempotency token for the client request.
12464	ClientToken *string `min:"1" type:"string" idempotencyToken:"true"`
12465
12466	// The mailbox export job description.
12467	Description *string `type:"string"`
12468
12469	// The identifier of the user or resource associated with the mailbox.
12470	//
12471	// EntityId is a required field
12472	EntityId *string `min:"12" type:"string" required:"true"`
12473
12474	// The Amazon Resource Name (ARN) of the symmetric AWS Key Management Service
12475	// (AWS KMS) key that encrypts the exported mailbox content.
12476	//
12477	// KmsKeyArn is a required field
12478	KmsKeyArn *string `min:"20" type:"string" required:"true"`
12479
12480	// The identifier associated with the organization.
12481	//
12482	// OrganizationId is a required field
12483	OrganizationId *string `min:"34" type:"string" required:"true"`
12484
12485	// The ARN of the AWS Identity and Access Management (IAM) role that grants
12486	// write permission to the S3 bucket.
12487	//
12488	// RoleArn is a required field
12489	RoleArn *string `min:"20" type:"string" required:"true"`
12490
12491	// The name of the S3 bucket.
12492	//
12493	// S3BucketName is a required field
12494	S3BucketName *string `min:"1" type:"string" required:"true"`
12495
12496	// The S3 bucket prefix.
12497	//
12498	// S3Prefix is a required field
12499	S3Prefix *string `min:"1" type:"string" required:"true"`
12500}
12501
12502// String returns the string representation
12503func (s StartMailboxExportJobInput) String() string {
12504	return awsutil.Prettify(s)
12505}
12506
12507// GoString returns the string representation
12508func (s StartMailboxExportJobInput) GoString() string {
12509	return s.String()
12510}
12511
12512// Validate inspects the fields of the type to determine if they are valid.
12513func (s *StartMailboxExportJobInput) Validate() error {
12514	invalidParams := request.ErrInvalidParams{Context: "StartMailboxExportJobInput"}
12515	if s.ClientToken != nil && len(*s.ClientToken) < 1 {
12516		invalidParams.Add(request.NewErrParamMinLen("ClientToken", 1))
12517	}
12518	if s.EntityId == nil {
12519		invalidParams.Add(request.NewErrParamRequired("EntityId"))
12520	}
12521	if s.EntityId != nil && len(*s.EntityId) < 12 {
12522		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
12523	}
12524	if s.KmsKeyArn == nil {
12525		invalidParams.Add(request.NewErrParamRequired("KmsKeyArn"))
12526	}
12527	if s.KmsKeyArn != nil && len(*s.KmsKeyArn) < 20 {
12528		invalidParams.Add(request.NewErrParamMinLen("KmsKeyArn", 20))
12529	}
12530	if s.OrganizationId == nil {
12531		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
12532	}
12533	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
12534		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
12535	}
12536	if s.RoleArn == nil {
12537		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
12538	}
12539	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
12540		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
12541	}
12542	if s.S3BucketName == nil {
12543		invalidParams.Add(request.NewErrParamRequired("S3BucketName"))
12544	}
12545	if s.S3BucketName != nil && len(*s.S3BucketName) < 1 {
12546		invalidParams.Add(request.NewErrParamMinLen("S3BucketName", 1))
12547	}
12548	if s.S3Prefix == nil {
12549		invalidParams.Add(request.NewErrParamRequired("S3Prefix"))
12550	}
12551	if s.S3Prefix != nil && len(*s.S3Prefix) < 1 {
12552		invalidParams.Add(request.NewErrParamMinLen("S3Prefix", 1))
12553	}
12554
12555	if invalidParams.Len() > 0 {
12556		return invalidParams
12557	}
12558	return nil
12559}
12560
12561// SetClientToken sets the ClientToken field's value.
12562func (s *StartMailboxExportJobInput) SetClientToken(v string) *StartMailboxExportJobInput {
12563	s.ClientToken = &v
12564	return s
12565}
12566
12567// SetDescription sets the Description field's value.
12568func (s *StartMailboxExportJobInput) SetDescription(v string) *StartMailboxExportJobInput {
12569	s.Description = &v
12570	return s
12571}
12572
12573// SetEntityId sets the EntityId field's value.
12574func (s *StartMailboxExportJobInput) SetEntityId(v string) *StartMailboxExportJobInput {
12575	s.EntityId = &v
12576	return s
12577}
12578
12579// SetKmsKeyArn sets the KmsKeyArn field's value.
12580func (s *StartMailboxExportJobInput) SetKmsKeyArn(v string) *StartMailboxExportJobInput {
12581	s.KmsKeyArn = &v
12582	return s
12583}
12584
12585// SetOrganizationId sets the OrganizationId field's value.
12586func (s *StartMailboxExportJobInput) SetOrganizationId(v string) *StartMailboxExportJobInput {
12587	s.OrganizationId = &v
12588	return s
12589}
12590
12591// SetRoleArn sets the RoleArn field's value.
12592func (s *StartMailboxExportJobInput) SetRoleArn(v string) *StartMailboxExportJobInput {
12593	s.RoleArn = &v
12594	return s
12595}
12596
12597// SetS3BucketName sets the S3BucketName field's value.
12598func (s *StartMailboxExportJobInput) SetS3BucketName(v string) *StartMailboxExportJobInput {
12599	s.S3BucketName = &v
12600	return s
12601}
12602
12603// SetS3Prefix sets the S3Prefix field's value.
12604func (s *StartMailboxExportJobInput) SetS3Prefix(v string) *StartMailboxExportJobInput {
12605	s.S3Prefix = &v
12606	return s
12607}
12608
12609type StartMailboxExportJobOutput struct {
12610	_ struct{} `type:"structure"`
12611
12612	// The job ID.
12613	JobId *string `min:"1" type:"string"`
12614}
12615
12616// String returns the string representation
12617func (s StartMailboxExportJobOutput) String() string {
12618	return awsutil.Prettify(s)
12619}
12620
12621// GoString returns the string representation
12622func (s StartMailboxExportJobOutput) GoString() string {
12623	return s.String()
12624}
12625
12626// SetJobId sets the JobId field's value.
12627func (s *StartMailboxExportJobOutput) SetJobId(v string) *StartMailboxExportJobOutput {
12628	s.JobId = &v
12629	return s
12630}
12631
12632// Describes a tag applied to a resource.
12633type Tag struct {
12634	_ struct{} `type:"structure"`
12635
12636	// The key of the tag.
12637	//
12638	// Key is a required field
12639	Key *string `min:"1" type:"string" required:"true"`
12640
12641	// The value of the tag.
12642	//
12643	// Value is a required field
12644	Value *string `type:"string" required:"true"`
12645}
12646
12647// String returns the string representation
12648func (s Tag) String() string {
12649	return awsutil.Prettify(s)
12650}
12651
12652// GoString returns the string representation
12653func (s Tag) GoString() string {
12654	return s.String()
12655}
12656
12657// Validate inspects the fields of the type to determine if they are valid.
12658func (s *Tag) Validate() error {
12659	invalidParams := request.ErrInvalidParams{Context: "Tag"}
12660	if s.Key == nil {
12661		invalidParams.Add(request.NewErrParamRequired("Key"))
12662	}
12663	if s.Key != nil && len(*s.Key) < 1 {
12664		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
12665	}
12666	if s.Value == nil {
12667		invalidParams.Add(request.NewErrParamRequired("Value"))
12668	}
12669
12670	if invalidParams.Len() > 0 {
12671		return invalidParams
12672	}
12673	return nil
12674}
12675
12676// SetKey sets the Key field's value.
12677func (s *Tag) SetKey(v string) *Tag {
12678	s.Key = &v
12679	return s
12680}
12681
12682// SetValue sets the Value field's value.
12683func (s *Tag) SetValue(v string) *Tag {
12684	s.Value = &v
12685	return s
12686}
12687
12688type TagResourceInput struct {
12689	_ struct{} `type:"structure"`
12690
12691	// The resource ARN.
12692	//
12693	// ResourceARN is a required field
12694	ResourceARN *string `min:"1" type:"string" required:"true"`
12695
12696	// The tag key-value pairs.
12697	//
12698	// Tags is a required field
12699	Tags []*Tag `type:"list" required:"true"`
12700}
12701
12702// String returns the string representation
12703func (s TagResourceInput) String() string {
12704	return awsutil.Prettify(s)
12705}
12706
12707// GoString returns the string representation
12708func (s TagResourceInput) GoString() string {
12709	return s.String()
12710}
12711
12712// Validate inspects the fields of the type to determine if they are valid.
12713func (s *TagResourceInput) Validate() error {
12714	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
12715	if s.ResourceARN == nil {
12716		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
12717	}
12718	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
12719		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
12720	}
12721	if s.Tags == nil {
12722		invalidParams.Add(request.NewErrParamRequired("Tags"))
12723	}
12724	if s.Tags != nil {
12725		for i, v := range s.Tags {
12726			if v == nil {
12727				continue
12728			}
12729			if err := v.Validate(); err != nil {
12730				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
12731			}
12732		}
12733	}
12734
12735	if invalidParams.Len() > 0 {
12736		return invalidParams
12737	}
12738	return nil
12739}
12740
12741// SetResourceARN sets the ResourceARN field's value.
12742func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
12743	s.ResourceARN = &v
12744	return s
12745}
12746
12747// SetTags sets the Tags field's value.
12748func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
12749	s.Tags = v
12750	return s
12751}
12752
12753type TagResourceOutput struct {
12754	_ struct{} `type:"structure"`
12755}
12756
12757// String returns the string representation
12758func (s TagResourceOutput) String() string {
12759	return awsutil.Prettify(s)
12760}
12761
12762// GoString returns the string representation
12763func (s TagResourceOutput) GoString() string {
12764	return s.String()
12765}
12766
12767// The resource can have up to 50 user-applied tags.
12768type TooManyTagsException struct {
12769	_            struct{}                  `type:"structure"`
12770	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12771
12772	Message_ *string `locationName:"Message" type:"string"`
12773}
12774
12775// String returns the string representation
12776func (s TooManyTagsException) String() string {
12777	return awsutil.Prettify(s)
12778}
12779
12780// GoString returns the string representation
12781func (s TooManyTagsException) GoString() string {
12782	return s.String()
12783}
12784
12785func newErrorTooManyTagsException(v protocol.ResponseMetadata) error {
12786	return &TooManyTagsException{
12787		RespMetadata: v,
12788	}
12789}
12790
12791// Code returns the exception type name.
12792func (s *TooManyTagsException) Code() string {
12793	return "TooManyTagsException"
12794}
12795
12796// Message returns the exception's message.
12797func (s *TooManyTagsException) Message() string {
12798	if s.Message_ != nil {
12799		return *s.Message_
12800	}
12801	return ""
12802}
12803
12804// OrigErr always returns nil, satisfies awserr.Error interface.
12805func (s *TooManyTagsException) OrigErr() error {
12806	return nil
12807}
12808
12809func (s *TooManyTagsException) Error() string {
12810	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12811}
12812
12813// Status code returns the HTTP status code for the request's response error.
12814func (s *TooManyTagsException) StatusCode() int {
12815	return s.RespMetadata.StatusCode
12816}
12817
12818// RequestID returns the service's response RequestID for request.
12819func (s *TooManyTagsException) RequestID() string {
12820	return s.RespMetadata.RequestID
12821}
12822
12823// You can't perform a write operation against a read-only directory.
12824type UnsupportedOperationException struct {
12825	_            struct{}                  `type:"structure"`
12826	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12827
12828	Message_ *string `locationName:"Message" type:"string"`
12829}
12830
12831// String returns the string representation
12832func (s UnsupportedOperationException) String() string {
12833	return awsutil.Prettify(s)
12834}
12835
12836// GoString returns the string representation
12837func (s UnsupportedOperationException) GoString() string {
12838	return s.String()
12839}
12840
12841func newErrorUnsupportedOperationException(v protocol.ResponseMetadata) error {
12842	return &UnsupportedOperationException{
12843		RespMetadata: v,
12844	}
12845}
12846
12847// Code returns the exception type name.
12848func (s *UnsupportedOperationException) Code() string {
12849	return "UnsupportedOperationException"
12850}
12851
12852// Message returns the exception's message.
12853func (s *UnsupportedOperationException) Message() string {
12854	if s.Message_ != nil {
12855		return *s.Message_
12856	}
12857	return ""
12858}
12859
12860// OrigErr always returns nil, satisfies awserr.Error interface.
12861func (s *UnsupportedOperationException) OrigErr() error {
12862	return nil
12863}
12864
12865func (s *UnsupportedOperationException) Error() string {
12866	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12867}
12868
12869// Status code returns the HTTP status code for the request's response error.
12870func (s *UnsupportedOperationException) StatusCode() int {
12871	return s.RespMetadata.StatusCode
12872}
12873
12874// RequestID returns the service's response RequestID for request.
12875func (s *UnsupportedOperationException) RequestID() string {
12876	return s.RespMetadata.RequestID
12877}
12878
12879type UntagResourceInput struct {
12880	_ struct{} `type:"structure"`
12881
12882	// The resource ARN.
12883	//
12884	// ResourceARN is a required field
12885	ResourceARN *string `min:"1" type:"string" required:"true"`
12886
12887	// The tag keys.
12888	//
12889	// TagKeys is a required field
12890	TagKeys []*string `type:"list" required:"true"`
12891}
12892
12893// String returns the string representation
12894func (s UntagResourceInput) String() string {
12895	return awsutil.Prettify(s)
12896}
12897
12898// GoString returns the string representation
12899func (s UntagResourceInput) GoString() string {
12900	return s.String()
12901}
12902
12903// Validate inspects the fields of the type to determine if they are valid.
12904func (s *UntagResourceInput) Validate() error {
12905	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
12906	if s.ResourceARN == nil {
12907		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
12908	}
12909	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
12910		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
12911	}
12912	if s.TagKeys == nil {
12913		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
12914	}
12915
12916	if invalidParams.Len() > 0 {
12917		return invalidParams
12918	}
12919	return nil
12920}
12921
12922// SetResourceARN sets the ResourceARN field's value.
12923func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
12924	s.ResourceARN = &v
12925	return s
12926}
12927
12928// SetTagKeys sets the TagKeys field's value.
12929func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
12930	s.TagKeys = v
12931	return s
12932}
12933
12934type UntagResourceOutput struct {
12935	_ struct{} `type:"structure"`
12936}
12937
12938// String returns the string representation
12939func (s UntagResourceOutput) String() string {
12940	return awsutil.Prettify(s)
12941}
12942
12943// GoString returns the string representation
12944func (s UntagResourceOutput) GoString() string {
12945	return s.String()
12946}
12947
12948type UpdateMailboxQuotaInput struct {
12949	_ struct{} `type:"structure"`
12950
12951	// The updated mailbox quota, in MB, for the specified user.
12952	//
12953	// MailboxQuota is a required field
12954	MailboxQuota *int64 `min:"1" type:"integer" required:"true"`
12955
12956	// The identifier for the organization that contains the user for whom to update
12957	// the mailbox quota.
12958	//
12959	// OrganizationId is a required field
12960	OrganizationId *string `min:"34" type:"string" required:"true"`
12961
12962	// The identifer for the user for whom to update the mailbox quota.
12963	//
12964	// UserId is a required field
12965	UserId *string `min:"12" type:"string" required:"true"`
12966}
12967
12968// String returns the string representation
12969func (s UpdateMailboxQuotaInput) String() string {
12970	return awsutil.Prettify(s)
12971}
12972
12973// GoString returns the string representation
12974func (s UpdateMailboxQuotaInput) GoString() string {
12975	return s.String()
12976}
12977
12978// Validate inspects the fields of the type to determine if they are valid.
12979func (s *UpdateMailboxQuotaInput) Validate() error {
12980	invalidParams := request.ErrInvalidParams{Context: "UpdateMailboxQuotaInput"}
12981	if s.MailboxQuota == nil {
12982		invalidParams.Add(request.NewErrParamRequired("MailboxQuota"))
12983	}
12984	if s.MailboxQuota != nil && *s.MailboxQuota < 1 {
12985		invalidParams.Add(request.NewErrParamMinValue("MailboxQuota", 1))
12986	}
12987	if s.OrganizationId == nil {
12988		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
12989	}
12990	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
12991		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
12992	}
12993	if s.UserId == nil {
12994		invalidParams.Add(request.NewErrParamRequired("UserId"))
12995	}
12996	if s.UserId != nil && len(*s.UserId) < 12 {
12997		invalidParams.Add(request.NewErrParamMinLen("UserId", 12))
12998	}
12999
13000	if invalidParams.Len() > 0 {
13001		return invalidParams
13002	}
13003	return nil
13004}
13005
13006// SetMailboxQuota sets the MailboxQuota field's value.
13007func (s *UpdateMailboxQuotaInput) SetMailboxQuota(v int64) *UpdateMailboxQuotaInput {
13008	s.MailboxQuota = &v
13009	return s
13010}
13011
13012// SetOrganizationId sets the OrganizationId field's value.
13013func (s *UpdateMailboxQuotaInput) SetOrganizationId(v string) *UpdateMailboxQuotaInput {
13014	s.OrganizationId = &v
13015	return s
13016}
13017
13018// SetUserId sets the UserId field's value.
13019func (s *UpdateMailboxQuotaInput) SetUserId(v string) *UpdateMailboxQuotaInput {
13020	s.UserId = &v
13021	return s
13022}
13023
13024type UpdateMailboxQuotaOutput struct {
13025	_ struct{} `type:"structure"`
13026}
13027
13028// String returns the string representation
13029func (s UpdateMailboxQuotaOutput) String() string {
13030	return awsutil.Prettify(s)
13031}
13032
13033// GoString returns the string representation
13034func (s UpdateMailboxQuotaOutput) GoString() string {
13035	return s.String()
13036}
13037
13038type UpdateMobileDeviceAccessRuleInput struct {
13039	_ struct{} `type:"structure"`
13040
13041	// The updated rule description.
13042	Description *string `min:"1" type:"string"`
13043
13044	// Device models that the updated rule will match.
13045	DeviceModels []*string `min:"1" type:"list"`
13046
13047	// Device operating systems that the updated rule will match.
13048	DeviceOperatingSystems []*string `min:"1" type:"list"`
13049
13050	// Device types that the updated rule will match.
13051	DeviceTypes []*string `min:"1" type:"list"`
13052
13053	// User agents that the updated rule will match.
13054	DeviceUserAgents []*string `min:"1" type:"list"`
13055
13056	// The effect of the rule when it matches. Allowed values are ALLOW or DENY.
13057	//
13058	// Effect is a required field
13059	Effect *string `type:"string" required:"true" enum:"MobileDeviceAccessRuleEffect"`
13060
13061	// The identifier of the rule to be updated.
13062	//
13063	// MobileDeviceAccessRuleId is a required field
13064	MobileDeviceAccessRuleId *string `min:"1" type:"string" required:"true"`
13065
13066	// The updated rule name.
13067	//
13068	// Name is a required field
13069	Name *string `min:"1" type:"string" required:"true"`
13070
13071	// Device models that the updated rule will not match. All other device models
13072	// will match.
13073	NotDeviceModels []*string `min:"1" type:"list"`
13074
13075	// Device operating systems that the updated rule will not match. All other
13076	// device operating systems will match.
13077	NotDeviceOperatingSystems []*string `min:"1" type:"list"`
13078
13079	// Device types that the updated rule will not match. All other device types
13080	// will match.
13081	NotDeviceTypes []*string `min:"1" type:"list"`
13082
13083	// User agents that the updated rule will not match. All other user agents will
13084	// match.
13085	NotDeviceUserAgents []*string `min:"1" type:"list"`
13086
13087	// The Amazon WorkMail organization under which the rule will be updated.
13088	//
13089	// OrganizationId is a required field
13090	OrganizationId *string `min:"34" type:"string" required:"true"`
13091}
13092
13093// String returns the string representation
13094func (s UpdateMobileDeviceAccessRuleInput) String() string {
13095	return awsutil.Prettify(s)
13096}
13097
13098// GoString returns the string representation
13099func (s UpdateMobileDeviceAccessRuleInput) GoString() string {
13100	return s.String()
13101}
13102
13103// Validate inspects the fields of the type to determine if they are valid.
13104func (s *UpdateMobileDeviceAccessRuleInput) Validate() error {
13105	invalidParams := request.ErrInvalidParams{Context: "UpdateMobileDeviceAccessRuleInput"}
13106	if s.Description != nil && len(*s.Description) < 1 {
13107		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
13108	}
13109	if s.DeviceModels != nil && len(s.DeviceModels) < 1 {
13110		invalidParams.Add(request.NewErrParamMinLen("DeviceModels", 1))
13111	}
13112	if s.DeviceOperatingSystems != nil && len(s.DeviceOperatingSystems) < 1 {
13113		invalidParams.Add(request.NewErrParamMinLen("DeviceOperatingSystems", 1))
13114	}
13115	if s.DeviceTypes != nil && len(s.DeviceTypes) < 1 {
13116		invalidParams.Add(request.NewErrParamMinLen("DeviceTypes", 1))
13117	}
13118	if s.DeviceUserAgents != nil && len(s.DeviceUserAgents) < 1 {
13119		invalidParams.Add(request.NewErrParamMinLen("DeviceUserAgents", 1))
13120	}
13121	if s.Effect == nil {
13122		invalidParams.Add(request.NewErrParamRequired("Effect"))
13123	}
13124	if s.MobileDeviceAccessRuleId == nil {
13125		invalidParams.Add(request.NewErrParamRequired("MobileDeviceAccessRuleId"))
13126	}
13127	if s.MobileDeviceAccessRuleId != nil && len(*s.MobileDeviceAccessRuleId) < 1 {
13128		invalidParams.Add(request.NewErrParamMinLen("MobileDeviceAccessRuleId", 1))
13129	}
13130	if s.Name == nil {
13131		invalidParams.Add(request.NewErrParamRequired("Name"))
13132	}
13133	if s.Name != nil && len(*s.Name) < 1 {
13134		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
13135	}
13136	if s.NotDeviceModels != nil && len(s.NotDeviceModels) < 1 {
13137		invalidParams.Add(request.NewErrParamMinLen("NotDeviceModels", 1))
13138	}
13139	if s.NotDeviceOperatingSystems != nil && len(s.NotDeviceOperatingSystems) < 1 {
13140		invalidParams.Add(request.NewErrParamMinLen("NotDeviceOperatingSystems", 1))
13141	}
13142	if s.NotDeviceTypes != nil && len(s.NotDeviceTypes) < 1 {
13143		invalidParams.Add(request.NewErrParamMinLen("NotDeviceTypes", 1))
13144	}
13145	if s.NotDeviceUserAgents != nil && len(s.NotDeviceUserAgents) < 1 {
13146		invalidParams.Add(request.NewErrParamMinLen("NotDeviceUserAgents", 1))
13147	}
13148	if s.OrganizationId == nil {
13149		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
13150	}
13151	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
13152		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
13153	}
13154
13155	if invalidParams.Len() > 0 {
13156		return invalidParams
13157	}
13158	return nil
13159}
13160
13161// SetDescription sets the Description field's value.
13162func (s *UpdateMobileDeviceAccessRuleInput) SetDescription(v string) *UpdateMobileDeviceAccessRuleInput {
13163	s.Description = &v
13164	return s
13165}
13166
13167// SetDeviceModels sets the DeviceModels field's value.
13168func (s *UpdateMobileDeviceAccessRuleInput) SetDeviceModels(v []*string) *UpdateMobileDeviceAccessRuleInput {
13169	s.DeviceModels = v
13170	return s
13171}
13172
13173// SetDeviceOperatingSystems sets the DeviceOperatingSystems field's value.
13174func (s *UpdateMobileDeviceAccessRuleInput) SetDeviceOperatingSystems(v []*string) *UpdateMobileDeviceAccessRuleInput {
13175	s.DeviceOperatingSystems = v
13176	return s
13177}
13178
13179// SetDeviceTypes sets the DeviceTypes field's value.
13180func (s *UpdateMobileDeviceAccessRuleInput) SetDeviceTypes(v []*string) *UpdateMobileDeviceAccessRuleInput {
13181	s.DeviceTypes = v
13182	return s
13183}
13184
13185// SetDeviceUserAgents sets the DeviceUserAgents field's value.
13186func (s *UpdateMobileDeviceAccessRuleInput) SetDeviceUserAgents(v []*string) *UpdateMobileDeviceAccessRuleInput {
13187	s.DeviceUserAgents = v
13188	return s
13189}
13190
13191// SetEffect sets the Effect field's value.
13192func (s *UpdateMobileDeviceAccessRuleInput) SetEffect(v string) *UpdateMobileDeviceAccessRuleInput {
13193	s.Effect = &v
13194	return s
13195}
13196
13197// SetMobileDeviceAccessRuleId sets the MobileDeviceAccessRuleId field's value.
13198func (s *UpdateMobileDeviceAccessRuleInput) SetMobileDeviceAccessRuleId(v string) *UpdateMobileDeviceAccessRuleInput {
13199	s.MobileDeviceAccessRuleId = &v
13200	return s
13201}
13202
13203// SetName sets the Name field's value.
13204func (s *UpdateMobileDeviceAccessRuleInput) SetName(v string) *UpdateMobileDeviceAccessRuleInput {
13205	s.Name = &v
13206	return s
13207}
13208
13209// SetNotDeviceModels sets the NotDeviceModels field's value.
13210func (s *UpdateMobileDeviceAccessRuleInput) SetNotDeviceModels(v []*string) *UpdateMobileDeviceAccessRuleInput {
13211	s.NotDeviceModels = v
13212	return s
13213}
13214
13215// SetNotDeviceOperatingSystems sets the NotDeviceOperatingSystems field's value.
13216func (s *UpdateMobileDeviceAccessRuleInput) SetNotDeviceOperatingSystems(v []*string) *UpdateMobileDeviceAccessRuleInput {
13217	s.NotDeviceOperatingSystems = v
13218	return s
13219}
13220
13221// SetNotDeviceTypes sets the NotDeviceTypes field's value.
13222func (s *UpdateMobileDeviceAccessRuleInput) SetNotDeviceTypes(v []*string) *UpdateMobileDeviceAccessRuleInput {
13223	s.NotDeviceTypes = v
13224	return s
13225}
13226
13227// SetNotDeviceUserAgents sets the NotDeviceUserAgents field's value.
13228func (s *UpdateMobileDeviceAccessRuleInput) SetNotDeviceUserAgents(v []*string) *UpdateMobileDeviceAccessRuleInput {
13229	s.NotDeviceUserAgents = v
13230	return s
13231}
13232
13233// SetOrganizationId sets the OrganizationId field's value.
13234func (s *UpdateMobileDeviceAccessRuleInput) SetOrganizationId(v string) *UpdateMobileDeviceAccessRuleInput {
13235	s.OrganizationId = &v
13236	return s
13237}
13238
13239type UpdateMobileDeviceAccessRuleOutput struct {
13240	_ struct{} `type:"structure"`
13241}
13242
13243// String returns the string representation
13244func (s UpdateMobileDeviceAccessRuleOutput) String() string {
13245	return awsutil.Prettify(s)
13246}
13247
13248// GoString returns the string representation
13249func (s UpdateMobileDeviceAccessRuleOutput) GoString() string {
13250	return s.String()
13251}
13252
13253type UpdatePrimaryEmailAddressInput struct {
13254	_ struct{} `type:"structure"`
13255
13256	// The value of the email to be updated as primary.
13257	//
13258	// Email is a required field
13259	Email *string `min:"1" type:"string" required:"true"`
13260
13261	// The user, group, or resource to update.
13262	//
13263	// EntityId is a required field
13264	EntityId *string `min:"12" type:"string" required:"true"`
13265
13266	// The organization that contains the user, group, or resource to update.
13267	//
13268	// OrganizationId is a required field
13269	OrganizationId *string `min:"34" type:"string" required:"true"`
13270}
13271
13272// String returns the string representation
13273func (s UpdatePrimaryEmailAddressInput) String() string {
13274	return awsutil.Prettify(s)
13275}
13276
13277// GoString returns the string representation
13278func (s UpdatePrimaryEmailAddressInput) GoString() string {
13279	return s.String()
13280}
13281
13282// Validate inspects the fields of the type to determine if they are valid.
13283func (s *UpdatePrimaryEmailAddressInput) Validate() error {
13284	invalidParams := request.ErrInvalidParams{Context: "UpdatePrimaryEmailAddressInput"}
13285	if s.Email == nil {
13286		invalidParams.Add(request.NewErrParamRequired("Email"))
13287	}
13288	if s.Email != nil && len(*s.Email) < 1 {
13289		invalidParams.Add(request.NewErrParamMinLen("Email", 1))
13290	}
13291	if s.EntityId == nil {
13292		invalidParams.Add(request.NewErrParamRequired("EntityId"))
13293	}
13294	if s.EntityId != nil && len(*s.EntityId) < 12 {
13295		invalidParams.Add(request.NewErrParamMinLen("EntityId", 12))
13296	}
13297	if s.OrganizationId == nil {
13298		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
13299	}
13300	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
13301		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
13302	}
13303
13304	if invalidParams.Len() > 0 {
13305		return invalidParams
13306	}
13307	return nil
13308}
13309
13310// SetEmail sets the Email field's value.
13311func (s *UpdatePrimaryEmailAddressInput) SetEmail(v string) *UpdatePrimaryEmailAddressInput {
13312	s.Email = &v
13313	return s
13314}
13315
13316// SetEntityId sets the EntityId field's value.
13317func (s *UpdatePrimaryEmailAddressInput) SetEntityId(v string) *UpdatePrimaryEmailAddressInput {
13318	s.EntityId = &v
13319	return s
13320}
13321
13322// SetOrganizationId sets the OrganizationId field's value.
13323func (s *UpdatePrimaryEmailAddressInput) SetOrganizationId(v string) *UpdatePrimaryEmailAddressInput {
13324	s.OrganizationId = &v
13325	return s
13326}
13327
13328type UpdatePrimaryEmailAddressOutput struct {
13329	_ struct{} `type:"structure"`
13330}
13331
13332// String returns the string representation
13333func (s UpdatePrimaryEmailAddressOutput) String() string {
13334	return awsutil.Prettify(s)
13335}
13336
13337// GoString returns the string representation
13338func (s UpdatePrimaryEmailAddressOutput) GoString() string {
13339	return s.String()
13340}
13341
13342type UpdateResourceInput struct {
13343	_ struct{} `type:"structure"`
13344
13345	// The resource's booking options to be updated.
13346	BookingOptions *BookingOptions `type:"structure"`
13347
13348	// The name of the resource to be updated.
13349	Name *string `min:"1" type:"string"`
13350
13351	// The identifier associated with the organization for which the resource is
13352	// updated.
13353	//
13354	// OrganizationId is a required field
13355	OrganizationId *string `min:"34" type:"string" required:"true"`
13356
13357	// The identifier of the resource to be updated.
13358	//
13359	// ResourceId is a required field
13360	ResourceId *string `min:"34" type:"string" required:"true"`
13361}
13362
13363// String returns the string representation
13364func (s UpdateResourceInput) String() string {
13365	return awsutil.Prettify(s)
13366}
13367
13368// GoString returns the string representation
13369func (s UpdateResourceInput) GoString() string {
13370	return s.String()
13371}
13372
13373// Validate inspects the fields of the type to determine if they are valid.
13374func (s *UpdateResourceInput) Validate() error {
13375	invalidParams := request.ErrInvalidParams{Context: "UpdateResourceInput"}
13376	if s.Name != nil && len(*s.Name) < 1 {
13377		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
13378	}
13379	if s.OrganizationId == nil {
13380		invalidParams.Add(request.NewErrParamRequired("OrganizationId"))
13381	}
13382	if s.OrganizationId != nil && len(*s.OrganizationId) < 34 {
13383		invalidParams.Add(request.NewErrParamMinLen("OrganizationId", 34))
13384	}
13385	if s.ResourceId == nil {
13386		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
13387	}
13388	if s.ResourceId != nil && len(*s.ResourceId) < 34 {
13389		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 34))
13390	}
13391
13392	if invalidParams.Len() > 0 {
13393		return invalidParams
13394	}
13395	return nil
13396}
13397
13398// SetBookingOptions sets the BookingOptions field's value.
13399func (s *UpdateResourceInput) SetBookingOptions(v *BookingOptions) *UpdateResourceInput {
13400	s.BookingOptions = v
13401	return s
13402}
13403
13404// SetName sets the Name field's value.
13405func (s *UpdateResourceInput) SetName(v string) *UpdateResourceInput {
13406	s.Name = &v
13407	return s
13408}
13409
13410// SetOrganizationId sets the OrganizationId field's value.
13411func (s *UpdateResourceInput) SetOrganizationId(v string) *UpdateResourceInput {
13412	s.OrganizationId = &v
13413	return s
13414}
13415
13416// SetResourceId sets the ResourceId field's value.
13417func (s *UpdateResourceInput) SetResourceId(v string) *UpdateResourceInput {
13418	s.ResourceId = &v
13419	return s
13420}
13421
13422type UpdateResourceOutput struct {
13423	_ struct{} `type:"structure"`
13424}
13425
13426// String returns the string representation
13427func (s UpdateResourceOutput) String() string {
13428	return awsutil.Prettify(s)
13429}
13430
13431// GoString returns the string representation
13432func (s UpdateResourceOutput) GoString() string {
13433	return s.String()
13434}
13435
13436// The representation of an Amazon WorkMail user.
13437type User struct {
13438	_ struct{} `type:"structure"`
13439
13440	// The date indicating when the user was disabled from Amazon WorkMail use.
13441	DisabledDate *time.Time `type:"timestamp"`
13442
13443	// The display name of the user.
13444	DisplayName *string `type:"string"`
13445
13446	// The email of the user.
13447	Email *string `min:"1" type:"string"`
13448
13449	// The date indicating when the user was enabled for Amazon WorkMail use.
13450	EnabledDate *time.Time `type:"timestamp"`
13451
13452	// The identifier of the user.
13453	Id *string `min:"12" type:"string"`
13454
13455	// The name of the user.
13456	Name *string `min:"1" type:"string"`
13457
13458	// The state of the user, which can be ENABLED, DISABLED, or DELETED.
13459	State *string `type:"string" enum:"EntityState"`
13460
13461	// The role of the user.
13462	UserRole *string `type:"string" enum:"UserRole"`
13463}
13464
13465// String returns the string representation
13466func (s User) String() string {
13467	return awsutil.Prettify(s)
13468}
13469
13470// GoString returns the string representation
13471func (s User) GoString() string {
13472	return s.String()
13473}
13474
13475// SetDisabledDate sets the DisabledDate field's value.
13476func (s *User) SetDisabledDate(v time.Time) *User {
13477	s.DisabledDate = &v
13478	return s
13479}
13480
13481// SetDisplayName sets the DisplayName field's value.
13482func (s *User) SetDisplayName(v string) *User {
13483	s.DisplayName = &v
13484	return s
13485}
13486
13487// SetEmail sets the Email field's value.
13488func (s *User) SetEmail(v string) *User {
13489	s.Email = &v
13490	return s
13491}
13492
13493// SetEnabledDate sets the EnabledDate field's value.
13494func (s *User) SetEnabledDate(v time.Time) *User {
13495	s.EnabledDate = &v
13496	return s
13497}
13498
13499// SetId sets the Id field's value.
13500func (s *User) SetId(v string) *User {
13501	s.Id = &v
13502	return s
13503}
13504
13505// SetName sets the Name field's value.
13506func (s *User) SetName(v string) *User {
13507	s.Name = &v
13508	return s
13509}
13510
13511// SetState sets the State field's value.
13512func (s *User) SetState(v string) *User {
13513	s.State = &v
13514	return s
13515}
13516
13517// SetUserRole sets the UserRole field's value.
13518func (s *User) SetUserRole(v string) *User {
13519	s.UserRole = &v
13520	return s
13521}
13522
13523const (
13524	// AccessControlRuleEffectAllow is a AccessControlRuleEffect enum value
13525	AccessControlRuleEffectAllow = "ALLOW"
13526
13527	// AccessControlRuleEffectDeny is a AccessControlRuleEffect enum value
13528	AccessControlRuleEffectDeny = "DENY"
13529)
13530
13531// AccessControlRuleEffect_Values returns all elements of the AccessControlRuleEffect enum
13532func AccessControlRuleEffect_Values() []string {
13533	return []string{
13534		AccessControlRuleEffectAllow,
13535		AccessControlRuleEffectDeny,
13536	}
13537}
13538
13539const (
13540	// EntityStateEnabled is a EntityState enum value
13541	EntityStateEnabled = "ENABLED"
13542
13543	// EntityStateDisabled is a EntityState enum value
13544	EntityStateDisabled = "DISABLED"
13545
13546	// EntityStateDeleted is a EntityState enum value
13547	EntityStateDeleted = "DELETED"
13548)
13549
13550// EntityState_Values returns all elements of the EntityState enum
13551func EntityState_Values() []string {
13552	return []string{
13553		EntityStateEnabled,
13554		EntityStateDisabled,
13555		EntityStateDeleted,
13556	}
13557}
13558
13559const (
13560	// FolderNameInbox is a FolderName enum value
13561	FolderNameInbox = "INBOX"
13562
13563	// FolderNameDeletedItems is a FolderName enum value
13564	FolderNameDeletedItems = "DELETED_ITEMS"
13565
13566	// FolderNameSentItems is a FolderName enum value
13567	FolderNameSentItems = "SENT_ITEMS"
13568
13569	// FolderNameDrafts is a FolderName enum value
13570	FolderNameDrafts = "DRAFTS"
13571
13572	// FolderNameJunkEmail is a FolderName enum value
13573	FolderNameJunkEmail = "JUNK_EMAIL"
13574)
13575
13576// FolderName_Values returns all elements of the FolderName enum
13577func FolderName_Values() []string {
13578	return []string{
13579		FolderNameInbox,
13580		FolderNameDeletedItems,
13581		FolderNameSentItems,
13582		FolderNameDrafts,
13583		FolderNameJunkEmail,
13584	}
13585}
13586
13587const (
13588	// MailboxExportJobStateRunning is a MailboxExportJobState enum value
13589	MailboxExportJobStateRunning = "RUNNING"
13590
13591	// MailboxExportJobStateCompleted is a MailboxExportJobState enum value
13592	MailboxExportJobStateCompleted = "COMPLETED"
13593
13594	// MailboxExportJobStateFailed is a MailboxExportJobState enum value
13595	MailboxExportJobStateFailed = "FAILED"
13596
13597	// MailboxExportJobStateCancelled is a MailboxExportJobState enum value
13598	MailboxExportJobStateCancelled = "CANCELLED"
13599)
13600
13601// MailboxExportJobState_Values returns all elements of the MailboxExportJobState enum
13602func MailboxExportJobState_Values() []string {
13603	return []string{
13604		MailboxExportJobStateRunning,
13605		MailboxExportJobStateCompleted,
13606		MailboxExportJobStateFailed,
13607		MailboxExportJobStateCancelled,
13608	}
13609}
13610
13611const (
13612	// MemberTypeGroup is a MemberType enum value
13613	MemberTypeGroup = "GROUP"
13614
13615	// MemberTypeUser is a MemberType enum value
13616	MemberTypeUser = "USER"
13617)
13618
13619// MemberType_Values returns all elements of the MemberType enum
13620func MemberType_Values() []string {
13621	return []string{
13622		MemberTypeGroup,
13623		MemberTypeUser,
13624	}
13625}
13626
13627const (
13628	// MobileDeviceAccessRuleEffectAllow is a MobileDeviceAccessRuleEffect enum value
13629	MobileDeviceAccessRuleEffectAllow = "ALLOW"
13630
13631	// MobileDeviceAccessRuleEffectDeny is a MobileDeviceAccessRuleEffect enum value
13632	MobileDeviceAccessRuleEffectDeny = "DENY"
13633)
13634
13635// MobileDeviceAccessRuleEffect_Values returns all elements of the MobileDeviceAccessRuleEffect enum
13636func MobileDeviceAccessRuleEffect_Values() []string {
13637	return []string{
13638		MobileDeviceAccessRuleEffectAllow,
13639		MobileDeviceAccessRuleEffectDeny,
13640	}
13641}
13642
13643const (
13644	// PermissionTypeFullAccess is a PermissionType enum value
13645	PermissionTypeFullAccess = "FULL_ACCESS"
13646
13647	// PermissionTypeSendAs is a PermissionType enum value
13648	PermissionTypeSendAs = "SEND_AS"
13649
13650	// PermissionTypeSendOnBehalf is a PermissionType enum value
13651	PermissionTypeSendOnBehalf = "SEND_ON_BEHALF"
13652)
13653
13654// PermissionType_Values returns all elements of the PermissionType enum
13655func PermissionType_Values() []string {
13656	return []string{
13657		PermissionTypeFullAccess,
13658		PermissionTypeSendAs,
13659		PermissionTypeSendOnBehalf,
13660	}
13661}
13662
13663const (
13664	// ResourceTypeRoom is a ResourceType enum value
13665	ResourceTypeRoom = "ROOM"
13666
13667	// ResourceTypeEquipment is a ResourceType enum value
13668	ResourceTypeEquipment = "EQUIPMENT"
13669)
13670
13671// ResourceType_Values returns all elements of the ResourceType enum
13672func ResourceType_Values() []string {
13673	return []string{
13674		ResourceTypeRoom,
13675		ResourceTypeEquipment,
13676	}
13677}
13678
13679const (
13680	// RetentionActionNone is a RetentionAction enum value
13681	RetentionActionNone = "NONE"
13682
13683	// RetentionActionDelete is a RetentionAction enum value
13684	RetentionActionDelete = "DELETE"
13685
13686	// RetentionActionPermanentlyDelete is a RetentionAction enum value
13687	RetentionActionPermanentlyDelete = "PERMANENTLY_DELETE"
13688)
13689
13690// RetentionAction_Values returns all elements of the RetentionAction enum
13691func RetentionAction_Values() []string {
13692	return []string{
13693		RetentionActionNone,
13694		RetentionActionDelete,
13695		RetentionActionPermanentlyDelete,
13696	}
13697}
13698
13699const (
13700	// UserRoleUser is a UserRole enum value
13701	UserRoleUser = "USER"
13702
13703	// UserRoleResource is a UserRole enum value
13704	UserRoleResource = "RESOURCE"
13705
13706	// UserRoleSystemUser is a UserRole enum value
13707	UserRoleSystemUser = "SYSTEM_USER"
13708)
13709
13710// UserRole_Values returns all elements of the UserRole enum
13711func UserRole_Values() []string {
13712	return []string{
13713		UserRoleUser,
13714		UserRoleResource,
13715		UserRoleSystemUser,
13716	}
13717}
13718