1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package workspaces
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 opAssociateConnectionAlias = "AssociateConnectionAlias"
17
18// AssociateConnectionAliasRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateConnectionAlias 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 AssociateConnectionAlias for more information on using the AssociateConnectionAlias
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 AssociateConnectionAliasRequest method.
34//    req, resp := client.AssociateConnectionAliasRequest(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/workspaces-2015-04-08/AssociateConnectionAlias
42func (c *WorkSpaces) AssociateConnectionAliasRequest(input *AssociateConnectionAliasInput) (req *request.Request, output *AssociateConnectionAliasOutput) {
43	op := &request.Operation{
44		Name:       opAssociateConnectionAlias,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AssociateConnectionAliasInput{}
51	}
52
53	output = &AssociateConnectionAliasOutput{}
54	req = c.newRequest(op, input, output)
55	return
56}
57
58// AssociateConnectionAlias API operation for Amazon WorkSpaces.
59//
60// Associates the specified connection alias with the specified directory to
61// enable cross-Region redirection. For more information, see Cross-Region Redirection
62// for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
63//
64// Before performing this operation, call DescribeConnectionAliases (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeConnectionAliases.html)
65// to make sure that the current state of the connection alias is CREATED.
66//
67// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
68// with awserr.Error's Code and Message methods to get detailed information about
69// the error.
70//
71// See the AWS API reference guide for Amazon WorkSpaces's
72// API operation AssociateConnectionAlias for usage and error information.
73//
74// Returned Error Types:
75//   * ResourceAssociatedException
76//   The resource is associated with a directory.
77//
78//   * AccessDeniedException
79//   The user is not authorized to access a resource.
80//
81//   * ResourceNotFoundException
82//   The resource could not be found.
83//
84//   * InvalidParameterValuesException
85//   One or more parameter values are not valid.
86//
87//   * InvalidResourceStateException
88//   The state of the resource is not valid for this operation.
89//
90//   * OperationNotSupportedException
91//   This operation is not supported.
92//
93// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AssociateConnectionAlias
94func (c *WorkSpaces) AssociateConnectionAlias(input *AssociateConnectionAliasInput) (*AssociateConnectionAliasOutput, error) {
95	req, out := c.AssociateConnectionAliasRequest(input)
96	return out, req.Send()
97}
98
99// AssociateConnectionAliasWithContext is the same as AssociateConnectionAlias with the addition of
100// the ability to pass a context and additional request options.
101//
102// See AssociateConnectionAlias for details on how to use this API operation.
103//
104// The context must be non-nil and will be used for request cancellation. If
105// the context is nil a panic will occur. In the future the SDK may create
106// sub-contexts for http.Requests. See https://golang.org/pkg/context/
107// for more information on using Contexts.
108func (c *WorkSpaces) AssociateConnectionAliasWithContext(ctx aws.Context, input *AssociateConnectionAliasInput, opts ...request.Option) (*AssociateConnectionAliasOutput, error) {
109	req, out := c.AssociateConnectionAliasRequest(input)
110	req.SetContext(ctx)
111	req.ApplyOptions(opts...)
112	return out, req.Send()
113}
114
115const opAssociateIpGroups = "AssociateIpGroups"
116
117// AssociateIpGroupsRequest generates a "aws/request.Request" representing the
118// client's request for the AssociateIpGroups operation. The "output" return
119// value will be populated with the request's response once the request completes
120// successfully.
121//
122// Use "Send" method on the returned Request to send the API call to the service.
123// the "output" return value is not valid until after Send returns without error.
124//
125// See AssociateIpGroups for more information on using the AssociateIpGroups
126// API call, and error handling.
127//
128// This method is useful when you want to inject custom logic or configuration
129// into the SDK's request lifecycle. Such as custom headers, or retry logic.
130//
131//
132//    // Example sending a request using the AssociateIpGroupsRequest method.
133//    req, resp := client.AssociateIpGroupsRequest(params)
134//
135//    err := req.Send()
136//    if err == nil { // resp is now filled
137//        fmt.Println(resp)
138//    }
139//
140// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AssociateIpGroups
141func (c *WorkSpaces) AssociateIpGroupsRequest(input *AssociateIpGroupsInput) (req *request.Request, output *AssociateIpGroupsOutput) {
142	op := &request.Operation{
143		Name:       opAssociateIpGroups,
144		HTTPMethod: "POST",
145		HTTPPath:   "/",
146	}
147
148	if input == nil {
149		input = &AssociateIpGroupsInput{}
150	}
151
152	output = &AssociateIpGroupsOutput{}
153	req = c.newRequest(op, input, output)
154	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
155	return
156}
157
158// AssociateIpGroups API operation for Amazon WorkSpaces.
159//
160// Associates the specified IP access control group with the specified directory.
161//
162// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
163// with awserr.Error's Code and Message methods to get detailed information about
164// the error.
165//
166// See the AWS API reference guide for Amazon WorkSpaces's
167// API operation AssociateIpGroups for usage and error information.
168//
169// Returned Error Types:
170//   * InvalidParameterValuesException
171//   One or more parameter values are not valid.
172//
173//   * ResourceNotFoundException
174//   The resource could not be found.
175//
176//   * ResourceLimitExceededException
177//   Your resource limits have been exceeded.
178//
179//   * InvalidResourceStateException
180//   The state of the resource is not valid for this operation.
181//
182//   * AccessDeniedException
183//   The user is not authorized to access a resource.
184//
185//   * OperationNotSupportedException
186//   This operation is not supported.
187//
188// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AssociateIpGroups
189func (c *WorkSpaces) AssociateIpGroups(input *AssociateIpGroupsInput) (*AssociateIpGroupsOutput, error) {
190	req, out := c.AssociateIpGroupsRequest(input)
191	return out, req.Send()
192}
193
194// AssociateIpGroupsWithContext is the same as AssociateIpGroups with the addition of
195// the ability to pass a context and additional request options.
196//
197// See AssociateIpGroups for details on how to use this API operation.
198//
199// The context must be non-nil and will be used for request cancellation. If
200// the context is nil a panic will occur. In the future the SDK may create
201// sub-contexts for http.Requests. See https://golang.org/pkg/context/
202// for more information on using Contexts.
203func (c *WorkSpaces) AssociateIpGroupsWithContext(ctx aws.Context, input *AssociateIpGroupsInput, opts ...request.Option) (*AssociateIpGroupsOutput, error) {
204	req, out := c.AssociateIpGroupsRequest(input)
205	req.SetContext(ctx)
206	req.ApplyOptions(opts...)
207	return out, req.Send()
208}
209
210const opAuthorizeIpRules = "AuthorizeIpRules"
211
212// AuthorizeIpRulesRequest generates a "aws/request.Request" representing the
213// client's request for the AuthorizeIpRules operation. The "output" return
214// value will be populated with the request's response once the request completes
215// successfully.
216//
217// Use "Send" method on the returned Request to send the API call to the service.
218// the "output" return value is not valid until after Send returns without error.
219//
220// See AuthorizeIpRules for more information on using the AuthorizeIpRules
221// API call, and error handling.
222//
223// This method is useful when you want to inject custom logic or configuration
224// into the SDK's request lifecycle. Such as custom headers, or retry logic.
225//
226//
227//    // Example sending a request using the AuthorizeIpRulesRequest method.
228//    req, resp := client.AuthorizeIpRulesRequest(params)
229//
230//    err := req.Send()
231//    if err == nil { // resp is now filled
232//        fmt.Println(resp)
233//    }
234//
235// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AuthorizeIpRules
236func (c *WorkSpaces) AuthorizeIpRulesRequest(input *AuthorizeIpRulesInput) (req *request.Request, output *AuthorizeIpRulesOutput) {
237	op := &request.Operation{
238		Name:       opAuthorizeIpRules,
239		HTTPMethod: "POST",
240		HTTPPath:   "/",
241	}
242
243	if input == nil {
244		input = &AuthorizeIpRulesInput{}
245	}
246
247	output = &AuthorizeIpRulesOutput{}
248	req = c.newRequest(op, input, output)
249	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
250	return
251}
252
253// AuthorizeIpRules API operation for Amazon WorkSpaces.
254//
255// Adds one or more rules to the specified IP access control group.
256//
257// This action gives users permission to access their WorkSpaces from the CIDR
258// address ranges specified in the rules.
259//
260// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
261// with awserr.Error's Code and Message methods to get detailed information about
262// the error.
263//
264// See the AWS API reference guide for Amazon WorkSpaces's
265// API operation AuthorizeIpRules for usage and error information.
266//
267// Returned Error Types:
268//   * InvalidParameterValuesException
269//   One or more parameter values are not valid.
270//
271//   * ResourceNotFoundException
272//   The resource could not be found.
273//
274//   * ResourceLimitExceededException
275//   Your resource limits have been exceeded.
276//
277//   * InvalidResourceStateException
278//   The state of the resource is not valid for this operation.
279//
280//   * AccessDeniedException
281//   The user is not authorized to access a resource.
282//
283// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AuthorizeIpRules
284func (c *WorkSpaces) AuthorizeIpRules(input *AuthorizeIpRulesInput) (*AuthorizeIpRulesOutput, error) {
285	req, out := c.AuthorizeIpRulesRequest(input)
286	return out, req.Send()
287}
288
289// AuthorizeIpRulesWithContext is the same as AuthorizeIpRules with the addition of
290// the ability to pass a context and additional request options.
291//
292// See AuthorizeIpRules for details on how to use this API operation.
293//
294// The context must be non-nil and will be used for request cancellation. If
295// the context is nil a panic will occur. In the future the SDK may create
296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
297// for more information on using Contexts.
298func (c *WorkSpaces) AuthorizeIpRulesWithContext(ctx aws.Context, input *AuthorizeIpRulesInput, opts ...request.Option) (*AuthorizeIpRulesOutput, error) {
299	req, out := c.AuthorizeIpRulesRequest(input)
300	req.SetContext(ctx)
301	req.ApplyOptions(opts...)
302	return out, req.Send()
303}
304
305const opCopyWorkspaceImage = "CopyWorkspaceImage"
306
307// CopyWorkspaceImageRequest generates a "aws/request.Request" representing the
308// client's request for the CopyWorkspaceImage operation. The "output" return
309// value will be populated with the request's response once the request completes
310// successfully.
311//
312// Use "Send" method on the returned Request to send the API call to the service.
313// the "output" return value is not valid until after Send returns without error.
314//
315// See CopyWorkspaceImage for more information on using the CopyWorkspaceImage
316// API call, and error handling.
317//
318// This method is useful when you want to inject custom logic or configuration
319// into the SDK's request lifecycle. Such as custom headers, or retry logic.
320//
321//
322//    // Example sending a request using the CopyWorkspaceImageRequest method.
323//    req, resp := client.CopyWorkspaceImageRequest(params)
324//
325//    err := req.Send()
326//    if err == nil { // resp is now filled
327//        fmt.Println(resp)
328//    }
329//
330// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CopyWorkspaceImage
331func (c *WorkSpaces) CopyWorkspaceImageRequest(input *CopyWorkspaceImageInput) (req *request.Request, output *CopyWorkspaceImageOutput) {
332	op := &request.Operation{
333		Name:       opCopyWorkspaceImage,
334		HTTPMethod: "POST",
335		HTTPPath:   "/",
336	}
337
338	if input == nil {
339		input = &CopyWorkspaceImageInput{}
340	}
341
342	output = &CopyWorkspaceImageOutput{}
343	req = c.newRequest(op, input, output)
344	return
345}
346
347// CopyWorkspaceImage API operation for Amazon WorkSpaces.
348//
349// Copies the specified image from the specified Region to the current Region.
350// For more information about copying images, see Copy a Custom WorkSpaces Image
351// (https://docs.aws.amazon.com/workspaces/latest/adminguide/copy-custom-image.html).
352//
353// In the China (Ningxia) Region, you can copy images only within the same Region.
354//
355// In the AWS GovCloud (US-West) Region, to copy images to and from other AWS
356// Regions, contact AWS Support.
357//
358// Before copying a shared image, be sure to verify that it has been shared
359// from the correct AWS account. To determine if an image has been shared and
360// to see the AWS account ID that owns an image, use the DescribeWorkSpaceImages
361// (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceImages.html)
362// and DescribeWorkspaceImagePermissions (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceImagePermissions.html)
363// API operations.
364//
365// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
366// with awserr.Error's Code and Message methods to get detailed information about
367// the error.
368//
369// See the AWS API reference guide for Amazon WorkSpaces's
370// API operation CopyWorkspaceImage for usage and error information.
371//
372// Returned Error Types:
373//   * ResourceLimitExceededException
374//   Your resource limits have been exceeded.
375//
376//   * ResourceAlreadyExistsException
377//   The specified resource already exists.
378//
379//   * ResourceNotFoundException
380//   The resource could not be found.
381//
382//   * ResourceUnavailableException
383//   The specified resource is not available.
384//
385//   * OperationNotSupportedException
386//   This operation is not supported.
387//
388//   * AccessDeniedException
389//   The user is not authorized to access a resource.
390//
391//   * InvalidParameterValuesException
392//   One or more parameter values are not valid.
393//
394// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CopyWorkspaceImage
395func (c *WorkSpaces) CopyWorkspaceImage(input *CopyWorkspaceImageInput) (*CopyWorkspaceImageOutput, error) {
396	req, out := c.CopyWorkspaceImageRequest(input)
397	return out, req.Send()
398}
399
400// CopyWorkspaceImageWithContext is the same as CopyWorkspaceImage with the addition of
401// the ability to pass a context and additional request options.
402//
403// See CopyWorkspaceImage for details on how to use this API operation.
404//
405// The context must be non-nil and will be used for request cancellation. If
406// the context is nil a panic will occur. In the future the SDK may create
407// sub-contexts for http.Requests. See https://golang.org/pkg/context/
408// for more information on using Contexts.
409func (c *WorkSpaces) CopyWorkspaceImageWithContext(ctx aws.Context, input *CopyWorkspaceImageInput, opts ...request.Option) (*CopyWorkspaceImageOutput, error) {
410	req, out := c.CopyWorkspaceImageRequest(input)
411	req.SetContext(ctx)
412	req.ApplyOptions(opts...)
413	return out, req.Send()
414}
415
416const opCreateConnectionAlias = "CreateConnectionAlias"
417
418// CreateConnectionAliasRequest generates a "aws/request.Request" representing the
419// client's request for the CreateConnectionAlias operation. The "output" return
420// value will be populated with the request's response once the request completes
421// successfully.
422//
423// Use "Send" method on the returned Request to send the API call to the service.
424// the "output" return value is not valid until after Send returns without error.
425//
426// See CreateConnectionAlias for more information on using the CreateConnectionAlias
427// API call, and error handling.
428//
429// This method is useful when you want to inject custom logic or configuration
430// into the SDK's request lifecycle. Such as custom headers, or retry logic.
431//
432//
433//    // Example sending a request using the CreateConnectionAliasRequest method.
434//    req, resp := client.CreateConnectionAliasRequest(params)
435//
436//    err := req.Send()
437//    if err == nil { // resp is now filled
438//        fmt.Println(resp)
439//    }
440//
441// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateConnectionAlias
442func (c *WorkSpaces) CreateConnectionAliasRequest(input *CreateConnectionAliasInput) (req *request.Request, output *CreateConnectionAliasOutput) {
443	op := &request.Operation{
444		Name:       opCreateConnectionAlias,
445		HTTPMethod: "POST",
446		HTTPPath:   "/",
447	}
448
449	if input == nil {
450		input = &CreateConnectionAliasInput{}
451	}
452
453	output = &CreateConnectionAliasOutput{}
454	req = c.newRequest(op, input, output)
455	return
456}
457
458// CreateConnectionAlias API operation for Amazon WorkSpaces.
459//
460// Creates the specified connection alias for use with cross-Region redirection.
461// For more information, see Cross-Region Redirection for Amazon WorkSpaces
462// (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
463//
464// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
465// with awserr.Error's Code and Message methods to get detailed information about
466// the error.
467//
468// See the AWS API reference guide for Amazon WorkSpaces's
469// API operation CreateConnectionAlias for usage and error information.
470//
471// Returned Error Types:
472//   * ResourceAlreadyExistsException
473//   The specified resource already exists.
474//
475//   * AccessDeniedException
476//   The user is not authorized to access a resource.
477//
478//   * InvalidParameterValuesException
479//   One or more parameter values are not valid.
480//
481//   * ResourceLimitExceededException
482//   Your resource limits have been exceeded.
483//
484//   * InvalidResourceStateException
485//   The state of the resource is not valid for this operation.
486//
487//   * OperationNotSupportedException
488//   This operation is not supported.
489//
490// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateConnectionAlias
491func (c *WorkSpaces) CreateConnectionAlias(input *CreateConnectionAliasInput) (*CreateConnectionAliasOutput, error) {
492	req, out := c.CreateConnectionAliasRequest(input)
493	return out, req.Send()
494}
495
496// CreateConnectionAliasWithContext is the same as CreateConnectionAlias with the addition of
497// the ability to pass a context and additional request options.
498//
499// See CreateConnectionAlias for details on how to use this API operation.
500//
501// The context must be non-nil and will be used for request cancellation. If
502// the context is nil a panic will occur. In the future the SDK may create
503// sub-contexts for http.Requests. See https://golang.org/pkg/context/
504// for more information on using Contexts.
505func (c *WorkSpaces) CreateConnectionAliasWithContext(ctx aws.Context, input *CreateConnectionAliasInput, opts ...request.Option) (*CreateConnectionAliasOutput, error) {
506	req, out := c.CreateConnectionAliasRequest(input)
507	req.SetContext(ctx)
508	req.ApplyOptions(opts...)
509	return out, req.Send()
510}
511
512const opCreateIpGroup = "CreateIpGroup"
513
514// CreateIpGroupRequest generates a "aws/request.Request" representing the
515// client's request for the CreateIpGroup operation. The "output" return
516// value will be populated with the request's response once the request completes
517// successfully.
518//
519// Use "Send" method on the returned Request to send the API call to the service.
520// the "output" return value is not valid until after Send returns without error.
521//
522// See CreateIpGroup for more information on using the CreateIpGroup
523// API call, and error handling.
524//
525// This method is useful when you want to inject custom logic or configuration
526// into the SDK's request lifecycle. Such as custom headers, or retry logic.
527//
528//
529//    // Example sending a request using the CreateIpGroupRequest method.
530//    req, resp := client.CreateIpGroupRequest(params)
531//
532//    err := req.Send()
533//    if err == nil { // resp is now filled
534//        fmt.Println(resp)
535//    }
536//
537// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateIpGroup
538func (c *WorkSpaces) CreateIpGroupRequest(input *CreateIpGroupInput) (req *request.Request, output *CreateIpGroupOutput) {
539	op := &request.Operation{
540		Name:       opCreateIpGroup,
541		HTTPMethod: "POST",
542		HTTPPath:   "/",
543	}
544
545	if input == nil {
546		input = &CreateIpGroupInput{}
547	}
548
549	output = &CreateIpGroupOutput{}
550	req = c.newRequest(op, input, output)
551	return
552}
553
554// CreateIpGroup API operation for Amazon WorkSpaces.
555//
556// Creates an IP access control group.
557//
558// An IP access control group provides you with the ability to control the IP
559// addresses from which users are allowed to access their WorkSpaces. To specify
560// the CIDR address ranges, add rules to your IP access control group and then
561// associate the group with your directory. You can add rules when you create
562// the group or at any time using AuthorizeIpRules.
563//
564// There is a default IP access control group associated with your directory.
565// If you don't associate an IP access control group with your directory, the
566// default group is used. The default group includes a default rule that allows
567// users to access their WorkSpaces from anywhere. You cannot modify the default
568// IP access control group for your directory.
569//
570// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
571// with awserr.Error's Code and Message methods to get detailed information about
572// the error.
573//
574// See the AWS API reference guide for Amazon WorkSpaces's
575// API operation CreateIpGroup for usage and error information.
576//
577// Returned Error Types:
578//   * InvalidParameterValuesException
579//   One or more parameter values are not valid.
580//
581//   * ResourceLimitExceededException
582//   Your resource limits have been exceeded.
583//
584//   * ResourceAlreadyExistsException
585//   The specified resource already exists.
586//
587//   * ResourceCreationFailedException
588//   The resource could not be created.
589//
590//   * AccessDeniedException
591//   The user is not authorized to access a resource.
592//
593// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateIpGroup
594func (c *WorkSpaces) CreateIpGroup(input *CreateIpGroupInput) (*CreateIpGroupOutput, error) {
595	req, out := c.CreateIpGroupRequest(input)
596	return out, req.Send()
597}
598
599// CreateIpGroupWithContext is the same as CreateIpGroup with the addition of
600// the ability to pass a context and additional request options.
601//
602// See CreateIpGroup for details on how to use this API operation.
603//
604// The context must be non-nil and will be used for request cancellation. If
605// the context is nil a panic will occur. In the future the SDK may create
606// sub-contexts for http.Requests. See https://golang.org/pkg/context/
607// for more information on using Contexts.
608func (c *WorkSpaces) CreateIpGroupWithContext(ctx aws.Context, input *CreateIpGroupInput, opts ...request.Option) (*CreateIpGroupOutput, error) {
609	req, out := c.CreateIpGroupRequest(input)
610	req.SetContext(ctx)
611	req.ApplyOptions(opts...)
612	return out, req.Send()
613}
614
615const opCreateTags = "CreateTags"
616
617// CreateTagsRequest generates a "aws/request.Request" representing the
618// client's request for the CreateTags operation. The "output" return
619// value will be populated with the request's response once the request completes
620// successfully.
621//
622// Use "Send" method on the returned Request to send the API call to the service.
623// the "output" return value is not valid until after Send returns without error.
624//
625// See CreateTags for more information on using the CreateTags
626// API call, and error handling.
627//
628// This method is useful when you want to inject custom logic or configuration
629// into the SDK's request lifecycle. Such as custom headers, or retry logic.
630//
631//
632//    // Example sending a request using the CreateTagsRequest method.
633//    req, resp := client.CreateTagsRequest(params)
634//
635//    err := req.Send()
636//    if err == nil { // resp is now filled
637//        fmt.Println(resp)
638//    }
639//
640// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateTags
641func (c *WorkSpaces) CreateTagsRequest(input *CreateTagsInput) (req *request.Request, output *CreateTagsOutput) {
642	op := &request.Operation{
643		Name:       opCreateTags,
644		HTTPMethod: "POST",
645		HTTPPath:   "/",
646	}
647
648	if input == nil {
649		input = &CreateTagsInput{}
650	}
651
652	output = &CreateTagsOutput{}
653	req = c.newRequest(op, input, output)
654	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
655	return
656}
657
658// CreateTags API operation for Amazon WorkSpaces.
659//
660// Creates the specified tags for the specified WorkSpaces resource.
661//
662// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
663// with awserr.Error's Code and Message methods to get detailed information about
664// the error.
665//
666// See the AWS API reference guide for Amazon WorkSpaces's
667// API operation CreateTags for usage and error information.
668//
669// Returned Error Types:
670//   * ResourceNotFoundException
671//   The resource could not be found.
672//
673//   * InvalidParameterValuesException
674//   One or more parameter values are not valid.
675//
676//   * ResourceLimitExceededException
677//   Your resource limits have been exceeded.
678//
679// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateTags
680func (c *WorkSpaces) CreateTags(input *CreateTagsInput) (*CreateTagsOutput, error) {
681	req, out := c.CreateTagsRequest(input)
682	return out, req.Send()
683}
684
685// CreateTagsWithContext is the same as CreateTags with the addition of
686// the ability to pass a context and additional request options.
687//
688// See CreateTags for details on how to use this API operation.
689//
690// The context must be non-nil and will be used for request cancellation. If
691// the context is nil a panic will occur. In the future the SDK may create
692// sub-contexts for http.Requests. See https://golang.org/pkg/context/
693// for more information on using Contexts.
694func (c *WorkSpaces) CreateTagsWithContext(ctx aws.Context, input *CreateTagsInput, opts ...request.Option) (*CreateTagsOutput, error) {
695	req, out := c.CreateTagsRequest(input)
696	req.SetContext(ctx)
697	req.ApplyOptions(opts...)
698	return out, req.Send()
699}
700
701const opCreateWorkspaces = "CreateWorkspaces"
702
703// CreateWorkspacesRequest generates a "aws/request.Request" representing the
704// client's request for the CreateWorkspaces operation. The "output" return
705// value will be populated with the request's response once the request completes
706// successfully.
707//
708// Use "Send" method on the returned Request to send the API call to the service.
709// the "output" return value is not valid until after Send returns without error.
710//
711// See CreateWorkspaces for more information on using the CreateWorkspaces
712// API call, and error handling.
713//
714// This method is useful when you want to inject custom logic or configuration
715// into the SDK's request lifecycle. Such as custom headers, or retry logic.
716//
717//
718//    // Example sending a request using the CreateWorkspacesRequest method.
719//    req, resp := client.CreateWorkspacesRequest(params)
720//
721//    err := req.Send()
722//    if err == nil { // resp is now filled
723//        fmt.Println(resp)
724//    }
725//
726// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateWorkspaces
727func (c *WorkSpaces) CreateWorkspacesRequest(input *CreateWorkspacesInput) (req *request.Request, output *CreateWorkspacesOutput) {
728	op := &request.Operation{
729		Name:       opCreateWorkspaces,
730		HTTPMethod: "POST",
731		HTTPPath:   "/",
732	}
733
734	if input == nil {
735		input = &CreateWorkspacesInput{}
736	}
737
738	output = &CreateWorkspacesOutput{}
739	req = c.newRequest(op, input, output)
740	return
741}
742
743// CreateWorkspaces API operation for Amazon WorkSpaces.
744//
745// Creates one or more WorkSpaces.
746//
747// This operation is asynchronous and returns before the WorkSpaces are created.
748//
749// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
750// with awserr.Error's Code and Message methods to get detailed information about
751// the error.
752//
753// See the AWS API reference guide for Amazon WorkSpaces's
754// API operation CreateWorkspaces for usage and error information.
755//
756// Returned Error Types:
757//   * ResourceLimitExceededException
758//   Your resource limits have been exceeded.
759//
760//   * InvalidParameterValuesException
761//   One or more parameter values are not valid.
762//
763// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateWorkspaces
764func (c *WorkSpaces) CreateWorkspaces(input *CreateWorkspacesInput) (*CreateWorkspacesOutput, error) {
765	req, out := c.CreateWorkspacesRequest(input)
766	return out, req.Send()
767}
768
769// CreateWorkspacesWithContext is the same as CreateWorkspaces with the addition of
770// the ability to pass a context and additional request options.
771//
772// See CreateWorkspaces for details on how to use this API operation.
773//
774// The context must be non-nil and will be used for request cancellation. If
775// the context is nil a panic will occur. In the future the SDK may create
776// sub-contexts for http.Requests. See https://golang.org/pkg/context/
777// for more information on using Contexts.
778func (c *WorkSpaces) CreateWorkspacesWithContext(ctx aws.Context, input *CreateWorkspacesInput, opts ...request.Option) (*CreateWorkspacesOutput, error) {
779	req, out := c.CreateWorkspacesRequest(input)
780	req.SetContext(ctx)
781	req.ApplyOptions(opts...)
782	return out, req.Send()
783}
784
785const opDeleteConnectionAlias = "DeleteConnectionAlias"
786
787// DeleteConnectionAliasRequest generates a "aws/request.Request" representing the
788// client's request for the DeleteConnectionAlias operation. The "output" return
789// value will be populated with the request's response once the request completes
790// successfully.
791//
792// Use "Send" method on the returned Request to send the API call to the service.
793// the "output" return value is not valid until after Send returns without error.
794//
795// See DeleteConnectionAlias for more information on using the DeleteConnectionAlias
796// API call, and error handling.
797//
798// This method is useful when you want to inject custom logic or configuration
799// into the SDK's request lifecycle. Such as custom headers, or retry logic.
800//
801//
802//    // Example sending a request using the DeleteConnectionAliasRequest method.
803//    req, resp := client.DeleteConnectionAliasRequest(params)
804//
805//    err := req.Send()
806//    if err == nil { // resp is now filled
807//        fmt.Println(resp)
808//    }
809//
810// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteConnectionAlias
811func (c *WorkSpaces) DeleteConnectionAliasRequest(input *DeleteConnectionAliasInput) (req *request.Request, output *DeleteConnectionAliasOutput) {
812	op := &request.Operation{
813		Name:       opDeleteConnectionAlias,
814		HTTPMethod: "POST",
815		HTTPPath:   "/",
816	}
817
818	if input == nil {
819		input = &DeleteConnectionAliasInput{}
820	}
821
822	output = &DeleteConnectionAliasOutput{}
823	req = c.newRequest(op, input, output)
824	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
825	return
826}
827
828// DeleteConnectionAlias API operation for Amazon WorkSpaces.
829//
830// Deletes the specified connection alias. For more information, see Cross-Region
831// Redirection for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
832//
833// If you will no longer be using a fully qualified domain name (FQDN) as the
834// registration code for your WorkSpaces users, you must take certain precautions
835// to prevent potential security issues. For more information, see Security
836// Considerations if You Stop Using Cross-Region Redirection (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html#cross-region-redirection-security-considerations).
837//
838// To delete a connection alias that has been shared, the shared account must
839// first disassociate the connection alias from any directories it has been
840// associated with. Then you must unshare the connection alias from the account
841// it has been shared with. You can delete a connection alias only after it
842// is no longer shared with any accounts or associated with any directories.
843//
844// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
845// with awserr.Error's Code and Message methods to get detailed information about
846// the error.
847//
848// See the AWS API reference guide for Amazon WorkSpaces's
849// API operation DeleteConnectionAlias for usage and error information.
850//
851// Returned Error Types:
852//   * ResourceNotFoundException
853//   The resource could not be found.
854//
855//   * ResourceAssociatedException
856//   The resource is associated with a directory.
857//
858//   * AccessDeniedException
859//   The user is not authorized to access a resource.
860//
861//   * InvalidParameterValuesException
862//   One or more parameter values are not valid.
863//
864//   * InvalidResourceStateException
865//   The state of the resource is not valid for this operation.
866//
867//   * OperationNotSupportedException
868//   This operation is not supported.
869//
870// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteConnectionAlias
871func (c *WorkSpaces) DeleteConnectionAlias(input *DeleteConnectionAliasInput) (*DeleteConnectionAliasOutput, error) {
872	req, out := c.DeleteConnectionAliasRequest(input)
873	return out, req.Send()
874}
875
876// DeleteConnectionAliasWithContext is the same as DeleteConnectionAlias with the addition of
877// the ability to pass a context and additional request options.
878//
879// See DeleteConnectionAlias for details on how to use this API operation.
880//
881// The context must be non-nil and will be used for request cancellation. If
882// the context is nil a panic will occur. In the future the SDK may create
883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
884// for more information on using Contexts.
885func (c *WorkSpaces) DeleteConnectionAliasWithContext(ctx aws.Context, input *DeleteConnectionAliasInput, opts ...request.Option) (*DeleteConnectionAliasOutput, error) {
886	req, out := c.DeleteConnectionAliasRequest(input)
887	req.SetContext(ctx)
888	req.ApplyOptions(opts...)
889	return out, req.Send()
890}
891
892const opDeleteIpGroup = "DeleteIpGroup"
893
894// DeleteIpGroupRequest generates a "aws/request.Request" representing the
895// client's request for the DeleteIpGroup operation. The "output" return
896// value will be populated with the request's response once the request completes
897// successfully.
898//
899// Use "Send" method on the returned Request to send the API call to the service.
900// the "output" return value is not valid until after Send returns without error.
901//
902// See DeleteIpGroup for more information on using the DeleteIpGroup
903// API call, and error handling.
904//
905// This method is useful when you want to inject custom logic or configuration
906// into the SDK's request lifecycle. Such as custom headers, or retry logic.
907//
908//
909//    // Example sending a request using the DeleteIpGroupRequest method.
910//    req, resp := client.DeleteIpGroupRequest(params)
911//
912//    err := req.Send()
913//    if err == nil { // resp is now filled
914//        fmt.Println(resp)
915//    }
916//
917// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteIpGroup
918func (c *WorkSpaces) DeleteIpGroupRequest(input *DeleteIpGroupInput) (req *request.Request, output *DeleteIpGroupOutput) {
919	op := &request.Operation{
920		Name:       opDeleteIpGroup,
921		HTTPMethod: "POST",
922		HTTPPath:   "/",
923	}
924
925	if input == nil {
926		input = &DeleteIpGroupInput{}
927	}
928
929	output = &DeleteIpGroupOutput{}
930	req = c.newRequest(op, input, output)
931	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
932	return
933}
934
935// DeleteIpGroup API operation for Amazon WorkSpaces.
936//
937// Deletes the specified IP access control group.
938//
939// You cannot delete an IP access control group that is associated with a directory.
940//
941// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
942// with awserr.Error's Code and Message methods to get detailed information about
943// the error.
944//
945// See the AWS API reference guide for Amazon WorkSpaces's
946// API operation DeleteIpGroup for usage and error information.
947//
948// Returned Error Types:
949//   * InvalidParameterValuesException
950//   One or more parameter values are not valid.
951//
952//   * ResourceNotFoundException
953//   The resource could not be found.
954//
955//   * ResourceAssociatedException
956//   The resource is associated with a directory.
957//
958//   * AccessDeniedException
959//   The user is not authorized to access a resource.
960//
961// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteIpGroup
962func (c *WorkSpaces) DeleteIpGroup(input *DeleteIpGroupInput) (*DeleteIpGroupOutput, error) {
963	req, out := c.DeleteIpGroupRequest(input)
964	return out, req.Send()
965}
966
967// DeleteIpGroupWithContext is the same as DeleteIpGroup with the addition of
968// the ability to pass a context and additional request options.
969//
970// See DeleteIpGroup for details on how to use this API operation.
971//
972// The context must be non-nil and will be used for request cancellation. If
973// the context is nil a panic will occur. In the future the SDK may create
974// sub-contexts for http.Requests. See https://golang.org/pkg/context/
975// for more information on using Contexts.
976func (c *WorkSpaces) DeleteIpGroupWithContext(ctx aws.Context, input *DeleteIpGroupInput, opts ...request.Option) (*DeleteIpGroupOutput, error) {
977	req, out := c.DeleteIpGroupRequest(input)
978	req.SetContext(ctx)
979	req.ApplyOptions(opts...)
980	return out, req.Send()
981}
982
983const opDeleteTags = "DeleteTags"
984
985// DeleteTagsRequest generates a "aws/request.Request" representing the
986// client's request for the DeleteTags operation. The "output" return
987// value will be populated with the request's response once the request completes
988// successfully.
989//
990// Use "Send" method on the returned Request to send the API call to the service.
991// the "output" return value is not valid until after Send returns without error.
992//
993// See DeleteTags for more information on using the DeleteTags
994// API call, and error handling.
995//
996// This method is useful when you want to inject custom logic or configuration
997// into the SDK's request lifecycle. Such as custom headers, or retry logic.
998//
999//
1000//    // Example sending a request using the DeleteTagsRequest method.
1001//    req, resp := client.DeleteTagsRequest(params)
1002//
1003//    err := req.Send()
1004//    if err == nil { // resp is now filled
1005//        fmt.Println(resp)
1006//    }
1007//
1008// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteTags
1009func (c *WorkSpaces) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, output *DeleteTagsOutput) {
1010	op := &request.Operation{
1011		Name:       opDeleteTags,
1012		HTTPMethod: "POST",
1013		HTTPPath:   "/",
1014	}
1015
1016	if input == nil {
1017		input = &DeleteTagsInput{}
1018	}
1019
1020	output = &DeleteTagsOutput{}
1021	req = c.newRequest(op, input, output)
1022	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1023	return
1024}
1025
1026// DeleteTags API operation for Amazon WorkSpaces.
1027//
1028// Deletes the specified tags from the specified WorkSpaces resource.
1029//
1030// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1031// with awserr.Error's Code and Message methods to get detailed information about
1032// the error.
1033//
1034// See the AWS API reference guide for Amazon WorkSpaces's
1035// API operation DeleteTags for usage and error information.
1036//
1037// Returned Error Types:
1038//   * ResourceNotFoundException
1039//   The resource could not be found.
1040//
1041//   * InvalidParameterValuesException
1042//   One or more parameter values are not valid.
1043//
1044// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteTags
1045func (c *WorkSpaces) DeleteTags(input *DeleteTagsInput) (*DeleteTagsOutput, error) {
1046	req, out := c.DeleteTagsRequest(input)
1047	return out, req.Send()
1048}
1049
1050// DeleteTagsWithContext is the same as DeleteTags with the addition of
1051// the ability to pass a context and additional request options.
1052//
1053// See DeleteTags for details on how to use this API operation.
1054//
1055// The context must be non-nil and will be used for request cancellation. If
1056// the context is nil a panic will occur. In the future the SDK may create
1057// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1058// for more information on using Contexts.
1059func (c *WorkSpaces) DeleteTagsWithContext(ctx aws.Context, input *DeleteTagsInput, opts ...request.Option) (*DeleteTagsOutput, error) {
1060	req, out := c.DeleteTagsRequest(input)
1061	req.SetContext(ctx)
1062	req.ApplyOptions(opts...)
1063	return out, req.Send()
1064}
1065
1066const opDeleteWorkspaceImage = "DeleteWorkspaceImage"
1067
1068// DeleteWorkspaceImageRequest generates a "aws/request.Request" representing the
1069// client's request for the DeleteWorkspaceImage operation. The "output" return
1070// value will be populated with the request's response once the request completes
1071// successfully.
1072//
1073// Use "Send" method on the returned Request to send the API call to the service.
1074// the "output" return value is not valid until after Send returns without error.
1075//
1076// See DeleteWorkspaceImage for more information on using the DeleteWorkspaceImage
1077// API call, and error handling.
1078//
1079// This method is useful when you want to inject custom logic or configuration
1080// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1081//
1082//
1083//    // Example sending a request using the DeleteWorkspaceImageRequest method.
1084//    req, resp := client.DeleteWorkspaceImageRequest(params)
1085//
1086//    err := req.Send()
1087//    if err == nil { // resp is now filled
1088//        fmt.Println(resp)
1089//    }
1090//
1091// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteWorkspaceImage
1092func (c *WorkSpaces) DeleteWorkspaceImageRequest(input *DeleteWorkspaceImageInput) (req *request.Request, output *DeleteWorkspaceImageOutput) {
1093	op := &request.Operation{
1094		Name:       opDeleteWorkspaceImage,
1095		HTTPMethod: "POST",
1096		HTTPPath:   "/",
1097	}
1098
1099	if input == nil {
1100		input = &DeleteWorkspaceImageInput{}
1101	}
1102
1103	output = &DeleteWorkspaceImageOutput{}
1104	req = c.newRequest(op, input, output)
1105	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1106	return
1107}
1108
1109// DeleteWorkspaceImage API operation for Amazon WorkSpaces.
1110//
1111// Deletes the specified image from your account. To delete an image, you must
1112// first delete any bundles that are associated with the image and unshare the
1113// image if it is shared with other accounts.
1114//
1115// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1116// with awserr.Error's Code and Message methods to get detailed information about
1117// the error.
1118//
1119// See the AWS API reference guide for Amazon WorkSpaces's
1120// API operation DeleteWorkspaceImage for usage and error information.
1121//
1122// Returned Error Types:
1123//   * ResourceAssociatedException
1124//   The resource is associated with a directory.
1125//
1126//   * InvalidResourceStateException
1127//   The state of the resource is not valid for this operation.
1128//
1129//   * AccessDeniedException
1130//   The user is not authorized to access a resource.
1131//
1132// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteWorkspaceImage
1133func (c *WorkSpaces) DeleteWorkspaceImage(input *DeleteWorkspaceImageInput) (*DeleteWorkspaceImageOutput, error) {
1134	req, out := c.DeleteWorkspaceImageRequest(input)
1135	return out, req.Send()
1136}
1137
1138// DeleteWorkspaceImageWithContext is the same as DeleteWorkspaceImage with the addition of
1139// the ability to pass a context and additional request options.
1140//
1141// See DeleteWorkspaceImage for details on how to use this API operation.
1142//
1143// The context must be non-nil and will be used for request cancellation. If
1144// the context is nil a panic will occur. In the future the SDK may create
1145// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1146// for more information on using Contexts.
1147func (c *WorkSpaces) DeleteWorkspaceImageWithContext(ctx aws.Context, input *DeleteWorkspaceImageInput, opts ...request.Option) (*DeleteWorkspaceImageOutput, error) {
1148	req, out := c.DeleteWorkspaceImageRequest(input)
1149	req.SetContext(ctx)
1150	req.ApplyOptions(opts...)
1151	return out, req.Send()
1152}
1153
1154const opDeregisterWorkspaceDirectory = "DeregisterWorkspaceDirectory"
1155
1156// DeregisterWorkspaceDirectoryRequest generates a "aws/request.Request" representing the
1157// client's request for the DeregisterWorkspaceDirectory operation. The "output" return
1158// value will be populated with the request's response once the request completes
1159// successfully.
1160//
1161// Use "Send" method on the returned Request to send the API call to the service.
1162// the "output" return value is not valid until after Send returns without error.
1163//
1164// See DeregisterWorkspaceDirectory for more information on using the DeregisterWorkspaceDirectory
1165// API call, and error handling.
1166//
1167// This method is useful when you want to inject custom logic or configuration
1168// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1169//
1170//
1171//    // Example sending a request using the DeregisterWorkspaceDirectoryRequest method.
1172//    req, resp := client.DeregisterWorkspaceDirectoryRequest(params)
1173//
1174//    err := req.Send()
1175//    if err == nil { // resp is now filled
1176//        fmt.Println(resp)
1177//    }
1178//
1179// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeregisterWorkspaceDirectory
1180func (c *WorkSpaces) DeregisterWorkspaceDirectoryRequest(input *DeregisterWorkspaceDirectoryInput) (req *request.Request, output *DeregisterWorkspaceDirectoryOutput) {
1181	op := &request.Operation{
1182		Name:       opDeregisterWorkspaceDirectory,
1183		HTTPMethod: "POST",
1184		HTTPPath:   "/",
1185	}
1186
1187	if input == nil {
1188		input = &DeregisterWorkspaceDirectoryInput{}
1189	}
1190
1191	output = &DeregisterWorkspaceDirectoryOutput{}
1192	req = c.newRequest(op, input, output)
1193	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1194	return
1195}
1196
1197// DeregisterWorkspaceDirectory API operation for Amazon WorkSpaces.
1198//
1199// Deregisters the specified directory. This operation is asynchronous and returns
1200// before the WorkSpace directory is deregistered. If any WorkSpaces are registered
1201// to this directory, you must remove them before you can deregister the directory.
1202//
1203// Simple AD and AD Connector are made available to you free of charge to use
1204// with WorkSpaces. If there are no WorkSpaces being used with your Simple AD
1205// or AD Connector directory for 30 consecutive days, this directory will be
1206// automatically deregistered for use with Amazon WorkSpaces, and you will be
1207// charged for this directory as per the AWS Directory Services pricing terms
1208// (http://aws.amazon.com/directoryservice/pricing/).
1209//
1210// To delete empty directories, see Delete the Directory for Your WorkSpaces
1211// (https://docs.aws.amazon.com/workspaces/latest/adminguide/delete-workspaces-directory.html).
1212// If you delete your Simple AD or AD Connector directory, you can always create
1213// a new one when you want to start using WorkSpaces again.
1214//
1215// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1216// with awserr.Error's Code and Message methods to get detailed information about
1217// the error.
1218//
1219// See the AWS API reference guide for Amazon WorkSpaces's
1220// API operation DeregisterWorkspaceDirectory for usage and error information.
1221//
1222// Returned Error Types:
1223//   * AccessDeniedException
1224//   The user is not authorized to access a resource.
1225//
1226//   * InvalidParameterValuesException
1227//   One or more parameter values are not valid.
1228//
1229//   * OperationNotSupportedException
1230//   This operation is not supported.
1231//
1232//   * ResourceNotFoundException
1233//   The resource could not be found.
1234//
1235//   * InvalidResourceStateException
1236//   The state of the resource is not valid for this operation.
1237//
1238// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeregisterWorkspaceDirectory
1239func (c *WorkSpaces) DeregisterWorkspaceDirectory(input *DeregisterWorkspaceDirectoryInput) (*DeregisterWorkspaceDirectoryOutput, error) {
1240	req, out := c.DeregisterWorkspaceDirectoryRequest(input)
1241	return out, req.Send()
1242}
1243
1244// DeregisterWorkspaceDirectoryWithContext is the same as DeregisterWorkspaceDirectory with the addition of
1245// the ability to pass a context and additional request options.
1246//
1247// See DeregisterWorkspaceDirectory for details on how to use this API operation.
1248//
1249// The context must be non-nil and will be used for request cancellation. If
1250// the context is nil a panic will occur. In the future the SDK may create
1251// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1252// for more information on using Contexts.
1253func (c *WorkSpaces) DeregisterWorkspaceDirectoryWithContext(ctx aws.Context, input *DeregisterWorkspaceDirectoryInput, opts ...request.Option) (*DeregisterWorkspaceDirectoryOutput, error) {
1254	req, out := c.DeregisterWorkspaceDirectoryRequest(input)
1255	req.SetContext(ctx)
1256	req.ApplyOptions(opts...)
1257	return out, req.Send()
1258}
1259
1260const opDescribeAccount = "DescribeAccount"
1261
1262// DescribeAccountRequest generates a "aws/request.Request" representing the
1263// client's request for the DescribeAccount operation. The "output" return
1264// value will be populated with the request's response once the request completes
1265// successfully.
1266//
1267// Use "Send" method on the returned Request to send the API call to the service.
1268// the "output" return value is not valid until after Send returns without error.
1269//
1270// See DescribeAccount for more information on using the DescribeAccount
1271// API call, and error handling.
1272//
1273// This method is useful when you want to inject custom logic or configuration
1274// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1275//
1276//
1277//    // Example sending a request using the DescribeAccountRequest method.
1278//    req, resp := client.DescribeAccountRequest(params)
1279//
1280//    err := req.Send()
1281//    if err == nil { // resp is now filled
1282//        fmt.Println(resp)
1283//    }
1284//
1285// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccount
1286func (c *WorkSpaces) DescribeAccountRequest(input *DescribeAccountInput) (req *request.Request, output *DescribeAccountOutput) {
1287	op := &request.Operation{
1288		Name:       opDescribeAccount,
1289		HTTPMethod: "POST",
1290		HTTPPath:   "/",
1291	}
1292
1293	if input == nil {
1294		input = &DescribeAccountInput{}
1295	}
1296
1297	output = &DescribeAccountOutput{}
1298	req = c.newRequest(op, input, output)
1299	return
1300}
1301
1302// DescribeAccount API operation for Amazon WorkSpaces.
1303//
1304// Retrieves a list that describes the configuration of Bring Your Own License
1305// (BYOL) for the specified account.
1306//
1307// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1308// with awserr.Error's Code and Message methods to get detailed information about
1309// the error.
1310//
1311// See the AWS API reference guide for Amazon WorkSpaces's
1312// API operation DescribeAccount for usage and error information.
1313//
1314// Returned Error Types:
1315//   * AccessDeniedException
1316//   The user is not authorized to access a resource.
1317//
1318// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccount
1319func (c *WorkSpaces) DescribeAccount(input *DescribeAccountInput) (*DescribeAccountOutput, error) {
1320	req, out := c.DescribeAccountRequest(input)
1321	return out, req.Send()
1322}
1323
1324// DescribeAccountWithContext is the same as DescribeAccount with the addition of
1325// the ability to pass a context and additional request options.
1326//
1327// See DescribeAccount for details on how to use this API operation.
1328//
1329// The context must be non-nil and will be used for request cancellation. If
1330// the context is nil a panic will occur. In the future the SDK may create
1331// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1332// for more information on using Contexts.
1333func (c *WorkSpaces) DescribeAccountWithContext(ctx aws.Context, input *DescribeAccountInput, opts ...request.Option) (*DescribeAccountOutput, error) {
1334	req, out := c.DescribeAccountRequest(input)
1335	req.SetContext(ctx)
1336	req.ApplyOptions(opts...)
1337	return out, req.Send()
1338}
1339
1340const opDescribeAccountModifications = "DescribeAccountModifications"
1341
1342// DescribeAccountModificationsRequest generates a "aws/request.Request" representing the
1343// client's request for the DescribeAccountModifications operation. The "output" return
1344// value will be populated with the request's response once the request completes
1345// successfully.
1346//
1347// Use "Send" method on the returned Request to send the API call to the service.
1348// the "output" return value is not valid until after Send returns without error.
1349//
1350// See DescribeAccountModifications for more information on using the DescribeAccountModifications
1351// API call, and error handling.
1352//
1353// This method is useful when you want to inject custom logic or configuration
1354// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1355//
1356//
1357//    // Example sending a request using the DescribeAccountModificationsRequest method.
1358//    req, resp := client.DescribeAccountModificationsRequest(params)
1359//
1360//    err := req.Send()
1361//    if err == nil { // resp is now filled
1362//        fmt.Println(resp)
1363//    }
1364//
1365// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccountModifications
1366func (c *WorkSpaces) DescribeAccountModificationsRequest(input *DescribeAccountModificationsInput) (req *request.Request, output *DescribeAccountModificationsOutput) {
1367	op := &request.Operation{
1368		Name:       opDescribeAccountModifications,
1369		HTTPMethod: "POST",
1370		HTTPPath:   "/",
1371	}
1372
1373	if input == nil {
1374		input = &DescribeAccountModificationsInput{}
1375	}
1376
1377	output = &DescribeAccountModificationsOutput{}
1378	req = c.newRequest(op, input, output)
1379	return
1380}
1381
1382// DescribeAccountModifications API operation for Amazon WorkSpaces.
1383//
1384// Retrieves a list that describes modifications to the configuration of Bring
1385// Your Own License (BYOL) for the specified account.
1386//
1387// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1388// with awserr.Error's Code and Message methods to get detailed information about
1389// the error.
1390//
1391// See the AWS API reference guide for Amazon WorkSpaces's
1392// API operation DescribeAccountModifications for usage and error information.
1393//
1394// Returned Error Types:
1395//   * AccessDeniedException
1396//   The user is not authorized to access a resource.
1397//
1398// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccountModifications
1399func (c *WorkSpaces) DescribeAccountModifications(input *DescribeAccountModificationsInput) (*DescribeAccountModificationsOutput, error) {
1400	req, out := c.DescribeAccountModificationsRequest(input)
1401	return out, req.Send()
1402}
1403
1404// DescribeAccountModificationsWithContext is the same as DescribeAccountModifications with the addition of
1405// the ability to pass a context and additional request options.
1406//
1407// See DescribeAccountModifications for details on how to use this API operation.
1408//
1409// The context must be non-nil and will be used for request cancellation. If
1410// the context is nil a panic will occur. In the future the SDK may create
1411// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1412// for more information on using Contexts.
1413func (c *WorkSpaces) DescribeAccountModificationsWithContext(ctx aws.Context, input *DescribeAccountModificationsInput, opts ...request.Option) (*DescribeAccountModificationsOutput, error) {
1414	req, out := c.DescribeAccountModificationsRequest(input)
1415	req.SetContext(ctx)
1416	req.ApplyOptions(opts...)
1417	return out, req.Send()
1418}
1419
1420const opDescribeClientProperties = "DescribeClientProperties"
1421
1422// DescribeClientPropertiesRequest generates a "aws/request.Request" representing the
1423// client's request for the DescribeClientProperties operation. The "output" return
1424// value will be populated with the request's response once the request completes
1425// successfully.
1426//
1427// Use "Send" method on the returned Request to send the API call to the service.
1428// the "output" return value is not valid until after Send returns without error.
1429//
1430// See DescribeClientProperties for more information on using the DescribeClientProperties
1431// API call, and error handling.
1432//
1433// This method is useful when you want to inject custom logic or configuration
1434// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1435//
1436//
1437//    // Example sending a request using the DescribeClientPropertiesRequest method.
1438//    req, resp := client.DescribeClientPropertiesRequest(params)
1439//
1440//    err := req.Send()
1441//    if err == nil { // resp is now filled
1442//        fmt.Println(resp)
1443//    }
1444//
1445// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeClientProperties
1446func (c *WorkSpaces) DescribeClientPropertiesRequest(input *DescribeClientPropertiesInput) (req *request.Request, output *DescribeClientPropertiesOutput) {
1447	op := &request.Operation{
1448		Name:       opDescribeClientProperties,
1449		HTTPMethod: "POST",
1450		HTTPPath:   "/",
1451	}
1452
1453	if input == nil {
1454		input = &DescribeClientPropertiesInput{}
1455	}
1456
1457	output = &DescribeClientPropertiesOutput{}
1458	req = c.newRequest(op, input, output)
1459	return
1460}
1461
1462// DescribeClientProperties API operation for Amazon WorkSpaces.
1463//
1464// Retrieves a list that describes one or more specified Amazon WorkSpaces clients.
1465//
1466// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1467// with awserr.Error's Code and Message methods to get detailed information about
1468// the error.
1469//
1470// See the AWS API reference guide for Amazon WorkSpaces's
1471// API operation DescribeClientProperties for usage and error information.
1472//
1473// Returned Error Types:
1474//   * InvalidParameterValuesException
1475//   One or more parameter values are not valid.
1476//
1477//   * ResourceNotFoundException
1478//   The resource could not be found.
1479//
1480//   * AccessDeniedException
1481//   The user is not authorized to access a resource.
1482//
1483// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeClientProperties
1484func (c *WorkSpaces) DescribeClientProperties(input *DescribeClientPropertiesInput) (*DescribeClientPropertiesOutput, error) {
1485	req, out := c.DescribeClientPropertiesRequest(input)
1486	return out, req.Send()
1487}
1488
1489// DescribeClientPropertiesWithContext is the same as DescribeClientProperties with the addition of
1490// the ability to pass a context and additional request options.
1491//
1492// See DescribeClientProperties for details on how to use this API operation.
1493//
1494// The context must be non-nil and will be used for request cancellation. If
1495// the context is nil a panic will occur. In the future the SDK may create
1496// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1497// for more information on using Contexts.
1498func (c *WorkSpaces) DescribeClientPropertiesWithContext(ctx aws.Context, input *DescribeClientPropertiesInput, opts ...request.Option) (*DescribeClientPropertiesOutput, error) {
1499	req, out := c.DescribeClientPropertiesRequest(input)
1500	req.SetContext(ctx)
1501	req.ApplyOptions(opts...)
1502	return out, req.Send()
1503}
1504
1505const opDescribeConnectionAliasPermissions = "DescribeConnectionAliasPermissions"
1506
1507// DescribeConnectionAliasPermissionsRequest generates a "aws/request.Request" representing the
1508// client's request for the DescribeConnectionAliasPermissions operation. The "output" return
1509// value will be populated with the request's response once the request completes
1510// successfully.
1511//
1512// Use "Send" method on the returned Request to send the API call to the service.
1513// the "output" return value is not valid until after Send returns without error.
1514//
1515// See DescribeConnectionAliasPermissions for more information on using the DescribeConnectionAliasPermissions
1516// API call, and error handling.
1517//
1518// This method is useful when you want to inject custom logic or configuration
1519// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1520//
1521//
1522//    // Example sending a request using the DescribeConnectionAliasPermissionsRequest method.
1523//    req, resp := client.DescribeConnectionAliasPermissionsRequest(params)
1524//
1525//    err := req.Send()
1526//    if err == nil { // resp is now filled
1527//        fmt.Println(resp)
1528//    }
1529//
1530// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeConnectionAliasPermissions
1531func (c *WorkSpaces) DescribeConnectionAliasPermissionsRequest(input *DescribeConnectionAliasPermissionsInput) (req *request.Request, output *DescribeConnectionAliasPermissionsOutput) {
1532	op := &request.Operation{
1533		Name:       opDescribeConnectionAliasPermissions,
1534		HTTPMethod: "POST",
1535		HTTPPath:   "/",
1536	}
1537
1538	if input == nil {
1539		input = &DescribeConnectionAliasPermissionsInput{}
1540	}
1541
1542	output = &DescribeConnectionAliasPermissionsOutput{}
1543	req = c.newRequest(op, input, output)
1544	return
1545}
1546
1547// DescribeConnectionAliasPermissions API operation for Amazon WorkSpaces.
1548//
1549// Describes the permissions that the owner of a connection alias has granted
1550// to another AWS account for the specified connection alias. For more information,
1551// see Cross-Region Redirection for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
1552//
1553// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1554// with awserr.Error's Code and Message methods to get detailed information about
1555// the error.
1556//
1557// See the AWS API reference guide for Amazon WorkSpaces's
1558// API operation DescribeConnectionAliasPermissions for usage and error information.
1559//
1560// Returned Error Types:
1561//   * AccessDeniedException
1562//   The user is not authorized to access a resource.
1563//
1564//   * InvalidParameterValuesException
1565//   One or more parameter values are not valid.
1566//
1567//   * ResourceNotFoundException
1568//   The resource could not be found.
1569//
1570//   * OperationNotSupportedException
1571//   This operation is not supported.
1572//
1573// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeConnectionAliasPermissions
1574func (c *WorkSpaces) DescribeConnectionAliasPermissions(input *DescribeConnectionAliasPermissionsInput) (*DescribeConnectionAliasPermissionsOutput, error) {
1575	req, out := c.DescribeConnectionAliasPermissionsRequest(input)
1576	return out, req.Send()
1577}
1578
1579// DescribeConnectionAliasPermissionsWithContext is the same as DescribeConnectionAliasPermissions with the addition of
1580// the ability to pass a context and additional request options.
1581//
1582// See DescribeConnectionAliasPermissions for details on how to use this API operation.
1583//
1584// The context must be non-nil and will be used for request cancellation. If
1585// the context is nil a panic will occur. In the future the SDK may create
1586// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1587// for more information on using Contexts.
1588func (c *WorkSpaces) DescribeConnectionAliasPermissionsWithContext(ctx aws.Context, input *DescribeConnectionAliasPermissionsInput, opts ...request.Option) (*DescribeConnectionAliasPermissionsOutput, error) {
1589	req, out := c.DescribeConnectionAliasPermissionsRequest(input)
1590	req.SetContext(ctx)
1591	req.ApplyOptions(opts...)
1592	return out, req.Send()
1593}
1594
1595const opDescribeConnectionAliases = "DescribeConnectionAliases"
1596
1597// DescribeConnectionAliasesRequest generates a "aws/request.Request" representing the
1598// client's request for the DescribeConnectionAliases operation. The "output" return
1599// value will be populated with the request's response once the request completes
1600// successfully.
1601//
1602// Use "Send" method on the returned Request to send the API call to the service.
1603// the "output" return value is not valid until after Send returns without error.
1604//
1605// See DescribeConnectionAliases for more information on using the DescribeConnectionAliases
1606// API call, and error handling.
1607//
1608// This method is useful when you want to inject custom logic or configuration
1609// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1610//
1611//
1612//    // Example sending a request using the DescribeConnectionAliasesRequest method.
1613//    req, resp := client.DescribeConnectionAliasesRequest(params)
1614//
1615//    err := req.Send()
1616//    if err == nil { // resp is now filled
1617//        fmt.Println(resp)
1618//    }
1619//
1620// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeConnectionAliases
1621func (c *WorkSpaces) DescribeConnectionAliasesRequest(input *DescribeConnectionAliasesInput) (req *request.Request, output *DescribeConnectionAliasesOutput) {
1622	op := &request.Operation{
1623		Name:       opDescribeConnectionAliases,
1624		HTTPMethod: "POST",
1625		HTTPPath:   "/",
1626	}
1627
1628	if input == nil {
1629		input = &DescribeConnectionAliasesInput{}
1630	}
1631
1632	output = &DescribeConnectionAliasesOutput{}
1633	req = c.newRequest(op, input, output)
1634	return
1635}
1636
1637// DescribeConnectionAliases API operation for Amazon WorkSpaces.
1638//
1639// Retrieves a list that describes the connection aliases used for cross-Region
1640// redirection. For more information, see Cross-Region Redirection for Amazon
1641// WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
1642//
1643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1644// with awserr.Error's Code and Message methods to get detailed information about
1645// the error.
1646//
1647// See the AWS API reference guide for Amazon WorkSpaces's
1648// API operation DescribeConnectionAliases for usage and error information.
1649//
1650// Returned Error Types:
1651//   * AccessDeniedException
1652//   The user is not authorized to access a resource.
1653//
1654//   * InvalidParameterValuesException
1655//   One or more parameter values are not valid.
1656//
1657//   * OperationNotSupportedException
1658//   This operation is not supported.
1659//
1660// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeConnectionAliases
1661func (c *WorkSpaces) DescribeConnectionAliases(input *DescribeConnectionAliasesInput) (*DescribeConnectionAliasesOutput, error) {
1662	req, out := c.DescribeConnectionAliasesRequest(input)
1663	return out, req.Send()
1664}
1665
1666// DescribeConnectionAliasesWithContext is the same as DescribeConnectionAliases with the addition of
1667// the ability to pass a context and additional request options.
1668//
1669// See DescribeConnectionAliases for details on how to use this API operation.
1670//
1671// The context must be non-nil and will be used for request cancellation. If
1672// the context is nil a panic will occur. In the future the SDK may create
1673// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1674// for more information on using Contexts.
1675func (c *WorkSpaces) DescribeConnectionAliasesWithContext(ctx aws.Context, input *DescribeConnectionAliasesInput, opts ...request.Option) (*DescribeConnectionAliasesOutput, error) {
1676	req, out := c.DescribeConnectionAliasesRequest(input)
1677	req.SetContext(ctx)
1678	req.ApplyOptions(opts...)
1679	return out, req.Send()
1680}
1681
1682const opDescribeIpGroups = "DescribeIpGroups"
1683
1684// DescribeIpGroupsRequest generates a "aws/request.Request" representing the
1685// client's request for the DescribeIpGroups operation. The "output" return
1686// value will be populated with the request's response once the request completes
1687// successfully.
1688//
1689// Use "Send" method on the returned Request to send the API call to the service.
1690// the "output" return value is not valid until after Send returns without error.
1691//
1692// See DescribeIpGroups for more information on using the DescribeIpGroups
1693// API call, and error handling.
1694//
1695// This method is useful when you want to inject custom logic or configuration
1696// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1697//
1698//
1699//    // Example sending a request using the DescribeIpGroupsRequest method.
1700//    req, resp := client.DescribeIpGroupsRequest(params)
1701//
1702//    err := req.Send()
1703//    if err == nil { // resp is now filled
1704//        fmt.Println(resp)
1705//    }
1706//
1707// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeIpGroups
1708func (c *WorkSpaces) DescribeIpGroupsRequest(input *DescribeIpGroupsInput) (req *request.Request, output *DescribeIpGroupsOutput) {
1709	op := &request.Operation{
1710		Name:       opDescribeIpGroups,
1711		HTTPMethod: "POST",
1712		HTTPPath:   "/",
1713	}
1714
1715	if input == nil {
1716		input = &DescribeIpGroupsInput{}
1717	}
1718
1719	output = &DescribeIpGroupsOutput{}
1720	req = c.newRequest(op, input, output)
1721	return
1722}
1723
1724// DescribeIpGroups API operation for Amazon WorkSpaces.
1725//
1726// Describes one or more of your IP access control groups.
1727//
1728// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1729// with awserr.Error's Code and Message methods to get detailed information about
1730// the error.
1731//
1732// See the AWS API reference guide for Amazon WorkSpaces's
1733// API operation DescribeIpGroups for usage and error information.
1734//
1735// Returned Error Types:
1736//   * InvalidParameterValuesException
1737//   One or more parameter values are not valid.
1738//
1739//   * AccessDeniedException
1740//   The user is not authorized to access a resource.
1741//
1742// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeIpGroups
1743func (c *WorkSpaces) DescribeIpGroups(input *DescribeIpGroupsInput) (*DescribeIpGroupsOutput, error) {
1744	req, out := c.DescribeIpGroupsRequest(input)
1745	return out, req.Send()
1746}
1747
1748// DescribeIpGroupsWithContext is the same as DescribeIpGroups with the addition of
1749// the ability to pass a context and additional request options.
1750//
1751// See DescribeIpGroups for details on how to use this API operation.
1752//
1753// The context must be non-nil and will be used for request cancellation. If
1754// the context is nil a panic will occur. In the future the SDK may create
1755// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1756// for more information on using Contexts.
1757func (c *WorkSpaces) DescribeIpGroupsWithContext(ctx aws.Context, input *DescribeIpGroupsInput, opts ...request.Option) (*DescribeIpGroupsOutput, error) {
1758	req, out := c.DescribeIpGroupsRequest(input)
1759	req.SetContext(ctx)
1760	req.ApplyOptions(opts...)
1761	return out, req.Send()
1762}
1763
1764const opDescribeTags = "DescribeTags"
1765
1766// DescribeTagsRequest generates a "aws/request.Request" representing the
1767// client's request for the DescribeTags operation. The "output" return
1768// value will be populated with the request's response once the request completes
1769// successfully.
1770//
1771// Use "Send" method on the returned Request to send the API call to the service.
1772// the "output" return value is not valid until after Send returns without error.
1773//
1774// See DescribeTags for more information on using the DescribeTags
1775// API call, and error handling.
1776//
1777// This method is useful when you want to inject custom logic or configuration
1778// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1779//
1780//
1781//    // Example sending a request using the DescribeTagsRequest method.
1782//    req, resp := client.DescribeTagsRequest(params)
1783//
1784//    err := req.Send()
1785//    if err == nil { // resp is now filled
1786//        fmt.Println(resp)
1787//    }
1788//
1789// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeTags
1790func (c *WorkSpaces) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Request, output *DescribeTagsOutput) {
1791	op := &request.Operation{
1792		Name:       opDescribeTags,
1793		HTTPMethod: "POST",
1794		HTTPPath:   "/",
1795	}
1796
1797	if input == nil {
1798		input = &DescribeTagsInput{}
1799	}
1800
1801	output = &DescribeTagsOutput{}
1802	req = c.newRequest(op, input, output)
1803	return
1804}
1805
1806// DescribeTags API operation for Amazon WorkSpaces.
1807//
1808// Describes the specified tags for the specified WorkSpaces resource.
1809//
1810// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1811// with awserr.Error's Code and Message methods to get detailed information about
1812// the error.
1813//
1814// See the AWS API reference guide for Amazon WorkSpaces's
1815// API operation DescribeTags for usage and error information.
1816//
1817// Returned Error Types:
1818//   * ResourceNotFoundException
1819//   The resource could not be found.
1820//
1821// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeTags
1822func (c *WorkSpaces) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) {
1823	req, out := c.DescribeTagsRequest(input)
1824	return out, req.Send()
1825}
1826
1827// DescribeTagsWithContext is the same as DescribeTags with the addition of
1828// the ability to pass a context and additional request options.
1829//
1830// See DescribeTags for details on how to use this API operation.
1831//
1832// The context must be non-nil and will be used for request cancellation. If
1833// the context is nil a panic will occur. In the future the SDK may create
1834// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1835// for more information on using Contexts.
1836func (c *WorkSpaces) DescribeTagsWithContext(ctx aws.Context, input *DescribeTagsInput, opts ...request.Option) (*DescribeTagsOutput, error) {
1837	req, out := c.DescribeTagsRequest(input)
1838	req.SetContext(ctx)
1839	req.ApplyOptions(opts...)
1840	return out, req.Send()
1841}
1842
1843const opDescribeWorkspaceBundles = "DescribeWorkspaceBundles"
1844
1845// DescribeWorkspaceBundlesRequest generates a "aws/request.Request" representing the
1846// client's request for the DescribeWorkspaceBundles operation. The "output" return
1847// value will be populated with the request's response once the request completes
1848// successfully.
1849//
1850// Use "Send" method on the returned Request to send the API call to the service.
1851// the "output" return value is not valid until after Send returns without error.
1852//
1853// See DescribeWorkspaceBundles for more information on using the DescribeWorkspaceBundles
1854// API call, and error handling.
1855//
1856// This method is useful when you want to inject custom logic or configuration
1857// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1858//
1859//
1860//    // Example sending a request using the DescribeWorkspaceBundlesRequest method.
1861//    req, resp := client.DescribeWorkspaceBundlesRequest(params)
1862//
1863//    err := req.Send()
1864//    if err == nil { // resp is now filled
1865//        fmt.Println(resp)
1866//    }
1867//
1868// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceBundles
1869func (c *WorkSpaces) DescribeWorkspaceBundlesRequest(input *DescribeWorkspaceBundlesInput) (req *request.Request, output *DescribeWorkspaceBundlesOutput) {
1870	op := &request.Operation{
1871		Name:       opDescribeWorkspaceBundles,
1872		HTTPMethod: "POST",
1873		HTTPPath:   "/",
1874		Paginator: &request.Paginator{
1875			InputTokens:     []string{"NextToken"},
1876			OutputTokens:    []string{"NextToken"},
1877			LimitToken:      "",
1878			TruncationToken: "",
1879		},
1880	}
1881
1882	if input == nil {
1883		input = &DescribeWorkspaceBundlesInput{}
1884	}
1885
1886	output = &DescribeWorkspaceBundlesOutput{}
1887	req = c.newRequest(op, input, output)
1888	return
1889}
1890
1891// DescribeWorkspaceBundles API operation for Amazon WorkSpaces.
1892//
1893// Retrieves a list that describes the available WorkSpace bundles.
1894//
1895// You can filter the results using either bundle ID or owner, but not both.
1896//
1897// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1898// with awserr.Error's Code and Message methods to get detailed information about
1899// the error.
1900//
1901// See the AWS API reference guide for Amazon WorkSpaces's
1902// API operation DescribeWorkspaceBundles for usage and error information.
1903//
1904// Returned Error Types:
1905//   * InvalidParameterValuesException
1906//   One or more parameter values are not valid.
1907//
1908// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceBundles
1909func (c *WorkSpaces) DescribeWorkspaceBundles(input *DescribeWorkspaceBundlesInput) (*DescribeWorkspaceBundlesOutput, error) {
1910	req, out := c.DescribeWorkspaceBundlesRequest(input)
1911	return out, req.Send()
1912}
1913
1914// DescribeWorkspaceBundlesWithContext is the same as DescribeWorkspaceBundles with the addition of
1915// the ability to pass a context and additional request options.
1916//
1917// See DescribeWorkspaceBundles for details on how to use this API operation.
1918//
1919// The context must be non-nil and will be used for request cancellation. If
1920// the context is nil a panic will occur. In the future the SDK may create
1921// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1922// for more information on using Contexts.
1923func (c *WorkSpaces) DescribeWorkspaceBundlesWithContext(ctx aws.Context, input *DescribeWorkspaceBundlesInput, opts ...request.Option) (*DescribeWorkspaceBundlesOutput, error) {
1924	req, out := c.DescribeWorkspaceBundlesRequest(input)
1925	req.SetContext(ctx)
1926	req.ApplyOptions(opts...)
1927	return out, req.Send()
1928}
1929
1930// DescribeWorkspaceBundlesPages iterates over the pages of a DescribeWorkspaceBundles operation,
1931// calling the "fn" function with the response data for each page. To stop
1932// iterating, return false from the fn function.
1933//
1934// See DescribeWorkspaceBundles method for more information on how to use this operation.
1935//
1936// Note: This operation can generate multiple requests to a service.
1937//
1938//    // Example iterating over at most 3 pages of a DescribeWorkspaceBundles operation.
1939//    pageNum := 0
1940//    err := client.DescribeWorkspaceBundlesPages(params,
1941//        func(page *workspaces.DescribeWorkspaceBundlesOutput, lastPage bool) bool {
1942//            pageNum++
1943//            fmt.Println(page)
1944//            return pageNum <= 3
1945//        })
1946//
1947func (c *WorkSpaces) DescribeWorkspaceBundlesPages(input *DescribeWorkspaceBundlesInput, fn func(*DescribeWorkspaceBundlesOutput, bool) bool) error {
1948	return c.DescribeWorkspaceBundlesPagesWithContext(aws.BackgroundContext(), input, fn)
1949}
1950
1951// DescribeWorkspaceBundlesPagesWithContext same as DescribeWorkspaceBundlesPages except
1952// it takes a Context and allows setting request options on the pages.
1953//
1954// The context must be non-nil and will be used for request cancellation. If
1955// the context is nil a panic will occur. In the future the SDK may create
1956// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1957// for more information on using Contexts.
1958func (c *WorkSpaces) DescribeWorkspaceBundlesPagesWithContext(ctx aws.Context, input *DescribeWorkspaceBundlesInput, fn func(*DescribeWorkspaceBundlesOutput, bool) bool, opts ...request.Option) error {
1959	p := request.Pagination{
1960		NewRequest: func() (*request.Request, error) {
1961			var inCpy *DescribeWorkspaceBundlesInput
1962			if input != nil {
1963				tmp := *input
1964				inCpy = &tmp
1965			}
1966			req, _ := c.DescribeWorkspaceBundlesRequest(inCpy)
1967			req.SetContext(ctx)
1968			req.ApplyOptions(opts...)
1969			return req, nil
1970		},
1971	}
1972
1973	for p.Next() {
1974		if !fn(p.Page().(*DescribeWorkspaceBundlesOutput), !p.HasNextPage()) {
1975			break
1976		}
1977	}
1978
1979	return p.Err()
1980}
1981
1982const opDescribeWorkspaceDirectories = "DescribeWorkspaceDirectories"
1983
1984// DescribeWorkspaceDirectoriesRequest generates a "aws/request.Request" representing the
1985// client's request for the DescribeWorkspaceDirectories operation. The "output" return
1986// value will be populated with the request's response once the request completes
1987// successfully.
1988//
1989// Use "Send" method on the returned Request to send the API call to the service.
1990// the "output" return value is not valid until after Send returns without error.
1991//
1992// See DescribeWorkspaceDirectories for more information on using the DescribeWorkspaceDirectories
1993// API call, and error handling.
1994//
1995// This method is useful when you want to inject custom logic or configuration
1996// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1997//
1998//
1999//    // Example sending a request using the DescribeWorkspaceDirectoriesRequest method.
2000//    req, resp := client.DescribeWorkspaceDirectoriesRequest(params)
2001//
2002//    err := req.Send()
2003//    if err == nil { // resp is now filled
2004//        fmt.Println(resp)
2005//    }
2006//
2007// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceDirectories
2008func (c *WorkSpaces) DescribeWorkspaceDirectoriesRequest(input *DescribeWorkspaceDirectoriesInput) (req *request.Request, output *DescribeWorkspaceDirectoriesOutput) {
2009	op := &request.Operation{
2010		Name:       opDescribeWorkspaceDirectories,
2011		HTTPMethod: "POST",
2012		HTTPPath:   "/",
2013		Paginator: &request.Paginator{
2014			InputTokens:     []string{"NextToken"},
2015			OutputTokens:    []string{"NextToken"},
2016			LimitToken:      "",
2017			TruncationToken: "",
2018		},
2019	}
2020
2021	if input == nil {
2022		input = &DescribeWorkspaceDirectoriesInput{}
2023	}
2024
2025	output = &DescribeWorkspaceDirectoriesOutput{}
2026	req = c.newRequest(op, input, output)
2027	return
2028}
2029
2030// DescribeWorkspaceDirectories API operation for Amazon WorkSpaces.
2031//
2032// Describes the available directories that are registered with Amazon WorkSpaces.
2033//
2034// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2035// with awserr.Error's Code and Message methods to get detailed information about
2036// the error.
2037//
2038// See the AWS API reference guide for Amazon WorkSpaces's
2039// API operation DescribeWorkspaceDirectories for usage and error information.
2040//
2041// Returned Error Types:
2042//   * InvalidParameterValuesException
2043//   One or more parameter values are not valid.
2044//
2045// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceDirectories
2046func (c *WorkSpaces) DescribeWorkspaceDirectories(input *DescribeWorkspaceDirectoriesInput) (*DescribeWorkspaceDirectoriesOutput, error) {
2047	req, out := c.DescribeWorkspaceDirectoriesRequest(input)
2048	return out, req.Send()
2049}
2050
2051// DescribeWorkspaceDirectoriesWithContext is the same as DescribeWorkspaceDirectories with the addition of
2052// the ability to pass a context and additional request options.
2053//
2054// See DescribeWorkspaceDirectories for details on how to use this API operation.
2055//
2056// The context must be non-nil and will be used for request cancellation. If
2057// the context is nil a panic will occur. In the future the SDK may create
2058// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2059// for more information on using Contexts.
2060func (c *WorkSpaces) DescribeWorkspaceDirectoriesWithContext(ctx aws.Context, input *DescribeWorkspaceDirectoriesInput, opts ...request.Option) (*DescribeWorkspaceDirectoriesOutput, error) {
2061	req, out := c.DescribeWorkspaceDirectoriesRequest(input)
2062	req.SetContext(ctx)
2063	req.ApplyOptions(opts...)
2064	return out, req.Send()
2065}
2066
2067// DescribeWorkspaceDirectoriesPages iterates over the pages of a DescribeWorkspaceDirectories operation,
2068// calling the "fn" function with the response data for each page. To stop
2069// iterating, return false from the fn function.
2070//
2071// See DescribeWorkspaceDirectories method for more information on how to use this operation.
2072//
2073// Note: This operation can generate multiple requests to a service.
2074//
2075//    // Example iterating over at most 3 pages of a DescribeWorkspaceDirectories operation.
2076//    pageNum := 0
2077//    err := client.DescribeWorkspaceDirectoriesPages(params,
2078//        func(page *workspaces.DescribeWorkspaceDirectoriesOutput, lastPage bool) bool {
2079//            pageNum++
2080//            fmt.Println(page)
2081//            return pageNum <= 3
2082//        })
2083//
2084func (c *WorkSpaces) DescribeWorkspaceDirectoriesPages(input *DescribeWorkspaceDirectoriesInput, fn func(*DescribeWorkspaceDirectoriesOutput, bool) bool) error {
2085	return c.DescribeWorkspaceDirectoriesPagesWithContext(aws.BackgroundContext(), input, fn)
2086}
2087
2088// DescribeWorkspaceDirectoriesPagesWithContext same as DescribeWorkspaceDirectoriesPages except
2089// it takes a Context and allows setting request options on the pages.
2090//
2091// The context must be non-nil and will be used for request cancellation. If
2092// the context is nil a panic will occur. In the future the SDK may create
2093// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2094// for more information on using Contexts.
2095func (c *WorkSpaces) DescribeWorkspaceDirectoriesPagesWithContext(ctx aws.Context, input *DescribeWorkspaceDirectoriesInput, fn func(*DescribeWorkspaceDirectoriesOutput, bool) bool, opts ...request.Option) error {
2096	p := request.Pagination{
2097		NewRequest: func() (*request.Request, error) {
2098			var inCpy *DescribeWorkspaceDirectoriesInput
2099			if input != nil {
2100				tmp := *input
2101				inCpy = &tmp
2102			}
2103			req, _ := c.DescribeWorkspaceDirectoriesRequest(inCpy)
2104			req.SetContext(ctx)
2105			req.ApplyOptions(opts...)
2106			return req, nil
2107		},
2108	}
2109
2110	for p.Next() {
2111		if !fn(p.Page().(*DescribeWorkspaceDirectoriesOutput), !p.HasNextPage()) {
2112			break
2113		}
2114	}
2115
2116	return p.Err()
2117}
2118
2119const opDescribeWorkspaceImagePermissions = "DescribeWorkspaceImagePermissions"
2120
2121// DescribeWorkspaceImagePermissionsRequest generates a "aws/request.Request" representing the
2122// client's request for the DescribeWorkspaceImagePermissions operation. The "output" return
2123// value will be populated with the request's response once the request completes
2124// successfully.
2125//
2126// Use "Send" method on the returned Request to send the API call to the service.
2127// the "output" return value is not valid until after Send returns without error.
2128//
2129// See DescribeWorkspaceImagePermissions for more information on using the DescribeWorkspaceImagePermissions
2130// API call, and error handling.
2131//
2132// This method is useful when you want to inject custom logic or configuration
2133// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2134//
2135//
2136//    // Example sending a request using the DescribeWorkspaceImagePermissionsRequest method.
2137//    req, resp := client.DescribeWorkspaceImagePermissionsRequest(params)
2138//
2139//    err := req.Send()
2140//    if err == nil { // resp is now filled
2141//        fmt.Println(resp)
2142//    }
2143//
2144// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImagePermissions
2145func (c *WorkSpaces) DescribeWorkspaceImagePermissionsRequest(input *DescribeWorkspaceImagePermissionsInput) (req *request.Request, output *DescribeWorkspaceImagePermissionsOutput) {
2146	op := &request.Operation{
2147		Name:       opDescribeWorkspaceImagePermissions,
2148		HTTPMethod: "POST",
2149		HTTPPath:   "/",
2150	}
2151
2152	if input == nil {
2153		input = &DescribeWorkspaceImagePermissionsInput{}
2154	}
2155
2156	output = &DescribeWorkspaceImagePermissionsOutput{}
2157	req = c.newRequest(op, input, output)
2158	return
2159}
2160
2161// DescribeWorkspaceImagePermissions API operation for Amazon WorkSpaces.
2162//
2163// Describes the permissions that the owner of an image has granted to other
2164// AWS accounts for an image.
2165//
2166// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2167// with awserr.Error's Code and Message methods to get detailed information about
2168// the error.
2169//
2170// See the AWS API reference guide for Amazon WorkSpaces's
2171// API operation DescribeWorkspaceImagePermissions for usage and error information.
2172//
2173// Returned Error Types:
2174//   * ResourceNotFoundException
2175//   The resource could not be found.
2176//
2177//   * AccessDeniedException
2178//   The user is not authorized to access a resource.
2179//
2180//   * InvalidParameterValuesException
2181//   One or more parameter values are not valid.
2182//
2183// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImagePermissions
2184func (c *WorkSpaces) DescribeWorkspaceImagePermissions(input *DescribeWorkspaceImagePermissionsInput) (*DescribeWorkspaceImagePermissionsOutput, error) {
2185	req, out := c.DescribeWorkspaceImagePermissionsRequest(input)
2186	return out, req.Send()
2187}
2188
2189// DescribeWorkspaceImagePermissionsWithContext is the same as DescribeWorkspaceImagePermissions with the addition of
2190// the ability to pass a context and additional request options.
2191//
2192// See DescribeWorkspaceImagePermissions for details on how to use this API operation.
2193//
2194// The context must be non-nil and will be used for request cancellation. If
2195// the context is nil a panic will occur. In the future the SDK may create
2196// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2197// for more information on using Contexts.
2198func (c *WorkSpaces) DescribeWorkspaceImagePermissionsWithContext(ctx aws.Context, input *DescribeWorkspaceImagePermissionsInput, opts ...request.Option) (*DescribeWorkspaceImagePermissionsOutput, error) {
2199	req, out := c.DescribeWorkspaceImagePermissionsRequest(input)
2200	req.SetContext(ctx)
2201	req.ApplyOptions(opts...)
2202	return out, req.Send()
2203}
2204
2205const opDescribeWorkspaceImages = "DescribeWorkspaceImages"
2206
2207// DescribeWorkspaceImagesRequest generates a "aws/request.Request" representing the
2208// client's request for the DescribeWorkspaceImages operation. The "output" return
2209// value will be populated with the request's response once the request completes
2210// successfully.
2211//
2212// Use "Send" method on the returned Request to send the API call to the service.
2213// the "output" return value is not valid until after Send returns without error.
2214//
2215// See DescribeWorkspaceImages for more information on using the DescribeWorkspaceImages
2216// API call, and error handling.
2217//
2218// This method is useful when you want to inject custom logic or configuration
2219// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2220//
2221//
2222//    // Example sending a request using the DescribeWorkspaceImagesRequest method.
2223//    req, resp := client.DescribeWorkspaceImagesRequest(params)
2224//
2225//    err := req.Send()
2226//    if err == nil { // resp is now filled
2227//        fmt.Println(resp)
2228//    }
2229//
2230// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImages
2231func (c *WorkSpaces) DescribeWorkspaceImagesRequest(input *DescribeWorkspaceImagesInput) (req *request.Request, output *DescribeWorkspaceImagesOutput) {
2232	op := &request.Operation{
2233		Name:       opDescribeWorkspaceImages,
2234		HTTPMethod: "POST",
2235		HTTPPath:   "/",
2236	}
2237
2238	if input == nil {
2239		input = &DescribeWorkspaceImagesInput{}
2240	}
2241
2242	output = &DescribeWorkspaceImagesOutput{}
2243	req = c.newRequest(op, input, output)
2244	return
2245}
2246
2247// DescribeWorkspaceImages API operation for Amazon WorkSpaces.
2248//
2249// Retrieves a list that describes one or more specified images, if the image
2250// identifiers are provided. Otherwise, all images in the account are described.
2251//
2252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2253// with awserr.Error's Code and Message methods to get detailed information about
2254// the error.
2255//
2256// See the AWS API reference guide for Amazon WorkSpaces's
2257// API operation DescribeWorkspaceImages for usage and error information.
2258//
2259// Returned Error Types:
2260//   * AccessDeniedException
2261//   The user is not authorized to access a resource.
2262//
2263// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImages
2264func (c *WorkSpaces) DescribeWorkspaceImages(input *DescribeWorkspaceImagesInput) (*DescribeWorkspaceImagesOutput, error) {
2265	req, out := c.DescribeWorkspaceImagesRequest(input)
2266	return out, req.Send()
2267}
2268
2269// DescribeWorkspaceImagesWithContext is the same as DescribeWorkspaceImages with the addition of
2270// the ability to pass a context and additional request options.
2271//
2272// See DescribeWorkspaceImages for details on how to use this API operation.
2273//
2274// The context must be non-nil and will be used for request cancellation. If
2275// the context is nil a panic will occur. In the future the SDK may create
2276// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2277// for more information on using Contexts.
2278func (c *WorkSpaces) DescribeWorkspaceImagesWithContext(ctx aws.Context, input *DescribeWorkspaceImagesInput, opts ...request.Option) (*DescribeWorkspaceImagesOutput, error) {
2279	req, out := c.DescribeWorkspaceImagesRequest(input)
2280	req.SetContext(ctx)
2281	req.ApplyOptions(opts...)
2282	return out, req.Send()
2283}
2284
2285const opDescribeWorkspaceSnapshots = "DescribeWorkspaceSnapshots"
2286
2287// DescribeWorkspaceSnapshotsRequest generates a "aws/request.Request" representing the
2288// client's request for the DescribeWorkspaceSnapshots operation. The "output" return
2289// value will be populated with the request's response once the request completes
2290// successfully.
2291//
2292// Use "Send" method on the returned Request to send the API call to the service.
2293// the "output" return value is not valid until after Send returns without error.
2294//
2295// See DescribeWorkspaceSnapshots for more information on using the DescribeWorkspaceSnapshots
2296// API call, and error handling.
2297//
2298// This method is useful when you want to inject custom logic or configuration
2299// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2300//
2301//
2302//    // Example sending a request using the DescribeWorkspaceSnapshotsRequest method.
2303//    req, resp := client.DescribeWorkspaceSnapshotsRequest(params)
2304//
2305//    err := req.Send()
2306//    if err == nil { // resp is now filled
2307//        fmt.Println(resp)
2308//    }
2309//
2310// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceSnapshots
2311func (c *WorkSpaces) DescribeWorkspaceSnapshotsRequest(input *DescribeWorkspaceSnapshotsInput) (req *request.Request, output *DescribeWorkspaceSnapshotsOutput) {
2312	op := &request.Operation{
2313		Name:       opDescribeWorkspaceSnapshots,
2314		HTTPMethod: "POST",
2315		HTTPPath:   "/",
2316	}
2317
2318	if input == nil {
2319		input = &DescribeWorkspaceSnapshotsInput{}
2320	}
2321
2322	output = &DescribeWorkspaceSnapshotsOutput{}
2323	req = c.newRequest(op, input, output)
2324	return
2325}
2326
2327// DescribeWorkspaceSnapshots API operation for Amazon WorkSpaces.
2328//
2329// Describes the snapshots for the specified WorkSpace.
2330//
2331// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2332// with awserr.Error's Code and Message methods to get detailed information about
2333// the error.
2334//
2335// See the AWS API reference guide for Amazon WorkSpaces's
2336// API operation DescribeWorkspaceSnapshots for usage and error information.
2337//
2338// Returned Error Types:
2339//   * InvalidParameterValuesException
2340//   One or more parameter values are not valid.
2341//
2342//   * ResourceNotFoundException
2343//   The resource could not be found.
2344//
2345//   * AccessDeniedException
2346//   The user is not authorized to access a resource.
2347//
2348// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceSnapshots
2349func (c *WorkSpaces) DescribeWorkspaceSnapshots(input *DescribeWorkspaceSnapshotsInput) (*DescribeWorkspaceSnapshotsOutput, error) {
2350	req, out := c.DescribeWorkspaceSnapshotsRequest(input)
2351	return out, req.Send()
2352}
2353
2354// DescribeWorkspaceSnapshotsWithContext is the same as DescribeWorkspaceSnapshots with the addition of
2355// the ability to pass a context and additional request options.
2356//
2357// See DescribeWorkspaceSnapshots for details on how to use this API operation.
2358//
2359// The context must be non-nil and will be used for request cancellation. If
2360// the context is nil a panic will occur. In the future the SDK may create
2361// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2362// for more information on using Contexts.
2363func (c *WorkSpaces) DescribeWorkspaceSnapshotsWithContext(ctx aws.Context, input *DescribeWorkspaceSnapshotsInput, opts ...request.Option) (*DescribeWorkspaceSnapshotsOutput, error) {
2364	req, out := c.DescribeWorkspaceSnapshotsRequest(input)
2365	req.SetContext(ctx)
2366	req.ApplyOptions(opts...)
2367	return out, req.Send()
2368}
2369
2370const opDescribeWorkspaces = "DescribeWorkspaces"
2371
2372// DescribeWorkspacesRequest generates a "aws/request.Request" representing the
2373// client's request for the DescribeWorkspaces operation. The "output" return
2374// value will be populated with the request's response once the request completes
2375// successfully.
2376//
2377// Use "Send" method on the returned Request to send the API call to the service.
2378// the "output" return value is not valid until after Send returns without error.
2379//
2380// See DescribeWorkspaces for more information on using the DescribeWorkspaces
2381// API call, and error handling.
2382//
2383// This method is useful when you want to inject custom logic or configuration
2384// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2385//
2386//
2387//    // Example sending a request using the DescribeWorkspacesRequest method.
2388//    req, resp := client.DescribeWorkspacesRequest(params)
2389//
2390//    err := req.Send()
2391//    if err == nil { // resp is now filled
2392//        fmt.Println(resp)
2393//    }
2394//
2395// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaces
2396func (c *WorkSpaces) DescribeWorkspacesRequest(input *DescribeWorkspacesInput) (req *request.Request, output *DescribeWorkspacesOutput) {
2397	op := &request.Operation{
2398		Name:       opDescribeWorkspaces,
2399		HTTPMethod: "POST",
2400		HTTPPath:   "/",
2401		Paginator: &request.Paginator{
2402			InputTokens:     []string{"NextToken"},
2403			OutputTokens:    []string{"NextToken"},
2404			LimitToken:      "Limit",
2405			TruncationToken: "",
2406		},
2407	}
2408
2409	if input == nil {
2410		input = &DescribeWorkspacesInput{}
2411	}
2412
2413	output = &DescribeWorkspacesOutput{}
2414	req = c.newRequest(op, input, output)
2415	return
2416}
2417
2418// DescribeWorkspaces API operation for Amazon WorkSpaces.
2419//
2420// Describes the specified WorkSpaces.
2421//
2422// You can filter the results by using the bundle identifier, directory identifier,
2423// or owner, but you can specify only one filter at a time.
2424//
2425// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2426// with awserr.Error's Code and Message methods to get detailed information about
2427// the error.
2428//
2429// See the AWS API reference guide for Amazon WorkSpaces's
2430// API operation DescribeWorkspaces for usage and error information.
2431//
2432// Returned Error Types:
2433//   * InvalidParameterValuesException
2434//   One or more parameter values are not valid.
2435//
2436//   * ResourceUnavailableException
2437//   The specified resource is not available.
2438//
2439// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaces
2440func (c *WorkSpaces) DescribeWorkspaces(input *DescribeWorkspacesInput) (*DescribeWorkspacesOutput, error) {
2441	req, out := c.DescribeWorkspacesRequest(input)
2442	return out, req.Send()
2443}
2444
2445// DescribeWorkspacesWithContext is the same as DescribeWorkspaces with the addition of
2446// the ability to pass a context and additional request options.
2447//
2448// See DescribeWorkspaces for details on how to use this API operation.
2449//
2450// The context must be non-nil and will be used for request cancellation. If
2451// the context is nil a panic will occur. In the future the SDK may create
2452// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2453// for more information on using Contexts.
2454func (c *WorkSpaces) DescribeWorkspacesWithContext(ctx aws.Context, input *DescribeWorkspacesInput, opts ...request.Option) (*DescribeWorkspacesOutput, error) {
2455	req, out := c.DescribeWorkspacesRequest(input)
2456	req.SetContext(ctx)
2457	req.ApplyOptions(opts...)
2458	return out, req.Send()
2459}
2460
2461// DescribeWorkspacesPages iterates over the pages of a DescribeWorkspaces operation,
2462// calling the "fn" function with the response data for each page. To stop
2463// iterating, return false from the fn function.
2464//
2465// See DescribeWorkspaces method for more information on how to use this operation.
2466//
2467// Note: This operation can generate multiple requests to a service.
2468//
2469//    // Example iterating over at most 3 pages of a DescribeWorkspaces operation.
2470//    pageNum := 0
2471//    err := client.DescribeWorkspacesPages(params,
2472//        func(page *workspaces.DescribeWorkspacesOutput, lastPage bool) bool {
2473//            pageNum++
2474//            fmt.Println(page)
2475//            return pageNum <= 3
2476//        })
2477//
2478func (c *WorkSpaces) DescribeWorkspacesPages(input *DescribeWorkspacesInput, fn func(*DescribeWorkspacesOutput, bool) bool) error {
2479	return c.DescribeWorkspacesPagesWithContext(aws.BackgroundContext(), input, fn)
2480}
2481
2482// DescribeWorkspacesPagesWithContext same as DescribeWorkspacesPages except
2483// it takes a Context and allows setting request options on the pages.
2484//
2485// The context must be non-nil and will be used for request cancellation. If
2486// the context is nil a panic will occur. In the future the SDK may create
2487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2488// for more information on using Contexts.
2489func (c *WorkSpaces) DescribeWorkspacesPagesWithContext(ctx aws.Context, input *DescribeWorkspacesInput, fn func(*DescribeWorkspacesOutput, bool) bool, opts ...request.Option) error {
2490	p := request.Pagination{
2491		NewRequest: func() (*request.Request, error) {
2492			var inCpy *DescribeWorkspacesInput
2493			if input != nil {
2494				tmp := *input
2495				inCpy = &tmp
2496			}
2497			req, _ := c.DescribeWorkspacesRequest(inCpy)
2498			req.SetContext(ctx)
2499			req.ApplyOptions(opts...)
2500			return req, nil
2501		},
2502	}
2503
2504	for p.Next() {
2505		if !fn(p.Page().(*DescribeWorkspacesOutput), !p.HasNextPage()) {
2506			break
2507		}
2508	}
2509
2510	return p.Err()
2511}
2512
2513const opDescribeWorkspacesConnectionStatus = "DescribeWorkspacesConnectionStatus"
2514
2515// DescribeWorkspacesConnectionStatusRequest generates a "aws/request.Request" representing the
2516// client's request for the DescribeWorkspacesConnectionStatus operation. The "output" return
2517// value will be populated with the request's response once the request completes
2518// successfully.
2519//
2520// Use "Send" method on the returned Request to send the API call to the service.
2521// the "output" return value is not valid until after Send returns without error.
2522//
2523// See DescribeWorkspacesConnectionStatus for more information on using the DescribeWorkspacesConnectionStatus
2524// API call, and error handling.
2525//
2526// This method is useful when you want to inject custom logic or configuration
2527// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2528//
2529//
2530//    // Example sending a request using the DescribeWorkspacesConnectionStatusRequest method.
2531//    req, resp := client.DescribeWorkspacesConnectionStatusRequest(params)
2532//
2533//    err := req.Send()
2534//    if err == nil { // resp is now filled
2535//        fmt.Println(resp)
2536//    }
2537//
2538// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspacesConnectionStatus
2539func (c *WorkSpaces) DescribeWorkspacesConnectionStatusRequest(input *DescribeWorkspacesConnectionStatusInput) (req *request.Request, output *DescribeWorkspacesConnectionStatusOutput) {
2540	op := &request.Operation{
2541		Name:       opDescribeWorkspacesConnectionStatus,
2542		HTTPMethod: "POST",
2543		HTTPPath:   "/",
2544	}
2545
2546	if input == nil {
2547		input = &DescribeWorkspacesConnectionStatusInput{}
2548	}
2549
2550	output = &DescribeWorkspacesConnectionStatusOutput{}
2551	req = c.newRequest(op, input, output)
2552	return
2553}
2554
2555// DescribeWorkspacesConnectionStatus API operation for Amazon WorkSpaces.
2556//
2557// Describes the connection status of the specified WorkSpaces.
2558//
2559// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2560// with awserr.Error's Code and Message methods to get detailed information about
2561// the error.
2562//
2563// See the AWS API reference guide for Amazon WorkSpaces's
2564// API operation DescribeWorkspacesConnectionStatus for usage and error information.
2565//
2566// Returned Error Types:
2567//   * InvalidParameterValuesException
2568//   One or more parameter values are not valid.
2569//
2570// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspacesConnectionStatus
2571func (c *WorkSpaces) DescribeWorkspacesConnectionStatus(input *DescribeWorkspacesConnectionStatusInput) (*DescribeWorkspacesConnectionStatusOutput, error) {
2572	req, out := c.DescribeWorkspacesConnectionStatusRequest(input)
2573	return out, req.Send()
2574}
2575
2576// DescribeWorkspacesConnectionStatusWithContext is the same as DescribeWorkspacesConnectionStatus with the addition of
2577// the ability to pass a context and additional request options.
2578//
2579// See DescribeWorkspacesConnectionStatus for details on how to use this API operation.
2580//
2581// The context must be non-nil and will be used for request cancellation. If
2582// the context is nil a panic will occur. In the future the SDK may create
2583// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2584// for more information on using Contexts.
2585func (c *WorkSpaces) DescribeWorkspacesConnectionStatusWithContext(ctx aws.Context, input *DescribeWorkspacesConnectionStatusInput, opts ...request.Option) (*DescribeWorkspacesConnectionStatusOutput, error) {
2586	req, out := c.DescribeWorkspacesConnectionStatusRequest(input)
2587	req.SetContext(ctx)
2588	req.ApplyOptions(opts...)
2589	return out, req.Send()
2590}
2591
2592const opDisassociateConnectionAlias = "DisassociateConnectionAlias"
2593
2594// DisassociateConnectionAliasRequest generates a "aws/request.Request" representing the
2595// client's request for the DisassociateConnectionAlias operation. The "output" return
2596// value will be populated with the request's response once the request completes
2597// successfully.
2598//
2599// Use "Send" method on the returned Request to send the API call to the service.
2600// the "output" return value is not valid until after Send returns without error.
2601//
2602// See DisassociateConnectionAlias for more information on using the DisassociateConnectionAlias
2603// API call, and error handling.
2604//
2605// This method is useful when you want to inject custom logic or configuration
2606// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2607//
2608//
2609//    // Example sending a request using the DisassociateConnectionAliasRequest method.
2610//    req, resp := client.DisassociateConnectionAliasRequest(params)
2611//
2612//    err := req.Send()
2613//    if err == nil { // resp is now filled
2614//        fmt.Println(resp)
2615//    }
2616//
2617// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateConnectionAlias
2618func (c *WorkSpaces) DisassociateConnectionAliasRequest(input *DisassociateConnectionAliasInput) (req *request.Request, output *DisassociateConnectionAliasOutput) {
2619	op := &request.Operation{
2620		Name:       opDisassociateConnectionAlias,
2621		HTTPMethod: "POST",
2622		HTTPPath:   "/",
2623	}
2624
2625	if input == nil {
2626		input = &DisassociateConnectionAliasInput{}
2627	}
2628
2629	output = &DisassociateConnectionAliasOutput{}
2630	req = c.newRequest(op, input, output)
2631	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2632	return
2633}
2634
2635// DisassociateConnectionAlias API operation for Amazon WorkSpaces.
2636//
2637// Disassociates a connection alias from a directory. Disassociating a connection
2638// alias disables cross-Region redirection between two directories in different
2639// AWS Regions. For more information, see Cross-Region Redirection for Amazon
2640// WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
2641//
2642// Before performing this operation, call DescribeConnectionAliases (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeConnectionAliases.html)
2643// to make sure that the current state of the connection alias is CREATED.
2644//
2645// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2646// with awserr.Error's Code and Message methods to get detailed information about
2647// the error.
2648//
2649// See the AWS API reference guide for Amazon WorkSpaces's
2650// API operation DisassociateConnectionAlias for usage and error information.
2651//
2652// Returned Error Types:
2653//   * AccessDeniedException
2654//   The user is not authorized to access a resource.
2655//
2656//   * ResourceNotFoundException
2657//   The resource could not be found.
2658//
2659//   * InvalidParameterValuesException
2660//   One or more parameter values are not valid.
2661//
2662//   * InvalidResourceStateException
2663//   The state of the resource is not valid for this operation.
2664//
2665//   * OperationNotSupportedException
2666//   This operation is not supported.
2667//
2668// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateConnectionAlias
2669func (c *WorkSpaces) DisassociateConnectionAlias(input *DisassociateConnectionAliasInput) (*DisassociateConnectionAliasOutput, error) {
2670	req, out := c.DisassociateConnectionAliasRequest(input)
2671	return out, req.Send()
2672}
2673
2674// DisassociateConnectionAliasWithContext is the same as DisassociateConnectionAlias with the addition of
2675// the ability to pass a context and additional request options.
2676//
2677// See DisassociateConnectionAlias for details on how to use this API operation.
2678//
2679// The context must be non-nil and will be used for request cancellation. If
2680// the context is nil a panic will occur. In the future the SDK may create
2681// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2682// for more information on using Contexts.
2683func (c *WorkSpaces) DisassociateConnectionAliasWithContext(ctx aws.Context, input *DisassociateConnectionAliasInput, opts ...request.Option) (*DisassociateConnectionAliasOutput, error) {
2684	req, out := c.DisassociateConnectionAliasRequest(input)
2685	req.SetContext(ctx)
2686	req.ApplyOptions(opts...)
2687	return out, req.Send()
2688}
2689
2690const opDisassociateIpGroups = "DisassociateIpGroups"
2691
2692// DisassociateIpGroupsRequest generates a "aws/request.Request" representing the
2693// client's request for the DisassociateIpGroups operation. The "output" return
2694// value will be populated with the request's response once the request completes
2695// successfully.
2696//
2697// Use "Send" method on the returned Request to send the API call to the service.
2698// the "output" return value is not valid until after Send returns without error.
2699//
2700// See DisassociateIpGroups for more information on using the DisassociateIpGroups
2701// API call, and error handling.
2702//
2703// This method is useful when you want to inject custom logic or configuration
2704// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2705//
2706//
2707//    // Example sending a request using the DisassociateIpGroupsRequest method.
2708//    req, resp := client.DisassociateIpGroupsRequest(params)
2709//
2710//    err := req.Send()
2711//    if err == nil { // resp is now filled
2712//        fmt.Println(resp)
2713//    }
2714//
2715// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateIpGroups
2716func (c *WorkSpaces) DisassociateIpGroupsRequest(input *DisassociateIpGroupsInput) (req *request.Request, output *DisassociateIpGroupsOutput) {
2717	op := &request.Operation{
2718		Name:       opDisassociateIpGroups,
2719		HTTPMethod: "POST",
2720		HTTPPath:   "/",
2721	}
2722
2723	if input == nil {
2724		input = &DisassociateIpGroupsInput{}
2725	}
2726
2727	output = &DisassociateIpGroupsOutput{}
2728	req = c.newRequest(op, input, output)
2729	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2730	return
2731}
2732
2733// DisassociateIpGroups API operation for Amazon WorkSpaces.
2734//
2735// Disassociates the specified IP access control group from the specified directory.
2736//
2737// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2738// with awserr.Error's Code and Message methods to get detailed information about
2739// the error.
2740//
2741// See the AWS API reference guide for Amazon WorkSpaces's
2742// API operation DisassociateIpGroups for usage and error information.
2743//
2744// Returned Error Types:
2745//   * InvalidParameterValuesException
2746//   One or more parameter values are not valid.
2747//
2748//   * ResourceNotFoundException
2749//   The resource could not be found.
2750//
2751//   * InvalidResourceStateException
2752//   The state of the resource is not valid for this operation.
2753//
2754//   * AccessDeniedException
2755//   The user is not authorized to access a resource.
2756//
2757// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateIpGroups
2758func (c *WorkSpaces) DisassociateIpGroups(input *DisassociateIpGroupsInput) (*DisassociateIpGroupsOutput, error) {
2759	req, out := c.DisassociateIpGroupsRequest(input)
2760	return out, req.Send()
2761}
2762
2763// DisassociateIpGroupsWithContext is the same as DisassociateIpGroups with the addition of
2764// the ability to pass a context and additional request options.
2765//
2766// See DisassociateIpGroups for details on how to use this API operation.
2767//
2768// The context must be non-nil and will be used for request cancellation. If
2769// the context is nil a panic will occur. In the future the SDK may create
2770// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2771// for more information on using Contexts.
2772func (c *WorkSpaces) DisassociateIpGroupsWithContext(ctx aws.Context, input *DisassociateIpGroupsInput, opts ...request.Option) (*DisassociateIpGroupsOutput, error) {
2773	req, out := c.DisassociateIpGroupsRequest(input)
2774	req.SetContext(ctx)
2775	req.ApplyOptions(opts...)
2776	return out, req.Send()
2777}
2778
2779const opImportWorkspaceImage = "ImportWorkspaceImage"
2780
2781// ImportWorkspaceImageRequest generates a "aws/request.Request" representing the
2782// client's request for the ImportWorkspaceImage operation. The "output" return
2783// value will be populated with the request's response once the request completes
2784// successfully.
2785//
2786// Use "Send" method on the returned Request to send the API call to the service.
2787// the "output" return value is not valid until after Send returns without error.
2788//
2789// See ImportWorkspaceImage for more information on using the ImportWorkspaceImage
2790// API call, and error handling.
2791//
2792// This method is useful when you want to inject custom logic or configuration
2793// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2794//
2795//
2796//    // Example sending a request using the ImportWorkspaceImageRequest method.
2797//    req, resp := client.ImportWorkspaceImageRequest(params)
2798//
2799//    err := req.Send()
2800//    if err == nil { // resp is now filled
2801//        fmt.Println(resp)
2802//    }
2803//
2804// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ImportWorkspaceImage
2805func (c *WorkSpaces) ImportWorkspaceImageRequest(input *ImportWorkspaceImageInput) (req *request.Request, output *ImportWorkspaceImageOutput) {
2806	op := &request.Operation{
2807		Name:       opImportWorkspaceImage,
2808		HTTPMethod: "POST",
2809		HTTPPath:   "/",
2810	}
2811
2812	if input == nil {
2813		input = &ImportWorkspaceImageInput{}
2814	}
2815
2816	output = &ImportWorkspaceImageOutput{}
2817	req = c.newRequest(op, input, output)
2818	return
2819}
2820
2821// ImportWorkspaceImage API operation for Amazon WorkSpaces.
2822//
2823// Imports the specified Windows 10 Bring Your Own License (BYOL) image into
2824// Amazon WorkSpaces. The image must be an already licensed Amazon EC2 image
2825// that is in your AWS account, and you must own the image. For more information
2826// about creating BYOL images, see Bring Your Own Windows Desktop Licenses (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
2827//
2828// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2829// with awserr.Error's Code and Message methods to get detailed information about
2830// the error.
2831//
2832// See the AWS API reference guide for Amazon WorkSpaces's
2833// API operation ImportWorkspaceImage for usage and error information.
2834//
2835// Returned Error Types:
2836//   * ResourceLimitExceededException
2837//   Your resource limits have been exceeded.
2838//
2839//   * ResourceAlreadyExistsException
2840//   The specified resource already exists.
2841//
2842//   * ResourceNotFoundException
2843//   The resource could not be found.
2844//
2845//   * OperationNotSupportedException
2846//   This operation is not supported.
2847//
2848//   * AccessDeniedException
2849//   The user is not authorized to access a resource.
2850//
2851//   * InvalidParameterValuesException
2852//   One or more parameter values are not valid.
2853//
2854// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ImportWorkspaceImage
2855func (c *WorkSpaces) ImportWorkspaceImage(input *ImportWorkspaceImageInput) (*ImportWorkspaceImageOutput, error) {
2856	req, out := c.ImportWorkspaceImageRequest(input)
2857	return out, req.Send()
2858}
2859
2860// ImportWorkspaceImageWithContext is the same as ImportWorkspaceImage with the addition of
2861// the ability to pass a context and additional request options.
2862//
2863// See ImportWorkspaceImage for details on how to use this API operation.
2864//
2865// The context must be non-nil and will be used for request cancellation. If
2866// the context is nil a panic will occur. In the future the SDK may create
2867// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2868// for more information on using Contexts.
2869func (c *WorkSpaces) ImportWorkspaceImageWithContext(ctx aws.Context, input *ImportWorkspaceImageInput, opts ...request.Option) (*ImportWorkspaceImageOutput, error) {
2870	req, out := c.ImportWorkspaceImageRequest(input)
2871	req.SetContext(ctx)
2872	req.ApplyOptions(opts...)
2873	return out, req.Send()
2874}
2875
2876const opListAvailableManagementCidrRanges = "ListAvailableManagementCidrRanges"
2877
2878// ListAvailableManagementCidrRangesRequest generates a "aws/request.Request" representing the
2879// client's request for the ListAvailableManagementCidrRanges operation. The "output" return
2880// value will be populated with the request's response once the request completes
2881// successfully.
2882//
2883// Use "Send" method on the returned Request to send the API call to the service.
2884// the "output" return value is not valid until after Send returns without error.
2885//
2886// See ListAvailableManagementCidrRanges for more information on using the ListAvailableManagementCidrRanges
2887// API call, and error handling.
2888//
2889// This method is useful when you want to inject custom logic or configuration
2890// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2891//
2892//
2893//    // Example sending a request using the ListAvailableManagementCidrRangesRequest method.
2894//    req, resp := client.ListAvailableManagementCidrRangesRequest(params)
2895//
2896//    err := req.Send()
2897//    if err == nil { // resp is now filled
2898//        fmt.Println(resp)
2899//    }
2900//
2901// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ListAvailableManagementCidrRanges
2902func (c *WorkSpaces) ListAvailableManagementCidrRangesRequest(input *ListAvailableManagementCidrRangesInput) (req *request.Request, output *ListAvailableManagementCidrRangesOutput) {
2903	op := &request.Operation{
2904		Name:       opListAvailableManagementCidrRanges,
2905		HTTPMethod: "POST",
2906		HTTPPath:   "/",
2907	}
2908
2909	if input == nil {
2910		input = &ListAvailableManagementCidrRangesInput{}
2911	}
2912
2913	output = &ListAvailableManagementCidrRangesOutput{}
2914	req = c.newRequest(op, input, output)
2915	return
2916}
2917
2918// ListAvailableManagementCidrRanges API operation for Amazon WorkSpaces.
2919//
2920// Retrieves a list of IP address ranges, specified as IPv4 CIDR blocks, that
2921// you can use for the network management interface when you enable Bring Your
2922// Own License (BYOL).
2923//
2924// This operation can be run only by AWS accounts that are enabled for BYOL.
2925// If your account isn't enabled for BYOL, you'll receive an AccessDeniedException
2926// error.
2927//
2928// The management network interface is connected to a secure Amazon WorkSpaces
2929// management network. It is used for interactive streaming of the WorkSpace
2930// desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage
2931// the WorkSpace.
2932//
2933// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2934// with awserr.Error's Code and Message methods to get detailed information about
2935// the error.
2936//
2937// See the AWS API reference guide for Amazon WorkSpaces's
2938// API operation ListAvailableManagementCidrRanges for usage and error information.
2939//
2940// Returned Error Types:
2941//   * InvalidParameterValuesException
2942//   One or more parameter values are not valid.
2943//
2944//   * AccessDeniedException
2945//   The user is not authorized to access a resource.
2946//
2947// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ListAvailableManagementCidrRanges
2948func (c *WorkSpaces) ListAvailableManagementCidrRanges(input *ListAvailableManagementCidrRangesInput) (*ListAvailableManagementCidrRangesOutput, error) {
2949	req, out := c.ListAvailableManagementCidrRangesRequest(input)
2950	return out, req.Send()
2951}
2952
2953// ListAvailableManagementCidrRangesWithContext is the same as ListAvailableManagementCidrRanges with the addition of
2954// the ability to pass a context and additional request options.
2955//
2956// See ListAvailableManagementCidrRanges for details on how to use this API operation.
2957//
2958// The context must be non-nil and will be used for request cancellation. If
2959// the context is nil a panic will occur. In the future the SDK may create
2960// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2961// for more information on using Contexts.
2962func (c *WorkSpaces) ListAvailableManagementCidrRangesWithContext(ctx aws.Context, input *ListAvailableManagementCidrRangesInput, opts ...request.Option) (*ListAvailableManagementCidrRangesOutput, error) {
2963	req, out := c.ListAvailableManagementCidrRangesRequest(input)
2964	req.SetContext(ctx)
2965	req.ApplyOptions(opts...)
2966	return out, req.Send()
2967}
2968
2969const opMigrateWorkspace = "MigrateWorkspace"
2970
2971// MigrateWorkspaceRequest generates a "aws/request.Request" representing the
2972// client's request for the MigrateWorkspace operation. The "output" return
2973// value will be populated with the request's response once the request completes
2974// successfully.
2975//
2976// Use "Send" method on the returned Request to send the API call to the service.
2977// the "output" return value is not valid until after Send returns without error.
2978//
2979// See MigrateWorkspace for more information on using the MigrateWorkspace
2980// API call, and error handling.
2981//
2982// This method is useful when you want to inject custom logic or configuration
2983// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2984//
2985//
2986//    // Example sending a request using the MigrateWorkspaceRequest method.
2987//    req, resp := client.MigrateWorkspaceRequest(params)
2988//
2989//    err := req.Send()
2990//    if err == nil { // resp is now filled
2991//        fmt.Println(resp)
2992//    }
2993//
2994// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/MigrateWorkspace
2995func (c *WorkSpaces) MigrateWorkspaceRequest(input *MigrateWorkspaceInput) (req *request.Request, output *MigrateWorkspaceOutput) {
2996	op := &request.Operation{
2997		Name:       opMigrateWorkspace,
2998		HTTPMethod: "POST",
2999		HTTPPath:   "/",
3000	}
3001
3002	if input == nil {
3003		input = &MigrateWorkspaceInput{}
3004	}
3005
3006	output = &MigrateWorkspaceOutput{}
3007	req = c.newRequest(op, input, output)
3008	return
3009}
3010
3011// MigrateWorkspace API operation for Amazon WorkSpaces.
3012//
3013// Migrates a WorkSpace from one operating system or bundle type to another,
3014// while retaining the data on the user volume.
3015//
3016// The migration process recreates the WorkSpace by using a new root volume
3017// from the target bundle image and the user volume from the last available
3018// snapshot of the original WorkSpace. During migration, the original D:\Users\%USERNAME%
3019// user profile folder is renamed to D:\Users\%USERNAME%MMddyyTHHmmss%.NotMigrated.
3020// A new D:\Users\%USERNAME%\ folder is generated by the new OS. Certain files
3021// in the old user profile are moved to the new user profile.
3022//
3023// For available migration scenarios, details about what happens during migration,
3024// and best practices, see Migrate a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/migrate-workspaces.html).
3025//
3026// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3027// with awserr.Error's Code and Message methods to get detailed information about
3028// the error.
3029//
3030// See the AWS API reference guide for Amazon WorkSpaces's
3031// API operation MigrateWorkspace for usage and error information.
3032//
3033// Returned Error Types:
3034//   * InvalidParameterValuesException
3035//   One or more parameter values are not valid.
3036//
3037//   * ResourceNotFoundException
3038//   The resource could not be found.
3039//
3040//   * AccessDeniedException
3041//   The user is not authorized to access a resource.
3042//
3043//   * OperationNotSupportedException
3044//   This operation is not supported.
3045//
3046//   * OperationInProgressException
3047//   The properties of this WorkSpace are currently being modified. Try again
3048//   in a moment.
3049//
3050//   * ResourceUnavailableException
3051//   The specified resource is not available.
3052//
3053// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/MigrateWorkspace
3054func (c *WorkSpaces) MigrateWorkspace(input *MigrateWorkspaceInput) (*MigrateWorkspaceOutput, error) {
3055	req, out := c.MigrateWorkspaceRequest(input)
3056	return out, req.Send()
3057}
3058
3059// MigrateWorkspaceWithContext is the same as MigrateWorkspace with the addition of
3060// the ability to pass a context and additional request options.
3061//
3062// See MigrateWorkspace for details on how to use this API operation.
3063//
3064// The context must be non-nil and will be used for request cancellation. If
3065// the context is nil a panic will occur. In the future the SDK may create
3066// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3067// for more information on using Contexts.
3068func (c *WorkSpaces) MigrateWorkspaceWithContext(ctx aws.Context, input *MigrateWorkspaceInput, opts ...request.Option) (*MigrateWorkspaceOutput, error) {
3069	req, out := c.MigrateWorkspaceRequest(input)
3070	req.SetContext(ctx)
3071	req.ApplyOptions(opts...)
3072	return out, req.Send()
3073}
3074
3075const opModifyAccount = "ModifyAccount"
3076
3077// ModifyAccountRequest generates a "aws/request.Request" representing the
3078// client's request for the ModifyAccount operation. The "output" return
3079// value will be populated with the request's response once the request completes
3080// successfully.
3081//
3082// Use "Send" method on the returned Request to send the API call to the service.
3083// the "output" return value is not valid until after Send returns without error.
3084//
3085// See ModifyAccount for more information on using the ModifyAccount
3086// API call, and error handling.
3087//
3088// This method is useful when you want to inject custom logic or configuration
3089// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3090//
3091//
3092//    // Example sending a request using the ModifyAccountRequest method.
3093//    req, resp := client.ModifyAccountRequest(params)
3094//
3095//    err := req.Send()
3096//    if err == nil { // resp is now filled
3097//        fmt.Println(resp)
3098//    }
3099//
3100// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyAccount
3101func (c *WorkSpaces) ModifyAccountRequest(input *ModifyAccountInput) (req *request.Request, output *ModifyAccountOutput) {
3102	op := &request.Operation{
3103		Name:       opModifyAccount,
3104		HTTPMethod: "POST",
3105		HTTPPath:   "/",
3106	}
3107
3108	if input == nil {
3109		input = &ModifyAccountInput{}
3110	}
3111
3112	output = &ModifyAccountOutput{}
3113	req = c.newRequest(op, input, output)
3114	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3115	return
3116}
3117
3118// ModifyAccount API operation for Amazon WorkSpaces.
3119//
3120// Modifies the configuration of Bring Your Own License (BYOL) for the specified
3121// account.
3122//
3123// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3124// with awserr.Error's Code and Message methods to get detailed information about
3125// the error.
3126//
3127// See the AWS API reference guide for Amazon WorkSpaces's
3128// API operation ModifyAccount for usage and error information.
3129//
3130// Returned Error Types:
3131//   * InvalidParameterValuesException
3132//   One or more parameter values are not valid.
3133//
3134//   * AccessDeniedException
3135//   The user is not authorized to access a resource.
3136//
3137//   * InvalidResourceStateException
3138//   The state of the resource is not valid for this operation.
3139//
3140//   * ResourceUnavailableException
3141//   The specified resource is not available.
3142//
3143//   * ResourceNotFoundException
3144//   The resource could not be found.
3145//
3146// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyAccount
3147func (c *WorkSpaces) ModifyAccount(input *ModifyAccountInput) (*ModifyAccountOutput, error) {
3148	req, out := c.ModifyAccountRequest(input)
3149	return out, req.Send()
3150}
3151
3152// ModifyAccountWithContext is the same as ModifyAccount with the addition of
3153// the ability to pass a context and additional request options.
3154//
3155// See ModifyAccount for details on how to use this API operation.
3156//
3157// The context must be non-nil and will be used for request cancellation. If
3158// the context is nil a panic will occur. In the future the SDK may create
3159// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3160// for more information on using Contexts.
3161func (c *WorkSpaces) ModifyAccountWithContext(ctx aws.Context, input *ModifyAccountInput, opts ...request.Option) (*ModifyAccountOutput, error) {
3162	req, out := c.ModifyAccountRequest(input)
3163	req.SetContext(ctx)
3164	req.ApplyOptions(opts...)
3165	return out, req.Send()
3166}
3167
3168const opModifyClientProperties = "ModifyClientProperties"
3169
3170// ModifyClientPropertiesRequest generates a "aws/request.Request" representing the
3171// client's request for the ModifyClientProperties operation. The "output" return
3172// value will be populated with the request's response once the request completes
3173// successfully.
3174//
3175// Use "Send" method on the returned Request to send the API call to the service.
3176// the "output" return value is not valid until after Send returns without error.
3177//
3178// See ModifyClientProperties for more information on using the ModifyClientProperties
3179// API call, and error handling.
3180//
3181// This method is useful when you want to inject custom logic or configuration
3182// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3183//
3184//
3185//    // Example sending a request using the ModifyClientPropertiesRequest method.
3186//    req, resp := client.ModifyClientPropertiesRequest(params)
3187//
3188//    err := req.Send()
3189//    if err == nil { // resp is now filled
3190//        fmt.Println(resp)
3191//    }
3192//
3193// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyClientProperties
3194func (c *WorkSpaces) ModifyClientPropertiesRequest(input *ModifyClientPropertiesInput) (req *request.Request, output *ModifyClientPropertiesOutput) {
3195	op := &request.Operation{
3196		Name:       opModifyClientProperties,
3197		HTTPMethod: "POST",
3198		HTTPPath:   "/",
3199	}
3200
3201	if input == nil {
3202		input = &ModifyClientPropertiesInput{}
3203	}
3204
3205	output = &ModifyClientPropertiesOutput{}
3206	req = c.newRequest(op, input, output)
3207	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3208	return
3209}
3210
3211// ModifyClientProperties API operation for Amazon WorkSpaces.
3212//
3213// Modifies the properties of the specified Amazon WorkSpaces clients.
3214//
3215// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3216// with awserr.Error's Code and Message methods to get detailed information about
3217// the error.
3218//
3219// See the AWS API reference guide for Amazon WorkSpaces's
3220// API operation ModifyClientProperties for usage and error information.
3221//
3222// Returned Error Types:
3223//   * InvalidParameterValuesException
3224//   One or more parameter values are not valid.
3225//
3226//   * ResourceNotFoundException
3227//   The resource could not be found.
3228//
3229//   * AccessDeniedException
3230//   The user is not authorized to access a resource.
3231//
3232// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyClientProperties
3233func (c *WorkSpaces) ModifyClientProperties(input *ModifyClientPropertiesInput) (*ModifyClientPropertiesOutput, error) {
3234	req, out := c.ModifyClientPropertiesRequest(input)
3235	return out, req.Send()
3236}
3237
3238// ModifyClientPropertiesWithContext is the same as ModifyClientProperties with the addition of
3239// the ability to pass a context and additional request options.
3240//
3241// See ModifyClientProperties for details on how to use this API operation.
3242//
3243// The context must be non-nil and will be used for request cancellation. If
3244// the context is nil a panic will occur. In the future the SDK may create
3245// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3246// for more information on using Contexts.
3247func (c *WorkSpaces) ModifyClientPropertiesWithContext(ctx aws.Context, input *ModifyClientPropertiesInput, opts ...request.Option) (*ModifyClientPropertiesOutput, error) {
3248	req, out := c.ModifyClientPropertiesRequest(input)
3249	req.SetContext(ctx)
3250	req.ApplyOptions(opts...)
3251	return out, req.Send()
3252}
3253
3254const opModifySelfservicePermissions = "ModifySelfservicePermissions"
3255
3256// ModifySelfservicePermissionsRequest generates a "aws/request.Request" representing the
3257// client's request for the ModifySelfservicePermissions operation. The "output" return
3258// value will be populated with the request's response once the request completes
3259// successfully.
3260//
3261// Use "Send" method on the returned Request to send the API call to the service.
3262// the "output" return value is not valid until after Send returns without error.
3263//
3264// See ModifySelfservicePermissions for more information on using the ModifySelfservicePermissions
3265// API call, and error handling.
3266//
3267// This method is useful when you want to inject custom logic or configuration
3268// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3269//
3270//
3271//    // Example sending a request using the ModifySelfservicePermissionsRequest method.
3272//    req, resp := client.ModifySelfservicePermissionsRequest(params)
3273//
3274//    err := req.Send()
3275//    if err == nil { // resp is now filled
3276//        fmt.Println(resp)
3277//    }
3278//
3279// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifySelfservicePermissions
3280func (c *WorkSpaces) ModifySelfservicePermissionsRequest(input *ModifySelfservicePermissionsInput) (req *request.Request, output *ModifySelfservicePermissionsOutput) {
3281	op := &request.Operation{
3282		Name:       opModifySelfservicePermissions,
3283		HTTPMethod: "POST",
3284		HTTPPath:   "/",
3285	}
3286
3287	if input == nil {
3288		input = &ModifySelfservicePermissionsInput{}
3289	}
3290
3291	output = &ModifySelfservicePermissionsOutput{}
3292	req = c.newRequest(op, input, output)
3293	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3294	return
3295}
3296
3297// ModifySelfservicePermissions API operation for Amazon WorkSpaces.
3298//
3299// Modifies the self-service WorkSpace management capabilities for your users.
3300// For more information, see Enable Self-Service WorkSpace Management Capabilities
3301// for Your Users (https://docs.aws.amazon.com/workspaces/latest/adminguide/enable-user-self-service-workspace-management.html).
3302//
3303// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3304// with awserr.Error's Code and Message methods to get detailed information about
3305// the error.
3306//
3307// See the AWS API reference guide for Amazon WorkSpaces's
3308// API operation ModifySelfservicePermissions for usage and error information.
3309//
3310// Returned Error Types:
3311//   * AccessDeniedException
3312//   The user is not authorized to access a resource.
3313//
3314//   * InvalidParameterValuesException
3315//   One or more parameter values are not valid.
3316//
3317//   * ResourceNotFoundException
3318//   The resource could not be found.
3319//
3320// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifySelfservicePermissions
3321func (c *WorkSpaces) ModifySelfservicePermissions(input *ModifySelfservicePermissionsInput) (*ModifySelfservicePermissionsOutput, error) {
3322	req, out := c.ModifySelfservicePermissionsRequest(input)
3323	return out, req.Send()
3324}
3325
3326// ModifySelfservicePermissionsWithContext is the same as ModifySelfservicePermissions with the addition of
3327// the ability to pass a context and additional request options.
3328//
3329// See ModifySelfservicePermissions for details on how to use this API operation.
3330//
3331// The context must be non-nil and will be used for request cancellation. If
3332// the context is nil a panic will occur. In the future the SDK may create
3333// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3334// for more information on using Contexts.
3335func (c *WorkSpaces) ModifySelfservicePermissionsWithContext(ctx aws.Context, input *ModifySelfservicePermissionsInput, opts ...request.Option) (*ModifySelfservicePermissionsOutput, error) {
3336	req, out := c.ModifySelfservicePermissionsRequest(input)
3337	req.SetContext(ctx)
3338	req.ApplyOptions(opts...)
3339	return out, req.Send()
3340}
3341
3342const opModifyWorkspaceAccessProperties = "ModifyWorkspaceAccessProperties"
3343
3344// ModifyWorkspaceAccessPropertiesRequest generates a "aws/request.Request" representing the
3345// client's request for the ModifyWorkspaceAccessProperties operation. The "output" return
3346// value will be populated with the request's response once the request completes
3347// successfully.
3348//
3349// Use "Send" method on the returned Request to send the API call to the service.
3350// the "output" return value is not valid until after Send returns without error.
3351//
3352// See ModifyWorkspaceAccessProperties for more information on using the ModifyWorkspaceAccessProperties
3353// API call, and error handling.
3354//
3355// This method is useful when you want to inject custom logic or configuration
3356// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3357//
3358//
3359//    // Example sending a request using the ModifyWorkspaceAccessPropertiesRequest method.
3360//    req, resp := client.ModifyWorkspaceAccessPropertiesRequest(params)
3361//
3362//    err := req.Send()
3363//    if err == nil { // resp is now filled
3364//        fmt.Println(resp)
3365//    }
3366//
3367// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceAccessProperties
3368func (c *WorkSpaces) ModifyWorkspaceAccessPropertiesRequest(input *ModifyWorkspaceAccessPropertiesInput) (req *request.Request, output *ModifyWorkspaceAccessPropertiesOutput) {
3369	op := &request.Operation{
3370		Name:       opModifyWorkspaceAccessProperties,
3371		HTTPMethod: "POST",
3372		HTTPPath:   "/",
3373	}
3374
3375	if input == nil {
3376		input = &ModifyWorkspaceAccessPropertiesInput{}
3377	}
3378
3379	output = &ModifyWorkspaceAccessPropertiesOutput{}
3380	req = c.newRequest(op, input, output)
3381	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3382	return
3383}
3384
3385// ModifyWorkspaceAccessProperties API operation for Amazon WorkSpaces.
3386//
3387// Specifies which devices and operating systems users can use to access their
3388// WorkSpaces. For more information, see Control Device Access (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html#control-device-access).
3389//
3390// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3391// with awserr.Error's Code and Message methods to get detailed information about
3392// the error.
3393//
3394// See the AWS API reference guide for Amazon WorkSpaces's
3395// API operation ModifyWorkspaceAccessProperties for usage and error information.
3396//
3397// Returned Error Types:
3398//   * ResourceNotFoundException
3399//   The resource could not be found.
3400//
3401//   * AccessDeniedException
3402//   The user is not authorized to access a resource.
3403//
3404// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceAccessProperties
3405func (c *WorkSpaces) ModifyWorkspaceAccessProperties(input *ModifyWorkspaceAccessPropertiesInput) (*ModifyWorkspaceAccessPropertiesOutput, error) {
3406	req, out := c.ModifyWorkspaceAccessPropertiesRequest(input)
3407	return out, req.Send()
3408}
3409
3410// ModifyWorkspaceAccessPropertiesWithContext is the same as ModifyWorkspaceAccessProperties with the addition of
3411// the ability to pass a context and additional request options.
3412//
3413// See ModifyWorkspaceAccessProperties for details on how to use this API operation.
3414//
3415// The context must be non-nil and will be used for request cancellation. If
3416// the context is nil a panic will occur. In the future the SDK may create
3417// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3418// for more information on using Contexts.
3419func (c *WorkSpaces) ModifyWorkspaceAccessPropertiesWithContext(ctx aws.Context, input *ModifyWorkspaceAccessPropertiesInput, opts ...request.Option) (*ModifyWorkspaceAccessPropertiesOutput, error) {
3420	req, out := c.ModifyWorkspaceAccessPropertiesRequest(input)
3421	req.SetContext(ctx)
3422	req.ApplyOptions(opts...)
3423	return out, req.Send()
3424}
3425
3426const opModifyWorkspaceCreationProperties = "ModifyWorkspaceCreationProperties"
3427
3428// ModifyWorkspaceCreationPropertiesRequest generates a "aws/request.Request" representing the
3429// client's request for the ModifyWorkspaceCreationProperties operation. The "output" return
3430// value will be populated with the request's response once the request completes
3431// successfully.
3432//
3433// Use "Send" method on the returned Request to send the API call to the service.
3434// the "output" return value is not valid until after Send returns without error.
3435//
3436// See ModifyWorkspaceCreationProperties for more information on using the ModifyWorkspaceCreationProperties
3437// API call, and error handling.
3438//
3439// This method is useful when you want to inject custom logic or configuration
3440// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3441//
3442//
3443//    // Example sending a request using the ModifyWorkspaceCreationPropertiesRequest method.
3444//    req, resp := client.ModifyWorkspaceCreationPropertiesRequest(params)
3445//
3446//    err := req.Send()
3447//    if err == nil { // resp is now filled
3448//        fmt.Println(resp)
3449//    }
3450//
3451// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceCreationProperties
3452func (c *WorkSpaces) ModifyWorkspaceCreationPropertiesRequest(input *ModifyWorkspaceCreationPropertiesInput) (req *request.Request, output *ModifyWorkspaceCreationPropertiesOutput) {
3453	op := &request.Operation{
3454		Name:       opModifyWorkspaceCreationProperties,
3455		HTTPMethod: "POST",
3456		HTTPPath:   "/",
3457	}
3458
3459	if input == nil {
3460		input = &ModifyWorkspaceCreationPropertiesInput{}
3461	}
3462
3463	output = &ModifyWorkspaceCreationPropertiesOutput{}
3464	req = c.newRequest(op, input, output)
3465	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3466	return
3467}
3468
3469// ModifyWorkspaceCreationProperties API operation for Amazon WorkSpaces.
3470//
3471// Modify the default properties used to create WorkSpaces.
3472//
3473// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3474// with awserr.Error's Code and Message methods to get detailed information about
3475// the error.
3476//
3477// See the AWS API reference guide for Amazon WorkSpaces's
3478// API operation ModifyWorkspaceCreationProperties for usage and error information.
3479//
3480// Returned Error Types:
3481//   * AccessDeniedException
3482//   The user is not authorized to access a resource.
3483//
3484//   * InvalidParameterValuesException
3485//   One or more parameter values are not valid.
3486//
3487//   * ResourceNotFoundException
3488//   The resource could not be found.
3489//
3490//   * OperationNotSupportedException
3491//   This operation is not supported.
3492//
3493// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceCreationProperties
3494func (c *WorkSpaces) ModifyWorkspaceCreationProperties(input *ModifyWorkspaceCreationPropertiesInput) (*ModifyWorkspaceCreationPropertiesOutput, error) {
3495	req, out := c.ModifyWorkspaceCreationPropertiesRequest(input)
3496	return out, req.Send()
3497}
3498
3499// ModifyWorkspaceCreationPropertiesWithContext is the same as ModifyWorkspaceCreationProperties with the addition of
3500// the ability to pass a context and additional request options.
3501//
3502// See ModifyWorkspaceCreationProperties for details on how to use this API operation.
3503//
3504// The context must be non-nil and will be used for request cancellation. If
3505// the context is nil a panic will occur. In the future the SDK may create
3506// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3507// for more information on using Contexts.
3508func (c *WorkSpaces) ModifyWorkspaceCreationPropertiesWithContext(ctx aws.Context, input *ModifyWorkspaceCreationPropertiesInput, opts ...request.Option) (*ModifyWorkspaceCreationPropertiesOutput, error) {
3509	req, out := c.ModifyWorkspaceCreationPropertiesRequest(input)
3510	req.SetContext(ctx)
3511	req.ApplyOptions(opts...)
3512	return out, req.Send()
3513}
3514
3515const opModifyWorkspaceProperties = "ModifyWorkspaceProperties"
3516
3517// ModifyWorkspacePropertiesRequest generates a "aws/request.Request" representing the
3518// client's request for the ModifyWorkspaceProperties operation. The "output" return
3519// value will be populated with the request's response once the request completes
3520// successfully.
3521//
3522// Use "Send" method on the returned Request to send the API call to the service.
3523// the "output" return value is not valid until after Send returns without error.
3524//
3525// See ModifyWorkspaceProperties for more information on using the ModifyWorkspaceProperties
3526// API call, and error handling.
3527//
3528// This method is useful when you want to inject custom logic or configuration
3529// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3530//
3531//
3532//    // Example sending a request using the ModifyWorkspacePropertiesRequest method.
3533//    req, resp := client.ModifyWorkspacePropertiesRequest(params)
3534//
3535//    err := req.Send()
3536//    if err == nil { // resp is now filled
3537//        fmt.Println(resp)
3538//    }
3539//
3540// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceProperties
3541func (c *WorkSpaces) ModifyWorkspacePropertiesRequest(input *ModifyWorkspacePropertiesInput) (req *request.Request, output *ModifyWorkspacePropertiesOutput) {
3542	op := &request.Operation{
3543		Name:       opModifyWorkspaceProperties,
3544		HTTPMethod: "POST",
3545		HTTPPath:   "/",
3546	}
3547
3548	if input == nil {
3549		input = &ModifyWorkspacePropertiesInput{}
3550	}
3551
3552	output = &ModifyWorkspacePropertiesOutput{}
3553	req = c.newRequest(op, input, output)
3554	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3555	return
3556}
3557
3558// ModifyWorkspaceProperties API operation for Amazon WorkSpaces.
3559//
3560// Modifies the specified WorkSpace properties. For important information about
3561// how to modify the size of the root and user volumes, see Modify a WorkSpace
3562// (https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html).
3563//
3564// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3565// with awserr.Error's Code and Message methods to get detailed information about
3566// the error.
3567//
3568// See the AWS API reference guide for Amazon WorkSpaces's
3569// API operation ModifyWorkspaceProperties for usage and error information.
3570//
3571// Returned Error Types:
3572//   * InvalidParameterValuesException
3573//   One or more parameter values are not valid.
3574//
3575//   * InvalidResourceStateException
3576//   The state of the resource is not valid for this operation.
3577//
3578//   * OperationInProgressException
3579//   The properties of this WorkSpace are currently being modified. Try again
3580//   in a moment.
3581//
3582//   * UnsupportedWorkspaceConfigurationException
3583//   The configuration of this WorkSpace is not supported for this operation.
3584//   For more information, see Required Configuration and Service Components for
3585//   WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/required-service-components.html).
3586//
3587//   * ResourceNotFoundException
3588//   The resource could not be found.
3589//
3590//   * AccessDeniedException
3591//   The user is not authorized to access a resource.
3592//
3593//   * ResourceUnavailableException
3594//   The specified resource is not available.
3595//
3596// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceProperties
3597func (c *WorkSpaces) ModifyWorkspaceProperties(input *ModifyWorkspacePropertiesInput) (*ModifyWorkspacePropertiesOutput, error) {
3598	req, out := c.ModifyWorkspacePropertiesRequest(input)
3599	return out, req.Send()
3600}
3601
3602// ModifyWorkspacePropertiesWithContext is the same as ModifyWorkspaceProperties with the addition of
3603// the ability to pass a context and additional request options.
3604//
3605// See ModifyWorkspaceProperties for details on how to use this API operation.
3606//
3607// The context must be non-nil and will be used for request cancellation. If
3608// the context is nil a panic will occur. In the future the SDK may create
3609// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3610// for more information on using Contexts.
3611func (c *WorkSpaces) ModifyWorkspacePropertiesWithContext(ctx aws.Context, input *ModifyWorkspacePropertiesInput, opts ...request.Option) (*ModifyWorkspacePropertiesOutput, error) {
3612	req, out := c.ModifyWorkspacePropertiesRequest(input)
3613	req.SetContext(ctx)
3614	req.ApplyOptions(opts...)
3615	return out, req.Send()
3616}
3617
3618const opModifyWorkspaceState = "ModifyWorkspaceState"
3619
3620// ModifyWorkspaceStateRequest generates a "aws/request.Request" representing the
3621// client's request for the ModifyWorkspaceState operation. The "output" return
3622// value will be populated with the request's response once the request completes
3623// successfully.
3624//
3625// Use "Send" method on the returned Request to send the API call to the service.
3626// the "output" return value is not valid until after Send returns without error.
3627//
3628// See ModifyWorkspaceState for more information on using the ModifyWorkspaceState
3629// API call, and error handling.
3630//
3631// This method is useful when you want to inject custom logic or configuration
3632// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3633//
3634//
3635//    // Example sending a request using the ModifyWorkspaceStateRequest method.
3636//    req, resp := client.ModifyWorkspaceStateRequest(params)
3637//
3638//    err := req.Send()
3639//    if err == nil { // resp is now filled
3640//        fmt.Println(resp)
3641//    }
3642//
3643// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceState
3644func (c *WorkSpaces) ModifyWorkspaceStateRequest(input *ModifyWorkspaceStateInput) (req *request.Request, output *ModifyWorkspaceStateOutput) {
3645	op := &request.Operation{
3646		Name:       opModifyWorkspaceState,
3647		HTTPMethod: "POST",
3648		HTTPPath:   "/",
3649	}
3650
3651	if input == nil {
3652		input = &ModifyWorkspaceStateInput{}
3653	}
3654
3655	output = &ModifyWorkspaceStateOutput{}
3656	req = c.newRequest(op, input, output)
3657	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3658	return
3659}
3660
3661// ModifyWorkspaceState API operation for Amazon WorkSpaces.
3662//
3663// Sets the state of the specified WorkSpace.
3664//
3665// To maintain a WorkSpace without being interrupted, set the WorkSpace state
3666// to ADMIN_MAINTENANCE. WorkSpaces in this state do not respond to requests
3667// to reboot, stop, start, rebuild, or restore. An AutoStop WorkSpace in this
3668// state is not stopped. Users cannot log into a WorkSpace in the ADMIN_MAINTENANCE
3669// state.
3670//
3671// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3672// with awserr.Error's Code and Message methods to get detailed information about
3673// the error.
3674//
3675// See the AWS API reference guide for Amazon WorkSpaces's
3676// API operation ModifyWorkspaceState for usage and error information.
3677//
3678// Returned Error Types:
3679//   * InvalidParameterValuesException
3680//   One or more parameter values are not valid.
3681//
3682//   * InvalidResourceStateException
3683//   The state of the resource is not valid for this operation.
3684//
3685//   * ResourceNotFoundException
3686//   The resource could not be found.
3687//
3688// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceState
3689func (c *WorkSpaces) ModifyWorkspaceState(input *ModifyWorkspaceStateInput) (*ModifyWorkspaceStateOutput, error) {
3690	req, out := c.ModifyWorkspaceStateRequest(input)
3691	return out, req.Send()
3692}
3693
3694// ModifyWorkspaceStateWithContext is the same as ModifyWorkspaceState with the addition of
3695// the ability to pass a context and additional request options.
3696//
3697// See ModifyWorkspaceState for details on how to use this API operation.
3698//
3699// The context must be non-nil and will be used for request cancellation. If
3700// the context is nil a panic will occur. In the future the SDK may create
3701// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3702// for more information on using Contexts.
3703func (c *WorkSpaces) ModifyWorkspaceStateWithContext(ctx aws.Context, input *ModifyWorkspaceStateInput, opts ...request.Option) (*ModifyWorkspaceStateOutput, error) {
3704	req, out := c.ModifyWorkspaceStateRequest(input)
3705	req.SetContext(ctx)
3706	req.ApplyOptions(opts...)
3707	return out, req.Send()
3708}
3709
3710const opRebootWorkspaces = "RebootWorkspaces"
3711
3712// RebootWorkspacesRequest generates a "aws/request.Request" representing the
3713// client's request for the RebootWorkspaces operation. The "output" return
3714// value will be populated with the request's response once the request completes
3715// successfully.
3716//
3717// Use "Send" method on the returned Request to send the API call to the service.
3718// the "output" return value is not valid until after Send returns without error.
3719//
3720// See RebootWorkspaces for more information on using the RebootWorkspaces
3721// API call, and error handling.
3722//
3723// This method is useful when you want to inject custom logic or configuration
3724// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3725//
3726//
3727//    // Example sending a request using the RebootWorkspacesRequest method.
3728//    req, resp := client.RebootWorkspacesRequest(params)
3729//
3730//    err := req.Send()
3731//    if err == nil { // resp is now filled
3732//        fmt.Println(resp)
3733//    }
3734//
3735// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebootWorkspaces
3736func (c *WorkSpaces) RebootWorkspacesRequest(input *RebootWorkspacesInput) (req *request.Request, output *RebootWorkspacesOutput) {
3737	op := &request.Operation{
3738		Name:       opRebootWorkspaces,
3739		HTTPMethod: "POST",
3740		HTTPPath:   "/",
3741	}
3742
3743	if input == nil {
3744		input = &RebootWorkspacesInput{}
3745	}
3746
3747	output = &RebootWorkspacesOutput{}
3748	req = c.newRequest(op, input, output)
3749	return
3750}
3751
3752// RebootWorkspaces API operation for Amazon WorkSpaces.
3753//
3754// Reboots the specified WorkSpaces.
3755//
3756// You cannot reboot a WorkSpace unless its state is AVAILABLE or UNHEALTHY.
3757//
3758// This operation is asynchronous and returns before the WorkSpaces have rebooted.
3759//
3760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3761// with awserr.Error's Code and Message methods to get detailed information about
3762// the error.
3763//
3764// See the AWS API reference guide for Amazon WorkSpaces's
3765// API operation RebootWorkspaces for usage and error information.
3766// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebootWorkspaces
3767func (c *WorkSpaces) RebootWorkspaces(input *RebootWorkspacesInput) (*RebootWorkspacesOutput, error) {
3768	req, out := c.RebootWorkspacesRequest(input)
3769	return out, req.Send()
3770}
3771
3772// RebootWorkspacesWithContext is the same as RebootWorkspaces with the addition of
3773// the ability to pass a context and additional request options.
3774//
3775// See RebootWorkspaces for details on how to use this API operation.
3776//
3777// The context must be non-nil and will be used for request cancellation. If
3778// the context is nil a panic will occur. In the future the SDK may create
3779// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3780// for more information on using Contexts.
3781func (c *WorkSpaces) RebootWorkspacesWithContext(ctx aws.Context, input *RebootWorkspacesInput, opts ...request.Option) (*RebootWorkspacesOutput, error) {
3782	req, out := c.RebootWorkspacesRequest(input)
3783	req.SetContext(ctx)
3784	req.ApplyOptions(opts...)
3785	return out, req.Send()
3786}
3787
3788const opRebuildWorkspaces = "RebuildWorkspaces"
3789
3790// RebuildWorkspacesRequest generates a "aws/request.Request" representing the
3791// client's request for the RebuildWorkspaces operation. The "output" return
3792// value will be populated with the request's response once the request completes
3793// successfully.
3794//
3795// Use "Send" method on the returned Request to send the API call to the service.
3796// the "output" return value is not valid until after Send returns without error.
3797//
3798// See RebuildWorkspaces for more information on using the RebuildWorkspaces
3799// API call, and error handling.
3800//
3801// This method is useful when you want to inject custom logic or configuration
3802// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3803//
3804//
3805//    // Example sending a request using the RebuildWorkspacesRequest method.
3806//    req, resp := client.RebuildWorkspacesRequest(params)
3807//
3808//    err := req.Send()
3809//    if err == nil { // resp is now filled
3810//        fmt.Println(resp)
3811//    }
3812//
3813// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces
3814func (c *WorkSpaces) RebuildWorkspacesRequest(input *RebuildWorkspacesInput) (req *request.Request, output *RebuildWorkspacesOutput) {
3815	op := &request.Operation{
3816		Name:       opRebuildWorkspaces,
3817		HTTPMethod: "POST",
3818		HTTPPath:   "/",
3819	}
3820
3821	if input == nil {
3822		input = &RebuildWorkspacesInput{}
3823	}
3824
3825	output = &RebuildWorkspacesOutput{}
3826	req = c.newRequest(op, input, output)
3827	return
3828}
3829
3830// RebuildWorkspaces API operation for Amazon WorkSpaces.
3831//
3832// Rebuilds the specified WorkSpace.
3833//
3834// You cannot rebuild a WorkSpace unless its state is AVAILABLE, ERROR, UNHEALTHY,
3835// STOPPED, or REBOOTING.
3836//
3837// Rebuilding a WorkSpace is a potentially destructive action that can result
3838// in the loss of data. For more information, see Rebuild a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/reset-workspace.html).
3839//
3840// This operation is asynchronous and returns before the WorkSpaces have been
3841// completely rebuilt.
3842//
3843// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3844// with awserr.Error's Code and Message methods to get detailed information about
3845// the error.
3846//
3847// See the AWS API reference guide for Amazon WorkSpaces's
3848// API operation RebuildWorkspaces for usage and error information.
3849// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces
3850func (c *WorkSpaces) RebuildWorkspaces(input *RebuildWorkspacesInput) (*RebuildWorkspacesOutput, error) {
3851	req, out := c.RebuildWorkspacesRequest(input)
3852	return out, req.Send()
3853}
3854
3855// RebuildWorkspacesWithContext is the same as RebuildWorkspaces with the addition of
3856// the ability to pass a context and additional request options.
3857//
3858// See RebuildWorkspaces for details on how to use this API operation.
3859//
3860// The context must be non-nil and will be used for request cancellation. If
3861// the context is nil a panic will occur. In the future the SDK may create
3862// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3863// for more information on using Contexts.
3864func (c *WorkSpaces) RebuildWorkspacesWithContext(ctx aws.Context, input *RebuildWorkspacesInput, opts ...request.Option) (*RebuildWorkspacesOutput, error) {
3865	req, out := c.RebuildWorkspacesRequest(input)
3866	req.SetContext(ctx)
3867	req.ApplyOptions(opts...)
3868	return out, req.Send()
3869}
3870
3871const opRegisterWorkspaceDirectory = "RegisterWorkspaceDirectory"
3872
3873// RegisterWorkspaceDirectoryRequest generates a "aws/request.Request" representing the
3874// client's request for the RegisterWorkspaceDirectory operation. The "output" return
3875// value will be populated with the request's response once the request completes
3876// successfully.
3877//
3878// Use "Send" method on the returned Request to send the API call to the service.
3879// the "output" return value is not valid until after Send returns without error.
3880//
3881// See RegisterWorkspaceDirectory for more information on using the RegisterWorkspaceDirectory
3882// API call, and error handling.
3883//
3884// This method is useful when you want to inject custom logic or configuration
3885// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3886//
3887//
3888//    // Example sending a request using the RegisterWorkspaceDirectoryRequest method.
3889//    req, resp := client.RegisterWorkspaceDirectoryRequest(params)
3890//
3891//    err := req.Send()
3892//    if err == nil { // resp is now filled
3893//        fmt.Println(resp)
3894//    }
3895//
3896// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RegisterWorkspaceDirectory
3897func (c *WorkSpaces) RegisterWorkspaceDirectoryRequest(input *RegisterWorkspaceDirectoryInput) (req *request.Request, output *RegisterWorkspaceDirectoryOutput) {
3898	op := &request.Operation{
3899		Name:       opRegisterWorkspaceDirectory,
3900		HTTPMethod: "POST",
3901		HTTPPath:   "/",
3902	}
3903
3904	if input == nil {
3905		input = &RegisterWorkspaceDirectoryInput{}
3906	}
3907
3908	output = &RegisterWorkspaceDirectoryOutput{}
3909	req = c.newRequest(op, input, output)
3910	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3911	return
3912}
3913
3914// RegisterWorkspaceDirectory API operation for Amazon WorkSpaces.
3915//
3916// Registers the specified directory. This operation is asynchronous and returns
3917// before the WorkSpace directory is registered. If this is the first time you
3918// are registering a directory, you will need to create the workspaces_DefaultRole
3919// role before you can register a directory. For more information, see Creating
3920// the workspaces_DefaultRole Role (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role).
3921//
3922// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3923// with awserr.Error's Code and Message methods to get detailed information about
3924// the error.
3925//
3926// See the AWS API reference guide for Amazon WorkSpaces's
3927// API operation RegisterWorkspaceDirectory for usage and error information.
3928//
3929// Returned Error Types:
3930//   * InvalidParameterValuesException
3931//   One or more parameter values are not valid.
3932//
3933//   * ResourceNotFoundException
3934//   The resource could not be found.
3935//
3936//   * ResourceLimitExceededException
3937//   Your resource limits have been exceeded.
3938//
3939//   * AccessDeniedException
3940//   The user is not authorized to access a resource.
3941//
3942//   * WorkspacesDefaultRoleNotFoundException
3943//   The workspaces_DefaultRole role could not be found. If this is the first
3944//   time you are registering a directory, you will need to create the workspaces_DefaultRole
3945//   role before you can register a directory. For more information, see Creating
3946//   the workspaces_DefaultRole Role (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role).
3947//
3948//   * InvalidResourceStateException
3949//   The state of the resource is not valid for this operation.
3950//
3951//   * UnsupportedNetworkConfigurationException
3952//   The configuration of this network is not supported for this operation, or
3953//   your network configuration conflicts with the Amazon WorkSpaces management
3954//   network IP range. For more information, see Configure a VPC for Amazon WorkSpaces
3955//   (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html).
3956//
3957//   * OperationNotSupportedException
3958//   This operation is not supported.
3959//
3960// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RegisterWorkspaceDirectory
3961func (c *WorkSpaces) RegisterWorkspaceDirectory(input *RegisterWorkspaceDirectoryInput) (*RegisterWorkspaceDirectoryOutput, error) {
3962	req, out := c.RegisterWorkspaceDirectoryRequest(input)
3963	return out, req.Send()
3964}
3965
3966// RegisterWorkspaceDirectoryWithContext is the same as RegisterWorkspaceDirectory with the addition of
3967// the ability to pass a context and additional request options.
3968//
3969// See RegisterWorkspaceDirectory for details on how to use this API operation.
3970//
3971// The context must be non-nil and will be used for request cancellation. If
3972// the context is nil a panic will occur. In the future the SDK may create
3973// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3974// for more information on using Contexts.
3975func (c *WorkSpaces) RegisterWorkspaceDirectoryWithContext(ctx aws.Context, input *RegisterWorkspaceDirectoryInput, opts ...request.Option) (*RegisterWorkspaceDirectoryOutput, error) {
3976	req, out := c.RegisterWorkspaceDirectoryRequest(input)
3977	req.SetContext(ctx)
3978	req.ApplyOptions(opts...)
3979	return out, req.Send()
3980}
3981
3982const opRestoreWorkspace = "RestoreWorkspace"
3983
3984// RestoreWorkspaceRequest generates a "aws/request.Request" representing the
3985// client's request for the RestoreWorkspace operation. The "output" return
3986// value will be populated with the request's response once the request completes
3987// successfully.
3988//
3989// Use "Send" method on the returned Request to send the API call to the service.
3990// the "output" return value is not valid until after Send returns without error.
3991//
3992// See RestoreWorkspace for more information on using the RestoreWorkspace
3993// API call, and error handling.
3994//
3995// This method is useful when you want to inject custom logic or configuration
3996// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3997//
3998//
3999//    // Example sending a request using the RestoreWorkspaceRequest method.
4000//    req, resp := client.RestoreWorkspaceRequest(params)
4001//
4002//    err := req.Send()
4003//    if err == nil { // resp is now filled
4004//        fmt.Println(resp)
4005//    }
4006//
4007// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RestoreWorkspace
4008func (c *WorkSpaces) RestoreWorkspaceRequest(input *RestoreWorkspaceInput) (req *request.Request, output *RestoreWorkspaceOutput) {
4009	op := &request.Operation{
4010		Name:       opRestoreWorkspace,
4011		HTTPMethod: "POST",
4012		HTTPPath:   "/",
4013	}
4014
4015	if input == nil {
4016		input = &RestoreWorkspaceInput{}
4017	}
4018
4019	output = &RestoreWorkspaceOutput{}
4020	req = c.newRequest(op, input, output)
4021	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4022	return
4023}
4024
4025// RestoreWorkspace API operation for Amazon WorkSpaces.
4026//
4027// Restores the specified WorkSpace to its last known healthy state.
4028//
4029// You cannot restore a WorkSpace unless its state is AVAILABLE, ERROR, UNHEALTHY,
4030// or STOPPED.
4031//
4032// Restoring a WorkSpace is a potentially destructive action that can result
4033// in the loss of data. For more information, see Restore a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/restore-workspace.html).
4034//
4035// This operation is asynchronous and returns before the WorkSpace is completely
4036// restored.
4037//
4038// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4039// with awserr.Error's Code and Message methods to get detailed information about
4040// the error.
4041//
4042// See the AWS API reference guide for Amazon WorkSpaces's
4043// API operation RestoreWorkspace for usage and error information.
4044//
4045// Returned Error Types:
4046//   * InvalidParameterValuesException
4047//   One or more parameter values are not valid.
4048//
4049//   * ResourceNotFoundException
4050//   The resource could not be found.
4051//
4052//   * AccessDeniedException
4053//   The user is not authorized to access a resource.
4054//
4055// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RestoreWorkspace
4056func (c *WorkSpaces) RestoreWorkspace(input *RestoreWorkspaceInput) (*RestoreWorkspaceOutput, error) {
4057	req, out := c.RestoreWorkspaceRequest(input)
4058	return out, req.Send()
4059}
4060
4061// RestoreWorkspaceWithContext is the same as RestoreWorkspace with the addition of
4062// the ability to pass a context and additional request options.
4063//
4064// See RestoreWorkspace for details on how to use this API operation.
4065//
4066// The context must be non-nil and will be used for request cancellation. If
4067// the context is nil a panic will occur. In the future the SDK may create
4068// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4069// for more information on using Contexts.
4070func (c *WorkSpaces) RestoreWorkspaceWithContext(ctx aws.Context, input *RestoreWorkspaceInput, opts ...request.Option) (*RestoreWorkspaceOutput, error) {
4071	req, out := c.RestoreWorkspaceRequest(input)
4072	req.SetContext(ctx)
4073	req.ApplyOptions(opts...)
4074	return out, req.Send()
4075}
4076
4077const opRevokeIpRules = "RevokeIpRules"
4078
4079// RevokeIpRulesRequest generates a "aws/request.Request" representing the
4080// client's request for the RevokeIpRules operation. The "output" return
4081// value will be populated with the request's response once the request completes
4082// successfully.
4083//
4084// Use "Send" method on the returned Request to send the API call to the service.
4085// the "output" return value is not valid until after Send returns without error.
4086//
4087// See RevokeIpRules for more information on using the RevokeIpRules
4088// API call, and error handling.
4089//
4090// This method is useful when you want to inject custom logic or configuration
4091// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4092//
4093//
4094//    // Example sending a request using the RevokeIpRulesRequest method.
4095//    req, resp := client.RevokeIpRulesRequest(params)
4096//
4097//    err := req.Send()
4098//    if err == nil { // resp is now filled
4099//        fmt.Println(resp)
4100//    }
4101//
4102// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RevokeIpRules
4103func (c *WorkSpaces) RevokeIpRulesRequest(input *RevokeIpRulesInput) (req *request.Request, output *RevokeIpRulesOutput) {
4104	op := &request.Operation{
4105		Name:       opRevokeIpRules,
4106		HTTPMethod: "POST",
4107		HTTPPath:   "/",
4108	}
4109
4110	if input == nil {
4111		input = &RevokeIpRulesInput{}
4112	}
4113
4114	output = &RevokeIpRulesOutput{}
4115	req = c.newRequest(op, input, output)
4116	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4117	return
4118}
4119
4120// RevokeIpRules API operation for Amazon WorkSpaces.
4121//
4122// Removes one or more rules from the specified IP access control group.
4123//
4124// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4125// with awserr.Error's Code and Message methods to get detailed information about
4126// the error.
4127//
4128// See the AWS API reference guide for Amazon WorkSpaces's
4129// API operation RevokeIpRules for usage and error information.
4130//
4131// Returned Error Types:
4132//   * InvalidParameterValuesException
4133//   One or more parameter values are not valid.
4134//
4135//   * ResourceNotFoundException
4136//   The resource could not be found.
4137//
4138//   * InvalidResourceStateException
4139//   The state of the resource is not valid for this operation.
4140//
4141//   * AccessDeniedException
4142//   The user is not authorized to access a resource.
4143//
4144// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RevokeIpRules
4145func (c *WorkSpaces) RevokeIpRules(input *RevokeIpRulesInput) (*RevokeIpRulesOutput, error) {
4146	req, out := c.RevokeIpRulesRequest(input)
4147	return out, req.Send()
4148}
4149
4150// RevokeIpRulesWithContext is the same as RevokeIpRules with the addition of
4151// the ability to pass a context and additional request options.
4152//
4153// See RevokeIpRules for details on how to use this API operation.
4154//
4155// The context must be non-nil and will be used for request cancellation. If
4156// the context is nil a panic will occur. In the future the SDK may create
4157// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4158// for more information on using Contexts.
4159func (c *WorkSpaces) RevokeIpRulesWithContext(ctx aws.Context, input *RevokeIpRulesInput, opts ...request.Option) (*RevokeIpRulesOutput, error) {
4160	req, out := c.RevokeIpRulesRequest(input)
4161	req.SetContext(ctx)
4162	req.ApplyOptions(opts...)
4163	return out, req.Send()
4164}
4165
4166const opStartWorkspaces = "StartWorkspaces"
4167
4168// StartWorkspacesRequest generates a "aws/request.Request" representing the
4169// client's request for the StartWorkspaces operation. The "output" return
4170// value will be populated with the request's response once the request completes
4171// successfully.
4172//
4173// Use "Send" method on the returned Request to send the API call to the service.
4174// the "output" return value is not valid until after Send returns without error.
4175//
4176// See StartWorkspaces for more information on using the StartWorkspaces
4177// API call, and error handling.
4178//
4179// This method is useful when you want to inject custom logic or configuration
4180// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4181//
4182//
4183//    // Example sending a request using the StartWorkspacesRequest method.
4184//    req, resp := client.StartWorkspacesRequest(params)
4185//
4186//    err := req.Send()
4187//    if err == nil { // resp is now filled
4188//        fmt.Println(resp)
4189//    }
4190//
4191// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StartWorkspaces
4192func (c *WorkSpaces) StartWorkspacesRequest(input *StartWorkspacesInput) (req *request.Request, output *StartWorkspacesOutput) {
4193	op := &request.Operation{
4194		Name:       opStartWorkspaces,
4195		HTTPMethod: "POST",
4196		HTTPPath:   "/",
4197	}
4198
4199	if input == nil {
4200		input = &StartWorkspacesInput{}
4201	}
4202
4203	output = &StartWorkspacesOutput{}
4204	req = c.newRequest(op, input, output)
4205	return
4206}
4207
4208// StartWorkspaces API operation for Amazon WorkSpaces.
4209//
4210// Starts the specified WorkSpaces.
4211//
4212// You cannot start a WorkSpace unless it has a running mode of AutoStop and
4213// a state of STOPPED.
4214//
4215// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4216// with awserr.Error's Code and Message methods to get detailed information about
4217// the error.
4218//
4219// See the AWS API reference guide for Amazon WorkSpaces's
4220// API operation StartWorkspaces for usage and error information.
4221// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StartWorkspaces
4222func (c *WorkSpaces) StartWorkspaces(input *StartWorkspacesInput) (*StartWorkspacesOutput, error) {
4223	req, out := c.StartWorkspacesRequest(input)
4224	return out, req.Send()
4225}
4226
4227// StartWorkspacesWithContext is the same as StartWorkspaces with the addition of
4228// the ability to pass a context and additional request options.
4229//
4230// See StartWorkspaces for details on how to use this API operation.
4231//
4232// The context must be non-nil and will be used for request cancellation. If
4233// the context is nil a panic will occur. In the future the SDK may create
4234// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4235// for more information on using Contexts.
4236func (c *WorkSpaces) StartWorkspacesWithContext(ctx aws.Context, input *StartWorkspacesInput, opts ...request.Option) (*StartWorkspacesOutput, error) {
4237	req, out := c.StartWorkspacesRequest(input)
4238	req.SetContext(ctx)
4239	req.ApplyOptions(opts...)
4240	return out, req.Send()
4241}
4242
4243const opStopWorkspaces = "StopWorkspaces"
4244
4245// StopWorkspacesRequest generates a "aws/request.Request" representing the
4246// client's request for the StopWorkspaces 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 StopWorkspaces for more information on using the StopWorkspaces
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 StopWorkspacesRequest method.
4261//    req, resp := client.StopWorkspacesRequest(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/workspaces-2015-04-08/StopWorkspaces
4269func (c *WorkSpaces) StopWorkspacesRequest(input *StopWorkspacesInput) (req *request.Request, output *StopWorkspacesOutput) {
4270	op := &request.Operation{
4271		Name:       opStopWorkspaces,
4272		HTTPMethod: "POST",
4273		HTTPPath:   "/",
4274	}
4275
4276	if input == nil {
4277		input = &StopWorkspacesInput{}
4278	}
4279
4280	output = &StopWorkspacesOutput{}
4281	req = c.newRequest(op, input, output)
4282	return
4283}
4284
4285// StopWorkspaces API operation for Amazon WorkSpaces.
4286//
4287// Stops the specified WorkSpaces.
4288//
4289// You cannot stop a WorkSpace unless it has a running mode of AutoStop and
4290// a state of AVAILABLE, IMPAIRED, UNHEALTHY, or ERROR.
4291//
4292// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4293// with awserr.Error's Code and Message methods to get detailed information about
4294// the error.
4295//
4296// See the AWS API reference guide for Amazon WorkSpaces's
4297// API operation StopWorkspaces for usage and error information.
4298// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StopWorkspaces
4299func (c *WorkSpaces) StopWorkspaces(input *StopWorkspacesInput) (*StopWorkspacesOutput, error) {
4300	req, out := c.StopWorkspacesRequest(input)
4301	return out, req.Send()
4302}
4303
4304// StopWorkspacesWithContext is the same as StopWorkspaces with the addition of
4305// the ability to pass a context and additional request options.
4306//
4307// See StopWorkspaces for details on how to use this API operation.
4308//
4309// The context must be non-nil and will be used for request cancellation. If
4310// the context is nil a panic will occur. In the future the SDK may create
4311// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4312// for more information on using Contexts.
4313func (c *WorkSpaces) StopWorkspacesWithContext(ctx aws.Context, input *StopWorkspacesInput, opts ...request.Option) (*StopWorkspacesOutput, error) {
4314	req, out := c.StopWorkspacesRequest(input)
4315	req.SetContext(ctx)
4316	req.ApplyOptions(opts...)
4317	return out, req.Send()
4318}
4319
4320const opTerminateWorkspaces = "TerminateWorkspaces"
4321
4322// TerminateWorkspacesRequest generates a "aws/request.Request" representing the
4323// client's request for the TerminateWorkspaces operation. The "output" return
4324// value will be populated with the request's response once the request completes
4325// successfully.
4326//
4327// Use "Send" method on the returned Request to send the API call to the service.
4328// the "output" return value is not valid until after Send returns without error.
4329//
4330// See TerminateWorkspaces for more information on using the TerminateWorkspaces
4331// API call, and error handling.
4332//
4333// This method is useful when you want to inject custom logic or configuration
4334// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4335//
4336//
4337//    // Example sending a request using the TerminateWorkspacesRequest method.
4338//    req, resp := client.TerminateWorkspacesRequest(params)
4339//
4340//    err := req.Send()
4341//    if err == nil { // resp is now filled
4342//        fmt.Println(resp)
4343//    }
4344//
4345// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/TerminateWorkspaces
4346func (c *WorkSpaces) TerminateWorkspacesRequest(input *TerminateWorkspacesInput) (req *request.Request, output *TerminateWorkspacesOutput) {
4347	op := &request.Operation{
4348		Name:       opTerminateWorkspaces,
4349		HTTPMethod: "POST",
4350		HTTPPath:   "/",
4351	}
4352
4353	if input == nil {
4354		input = &TerminateWorkspacesInput{}
4355	}
4356
4357	output = &TerminateWorkspacesOutput{}
4358	req = c.newRequest(op, input, output)
4359	return
4360}
4361
4362// TerminateWorkspaces API operation for Amazon WorkSpaces.
4363//
4364// Terminates the specified WorkSpaces.
4365//
4366// Terminating a WorkSpace is a permanent action and cannot be undone. The user's
4367// data is destroyed. If you need to archive any user data, contact AWS Support
4368// before terminating the WorkSpace.
4369//
4370// You can terminate a WorkSpace that is in any state except SUSPENDED.
4371//
4372// This operation is asynchronous and returns before the WorkSpaces have been
4373// completely terminated. After a WorkSpace is terminated, the TERMINATED state
4374// is returned only briefly before the WorkSpace directory metadata is cleaned
4375// up, so this state is rarely returned. To confirm that a WorkSpace is terminated,
4376// check for the WorkSpace ID by using DescribeWorkSpaces (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaces.html).
4377// If the WorkSpace ID isn't returned, then the WorkSpace has been successfully
4378// terminated.
4379//
4380// Simple AD and AD Connector are made available to you free of charge to use
4381// with WorkSpaces. If there are no WorkSpaces being used with your Simple AD
4382// or AD Connector directory for 30 consecutive days, this directory will be
4383// automatically deregistered for use with Amazon WorkSpaces, and you will be
4384// charged for this directory as per the AWS Directory Services pricing terms
4385// (http://aws.amazon.com/directoryservice/pricing/).
4386//
4387// To delete empty directories, see Delete the Directory for Your WorkSpaces
4388// (https://docs.aws.amazon.com/workspaces/latest/adminguide/delete-workspaces-directory.html).
4389// If you delete your Simple AD or AD Connector directory, you can always create
4390// a new one when you want to start using WorkSpaces again.
4391//
4392// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4393// with awserr.Error's Code and Message methods to get detailed information about
4394// the error.
4395//
4396// See the AWS API reference guide for Amazon WorkSpaces's
4397// API operation TerminateWorkspaces for usage and error information.
4398// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/TerminateWorkspaces
4399func (c *WorkSpaces) TerminateWorkspaces(input *TerminateWorkspacesInput) (*TerminateWorkspacesOutput, error) {
4400	req, out := c.TerminateWorkspacesRequest(input)
4401	return out, req.Send()
4402}
4403
4404// TerminateWorkspacesWithContext is the same as TerminateWorkspaces with the addition of
4405// the ability to pass a context and additional request options.
4406//
4407// See TerminateWorkspaces for details on how to use this API operation.
4408//
4409// The context must be non-nil and will be used for request cancellation. If
4410// the context is nil a panic will occur. In the future the SDK may create
4411// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4412// for more information on using Contexts.
4413func (c *WorkSpaces) TerminateWorkspacesWithContext(ctx aws.Context, input *TerminateWorkspacesInput, opts ...request.Option) (*TerminateWorkspacesOutput, error) {
4414	req, out := c.TerminateWorkspacesRequest(input)
4415	req.SetContext(ctx)
4416	req.ApplyOptions(opts...)
4417	return out, req.Send()
4418}
4419
4420const opUpdateConnectionAliasPermission = "UpdateConnectionAliasPermission"
4421
4422// UpdateConnectionAliasPermissionRequest generates a "aws/request.Request" representing the
4423// client's request for the UpdateConnectionAliasPermission operation. The "output" return
4424// value will be populated with the request's response once the request completes
4425// successfully.
4426//
4427// Use "Send" method on the returned Request to send the API call to the service.
4428// the "output" return value is not valid until after Send returns without error.
4429//
4430// See UpdateConnectionAliasPermission for more information on using the UpdateConnectionAliasPermission
4431// API call, and error handling.
4432//
4433// This method is useful when you want to inject custom logic or configuration
4434// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4435//
4436//
4437//    // Example sending a request using the UpdateConnectionAliasPermissionRequest method.
4438//    req, resp := client.UpdateConnectionAliasPermissionRequest(params)
4439//
4440//    err := req.Send()
4441//    if err == nil { // resp is now filled
4442//        fmt.Println(resp)
4443//    }
4444//
4445// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateConnectionAliasPermission
4446func (c *WorkSpaces) UpdateConnectionAliasPermissionRequest(input *UpdateConnectionAliasPermissionInput) (req *request.Request, output *UpdateConnectionAliasPermissionOutput) {
4447	op := &request.Operation{
4448		Name:       opUpdateConnectionAliasPermission,
4449		HTTPMethod: "POST",
4450		HTTPPath:   "/",
4451	}
4452
4453	if input == nil {
4454		input = &UpdateConnectionAliasPermissionInput{}
4455	}
4456
4457	output = &UpdateConnectionAliasPermissionOutput{}
4458	req = c.newRequest(op, input, output)
4459	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4460	return
4461}
4462
4463// UpdateConnectionAliasPermission API operation for Amazon WorkSpaces.
4464//
4465// Shares or unshares a connection alias with one account by specifying whether
4466// that account has permission to associate the connection alias with a directory.
4467// If the association permission is granted, the connection alias is shared
4468// with that account. If the association permission is revoked, the connection
4469// alias is unshared with the account. For more information, see Cross-Region
4470// Redirection for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
4471//
4472//    * Before performing this operation, call DescribeConnectionAliases (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeConnectionAliases.html)
4473//    to make sure that the current state of the connection alias is CREATED.
4474//
4475//    * To delete a connection alias that has been shared, the shared account
4476//    must first disassociate the connection alias from any directories it has
4477//    been associated with. Then you must unshare the connection alias from
4478//    the account it has been shared with. You can delete a connection alias
4479//    only after it is no longer shared with any accounts or associated with
4480//    any directories.
4481//
4482// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4483// with awserr.Error's Code and Message methods to get detailed information about
4484// the error.
4485//
4486// See the AWS API reference guide for Amazon WorkSpaces's
4487// API operation UpdateConnectionAliasPermission for usage and error information.
4488//
4489// Returned Error Types:
4490//   * AccessDeniedException
4491//   The user is not authorized to access a resource.
4492//
4493//   * InvalidParameterValuesException
4494//   One or more parameter values are not valid.
4495//
4496//   * ResourceLimitExceededException
4497//   Your resource limits have been exceeded.
4498//
4499//   * ResourceNotFoundException
4500//   The resource could not be found.
4501//
4502//   * ResourceAssociatedException
4503//   The resource is associated with a directory.
4504//
4505//   * InvalidResourceStateException
4506//   The state of the resource is not valid for this operation.
4507//
4508//   * OperationNotSupportedException
4509//   This operation is not supported.
4510//
4511// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateConnectionAliasPermission
4512func (c *WorkSpaces) UpdateConnectionAliasPermission(input *UpdateConnectionAliasPermissionInput) (*UpdateConnectionAliasPermissionOutput, error) {
4513	req, out := c.UpdateConnectionAliasPermissionRequest(input)
4514	return out, req.Send()
4515}
4516
4517// UpdateConnectionAliasPermissionWithContext is the same as UpdateConnectionAliasPermission with the addition of
4518// the ability to pass a context and additional request options.
4519//
4520// See UpdateConnectionAliasPermission for details on how to use this API operation.
4521//
4522// The context must be non-nil and will be used for request cancellation. If
4523// the context is nil a panic will occur. In the future the SDK may create
4524// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4525// for more information on using Contexts.
4526func (c *WorkSpaces) UpdateConnectionAliasPermissionWithContext(ctx aws.Context, input *UpdateConnectionAliasPermissionInput, opts ...request.Option) (*UpdateConnectionAliasPermissionOutput, error) {
4527	req, out := c.UpdateConnectionAliasPermissionRequest(input)
4528	req.SetContext(ctx)
4529	req.ApplyOptions(opts...)
4530	return out, req.Send()
4531}
4532
4533const opUpdateRulesOfIpGroup = "UpdateRulesOfIpGroup"
4534
4535// UpdateRulesOfIpGroupRequest generates a "aws/request.Request" representing the
4536// client's request for the UpdateRulesOfIpGroup operation. The "output" return
4537// value will be populated with the request's response once the request completes
4538// successfully.
4539//
4540// Use "Send" method on the returned Request to send the API call to the service.
4541// the "output" return value is not valid until after Send returns without error.
4542//
4543// See UpdateRulesOfIpGroup for more information on using the UpdateRulesOfIpGroup
4544// API call, and error handling.
4545//
4546// This method is useful when you want to inject custom logic or configuration
4547// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4548//
4549//
4550//    // Example sending a request using the UpdateRulesOfIpGroupRequest method.
4551//    req, resp := client.UpdateRulesOfIpGroupRequest(params)
4552//
4553//    err := req.Send()
4554//    if err == nil { // resp is now filled
4555//        fmt.Println(resp)
4556//    }
4557//
4558// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateRulesOfIpGroup
4559func (c *WorkSpaces) UpdateRulesOfIpGroupRequest(input *UpdateRulesOfIpGroupInput) (req *request.Request, output *UpdateRulesOfIpGroupOutput) {
4560	op := &request.Operation{
4561		Name:       opUpdateRulesOfIpGroup,
4562		HTTPMethod: "POST",
4563		HTTPPath:   "/",
4564	}
4565
4566	if input == nil {
4567		input = &UpdateRulesOfIpGroupInput{}
4568	}
4569
4570	output = &UpdateRulesOfIpGroupOutput{}
4571	req = c.newRequest(op, input, output)
4572	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4573	return
4574}
4575
4576// UpdateRulesOfIpGroup API operation for Amazon WorkSpaces.
4577//
4578// Replaces the current rules of the specified IP access control group with
4579// the specified rules.
4580//
4581// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4582// with awserr.Error's Code and Message methods to get detailed information about
4583// the error.
4584//
4585// See the AWS API reference guide for Amazon WorkSpaces's
4586// API operation UpdateRulesOfIpGroup for usage and error information.
4587//
4588// Returned Error Types:
4589//   * InvalidParameterValuesException
4590//   One or more parameter values are not valid.
4591//
4592//   * ResourceNotFoundException
4593//   The resource could not be found.
4594//
4595//   * ResourceLimitExceededException
4596//   Your resource limits have been exceeded.
4597//
4598//   * InvalidResourceStateException
4599//   The state of the resource is not valid for this operation.
4600//
4601//   * AccessDeniedException
4602//   The user is not authorized to access a resource.
4603//
4604// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateRulesOfIpGroup
4605func (c *WorkSpaces) UpdateRulesOfIpGroup(input *UpdateRulesOfIpGroupInput) (*UpdateRulesOfIpGroupOutput, error) {
4606	req, out := c.UpdateRulesOfIpGroupRequest(input)
4607	return out, req.Send()
4608}
4609
4610// UpdateRulesOfIpGroupWithContext is the same as UpdateRulesOfIpGroup with the addition of
4611// the ability to pass a context and additional request options.
4612//
4613// See UpdateRulesOfIpGroup for details on how to use this API operation.
4614//
4615// The context must be non-nil and will be used for request cancellation. If
4616// the context is nil a panic will occur. In the future the SDK may create
4617// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4618// for more information on using Contexts.
4619func (c *WorkSpaces) UpdateRulesOfIpGroupWithContext(ctx aws.Context, input *UpdateRulesOfIpGroupInput, opts ...request.Option) (*UpdateRulesOfIpGroupOutput, error) {
4620	req, out := c.UpdateRulesOfIpGroupRequest(input)
4621	req.SetContext(ctx)
4622	req.ApplyOptions(opts...)
4623	return out, req.Send()
4624}
4625
4626const opUpdateWorkspaceImagePermission = "UpdateWorkspaceImagePermission"
4627
4628// UpdateWorkspaceImagePermissionRequest generates a "aws/request.Request" representing the
4629// client's request for the UpdateWorkspaceImagePermission operation. The "output" return
4630// value will be populated with the request's response once the request completes
4631// successfully.
4632//
4633// Use "Send" method on the returned Request to send the API call to the service.
4634// the "output" return value is not valid until after Send returns without error.
4635//
4636// See UpdateWorkspaceImagePermission for more information on using the UpdateWorkspaceImagePermission
4637// API call, and error handling.
4638//
4639// This method is useful when you want to inject custom logic or configuration
4640// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4641//
4642//
4643//    // Example sending a request using the UpdateWorkspaceImagePermissionRequest method.
4644//    req, resp := client.UpdateWorkspaceImagePermissionRequest(params)
4645//
4646//    err := req.Send()
4647//    if err == nil { // resp is now filled
4648//        fmt.Println(resp)
4649//    }
4650//
4651// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateWorkspaceImagePermission
4652func (c *WorkSpaces) UpdateWorkspaceImagePermissionRequest(input *UpdateWorkspaceImagePermissionInput) (req *request.Request, output *UpdateWorkspaceImagePermissionOutput) {
4653	op := &request.Operation{
4654		Name:       opUpdateWorkspaceImagePermission,
4655		HTTPMethod: "POST",
4656		HTTPPath:   "/",
4657	}
4658
4659	if input == nil {
4660		input = &UpdateWorkspaceImagePermissionInput{}
4661	}
4662
4663	output = &UpdateWorkspaceImagePermissionOutput{}
4664	req = c.newRequest(op, input, output)
4665	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4666	return
4667}
4668
4669// UpdateWorkspaceImagePermission API operation for Amazon WorkSpaces.
4670//
4671// Shares or unshares an image with one account in the same AWS Region by specifying
4672// whether that account has permission to copy the image. If the copy image
4673// permission is granted, the image is shared with that account. If the copy
4674// image permission is revoked, the image is unshared with the account.
4675//
4676// After an image has been shared, the recipient account can copy the image
4677// to other AWS Regions as needed.
4678//
4679// In the China (Ningxia) Region, you can copy images only within the same Region.
4680//
4681// In the AWS GovCloud (US-West) Region, to copy images to and from other AWS
4682// Regions, contact AWS Support.
4683//
4684// For more information about sharing images, see Share or Unshare a Custom
4685// WorkSpaces Image (https://docs.aws.amazon.com/workspaces/latest/adminguide/share-custom-image.html).
4686//
4687//    * To delete an image that has been shared, you must unshare the image
4688//    before you delete it.
4689//
4690//    * Sharing Bring Your Own License (BYOL) images across AWS accounts isn't
4691//    supported at this time in the AWS GovCloud (US-West) Region. To share
4692//    BYOL images across accounts in the AWS GovCloud (US-West) Region, contact
4693//    AWS Support.
4694//
4695// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4696// with awserr.Error's Code and Message methods to get detailed information about
4697// the error.
4698//
4699// See the AWS API reference guide for Amazon WorkSpaces's
4700// API operation UpdateWorkspaceImagePermission for usage and error information.
4701//
4702// Returned Error Types:
4703//   * ResourceNotFoundException
4704//   The resource could not be found.
4705//
4706//   * ResourceUnavailableException
4707//   The specified resource is not available.
4708//
4709//   * AccessDeniedException
4710//   The user is not authorized to access a resource.
4711//
4712//   * InvalidParameterValuesException
4713//   One or more parameter values are not valid.
4714//
4715//   * OperationNotSupportedException
4716//   This operation is not supported.
4717//
4718// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateWorkspaceImagePermission
4719func (c *WorkSpaces) UpdateWorkspaceImagePermission(input *UpdateWorkspaceImagePermissionInput) (*UpdateWorkspaceImagePermissionOutput, error) {
4720	req, out := c.UpdateWorkspaceImagePermissionRequest(input)
4721	return out, req.Send()
4722}
4723
4724// UpdateWorkspaceImagePermissionWithContext is the same as UpdateWorkspaceImagePermission with the addition of
4725// the ability to pass a context and additional request options.
4726//
4727// See UpdateWorkspaceImagePermission for details on how to use this API operation.
4728//
4729// The context must be non-nil and will be used for request cancellation. If
4730// the context is nil a panic will occur. In the future the SDK may create
4731// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4732// for more information on using Contexts.
4733func (c *WorkSpaces) UpdateWorkspaceImagePermissionWithContext(ctx aws.Context, input *UpdateWorkspaceImagePermissionInput, opts ...request.Option) (*UpdateWorkspaceImagePermissionOutput, error) {
4734	req, out := c.UpdateWorkspaceImagePermissionRequest(input)
4735	req.SetContext(ctx)
4736	req.ApplyOptions(opts...)
4737	return out, req.Send()
4738}
4739
4740// The user is not authorized to access a resource.
4741type AccessDeniedException struct {
4742	_            struct{}                  `type:"structure"`
4743	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
4744
4745	Message_ *string `locationName:"message" type:"string"`
4746}
4747
4748// String returns the string representation
4749func (s AccessDeniedException) String() string {
4750	return awsutil.Prettify(s)
4751}
4752
4753// GoString returns the string representation
4754func (s AccessDeniedException) GoString() string {
4755	return s.String()
4756}
4757
4758func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
4759	return &AccessDeniedException{
4760		RespMetadata: v,
4761	}
4762}
4763
4764// Code returns the exception type name.
4765func (s *AccessDeniedException) Code() string {
4766	return "AccessDeniedException"
4767}
4768
4769// Message returns the exception's message.
4770func (s *AccessDeniedException) Message() string {
4771	if s.Message_ != nil {
4772		return *s.Message_
4773	}
4774	return ""
4775}
4776
4777// OrigErr always returns nil, satisfies awserr.Error interface.
4778func (s *AccessDeniedException) OrigErr() error {
4779	return nil
4780}
4781
4782func (s *AccessDeniedException) Error() string {
4783	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
4784}
4785
4786// Status code returns the HTTP status code for the request's response error.
4787func (s *AccessDeniedException) StatusCode() int {
4788	return s.RespMetadata.StatusCode
4789}
4790
4791// RequestID returns the service's response RequestID for request.
4792func (s *AccessDeniedException) RequestID() string {
4793	return s.RespMetadata.RequestID
4794}
4795
4796// Describes a modification to the configuration of Bring Your Own License (BYOL)
4797// for the specified account.
4798type AccountModification struct {
4799	_ struct{} `type:"structure"`
4800
4801	// The IP address range, specified as an IPv4 CIDR block, for the management
4802	// network interface used for the account.
4803	DedicatedTenancyManagementCidrRange *string `type:"string"`
4804
4805	// The status of BYOL (whether BYOL is being enabled or disabled).
4806	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportResultEnum"`
4807
4808	// The error code that is returned if the configuration of BYOL cannot be modified.
4809	ErrorCode *string `type:"string"`
4810
4811	// The text of the error message that is returned if the configuration of BYOL
4812	// cannot be modified.
4813	ErrorMessage *string `type:"string"`
4814
4815	// The state of the modification to the configuration of BYOL.
4816	ModificationState *string `type:"string" enum:"DedicatedTenancyModificationStateEnum"`
4817
4818	// The timestamp when the modification of the BYOL configuration was started.
4819	StartTime *time.Time `type:"timestamp"`
4820}
4821
4822// String returns the string representation
4823func (s AccountModification) String() string {
4824	return awsutil.Prettify(s)
4825}
4826
4827// GoString returns the string representation
4828func (s AccountModification) GoString() string {
4829	return s.String()
4830}
4831
4832// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
4833func (s *AccountModification) SetDedicatedTenancyManagementCidrRange(v string) *AccountModification {
4834	s.DedicatedTenancyManagementCidrRange = &v
4835	return s
4836}
4837
4838// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
4839func (s *AccountModification) SetDedicatedTenancySupport(v string) *AccountModification {
4840	s.DedicatedTenancySupport = &v
4841	return s
4842}
4843
4844// SetErrorCode sets the ErrorCode field's value.
4845func (s *AccountModification) SetErrorCode(v string) *AccountModification {
4846	s.ErrorCode = &v
4847	return s
4848}
4849
4850// SetErrorMessage sets the ErrorMessage field's value.
4851func (s *AccountModification) SetErrorMessage(v string) *AccountModification {
4852	s.ErrorMessage = &v
4853	return s
4854}
4855
4856// SetModificationState sets the ModificationState field's value.
4857func (s *AccountModification) SetModificationState(v string) *AccountModification {
4858	s.ModificationState = &v
4859	return s
4860}
4861
4862// SetStartTime sets the StartTime field's value.
4863func (s *AccountModification) SetStartTime(v time.Time) *AccountModification {
4864	s.StartTime = &v
4865	return s
4866}
4867
4868type AssociateConnectionAliasInput struct {
4869	_ struct{} `type:"structure"`
4870
4871	// The identifier of the connection alias.
4872	//
4873	// AliasId is a required field
4874	AliasId *string `min:"13" type:"string" required:"true"`
4875
4876	// The identifier of the directory to associate the connection alias with.
4877	//
4878	// ResourceId is a required field
4879	ResourceId *string `min:"1" type:"string" required:"true"`
4880}
4881
4882// String returns the string representation
4883func (s AssociateConnectionAliasInput) String() string {
4884	return awsutil.Prettify(s)
4885}
4886
4887// GoString returns the string representation
4888func (s AssociateConnectionAliasInput) GoString() string {
4889	return s.String()
4890}
4891
4892// Validate inspects the fields of the type to determine if they are valid.
4893func (s *AssociateConnectionAliasInput) Validate() error {
4894	invalidParams := request.ErrInvalidParams{Context: "AssociateConnectionAliasInput"}
4895	if s.AliasId == nil {
4896		invalidParams.Add(request.NewErrParamRequired("AliasId"))
4897	}
4898	if s.AliasId != nil && len(*s.AliasId) < 13 {
4899		invalidParams.Add(request.NewErrParamMinLen("AliasId", 13))
4900	}
4901	if s.ResourceId == nil {
4902		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
4903	}
4904	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
4905		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
4906	}
4907
4908	if invalidParams.Len() > 0 {
4909		return invalidParams
4910	}
4911	return nil
4912}
4913
4914// SetAliasId sets the AliasId field's value.
4915func (s *AssociateConnectionAliasInput) SetAliasId(v string) *AssociateConnectionAliasInput {
4916	s.AliasId = &v
4917	return s
4918}
4919
4920// SetResourceId sets the ResourceId field's value.
4921func (s *AssociateConnectionAliasInput) SetResourceId(v string) *AssociateConnectionAliasInput {
4922	s.ResourceId = &v
4923	return s
4924}
4925
4926type AssociateConnectionAliasOutput struct {
4927	_ struct{} `type:"structure"`
4928
4929	// The identifier of the connection alias association. You use the connection
4930	// identifier in the DNS TXT record when you're configuring your DNS routing
4931	// policies.
4932	ConnectionIdentifier *string `min:"1" type:"string"`
4933}
4934
4935// String returns the string representation
4936func (s AssociateConnectionAliasOutput) String() string {
4937	return awsutil.Prettify(s)
4938}
4939
4940// GoString returns the string representation
4941func (s AssociateConnectionAliasOutput) GoString() string {
4942	return s.String()
4943}
4944
4945// SetConnectionIdentifier sets the ConnectionIdentifier field's value.
4946func (s *AssociateConnectionAliasOutput) SetConnectionIdentifier(v string) *AssociateConnectionAliasOutput {
4947	s.ConnectionIdentifier = &v
4948	return s
4949}
4950
4951type AssociateIpGroupsInput struct {
4952	_ struct{} `type:"structure"`
4953
4954	// The identifier of the directory.
4955	//
4956	// DirectoryId is a required field
4957	DirectoryId *string `min:"10" type:"string" required:"true"`
4958
4959	// The identifiers of one or more IP access control groups.
4960	//
4961	// GroupIds is a required field
4962	GroupIds []*string `type:"list" required:"true"`
4963}
4964
4965// String returns the string representation
4966func (s AssociateIpGroupsInput) String() string {
4967	return awsutil.Prettify(s)
4968}
4969
4970// GoString returns the string representation
4971func (s AssociateIpGroupsInput) GoString() string {
4972	return s.String()
4973}
4974
4975// Validate inspects the fields of the type to determine if they are valid.
4976func (s *AssociateIpGroupsInput) Validate() error {
4977	invalidParams := request.ErrInvalidParams{Context: "AssociateIpGroupsInput"}
4978	if s.DirectoryId == nil {
4979		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
4980	}
4981	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
4982		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
4983	}
4984	if s.GroupIds == nil {
4985		invalidParams.Add(request.NewErrParamRequired("GroupIds"))
4986	}
4987
4988	if invalidParams.Len() > 0 {
4989		return invalidParams
4990	}
4991	return nil
4992}
4993
4994// SetDirectoryId sets the DirectoryId field's value.
4995func (s *AssociateIpGroupsInput) SetDirectoryId(v string) *AssociateIpGroupsInput {
4996	s.DirectoryId = &v
4997	return s
4998}
4999
5000// SetGroupIds sets the GroupIds field's value.
5001func (s *AssociateIpGroupsInput) SetGroupIds(v []*string) *AssociateIpGroupsInput {
5002	s.GroupIds = v
5003	return s
5004}
5005
5006type AssociateIpGroupsOutput struct {
5007	_ struct{} `type:"structure"`
5008}
5009
5010// String returns the string representation
5011func (s AssociateIpGroupsOutput) String() string {
5012	return awsutil.Prettify(s)
5013}
5014
5015// GoString returns the string representation
5016func (s AssociateIpGroupsOutput) GoString() string {
5017	return s.String()
5018}
5019
5020type AuthorizeIpRulesInput struct {
5021	_ struct{} `type:"structure"`
5022
5023	// The identifier of the group.
5024	//
5025	// GroupId is a required field
5026	GroupId *string `type:"string" required:"true"`
5027
5028	// The rules to add to the group.
5029	//
5030	// UserRules is a required field
5031	UserRules []*IpRuleItem `type:"list" required:"true"`
5032}
5033
5034// String returns the string representation
5035func (s AuthorizeIpRulesInput) String() string {
5036	return awsutil.Prettify(s)
5037}
5038
5039// GoString returns the string representation
5040func (s AuthorizeIpRulesInput) GoString() string {
5041	return s.String()
5042}
5043
5044// Validate inspects the fields of the type to determine if they are valid.
5045func (s *AuthorizeIpRulesInput) Validate() error {
5046	invalidParams := request.ErrInvalidParams{Context: "AuthorizeIpRulesInput"}
5047	if s.GroupId == nil {
5048		invalidParams.Add(request.NewErrParamRequired("GroupId"))
5049	}
5050	if s.UserRules == nil {
5051		invalidParams.Add(request.NewErrParamRequired("UserRules"))
5052	}
5053
5054	if invalidParams.Len() > 0 {
5055		return invalidParams
5056	}
5057	return nil
5058}
5059
5060// SetGroupId sets the GroupId field's value.
5061func (s *AuthorizeIpRulesInput) SetGroupId(v string) *AuthorizeIpRulesInput {
5062	s.GroupId = &v
5063	return s
5064}
5065
5066// SetUserRules sets the UserRules field's value.
5067func (s *AuthorizeIpRulesInput) SetUserRules(v []*IpRuleItem) *AuthorizeIpRulesInput {
5068	s.UserRules = v
5069	return s
5070}
5071
5072type AuthorizeIpRulesOutput struct {
5073	_ struct{} `type:"structure"`
5074}
5075
5076// String returns the string representation
5077func (s AuthorizeIpRulesOutput) String() string {
5078	return awsutil.Prettify(s)
5079}
5080
5081// GoString returns the string representation
5082func (s AuthorizeIpRulesOutput) GoString() string {
5083	return s.String()
5084}
5085
5086// Describes an Amazon WorkSpaces client.
5087type ClientProperties struct {
5088	_ struct{} `type:"structure"`
5089
5090	// Specifies whether users can cache their credentials on the Amazon WorkSpaces
5091	// client. When enabled, users can choose to reconnect to their WorkSpaces without
5092	// re-entering their credentials.
5093	ReconnectEnabled *string `type:"string" enum:"ReconnectEnum"`
5094}
5095
5096// String returns the string representation
5097func (s ClientProperties) String() string {
5098	return awsutil.Prettify(s)
5099}
5100
5101// GoString returns the string representation
5102func (s ClientProperties) GoString() string {
5103	return s.String()
5104}
5105
5106// SetReconnectEnabled sets the ReconnectEnabled field's value.
5107func (s *ClientProperties) SetReconnectEnabled(v string) *ClientProperties {
5108	s.ReconnectEnabled = &v
5109	return s
5110}
5111
5112// Information about the Amazon WorkSpaces client.
5113type ClientPropertiesResult struct {
5114	_ struct{} `type:"structure"`
5115
5116	// Information about the Amazon WorkSpaces client.
5117	ClientProperties *ClientProperties `type:"structure"`
5118
5119	// The resource identifier, in the form of a directory ID.
5120	ResourceId *string `min:"1" type:"string"`
5121}
5122
5123// String returns the string representation
5124func (s ClientPropertiesResult) String() string {
5125	return awsutil.Prettify(s)
5126}
5127
5128// GoString returns the string representation
5129func (s ClientPropertiesResult) GoString() string {
5130	return s.String()
5131}
5132
5133// SetClientProperties sets the ClientProperties field's value.
5134func (s *ClientPropertiesResult) SetClientProperties(v *ClientProperties) *ClientPropertiesResult {
5135	s.ClientProperties = v
5136	return s
5137}
5138
5139// SetResourceId sets the ResourceId field's value.
5140func (s *ClientPropertiesResult) SetResourceId(v string) *ClientPropertiesResult {
5141	s.ResourceId = &v
5142	return s
5143}
5144
5145// Describes the compute type.
5146type ComputeType struct {
5147	_ struct{} `type:"structure"`
5148
5149	// The compute type.
5150	Name *string `type:"string" enum:"Compute"`
5151}
5152
5153// String returns the string representation
5154func (s ComputeType) String() string {
5155	return awsutil.Prettify(s)
5156}
5157
5158// GoString returns the string representation
5159func (s ComputeType) GoString() string {
5160	return s.String()
5161}
5162
5163// SetName sets the Name field's value.
5164func (s *ComputeType) SetName(v string) *ComputeType {
5165	s.Name = &v
5166	return s
5167}
5168
5169// Describes a connection alias. Connection aliases are used for cross-Region
5170// redirection. For more information, see Cross-Region Redirection for Amazon
5171// WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
5172type ConnectionAlias struct {
5173	_ struct{} `type:"structure"`
5174
5175	// The identifier of the connection alias.
5176	AliasId *string `min:"13" type:"string"`
5177
5178	// The association status of the connection alias.
5179	Associations []*ConnectionAliasAssociation `min:"1" type:"list"`
5180
5181	// The connection string specified for the connection alias. The connection
5182	// string must be in the form of a fully qualified domain name (FQDN), such
5183	// as www.example.com.
5184	ConnectionString *string `min:"1" type:"string"`
5185
5186	// The identifier of the AWS account that owns the connection alias.
5187	OwnerAccountId *string `type:"string"`
5188
5189	// The current state of the connection alias.
5190	State *string `type:"string" enum:"ConnectionAliasState"`
5191}
5192
5193// String returns the string representation
5194func (s ConnectionAlias) String() string {
5195	return awsutil.Prettify(s)
5196}
5197
5198// GoString returns the string representation
5199func (s ConnectionAlias) GoString() string {
5200	return s.String()
5201}
5202
5203// SetAliasId sets the AliasId field's value.
5204func (s *ConnectionAlias) SetAliasId(v string) *ConnectionAlias {
5205	s.AliasId = &v
5206	return s
5207}
5208
5209// SetAssociations sets the Associations field's value.
5210func (s *ConnectionAlias) SetAssociations(v []*ConnectionAliasAssociation) *ConnectionAlias {
5211	s.Associations = v
5212	return s
5213}
5214
5215// SetConnectionString sets the ConnectionString field's value.
5216func (s *ConnectionAlias) SetConnectionString(v string) *ConnectionAlias {
5217	s.ConnectionString = &v
5218	return s
5219}
5220
5221// SetOwnerAccountId sets the OwnerAccountId field's value.
5222func (s *ConnectionAlias) SetOwnerAccountId(v string) *ConnectionAlias {
5223	s.OwnerAccountId = &v
5224	return s
5225}
5226
5227// SetState sets the State field's value.
5228func (s *ConnectionAlias) SetState(v string) *ConnectionAlias {
5229	s.State = &v
5230	return s
5231}
5232
5233// Describes a connection alias association that is used for cross-Region redirection.
5234// For more information, see Cross-Region Redirection for Amazon WorkSpaces
5235// (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
5236type ConnectionAliasAssociation struct {
5237	_ struct{} `type:"structure"`
5238
5239	// The identifier of the AWS account that associated the connection alias with
5240	// a directory.
5241	AssociatedAccountId *string `type:"string"`
5242
5243	// The association status of the connection alias.
5244	AssociationStatus *string `type:"string" enum:"AssociationStatus"`
5245
5246	// The identifier of the connection alias association. You use the connection
5247	// identifier in the DNS TXT record when you're configuring your DNS routing
5248	// policies.
5249	ConnectionIdentifier *string `min:"1" type:"string"`
5250
5251	// The identifier of the directory associated with a connection alias.
5252	ResourceId *string `min:"1" type:"string"`
5253}
5254
5255// String returns the string representation
5256func (s ConnectionAliasAssociation) String() string {
5257	return awsutil.Prettify(s)
5258}
5259
5260// GoString returns the string representation
5261func (s ConnectionAliasAssociation) GoString() string {
5262	return s.String()
5263}
5264
5265// SetAssociatedAccountId sets the AssociatedAccountId field's value.
5266func (s *ConnectionAliasAssociation) SetAssociatedAccountId(v string) *ConnectionAliasAssociation {
5267	s.AssociatedAccountId = &v
5268	return s
5269}
5270
5271// SetAssociationStatus sets the AssociationStatus field's value.
5272func (s *ConnectionAliasAssociation) SetAssociationStatus(v string) *ConnectionAliasAssociation {
5273	s.AssociationStatus = &v
5274	return s
5275}
5276
5277// SetConnectionIdentifier sets the ConnectionIdentifier field's value.
5278func (s *ConnectionAliasAssociation) SetConnectionIdentifier(v string) *ConnectionAliasAssociation {
5279	s.ConnectionIdentifier = &v
5280	return s
5281}
5282
5283// SetResourceId sets the ResourceId field's value.
5284func (s *ConnectionAliasAssociation) SetResourceId(v string) *ConnectionAliasAssociation {
5285	s.ResourceId = &v
5286	return s
5287}
5288
5289// Describes the permissions for a connection alias. Connection aliases are
5290// used for cross-Region redirection. For more information, see Cross-Region
5291// Redirection for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
5292type ConnectionAliasPermission struct {
5293	_ struct{} `type:"structure"`
5294
5295	// Indicates whether the specified AWS account is allowed to associate the connection
5296	// alias with a directory.
5297	//
5298	// AllowAssociation is a required field
5299	AllowAssociation *bool `type:"boolean" required:"true"`
5300
5301	// The identifier of the AWS account that the connection alias is shared with.
5302	//
5303	// SharedAccountId is a required field
5304	SharedAccountId *string `type:"string" required:"true"`
5305}
5306
5307// String returns the string representation
5308func (s ConnectionAliasPermission) String() string {
5309	return awsutil.Prettify(s)
5310}
5311
5312// GoString returns the string representation
5313func (s ConnectionAliasPermission) GoString() string {
5314	return s.String()
5315}
5316
5317// Validate inspects the fields of the type to determine if they are valid.
5318func (s *ConnectionAliasPermission) Validate() error {
5319	invalidParams := request.ErrInvalidParams{Context: "ConnectionAliasPermission"}
5320	if s.AllowAssociation == nil {
5321		invalidParams.Add(request.NewErrParamRequired("AllowAssociation"))
5322	}
5323	if s.SharedAccountId == nil {
5324		invalidParams.Add(request.NewErrParamRequired("SharedAccountId"))
5325	}
5326
5327	if invalidParams.Len() > 0 {
5328		return invalidParams
5329	}
5330	return nil
5331}
5332
5333// SetAllowAssociation sets the AllowAssociation field's value.
5334func (s *ConnectionAliasPermission) SetAllowAssociation(v bool) *ConnectionAliasPermission {
5335	s.AllowAssociation = &v
5336	return s
5337}
5338
5339// SetSharedAccountId sets the SharedAccountId field's value.
5340func (s *ConnectionAliasPermission) SetSharedAccountId(v string) *ConnectionAliasPermission {
5341	s.SharedAccountId = &v
5342	return s
5343}
5344
5345type CopyWorkspaceImageInput struct {
5346	_ struct{} `type:"structure"`
5347
5348	// A description of the image.
5349	Description *string `min:"1" type:"string"`
5350
5351	// The name of the image.
5352	//
5353	// Name is a required field
5354	Name *string `min:"1" type:"string" required:"true"`
5355
5356	// The identifier of the source image.
5357	//
5358	// SourceImageId is a required field
5359	SourceImageId *string `type:"string" required:"true"`
5360
5361	// The identifier of the source Region.
5362	//
5363	// SourceRegion is a required field
5364	SourceRegion *string `min:"1" type:"string" required:"true"`
5365
5366	// The tags for the image.
5367	Tags []*Tag `type:"list"`
5368}
5369
5370// String returns the string representation
5371func (s CopyWorkspaceImageInput) String() string {
5372	return awsutil.Prettify(s)
5373}
5374
5375// GoString returns the string representation
5376func (s CopyWorkspaceImageInput) GoString() string {
5377	return s.String()
5378}
5379
5380// Validate inspects the fields of the type to determine if they are valid.
5381func (s *CopyWorkspaceImageInput) Validate() error {
5382	invalidParams := request.ErrInvalidParams{Context: "CopyWorkspaceImageInput"}
5383	if s.Description != nil && len(*s.Description) < 1 {
5384		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
5385	}
5386	if s.Name == nil {
5387		invalidParams.Add(request.NewErrParamRequired("Name"))
5388	}
5389	if s.Name != nil && len(*s.Name) < 1 {
5390		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5391	}
5392	if s.SourceImageId == nil {
5393		invalidParams.Add(request.NewErrParamRequired("SourceImageId"))
5394	}
5395	if s.SourceRegion == nil {
5396		invalidParams.Add(request.NewErrParamRequired("SourceRegion"))
5397	}
5398	if s.SourceRegion != nil && len(*s.SourceRegion) < 1 {
5399		invalidParams.Add(request.NewErrParamMinLen("SourceRegion", 1))
5400	}
5401	if s.Tags != nil {
5402		for i, v := range s.Tags {
5403			if v == nil {
5404				continue
5405			}
5406			if err := v.Validate(); err != nil {
5407				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5408			}
5409		}
5410	}
5411
5412	if invalidParams.Len() > 0 {
5413		return invalidParams
5414	}
5415	return nil
5416}
5417
5418// SetDescription sets the Description field's value.
5419func (s *CopyWorkspaceImageInput) SetDescription(v string) *CopyWorkspaceImageInput {
5420	s.Description = &v
5421	return s
5422}
5423
5424// SetName sets the Name field's value.
5425func (s *CopyWorkspaceImageInput) SetName(v string) *CopyWorkspaceImageInput {
5426	s.Name = &v
5427	return s
5428}
5429
5430// SetSourceImageId sets the SourceImageId field's value.
5431func (s *CopyWorkspaceImageInput) SetSourceImageId(v string) *CopyWorkspaceImageInput {
5432	s.SourceImageId = &v
5433	return s
5434}
5435
5436// SetSourceRegion sets the SourceRegion field's value.
5437func (s *CopyWorkspaceImageInput) SetSourceRegion(v string) *CopyWorkspaceImageInput {
5438	s.SourceRegion = &v
5439	return s
5440}
5441
5442// SetTags sets the Tags field's value.
5443func (s *CopyWorkspaceImageInput) SetTags(v []*Tag) *CopyWorkspaceImageInput {
5444	s.Tags = v
5445	return s
5446}
5447
5448type CopyWorkspaceImageOutput struct {
5449	_ struct{} `type:"structure"`
5450
5451	// The identifier of the image.
5452	ImageId *string `type:"string"`
5453}
5454
5455// String returns the string representation
5456func (s CopyWorkspaceImageOutput) String() string {
5457	return awsutil.Prettify(s)
5458}
5459
5460// GoString returns the string representation
5461func (s CopyWorkspaceImageOutput) GoString() string {
5462	return s.String()
5463}
5464
5465// SetImageId sets the ImageId field's value.
5466func (s *CopyWorkspaceImageOutput) SetImageId(v string) *CopyWorkspaceImageOutput {
5467	s.ImageId = &v
5468	return s
5469}
5470
5471type CreateConnectionAliasInput struct {
5472	_ struct{} `type:"structure"`
5473
5474	// A connection string in the form of a fully qualified domain name (FQDN),
5475	// such as www.example.com.
5476	//
5477	// After you create a connection string, it is always associated to your AWS
5478	// account. You cannot recreate the same connection string with a different
5479	// account, even if you delete all instances of it from the original account.
5480	// The connection string is globally reserved for your account.
5481	//
5482	// ConnectionString is a required field
5483	ConnectionString *string `min:"1" type:"string" required:"true"`
5484
5485	// The tags to associate with the connection alias.
5486	Tags []*Tag `type:"list"`
5487}
5488
5489// String returns the string representation
5490func (s CreateConnectionAliasInput) String() string {
5491	return awsutil.Prettify(s)
5492}
5493
5494// GoString returns the string representation
5495func (s CreateConnectionAliasInput) GoString() string {
5496	return s.String()
5497}
5498
5499// Validate inspects the fields of the type to determine if they are valid.
5500func (s *CreateConnectionAliasInput) Validate() error {
5501	invalidParams := request.ErrInvalidParams{Context: "CreateConnectionAliasInput"}
5502	if s.ConnectionString == nil {
5503		invalidParams.Add(request.NewErrParamRequired("ConnectionString"))
5504	}
5505	if s.ConnectionString != nil && len(*s.ConnectionString) < 1 {
5506		invalidParams.Add(request.NewErrParamMinLen("ConnectionString", 1))
5507	}
5508	if s.Tags != nil {
5509		for i, v := range s.Tags {
5510			if v == nil {
5511				continue
5512			}
5513			if err := v.Validate(); err != nil {
5514				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5515			}
5516		}
5517	}
5518
5519	if invalidParams.Len() > 0 {
5520		return invalidParams
5521	}
5522	return nil
5523}
5524
5525// SetConnectionString sets the ConnectionString field's value.
5526func (s *CreateConnectionAliasInput) SetConnectionString(v string) *CreateConnectionAliasInput {
5527	s.ConnectionString = &v
5528	return s
5529}
5530
5531// SetTags sets the Tags field's value.
5532func (s *CreateConnectionAliasInput) SetTags(v []*Tag) *CreateConnectionAliasInput {
5533	s.Tags = v
5534	return s
5535}
5536
5537type CreateConnectionAliasOutput struct {
5538	_ struct{} `type:"structure"`
5539
5540	// The identifier of the connection alias.
5541	AliasId *string `min:"13" type:"string"`
5542}
5543
5544// String returns the string representation
5545func (s CreateConnectionAliasOutput) String() string {
5546	return awsutil.Prettify(s)
5547}
5548
5549// GoString returns the string representation
5550func (s CreateConnectionAliasOutput) GoString() string {
5551	return s.String()
5552}
5553
5554// SetAliasId sets the AliasId field's value.
5555func (s *CreateConnectionAliasOutput) SetAliasId(v string) *CreateConnectionAliasOutput {
5556	s.AliasId = &v
5557	return s
5558}
5559
5560type CreateIpGroupInput struct {
5561	_ struct{} `type:"structure"`
5562
5563	// The description of the group.
5564	GroupDesc *string `type:"string"`
5565
5566	// The name of the group.
5567	//
5568	// GroupName is a required field
5569	GroupName *string `type:"string" required:"true"`
5570
5571	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
5572	Tags []*Tag `type:"list"`
5573
5574	// The rules to add to the group.
5575	UserRules []*IpRuleItem `type:"list"`
5576}
5577
5578// String returns the string representation
5579func (s CreateIpGroupInput) String() string {
5580	return awsutil.Prettify(s)
5581}
5582
5583// GoString returns the string representation
5584func (s CreateIpGroupInput) GoString() string {
5585	return s.String()
5586}
5587
5588// Validate inspects the fields of the type to determine if they are valid.
5589func (s *CreateIpGroupInput) Validate() error {
5590	invalidParams := request.ErrInvalidParams{Context: "CreateIpGroupInput"}
5591	if s.GroupName == nil {
5592		invalidParams.Add(request.NewErrParamRequired("GroupName"))
5593	}
5594	if s.Tags != nil {
5595		for i, v := range s.Tags {
5596			if v == nil {
5597				continue
5598			}
5599			if err := v.Validate(); err != nil {
5600				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5601			}
5602		}
5603	}
5604
5605	if invalidParams.Len() > 0 {
5606		return invalidParams
5607	}
5608	return nil
5609}
5610
5611// SetGroupDesc sets the GroupDesc field's value.
5612func (s *CreateIpGroupInput) SetGroupDesc(v string) *CreateIpGroupInput {
5613	s.GroupDesc = &v
5614	return s
5615}
5616
5617// SetGroupName sets the GroupName field's value.
5618func (s *CreateIpGroupInput) SetGroupName(v string) *CreateIpGroupInput {
5619	s.GroupName = &v
5620	return s
5621}
5622
5623// SetTags sets the Tags field's value.
5624func (s *CreateIpGroupInput) SetTags(v []*Tag) *CreateIpGroupInput {
5625	s.Tags = v
5626	return s
5627}
5628
5629// SetUserRules sets the UserRules field's value.
5630func (s *CreateIpGroupInput) SetUserRules(v []*IpRuleItem) *CreateIpGroupInput {
5631	s.UserRules = v
5632	return s
5633}
5634
5635type CreateIpGroupOutput struct {
5636	_ struct{} `type:"structure"`
5637
5638	// The identifier of the group.
5639	GroupId *string `type:"string"`
5640}
5641
5642// String returns the string representation
5643func (s CreateIpGroupOutput) String() string {
5644	return awsutil.Prettify(s)
5645}
5646
5647// GoString returns the string representation
5648func (s CreateIpGroupOutput) GoString() string {
5649	return s.String()
5650}
5651
5652// SetGroupId sets the GroupId field's value.
5653func (s *CreateIpGroupOutput) SetGroupId(v string) *CreateIpGroupOutput {
5654	s.GroupId = &v
5655	return s
5656}
5657
5658type CreateTagsInput struct {
5659	_ struct{} `type:"structure"`
5660
5661	// The identifier of the WorkSpaces resource. The supported resource types are
5662	// WorkSpaces, registered directories, images, custom bundles, IP access control
5663	// groups, and connection aliases.
5664	//
5665	// ResourceId is a required field
5666	ResourceId *string `min:"1" type:"string" required:"true"`
5667
5668	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
5669	//
5670	// Tags is a required field
5671	Tags []*Tag `type:"list" required:"true"`
5672}
5673
5674// String returns the string representation
5675func (s CreateTagsInput) String() string {
5676	return awsutil.Prettify(s)
5677}
5678
5679// GoString returns the string representation
5680func (s CreateTagsInput) GoString() string {
5681	return s.String()
5682}
5683
5684// Validate inspects the fields of the type to determine if they are valid.
5685func (s *CreateTagsInput) Validate() error {
5686	invalidParams := request.ErrInvalidParams{Context: "CreateTagsInput"}
5687	if s.ResourceId == nil {
5688		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
5689	}
5690	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
5691		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
5692	}
5693	if s.Tags == nil {
5694		invalidParams.Add(request.NewErrParamRequired("Tags"))
5695	}
5696	if s.Tags != nil {
5697		for i, v := range s.Tags {
5698			if v == nil {
5699				continue
5700			}
5701			if err := v.Validate(); err != nil {
5702				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5703			}
5704		}
5705	}
5706
5707	if invalidParams.Len() > 0 {
5708		return invalidParams
5709	}
5710	return nil
5711}
5712
5713// SetResourceId sets the ResourceId field's value.
5714func (s *CreateTagsInput) SetResourceId(v string) *CreateTagsInput {
5715	s.ResourceId = &v
5716	return s
5717}
5718
5719// SetTags sets the Tags field's value.
5720func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput {
5721	s.Tags = v
5722	return s
5723}
5724
5725type CreateTagsOutput struct {
5726	_ struct{} `type:"structure"`
5727}
5728
5729// String returns the string representation
5730func (s CreateTagsOutput) String() string {
5731	return awsutil.Prettify(s)
5732}
5733
5734// GoString returns the string representation
5735func (s CreateTagsOutput) GoString() string {
5736	return s.String()
5737}
5738
5739type CreateWorkspacesInput struct {
5740	_ struct{} `type:"structure"`
5741
5742	// The WorkSpaces to create. You can specify up to 25 WorkSpaces.
5743	//
5744	// Workspaces is a required field
5745	Workspaces []*WorkspaceRequest `min:"1" type:"list" required:"true"`
5746}
5747
5748// String returns the string representation
5749func (s CreateWorkspacesInput) String() string {
5750	return awsutil.Prettify(s)
5751}
5752
5753// GoString returns the string representation
5754func (s CreateWorkspacesInput) GoString() string {
5755	return s.String()
5756}
5757
5758// Validate inspects the fields of the type to determine if they are valid.
5759func (s *CreateWorkspacesInput) Validate() error {
5760	invalidParams := request.ErrInvalidParams{Context: "CreateWorkspacesInput"}
5761	if s.Workspaces == nil {
5762		invalidParams.Add(request.NewErrParamRequired("Workspaces"))
5763	}
5764	if s.Workspaces != nil && len(s.Workspaces) < 1 {
5765		invalidParams.Add(request.NewErrParamMinLen("Workspaces", 1))
5766	}
5767	if s.Workspaces != nil {
5768		for i, v := range s.Workspaces {
5769			if v == nil {
5770				continue
5771			}
5772			if err := v.Validate(); err != nil {
5773				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Workspaces", i), err.(request.ErrInvalidParams))
5774			}
5775		}
5776	}
5777
5778	if invalidParams.Len() > 0 {
5779		return invalidParams
5780	}
5781	return nil
5782}
5783
5784// SetWorkspaces sets the Workspaces field's value.
5785func (s *CreateWorkspacesInput) SetWorkspaces(v []*WorkspaceRequest) *CreateWorkspacesInput {
5786	s.Workspaces = v
5787	return s
5788}
5789
5790type CreateWorkspacesOutput struct {
5791	_ struct{} `type:"structure"`
5792
5793	// Information about the WorkSpaces that could not be created.
5794	FailedRequests []*FailedCreateWorkspaceRequest `type:"list"`
5795
5796	// Information about the WorkSpaces that were created.
5797	//
5798	// Because this operation is asynchronous, the identifier returned is not immediately
5799	// available for use with other operations. For example, if you call DescribeWorkspaces
5800	// before the WorkSpace is created, the information returned can be incomplete.
5801	PendingRequests []*Workspace `type:"list"`
5802}
5803
5804// String returns the string representation
5805func (s CreateWorkspacesOutput) String() string {
5806	return awsutil.Prettify(s)
5807}
5808
5809// GoString returns the string representation
5810func (s CreateWorkspacesOutput) GoString() string {
5811	return s.String()
5812}
5813
5814// SetFailedRequests sets the FailedRequests field's value.
5815func (s *CreateWorkspacesOutput) SetFailedRequests(v []*FailedCreateWorkspaceRequest) *CreateWorkspacesOutput {
5816	s.FailedRequests = v
5817	return s
5818}
5819
5820// SetPendingRequests sets the PendingRequests field's value.
5821func (s *CreateWorkspacesOutput) SetPendingRequests(v []*Workspace) *CreateWorkspacesOutput {
5822	s.PendingRequests = v
5823	return s
5824}
5825
5826// Describes the default values that are used to create WorkSpaces. For more
5827// information, see Update Directory Details for Your WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html).
5828type DefaultWorkspaceCreationProperties struct {
5829	_ struct{} `type:"structure"`
5830
5831	// The identifier of the default security group to apply to WorkSpaces when
5832	// they are created. For more information, see Security Groups for Your WorkSpaces
5833	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-security-groups.html).
5834	CustomSecurityGroupId *string `min:"11" type:"string"`
5835
5836	// The organizational unit (OU) in the directory for the WorkSpace machine accounts.
5837	DefaultOu *string `type:"string"`
5838
5839	// Specifies whether to automatically assign an Elastic public IP address to
5840	// WorkSpaces in this directory by default. If enabled, the Elastic public IP
5841	// address allows outbound internet access from your WorkSpaces when you’re
5842	// using an internet gateway in the Amazon VPC in which your WorkSpaces are
5843	// located. If you're using a Network Address Translation (NAT) gateway for
5844	// outbound internet access from your VPC, or if your WorkSpaces are in public
5845	// subnets and you manually assign them Elastic IP addresses, you should disable
5846	// this setting. This setting applies to new WorkSpaces that you launch or to
5847	// existing WorkSpaces that you rebuild. For more information, see Configure
5848	// a VPC for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html).
5849	EnableInternetAccess *bool `type:"boolean"`
5850
5851	// Specifies whether maintenance mode is enabled for WorkSpaces. For more information,
5852	// see WorkSpace Maintenance (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).
5853	EnableMaintenanceMode *bool `type:"boolean"`
5854
5855	// Specifies whether the directory is enabled for Amazon WorkDocs.
5856	EnableWorkDocs *bool `type:"boolean"`
5857
5858	// Specifies whether WorkSpace users are local administrators on their WorkSpaces.
5859	UserEnabledAsLocalAdministrator *bool `type:"boolean"`
5860}
5861
5862// String returns the string representation
5863func (s DefaultWorkspaceCreationProperties) String() string {
5864	return awsutil.Prettify(s)
5865}
5866
5867// GoString returns the string representation
5868func (s DefaultWorkspaceCreationProperties) GoString() string {
5869	return s.String()
5870}
5871
5872// SetCustomSecurityGroupId sets the CustomSecurityGroupId field's value.
5873func (s *DefaultWorkspaceCreationProperties) SetCustomSecurityGroupId(v string) *DefaultWorkspaceCreationProperties {
5874	s.CustomSecurityGroupId = &v
5875	return s
5876}
5877
5878// SetDefaultOu sets the DefaultOu field's value.
5879func (s *DefaultWorkspaceCreationProperties) SetDefaultOu(v string) *DefaultWorkspaceCreationProperties {
5880	s.DefaultOu = &v
5881	return s
5882}
5883
5884// SetEnableInternetAccess sets the EnableInternetAccess field's value.
5885func (s *DefaultWorkspaceCreationProperties) SetEnableInternetAccess(v bool) *DefaultWorkspaceCreationProperties {
5886	s.EnableInternetAccess = &v
5887	return s
5888}
5889
5890// SetEnableMaintenanceMode sets the EnableMaintenanceMode field's value.
5891func (s *DefaultWorkspaceCreationProperties) SetEnableMaintenanceMode(v bool) *DefaultWorkspaceCreationProperties {
5892	s.EnableMaintenanceMode = &v
5893	return s
5894}
5895
5896// SetEnableWorkDocs sets the EnableWorkDocs field's value.
5897func (s *DefaultWorkspaceCreationProperties) SetEnableWorkDocs(v bool) *DefaultWorkspaceCreationProperties {
5898	s.EnableWorkDocs = &v
5899	return s
5900}
5901
5902// SetUserEnabledAsLocalAdministrator sets the UserEnabledAsLocalAdministrator field's value.
5903func (s *DefaultWorkspaceCreationProperties) SetUserEnabledAsLocalAdministrator(v bool) *DefaultWorkspaceCreationProperties {
5904	s.UserEnabledAsLocalAdministrator = &v
5905	return s
5906}
5907
5908type DeleteConnectionAliasInput struct {
5909	_ struct{} `type:"structure"`
5910
5911	// The identifier of the connection alias to delete.
5912	//
5913	// AliasId is a required field
5914	AliasId *string `min:"13" type:"string" required:"true"`
5915}
5916
5917// String returns the string representation
5918func (s DeleteConnectionAliasInput) String() string {
5919	return awsutil.Prettify(s)
5920}
5921
5922// GoString returns the string representation
5923func (s DeleteConnectionAliasInput) GoString() string {
5924	return s.String()
5925}
5926
5927// Validate inspects the fields of the type to determine if they are valid.
5928func (s *DeleteConnectionAliasInput) Validate() error {
5929	invalidParams := request.ErrInvalidParams{Context: "DeleteConnectionAliasInput"}
5930	if s.AliasId == nil {
5931		invalidParams.Add(request.NewErrParamRequired("AliasId"))
5932	}
5933	if s.AliasId != nil && len(*s.AliasId) < 13 {
5934		invalidParams.Add(request.NewErrParamMinLen("AliasId", 13))
5935	}
5936
5937	if invalidParams.Len() > 0 {
5938		return invalidParams
5939	}
5940	return nil
5941}
5942
5943// SetAliasId sets the AliasId field's value.
5944func (s *DeleteConnectionAliasInput) SetAliasId(v string) *DeleteConnectionAliasInput {
5945	s.AliasId = &v
5946	return s
5947}
5948
5949type DeleteConnectionAliasOutput struct {
5950	_ struct{} `type:"structure"`
5951}
5952
5953// String returns the string representation
5954func (s DeleteConnectionAliasOutput) String() string {
5955	return awsutil.Prettify(s)
5956}
5957
5958// GoString returns the string representation
5959func (s DeleteConnectionAliasOutput) GoString() string {
5960	return s.String()
5961}
5962
5963type DeleteIpGroupInput struct {
5964	_ struct{} `type:"structure"`
5965
5966	// The identifier of the IP access control group.
5967	//
5968	// GroupId is a required field
5969	GroupId *string `type:"string" required:"true"`
5970}
5971
5972// String returns the string representation
5973func (s DeleteIpGroupInput) String() string {
5974	return awsutil.Prettify(s)
5975}
5976
5977// GoString returns the string representation
5978func (s DeleteIpGroupInput) GoString() string {
5979	return s.String()
5980}
5981
5982// Validate inspects the fields of the type to determine if they are valid.
5983func (s *DeleteIpGroupInput) Validate() error {
5984	invalidParams := request.ErrInvalidParams{Context: "DeleteIpGroupInput"}
5985	if s.GroupId == nil {
5986		invalidParams.Add(request.NewErrParamRequired("GroupId"))
5987	}
5988
5989	if invalidParams.Len() > 0 {
5990		return invalidParams
5991	}
5992	return nil
5993}
5994
5995// SetGroupId sets the GroupId field's value.
5996func (s *DeleteIpGroupInput) SetGroupId(v string) *DeleteIpGroupInput {
5997	s.GroupId = &v
5998	return s
5999}
6000
6001type DeleteIpGroupOutput struct {
6002	_ struct{} `type:"structure"`
6003}
6004
6005// String returns the string representation
6006func (s DeleteIpGroupOutput) String() string {
6007	return awsutil.Prettify(s)
6008}
6009
6010// GoString returns the string representation
6011func (s DeleteIpGroupOutput) GoString() string {
6012	return s.String()
6013}
6014
6015type DeleteTagsInput struct {
6016	_ struct{} `type:"structure"`
6017
6018	// The identifier of the WorkSpaces resource. The supported resource types are
6019	// WorkSpaces, registered directories, images, custom bundles, IP access control
6020	// groups, and connection aliases.
6021	//
6022	// ResourceId is a required field
6023	ResourceId *string `min:"1" type:"string" required:"true"`
6024
6025	// The tag keys.
6026	//
6027	// TagKeys is a required field
6028	TagKeys []*string `type:"list" required:"true"`
6029}
6030
6031// String returns the string representation
6032func (s DeleteTagsInput) String() string {
6033	return awsutil.Prettify(s)
6034}
6035
6036// GoString returns the string representation
6037func (s DeleteTagsInput) GoString() string {
6038	return s.String()
6039}
6040
6041// Validate inspects the fields of the type to determine if they are valid.
6042func (s *DeleteTagsInput) Validate() error {
6043	invalidParams := request.ErrInvalidParams{Context: "DeleteTagsInput"}
6044	if s.ResourceId == nil {
6045		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6046	}
6047	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
6048		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
6049	}
6050	if s.TagKeys == nil {
6051		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
6052	}
6053
6054	if invalidParams.Len() > 0 {
6055		return invalidParams
6056	}
6057	return nil
6058}
6059
6060// SetResourceId sets the ResourceId field's value.
6061func (s *DeleteTagsInput) SetResourceId(v string) *DeleteTagsInput {
6062	s.ResourceId = &v
6063	return s
6064}
6065
6066// SetTagKeys sets the TagKeys field's value.
6067func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput {
6068	s.TagKeys = v
6069	return s
6070}
6071
6072type DeleteTagsOutput struct {
6073	_ struct{} `type:"structure"`
6074}
6075
6076// String returns the string representation
6077func (s DeleteTagsOutput) String() string {
6078	return awsutil.Prettify(s)
6079}
6080
6081// GoString returns the string representation
6082func (s DeleteTagsOutput) GoString() string {
6083	return s.String()
6084}
6085
6086type DeleteWorkspaceImageInput struct {
6087	_ struct{} `type:"structure"`
6088
6089	// The identifier of the image.
6090	//
6091	// ImageId is a required field
6092	ImageId *string `type:"string" required:"true"`
6093}
6094
6095// String returns the string representation
6096func (s DeleteWorkspaceImageInput) String() string {
6097	return awsutil.Prettify(s)
6098}
6099
6100// GoString returns the string representation
6101func (s DeleteWorkspaceImageInput) GoString() string {
6102	return s.String()
6103}
6104
6105// Validate inspects the fields of the type to determine if they are valid.
6106func (s *DeleteWorkspaceImageInput) Validate() error {
6107	invalidParams := request.ErrInvalidParams{Context: "DeleteWorkspaceImageInput"}
6108	if s.ImageId == nil {
6109		invalidParams.Add(request.NewErrParamRequired("ImageId"))
6110	}
6111
6112	if invalidParams.Len() > 0 {
6113		return invalidParams
6114	}
6115	return nil
6116}
6117
6118// SetImageId sets the ImageId field's value.
6119func (s *DeleteWorkspaceImageInput) SetImageId(v string) *DeleteWorkspaceImageInput {
6120	s.ImageId = &v
6121	return s
6122}
6123
6124type DeleteWorkspaceImageOutput struct {
6125	_ struct{} `type:"structure"`
6126}
6127
6128// String returns the string representation
6129func (s DeleteWorkspaceImageOutput) String() string {
6130	return awsutil.Prettify(s)
6131}
6132
6133// GoString returns the string representation
6134func (s DeleteWorkspaceImageOutput) GoString() string {
6135	return s.String()
6136}
6137
6138type DeregisterWorkspaceDirectoryInput struct {
6139	_ struct{} `type:"structure"`
6140
6141	// The identifier of the directory. If any WorkSpaces are registered to this
6142	// directory, you must remove them before you deregister the directory, or you
6143	// will receive an OperationNotSupportedException error.
6144	//
6145	// DirectoryId is a required field
6146	DirectoryId *string `min:"10" type:"string" required:"true"`
6147}
6148
6149// String returns the string representation
6150func (s DeregisterWorkspaceDirectoryInput) String() string {
6151	return awsutil.Prettify(s)
6152}
6153
6154// GoString returns the string representation
6155func (s DeregisterWorkspaceDirectoryInput) GoString() string {
6156	return s.String()
6157}
6158
6159// Validate inspects the fields of the type to determine if they are valid.
6160func (s *DeregisterWorkspaceDirectoryInput) Validate() error {
6161	invalidParams := request.ErrInvalidParams{Context: "DeregisterWorkspaceDirectoryInput"}
6162	if s.DirectoryId == nil {
6163		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6164	}
6165	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
6166		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
6167	}
6168
6169	if invalidParams.Len() > 0 {
6170		return invalidParams
6171	}
6172	return nil
6173}
6174
6175// SetDirectoryId sets the DirectoryId field's value.
6176func (s *DeregisterWorkspaceDirectoryInput) SetDirectoryId(v string) *DeregisterWorkspaceDirectoryInput {
6177	s.DirectoryId = &v
6178	return s
6179}
6180
6181type DeregisterWorkspaceDirectoryOutput struct {
6182	_ struct{} `type:"structure"`
6183}
6184
6185// String returns the string representation
6186func (s DeregisterWorkspaceDirectoryOutput) String() string {
6187	return awsutil.Prettify(s)
6188}
6189
6190// GoString returns the string representation
6191func (s DeregisterWorkspaceDirectoryOutput) GoString() string {
6192	return s.String()
6193}
6194
6195type DescribeAccountInput struct {
6196	_ struct{} `type:"structure"`
6197}
6198
6199// String returns the string representation
6200func (s DescribeAccountInput) String() string {
6201	return awsutil.Prettify(s)
6202}
6203
6204// GoString returns the string representation
6205func (s DescribeAccountInput) GoString() string {
6206	return s.String()
6207}
6208
6209type DescribeAccountModificationsInput struct {
6210	_ struct{} `type:"structure"`
6211
6212	// If you received a NextToken from a previous call that was paginated, provide
6213	// this token to receive the next set of results.
6214	NextToken *string `min:"1" type:"string"`
6215}
6216
6217// String returns the string representation
6218func (s DescribeAccountModificationsInput) String() string {
6219	return awsutil.Prettify(s)
6220}
6221
6222// GoString returns the string representation
6223func (s DescribeAccountModificationsInput) GoString() string {
6224	return s.String()
6225}
6226
6227// Validate inspects the fields of the type to determine if they are valid.
6228func (s *DescribeAccountModificationsInput) Validate() error {
6229	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountModificationsInput"}
6230	if s.NextToken != nil && len(*s.NextToken) < 1 {
6231		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6232	}
6233
6234	if invalidParams.Len() > 0 {
6235		return invalidParams
6236	}
6237	return nil
6238}
6239
6240// SetNextToken sets the NextToken field's value.
6241func (s *DescribeAccountModificationsInput) SetNextToken(v string) *DescribeAccountModificationsInput {
6242	s.NextToken = &v
6243	return s
6244}
6245
6246type DescribeAccountModificationsOutput struct {
6247	_ struct{} `type:"structure"`
6248
6249	// The list of modifications to the configuration of BYOL.
6250	AccountModifications []*AccountModification `type:"list"`
6251
6252	// The token to use to retrieve the next set of results, or null if no more
6253	// results are available.
6254	NextToken *string `min:"1" type:"string"`
6255}
6256
6257// String returns the string representation
6258func (s DescribeAccountModificationsOutput) String() string {
6259	return awsutil.Prettify(s)
6260}
6261
6262// GoString returns the string representation
6263func (s DescribeAccountModificationsOutput) GoString() string {
6264	return s.String()
6265}
6266
6267// SetAccountModifications sets the AccountModifications field's value.
6268func (s *DescribeAccountModificationsOutput) SetAccountModifications(v []*AccountModification) *DescribeAccountModificationsOutput {
6269	s.AccountModifications = v
6270	return s
6271}
6272
6273// SetNextToken sets the NextToken field's value.
6274func (s *DescribeAccountModificationsOutput) SetNextToken(v string) *DescribeAccountModificationsOutput {
6275	s.NextToken = &v
6276	return s
6277}
6278
6279type DescribeAccountOutput struct {
6280	_ struct{} `type:"structure"`
6281
6282	// The IP address range, specified as an IPv4 CIDR block, used for the management
6283	// network interface.
6284	//
6285	// The management network interface is connected to a secure Amazon WorkSpaces
6286	// management network. It is used for interactive streaming of the WorkSpace
6287	// desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage
6288	// the WorkSpace.
6289	DedicatedTenancyManagementCidrRange *string `type:"string"`
6290
6291	// The status of BYOL (whether BYOL is enabled or disabled).
6292	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportResultEnum"`
6293}
6294
6295// String returns the string representation
6296func (s DescribeAccountOutput) String() string {
6297	return awsutil.Prettify(s)
6298}
6299
6300// GoString returns the string representation
6301func (s DescribeAccountOutput) GoString() string {
6302	return s.String()
6303}
6304
6305// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
6306func (s *DescribeAccountOutput) SetDedicatedTenancyManagementCidrRange(v string) *DescribeAccountOutput {
6307	s.DedicatedTenancyManagementCidrRange = &v
6308	return s
6309}
6310
6311// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
6312func (s *DescribeAccountOutput) SetDedicatedTenancySupport(v string) *DescribeAccountOutput {
6313	s.DedicatedTenancySupport = &v
6314	return s
6315}
6316
6317type DescribeClientPropertiesInput struct {
6318	_ struct{} `type:"structure"`
6319
6320	// The resource identifier, in the form of directory IDs.
6321	//
6322	// ResourceIds is a required field
6323	ResourceIds []*string `min:"1" type:"list" required:"true"`
6324}
6325
6326// String returns the string representation
6327func (s DescribeClientPropertiesInput) String() string {
6328	return awsutil.Prettify(s)
6329}
6330
6331// GoString returns the string representation
6332func (s DescribeClientPropertiesInput) GoString() string {
6333	return s.String()
6334}
6335
6336// Validate inspects the fields of the type to determine if they are valid.
6337func (s *DescribeClientPropertiesInput) Validate() error {
6338	invalidParams := request.ErrInvalidParams{Context: "DescribeClientPropertiesInput"}
6339	if s.ResourceIds == nil {
6340		invalidParams.Add(request.NewErrParamRequired("ResourceIds"))
6341	}
6342	if s.ResourceIds != nil && len(s.ResourceIds) < 1 {
6343		invalidParams.Add(request.NewErrParamMinLen("ResourceIds", 1))
6344	}
6345
6346	if invalidParams.Len() > 0 {
6347		return invalidParams
6348	}
6349	return nil
6350}
6351
6352// SetResourceIds sets the ResourceIds field's value.
6353func (s *DescribeClientPropertiesInput) SetResourceIds(v []*string) *DescribeClientPropertiesInput {
6354	s.ResourceIds = v
6355	return s
6356}
6357
6358type DescribeClientPropertiesOutput struct {
6359	_ struct{} `type:"structure"`
6360
6361	// Information about the specified Amazon WorkSpaces clients.
6362	ClientPropertiesList []*ClientPropertiesResult `type:"list"`
6363}
6364
6365// String returns the string representation
6366func (s DescribeClientPropertiesOutput) String() string {
6367	return awsutil.Prettify(s)
6368}
6369
6370// GoString returns the string representation
6371func (s DescribeClientPropertiesOutput) GoString() string {
6372	return s.String()
6373}
6374
6375// SetClientPropertiesList sets the ClientPropertiesList field's value.
6376func (s *DescribeClientPropertiesOutput) SetClientPropertiesList(v []*ClientPropertiesResult) *DescribeClientPropertiesOutput {
6377	s.ClientPropertiesList = v
6378	return s
6379}
6380
6381type DescribeConnectionAliasPermissionsInput struct {
6382	_ struct{} `type:"structure"`
6383
6384	// The identifier of the connection alias.
6385	//
6386	// AliasId is a required field
6387	AliasId *string `min:"13" type:"string" required:"true"`
6388
6389	// The maximum number of results to return.
6390	MaxResults *int64 `min:"1" type:"integer"`
6391
6392	// If you received a NextToken from a previous call that was paginated, provide
6393	// this token to receive the next set of results.
6394	NextToken *string `min:"1" type:"string"`
6395}
6396
6397// String returns the string representation
6398func (s DescribeConnectionAliasPermissionsInput) String() string {
6399	return awsutil.Prettify(s)
6400}
6401
6402// GoString returns the string representation
6403func (s DescribeConnectionAliasPermissionsInput) GoString() string {
6404	return s.String()
6405}
6406
6407// Validate inspects the fields of the type to determine if they are valid.
6408func (s *DescribeConnectionAliasPermissionsInput) Validate() error {
6409	invalidParams := request.ErrInvalidParams{Context: "DescribeConnectionAliasPermissionsInput"}
6410	if s.AliasId == nil {
6411		invalidParams.Add(request.NewErrParamRequired("AliasId"))
6412	}
6413	if s.AliasId != nil && len(*s.AliasId) < 13 {
6414		invalidParams.Add(request.NewErrParamMinLen("AliasId", 13))
6415	}
6416	if s.MaxResults != nil && *s.MaxResults < 1 {
6417		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6418	}
6419	if s.NextToken != nil && len(*s.NextToken) < 1 {
6420		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6421	}
6422
6423	if invalidParams.Len() > 0 {
6424		return invalidParams
6425	}
6426	return nil
6427}
6428
6429// SetAliasId sets the AliasId field's value.
6430func (s *DescribeConnectionAliasPermissionsInput) SetAliasId(v string) *DescribeConnectionAliasPermissionsInput {
6431	s.AliasId = &v
6432	return s
6433}
6434
6435// SetMaxResults sets the MaxResults field's value.
6436func (s *DescribeConnectionAliasPermissionsInput) SetMaxResults(v int64) *DescribeConnectionAliasPermissionsInput {
6437	s.MaxResults = &v
6438	return s
6439}
6440
6441// SetNextToken sets the NextToken field's value.
6442func (s *DescribeConnectionAliasPermissionsInput) SetNextToken(v string) *DescribeConnectionAliasPermissionsInput {
6443	s.NextToken = &v
6444	return s
6445}
6446
6447type DescribeConnectionAliasPermissionsOutput struct {
6448	_ struct{} `type:"structure"`
6449
6450	// The identifier of the connection alias.
6451	AliasId *string `min:"13" type:"string"`
6452
6453	// The permissions associated with a connection alias.
6454	ConnectionAliasPermissions []*ConnectionAliasPermission `min:"1" type:"list"`
6455
6456	// The token to use to retrieve the next set of results, or null if no more
6457	// results are available.
6458	NextToken *string `min:"1" type:"string"`
6459}
6460
6461// String returns the string representation
6462func (s DescribeConnectionAliasPermissionsOutput) String() string {
6463	return awsutil.Prettify(s)
6464}
6465
6466// GoString returns the string representation
6467func (s DescribeConnectionAliasPermissionsOutput) GoString() string {
6468	return s.String()
6469}
6470
6471// SetAliasId sets the AliasId field's value.
6472func (s *DescribeConnectionAliasPermissionsOutput) SetAliasId(v string) *DescribeConnectionAliasPermissionsOutput {
6473	s.AliasId = &v
6474	return s
6475}
6476
6477// SetConnectionAliasPermissions sets the ConnectionAliasPermissions field's value.
6478func (s *DescribeConnectionAliasPermissionsOutput) SetConnectionAliasPermissions(v []*ConnectionAliasPermission) *DescribeConnectionAliasPermissionsOutput {
6479	s.ConnectionAliasPermissions = v
6480	return s
6481}
6482
6483// SetNextToken sets the NextToken field's value.
6484func (s *DescribeConnectionAliasPermissionsOutput) SetNextToken(v string) *DescribeConnectionAliasPermissionsOutput {
6485	s.NextToken = &v
6486	return s
6487}
6488
6489type DescribeConnectionAliasesInput struct {
6490	_ struct{} `type:"structure"`
6491
6492	// The identifiers of the connection aliases to describe.
6493	AliasIds []*string `min:"1" type:"list"`
6494
6495	// The maximum number of connection aliases to return.
6496	Limit *int64 `min:"1" type:"integer"`
6497
6498	// If you received a NextToken from a previous call that was paginated, provide
6499	// this token to receive the next set of results.
6500	NextToken *string `min:"1" type:"string"`
6501
6502	// The identifier of the directory associated with the connection alias.
6503	ResourceId *string `min:"1" type:"string"`
6504}
6505
6506// String returns the string representation
6507func (s DescribeConnectionAliasesInput) String() string {
6508	return awsutil.Prettify(s)
6509}
6510
6511// GoString returns the string representation
6512func (s DescribeConnectionAliasesInput) GoString() string {
6513	return s.String()
6514}
6515
6516// Validate inspects the fields of the type to determine if they are valid.
6517func (s *DescribeConnectionAliasesInput) Validate() error {
6518	invalidParams := request.ErrInvalidParams{Context: "DescribeConnectionAliasesInput"}
6519	if s.AliasIds != nil && len(s.AliasIds) < 1 {
6520		invalidParams.Add(request.NewErrParamMinLen("AliasIds", 1))
6521	}
6522	if s.Limit != nil && *s.Limit < 1 {
6523		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
6524	}
6525	if s.NextToken != nil && len(*s.NextToken) < 1 {
6526		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6527	}
6528	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
6529		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
6530	}
6531
6532	if invalidParams.Len() > 0 {
6533		return invalidParams
6534	}
6535	return nil
6536}
6537
6538// SetAliasIds sets the AliasIds field's value.
6539func (s *DescribeConnectionAliasesInput) SetAliasIds(v []*string) *DescribeConnectionAliasesInput {
6540	s.AliasIds = v
6541	return s
6542}
6543
6544// SetLimit sets the Limit field's value.
6545func (s *DescribeConnectionAliasesInput) SetLimit(v int64) *DescribeConnectionAliasesInput {
6546	s.Limit = &v
6547	return s
6548}
6549
6550// SetNextToken sets the NextToken field's value.
6551func (s *DescribeConnectionAliasesInput) SetNextToken(v string) *DescribeConnectionAliasesInput {
6552	s.NextToken = &v
6553	return s
6554}
6555
6556// SetResourceId sets the ResourceId field's value.
6557func (s *DescribeConnectionAliasesInput) SetResourceId(v string) *DescribeConnectionAliasesInput {
6558	s.ResourceId = &v
6559	return s
6560}
6561
6562type DescribeConnectionAliasesOutput struct {
6563	_ struct{} `type:"structure"`
6564
6565	// Information about the specified connection aliases.
6566	ConnectionAliases []*ConnectionAlias `min:"1" type:"list"`
6567
6568	// The token to use to retrieve the next set of results, or null if no more
6569	// results are available.
6570	NextToken *string `min:"1" type:"string"`
6571}
6572
6573// String returns the string representation
6574func (s DescribeConnectionAliasesOutput) String() string {
6575	return awsutil.Prettify(s)
6576}
6577
6578// GoString returns the string representation
6579func (s DescribeConnectionAliasesOutput) GoString() string {
6580	return s.String()
6581}
6582
6583// SetConnectionAliases sets the ConnectionAliases field's value.
6584func (s *DescribeConnectionAliasesOutput) SetConnectionAliases(v []*ConnectionAlias) *DescribeConnectionAliasesOutput {
6585	s.ConnectionAliases = v
6586	return s
6587}
6588
6589// SetNextToken sets the NextToken field's value.
6590func (s *DescribeConnectionAliasesOutput) SetNextToken(v string) *DescribeConnectionAliasesOutput {
6591	s.NextToken = &v
6592	return s
6593}
6594
6595type DescribeIpGroupsInput struct {
6596	_ struct{} `type:"structure"`
6597
6598	// The identifiers of one or more IP access control groups.
6599	GroupIds []*string `type:"list"`
6600
6601	// The maximum number of items to return.
6602	MaxResults *int64 `min:"1" type:"integer"`
6603
6604	// If you received a NextToken from a previous call that was paginated, provide
6605	// this token to receive the next set of results.
6606	NextToken *string `min:"1" type:"string"`
6607}
6608
6609// String returns the string representation
6610func (s DescribeIpGroupsInput) String() string {
6611	return awsutil.Prettify(s)
6612}
6613
6614// GoString returns the string representation
6615func (s DescribeIpGroupsInput) GoString() string {
6616	return s.String()
6617}
6618
6619// Validate inspects the fields of the type to determine if they are valid.
6620func (s *DescribeIpGroupsInput) Validate() error {
6621	invalidParams := request.ErrInvalidParams{Context: "DescribeIpGroupsInput"}
6622	if s.MaxResults != nil && *s.MaxResults < 1 {
6623		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6624	}
6625	if s.NextToken != nil && len(*s.NextToken) < 1 {
6626		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6627	}
6628
6629	if invalidParams.Len() > 0 {
6630		return invalidParams
6631	}
6632	return nil
6633}
6634
6635// SetGroupIds sets the GroupIds field's value.
6636func (s *DescribeIpGroupsInput) SetGroupIds(v []*string) *DescribeIpGroupsInput {
6637	s.GroupIds = v
6638	return s
6639}
6640
6641// SetMaxResults sets the MaxResults field's value.
6642func (s *DescribeIpGroupsInput) SetMaxResults(v int64) *DescribeIpGroupsInput {
6643	s.MaxResults = &v
6644	return s
6645}
6646
6647// SetNextToken sets the NextToken field's value.
6648func (s *DescribeIpGroupsInput) SetNextToken(v string) *DescribeIpGroupsInput {
6649	s.NextToken = &v
6650	return s
6651}
6652
6653type DescribeIpGroupsOutput struct {
6654	_ struct{} `type:"structure"`
6655
6656	// The token to use to retrieve the next set of results, or null if no more
6657	// results are available.
6658	NextToken *string `min:"1" type:"string"`
6659
6660	// Information about the IP access control groups.
6661	Result []*IpGroup `type:"list"`
6662}
6663
6664// String returns the string representation
6665func (s DescribeIpGroupsOutput) String() string {
6666	return awsutil.Prettify(s)
6667}
6668
6669// GoString returns the string representation
6670func (s DescribeIpGroupsOutput) GoString() string {
6671	return s.String()
6672}
6673
6674// SetNextToken sets the NextToken field's value.
6675func (s *DescribeIpGroupsOutput) SetNextToken(v string) *DescribeIpGroupsOutput {
6676	s.NextToken = &v
6677	return s
6678}
6679
6680// SetResult sets the Result field's value.
6681func (s *DescribeIpGroupsOutput) SetResult(v []*IpGroup) *DescribeIpGroupsOutput {
6682	s.Result = v
6683	return s
6684}
6685
6686type DescribeTagsInput struct {
6687	_ struct{} `type:"structure"`
6688
6689	// The identifier of the WorkSpaces resource. The supported resource types are
6690	// WorkSpaces, registered directories, images, custom bundles, IP access control
6691	// groups, and connection aliases.
6692	//
6693	// ResourceId is a required field
6694	ResourceId *string `min:"1" type:"string" required:"true"`
6695}
6696
6697// String returns the string representation
6698func (s DescribeTagsInput) String() string {
6699	return awsutil.Prettify(s)
6700}
6701
6702// GoString returns the string representation
6703func (s DescribeTagsInput) GoString() string {
6704	return s.String()
6705}
6706
6707// Validate inspects the fields of the type to determine if they are valid.
6708func (s *DescribeTagsInput) Validate() error {
6709	invalidParams := request.ErrInvalidParams{Context: "DescribeTagsInput"}
6710	if s.ResourceId == nil {
6711		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6712	}
6713	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
6714		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
6715	}
6716
6717	if invalidParams.Len() > 0 {
6718		return invalidParams
6719	}
6720	return nil
6721}
6722
6723// SetResourceId sets the ResourceId field's value.
6724func (s *DescribeTagsInput) SetResourceId(v string) *DescribeTagsInput {
6725	s.ResourceId = &v
6726	return s
6727}
6728
6729type DescribeTagsOutput struct {
6730	_ struct{} `type:"structure"`
6731
6732	// The tags.
6733	TagList []*Tag `type:"list"`
6734}
6735
6736// String returns the string representation
6737func (s DescribeTagsOutput) String() string {
6738	return awsutil.Prettify(s)
6739}
6740
6741// GoString returns the string representation
6742func (s DescribeTagsOutput) GoString() string {
6743	return s.String()
6744}
6745
6746// SetTagList sets the TagList field's value.
6747func (s *DescribeTagsOutput) SetTagList(v []*Tag) *DescribeTagsOutput {
6748	s.TagList = v
6749	return s
6750}
6751
6752type DescribeWorkspaceBundlesInput struct {
6753	_ struct{} `type:"structure"`
6754
6755	// The identifiers of the bundles. You cannot combine this parameter with any
6756	// other filter.
6757	BundleIds []*string `min:"1" type:"list"`
6758
6759	// The token for the next set of results. (You received this token from a previous
6760	// call.)
6761	NextToken *string `min:"1" type:"string"`
6762
6763	// The owner of the bundles. You cannot combine this parameter with any other
6764	// filter.
6765	//
6766	// Specify AMAZON to describe the bundles provided by AWS or null to describe
6767	// the bundles that belong to your account.
6768	Owner *string `type:"string"`
6769}
6770
6771// String returns the string representation
6772func (s DescribeWorkspaceBundlesInput) String() string {
6773	return awsutil.Prettify(s)
6774}
6775
6776// GoString returns the string representation
6777func (s DescribeWorkspaceBundlesInput) GoString() string {
6778	return s.String()
6779}
6780
6781// Validate inspects the fields of the type to determine if they are valid.
6782func (s *DescribeWorkspaceBundlesInput) Validate() error {
6783	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceBundlesInput"}
6784	if s.BundleIds != nil && len(s.BundleIds) < 1 {
6785		invalidParams.Add(request.NewErrParamMinLen("BundleIds", 1))
6786	}
6787	if s.NextToken != nil && len(*s.NextToken) < 1 {
6788		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6789	}
6790
6791	if invalidParams.Len() > 0 {
6792		return invalidParams
6793	}
6794	return nil
6795}
6796
6797// SetBundleIds sets the BundleIds field's value.
6798func (s *DescribeWorkspaceBundlesInput) SetBundleIds(v []*string) *DescribeWorkspaceBundlesInput {
6799	s.BundleIds = v
6800	return s
6801}
6802
6803// SetNextToken sets the NextToken field's value.
6804func (s *DescribeWorkspaceBundlesInput) SetNextToken(v string) *DescribeWorkspaceBundlesInput {
6805	s.NextToken = &v
6806	return s
6807}
6808
6809// SetOwner sets the Owner field's value.
6810func (s *DescribeWorkspaceBundlesInput) SetOwner(v string) *DescribeWorkspaceBundlesInput {
6811	s.Owner = &v
6812	return s
6813}
6814
6815type DescribeWorkspaceBundlesOutput struct {
6816	_ struct{} `type:"structure"`
6817
6818	// Information about the bundles.
6819	Bundles []*WorkspaceBundle `type:"list"`
6820
6821	// The token to use to retrieve the next set of results, or null if there are
6822	// no more results available. This token is valid for one day and must be used
6823	// within that time frame.
6824	NextToken *string `min:"1" type:"string"`
6825}
6826
6827// String returns the string representation
6828func (s DescribeWorkspaceBundlesOutput) String() string {
6829	return awsutil.Prettify(s)
6830}
6831
6832// GoString returns the string representation
6833func (s DescribeWorkspaceBundlesOutput) GoString() string {
6834	return s.String()
6835}
6836
6837// SetBundles sets the Bundles field's value.
6838func (s *DescribeWorkspaceBundlesOutput) SetBundles(v []*WorkspaceBundle) *DescribeWorkspaceBundlesOutput {
6839	s.Bundles = v
6840	return s
6841}
6842
6843// SetNextToken sets the NextToken field's value.
6844func (s *DescribeWorkspaceBundlesOutput) SetNextToken(v string) *DescribeWorkspaceBundlesOutput {
6845	s.NextToken = &v
6846	return s
6847}
6848
6849type DescribeWorkspaceDirectoriesInput struct {
6850	_ struct{} `type:"structure"`
6851
6852	// The identifiers of the directories. If the value is null, all directories
6853	// are retrieved.
6854	DirectoryIds []*string `min:"1" type:"list"`
6855
6856	// The maximum number of directories to return.
6857	Limit *int64 `min:"1" type:"integer"`
6858
6859	// If you received a NextToken from a previous call that was paginated, provide
6860	// this token to receive the next set of results.
6861	NextToken *string `min:"1" type:"string"`
6862}
6863
6864// String returns the string representation
6865func (s DescribeWorkspaceDirectoriesInput) String() string {
6866	return awsutil.Prettify(s)
6867}
6868
6869// GoString returns the string representation
6870func (s DescribeWorkspaceDirectoriesInput) GoString() string {
6871	return s.String()
6872}
6873
6874// Validate inspects the fields of the type to determine if they are valid.
6875func (s *DescribeWorkspaceDirectoriesInput) Validate() error {
6876	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceDirectoriesInput"}
6877	if s.DirectoryIds != nil && len(s.DirectoryIds) < 1 {
6878		invalidParams.Add(request.NewErrParamMinLen("DirectoryIds", 1))
6879	}
6880	if s.Limit != nil && *s.Limit < 1 {
6881		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
6882	}
6883	if s.NextToken != nil && len(*s.NextToken) < 1 {
6884		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6885	}
6886
6887	if invalidParams.Len() > 0 {
6888		return invalidParams
6889	}
6890	return nil
6891}
6892
6893// SetDirectoryIds sets the DirectoryIds field's value.
6894func (s *DescribeWorkspaceDirectoriesInput) SetDirectoryIds(v []*string) *DescribeWorkspaceDirectoriesInput {
6895	s.DirectoryIds = v
6896	return s
6897}
6898
6899// SetLimit sets the Limit field's value.
6900func (s *DescribeWorkspaceDirectoriesInput) SetLimit(v int64) *DescribeWorkspaceDirectoriesInput {
6901	s.Limit = &v
6902	return s
6903}
6904
6905// SetNextToken sets the NextToken field's value.
6906func (s *DescribeWorkspaceDirectoriesInput) SetNextToken(v string) *DescribeWorkspaceDirectoriesInput {
6907	s.NextToken = &v
6908	return s
6909}
6910
6911type DescribeWorkspaceDirectoriesOutput struct {
6912	_ struct{} `type:"structure"`
6913
6914	// Information about the directories.
6915	Directories []*WorkspaceDirectory `type:"list"`
6916
6917	// The token to use to retrieve the next set of results, or null if no more
6918	// results are available.
6919	NextToken *string `min:"1" type:"string"`
6920}
6921
6922// String returns the string representation
6923func (s DescribeWorkspaceDirectoriesOutput) String() string {
6924	return awsutil.Prettify(s)
6925}
6926
6927// GoString returns the string representation
6928func (s DescribeWorkspaceDirectoriesOutput) GoString() string {
6929	return s.String()
6930}
6931
6932// SetDirectories sets the Directories field's value.
6933func (s *DescribeWorkspaceDirectoriesOutput) SetDirectories(v []*WorkspaceDirectory) *DescribeWorkspaceDirectoriesOutput {
6934	s.Directories = v
6935	return s
6936}
6937
6938// SetNextToken sets the NextToken field's value.
6939func (s *DescribeWorkspaceDirectoriesOutput) SetNextToken(v string) *DescribeWorkspaceDirectoriesOutput {
6940	s.NextToken = &v
6941	return s
6942}
6943
6944type DescribeWorkspaceImagePermissionsInput struct {
6945	_ struct{} `type:"structure"`
6946
6947	// The identifier of the image.
6948	//
6949	// ImageId is a required field
6950	ImageId *string `type:"string" required:"true"`
6951
6952	// The maximum number of items to return.
6953	MaxResults *int64 `min:"1" type:"integer"`
6954
6955	// If you received a NextToken from a previous call that was paginated, provide
6956	// this token to receive the next set of results.
6957	NextToken *string `min:"1" type:"string"`
6958}
6959
6960// String returns the string representation
6961func (s DescribeWorkspaceImagePermissionsInput) String() string {
6962	return awsutil.Prettify(s)
6963}
6964
6965// GoString returns the string representation
6966func (s DescribeWorkspaceImagePermissionsInput) GoString() string {
6967	return s.String()
6968}
6969
6970// Validate inspects the fields of the type to determine if they are valid.
6971func (s *DescribeWorkspaceImagePermissionsInput) Validate() error {
6972	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceImagePermissionsInput"}
6973	if s.ImageId == nil {
6974		invalidParams.Add(request.NewErrParamRequired("ImageId"))
6975	}
6976	if s.MaxResults != nil && *s.MaxResults < 1 {
6977		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6978	}
6979	if s.NextToken != nil && len(*s.NextToken) < 1 {
6980		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6981	}
6982
6983	if invalidParams.Len() > 0 {
6984		return invalidParams
6985	}
6986	return nil
6987}
6988
6989// SetImageId sets the ImageId field's value.
6990func (s *DescribeWorkspaceImagePermissionsInput) SetImageId(v string) *DescribeWorkspaceImagePermissionsInput {
6991	s.ImageId = &v
6992	return s
6993}
6994
6995// SetMaxResults sets the MaxResults field's value.
6996func (s *DescribeWorkspaceImagePermissionsInput) SetMaxResults(v int64) *DescribeWorkspaceImagePermissionsInput {
6997	s.MaxResults = &v
6998	return s
6999}
7000
7001// SetNextToken sets the NextToken field's value.
7002func (s *DescribeWorkspaceImagePermissionsInput) SetNextToken(v string) *DescribeWorkspaceImagePermissionsInput {
7003	s.NextToken = &v
7004	return s
7005}
7006
7007type DescribeWorkspaceImagePermissionsOutput struct {
7008	_ struct{} `type:"structure"`
7009
7010	// The identifier of the image.
7011	ImageId *string `type:"string"`
7012
7013	// The identifiers of the AWS accounts that the image has been shared with.
7014	ImagePermissions []*ImagePermission `type:"list"`
7015
7016	// The token to use to retrieve the next set of results, or null if no more
7017	// results are available.
7018	NextToken *string `min:"1" type:"string"`
7019}
7020
7021// String returns the string representation
7022func (s DescribeWorkspaceImagePermissionsOutput) String() string {
7023	return awsutil.Prettify(s)
7024}
7025
7026// GoString returns the string representation
7027func (s DescribeWorkspaceImagePermissionsOutput) GoString() string {
7028	return s.String()
7029}
7030
7031// SetImageId sets the ImageId field's value.
7032func (s *DescribeWorkspaceImagePermissionsOutput) SetImageId(v string) *DescribeWorkspaceImagePermissionsOutput {
7033	s.ImageId = &v
7034	return s
7035}
7036
7037// SetImagePermissions sets the ImagePermissions field's value.
7038func (s *DescribeWorkspaceImagePermissionsOutput) SetImagePermissions(v []*ImagePermission) *DescribeWorkspaceImagePermissionsOutput {
7039	s.ImagePermissions = v
7040	return s
7041}
7042
7043// SetNextToken sets the NextToken field's value.
7044func (s *DescribeWorkspaceImagePermissionsOutput) SetNextToken(v string) *DescribeWorkspaceImagePermissionsOutput {
7045	s.NextToken = &v
7046	return s
7047}
7048
7049type DescribeWorkspaceImagesInput struct {
7050	_ struct{} `type:"structure"`
7051
7052	// The identifier of the image.
7053	ImageIds []*string `min:"1" type:"list"`
7054
7055	// The type (owned or shared) of the image.
7056	ImageType *string `type:"string" enum:"ImageType"`
7057
7058	// The maximum number of items to return.
7059	MaxResults *int64 `min:"1" type:"integer"`
7060
7061	// If you received a NextToken from a previous call that was paginated, provide
7062	// this token to receive the next set of results.
7063	NextToken *string `min:"1" type:"string"`
7064}
7065
7066// String returns the string representation
7067func (s DescribeWorkspaceImagesInput) String() string {
7068	return awsutil.Prettify(s)
7069}
7070
7071// GoString returns the string representation
7072func (s DescribeWorkspaceImagesInput) GoString() string {
7073	return s.String()
7074}
7075
7076// Validate inspects the fields of the type to determine if they are valid.
7077func (s *DescribeWorkspaceImagesInput) Validate() error {
7078	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceImagesInput"}
7079	if s.ImageIds != nil && len(s.ImageIds) < 1 {
7080		invalidParams.Add(request.NewErrParamMinLen("ImageIds", 1))
7081	}
7082	if s.MaxResults != nil && *s.MaxResults < 1 {
7083		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7084	}
7085	if s.NextToken != nil && len(*s.NextToken) < 1 {
7086		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7087	}
7088
7089	if invalidParams.Len() > 0 {
7090		return invalidParams
7091	}
7092	return nil
7093}
7094
7095// SetImageIds sets the ImageIds field's value.
7096func (s *DescribeWorkspaceImagesInput) SetImageIds(v []*string) *DescribeWorkspaceImagesInput {
7097	s.ImageIds = v
7098	return s
7099}
7100
7101// SetImageType sets the ImageType field's value.
7102func (s *DescribeWorkspaceImagesInput) SetImageType(v string) *DescribeWorkspaceImagesInput {
7103	s.ImageType = &v
7104	return s
7105}
7106
7107// SetMaxResults sets the MaxResults field's value.
7108func (s *DescribeWorkspaceImagesInput) SetMaxResults(v int64) *DescribeWorkspaceImagesInput {
7109	s.MaxResults = &v
7110	return s
7111}
7112
7113// SetNextToken sets the NextToken field's value.
7114func (s *DescribeWorkspaceImagesInput) SetNextToken(v string) *DescribeWorkspaceImagesInput {
7115	s.NextToken = &v
7116	return s
7117}
7118
7119type DescribeWorkspaceImagesOutput struct {
7120	_ struct{} `type:"structure"`
7121
7122	// Information about the images.
7123	Images []*WorkspaceImage `type:"list"`
7124
7125	// The token to use to retrieve the next set of results, or null if no more
7126	// results are available.
7127	NextToken *string `min:"1" type:"string"`
7128}
7129
7130// String returns the string representation
7131func (s DescribeWorkspaceImagesOutput) String() string {
7132	return awsutil.Prettify(s)
7133}
7134
7135// GoString returns the string representation
7136func (s DescribeWorkspaceImagesOutput) GoString() string {
7137	return s.String()
7138}
7139
7140// SetImages sets the Images field's value.
7141func (s *DescribeWorkspaceImagesOutput) SetImages(v []*WorkspaceImage) *DescribeWorkspaceImagesOutput {
7142	s.Images = v
7143	return s
7144}
7145
7146// SetNextToken sets the NextToken field's value.
7147func (s *DescribeWorkspaceImagesOutput) SetNextToken(v string) *DescribeWorkspaceImagesOutput {
7148	s.NextToken = &v
7149	return s
7150}
7151
7152type DescribeWorkspaceSnapshotsInput struct {
7153	_ struct{} `type:"structure"`
7154
7155	// The identifier of the WorkSpace.
7156	//
7157	// WorkspaceId is a required field
7158	WorkspaceId *string `type:"string" required:"true"`
7159}
7160
7161// String returns the string representation
7162func (s DescribeWorkspaceSnapshotsInput) String() string {
7163	return awsutil.Prettify(s)
7164}
7165
7166// GoString returns the string representation
7167func (s DescribeWorkspaceSnapshotsInput) GoString() string {
7168	return s.String()
7169}
7170
7171// Validate inspects the fields of the type to determine if they are valid.
7172func (s *DescribeWorkspaceSnapshotsInput) Validate() error {
7173	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceSnapshotsInput"}
7174	if s.WorkspaceId == nil {
7175		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
7176	}
7177
7178	if invalidParams.Len() > 0 {
7179		return invalidParams
7180	}
7181	return nil
7182}
7183
7184// SetWorkspaceId sets the WorkspaceId field's value.
7185func (s *DescribeWorkspaceSnapshotsInput) SetWorkspaceId(v string) *DescribeWorkspaceSnapshotsInput {
7186	s.WorkspaceId = &v
7187	return s
7188}
7189
7190type DescribeWorkspaceSnapshotsOutput struct {
7191	_ struct{} `type:"structure"`
7192
7193	// Information about the snapshots that can be used to rebuild a WorkSpace.
7194	// These snapshots include the user volume.
7195	RebuildSnapshots []*Snapshot `type:"list"`
7196
7197	// Information about the snapshots that can be used to restore a WorkSpace.
7198	// These snapshots include both the root volume and the user volume.
7199	RestoreSnapshots []*Snapshot `type:"list"`
7200}
7201
7202// String returns the string representation
7203func (s DescribeWorkspaceSnapshotsOutput) String() string {
7204	return awsutil.Prettify(s)
7205}
7206
7207// GoString returns the string representation
7208func (s DescribeWorkspaceSnapshotsOutput) GoString() string {
7209	return s.String()
7210}
7211
7212// SetRebuildSnapshots sets the RebuildSnapshots field's value.
7213func (s *DescribeWorkspaceSnapshotsOutput) SetRebuildSnapshots(v []*Snapshot) *DescribeWorkspaceSnapshotsOutput {
7214	s.RebuildSnapshots = v
7215	return s
7216}
7217
7218// SetRestoreSnapshots sets the RestoreSnapshots field's value.
7219func (s *DescribeWorkspaceSnapshotsOutput) SetRestoreSnapshots(v []*Snapshot) *DescribeWorkspaceSnapshotsOutput {
7220	s.RestoreSnapshots = v
7221	return s
7222}
7223
7224type DescribeWorkspacesConnectionStatusInput struct {
7225	_ struct{} `type:"structure"`
7226
7227	// If you received a NextToken from a previous call that was paginated, provide
7228	// this token to receive the next set of results.
7229	NextToken *string `min:"1" type:"string"`
7230
7231	// The identifiers of the WorkSpaces. You can specify up to 25 WorkSpaces.
7232	WorkspaceIds []*string `min:"1" type:"list"`
7233}
7234
7235// String returns the string representation
7236func (s DescribeWorkspacesConnectionStatusInput) String() string {
7237	return awsutil.Prettify(s)
7238}
7239
7240// GoString returns the string representation
7241func (s DescribeWorkspacesConnectionStatusInput) GoString() string {
7242	return s.String()
7243}
7244
7245// Validate inspects the fields of the type to determine if they are valid.
7246func (s *DescribeWorkspacesConnectionStatusInput) Validate() error {
7247	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspacesConnectionStatusInput"}
7248	if s.NextToken != nil && len(*s.NextToken) < 1 {
7249		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7250	}
7251	if s.WorkspaceIds != nil && len(s.WorkspaceIds) < 1 {
7252		invalidParams.Add(request.NewErrParamMinLen("WorkspaceIds", 1))
7253	}
7254
7255	if invalidParams.Len() > 0 {
7256		return invalidParams
7257	}
7258	return nil
7259}
7260
7261// SetNextToken sets the NextToken field's value.
7262func (s *DescribeWorkspacesConnectionStatusInput) SetNextToken(v string) *DescribeWorkspacesConnectionStatusInput {
7263	s.NextToken = &v
7264	return s
7265}
7266
7267// SetWorkspaceIds sets the WorkspaceIds field's value.
7268func (s *DescribeWorkspacesConnectionStatusInput) SetWorkspaceIds(v []*string) *DescribeWorkspacesConnectionStatusInput {
7269	s.WorkspaceIds = v
7270	return s
7271}
7272
7273type DescribeWorkspacesConnectionStatusOutput struct {
7274	_ struct{} `type:"structure"`
7275
7276	// The token to use to retrieve the next set of results, or null if no more
7277	// results are available.
7278	NextToken *string `min:"1" type:"string"`
7279
7280	// Information about the connection status of the WorkSpace.
7281	WorkspacesConnectionStatus []*WorkspaceConnectionStatus `type:"list"`
7282}
7283
7284// String returns the string representation
7285func (s DescribeWorkspacesConnectionStatusOutput) String() string {
7286	return awsutil.Prettify(s)
7287}
7288
7289// GoString returns the string representation
7290func (s DescribeWorkspacesConnectionStatusOutput) GoString() string {
7291	return s.String()
7292}
7293
7294// SetNextToken sets the NextToken field's value.
7295func (s *DescribeWorkspacesConnectionStatusOutput) SetNextToken(v string) *DescribeWorkspacesConnectionStatusOutput {
7296	s.NextToken = &v
7297	return s
7298}
7299
7300// SetWorkspacesConnectionStatus sets the WorkspacesConnectionStatus field's value.
7301func (s *DescribeWorkspacesConnectionStatusOutput) SetWorkspacesConnectionStatus(v []*WorkspaceConnectionStatus) *DescribeWorkspacesConnectionStatusOutput {
7302	s.WorkspacesConnectionStatus = v
7303	return s
7304}
7305
7306type DescribeWorkspacesInput struct {
7307	_ struct{} `type:"structure"`
7308
7309	// The identifier of the bundle. All WorkSpaces that are created from this bundle
7310	// are retrieved. You cannot combine this parameter with any other filter.
7311	BundleId *string `type:"string"`
7312
7313	// The identifier of the directory. In addition, you can optionally specify
7314	// a specific directory user (see UserName). You cannot combine this parameter
7315	// with any other filter.
7316	DirectoryId *string `min:"10" type:"string"`
7317
7318	// The maximum number of items to return.
7319	Limit *int64 `min:"1" type:"integer"`
7320
7321	// If you received a NextToken from a previous call that was paginated, provide
7322	// this token to receive the next set of results.
7323	NextToken *string `min:"1" type:"string"`
7324
7325	// The name of the directory user. You must specify this parameter with DirectoryId.
7326	UserName *string `min:"1" type:"string"`
7327
7328	// The identifiers of the WorkSpaces. You cannot combine this parameter with
7329	// any other filter.
7330	//
7331	// Because the CreateWorkspaces operation is asynchronous, the identifier it
7332	// returns is not immediately available. If you immediately call DescribeWorkspaces
7333	// with this identifier, no information is returned.
7334	WorkspaceIds []*string `min:"1" type:"list"`
7335}
7336
7337// String returns the string representation
7338func (s DescribeWorkspacesInput) String() string {
7339	return awsutil.Prettify(s)
7340}
7341
7342// GoString returns the string representation
7343func (s DescribeWorkspacesInput) GoString() string {
7344	return s.String()
7345}
7346
7347// Validate inspects the fields of the type to determine if they are valid.
7348func (s *DescribeWorkspacesInput) Validate() error {
7349	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspacesInput"}
7350	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
7351		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
7352	}
7353	if s.Limit != nil && *s.Limit < 1 {
7354		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
7355	}
7356	if s.NextToken != nil && len(*s.NextToken) < 1 {
7357		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7358	}
7359	if s.UserName != nil && len(*s.UserName) < 1 {
7360		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
7361	}
7362	if s.WorkspaceIds != nil && len(s.WorkspaceIds) < 1 {
7363		invalidParams.Add(request.NewErrParamMinLen("WorkspaceIds", 1))
7364	}
7365
7366	if invalidParams.Len() > 0 {
7367		return invalidParams
7368	}
7369	return nil
7370}
7371
7372// SetBundleId sets the BundleId field's value.
7373func (s *DescribeWorkspacesInput) SetBundleId(v string) *DescribeWorkspacesInput {
7374	s.BundleId = &v
7375	return s
7376}
7377
7378// SetDirectoryId sets the DirectoryId field's value.
7379func (s *DescribeWorkspacesInput) SetDirectoryId(v string) *DescribeWorkspacesInput {
7380	s.DirectoryId = &v
7381	return s
7382}
7383
7384// SetLimit sets the Limit field's value.
7385func (s *DescribeWorkspacesInput) SetLimit(v int64) *DescribeWorkspacesInput {
7386	s.Limit = &v
7387	return s
7388}
7389
7390// SetNextToken sets the NextToken field's value.
7391func (s *DescribeWorkspacesInput) SetNextToken(v string) *DescribeWorkspacesInput {
7392	s.NextToken = &v
7393	return s
7394}
7395
7396// SetUserName sets the UserName field's value.
7397func (s *DescribeWorkspacesInput) SetUserName(v string) *DescribeWorkspacesInput {
7398	s.UserName = &v
7399	return s
7400}
7401
7402// SetWorkspaceIds sets the WorkspaceIds field's value.
7403func (s *DescribeWorkspacesInput) SetWorkspaceIds(v []*string) *DescribeWorkspacesInput {
7404	s.WorkspaceIds = v
7405	return s
7406}
7407
7408type DescribeWorkspacesOutput struct {
7409	_ struct{} `type:"structure"`
7410
7411	// The token to use to retrieve the next set of results, or null if no more
7412	// results are available.
7413	NextToken *string `min:"1" type:"string"`
7414
7415	// Information about the WorkSpaces.
7416	//
7417	// Because CreateWorkspaces is an asynchronous operation, some of the returned
7418	// information could be incomplete.
7419	Workspaces []*Workspace `type:"list"`
7420}
7421
7422// String returns the string representation
7423func (s DescribeWorkspacesOutput) String() string {
7424	return awsutil.Prettify(s)
7425}
7426
7427// GoString returns the string representation
7428func (s DescribeWorkspacesOutput) GoString() string {
7429	return s.String()
7430}
7431
7432// SetNextToken sets the NextToken field's value.
7433func (s *DescribeWorkspacesOutput) SetNextToken(v string) *DescribeWorkspacesOutput {
7434	s.NextToken = &v
7435	return s
7436}
7437
7438// SetWorkspaces sets the Workspaces field's value.
7439func (s *DescribeWorkspacesOutput) SetWorkspaces(v []*Workspace) *DescribeWorkspacesOutput {
7440	s.Workspaces = v
7441	return s
7442}
7443
7444type DisassociateConnectionAliasInput struct {
7445	_ struct{} `type:"structure"`
7446
7447	// The identifier of the connection alias to disassociate.
7448	//
7449	// AliasId is a required field
7450	AliasId *string `min:"13" type:"string" required:"true"`
7451}
7452
7453// String returns the string representation
7454func (s DisassociateConnectionAliasInput) String() string {
7455	return awsutil.Prettify(s)
7456}
7457
7458// GoString returns the string representation
7459func (s DisassociateConnectionAliasInput) GoString() string {
7460	return s.String()
7461}
7462
7463// Validate inspects the fields of the type to determine if they are valid.
7464func (s *DisassociateConnectionAliasInput) Validate() error {
7465	invalidParams := request.ErrInvalidParams{Context: "DisassociateConnectionAliasInput"}
7466	if s.AliasId == nil {
7467		invalidParams.Add(request.NewErrParamRequired("AliasId"))
7468	}
7469	if s.AliasId != nil && len(*s.AliasId) < 13 {
7470		invalidParams.Add(request.NewErrParamMinLen("AliasId", 13))
7471	}
7472
7473	if invalidParams.Len() > 0 {
7474		return invalidParams
7475	}
7476	return nil
7477}
7478
7479// SetAliasId sets the AliasId field's value.
7480func (s *DisassociateConnectionAliasInput) SetAliasId(v string) *DisassociateConnectionAliasInput {
7481	s.AliasId = &v
7482	return s
7483}
7484
7485type DisassociateConnectionAliasOutput struct {
7486	_ struct{} `type:"structure"`
7487}
7488
7489// String returns the string representation
7490func (s DisassociateConnectionAliasOutput) String() string {
7491	return awsutil.Prettify(s)
7492}
7493
7494// GoString returns the string representation
7495func (s DisassociateConnectionAliasOutput) GoString() string {
7496	return s.String()
7497}
7498
7499type DisassociateIpGroupsInput struct {
7500	_ struct{} `type:"structure"`
7501
7502	// The identifier of the directory.
7503	//
7504	// DirectoryId is a required field
7505	DirectoryId *string `min:"10" type:"string" required:"true"`
7506
7507	// The identifiers of one or more IP access control groups.
7508	//
7509	// GroupIds is a required field
7510	GroupIds []*string `type:"list" required:"true"`
7511}
7512
7513// String returns the string representation
7514func (s DisassociateIpGroupsInput) String() string {
7515	return awsutil.Prettify(s)
7516}
7517
7518// GoString returns the string representation
7519func (s DisassociateIpGroupsInput) GoString() string {
7520	return s.String()
7521}
7522
7523// Validate inspects the fields of the type to determine if they are valid.
7524func (s *DisassociateIpGroupsInput) Validate() error {
7525	invalidParams := request.ErrInvalidParams{Context: "DisassociateIpGroupsInput"}
7526	if s.DirectoryId == nil {
7527		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7528	}
7529	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
7530		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
7531	}
7532	if s.GroupIds == nil {
7533		invalidParams.Add(request.NewErrParamRequired("GroupIds"))
7534	}
7535
7536	if invalidParams.Len() > 0 {
7537		return invalidParams
7538	}
7539	return nil
7540}
7541
7542// SetDirectoryId sets the DirectoryId field's value.
7543func (s *DisassociateIpGroupsInput) SetDirectoryId(v string) *DisassociateIpGroupsInput {
7544	s.DirectoryId = &v
7545	return s
7546}
7547
7548// SetGroupIds sets the GroupIds field's value.
7549func (s *DisassociateIpGroupsInput) SetGroupIds(v []*string) *DisassociateIpGroupsInput {
7550	s.GroupIds = v
7551	return s
7552}
7553
7554type DisassociateIpGroupsOutput struct {
7555	_ struct{} `type:"structure"`
7556}
7557
7558// String returns the string representation
7559func (s DisassociateIpGroupsOutput) String() string {
7560	return awsutil.Prettify(s)
7561}
7562
7563// GoString returns the string representation
7564func (s DisassociateIpGroupsOutput) GoString() string {
7565	return s.String()
7566}
7567
7568// Describes a WorkSpace that cannot be created.
7569type FailedCreateWorkspaceRequest struct {
7570	_ struct{} `type:"structure"`
7571
7572	// The error code that is returned if the WorkSpace cannot be created.
7573	ErrorCode *string `type:"string"`
7574
7575	// The text of the error message that is returned if the WorkSpace cannot be
7576	// created.
7577	ErrorMessage *string `type:"string"`
7578
7579	// Information about the WorkSpace.
7580	WorkspaceRequest *WorkspaceRequest `type:"structure"`
7581}
7582
7583// String returns the string representation
7584func (s FailedCreateWorkspaceRequest) String() string {
7585	return awsutil.Prettify(s)
7586}
7587
7588// GoString returns the string representation
7589func (s FailedCreateWorkspaceRequest) GoString() string {
7590	return s.String()
7591}
7592
7593// SetErrorCode sets the ErrorCode field's value.
7594func (s *FailedCreateWorkspaceRequest) SetErrorCode(v string) *FailedCreateWorkspaceRequest {
7595	s.ErrorCode = &v
7596	return s
7597}
7598
7599// SetErrorMessage sets the ErrorMessage field's value.
7600func (s *FailedCreateWorkspaceRequest) SetErrorMessage(v string) *FailedCreateWorkspaceRequest {
7601	s.ErrorMessage = &v
7602	return s
7603}
7604
7605// SetWorkspaceRequest sets the WorkspaceRequest field's value.
7606func (s *FailedCreateWorkspaceRequest) SetWorkspaceRequest(v *WorkspaceRequest) *FailedCreateWorkspaceRequest {
7607	s.WorkspaceRequest = v
7608	return s
7609}
7610
7611// Describes a WorkSpace that could not be rebooted. (RebootWorkspaces), rebuilt
7612// (RebuildWorkspaces), restored (RestoreWorkspace), terminated (TerminateWorkspaces),
7613// started (StartWorkspaces), or stopped (StopWorkspaces).
7614type FailedWorkspaceChangeRequest struct {
7615	_ struct{} `type:"structure"`
7616
7617	// The error code that is returned if the WorkSpace cannot be rebooted.
7618	ErrorCode *string `type:"string"`
7619
7620	// The text of the error message that is returned if the WorkSpace cannot be
7621	// rebooted.
7622	ErrorMessage *string `type:"string"`
7623
7624	// The identifier of the WorkSpace.
7625	WorkspaceId *string `type:"string"`
7626}
7627
7628// String returns the string representation
7629func (s FailedWorkspaceChangeRequest) String() string {
7630	return awsutil.Prettify(s)
7631}
7632
7633// GoString returns the string representation
7634func (s FailedWorkspaceChangeRequest) GoString() string {
7635	return s.String()
7636}
7637
7638// SetErrorCode sets the ErrorCode field's value.
7639func (s *FailedWorkspaceChangeRequest) SetErrorCode(v string) *FailedWorkspaceChangeRequest {
7640	s.ErrorCode = &v
7641	return s
7642}
7643
7644// SetErrorMessage sets the ErrorMessage field's value.
7645func (s *FailedWorkspaceChangeRequest) SetErrorMessage(v string) *FailedWorkspaceChangeRequest {
7646	s.ErrorMessage = &v
7647	return s
7648}
7649
7650// SetWorkspaceId sets the WorkspaceId field's value.
7651func (s *FailedWorkspaceChangeRequest) SetWorkspaceId(v string) *FailedWorkspaceChangeRequest {
7652	s.WorkspaceId = &v
7653	return s
7654}
7655
7656// Describes the AWS accounts that have been granted permission to use a shared
7657// image. For more information about sharing images, see Share or Unshare a
7658// Custom WorkSpaces Image (https://docs.aws.amazon.com/workspaces/latest/adminguide/share-custom-image.html).
7659type ImagePermission struct {
7660	_ struct{} `type:"structure"`
7661
7662	// The identifier of the AWS account that an image has been shared with.
7663	SharedAccountId *string `type:"string"`
7664}
7665
7666// String returns the string representation
7667func (s ImagePermission) String() string {
7668	return awsutil.Prettify(s)
7669}
7670
7671// GoString returns the string representation
7672func (s ImagePermission) GoString() string {
7673	return s.String()
7674}
7675
7676// SetSharedAccountId sets the SharedAccountId field's value.
7677func (s *ImagePermission) SetSharedAccountId(v string) *ImagePermission {
7678	s.SharedAccountId = &v
7679	return s
7680}
7681
7682type ImportWorkspaceImageInput struct {
7683	_ struct{} `type:"structure"`
7684
7685	// If specified, the version of Microsoft Office to subscribe to. Valid only
7686	// for Windows 10 BYOL images. For more information about subscribing to Office
7687	// for BYOL images, see Bring Your Own Windows Desktop Licenses (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
7688	//
7689	// Although this parameter is an array, only one item is allowed at this time.
7690	Applications []*string `min:"1" type:"list"`
7691
7692	// The identifier of the EC2 image.
7693	//
7694	// Ec2ImageId is a required field
7695	Ec2ImageId *string `type:"string" required:"true"`
7696
7697	// The description of the WorkSpace image.
7698	//
7699	// ImageDescription is a required field
7700	ImageDescription *string `min:"1" type:"string" required:"true"`
7701
7702	// The name of the WorkSpace image.
7703	//
7704	// ImageName is a required field
7705	ImageName *string `min:"1" type:"string" required:"true"`
7706
7707	// The ingestion process to be used when importing the image, depending on which
7708	// protocol you want to use for your BYOL Workspace image, either PCoIP or WorkSpaces
7709	// Streaming Protocol (WSP). To use WSP, specify a value that ends in _WSP.
7710	// To use PCoIP, specify a value that does not end in _WSP.
7711	//
7712	// For non-GPU-enabled bundles (bundles other than Graphics or GraphicsPro),
7713	// specify BYOL_REGULAR or BYOL_REGULAR_WSP, depending on the protocol.
7714	//
7715	// IngestionProcess is a required field
7716	IngestionProcess *string `type:"string" required:"true" enum:"WorkspaceImageIngestionProcess"`
7717
7718	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
7719	Tags []*Tag `type:"list"`
7720}
7721
7722// String returns the string representation
7723func (s ImportWorkspaceImageInput) String() string {
7724	return awsutil.Prettify(s)
7725}
7726
7727// GoString returns the string representation
7728func (s ImportWorkspaceImageInput) GoString() string {
7729	return s.String()
7730}
7731
7732// Validate inspects the fields of the type to determine if they are valid.
7733func (s *ImportWorkspaceImageInput) Validate() error {
7734	invalidParams := request.ErrInvalidParams{Context: "ImportWorkspaceImageInput"}
7735	if s.Applications != nil && len(s.Applications) < 1 {
7736		invalidParams.Add(request.NewErrParamMinLen("Applications", 1))
7737	}
7738	if s.Ec2ImageId == nil {
7739		invalidParams.Add(request.NewErrParamRequired("Ec2ImageId"))
7740	}
7741	if s.ImageDescription == nil {
7742		invalidParams.Add(request.NewErrParamRequired("ImageDescription"))
7743	}
7744	if s.ImageDescription != nil && len(*s.ImageDescription) < 1 {
7745		invalidParams.Add(request.NewErrParamMinLen("ImageDescription", 1))
7746	}
7747	if s.ImageName == nil {
7748		invalidParams.Add(request.NewErrParamRequired("ImageName"))
7749	}
7750	if s.ImageName != nil && len(*s.ImageName) < 1 {
7751		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
7752	}
7753	if s.IngestionProcess == nil {
7754		invalidParams.Add(request.NewErrParamRequired("IngestionProcess"))
7755	}
7756	if s.Tags != nil {
7757		for i, v := range s.Tags {
7758			if v == nil {
7759				continue
7760			}
7761			if err := v.Validate(); err != nil {
7762				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
7763			}
7764		}
7765	}
7766
7767	if invalidParams.Len() > 0 {
7768		return invalidParams
7769	}
7770	return nil
7771}
7772
7773// SetApplications sets the Applications field's value.
7774func (s *ImportWorkspaceImageInput) SetApplications(v []*string) *ImportWorkspaceImageInput {
7775	s.Applications = v
7776	return s
7777}
7778
7779// SetEc2ImageId sets the Ec2ImageId field's value.
7780func (s *ImportWorkspaceImageInput) SetEc2ImageId(v string) *ImportWorkspaceImageInput {
7781	s.Ec2ImageId = &v
7782	return s
7783}
7784
7785// SetImageDescription sets the ImageDescription field's value.
7786func (s *ImportWorkspaceImageInput) SetImageDescription(v string) *ImportWorkspaceImageInput {
7787	s.ImageDescription = &v
7788	return s
7789}
7790
7791// SetImageName sets the ImageName field's value.
7792func (s *ImportWorkspaceImageInput) SetImageName(v string) *ImportWorkspaceImageInput {
7793	s.ImageName = &v
7794	return s
7795}
7796
7797// SetIngestionProcess sets the IngestionProcess field's value.
7798func (s *ImportWorkspaceImageInput) SetIngestionProcess(v string) *ImportWorkspaceImageInput {
7799	s.IngestionProcess = &v
7800	return s
7801}
7802
7803// SetTags sets the Tags field's value.
7804func (s *ImportWorkspaceImageInput) SetTags(v []*Tag) *ImportWorkspaceImageInput {
7805	s.Tags = v
7806	return s
7807}
7808
7809type ImportWorkspaceImageOutput struct {
7810	_ struct{} `type:"structure"`
7811
7812	// The identifier of the WorkSpace image.
7813	ImageId *string `type:"string"`
7814}
7815
7816// String returns the string representation
7817func (s ImportWorkspaceImageOutput) String() string {
7818	return awsutil.Prettify(s)
7819}
7820
7821// GoString returns the string representation
7822func (s ImportWorkspaceImageOutput) GoString() string {
7823	return s.String()
7824}
7825
7826// SetImageId sets the ImageId field's value.
7827func (s *ImportWorkspaceImageOutput) SetImageId(v string) *ImportWorkspaceImageOutput {
7828	s.ImageId = &v
7829	return s
7830}
7831
7832// One or more parameter values are not valid.
7833type InvalidParameterValuesException struct {
7834	_            struct{}                  `type:"structure"`
7835	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7836
7837	// The exception error message.
7838	Message_ *string `locationName:"message" type:"string"`
7839}
7840
7841// String returns the string representation
7842func (s InvalidParameterValuesException) String() string {
7843	return awsutil.Prettify(s)
7844}
7845
7846// GoString returns the string representation
7847func (s InvalidParameterValuesException) GoString() string {
7848	return s.String()
7849}
7850
7851func newErrorInvalidParameterValuesException(v protocol.ResponseMetadata) error {
7852	return &InvalidParameterValuesException{
7853		RespMetadata: v,
7854	}
7855}
7856
7857// Code returns the exception type name.
7858func (s *InvalidParameterValuesException) Code() string {
7859	return "InvalidParameterValuesException"
7860}
7861
7862// Message returns the exception's message.
7863func (s *InvalidParameterValuesException) Message() string {
7864	if s.Message_ != nil {
7865		return *s.Message_
7866	}
7867	return ""
7868}
7869
7870// OrigErr always returns nil, satisfies awserr.Error interface.
7871func (s *InvalidParameterValuesException) OrigErr() error {
7872	return nil
7873}
7874
7875func (s *InvalidParameterValuesException) Error() string {
7876	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7877}
7878
7879// Status code returns the HTTP status code for the request's response error.
7880func (s *InvalidParameterValuesException) StatusCode() int {
7881	return s.RespMetadata.StatusCode
7882}
7883
7884// RequestID returns the service's response RequestID for request.
7885func (s *InvalidParameterValuesException) RequestID() string {
7886	return s.RespMetadata.RequestID
7887}
7888
7889// The state of the resource is not valid for this operation.
7890type InvalidResourceStateException struct {
7891	_            struct{}                  `type:"structure"`
7892	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
7893
7894	Message_ *string `locationName:"message" type:"string"`
7895}
7896
7897// String returns the string representation
7898func (s InvalidResourceStateException) String() string {
7899	return awsutil.Prettify(s)
7900}
7901
7902// GoString returns the string representation
7903func (s InvalidResourceStateException) GoString() string {
7904	return s.String()
7905}
7906
7907func newErrorInvalidResourceStateException(v protocol.ResponseMetadata) error {
7908	return &InvalidResourceStateException{
7909		RespMetadata: v,
7910	}
7911}
7912
7913// Code returns the exception type name.
7914func (s *InvalidResourceStateException) Code() string {
7915	return "InvalidResourceStateException"
7916}
7917
7918// Message returns the exception's message.
7919func (s *InvalidResourceStateException) Message() string {
7920	if s.Message_ != nil {
7921		return *s.Message_
7922	}
7923	return ""
7924}
7925
7926// OrigErr always returns nil, satisfies awserr.Error interface.
7927func (s *InvalidResourceStateException) OrigErr() error {
7928	return nil
7929}
7930
7931func (s *InvalidResourceStateException) Error() string {
7932	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
7933}
7934
7935// Status code returns the HTTP status code for the request's response error.
7936func (s *InvalidResourceStateException) StatusCode() int {
7937	return s.RespMetadata.StatusCode
7938}
7939
7940// RequestID returns the service's response RequestID for request.
7941func (s *InvalidResourceStateException) RequestID() string {
7942	return s.RespMetadata.RequestID
7943}
7944
7945// Describes an IP access control group.
7946type IpGroup struct {
7947	_ struct{} `type:"structure"`
7948
7949	// The description of the group.
7950	GroupDesc *string `locationName:"groupDesc" type:"string"`
7951
7952	// The identifier of the group.
7953	GroupId *string `locationName:"groupId" type:"string"`
7954
7955	// The name of the group.
7956	GroupName *string `locationName:"groupName" type:"string"`
7957
7958	// The rules.
7959	UserRules []*IpRuleItem `locationName:"userRules" type:"list"`
7960}
7961
7962// String returns the string representation
7963func (s IpGroup) String() string {
7964	return awsutil.Prettify(s)
7965}
7966
7967// GoString returns the string representation
7968func (s IpGroup) GoString() string {
7969	return s.String()
7970}
7971
7972// SetGroupDesc sets the GroupDesc field's value.
7973func (s *IpGroup) SetGroupDesc(v string) *IpGroup {
7974	s.GroupDesc = &v
7975	return s
7976}
7977
7978// SetGroupId sets the GroupId field's value.
7979func (s *IpGroup) SetGroupId(v string) *IpGroup {
7980	s.GroupId = &v
7981	return s
7982}
7983
7984// SetGroupName sets the GroupName field's value.
7985func (s *IpGroup) SetGroupName(v string) *IpGroup {
7986	s.GroupName = &v
7987	return s
7988}
7989
7990// SetUserRules sets the UserRules field's value.
7991func (s *IpGroup) SetUserRules(v []*IpRuleItem) *IpGroup {
7992	s.UserRules = v
7993	return s
7994}
7995
7996// Describes a rule for an IP access control group.
7997type IpRuleItem struct {
7998	_ struct{} `type:"structure"`
7999
8000	// The IP address range, in CIDR notation.
8001	IpRule *string `locationName:"ipRule" type:"string"`
8002
8003	// The description.
8004	RuleDesc *string `locationName:"ruleDesc" type:"string"`
8005}
8006
8007// String returns the string representation
8008func (s IpRuleItem) String() string {
8009	return awsutil.Prettify(s)
8010}
8011
8012// GoString returns the string representation
8013func (s IpRuleItem) GoString() string {
8014	return s.String()
8015}
8016
8017// SetIpRule sets the IpRule field's value.
8018func (s *IpRuleItem) SetIpRule(v string) *IpRuleItem {
8019	s.IpRule = &v
8020	return s
8021}
8022
8023// SetRuleDesc sets the RuleDesc field's value.
8024func (s *IpRuleItem) SetRuleDesc(v string) *IpRuleItem {
8025	s.RuleDesc = &v
8026	return s
8027}
8028
8029type ListAvailableManagementCidrRangesInput struct {
8030	_ struct{} `type:"structure"`
8031
8032	// The IP address range to search. Specify an IP address range that is compatible
8033	// with your network and in CIDR notation (that is, specify the range as an
8034	// IPv4 CIDR block).
8035	//
8036	// ManagementCidrRangeConstraint is a required field
8037	ManagementCidrRangeConstraint *string `type:"string" required:"true"`
8038
8039	// The maximum number of items to return.
8040	MaxResults *int64 `min:"1" type:"integer"`
8041
8042	// If you received a NextToken from a previous call that was paginated, provide
8043	// this token to receive the next set of results.
8044	NextToken *string `min:"1" type:"string"`
8045}
8046
8047// String returns the string representation
8048func (s ListAvailableManagementCidrRangesInput) String() string {
8049	return awsutil.Prettify(s)
8050}
8051
8052// GoString returns the string representation
8053func (s ListAvailableManagementCidrRangesInput) GoString() string {
8054	return s.String()
8055}
8056
8057// Validate inspects the fields of the type to determine if they are valid.
8058func (s *ListAvailableManagementCidrRangesInput) Validate() error {
8059	invalidParams := request.ErrInvalidParams{Context: "ListAvailableManagementCidrRangesInput"}
8060	if s.ManagementCidrRangeConstraint == nil {
8061		invalidParams.Add(request.NewErrParamRequired("ManagementCidrRangeConstraint"))
8062	}
8063	if s.MaxResults != nil && *s.MaxResults < 1 {
8064		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8065	}
8066	if s.NextToken != nil && len(*s.NextToken) < 1 {
8067		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8068	}
8069
8070	if invalidParams.Len() > 0 {
8071		return invalidParams
8072	}
8073	return nil
8074}
8075
8076// SetManagementCidrRangeConstraint sets the ManagementCidrRangeConstraint field's value.
8077func (s *ListAvailableManagementCidrRangesInput) SetManagementCidrRangeConstraint(v string) *ListAvailableManagementCidrRangesInput {
8078	s.ManagementCidrRangeConstraint = &v
8079	return s
8080}
8081
8082// SetMaxResults sets the MaxResults field's value.
8083func (s *ListAvailableManagementCidrRangesInput) SetMaxResults(v int64) *ListAvailableManagementCidrRangesInput {
8084	s.MaxResults = &v
8085	return s
8086}
8087
8088// SetNextToken sets the NextToken field's value.
8089func (s *ListAvailableManagementCidrRangesInput) SetNextToken(v string) *ListAvailableManagementCidrRangesInput {
8090	s.NextToken = &v
8091	return s
8092}
8093
8094type ListAvailableManagementCidrRangesOutput struct {
8095	_ struct{} `type:"structure"`
8096
8097	// The list of available IP address ranges, specified as IPv4 CIDR blocks.
8098	ManagementCidrRanges []*string `type:"list"`
8099
8100	// The token to use to retrieve the next set of results, or null if no more
8101	// results are available.
8102	NextToken *string `min:"1" type:"string"`
8103}
8104
8105// String returns the string representation
8106func (s ListAvailableManagementCidrRangesOutput) String() string {
8107	return awsutil.Prettify(s)
8108}
8109
8110// GoString returns the string representation
8111func (s ListAvailableManagementCidrRangesOutput) GoString() string {
8112	return s.String()
8113}
8114
8115// SetManagementCidrRanges sets the ManagementCidrRanges field's value.
8116func (s *ListAvailableManagementCidrRangesOutput) SetManagementCidrRanges(v []*string) *ListAvailableManagementCidrRangesOutput {
8117	s.ManagementCidrRanges = v
8118	return s
8119}
8120
8121// SetNextToken sets the NextToken field's value.
8122func (s *ListAvailableManagementCidrRangesOutput) SetNextToken(v string) *ListAvailableManagementCidrRangesOutput {
8123	s.NextToken = &v
8124	return s
8125}
8126
8127type MigrateWorkspaceInput struct {
8128	_ struct{} `type:"structure"`
8129
8130	// The identifier of the target bundle type to migrate the WorkSpace to.
8131	//
8132	// BundleId is a required field
8133	BundleId *string `type:"string" required:"true"`
8134
8135	// The identifier of the WorkSpace to migrate from.
8136	//
8137	// SourceWorkspaceId is a required field
8138	SourceWorkspaceId *string `type:"string" required:"true"`
8139}
8140
8141// String returns the string representation
8142func (s MigrateWorkspaceInput) String() string {
8143	return awsutil.Prettify(s)
8144}
8145
8146// GoString returns the string representation
8147func (s MigrateWorkspaceInput) GoString() string {
8148	return s.String()
8149}
8150
8151// Validate inspects the fields of the type to determine if they are valid.
8152func (s *MigrateWorkspaceInput) Validate() error {
8153	invalidParams := request.ErrInvalidParams{Context: "MigrateWorkspaceInput"}
8154	if s.BundleId == nil {
8155		invalidParams.Add(request.NewErrParamRequired("BundleId"))
8156	}
8157	if s.SourceWorkspaceId == nil {
8158		invalidParams.Add(request.NewErrParamRequired("SourceWorkspaceId"))
8159	}
8160
8161	if invalidParams.Len() > 0 {
8162		return invalidParams
8163	}
8164	return nil
8165}
8166
8167// SetBundleId sets the BundleId field's value.
8168func (s *MigrateWorkspaceInput) SetBundleId(v string) *MigrateWorkspaceInput {
8169	s.BundleId = &v
8170	return s
8171}
8172
8173// SetSourceWorkspaceId sets the SourceWorkspaceId field's value.
8174func (s *MigrateWorkspaceInput) SetSourceWorkspaceId(v string) *MigrateWorkspaceInput {
8175	s.SourceWorkspaceId = &v
8176	return s
8177}
8178
8179type MigrateWorkspaceOutput struct {
8180	_ struct{} `type:"structure"`
8181
8182	// The original identifier of the WorkSpace that is being migrated.
8183	SourceWorkspaceId *string `type:"string"`
8184
8185	// The new identifier of the WorkSpace that is being migrated. If the migration
8186	// does not succeed, the target WorkSpace ID will not be used, and the WorkSpace
8187	// will still have the original WorkSpace ID.
8188	TargetWorkspaceId *string `type:"string"`
8189}
8190
8191// String returns the string representation
8192func (s MigrateWorkspaceOutput) String() string {
8193	return awsutil.Prettify(s)
8194}
8195
8196// GoString returns the string representation
8197func (s MigrateWorkspaceOutput) GoString() string {
8198	return s.String()
8199}
8200
8201// SetSourceWorkspaceId sets the SourceWorkspaceId field's value.
8202func (s *MigrateWorkspaceOutput) SetSourceWorkspaceId(v string) *MigrateWorkspaceOutput {
8203	s.SourceWorkspaceId = &v
8204	return s
8205}
8206
8207// SetTargetWorkspaceId sets the TargetWorkspaceId field's value.
8208func (s *MigrateWorkspaceOutput) SetTargetWorkspaceId(v string) *MigrateWorkspaceOutput {
8209	s.TargetWorkspaceId = &v
8210	return s
8211}
8212
8213// Describes a WorkSpace modification.
8214type ModificationState struct {
8215	_ struct{} `type:"structure"`
8216
8217	// The resource.
8218	Resource *string `type:"string" enum:"ModificationResourceEnum"`
8219
8220	// The modification state.
8221	State *string `type:"string" enum:"ModificationStateEnum"`
8222}
8223
8224// String returns the string representation
8225func (s ModificationState) String() string {
8226	return awsutil.Prettify(s)
8227}
8228
8229// GoString returns the string representation
8230func (s ModificationState) GoString() string {
8231	return s.String()
8232}
8233
8234// SetResource sets the Resource field's value.
8235func (s *ModificationState) SetResource(v string) *ModificationState {
8236	s.Resource = &v
8237	return s
8238}
8239
8240// SetState sets the State field's value.
8241func (s *ModificationState) SetState(v string) *ModificationState {
8242	s.State = &v
8243	return s
8244}
8245
8246type ModifyAccountInput struct {
8247	_ struct{} `type:"structure"`
8248
8249	// The IP address range, specified as an IPv4 CIDR block, for the management
8250	// network interface. Specify an IP address range that is compatible with your
8251	// network and in CIDR notation (that is, specify the range as an IPv4 CIDR
8252	// block). The CIDR block size must be /16 (for example, 203.0.113.25/16). It
8253	// must also be specified as available by the ListAvailableManagementCidrRanges
8254	// operation.
8255	DedicatedTenancyManagementCidrRange *string `type:"string"`
8256
8257	// The status of BYOL.
8258	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportEnum"`
8259}
8260
8261// String returns the string representation
8262func (s ModifyAccountInput) String() string {
8263	return awsutil.Prettify(s)
8264}
8265
8266// GoString returns the string representation
8267func (s ModifyAccountInput) GoString() string {
8268	return s.String()
8269}
8270
8271// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
8272func (s *ModifyAccountInput) SetDedicatedTenancyManagementCidrRange(v string) *ModifyAccountInput {
8273	s.DedicatedTenancyManagementCidrRange = &v
8274	return s
8275}
8276
8277// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
8278func (s *ModifyAccountInput) SetDedicatedTenancySupport(v string) *ModifyAccountInput {
8279	s.DedicatedTenancySupport = &v
8280	return s
8281}
8282
8283type ModifyAccountOutput struct {
8284	_ struct{} `type:"structure"`
8285}
8286
8287// String returns the string representation
8288func (s ModifyAccountOutput) String() string {
8289	return awsutil.Prettify(s)
8290}
8291
8292// GoString returns the string representation
8293func (s ModifyAccountOutput) GoString() string {
8294	return s.String()
8295}
8296
8297type ModifyClientPropertiesInput struct {
8298	_ struct{} `type:"structure"`
8299
8300	// Information about the Amazon WorkSpaces client.
8301	//
8302	// ClientProperties is a required field
8303	ClientProperties *ClientProperties `type:"structure" required:"true"`
8304
8305	// The resource identifiers, in the form of directory IDs.
8306	//
8307	// ResourceId is a required field
8308	ResourceId *string `min:"1" type:"string" required:"true"`
8309}
8310
8311// String returns the string representation
8312func (s ModifyClientPropertiesInput) String() string {
8313	return awsutil.Prettify(s)
8314}
8315
8316// GoString returns the string representation
8317func (s ModifyClientPropertiesInput) GoString() string {
8318	return s.String()
8319}
8320
8321// Validate inspects the fields of the type to determine if they are valid.
8322func (s *ModifyClientPropertiesInput) Validate() error {
8323	invalidParams := request.ErrInvalidParams{Context: "ModifyClientPropertiesInput"}
8324	if s.ClientProperties == nil {
8325		invalidParams.Add(request.NewErrParamRequired("ClientProperties"))
8326	}
8327	if s.ResourceId == nil {
8328		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
8329	}
8330	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
8331		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
8332	}
8333
8334	if invalidParams.Len() > 0 {
8335		return invalidParams
8336	}
8337	return nil
8338}
8339
8340// SetClientProperties sets the ClientProperties field's value.
8341func (s *ModifyClientPropertiesInput) SetClientProperties(v *ClientProperties) *ModifyClientPropertiesInput {
8342	s.ClientProperties = v
8343	return s
8344}
8345
8346// SetResourceId sets the ResourceId field's value.
8347func (s *ModifyClientPropertiesInput) SetResourceId(v string) *ModifyClientPropertiesInput {
8348	s.ResourceId = &v
8349	return s
8350}
8351
8352type ModifyClientPropertiesOutput struct {
8353	_ struct{} `type:"structure"`
8354}
8355
8356// String returns the string representation
8357func (s ModifyClientPropertiesOutput) String() string {
8358	return awsutil.Prettify(s)
8359}
8360
8361// GoString returns the string representation
8362func (s ModifyClientPropertiesOutput) GoString() string {
8363	return s.String()
8364}
8365
8366type ModifySelfservicePermissionsInput struct {
8367	_ struct{} `type:"structure"`
8368
8369	// The identifier of the directory.
8370	//
8371	// ResourceId is a required field
8372	ResourceId *string `min:"10" type:"string" required:"true"`
8373
8374	// The permissions to enable or disable self-service capabilities.
8375	//
8376	// SelfservicePermissions is a required field
8377	SelfservicePermissions *SelfservicePermissions `type:"structure" required:"true"`
8378}
8379
8380// String returns the string representation
8381func (s ModifySelfservicePermissionsInput) String() string {
8382	return awsutil.Prettify(s)
8383}
8384
8385// GoString returns the string representation
8386func (s ModifySelfservicePermissionsInput) GoString() string {
8387	return s.String()
8388}
8389
8390// Validate inspects the fields of the type to determine if they are valid.
8391func (s *ModifySelfservicePermissionsInput) Validate() error {
8392	invalidParams := request.ErrInvalidParams{Context: "ModifySelfservicePermissionsInput"}
8393	if s.ResourceId == nil {
8394		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
8395	}
8396	if s.ResourceId != nil && len(*s.ResourceId) < 10 {
8397		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10))
8398	}
8399	if s.SelfservicePermissions == nil {
8400		invalidParams.Add(request.NewErrParamRequired("SelfservicePermissions"))
8401	}
8402
8403	if invalidParams.Len() > 0 {
8404		return invalidParams
8405	}
8406	return nil
8407}
8408
8409// SetResourceId sets the ResourceId field's value.
8410func (s *ModifySelfservicePermissionsInput) SetResourceId(v string) *ModifySelfservicePermissionsInput {
8411	s.ResourceId = &v
8412	return s
8413}
8414
8415// SetSelfservicePermissions sets the SelfservicePermissions field's value.
8416func (s *ModifySelfservicePermissionsInput) SetSelfservicePermissions(v *SelfservicePermissions) *ModifySelfservicePermissionsInput {
8417	s.SelfservicePermissions = v
8418	return s
8419}
8420
8421type ModifySelfservicePermissionsOutput struct {
8422	_ struct{} `type:"structure"`
8423}
8424
8425// String returns the string representation
8426func (s ModifySelfservicePermissionsOutput) String() string {
8427	return awsutil.Prettify(s)
8428}
8429
8430// GoString returns the string representation
8431func (s ModifySelfservicePermissionsOutput) GoString() string {
8432	return s.String()
8433}
8434
8435type ModifyWorkspaceAccessPropertiesInput struct {
8436	_ struct{} `type:"structure"`
8437
8438	// The identifier of the directory.
8439	//
8440	// ResourceId is a required field
8441	ResourceId *string `min:"10" type:"string" required:"true"`
8442
8443	// The device types and operating systems to enable or disable for access.
8444	//
8445	// WorkspaceAccessProperties is a required field
8446	WorkspaceAccessProperties *WorkspaceAccessProperties `type:"structure" required:"true"`
8447}
8448
8449// String returns the string representation
8450func (s ModifyWorkspaceAccessPropertiesInput) String() string {
8451	return awsutil.Prettify(s)
8452}
8453
8454// GoString returns the string representation
8455func (s ModifyWorkspaceAccessPropertiesInput) GoString() string {
8456	return s.String()
8457}
8458
8459// Validate inspects the fields of the type to determine if they are valid.
8460func (s *ModifyWorkspaceAccessPropertiesInput) Validate() error {
8461	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceAccessPropertiesInput"}
8462	if s.ResourceId == nil {
8463		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
8464	}
8465	if s.ResourceId != nil && len(*s.ResourceId) < 10 {
8466		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10))
8467	}
8468	if s.WorkspaceAccessProperties == nil {
8469		invalidParams.Add(request.NewErrParamRequired("WorkspaceAccessProperties"))
8470	}
8471
8472	if invalidParams.Len() > 0 {
8473		return invalidParams
8474	}
8475	return nil
8476}
8477
8478// SetResourceId sets the ResourceId field's value.
8479func (s *ModifyWorkspaceAccessPropertiesInput) SetResourceId(v string) *ModifyWorkspaceAccessPropertiesInput {
8480	s.ResourceId = &v
8481	return s
8482}
8483
8484// SetWorkspaceAccessProperties sets the WorkspaceAccessProperties field's value.
8485func (s *ModifyWorkspaceAccessPropertiesInput) SetWorkspaceAccessProperties(v *WorkspaceAccessProperties) *ModifyWorkspaceAccessPropertiesInput {
8486	s.WorkspaceAccessProperties = v
8487	return s
8488}
8489
8490type ModifyWorkspaceAccessPropertiesOutput struct {
8491	_ struct{} `type:"structure"`
8492}
8493
8494// String returns the string representation
8495func (s ModifyWorkspaceAccessPropertiesOutput) String() string {
8496	return awsutil.Prettify(s)
8497}
8498
8499// GoString returns the string representation
8500func (s ModifyWorkspaceAccessPropertiesOutput) GoString() string {
8501	return s.String()
8502}
8503
8504type ModifyWorkspaceCreationPropertiesInput struct {
8505	_ struct{} `type:"structure"`
8506
8507	// The identifier of the directory.
8508	//
8509	// ResourceId is a required field
8510	ResourceId *string `min:"10" type:"string" required:"true"`
8511
8512	// The default properties for creating WorkSpaces.
8513	//
8514	// WorkspaceCreationProperties is a required field
8515	WorkspaceCreationProperties *WorkspaceCreationProperties `type:"structure" required:"true"`
8516}
8517
8518// String returns the string representation
8519func (s ModifyWorkspaceCreationPropertiesInput) String() string {
8520	return awsutil.Prettify(s)
8521}
8522
8523// GoString returns the string representation
8524func (s ModifyWorkspaceCreationPropertiesInput) GoString() string {
8525	return s.String()
8526}
8527
8528// Validate inspects the fields of the type to determine if they are valid.
8529func (s *ModifyWorkspaceCreationPropertiesInput) Validate() error {
8530	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceCreationPropertiesInput"}
8531	if s.ResourceId == nil {
8532		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
8533	}
8534	if s.ResourceId != nil && len(*s.ResourceId) < 10 {
8535		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10))
8536	}
8537	if s.WorkspaceCreationProperties == nil {
8538		invalidParams.Add(request.NewErrParamRequired("WorkspaceCreationProperties"))
8539	}
8540	if s.WorkspaceCreationProperties != nil {
8541		if err := s.WorkspaceCreationProperties.Validate(); err != nil {
8542			invalidParams.AddNested("WorkspaceCreationProperties", err.(request.ErrInvalidParams))
8543		}
8544	}
8545
8546	if invalidParams.Len() > 0 {
8547		return invalidParams
8548	}
8549	return nil
8550}
8551
8552// SetResourceId sets the ResourceId field's value.
8553func (s *ModifyWorkspaceCreationPropertiesInput) SetResourceId(v string) *ModifyWorkspaceCreationPropertiesInput {
8554	s.ResourceId = &v
8555	return s
8556}
8557
8558// SetWorkspaceCreationProperties sets the WorkspaceCreationProperties field's value.
8559func (s *ModifyWorkspaceCreationPropertiesInput) SetWorkspaceCreationProperties(v *WorkspaceCreationProperties) *ModifyWorkspaceCreationPropertiesInput {
8560	s.WorkspaceCreationProperties = v
8561	return s
8562}
8563
8564type ModifyWorkspaceCreationPropertiesOutput struct {
8565	_ struct{} `type:"structure"`
8566}
8567
8568// String returns the string representation
8569func (s ModifyWorkspaceCreationPropertiesOutput) String() string {
8570	return awsutil.Prettify(s)
8571}
8572
8573// GoString returns the string representation
8574func (s ModifyWorkspaceCreationPropertiesOutput) GoString() string {
8575	return s.String()
8576}
8577
8578type ModifyWorkspacePropertiesInput struct {
8579	_ struct{} `type:"structure"`
8580
8581	// The identifier of the WorkSpace.
8582	//
8583	// WorkspaceId is a required field
8584	WorkspaceId *string `type:"string" required:"true"`
8585
8586	// The properties of the WorkSpace.
8587	//
8588	// WorkspaceProperties is a required field
8589	WorkspaceProperties *WorkspaceProperties `type:"structure" required:"true"`
8590}
8591
8592// String returns the string representation
8593func (s ModifyWorkspacePropertiesInput) String() string {
8594	return awsutil.Prettify(s)
8595}
8596
8597// GoString returns the string representation
8598func (s ModifyWorkspacePropertiesInput) GoString() string {
8599	return s.String()
8600}
8601
8602// Validate inspects the fields of the type to determine if they are valid.
8603func (s *ModifyWorkspacePropertiesInput) Validate() error {
8604	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspacePropertiesInput"}
8605	if s.WorkspaceId == nil {
8606		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
8607	}
8608	if s.WorkspaceProperties == nil {
8609		invalidParams.Add(request.NewErrParamRequired("WorkspaceProperties"))
8610	}
8611
8612	if invalidParams.Len() > 0 {
8613		return invalidParams
8614	}
8615	return nil
8616}
8617
8618// SetWorkspaceId sets the WorkspaceId field's value.
8619func (s *ModifyWorkspacePropertiesInput) SetWorkspaceId(v string) *ModifyWorkspacePropertiesInput {
8620	s.WorkspaceId = &v
8621	return s
8622}
8623
8624// SetWorkspaceProperties sets the WorkspaceProperties field's value.
8625func (s *ModifyWorkspacePropertiesInput) SetWorkspaceProperties(v *WorkspaceProperties) *ModifyWorkspacePropertiesInput {
8626	s.WorkspaceProperties = v
8627	return s
8628}
8629
8630type ModifyWorkspacePropertiesOutput struct {
8631	_ struct{} `type:"structure"`
8632}
8633
8634// String returns the string representation
8635func (s ModifyWorkspacePropertiesOutput) String() string {
8636	return awsutil.Prettify(s)
8637}
8638
8639// GoString returns the string representation
8640func (s ModifyWorkspacePropertiesOutput) GoString() string {
8641	return s.String()
8642}
8643
8644type ModifyWorkspaceStateInput struct {
8645	_ struct{} `type:"structure"`
8646
8647	// The identifier of the WorkSpace.
8648	//
8649	// WorkspaceId is a required field
8650	WorkspaceId *string `type:"string" required:"true"`
8651
8652	// The WorkSpace state.
8653	//
8654	// WorkspaceState is a required field
8655	WorkspaceState *string `type:"string" required:"true" enum:"TargetWorkspaceState"`
8656}
8657
8658// String returns the string representation
8659func (s ModifyWorkspaceStateInput) String() string {
8660	return awsutil.Prettify(s)
8661}
8662
8663// GoString returns the string representation
8664func (s ModifyWorkspaceStateInput) GoString() string {
8665	return s.String()
8666}
8667
8668// Validate inspects the fields of the type to determine if they are valid.
8669func (s *ModifyWorkspaceStateInput) Validate() error {
8670	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceStateInput"}
8671	if s.WorkspaceId == nil {
8672		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
8673	}
8674	if s.WorkspaceState == nil {
8675		invalidParams.Add(request.NewErrParamRequired("WorkspaceState"))
8676	}
8677
8678	if invalidParams.Len() > 0 {
8679		return invalidParams
8680	}
8681	return nil
8682}
8683
8684// SetWorkspaceId sets the WorkspaceId field's value.
8685func (s *ModifyWorkspaceStateInput) SetWorkspaceId(v string) *ModifyWorkspaceStateInput {
8686	s.WorkspaceId = &v
8687	return s
8688}
8689
8690// SetWorkspaceState sets the WorkspaceState field's value.
8691func (s *ModifyWorkspaceStateInput) SetWorkspaceState(v string) *ModifyWorkspaceStateInput {
8692	s.WorkspaceState = &v
8693	return s
8694}
8695
8696type ModifyWorkspaceStateOutput struct {
8697	_ struct{} `type:"structure"`
8698}
8699
8700// String returns the string representation
8701func (s ModifyWorkspaceStateOutput) String() string {
8702	return awsutil.Prettify(s)
8703}
8704
8705// GoString returns the string representation
8706func (s ModifyWorkspaceStateOutput) GoString() string {
8707	return s.String()
8708}
8709
8710// The operating system that the image is running.
8711type OperatingSystem struct {
8712	_ struct{} `type:"structure"`
8713
8714	// The operating system.
8715	Type *string `type:"string" enum:"OperatingSystemType"`
8716}
8717
8718// String returns the string representation
8719func (s OperatingSystem) String() string {
8720	return awsutil.Prettify(s)
8721}
8722
8723// GoString returns the string representation
8724func (s OperatingSystem) GoString() string {
8725	return s.String()
8726}
8727
8728// SetType sets the Type field's value.
8729func (s *OperatingSystem) SetType(v string) *OperatingSystem {
8730	s.Type = &v
8731	return s
8732}
8733
8734// The properties of this WorkSpace are currently being modified. Try again
8735// in a moment.
8736type OperationInProgressException struct {
8737	_            struct{}                  `type:"structure"`
8738	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8739
8740	Message_ *string `locationName:"message" type:"string"`
8741}
8742
8743// String returns the string representation
8744func (s OperationInProgressException) String() string {
8745	return awsutil.Prettify(s)
8746}
8747
8748// GoString returns the string representation
8749func (s OperationInProgressException) GoString() string {
8750	return s.String()
8751}
8752
8753func newErrorOperationInProgressException(v protocol.ResponseMetadata) error {
8754	return &OperationInProgressException{
8755		RespMetadata: v,
8756	}
8757}
8758
8759// Code returns the exception type name.
8760func (s *OperationInProgressException) Code() string {
8761	return "OperationInProgressException"
8762}
8763
8764// Message returns the exception's message.
8765func (s *OperationInProgressException) Message() string {
8766	if s.Message_ != nil {
8767		return *s.Message_
8768	}
8769	return ""
8770}
8771
8772// OrigErr always returns nil, satisfies awserr.Error interface.
8773func (s *OperationInProgressException) OrigErr() error {
8774	return nil
8775}
8776
8777func (s *OperationInProgressException) Error() string {
8778	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8779}
8780
8781// Status code returns the HTTP status code for the request's response error.
8782func (s *OperationInProgressException) StatusCode() int {
8783	return s.RespMetadata.StatusCode
8784}
8785
8786// RequestID returns the service's response RequestID for request.
8787func (s *OperationInProgressException) RequestID() string {
8788	return s.RespMetadata.RequestID
8789}
8790
8791// This operation is not supported.
8792type OperationNotSupportedException struct {
8793	_            struct{}                  `type:"structure"`
8794	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
8795
8796	Message_ *string `locationName:"message" type:"string"`
8797}
8798
8799// String returns the string representation
8800func (s OperationNotSupportedException) String() string {
8801	return awsutil.Prettify(s)
8802}
8803
8804// GoString returns the string representation
8805func (s OperationNotSupportedException) GoString() string {
8806	return s.String()
8807}
8808
8809func newErrorOperationNotSupportedException(v protocol.ResponseMetadata) error {
8810	return &OperationNotSupportedException{
8811		RespMetadata: v,
8812	}
8813}
8814
8815// Code returns the exception type name.
8816func (s *OperationNotSupportedException) Code() string {
8817	return "OperationNotSupportedException"
8818}
8819
8820// Message returns the exception's message.
8821func (s *OperationNotSupportedException) Message() string {
8822	if s.Message_ != nil {
8823		return *s.Message_
8824	}
8825	return ""
8826}
8827
8828// OrigErr always returns nil, satisfies awserr.Error interface.
8829func (s *OperationNotSupportedException) OrigErr() error {
8830	return nil
8831}
8832
8833func (s *OperationNotSupportedException) Error() string {
8834	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
8835}
8836
8837// Status code returns the HTTP status code for the request's response error.
8838func (s *OperationNotSupportedException) StatusCode() int {
8839	return s.RespMetadata.StatusCode
8840}
8841
8842// RequestID returns the service's response RequestID for request.
8843func (s *OperationNotSupportedException) RequestID() string {
8844	return s.RespMetadata.RequestID
8845}
8846
8847// Describes the information used to reboot a WorkSpace.
8848type RebootRequest struct {
8849	_ struct{} `type:"structure"`
8850
8851	// The identifier of the WorkSpace.
8852	//
8853	// WorkspaceId is a required field
8854	WorkspaceId *string `type:"string" required:"true"`
8855}
8856
8857// String returns the string representation
8858func (s RebootRequest) String() string {
8859	return awsutil.Prettify(s)
8860}
8861
8862// GoString returns the string representation
8863func (s RebootRequest) GoString() string {
8864	return s.String()
8865}
8866
8867// Validate inspects the fields of the type to determine if they are valid.
8868func (s *RebootRequest) Validate() error {
8869	invalidParams := request.ErrInvalidParams{Context: "RebootRequest"}
8870	if s.WorkspaceId == nil {
8871		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
8872	}
8873
8874	if invalidParams.Len() > 0 {
8875		return invalidParams
8876	}
8877	return nil
8878}
8879
8880// SetWorkspaceId sets the WorkspaceId field's value.
8881func (s *RebootRequest) SetWorkspaceId(v string) *RebootRequest {
8882	s.WorkspaceId = &v
8883	return s
8884}
8885
8886type RebootWorkspacesInput struct {
8887	_ struct{} `type:"structure"`
8888
8889	// The WorkSpaces to reboot. You can specify up to 25 WorkSpaces.
8890	//
8891	// RebootWorkspaceRequests is a required field
8892	RebootWorkspaceRequests []*RebootRequest `min:"1" type:"list" required:"true"`
8893}
8894
8895// String returns the string representation
8896func (s RebootWorkspacesInput) String() string {
8897	return awsutil.Prettify(s)
8898}
8899
8900// GoString returns the string representation
8901func (s RebootWorkspacesInput) GoString() string {
8902	return s.String()
8903}
8904
8905// Validate inspects the fields of the type to determine if they are valid.
8906func (s *RebootWorkspacesInput) Validate() error {
8907	invalidParams := request.ErrInvalidParams{Context: "RebootWorkspacesInput"}
8908	if s.RebootWorkspaceRequests == nil {
8909		invalidParams.Add(request.NewErrParamRequired("RebootWorkspaceRequests"))
8910	}
8911	if s.RebootWorkspaceRequests != nil && len(s.RebootWorkspaceRequests) < 1 {
8912		invalidParams.Add(request.NewErrParamMinLen("RebootWorkspaceRequests", 1))
8913	}
8914	if s.RebootWorkspaceRequests != nil {
8915		for i, v := range s.RebootWorkspaceRequests {
8916			if v == nil {
8917				continue
8918			}
8919			if err := v.Validate(); err != nil {
8920				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RebootWorkspaceRequests", i), err.(request.ErrInvalidParams))
8921			}
8922		}
8923	}
8924
8925	if invalidParams.Len() > 0 {
8926		return invalidParams
8927	}
8928	return nil
8929}
8930
8931// SetRebootWorkspaceRequests sets the RebootWorkspaceRequests field's value.
8932func (s *RebootWorkspacesInput) SetRebootWorkspaceRequests(v []*RebootRequest) *RebootWorkspacesInput {
8933	s.RebootWorkspaceRequests = v
8934	return s
8935}
8936
8937type RebootWorkspacesOutput struct {
8938	_ struct{} `type:"structure"`
8939
8940	// Information about the WorkSpaces that could not be rebooted.
8941	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
8942}
8943
8944// String returns the string representation
8945func (s RebootWorkspacesOutput) String() string {
8946	return awsutil.Prettify(s)
8947}
8948
8949// GoString returns the string representation
8950func (s RebootWorkspacesOutput) GoString() string {
8951	return s.String()
8952}
8953
8954// SetFailedRequests sets the FailedRequests field's value.
8955func (s *RebootWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *RebootWorkspacesOutput {
8956	s.FailedRequests = v
8957	return s
8958}
8959
8960// Describes the information used to rebuild a WorkSpace.
8961type RebuildRequest struct {
8962	_ struct{} `type:"structure"`
8963
8964	// The identifier of the WorkSpace.
8965	//
8966	// WorkspaceId is a required field
8967	WorkspaceId *string `type:"string" required:"true"`
8968}
8969
8970// String returns the string representation
8971func (s RebuildRequest) String() string {
8972	return awsutil.Prettify(s)
8973}
8974
8975// GoString returns the string representation
8976func (s RebuildRequest) GoString() string {
8977	return s.String()
8978}
8979
8980// Validate inspects the fields of the type to determine if they are valid.
8981func (s *RebuildRequest) Validate() error {
8982	invalidParams := request.ErrInvalidParams{Context: "RebuildRequest"}
8983	if s.WorkspaceId == nil {
8984		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
8985	}
8986
8987	if invalidParams.Len() > 0 {
8988		return invalidParams
8989	}
8990	return nil
8991}
8992
8993// SetWorkspaceId sets the WorkspaceId field's value.
8994func (s *RebuildRequest) SetWorkspaceId(v string) *RebuildRequest {
8995	s.WorkspaceId = &v
8996	return s
8997}
8998
8999type RebuildWorkspacesInput struct {
9000	_ struct{} `type:"structure"`
9001
9002	// The WorkSpace to rebuild. You can specify a single WorkSpace.
9003	//
9004	// RebuildWorkspaceRequests is a required field
9005	RebuildWorkspaceRequests []*RebuildRequest `min:"1" type:"list" required:"true"`
9006}
9007
9008// String returns the string representation
9009func (s RebuildWorkspacesInput) String() string {
9010	return awsutil.Prettify(s)
9011}
9012
9013// GoString returns the string representation
9014func (s RebuildWorkspacesInput) GoString() string {
9015	return s.String()
9016}
9017
9018// Validate inspects the fields of the type to determine if they are valid.
9019func (s *RebuildWorkspacesInput) Validate() error {
9020	invalidParams := request.ErrInvalidParams{Context: "RebuildWorkspacesInput"}
9021	if s.RebuildWorkspaceRequests == nil {
9022		invalidParams.Add(request.NewErrParamRequired("RebuildWorkspaceRequests"))
9023	}
9024	if s.RebuildWorkspaceRequests != nil && len(s.RebuildWorkspaceRequests) < 1 {
9025		invalidParams.Add(request.NewErrParamMinLen("RebuildWorkspaceRequests", 1))
9026	}
9027	if s.RebuildWorkspaceRequests != nil {
9028		for i, v := range s.RebuildWorkspaceRequests {
9029			if v == nil {
9030				continue
9031			}
9032			if err := v.Validate(); err != nil {
9033				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RebuildWorkspaceRequests", i), err.(request.ErrInvalidParams))
9034			}
9035		}
9036	}
9037
9038	if invalidParams.Len() > 0 {
9039		return invalidParams
9040	}
9041	return nil
9042}
9043
9044// SetRebuildWorkspaceRequests sets the RebuildWorkspaceRequests field's value.
9045func (s *RebuildWorkspacesInput) SetRebuildWorkspaceRequests(v []*RebuildRequest) *RebuildWorkspacesInput {
9046	s.RebuildWorkspaceRequests = v
9047	return s
9048}
9049
9050type RebuildWorkspacesOutput struct {
9051	_ struct{} `type:"structure"`
9052
9053	// Information about the WorkSpace that could not be rebuilt.
9054	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
9055}
9056
9057// String returns the string representation
9058func (s RebuildWorkspacesOutput) String() string {
9059	return awsutil.Prettify(s)
9060}
9061
9062// GoString returns the string representation
9063func (s RebuildWorkspacesOutput) GoString() string {
9064	return s.String()
9065}
9066
9067// SetFailedRequests sets the FailedRequests field's value.
9068func (s *RebuildWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *RebuildWorkspacesOutput {
9069	s.FailedRequests = v
9070	return s
9071}
9072
9073type RegisterWorkspaceDirectoryInput struct {
9074	_ struct{} `type:"structure"`
9075
9076	// The identifier of the directory. You cannot register a directory if it does
9077	// not have a status of Active. If the directory does not have a status of Active,
9078	// you will receive an InvalidResourceStateException error. If you have already
9079	// registered the maximum number of directories that you can register with Amazon
9080	// WorkSpaces, you will receive a ResourceLimitExceededException error. Deregister
9081	// directories that you are not using for WorkSpaces, and try again.
9082	//
9083	// DirectoryId is a required field
9084	DirectoryId *string `min:"10" type:"string" required:"true"`
9085
9086	// Indicates whether self-service capabilities are enabled or disabled.
9087	EnableSelfService *bool `type:"boolean"`
9088
9089	// Indicates whether Amazon WorkDocs is enabled or disabled. If you have enabled
9090	// this parameter and WorkDocs is not available in the Region, you will receive
9091	// an OperationNotSupportedException error. Set EnableWorkDocs to disabled,
9092	// and try again.
9093	//
9094	// EnableWorkDocs is a required field
9095	EnableWorkDocs *bool `type:"boolean" required:"true"`
9096
9097	// The identifiers of the subnets for your virtual private cloud (VPC). Make
9098	// sure that the subnets are in supported Availability Zones. The subnets must
9099	// also be in separate Availability Zones. If these conditions are not met,
9100	// you will receive an OperationNotSupportedException error.
9101	SubnetIds []*string `type:"list"`
9102
9103	// The tags associated with the directory.
9104	Tags []*Tag `type:"list"`
9105
9106	// Indicates whether your WorkSpace directory is dedicated or shared. To use
9107	// Bring Your Own License (BYOL) images, this value must be set to DEDICATED
9108	// and your AWS account must be enabled for BYOL. If your account has not been
9109	// enabled for BYOL, you will receive an InvalidParameterValuesException error.
9110	// For more information about BYOL images, see Bring Your Own Windows Desktop
9111	// Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
9112	Tenancy *string `type:"string" enum:"Tenancy"`
9113}
9114
9115// String returns the string representation
9116func (s RegisterWorkspaceDirectoryInput) String() string {
9117	return awsutil.Prettify(s)
9118}
9119
9120// GoString returns the string representation
9121func (s RegisterWorkspaceDirectoryInput) GoString() string {
9122	return s.String()
9123}
9124
9125// Validate inspects the fields of the type to determine if they are valid.
9126func (s *RegisterWorkspaceDirectoryInput) Validate() error {
9127	invalidParams := request.ErrInvalidParams{Context: "RegisterWorkspaceDirectoryInput"}
9128	if s.DirectoryId == nil {
9129		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
9130	}
9131	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
9132		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
9133	}
9134	if s.EnableWorkDocs == nil {
9135		invalidParams.Add(request.NewErrParamRequired("EnableWorkDocs"))
9136	}
9137	if s.Tags != nil {
9138		for i, v := range s.Tags {
9139			if v == nil {
9140				continue
9141			}
9142			if err := v.Validate(); err != nil {
9143				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9144			}
9145		}
9146	}
9147
9148	if invalidParams.Len() > 0 {
9149		return invalidParams
9150	}
9151	return nil
9152}
9153
9154// SetDirectoryId sets the DirectoryId field's value.
9155func (s *RegisterWorkspaceDirectoryInput) SetDirectoryId(v string) *RegisterWorkspaceDirectoryInput {
9156	s.DirectoryId = &v
9157	return s
9158}
9159
9160// SetEnableSelfService sets the EnableSelfService field's value.
9161func (s *RegisterWorkspaceDirectoryInput) SetEnableSelfService(v bool) *RegisterWorkspaceDirectoryInput {
9162	s.EnableSelfService = &v
9163	return s
9164}
9165
9166// SetEnableWorkDocs sets the EnableWorkDocs field's value.
9167func (s *RegisterWorkspaceDirectoryInput) SetEnableWorkDocs(v bool) *RegisterWorkspaceDirectoryInput {
9168	s.EnableWorkDocs = &v
9169	return s
9170}
9171
9172// SetSubnetIds sets the SubnetIds field's value.
9173func (s *RegisterWorkspaceDirectoryInput) SetSubnetIds(v []*string) *RegisterWorkspaceDirectoryInput {
9174	s.SubnetIds = v
9175	return s
9176}
9177
9178// SetTags sets the Tags field's value.
9179func (s *RegisterWorkspaceDirectoryInput) SetTags(v []*Tag) *RegisterWorkspaceDirectoryInput {
9180	s.Tags = v
9181	return s
9182}
9183
9184// SetTenancy sets the Tenancy field's value.
9185func (s *RegisterWorkspaceDirectoryInput) SetTenancy(v string) *RegisterWorkspaceDirectoryInput {
9186	s.Tenancy = &v
9187	return s
9188}
9189
9190type RegisterWorkspaceDirectoryOutput struct {
9191	_ struct{} `type:"structure"`
9192}
9193
9194// String returns the string representation
9195func (s RegisterWorkspaceDirectoryOutput) String() string {
9196	return awsutil.Prettify(s)
9197}
9198
9199// GoString returns the string representation
9200func (s RegisterWorkspaceDirectoryOutput) GoString() string {
9201	return s.String()
9202}
9203
9204// The specified resource already exists.
9205type ResourceAlreadyExistsException struct {
9206	_            struct{}                  `type:"structure"`
9207	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9208
9209	Message_ *string `locationName:"message" type:"string"`
9210}
9211
9212// String returns the string representation
9213func (s ResourceAlreadyExistsException) String() string {
9214	return awsutil.Prettify(s)
9215}
9216
9217// GoString returns the string representation
9218func (s ResourceAlreadyExistsException) GoString() string {
9219	return s.String()
9220}
9221
9222func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
9223	return &ResourceAlreadyExistsException{
9224		RespMetadata: v,
9225	}
9226}
9227
9228// Code returns the exception type name.
9229func (s *ResourceAlreadyExistsException) Code() string {
9230	return "ResourceAlreadyExistsException"
9231}
9232
9233// Message returns the exception's message.
9234func (s *ResourceAlreadyExistsException) Message() string {
9235	if s.Message_ != nil {
9236		return *s.Message_
9237	}
9238	return ""
9239}
9240
9241// OrigErr always returns nil, satisfies awserr.Error interface.
9242func (s *ResourceAlreadyExistsException) OrigErr() error {
9243	return nil
9244}
9245
9246func (s *ResourceAlreadyExistsException) Error() string {
9247	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9248}
9249
9250// Status code returns the HTTP status code for the request's response error.
9251func (s *ResourceAlreadyExistsException) StatusCode() int {
9252	return s.RespMetadata.StatusCode
9253}
9254
9255// RequestID returns the service's response RequestID for request.
9256func (s *ResourceAlreadyExistsException) RequestID() string {
9257	return s.RespMetadata.RequestID
9258}
9259
9260// The resource is associated with a directory.
9261type ResourceAssociatedException struct {
9262	_            struct{}                  `type:"structure"`
9263	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9264
9265	Message_ *string `locationName:"message" type:"string"`
9266}
9267
9268// String returns the string representation
9269func (s ResourceAssociatedException) String() string {
9270	return awsutil.Prettify(s)
9271}
9272
9273// GoString returns the string representation
9274func (s ResourceAssociatedException) GoString() string {
9275	return s.String()
9276}
9277
9278func newErrorResourceAssociatedException(v protocol.ResponseMetadata) error {
9279	return &ResourceAssociatedException{
9280		RespMetadata: v,
9281	}
9282}
9283
9284// Code returns the exception type name.
9285func (s *ResourceAssociatedException) Code() string {
9286	return "ResourceAssociatedException"
9287}
9288
9289// Message returns the exception's message.
9290func (s *ResourceAssociatedException) Message() string {
9291	if s.Message_ != nil {
9292		return *s.Message_
9293	}
9294	return ""
9295}
9296
9297// OrigErr always returns nil, satisfies awserr.Error interface.
9298func (s *ResourceAssociatedException) OrigErr() error {
9299	return nil
9300}
9301
9302func (s *ResourceAssociatedException) Error() string {
9303	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9304}
9305
9306// Status code returns the HTTP status code for the request's response error.
9307func (s *ResourceAssociatedException) StatusCode() int {
9308	return s.RespMetadata.StatusCode
9309}
9310
9311// RequestID returns the service's response RequestID for request.
9312func (s *ResourceAssociatedException) RequestID() string {
9313	return s.RespMetadata.RequestID
9314}
9315
9316// The resource could not be created.
9317type ResourceCreationFailedException struct {
9318	_            struct{}                  `type:"structure"`
9319	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9320
9321	Message_ *string `locationName:"message" type:"string"`
9322}
9323
9324// String returns the string representation
9325func (s ResourceCreationFailedException) String() string {
9326	return awsutil.Prettify(s)
9327}
9328
9329// GoString returns the string representation
9330func (s ResourceCreationFailedException) GoString() string {
9331	return s.String()
9332}
9333
9334func newErrorResourceCreationFailedException(v protocol.ResponseMetadata) error {
9335	return &ResourceCreationFailedException{
9336		RespMetadata: v,
9337	}
9338}
9339
9340// Code returns the exception type name.
9341func (s *ResourceCreationFailedException) Code() string {
9342	return "ResourceCreationFailedException"
9343}
9344
9345// Message returns the exception's message.
9346func (s *ResourceCreationFailedException) Message() string {
9347	if s.Message_ != nil {
9348		return *s.Message_
9349	}
9350	return ""
9351}
9352
9353// OrigErr always returns nil, satisfies awserr.Error interface.
9354func (s *ResourceCreationFailedException) OrigErr() error {
9355	return nil
9356}
9357
9358func (s *ResourceCreationFailedException) Error() string {
9359	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9360}
9361
9362// Status code returns the HTTP status code for the request's response error.
9363func (s *ResourceCreationFailedException) StatusCode() int {
9364	return s.RespMetadata.StatusCode
9365}
9366
9367// RequestID returns the service's response RequestID for request.
9368func (s *ResourceCreationFailedException) RequestID() string {
9369	return s.RespMetadata.RequestID
9370}
9371
9372// Your resource limits have been exceeded.
9373type ResourceLimitExceededException struct {
9374	_            struct{}                  `type:"structure"`
9375	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9376
9377	// The exception error message.
9378	Message_ *string `locationName:"message" type:"string"`
9379}
9380
9381// String returns the string representation
9382func (s ResourceLimitExceededException) String() string {
9383	return awsutil.Prettify(s)
9384}
9385
9386// GoString returns the string representation
9387func (s ResourceLimitExceededException) GoString() string {
9388	return s.String()
9389}
9390
9391func newErrorResourceLimitExceededException(v protocol.ResponseMetadata) error {
9392	return &ResourceLimitExceededException{
9393		RespMetadata: v,
9394	}
9395}
9396
9397// Code returns the exception type name.
9398func (s *ResourceLimitExceededException) Code() string {
9399	return "ResourceLimitExceededException"
9400}
9401
9402// Message returns the exception's message.
9403func (s *ResourceLimitExceededException) Message() string {
9404	if s.Message_ != nil {
9405		return *s.Message_
9406	}
9407	return ""
9408}
9409
9410// OrigErr always returns nil, satisfies awserr.Error interface.
9411func (s *ResourceLimitExceededException) OrigErr() error {
9412	return nil
9413}
9414
9415func (s *ResourceLimitExceededException) Error() string {
9416	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9417}
9418
9419// Status code returns the HTTP status code for the request's response error.
9420func (s *ResourceLimitExceededException) StatusCode() int {
9421	return s.RespMetadata.StatusCode
9422}
9423
9424// RequestID returns the service's response RequestID for request.
9425func (s *ResourceLimitExceededException) RequestID() string {
9426	return s.RespMetadata.RequestID
9427}
9428
9429// The resource could not be found.
9430type ResourceNotFoundException struct {
9431	_            struct{}                  `type:"structure"`
9432	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9433
9434	// The resource could not be found.
9435	Message_ *string `locationName:"message" type:"string"`
9436
9437	// The ID of the resource that could not be found.
9438	ResourceId *string `min:"1" type:"string"`
9439}
9440
9441// String returns the string representation
9442func (s ResourceNotFoundException) String() string {
9443	return awsutil.Prettify(s)
9444}
9445
9446// GoString returns the string representation
9447func (s ResourceNotFoundException) GoString() string {
9448	return s.String()
9449}
9450
9451func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
9452	return &ResourceNotFoundException{
9453		RespMetadata: v,
9454	}
9455}
9456
9457// Code returns the exception type name.
9458func (s *ResourceNotFoundException) Code() string {
9459	return "ResourceNotFoundException"
9460}
9461
9462// Message returns the exception's message.
9463func (s *ResourceNotFoundException) Message() string {
9464	if s.Message_ != nil {
9465		return *s.Message_
9466	}
9467	return ""
9468}
9469
9470// OrigErr always returns nil, satisfies awserr.Error interface.
9471func (s *ResourceNotFoundException) OrigErr() error {
9472	return nil
9473}
9474
9475func (s *ResourceNotFoundException) Error() string {
9476	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
9477}
9478
9479// Status code returns the HTTP status code for the request's response error.
9480func (s *ResourceNotFoundException) StatusCode() int {
9481	return s.RespMetadata.StatusCode
9482}
9483
9484// RequestID returns the service's response RequestID for request.
9485func (s *ResourceNotFoundException) RequestID() string {
9486	return s.RespMetadata.RequestID
9487}
9488
9489// The specified resource is not available.
9490type ResourceUnavailableException struct {
9491	_            struct{}                  `type:"structure"`
9492	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9493
9494	// The exception error message.
9495	Message_ *string `locationName:"message" type:"string"`
9496
9497	// The identifier of the resource that is not available.
9498	ResourceId *string `min:"1" type:"string"`
9499}
9500
9501// String returns the string representation
9502func (s ResourceUnavailableException) String() string {
9503	return awsutil.Prettify(s)
9504}
9505
9506// GoString returns the string representation
9507func (s ResourceUnavailableException) GoString() string {
9508	return s.String()
9509}
9510
9511func newErrorResourceUnavailableException(v protocol.ResponseMetadata) error {
9512	return &ResourceUnavailableException{
9513		RespMetadata: v,
9514	}
9515}
9516
9517// Code returns the exception type name.
9518func (s *ResourceUnavailableException) Code() string {
9519	return "ResourceUnavailableException"
9520}
9521
9522// Message returns the exception's message.
9523func (s *ResourceUnavailableException) Message() string {
9524	if s.Message_ != nil {
9525		return *s.Message_
9526	}
9527	return ""
9528}
9529
9530// OrigErr always returns nil, satisfies awserr.Error interface.
9531func (s *ResourceUnavailableException) OrigErr() error {
9532	return nil
9533}
9534
9535func (s *ResourceUnavailableException) Error() string {
9536	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
9537}
9538
9539// Status code returns the HTTP status code for the request's response error.
9540func (s *ResourceUnavailableException) StatusCode() int {
9541	return s.RespMetadata.StatusCode
9542}
9543
9544// RequestID returns the service's response RequestID for request.
9545func (s *ResourceUnavailableException) RequestID() string {
9546	return s.RespMetadata.RequestID
9547}
9548
9549type RestoreWorkspaceInput struct {
9550	_ struct{} `type:"structure"`
9551
9552	// The identifier of the WorkSpace.
9553	//
9554	// WorkspaceId is a required field
9555	WorkspaceId *string `type:"string" required:"true"`
9556}
9557
9558// String returns the string representation
9559func (s RestoreWorkspaceInput) String() string {
9560	return awsutil.Prettify(s)
9561}
9562
9563// GoString returns the string representation
9564func (s RestoreWorkspaceInput) GoString() string {
9565	return s.String()
9566}
9567
9568// Validate inspects the fields of the type to determine if they are valid.
9569func (s *RestoreWorkspaceInput) Validate() error {
9570	invalidParams := request.ErrInvalidParams{Context: "RestoreWorkspaceInput"}
9571	if s.WorkspaceId == nil {
9572		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
9573	}
9574
9575	if invalidParams.Len() > 0 {
9576		return invalidParams
9577	}
9578	return nil
9579}
9580
9581// SetWorkspaceId sets the WorkspaceId field's value.
9582func (s *RestoreWorkspaceInput) SetWorkspaceId(v string) *RestoreWorkspaceInput {
9583	s.WorkspaceId = &v
9584	return s
9585}
9586
9587type RestoreWorkspaceOutput struct {
9588	_ struct{} `type:"structure"`
9589}
9590
9591// String returns the string representation
9592func (s RestoreWorkspaceOutput) String() string {
9593	return awsutil.Prettify(s)
9594}
9595
9596// GoString returns the string representation
9597func (s RestoreWorkspaceOutput) GoString() string {
9598	return s.String()
9599}
9600
9601type RevokeIpRulesInput struct {
9602	_ struct{} `type:"structure"`
9603
9604	// The identifier of the group.
9605	//
9606	// GroupId is a required field
9607	GroupId *string `type:"string" required:"true"`
9608
9609	// The rules to remove from the group.
9610	//
9611	// UserRules is a required field
9612	UserRules []*string `type:"list" required:"true"`
9613}
9614
9615// String returns the string representation
9616func (s RevokeIpRulesInput) String() string {
9617	return awsutil.Prettify(s)
9618}
9619
9620// GoString returns the string representation
9621func (s RevokeIpRulesInput) GoString() string {
9622	return s.String()
9623}
9624
9625// Validate inspects the fields of the type to determine if they are valid.
9626func (s *RevokeIpRulesInput) Validate() error {
9627	invalidParams := request.ErrInvalidParams{Context: "RevokeIpRulesInput"}
9628	if s.GroupId == nil {
9629		invalidParams.Add(request.NewErrParamRequired("GroupId"))
9630	}
9631	if s.UserRules == nil {
9632		invalidParams.Add(request.NewErrParamRequired("UserRules"))
9633	}
9634
9635	if invalidParams.Len() > 0 {
9636		return invalidParams
9637	}
9638	return nil
9639}
9640
9641// SetGroupId sets the GroupId field's value.
9642func (s *RevokeIpRulesInput) SetGroupId(v string) *RevokeIpRulesInput {
9643	s.GroupId = &v
9644	return s
9645}
9646
9647// SetUserRules sets the UserRules field's value.
9648func (s *RevokeIpRulesInput) SetUserRules(v []*string) *RevokeIpRulesInput {
9649	s.UserRules = v
9650	return s
9651}
9652
9653type RevokeIpRulesOutput struct {
9654	_ struct{} `type:"structure"`
9655}
9656
9657// String returns the string representation
9658func (s RevokeIpRulesOutput) String() string {
9659	return awsutil.Prettify(s)
9660}
9661
9662// GoString returns the string representation
9663func (s RevokeIpRulesOutput) GoString() string {
9664	return s.String()
9665}
9666
9667// Describes the root volume for a WorkSpace bundle.
9668type RootStorage struct {
9669	_ struct{} `type:"structure"`
9670
9671	// The size of the root volume.
9672	Capacity *string `min:"1" type:"string"`
9673}
9674
9675// String returns the string representation
9676func (s RootStorage) String() string {
9677	return awsutil.Prettify(s)
9678}
9679
9680// GoString returns the string representation
9681func (s RootStorage) GoString() string {
9682	return s.String()
9683}
9684
9685// SetCapacity sets the Capacity field's value.
9686func (s *RootStorage) SetCapacity(v string) *RootStorage {
9687	s.Capacity = &v
9688	return s
9689}
9690
9691// Describes the self-service permissions for a directory. For more information,
9692// see Enable Self-Service WorkSpace Management Capabilities for Your Users
9693// (https://docs.aws.amazon.com/workspaces/latest/adminguide/enable-user-self-service-workspace-management.html).
9694type SelfservicePermissions struct {
9695	_ struct{} `type:"structure"`
9696
9697	// Specifies whether users can change the compute type (bundle) for their WorkSpace.
9698	ChangeComputeType *string `type:"string" enum:"ReconnectEnum"`
9699
9700	// Specifies whether users can increase the volume size of the drives on their
9701	// WorkSpace.
9702	IncreaseVolumeSize *string `type:"string" enum:"ReconnectEnum"`
9703
9704	// Specifies whether users can rebuild the operating system of a WorkSpace to
9705	// its original state.
9706	RebuildWorkspace *string `type:"string" enum:"ReconnectEnum"`
9707
9708	// Specifies whether users can restart their WorkSpace.
9709	RestartWorkspace *string `type:"string" enum:"ReconnectEnum"`
9710
9711	// Specifies whether users can switch the running mode of their WorkSpace.
9712	SwitchRunningMode *string `type:"string" enum:"ReconnectEnum"`
9713}
9714
9715// String returns the string representation
9716func (s SelfservicePermissions) String() string {
9717	return awsutil.Prettify(s)
9718}
9719
9720// GoString returns the string representation
9721func (s SelfservicePermissions) GoString() string {
9722	return s.String()
9723}
9724
9725// SetChangeComputeType sets the ChangeComputeType field's value.
9726func (s *SelfservicePermissions) SetChangeComputeType(v string) *SelfservicePermissions {
9727	s.ChangeComputeType = &v
9728	return s
9729}
9730
9731// SetIncreaseVolumeSize sets the IncreaseVolumeSize field's value.
9732func (s *SelfservicePermissions) SetIncreaseVolumeSize(v string) *SelfservicePermissions {
9733	s.IncreaseVolumeSize = &v
9734	return s
9735}
9736
9737// SetRebuildWorkspace sets the RebuildWorkspace field's value.
9738func (s *SelfservicePermissions) SetRebuildWorkspace(v string) *SelfservicePermissions {
9739	s.RebuildWorkspace = &v
9740	return s
9741}
9742
9743// SetRestartWorkspace sets the RestartWorkspace field's value.
9744func (s *SelfservicePermissions) SetRestartWorkspace(v string) *SelfservicePermissions {
9745	s.RestartWorkspace = &v
9746	return s
9747}
9748
9749// SetSwitchRunningMode sets the SwitchRunningMode field's value.
9750func (s *SelfservicePermissions) SetSwitchRunningMode(v string) *SelfservicePermissions {
9751	s.SwitchRunningMode = &v
9752	return s
9753}
9754
9755// Describes a snapshot.
9756type Snapshot struct {
9757	_ struct{} `type:"structure"`
9758
9759	// The time when the snapshot was created.
9760	SnapshotTime *time.Time `type:"timestamp"`
9761}
9762
9763// String returns the string representation
9764func (s Snapshot) String() string {
9765	return awsutil.Prettify(s)
9766}
9767
9768// GoString returns the string representation
9769func (s Snapshot) GoString() string {
9770	return s.String()
9771}
9772
9773// SetSnapshotTime sets the SnapshotTime field's value.
9774func (s *Snapshot) SetSnapshotTime(v time.Time) *Snapshot {
9775	s.SnapshotTime = &v
9776	return s
9777}
9778
9779// Information used to start a WorkSpace.
9780type StartRequest struct {
9781	_ struct{} `type:"structure"`
9782
9783	// The identifier of the WorkSpace.
9784	WorkspaceId *string `type:"string"`
9785}
9786
9787// String returns the string representation
9788func (s StartRequest) String() string {
9789	return awsutil.Prettify(s)
9790}
9791
9792// GoString returns the string representation
9793func (s StartRequest) GoString() string {
9794	return s.String()
9795}
9796
9797// SetWorkspaceId sets the WorkspaceId field's value.
9798func (s *StartRequest) SetWorkspaceId(v string) *StartRequest {
9799	s.WorkspaceId = &v
9800	return s
9801}
9802
9803type StartWorkspacesInput struct {
9804	_ struct{} `type:"structure"`
9805
9806	// The WorkSpaces to start. You can specify up to 25 WorkSpaces.
9807	//
9808	// StartWorkspaceRequests is a required field
9809	StartWorkspaceRequests []*StartRequest `min:"1" type:"list" required:"true"`
9810}
9811
9812// String returns the string representation
9813func (s StartWorkspacesInput) String() string {
9814	return awsutil.Prettify(s)
9815}
9816
9817// GoString returns the string representation
9818func (s StartWorkspacesInput) GoString() string {
9819	return s.String()
9820}
9821
9822// Validate inspects the fields of the type to determine if they are valid.
9823func (s *StartWorkspacesInput) Validate() error {
9824	invalidParams := request.ErrInvalidParams{Context: "StartWorkspacesInput"}
9825	if s.StartWorkspaceRequests == nil {
9826		invalidParams.Add(request.NewErrParamRequired("StartWorkspaceRequests"))
9827	}
9828	if s.StartWorkspaceRequests != nil && len(s.StartWorkspaceRequests) < 1 {
9829		invalidParams.Add(request.NewErrParamMinLen("StartWorkspaceRequests", 1))
9830	}
9831
9832	if invalidParams.Len() > 0 {
9833		return invalidParams
9834	}
9835	return nil
9836}
9837
9838// SetStartWorkspaceRequests sets the StartWorkspaceRequests field's value.
9839func (s *StartWorkspacesInput) SetStartWorkspaceRequests(v []*StartRequest) *StartWorkspacesInput {
9840	s.StartWorkspaceRequests = v
9841	return s
9842}
9843
9844type StartWorkspacesOutput struct {
9845	_ struct{} `type:"structure"`
9846
9847	// Information about the WorkSpaces that could not be started.
9848	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
9849}
9850
9851// String returns the string representation
9852func (s StartWorkspacesOutput) String() string {
9853	return awsutil.Prettify(s)
9854}
9855
9856// GoString returns the string representation
9857func (s StartWorkspacesOutput) GoString() string {
9858	return s.String()
9859}
9860
9861// SetFailedRequests sets the FailedRequests field's value.
9862func (s *StartWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *StartWorkspacesOutput {
9863	s.FailedRequests = v
9864	return s
9865}
9866
9867// Describes the information used to stop a WorkSpace.
9868type StopRequest struct {
9869	_ struct{} `type:"structure"`
9870
9871	// The identifier of the WorkSpace.
9872	WorkspaceId *string `type:"string"`
9873}
9874
9875// String returns the string representation
9876func (s StopRequest) String() string {
9877	return awsutil.Prettify(s)
9878}
9879
9880// GoString returns the string representation
9881func (s StopRequest) GoString() string {
9882	return s.String()
9883}
9884
9885// SetWorkspaceId sets the WorkspaceId field's value.
9886func (s *StopRequest) SetWorkspaceId(v string) *StopRequest {
9887	s.WorkspaceId = &v
9888	return s
9889}
9890
9891type StopWorkspacesInput struct {
9892	_ struct{} `type:"structure"`
9893
9894	// The WorkSpaces to stop. You can specify up to 25 WorkSpaces.
9895	//
9896	// StopWorkspaceRequests is a required field
9897	StopWorkspaceRequests []*StopRequest `min:"1" type:"list" required:"true"`
9898}
9899
9900// String returns the string representation
9901func (s StopWorkspacesInput) String() string {
9902	return awsutil.Prettify(s)
9903}
9904
9905// GoString returns the string representation
9906func (s StopWorkspacesInput) GoString() string {
9907	return s.String()
9908}
9909
9910// Validate inspects the fields of the type to determine if they are valid.
9911func (s *StopWorkspacesInput) Validate() error {
9912	invalidParams := request.ErrInvalidParams{Context: "StopWorkspacesInput"}
9913	if s.StopWorkspaceRequests == nil {
9914		invalidParams.Add(request.NewErrParamRequired("StopWorkspaceRequests"))
9915	}
9916	if s.StopWorkspaceRequests != nil && len(s.StopWorkspaceRequests) < 1 {
9917		invalidParams.Add(request.NewErrParamMinLen("StopWorkspaceRequests", 1))
9918	}
9919
9920	if invalidParams.Len() > 0 {
9921		return invalidParams
9922	}
9923	return nil
9924}
9925
9926// SetStopWorkspaceRequests sets the StopWorkspaceRequests field's value.
9927func (s *StopWorkspacesInput) SetStopWorkspaceRequests(v []*StopRequest) *StopWorkspacesInput {
9928	s.StopWorkspaceRequests = v
9929	return s
9930}
9931
9932type StopWorkspacesOutput struct {
9933	_ struct{} `type:"structure"`
9934
9935	// Information about the WorkSpaces that could not be stopped.
9936	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
9937}
9938
9939// String returns the string representation
9940func (s StopWorkspacesOutput) String() string {
9941	return awsutil.Prettify(s)
9942}
9943
9944// GoString returns the string representation
9945func (s StopWorkspacesOutput) GoString() string {
9946	return s.String()
9947}
9948
9949// SetFailedRequests sets the FailedRequests field's value.
9950func (s *StopWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *StopWorkspacesOutput {
9951	s.FailedRequests = v
9952	return s
9953}
9954
9955// Describes a tag.
9956type Tag struct {
9957	_ struct{} `type:"structure"`
9958
9959	// The key of the tag.
9960	//
9961	// Key is a required field
9962	Key *string `min:"1" type:"string" required:"true"`
9963
9964	// The value of the tag.
9965	Value *string `type:"string"`
9966}
9967
9968// String returns the string representation
9969func (s Tag) String() string {
9970	return awsutil.Prettify(s)
9971}
9972
9973// GoString returns the string representation
9974func (s Tag) GoString() string {
9975	return s.String()
9976}
9977
9978// Validate inspects the fields of the type to determine if they are valid.
9979func (s *Tag) Validate() error {
9980	invalidParams := request.ErrInvalidParams{Context: "Tag"}
9981	if s.Key == nil {
9982		invalidParams.Add(request.NewErrParamRequired("Key"))
9983	}
9984	if s.Key != nil && len(*s.Key) < 1 {
9985		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
9986	}
9987
9988	if invalidParams.Len() > 0 {
9989		return invalidParams
9990	}
9991	return nil
9992}
9993
9994// SetKey sets the Key field's value.
9995func (s *Tag) SetKey(v string) *Tag {
9996	s.Key = &v
9997	return s
9998}
9999
10000// SetValue sets the Value field's value.
10001func (s *Tag) SetValue(v string) *Tag {
10002	s.Value = &v
10003	return s
10004}
10005
10006// Describes the information used to terminate a WorkSpace.
10007type TerminateRequest struct {
10008	_ struct{} `type:"structure"`
10009
10010	// The identifier of the WorkSpace.
10011	//
10012	// WorkspaceId is a required field
10013	WorkspaceId *string `type:"string" required:"true"`
10014}
10015
10016// String returns the string representation
10017func (s TerminateRequest) String() string {
10018	return awsutil.Prettify(s)
10019}
10020
10021// GoString returns the string representation
10022func (s TerminateRequest) GoString() string {
10023	return s.String()
10024}
10025
10026// Validate inspects the fields of the type to determine if they are valid.
10027func (s *TerminateRequest) Validate() error {
10028	invalidParams := request.ErrInvalidParams{Context: "TerminateRequest"}
10029	if s.WorkspaceId == nil {
10030		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
10031	}
10032
10033	if invalidParams.Len() > 0 {
10034		return invalidParams
10035	}
10036	return nil
10037}
10038
10039// SetWorkspaceId sets the WorkspaceId field's value.
10040func (s *TerminateRequest) SetWorkspaceId(v string) *TerminateRequest {
10041	s.WorkspaceId = &v
10042	return s
10043}
10044
10045type TerminateWorkspacesInput struct {
10046	_ struct{} `type:"structure"`
10047
10048	// The WorkSpaces to terminate. You can specify up to 25 WorkSpaces.
10049	//
10050	// TerminateWorkspaceRequests is a required field
10051	TerminateWorkspaceRequests []*TerminateRequest `min:"1" type:"list" required:"true"`
10052}
10053
10054// String returns the string representation
10055func (s TerminateWorkspacesInput) String() string {
10056	return awsutil.Prettify(s)
10057}
10058
10059// GoString returns the string representation
10060func (s TerminateWorkspacesInput) GoString() string {
10061	return s.String()
10062}
10063
10064// Validate inspects the fields of the type to determine if they are valid.
10065func (s *TerminateWorkspacesInput) Validate() error {
10066	invalidParams := request.ErrInvalidParams{Context: "TerminateWorkspacesInput"}
10067	if s.TerminateWorkspaceRequests == nil {
10068		invalidParams.Add(request.NewErrParamRequired("TerminateWorkspaceRequests"))
10069	}
10070	if s.TerminateWorkspaceRequests != nil && len(s.TerminateWorkspaceRequests) < 1 {
10071		invalidParams.Add(request.NewErrParamMinLen("TerminateWorkspaceRequests", 1))
10072	}
10073	if s.TerminateWorkspaceRequests != nil {
10074		for i, v := range s.TerminateWorkspaceRequests {
10075			if v == nil {
10076				continue
10077			}
10078			if err := v.Validate(); err != nil {
10079				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TerminateWorkspaceRequests", i), err.(request.ErrInvalidParams))
10080			}
10081		}
10082	}
10083
10084	if invalidParams.Len() > 0 {
10085		return invalidParams
10086	}
10087	return nil
10088}
10089
10090// SetTerminateWorkspaceRequests sets the TerminateWorkspaceRequests field's value.
10091func (s *TerminateWorkspacesInput) SetTerminateWorkspaceRequests(v []*TerminateRequest) *TerminateWorkspacesInput {
10092	s.TerminateWorkspaceRequests = v
10093	return s
10094}
10095
10096type TerminateWorkspacesOutput struct {
10097	_ struct{} `type:"structure"`
10098
10099	// Information about the WorkSpaces that could not be terminated.
10100	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
10101}
10102
10103// String returns the string representation
10104func (s TerminateWorkspacesOutput) String() string {
10105	return awsutil.Prettify(s)
10106}
10107
10108// GoString returns the string representation
10109func (s TerminateWorkspacesOutput) GoString() string {
10110	return s.String()
10111}
10112
10113// SetFailedRequests sets the FailedRequests field's value.
10114func (s *TerminateWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *TerminateWorkspacesOutput {
10115	s.FailedRequests = v
10116	return s
10117}
10118
10119// The configuration of this network is not supported for this operation, or
10120// your network configuration conflicts with the Amazon WorkSpaces management
10121// network IP range. For more information, see Configure a VPC for Amazon WorkSpaces
10122// (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html).
10123type UnsupportedNetworkConfigurationException struct {
10124	_            struct{}                  `type:"structure"`
10125	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10126
10127	Message_ *string `locationName:"message" type:"string"`
10128}
10129
10130// String returns the string representation
10131func (s UnsupportedNetworkConfigurationException) String() string {
10132	return awsutil.Prettify(s)
10133}
10134
10135// GoString returns the string representation
10136func (s UnsupportedNetworkConfigurationException) GoString() string {
10137	return s.String()
10138}
10139
10140func newErrorUnsupportedNetworkConfigurationException(v protocol.ResponseMetadata) error {
10141	return &UnsupportedNetworkConfigurationException{
10142		RespMetadata: v,
10143	}
10144}
10145
10146// Code returns the exception type name.
10147func (s *UnsupportedNetworkConfigurationException) Code() string {
10148	return "UnsupportedNetworkConfigurationException"
10149}
10150
10151// Message returns the exception's message.
10152func (s *UnsupportedNetworkConfigurationException) Message() string {
10153	if s.Message_ != nil {
10154		return *s.Message_
10155	}
10156	return ""
10157}
10158
10159// OrigErr always returns nil, satisfies awserr.Error interface.
10160func (s *UnsupportedNetworkConfigurationException) OrigErr() error {
10161	return nil
10162}
10163
10164func (s *UnsupportedNetworkConfigurationException) Error() string {
10165	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10166}
10167
10168// Status code returns the HTTP status code for the request's response error.
10169func (s *UnsupportedNetworkConfigurationException) StatusCode() int {
10170	return s.RespMetadata.StatusCode
10171}
10172
10173// RequestID returns the service's response RequestID for request.
10174func (s *UnsupportedNetworkConfigurationException) RequestID() string {
10175	return s.RespMetadata.RequestID
10176}
10177
10178// The configuration of this WorkSpace is not supported for this operation.
10179// For more information, see Required Configuration and Service Components for
10180// WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/required-service-components.html).
10181type UnsupportedWorkspaceConfigurationException struct {
10182	_            struct{}                  `type:"structure"`
10183	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10184
10185	Message_ *string `locationName:"message" type:"string"`
10186}
10187
10188// String returns the string representation
10189func (s UnsupportedWorkspaceConfigurationException) String() string {
10190	return awsutil.Prettify(s)
10191}
10192
10193// GoString returns the string representation
10194func (s UnsupportedWorkspaceConfigurationException) GoString() string {
10195	return s.String()
10196}
10197
10198func newErrorUnsupportedWorkspaceConfigurationException(v protocol.ResponseMetadata) error {
10199	return &UnsupportedWorkspaceConfigurationException{
10200		RespMetadata: v,
10201	}
10202}
10203
10204// Code returns the exception type name.
10205func (s *UnsupportedWorkspaceConfigurationException) Code() string {
10206	return "UnsupportedWorkspaceConfigurationException"
10207}
10208
10209// Message returns the exception's message.
10210func (s *UnsupportedWorkspaceConfigurationException) Message() string {
10211	if s.Message_ != nil {
10212		return *s.Message_
10213	}
10214	return ""
10215}
10216
10217// OrigErr always returns nil, satisfies awserr.Error interface.
10218func (s *UnsupportedWorkspaceConfigurationException) OrigErr() error {
10219	return nil
10220}
10221
10222func (s *UnsupportedWorkspaceConfigurationException) Error() string {
10223	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10224}
10225
10226// Status code returns the HTTP status code for the request's response error.
10227func (s *UnsupportedWorkspaceConfigurationException) StatusCode() int {
10228	return s.RespMetadata.StatusCode
10229}
10230
10231// RequestID returns the service's response RequestID for request.
10232func (s *UnsupportedWorkspaceConfigurationException) RequestID() string {
10233	return s.RespMetadata.RequestID
10234}
10235
10236type UpdateConnectionAliasPermissionInput struct {
10237	_ struct{} `type:"structure"`
10238
10239	// The identifier of the connection alias that you want to update permissions
10240	// for.
10241	//
10242	// AliasId is a required field
10243	AliasId *string `min:"13" type:"string" required:"true"`
10244
10245	// Indicates whether to share or unshare the connection alias with the specified
10246	// AWS account.
10247	//
10248	// ConnectionAliasPermission is a required field
10249	ConnectionAliasPermission *ConnectionAliasPermission `type:"structure" required:"true"`
10250}
10251
10252// String returns the string representation
10253func (s UpdateConnectionAliasPermissionInput) String() string {
10254	return awsutil.Prettify(s)
10255}
10256
10257// GoString returns the string representation
10258func (s UpdateConnectionAliasPermissionInput) GoString() string {
10259	return s.String()
10260}
10261
10262// Validate inspects the fields of the type to determine if they are valid.
10263func (s *UpdateConnectionAliasPermissionInput) Validate() error {
10264	invalidParams := request.ErrInvalidParams{Context: "UpdateConnectionAliasPermissionInput"}
10265	if s.AliasId == nil {
10266		invalidParams.Add(request.NewErrParamRequired("AliasId"))
10267	}
10268	if s.AliasId != nil && len(*s.AliasId) < 13 {
10269		invalidParams.Add(request.NewErrParamMinLen("AliasId", 13))
10270	}
10271	if s.ConnectionAliasPermission == nil {
10272		invalidParams.Add(request.NewErrParamRequired("ConnectionAliasPermission"))
10273	}
10274	if s.ConnectionAliasPermission != nil {
10275		if err := s.ConnectionAliasPermission.Validate(); err != nil {
10276			invalidParams.AddNested("ConnectionAliasPermission", err.(request.ErrInvalidParams))
10277		}
10278	}
10279
10280	if invalidParams.Len() > 0 {
10281		return invalidParams
10282	}
10283	return nil
10284}
10285
10286// SetAliasId sets the AliasId field's value.
10287func (s *UpdateConnectionAliasPermissionInput) SetAliasId(v string) *UpdateConnectionAliasPermissionInput {
10288	s.AliasId = &v
10289	return s
10290}
10291
10292// SetConnectionAliasPermission sets the ConnectionAliasPermission field's value.
10293func (s *UpdateConnectionAliasPermissionInput) SetConnectionAliasPermission(v *ConnectionAliasPermission) *UpdateConnectionAliasPermissionInput {
10294	s.ConnectionAliasPermission = v
10295	return s
10296}
10297
10298type UpdateConnectionAliasPermissionOutput struct {
10299	_ struct{} `type:"structure"`
10300}
10301
10302// String returns the string representation
10303func (s UpdateConnectionAliasPermissionOutput) String() string {
10304	return awsutil.Prettify(s)
10305}
10306
10307// GoString returns the string representation
10308func (s UpdateConnectionAliasPermissionOutput) GoString() string {
10309	return s.String()
10310}
10311
10312type UpdateRulesOfIpGroupInput struct {
10313	_ struct{} `type:"structure"`
10314
10315	// The identifier of the group.
10316	//
10317	// GroupId is a required field
10318	GroupId *string `type:"string" required:"true"`
10319
10320	// One or more rules.
10321	//
10322	// UserRules is a required field
10323	UserRules []*IpRuleItem `type:"list" required:"true"`
10324}
10325
10326// String returns the string representation
10327func (s UpdateRulesOfIpGroupInput) String() string {
10328	return awsutil.Prettify(s)
10329}
10330
10331// GoString returns the string representation
10332func (s UpdateRulesOfIpGroupInput) GoString() string {
10333	return s.String()
10334}
10335
10336// Validate inspects the fields of the type to determine if they are valid.
10337func (s *UpdateRulesOfIpGroupInput) Validate() error {
10338	invalidParams := request.ErrInvalidParams{Context: "UpdateRulesOfIpGroupInput"}
10339	if s.GroupId == nil {
10340		invalidParams.Add(request.NewErrParamRequired("GroupId"))
10341	}
10342	if s.UserRules == nil {
10343		invalidParams.Add(request.NewErrParamRequired("UserRules"))
10344	}
10345
10346	if invalidParams.Len() > 0 {
10347		return invalidParams
10348	}
10349	return nil
10350}
10351
10352// SetGroupId sets the GroupId field's value.
10353func (s *UpdateRulesOfIpGroupInput) SetGroupId(v string) *UpdateRulesOfIpGroupInput {
10354	s.GroupId = &v
10355	return s
10356}
10357
10358// SetUserRules sets the UserRules field's value.
10359func (s *UpdateRulesOfIpGroupInput) SetUserRules(v []*IpRuleItem) *UpdateRulesOfIpGroupInput {
10360	s.UserRules = v
10361	return s
10362}
10363
10364type UpdateRulesOfIpGroupOutput struct {
10365	_ struct{} `type:"structure"`
10366}
10367
10368// String returns the string representation
10369func (s UpdateRulesOfIpGroupOutput) String() string {
10370	return awsutil.Prettify(s)
10371}
10372
10373// GoString returns the string representation
10374func (s UpdateRulesOfIpGroupOutput) GoString() string {
10375	return s.String()
10376}
10377
10378type UpdateWorkspaceImagePermissionInput struct {
10379	_ struct{} `type:"structure"`
10380
10381	// The permission to copy the image. This permission can be revoked only after
10382	// an image has been shared.
10383	//
10384	// AllowCopyImage is a required field
10385	AllowCopyImage *bool `type:"boolean" required:"true"`
10386
10387	// The identifier of the image.
10388	//
10389	// ImageId is a required field
10390	ImageId *string `type:"string" required:"true"`
10391
10392	// The identifier of the AWS account to share or unshare the image with.
10393	//
10394	// Before sharing the image, confirm that you are sharing to the correct AWS
10395	// account ID.
10396	//
10397	// SharedAccountId is a required field
10398	SharedAccountId *string `type:"string" required:"true"`
10399}
10400
10401// String returns the string representation
10402func (s UpdateWorkspaceImagePermissionInput) String() string {
10403	return awsutil.Prettify(s)
10404}
10405
10406// GoString returns the string representation
10407func (s UpdateWorkspaceImagePermissionInput) GoString() string {
10408	return s.String()
10409}
10410
10411// Validate inspects the fields of the type to determine if they are valid.
10412func (s *UpdateWorkspaceImagePermissionInput) Validate() error {
10413	invalidParams := request.ErrInvalidParams{Context: "UpdateWorkspaceImagePermissionInput"}
10414	if s.AllowCopyImage == nil {
10415		invalidParams.Add(request.NewErrParamRequired("AllowCopyImage"))
10416	}
10417	if s.ImageId == nil {
10418		invalidParams.Add(request.NewErrParamRequired("ImageId"))
10419	}
10420	if s.SharedAccountId == nil {
10421		invalidParams.Add(request.NewErrParamRequired("SharedAccountId"))
10422	}
10423
10424	if invalidParams.Len() > 0 {
10425		return invalidParams
10426	}
10427	return nil
10428}
10429
10430// SetAllowCopyImage sets the AllowCopyImage field's value.
10431func (s *UpdateWorkspaceImagePermissionInput) SetAllowCopyImage(v bool) *UpdateWorkspaceImagePermissionInput {
10432	s.AllowCopyImage = &v
10433	return s
10434}
10435
10436// SetImageId sets the ImageId field's value.
10437func (s *UpdateWorkspaceImagePermissionInput) SetImageId(v string) *UpdateWorkspaceImagePermissionInput {
10438	s.ImageId = &v
10439	return s
10440}
10441
10442// SetSharedAccountId sets the SharedAccountId field's value.
10443func (s *UpdateWorkspaceImagePermissionInput) SetSharedAccountId(v string) *UpdateWorkspaceImagePermissionInput {
10444	s.SharedAccountId = &v
10445	return s
10446}
10447
10448type UpdateWorkspaceImagePermissionOutput struct {
10449	_ struct{} `type:"structure"`
10450}
10451
10452// String returns the string representation
10453func (s UpdateWorkspaceImagePermissionOutput) String() string {
10454	return awsutil.Prettify(s)
10455}
10456
10457// GoString returns the string representation
10458func (s UpdateWorkspaceImagePermissionOutput) GoString() string {
10459	return s.String()
10460}
10461
10462// Describes the user storage for a WorkSpace bundle.
10463type UserStorage struct {
10464	_ struct{} `type:"structure"`
10465
10466	// The size of the user storage.
10467	Capacity *string `min:"1" type:"string"`
10468}
10469
10470// String returns the string representation
10471func (s UserStorage) String() string {
10472	return awsutil.Prettify(s)
10473}
10474
10475// GoString returns the string representation
10476func (s UserStorage) GoString() string {
10477	return s.String()
10478}
10479
10480// SetCapacity sets the Capacity field's value.
10481func (s *UserStorage) SetCapacity(v string) *UserStorage {
10482	s.Capacity = &v
10483	return s
10484}
10485
10486// Describes a WorkSpace.
10487type Workspace struct {
10488	_ struct{} `type:"structure"`
10489
10490	// The identifier of the bundle used to create the WorkSpace.
10491	BundleId *string `type:"string"`
10492
10493	// The name of the WorkSpace, as seen by the operating system. The format of
10494	// this name varies. For more information, see Launch a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/launch-workspaces-tutorials.html).
10495	ComputerName *string `type:"string"`
10496
10497	// The identifier of the AWS Directory Service directory for the WorkSpace.
10498	DirectoryId *string `min:"10" type:"string"`
10499
10500	// The error code that is returned if the WorkSpace cannot be created.
10501	ErrorCode *string `type:"string"`
10502
10503	// The text of the error message that is returned if the WorkSpace cannot be
10504	// created.
10505	ErrorMessage *string `type:"string"`
10506
10507	// The IP address of the WorkSpace.
10508	IpAddress *string `type:"string"`
10509
10510	// The modification states of the WorkSpace.
10511	ModificationStates []*ModificationState `type:"list"`
10512
10513	// Indicates whether the data stored on the root volume is encrypted.
10514	RootVolumeEncryptionEnabled *bool `type:"boolean"`
10515
10516	// The operational state of the WorkSpace.
10517	//
10518	// After a WorkSpace is terminated, the TERMINATED state is returned only briefly
10519	// before the WorkSpace directory metadata is cleaned up, so this state is rarely
10520	// returned. To confirm that a WorkSpace is terminated, check for the WorkSpace
10521	// ID by using DescribeWorkSpaces (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaces.html).
10522	// If the WorkSpace ID isn't returned, then the WorkSpace has been successfully
10523	// terminated.
10524	State *string `type:"string" enum:"WorkspaceState"`
10525
10526	// The identifier of the subnet for the WorkSpace.
10527	SubnetId *string `min:"15" type:"string"`
10528
10529	// The user for the WorkSpace.
10530	UserName *string `min:"1" type:"string"`
10531
10532	// Indicates whether the data stored on the user volume is encrypted.
10533	UserVolumeEncryptionEnabled *bool `type:"boolean"`
10534
10535	// The symmetric AWS KMS customer master key (CMK) used to encrypt data stored
10536	// on your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs.
10537	VolumeEncryptionKey *string `type:"string"`
10538
10539	// The identifier of the WorkSpace.
10540	WorkspaceId *string `type:"string"`
10541
10542	// The properties of the WorkSpace.
10543	WorkspaceProperties *WorkspaceProperties `type:"structure"`
10544}
10545
10546// String returns the string representation
10547func (s Workspace) String() string {
10548	return awsutil.Prettify(s)
10549}
10550
10551// GoString returns the string representation
10552func (s Workspace) GoString() string {
10553	return s.String()
10554}
10555
10556// SetBundleId sets the BundleId field's value.
10557func (s *Workspace) SetBundleId(v string) *Workspace {
10558	s.BundleId = &v
10559	return s
10560}
10561
10562// SetComputerName sets the ComputerName field's value.
10563func (s *Workspace) SetComputerName(v string) *Workspace {
10564	s.ComputerName = &v
10565	return s
10566}
10567
10568// SetDirectoryId sets the DirectoryId field's value.
10569func (s *Workspace) SetDirectoryId(v string) *Workspace {
10570	s.DirectoryId = &v
10571	return s
10572}
10573
10574// SetErrorCode sets the ErrorCode field's value.
10575func (s *Workspace) SetErrorCode(v string) *Workspace {
10576	s.ErrorCode = &v
10577	return s
10578}
10579
10580// SetErrorMessage sets the ErrorMessage field's value.
10581func (s *Workspace) SetErrorMessage(v string) *Workspace {
10582	s.ErrorMessage = &v
10583	return s
10584}
10585
10586// SetIpAddress sets the IpAddress field's value.
10587func (s *Workspace) SetIpAddress(v string) *Workspace {
10588	s.IpAddress = &v
10589	return s
10590}
10591
10592// SetModificationStates sets the ModificationStates field's value.
10593func (s *Workspace) SetModificationStates(v []*ModificationState) *Workspace {
10594	s.ModificationStates = v
10595	return s
10596}
10597
10598// SetRootVolumeEncryptionEnabled sets the RootVolumeEncryptionEnabled field's value.
10599func (s *Workspace) SetRootVolumeEncryptionEnabled(v bool) *Workspace {
10600	s.RootVolumeEncryptionEnabled = &v
10601	return s
10602}
10603
10604// SetState sets the State field's value.
10605func (s *Workspace) SetState(v string) *Workspace {
10606	s.State = &v
10607	return s
10608}
10609
10610// SetSubnetId sets the SubnetId field's value.
10611func (s *Workspace) SetSubnetId(v string) *Workspace {
10612	s.SubnetId = &v
10613	return s
10614}
10615
10616// SetUserName sets the UserName field's value.
10617func (s *Workspace) SetUserName(v string) *Workspace {
10618	s.UserName = &v
10619	return s
10620}
10621
10622// SetUserVolumeEncryptionEnabled sets the UserVolumeEncryptionEnabled field's value.
10623func (s *Workspace) SetUserVolumeEncryptionEnabled(v bool) *Workspace {
10624	s.UserVolumeEncryptionEnabled = &v
10625	return s
10626}
10627
10628// SetVolumeEncryptionKey sets the VolumeEncryptionKey field's value.
10629func (s *Workspace) SetVolumeEncryptionKey(v string) *Workspace {
10630	s.VolumeEncryptionKey = &v
10631	return s
10632}
10633
10634// SetWorkspaceId sets the WorkspaceId field's value.
10635func (s *Workspace) SetWorkspaceId(v string) *Workspace {
10636	s.WorkspaceId = &v
10637	return s
10638}
10639
10640// SetWorkspaceProperties sets the WorkspaceProperties field's value.
10641func (s *Workspace) SetWorkspaceProperties(v *WorkspaceProperties) *Workspace {
10642	s.WorkspaceProperties = v
10643	return s
10644}
10645
10646// The device types and operating systems that can be used to access a WorkSpace.
10647// For more information, see Amazon WorkSpaces Client Network Requirements (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-network-requirements.html).
10648type WorkspaceAccessProperties struct {
10649	_ struct{} `type:"structure"`
10650
10651	// Indicates whether users can use Android devices to access their WorkSpaces.
10652	DeviceTypeAndroid *string `type:"string" enum:"AccessPropertyValue"`
10653
10654	// Indicates whether users can use Chromebooks to access their WorkSpaces.
10655	DeviceTypeChromeOs *string `type:"string" enum:"AccessPropertyValue"`
10656
10657	// Indicates whether users can use iOS devices to access their WorkSpaces.
10658	DeviceTypeIos *string `type:"string" enum:"AccessPropertyValue"`
10659
10660	// Indicates whether users can use macOS clients to access their WorkSpaces.
10661	// To restrict WorkSpaces access to trusted devices (also known as managed devices)
10662	// with valid certificates, specify a value of TRUST. For more information,
10663	// see Restrict WorkSpaces Access to Trusted Devices (https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html).
10664	DeviceTypeOsx *string `type:"string" enum:"AccessPropertyValue"`
10665
10666	// Indicates whether users can access their WorkSpaces through a web browser.
10667	DeviceTypeWeb *string `type:"string" enum:"AccessPropertyValue"`
10668
10669	// Indicates whether users can use Windows clients to access their WorkSpaces.
10670	// To restrict WorkSpaces access to trusted devices (also known as managed devices)
10671	// with valid certificates, specify a value of TRUST. For more information,
10672	// see Restrict WorkSpaces Access to Trusted Devices (https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html).
10673	DeviceTypeWindows *string `type:"string" enum:"AccessPropertyValue"`
10674
10675	// Indicates whether users can use zero client devices to access their WorkSpaces.
10676	DeviceTypeZeroClient *string `type:"string" enum:"AccessPropertyValue"`
10677}
10678
10679// String returns the string representation
10680func (s WorkspaceAccessProperties) String() string {
10681	return awsutil.Prettify(s)
10682}
10683
10684// GoString returns the string representation
10685func (s WorkspaceAccessProperties) GoString() string {
10686	return s.String()
10687}
10688
10689// SetDeviceTypeAndroid sets the DeviceTypeAndroid field's value.
10690func (s *WorkspaceAccessProperties) SetDeviceTypeAndroid(v string) *WorkspaceAccessProperties {
10691	s.DeviceTypeAndroid = &v
10692	return s
10693}
10694
10695// SetDeviceTypeChromeOs sets the DeviceTypeChromeOs field's value.
10696func (s *WorkspaceAccessProperties) SetDeviceTypeChromeOs(v string) *WorkspaceAccessProperties {
10697	s.DeviceTypeChromeOs = &v
10698	return s
10699}
10700
10701// SetDeviceTypeIos sets the DeviceTypeIos field's value.
10702func (s *WorkspaceAccessProperties) SetDeviceTypeIos(v string) *WorkspaceAccessProperties {
10703	s.DeviceTypeIos = &v
10704	return s
10705}
10706
10707// SetDeviceTypeOsx sets the DeviceTypeOsx field's value.
10708func (s *WorkspaceAccessProperties) SetDeviceTypeOsx(v string) *WorkspaceAccessProperties {
10709	s.DeviceTypeOsx = &v
10710	return s
10711}
10712
10713// SetDeviceTypeWeb sets the DeviceTypeWeb field's value.
10714func (s *WorkspaceAccessProperties) SetDeviceTypeWeb(v string) *WorkspaceAccessProperties {
10715	s.DeviceTypeWeb = &v
10716	return s
10717}
10718
10719// SetDeviceTypeWindows sets the DeviceTypeWindows field's value.
10720func (s *WorkspaceAccessProperties) SetDeviceTypeWindows(v string) *WorkspaceAccessProperties {
10721	s.DeviceTypeWindows = &v
10722	return s
10723}
10724
10725// SetDeviceTypeZeroClient sets the DeviceTypeZeroClient field's value.
10726func (s *WorkspaceAccessProperties) SetDeviceTypeZeroClient(v string) *WorkspaceAccessProperties {
10727	s.DeviceTypeZeroClient = &v
10728	return s
10729}
10730
10731// Describes a WorkSpace bundle.
10732type WorkspaceBundle struct {
10733	_ struct{} `type:"structure"`
10734
10735	// The bundle identifier.
10736	BundleId *string `type:"string"`
10737
10738	// The compute type. For more information, see Amazon WorkSpaces Bundles (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
10739	ComputeType *ComputeType `type:"structure"`
10740
10741	// A description.
10742	Description *string `type:"string"`
10743
10744	// The image identifier of the bundle.
10745	ImageId *string `type:"string"`
10746
10747	// The last time that the bundle was updated.
10748	LastUpdatedTime *time.Time `type:"timestamp"`
10749
10750	// The name of the bundle.
10751	Name *string `min:"1" type:"string"`
10752
10753	// The owner of the bundle. This is the account identifier of the owner, or
10754	// AMAZON if the bundle is provided by AWS.
10755	Owner *string `type:"string"`
10756
10757	// The size of the root volume.
10758	RootStorage *RootStorage `type:"structure"`
10759
10760	// The size of the user storage.
10761	UserStorage *UserStorage `type:"structure"`
10762}
10763
10764// String returns the string representation
10765func (s WorkspaceBundle) String() string {
10766	return awsutil.Prettify(s)
10767}
10768
10769// GoString returns the string representation
10770func (s WorkspaceBundle) GoString() string {
10771	return s.String()
10772}
10773
10774// SetBundleId sets the BundleId field's value.
10775func (s *WorkspaceBundle) SetBundleId(v string) *WorkspaceBundle {
10776	s.BundleId = &v
10777	return s
10778}
10779
10780// SetComputeType sets the ComputeType field's value.
10781func (s *WorkspaceBundle) SetComputeType(v *ComputeType) *WorkspaceBundle {
10782	s.ComputeType = v
10783	return s
10784}
10785
10786// SetDescription sets the Description field's value.
10787func (s *WorkspaceBundle) SetDescription(v string) *WorkspaceBundle {
10788	s.Description = &v
10789	return s
10790}
10791
10792// SetImageId sets the ImageId field's value.
10793func (s *WorkspaceBundle) SetImageId(v string) *WorkspaceBundle {
10794	s.ImageId = &v
10795	return s
10796}
10797
10798// SetLastUpdatedTime sets the LastUpdatedTime field's value.
10799func (s *WorkspaceBundle) SetLastUpdatedTime(v time.Time) *WorkspaceBundle {
10800	s.LastUpdatedTime = &v
10801	return s
10802}
10803
10804// SetName sets the Name field's value.
10805func (s *WorkspaceBundle) SetName(v string) *WorkspaceBundle {
10806	s.Name = &v
10807	return s
10808}
10809
10810// SetOwner sets the Owner field's value.
10811func (s *WorkspaceBundle) SetOwner(v string) *WorkspaceBundle {
10812	s.Owner = &v
10813	return s
10814}
10815
10816// SetRootStorage sets the RootStorage field's value.
10817func (s *WorkspaceBundle) SetRootStorage(v *RootStorage) *WorkspaceBundle {
10818	s.RootStorage = v
10819	return s
10820}
10821
10822// SetUserStorage sets the UserStorage field's value.
10823func (s *WorkspaceBundle) SetUserStorage(v *UserStorage) *WorkspaceBundle {
10824	s.UserStorage = v
10825	return s
10826}
10827
10828// Describes the connection status of a WorkSpace.
10829type WorkspaceConnectionStatus struct {
10830	_ struct{} `type:"structure"`
10831
10832	// The connection state of the WorkSpace. The connection state is unknown if
10833	// the WorkSpace is stopped.
10834	ConnectionState *string `type:"string" enum:"ConnectionState"`
10835
10836	// The timestamp of the connection status check.
10837	ConnectionStateCheckTimestamp *time.Time `type:"timestamp"`
10838
10839	// The timestamp of the last known user connection.
10840	LastKnownUserConnectionTimestamp *time.Time `type:"timestamp"`
10841
10842	// The identifier of the WorkSpace.
10843	WorkspaceId *string `type:"string"`
10844}
10845
10846// String returns the string representation
10847func (s WorkspaceConnectionStatus) String() string {
10848	return awsutil.Prettify(s)
10849}
10850
10851// GoString returns the string representation
10852func (s WorkspaceConnectionStatus) GoString() string {
10853	return s.String()
10854}
10855
10856// SetConnectionState sets the ConnectionState field's value.
10857func (s *WorkspaceConnectionStatus) SetConnectionState(v string) *WorkspaceConnectionStatus {
10858	s.ConnectionState = &v
10859	return s
10860}
10861
10862// SetConnectionStateCheckTimestamp sets the ConnectionStateCheckTimestamp field's value.
10863func (s *WorkspaceConnectionStatus) SetConnectionStateCheckTimestamp(v time.Time) *WorkspaceConnectionStatus {
10864	s.ConnectionStateCheckTimestamp = &v
10865	return s
10866}
10867
10868// SetLastKnownUserConnectionTimestamp sets the LastKnownUserConnectionTimestamp field's value.
10869func (s *WorkspaceConnectionStatus) SetLastKnownUserConnectionTimestamp(v time.Time) *WorkspaceConnectionStatus {
10870	s.LastKnownUserConnectionTimestamp = &v
10871	return s
10872}
10873
10874// SetWorkspaceId sets the WorkspaceId field's value.
10875func (s *WorkspaceConnectionStatus) SetWorkspaceId(v string) *WorkspaceConnectionStatus {
10876	s.WorkspaceId = &v
10877	return s
10878}
10879
10880// Describes the default properties that are used for creating WorkSpaces. For
10881// more information, see Update Directory Details for Your WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html).
10882type WorkspaceCreationProperties struct {
10883	_ struct{} `type:"structure"`
10884
10885	// The identifier of your custom security group.
10886	CustomSecurityGroupId *string `min:"11" type:"string"`
10887
10888	// The default organizational unit (OU) for your WorkSpaces directories. This
10889	// string must be the full Lightweight Directory Access Protocol (LDAP) distinguished
10890	// name for the target domain and OU. It must be in the form "OU=value,DC=value,DC=value",
10891	// where value is any string of characters, and the number of domain components
10892	// (DCs) is two or more. For example, OU=WorkSpaces_machines,DC=machines,DC=example,DC=com.
10893	//
10894	//    * To avoid errors, certain characters in the distinguished name must be
10895	//    escaped. For more information, see Distinguished Names (https://docs.microsoft.com/previous-versions/windows/desktop/ldap/distinguished-names)
10896	//    in the Microsoft documentation.
10897	//
10898	//    * The API doesn't validate whether the OU exists.
10899	DefaultOu *string `type:"string"`
10900
10901	// Indicates whether internet access is enabled for your WorkSpaces.
10902	EnableInternetAccess *bool `type:"boolean"`
10903
10904	// Indicates whether maintenance mode is enabled for your WorkSpaces. For more
10905	// information, see WorkSpace Maintenance (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).
10906	EnableMaintenanceMode *bool `type:"boolean"`
10907
10908	// Indicates whether Amazon WorkDocs is enabled for your WorkSpaces.
10909	//
10910	// If WorkDocs is already enabled for a WorkSpaces directory and you disable
10911	// it, new WorkSpaces launched in the directory will not have WorkDocs enabled.
10912	// However, WorkDocs remains enabled for any existing WorkSpaces, unless you
10913	// either disable users' access to WorkDocs or you delete the WorkDocs site.
10914	// To disable users' access to WorkDocs, see Disabling Users (https://docs.aws.amazon.com/workdocs/latest/adminguide/inactive-user.html)
10915	// in the Amazon WorkDocs Administration Guide. To delete a WorkDocs site, see
10916	// Deleting a Site (https://docs.aws.amazon.com/workdocs/latest/adminguide/manage-sites.html)
10917	// in the Amazon WorkDocs Administration Guide.
10918	//
10919	// If you enable WorkDocs on a directory that already has existing WorkSpaces,
10920	// the existing WorkSpaces and any new WorkSpaces that are launched in the directory
10921	// will have WorkDocs enabled.
10922	EnableWorkDocs *bool `type:"boolean"`
10923
10924	// Indicates whether users are local administrators of their WorkSpaces.
10925	UserEnabledAsLocalAdministrator *bool `type:"boolean"`
10926}
10927
10928// String returns the string representation
10929func (s WorkspaceCreationProperties) String() string {
10930	return awsutil.Prettify(s)
10931}
10932
10933// GoString returns the string representation
10934func (s WorkspaceCreationProperties) GoString() string {
10935	return s.String()
10936}
10937
10938// Validate inspects the fields of the type to determine if they are valid.
10939func (s *WorkspaceCreationProperties) Validate() error {
10940	invalidParams := request.ErrInvalidParams{Context: "WorkspaceCreationProperties"}
10941	if s.CustomSecurityGroupId != nil && len(*s.CustomSecurityGroupId) < 11 {
10942		invalidParams.Add(request.NewErrParamMinLen("CustomSecurityGroupId", 11))
10943	}
10944
10945	if invalidParams.Len() > 0 {
10946		return invalidParams
10947	}
10948	return nil
10949}
10950
10951// SetCustomSecurityGroupId sets the CustomSecurityGroupId field's value.
10952func (s *WorkspaceCreationProperties) SetCustomSecurityGroupId(v string) *WorkspaceCreationProperties {
10953	s.CustomSecurityGroupId = &v
10954	return s
10955}
10956
10957// SetDefaultOu sets the DefaultOu field's value.
10958func (s *WorkspaceCreationProperties) SetDefaultOu(v string) *WorkspaceCreationProperties {
10959	s.DefaultOu = &v
10960	return s
10961}
10962
10963// SetEnableInternetAccess sets the EnableInternetAccess field's value.
10964func (s *WorkspaceCreationProperties) SetEnableInternetAccess(v bool) *WorkspaceCreationProperties {
10965	s.EnableInternetAccess = &v
10966	return s
10967}
10968
10969// SetEnableMaintenanceMode sets the EnableMaintenanceMode field's value.
10970func (s *WorkspaceCreationProperties) SetEnableMaintenanceMode(v bool) *WorkspaceCreationProperties {
10971	s.EnableMaintenanceMode = &v
10972	return s
10973}
10974
10975// SetEnableWorkDocs sets the EnableWorkDocs field's value.
10976func (s *WorkspaceCreationProperties) SetEnableWorkDocs(v bool) *WorkspaceCreationProperties {
10977	s.EnableWorkDocs = &v
10978	return s
10979}
10980
10981// SetUserEnabledAsLocalAdministrator sets the UserEnabledAsLocalAdministrator field's value.
10982func (s *WorkspaceCreationProperties) SetUserEnabledAsLocalAdministrator(v bool) *WorkspaceCreationProperties {
10983	s.UserEnabledAsLocalAdministrator = &v
10984	return s
10985}
10986
10987// Describes a directory that is used with Amazon WorkSpaces.
10988type WorkspaceDirectory struct {
10989	_ struct{} `type:"structure"`
10990
10991	// The directory alias.
10992	Alias *string `type:"string"`
10993
10994	// The user name for the service account.
10995	CustomerUserName *string `min:"1" type:"string"`
10996
10997	// The directory identifier.
10998	DirectoryId *string `min:"10" type:"string"`
10999
11000	// The name of the directory.
11001	DirectoryName *string `type:"string"`
11002
11003	// The directory type.
11004	DirectoryType *string `type:"string" enum:"WorkspaceDirectoryType"`
11005
11006	// The IP addresses of the DNS servers for the directory.
11007	DnsIpAddresses []*string `type:"list"`
11008
11009	// The identifier of the IAM role. This is the role that allows Amazon WorkSpaces
11010	// to make calls to other services, such as Amazon EC2, on your behalf.
11011	IamRoleId *string `type:"string"`
11012
11013	// The identifiers of the IP access control groups associated with the directory.
11014	IpGroupIds []*string `locationName:"ipGroupIds" type:"list"`
11015
11016	// The registration code for the directory. This is the code that users enter
11017	// in their Amazon WorkSpaces client application to connect to the directory.
11018	RegistrationCode *string `min:"1" type:"string"`
11019
11020	// The default self-service permissions for WorkSpaces in the directory.
11021	SelfservicePermissions *SelfservicePermissions `type:"structure"`
11022
11023	// The state of the directory's registration with Amazon WorkSpaces. After a
11024	// directory is deregistered, the DEREGISTERED state is returned very briefly
11025	// before the directory metadata is cleaned up, so this state is rarely returned.
11026	// To confirm that a directory is deregistered, check for the directory ID by
11027	// using DescribeWorkspaceDirectories (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceDirectories.html).
11028	// If the directory ID isn't returned, then the directory has been successfully
11029	// deregistered.
11030	State *string `type:"string" enum:"WorkspaceDirectoryState"`
11031
11032	// The identifiers of the subnets used with the directory.
11033	SubnetIds []*string `type:"list"`
11034
11035	// Specifies whether the directory is dedicated or shared. To use Bring Your
11036	// Own License (BYOL), this value must be set to DEDICATED. For more information,
11037	// see Bring Your Own Windows Desktop Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
11038	Tenancy *string `type:"string" enum:"Tenancy"`
11039
11040	// The devices and operating systems that users can use to access WorkSpaces.
11041	WorkspaceAccessProperties *WorkspaceAccessProperties `type:"structure"`
11042
11043	// The default creation properties for all WorkSpaces in the directory.
11044	WorkspaceCreationProperties *DefaultWorkspaceCreationProperties `type:"structure"`
11045
11046	// The identifier of the security group that is assigned to new WorkSpaces.
11047	WorkspaceSecurityGroupId *string `min:"11" type:"string"`
11048}
11049
11050// String returns the string representation
11051func (s WorkspaceDirectory) String() string {
11052	return awsutil.Prettify(s)
11053}
11054
11055// GoString returns the string representation
11056func (s WorkspaceDirectory) GoString() string {
11057	return s.String()
11058}
11059
11060// SetAlias sets the Alias field's value.
11061func (s *WorkspaceDirectory) SetAlias(v string) *WorkspaceDirectory {
11062	s.Alias = &v
11063	return s
11064}
11065
11066// SetCustomerUserName sets the CustomerUserName field's value.
11067func (s *WorkspaceDirectory) SetCustomerUserName(v string) *WorkspaceDirectory {
11068	s.CustomerUserName = &v
11069	return s
11070}
11071
11072// SetDirectoryId sets the DirectoryId field's value.
11073func (s *WorkspaceDirectory) SetDirectoryId(v string) *WorkspaceDirectory {
11074	s.DirectoryId = &v
11075	return s
11076}
11077
11078// SetDirectoryName sets the DirectoryName field's value.
11079func (s *WorkspaceDirectory) SetDirectoryName(v string) *WorkspaceDirectory {
11080	s.DirectoryName = &v
11081	return s
11082}
11083
11084// SetDirectoryType sets the DirectoryType field's value.
11085func (s *WorkspaceDirectory) SetDirectoryType(v string) *WorkspaceDirectory {
11086	s.DirectoryType = &v
11087	return s
11088}
11089
11090// SetDnsIpAddresses sets the DnsIpAddresses field's value.
11091func (s *WorkspaceDirectory) SetDnsIpAddresses(v []*string) *WorkspaceDirectory {
11092	s.DnsIpAddresses = v
11093	return s
11094}
11095
11096// SetIamRoleId sets the IamRoleId field's value.
11097func (s *WorkspaceDirectory) SetIamRoleId(v string) *WorkspaceDirectory {
11098	s.IamRoleId = &v
11099	return s
11100}
11101
11102// SetIpGroupIds sets the IpGroupIds field's value.
11103func (s *WorkspaceDirectory) SetIpGroupIds(v []*string) *WorkspaceDirectory {
11104	s.IpGroupIds = v
11105	return s
11106}
11107
11108// SetRegistrationCode sets the RegistrationCode field's value.
11109func (s *WorkspaceDirectory) SetRegistrationCode(v string) *WorkspaceDirectory {
11110	s.RegistrationCode = &v
11111	return s
11112}
11113
11114// SetSelfservicePermissions sets the SelfservicePermissions field's value.
11115func (s *WorkspaceDirectory) SetSelfservicePermissions(v *SelfservicePermissions) *WorkspaceDirectory {
11116	s.SelfservicePermissions = v
11117	return s
11118}
11119
11120// SetState sets the State field's value.
11121func (s *WorkspaceDirectory) SetState(v string) *WorkspaceDirectory {
11122	s.State = &v
11123	return s
11124}
11125
11126// SetSubnetIds sets the SubnetIds field's value.
11127func (s *WorkspaceDirectory) SetSubnetIds(v []*string) *WorkspaceDirectory {
11128	s.SubnetIds = v
11129	return s
11130}
11131
11132// SetTenancy sets the Tenancy field's value.
11133func (s *WorkspaceDirectory) SetTenancy(v string) *WorkspaceDirectory {
11134	s.Tenancy = &v
11135	return s
11136}
11137
11138// SetWorkspaceAccessProperties sets the WorkspaceAccessProperties field's value.
11139func (s *WorkspaceDirectory) SetWorkspaceAccessProperties(v *WorkspaceAccessProperties) *WorkspaceDirectory {
11140	s.WorkspaceAccessProperties = v
11141	return s
11142}
11143
11144// SetWorkspaceCreationProperties sets the WorkspaceCreationProperties field's value.
11145func (s *WorkspaceDirectory) SetWorkspaceCreationProperties(v *DefaultWorkspaceCreationProperties) *WorkspaceDirectory {
11146	s.WorkspaceCreationProperties = v
11147	return s
11148}
11149
11150// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
11151func (s *WorkspaceDirectory) SetWorkspaceSecurityGroupId(v string) *WorkspaceDirectory {
11152	s.WorkspaceSecurityGroupId = &v
11153	return s
11154}
11155
11156// Describes a WorkSpace image.
11157type WorkspaceImage struct {
11158	_ struct{} `type:"structure"`
11159
11160	// The date when the image was created. If the image has been shared, the AWS
11161	// account that the image has been shared with sees the original creation date
11162	// of the image.
11163	Created *time.Time `type:"timestamp"`
11164
11165	// The description of the image.
11166	Description *string `min:"1" type:"string"`
11167
11168	// The error code that is returned for the image.
11169	ErrorCode *string `type:"string"`
11170
11171	// The text of the error message that is returned for the image.
11172	ErrorMessage *string `type:"string"`
11173
11174	// The identifier of the image.
11175	ImageId *string `type:"string"`
11176
11177	// The name of the image.
11178	Name *string `min:"1" type:"string"`
11179
11180	// The operating system that the image is running.
11181	OperatingSystem *OperatingSystem `type:"structure"`
11182
11183	// The identifier of the AWS account that owns the image.
11184	OwnerAccountId *string `type:"string"`
11185
11186	// Specifies whether the image is running on dedicated hardware. When Bring
11187	// Your Own License (BYOL) is enabled, this value is set to DEDICATED. For more
11188	// information, see Bring Your Own Windows Desktop Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
11189	RequiredTenancy *string `type:"string" enum:"WorkspaceImageRequiredTenancy"`
11190
11191	// The status of the image.
11192	State *string `type:"string" enum:"WorkspaceImageState"`
11193}
11194
11195// String returns the string representation
11196func (s WorkspaceImage) String() string {
11197	return awsutil.Prettify(s)
11198}
11199
11200// GoString returns the string representation
11201func (s WorkspaceImage) GoString() string {
11202	return s.String()
11203}
11204
11205// SetCreated sets the Created field's value.
11206func (s *WorkspaceImage) SetCreated(v time.Time) *WorkspaceImage {
11207	s.Created = &v
11208	return s
11209}
11210
11211// SetDescription sets the Description field's value.
11212func (s *WorkspaceImage) SetDescription(v string) *WorkspaceImage {
11213	s.Description = &v
11214	return s
11215}
11216
11217// SetErrorCode sets the ErrorCode field's value.
11218func (s *WorkspaceImage) SetErrorCode(v string) *WorkspaceImage {
11219	s.ErrorCode = &v
11220	return s
11221}
11222
11223// SetErrorMessage sets the ErrorMessage field's value.
11224func (s *WorkspaceImage) SetErrorMessage(v string) *WorkspaceImage {
11225	s.ErrorMessage = &v
11226	return s
11227}
11228
11229// SetImageId sets the ImageId field's value.
11230func (s *WorkspaceImage) SetImageId(v string) *WorkspaceImage {
11231	s.ImageId = &v
11232	return s
11233}
11234
11235// SetName sets the Name field's value.
11236func (s *WorkspaceImage) SetName(v string) *WorkspaceImage {
11237	s.Name = &v
11238	return s
11239}
11240
11241// SetOperatingSystem sets the OperatingSystem field's value.
11242func (s *WorkspaceImage) SetOperatingSystem(v *OperatingSystem) *WorkspaceImage {
11243	s.OperatingSystem = v
11244	return s
11245}
11246
11247// SetOwnerAccountId sets the OwnerAccountId field's value.
11248func (s *WorkspaceImage) SetOwnerAccountId(v string) *WorkspaceImage {
11249	s.OwnerAccountId = &v
11250	return s
11251}
11252
11253// SetRequiredTenancy sets the RequiredTenancy field's value.
11254func (s *WorkspaceImage) SetRequiredTenancy(v string) *WorkspaceImage {
11255	s.RequiredTenancy = &v
11256	return s
11257}
11258
11259// SetState sets the State field's value.
11260func (s *WorkspaceImage) SetState(v string) *WorkspaceImage {
11261	s.State = &v
11262	return s
11263}
11264
11265// Describes a WorkSpace.
11266type WorkspaceProperties struct {
11267	_ struct{} `type:"structure"`
11268
11269	// The compute type. For more information, see Amazon WorkSpaces Bundles (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
11270	ComputeTypeName *string `type:"string" enum:"Compute"`
11271
11272	// The size of the root volume. For important information about how to modify
11273	// the size of the root and user volumes, see Modify a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html).
11274	RootVolumeSizeGib *int64 `type:"integer"`
11275
11276	// The running mode. For more information, see Manage the WorkSpace Running
11277	// Mode (https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html).
11278	RunningMode *string `type:"string" enum:"RunningMode"`
11279
11280	// The time after a user logs off when WorkSpaces are automatically stopped.
11281	// Configured in 60-minute intervals.
11282	RunningModeAutoStopTimeoutInMinutes *int64 `type:"integer"`
11283
11284	// The size of the user storage. For important information about how to modify
11285	// the size of the root and user volumes, see Modify a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html).
11286	UserVolumeSizeGib *int64 `type:"integer"`
11287}
11288
11289// String returns the string representation
11290func (s WorkspaceProperties) String() string {
11291	return awsutil.Prettify(s)
11292}
11293
11294// GoString returns the string representation
11295func (s WorkspaceProperties) GoString() string {
11296	return s.String()
11297}
11298
11299// SetComputeTypeName sets the ComputeTypeName field's value.
11300func (s *WorkspaceProperties) SetComputeTypeName(v string) *WorkspaceProperties {
11301	s.ComputeTypeName = &v
11302	return s
11303}
11304
11305// SetRootVolumeSizeGib sets the RootVolumeSizeGib field's value.
11306func (s *WorkspaceProperties) SetRootVolumeSizeGib(v int64) *WorkspaceProperties {
11307	s.RootVolumeSizeGib = &v
11308	return s
11309}
11310
11311// SetRunningMode sets the RunningMode field's value.
11312func (s *WorkspaceProperties) SetRunningMode(v string) *WorkspaceProperties {
11313	s.RunningMode = &v
11314	return s
11315}
11316
11317// SetRunningModeAutoStopTimeoutInMinutes sets the RunningModeAutoStopTimeoutInMinutes field's value.
11318func (s *WorkspaceProperties) SetRunningModeAutoStopTimeoutInMinutes(v int64) *WorkspaceProperties {
11319	s.RunningModeAutoStopTimeoutInMinutes = &v
11320	return s
11321}
11322
11323// SetUserVolumeSizeGib sets the UserVolumeSizeGib field's value.
11324func (s *WorkspaceProperties) SetUserVolumeSizeGib(v int64) *WorkspaceProperties {
11325	s.UserVolumeSizeGib = &v
11326	return s
11327}
11328
11329// Describes the information used to create a WorkSpace.
11330type WorkspaceRequest struct {
11331	_ struct{} `type:"structure"`
11332
11333	// The identifier of the bundle for the WorkSpace. You can use DescribeWorkspaceBundles
11334	// to list the available bundles.
11335	//
11336	// BundleId is a required field
11337	BundleId *string `type:"string" required:"true"`
11338
11339	// The identifier of the AWS Directory Service directory for the WorkSpace.
11340	// You can use DescribeWorkspaceDirectories to list the available directories.
11341	//
11342	// DirectoryId is a required field
11343	DirectoryId *string `min:"10" type:"string" required:"true"`
11344
11345	// Indicates whether the data stored on the root volume is encrypted.
11346	RootVolumeEncryptionEnabled *bool `type:"boolean"`
11347
11348	// The tags for the WorkSpace.
11349	Tags []*Tag `type:"list"`
11350
11351	// The user name of the user for the WorkSpace. This user name must exist in
11352	// the AWS Directory Service directory for the WorkSpace.
11353	//
11354	// UserName is a required field
11355	UserName *string `min:"1" type:"string" required:"true"`
11356
11357	// Indicates whether the data stored on the user volume is encrypted.
11358	UserVolumeEncryptionEnabled *bool `type:"boolean"`
11359
11360	// The symmetric AWS KMS customer master key (CMK) used to encrypt data stored
11361	// on your WorkSpace. Amazon WorkSpaces does not support asymmetric CMKs.
11362	VolumeEncryptionKey *string `type:"string"`
11363
11364	// The WorkSpace properties.
11365	WorkspaceProperties *WorkspaceProperties `type:"structure"`
11366}
11367
11368// String returns the string representation
11369func (s WorkspaceRequest) String() string {
11370	return awsutil.Prettify(s)
11371}
11372
11373// GoString returns the string representation
11374func (s WorkspaceRequest) GoString() string {
11375	return s.String()
11376}
11377
11378// Validate inspects the fields of the type to determine if they are valid.
11379func (s *WorkspaceRequest) Validate() error {
11380	invalidParams := request.ErrInvalidParams{Context: "WorkspaceRequest"}
11381	if s.BundleId == nil {
11382		invalidParams.Add(request.NewErrParamRequired("BundleId"))
11383	}
11384	if s.DirectoryId == nil {
11385		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
11386	}
11387	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
11388		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
11389	}
11390	if s.UserName == nil {
11391		invalidParams.Add(request.NewErrParamRequired("UserName"))
11392	}
11393	if s.UserName != nil && len(*s.UserName) < 1 {
11394		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
11395	}
11396	if s.Tags != nil {
11397		for i, v := range s.Tags {
11398			if v == nil {
11399				continue
11400			}
11401			if err := v.Validate(); err != nil {
11402				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
11403			}
11404		}
11405	}
11406
11407	if invalidParams.Len() > 0 {
11408		return invalidParams
11409	}
11410	return nil
11411}
11412
11413// SetBundleId sets the BundleId field's value.
11414func (s *WorkspaceRequest) SetBundleId(v string) *WorkspaceRequest {
11415	s.BundleId = &v
11416	return s
11417}
11418
11419// SetDirectoryId sets the DirectoryId field's value.
11420func (s *WorkspaceRequest) SetDirectoryId(v string) *WorkspaceRequest {
11421	s.DirectoryId = &v
11422	return s
11423}
11424
11425// SetRootVolumeEncryptionEnabled sets the RootVolumeEncryptionEnabled field's value.
11426func (s *WorkspaceRequest) SetRootVolumeEncryptionEnabled(v bool) *WorkspaceRequest {
11427	s.RootVolumeEncryptionEnabled = &v
11428	return s
11429}
11430
11431// SetTags sets the Tags field's value.
11432func (s *WorkspaceRequest) SetTags(v []*Tag) *WorkspaceRequest {
11433	s.Tags = v
11434	return s
11435}
11436
11437// SetUserName sets the UserName field's value.
11438func (s *WorkspaceRequest) SetUserName(v string) *WorkspaceRequest {
11439	s.UserName = &v
11440	return s
11441}
11442
11443// SetUserVolumeEncryptionEnabled sets the UserVolumeEncryptionEnabled field's value.
11444func (s *WorkspaceRequest) SetUserVolumeEncryptionEnabled(v bool) *WorkspaceRequest {
11445	s.UserVolumeEncryptionEnabled = &v
11446	return s
11447}
11448
11449// SetVolumeEncryptionKey sets the VolumeEncryptionKey field's value.
11450func (s *WorkspaceRequest) SetVolumeEncryptionKey(v string) *WorkspaceRequest {
11451	s.VolumeEncryptionKey = &v
11452	return s
11453}
11454
11455// SetWorkspaceProperties sets the WorkspaceProperties field's value.
11456func (s *WorkspaceRequest) SetWorkspaceProperties(v *WorkspaceProperties) *WorkspaceRequest {
11457	s.WorkspaceProperties = v
11458	return s
11459}
11460
11461// The workspaces_DefaultRole role could not be found. If this is the first
11462// time you are registering a directory, you will need to create the workspaces_DefaultRole
11463// role before you can register a directory. For more information, see Creating
11464// the workspaces_DefaultRole Role (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role).
11465type WorkspacesDefaultRoleNotFoundException struct {
11466	_            struct{}                  `type:"structure"`
11467	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11468
11469	Message_ *string `locationName:"message" type:"string"`
11470}
11471
11472// String returns the string representation
11473func (s WorkspacesDefaultRoleNotFoundException) String() string {
11474	return awsutil.Prettify(s)
11475}
11476
11477// GoString returns the string representation
11478func (s WorkspacesDefaultRoleNotFoundException) GoString() string {
11479	return s.String()
11480}
11481
11482func newErrorWorkspacesDefaultRoleNotFoundException(v protocol.ResponseMetadata) error {
11483	return &WorkspacesDefaultRoleNotFoundException{
11484		RespMetadata: v,
11485	}
11486}
11487
11488// Code returns the exception type name.
11489func (s *WorkspacesDefaultRoleNotFoundException) Code() string {
11490	return "WorkspacesDefaultRoleNotFoundException"
11491}
11492
11493// Message returns the exception's message.
11494func (s *WorkspacesDefaultRoleNotFoundException) Message() string {
11495	if s.Message_ != nil {
11496		return *s.Message_
11497	}
11498	return ""
11499}
11500
11501// OrigErr always returns nil, satisfies awserr.Error interface.
11502func (s *WorkspacesDefaultRoleNotFoundException) OrigErr() error {
11503	return nil
11504}
11505
11506func (s *WorkspacesDefaultRoleNotFoundException) Error() string {
11507	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11508}
11509
11510// Status code returns the HTTP status code for the request's response error.
11511func (s *WorkspacesDefaultRoleNotFoundException) StatusCode() int {
11512	return s.RespMetadata.StatusCode
11513}
11514
11515// RequestID returns the service's response RequestID for request.
11516func (s *WorkspacesDefaultRoleNotFoundException) RequestID() string {
11517	return s.RespMetadata.RequestID
11518}
11519
11520const (
11521	// AccessPropertyValueAllow is a AccessPropertyValue enum value
11522	AccessPropertyValueAllow = "ALLOW"
11523
11524	// AccessPropertyValueDeny is a AccessPropertyValue enum value
11525	AccessPropertyValueDeny = "DENY"
11526)
11527
11528// AccessPropertyValue_Values returns all elements of the AccessPropertyValue enum
11529func AccessPropertyValue_Values() []string {
11530	return []string{
11531		AccessPropertyValueAllow,
11532		AccessPropertyValueDeny,
11533	}
11534}
11535
11536const (
11537	// ApplicationMicrosoftOffice2016 is a Application enum value
11538	ApplicationMicrosoftOffice2016 = "Microsoft_Office_2016"
11539
11540	// ApplicationMicrosoftOffice2019 is a Application enum value
11541	ApplicationMicrosoftOffice2019 = "Microsoft_Office_2019"
11542)
11543
11544// Application_Values returns all elements of the Application enum
11545func Application_Values() []string {
11546	return []string{
11547		ApplicationMicrosoftOffice2016,
11548		ApplicationMicrosoftOffice2019,
11549	}
11550}
11551
11552const (
11553	// AssociationStatusNotAssociated is a AssociationStatus enum value
11554	AssociationStatusNotAssociated = "NOT_ASSOCIATED"
11555
11556	// AssociationStatusAssociatedWithOwnerAccount is a AssociationStatus enum value
11557	AssociationStatusAssociatedWithOwnerAccount = "ASSOCIATED_WITH_OWNER_ACCOUNT"
11558
11559	// AssociationStatusAssociatedWithSharedAccount is a AssociationStatus enum value
11560	AssociationStatusAssociatedWithSharedAccount = "ASSOCIATED_WITH_SHARED_ACCOUNT"
11561
11562	// AssociationStatusPendingAssociation is a AssociationStatus enum value
11563	AssociationStatusPendingAssociation = "PENDING_ASSOCIATION"
11564
11565	// AssociationStatusPendingDisassociation is a AssociationStatus enum value
11566	AssociationStatusPendingDisassociation = "PENDING_DISASSOCIATION"
11567)
11568
11569// AssociationStatus_Values returns all elements of the AssociationStatus enum
11570func AssociationStatus_Values() []string {
11571	return []string{
11572		AssociationStatusNotAssociated,
11573		AssociationStatusAssociatedWithOwnerAccount,
11574		AssociationStatusAssociatedWithSharedAccount,
11575		AssociationStatusPendingAssociation,
11576		AssociationStatusPendingDisassociation,
11577	}
11578}
11579
11580const (
11581	// ComputeValue is a Compute enum value
11582	ComputeValue = "VALUE"
11583
11584	// ComputeStandard is a Compute enum value
11585	ComputeStandard = "STANDARD"
11586
11587	// ComputePerformance is a Compute enum value
11588	ComputePerformance = "PERFORMANCE"
11589
11590	// ComputePower is a Compute enum value
11591	ComputePower = "POWER"
11592
11593	// ComputeGraphics is a Compute enum value
11594	ComputeGraphics = "GRAPHICS"
11595
11596	// ComputePowerpro is a Compute enum value
11597	ComputePowerpro = "POWERPRO"
11598
11599	// ComputeGraphicspro is a Compute enum value
11600	ComputeGraphicspro = "GRAPHICSPRO"
11601)
11602
11603// Compute_Values returns all elements of the Compute enum
11604func Compute_Values() []string {
11605	return []string{
11606		ComputeValue,
11607		ComputeStandard,
11608		ComputePerformance,
11609		ComputePower,
11610		ComputeGraphics,
11611		ComputePowerpro,
11612		ComputeGraphicspro,
11613	}
11614}
11615
11616const (
11617	// ConnectionAliasStateCreating is a ConnectionAliasState enum value
11618	ConnectionAliasStateCreating = "CREATING"
11619
11620	// ConnectionAliasStateCreated is a ConnectionAliasState enum value
11621	ConnectionAliasStateCreated = "CREATED"
11622
11623	// ConnectionAliasStateDeleting is a ConnectionAliasState enum value
11624	ConnectionAliasStateDeleting = "DELETING"
11625)
11626
11627// ConnectionAliasState_Values returns all elements of the ConnectionAliasState enum
11628func ConnectionAliasState_Values() []string {
11629	return []string{
11630		ConnectionAliasStateCreating,
11631		ConnectionAliasStateCreated,
11632		ConnectionAliasStateDeleting,
11633	}
11634}
11635
11636const (
11637	// ConnectionStateConnected is a ConnectionState enum value
11638	ConnectionStateConnected = "CONNECTED"
11639
11640	// ConnectionStateDisconnected is a ConnectionState enum value
11641	ConnectionStateDisconnected = "DISCONNECTED"
11642
11643	// ConnectionStateUnknown is a ConnectionState enum value
11644	ConnectionStateUnknown = "UNKNOWN"
11645)
11646
11647// ConnectionState_Values returns all elements of the ConnectionState enum
11648func ConnectionState_Values() []string {
11649	return []string{
11650		ConnectionStateConnected,
11651		ConnectionStateDisconnected,
11652		ConnectionStateUnknown,
11653	}
11654}
11655
11656const (
11657	// DedicatedTenancyModificationStateEnumPending is a DedicatedTenancyModificationStateEnum enum value
11658	DedicatedTenancyModificationStateEnumPending = "PENDING"
11659
11660	// DedicatedTenancyModificationStateEnumCompleted is a DedicatedTenancyModificationStateEnum enum value
11661	DedicatedTenancyModificationStateEnumCompleted = "COMPLETED"
11662
11663	// DedicatedTenancyModificationStateEnumFailed is a DedicatedTenancyModificationStateEnum enum value
11664	DedicatedTenancyModificationStateEnumFailed = "FAILED"
11665)
11666
11667// DedicatedTenancyModificationStateEnum_Values returns all elements of the DedicatedTenancyModificationStateEnum enum
11668func DedicatedTenancyModificationStateEnum_Values() []string {
11669	return []string{
11670		DedicatedTenancyModificationStateEnumPending,
11671		DedicatedTenancyModificationStateEnumCompleted,
11672		DedicatedTenancyModificationStateEnumFailed,
11673	}
11674}
11675
11676const (
11677	// DedicatedTenancySupportEnumEnabled is a DedicatedTenancySupportEnum enum value
11678	DedicatedTenancySupportEnumEnabled = "ENABLED"
11679)
11680
11681// DedicatedTenancySupportEnum_Values returns all elements of the DedicatedTenancySupportEnum enum
11682func DedicatedTenancySupportEnum_Values() []string {
11683	return []string{
11684		DedicatedTenancySupportEnumEnabled,
11685	}
11686}
11687
11688const (
11689	// DedicatedTenancySupportResultEnumEnabled is a DedicatedTenancySupportResultEnum enum value
11690	DedicatedTenancySupportResultEnumEnabled = "ENABLED"
11691
11692	// DedicatedTenancySupportResultEnumDisabled is a DedicatedTenancySupportResultEnum enum value
11693	DedicatedTenancySupportResultEnumDisabled = "DISABLED"
11694)
11695
11696// DedicatedTenancySupportResultEnum_Values returns all elements of the DedicatedTenancySupportResultEnum enum
11697func DedicatedTenancySupportResultEnum_Values() []string {
11698	return []string{
11699		DedicatedTenancySupportResultEnumEnabled,
11700		DedicatedTenancySupportResultEnumDisabled,
11701	}
11702}
11703
11704const (
11705	// ImageTypeOwned is a ImageType enum value
11706	ImageTypeOwned = "OWNED"
11707
11708	// ImageTypeShared is a ImageType enum value
11709	ImageTypeShared = "SHARED"
11710)
11711
11712// ImageType_Values returns all elements of the ImageType enum
11713func ImageType_Values() []string {
11714	return []string{
11715		ImageTypeOwned,
11716		ImageTypeShared,
11717	}
11718}
11719
11720const (
11721	// ModificationResourceEnumRootVolume is a ModificationResourceEnum enum value
11722	ModificationResourceEnumRootVolume = "ROOT_VOLUME"
11723
11724	// ModificationResourceEnumUserVolume is a ModificationResourceEnum enum value
11725	ModificationResourceEnumUserVolume = "USER_VOLUME"
11726
11727	// ModificationResourceEnumComputeType is a ModificationResourceEnum enum value
11728	ModificationResourceEnumComputeType = "COMPUTE_TYPE"
11729)
11730
11731// ModificationResourceEnum_Values returns all elements of the ModificationResourceEnum enum
11732func ModificationResourceEnum_Values() []string {
11733	return []string{
11734		ModificationResourceEnumRootVolume,
11735		ModificationResourceEnumUserVolume,
11736		ModificationResourceEnumComputeType,
11737	}
11738}
11739
11740const (
11741	// ModificationStateEnumUpdateInitiated is a ModificationStateEnum enum value
11742	ModificationStateEnumUpdateInitiated = "UPDATE_INITIATED"
11743
11744	// ModificationStateEnumUpdateInProgress is a ModificationStateEnum enum value
11745	ModificationStateEnumUpdateInProgress = "UPDATE_IN_PROGRESS"
11746)
11747
11748// ModificationStateEnum_Values returns all elements of the ModificationStateEnum enum
11749func ModificationStateEnum_Values() []string {
11750	return []string{
11751		ModificationStateEnumUpdateInitiated,
11752		ModificationStateEnumUpdateInProgress,
11753	}
11754}
11755
11756const (
11757	// OperatingSystemTypeWindows is a OperatingSystemType enum value
11758	OperatingSystemTypeWindows = "WINDOWS"
11759
11760	// OperatingSystemTypeLinux is a OperatingSystemType enum value
11761	OperatingSystemTypeLinux = "LINUX"
11762)
11763
11764// OperatingSystemType_Values returns all elements of the OperatingSystemType enum
11765func OperatingSystemType_Values() []string {
11766	return []string{
11767		OperatingSystemTypeWindows,
11768		OperatingSystemTypeLinux,
11769	}
11770}
11771
11772const (
11773	// ReconnectEnumEnabled is a ReconnectEnum enum value
11774	ReconnectEnumEnabled = "ENABLED"
11775
11776	// ReconnectEnumDisabled is a ReconnectEnum enum value
11777	ReconnectEnumDisabled = "DISABLED"
11778)
11779
11780// ReconnectEnum_Values returns all elements of the ReconnectEnum enum
11781func ReconnectEnum_Values() []string {
11782	return []string{
11783		ReconnectEnumEnabled,
11784		ReconnectEnumDisabled,
11785	}
11786}
11787
11788const (
11789	// RunningModeAutoStop is a RunningMode enum value
11790	RunningModeAutoStop = "AUTO_STOP"
11791
11792	// RunningModeAlwaysOn is a RunningMode enum value
11793	RunningModeAlwaysOn = "ALWAYS_ON"
11794)
11795
11796// RunningMode_Values returns all elements of the RunningMode enum
11797func RunningMode_Values() []string {
11798	return []string{
11799		RunningModeAutoStop,
11800		RunningModeAlwaysOn,
11801	}
11802}
11803
11804const (
11805	// TargetWorkspaceStateAvailable is a TargetWorkspaceState enum value
11806	TargetWorkspaceStateAvailable = "AVAILABLE"
11807
11808	// TargetWorkspaceStateAdminMaintenance is a TargetWorkspaceState enum value
11809	TargetWorkspaceStateAdminMaintenance = "ADMIN_MAINTENANCE"
11810)
11811
11812// TargetWorkspaceState_Values returns all elements of the TargetWorkspaceState enum
11813func TargetWorkspaceState_Values() []string {
11814	return []string{
11815		TargetWorkspaceStateAvailable,
11816		TargetWorkspaceStateAdminMaintenance,
11817	}
11818}
11819
11820const (
11821	// TenancyDedicated is a Tenancy enum value
11822	TenancyDedicated = "DEDICATED"
11823
11824	// TenancyShared is a Tenancy enum value
11825	TenancyShared = "SHARED"
11826)
11827
11828// Tenancy_Values returns all elements of the Tenancy enum
11829func Tenancy_Values() []string {
11830	return []string{
11831		TenancyDedicated,
11832		TenancyShared,
11833	}
11834}
11835
11836const (
11837	// WorkspaceDirectoryStateRegistering is a WorkspaceDirectoryState enum value
11838	WorkspaceDirectoryStateRegistering = "REGISTERING"
11839
11840	// WorkspaceDirectoryStateRegistered is a WorkspaceDirectoryState enum value
11841	WorkspaceDirectoryStateRegistered = "REGISTERED"
11842
11843	// WorkspaceDirectoryStateDeregistering is a WorkspaceDirectoryState enum value
11844	WorkspaceDirectoryStateDeregistering = "DEREGISTERING"
11845
11846	// WorkspaceDirectoryStateDeregistered is a WorkspaceDirectoryState enum value
11847	WorkspaceDirectoryStateDeregistered = "DEREGISTERED"
11848
11849	// WorkspaceDirectoryStateError is a WorkspaceDirectoryState enum value
11850	WorkspaceDirectoryStateError = "ERROR"
11851)
11852
11853// WorkspaceDirectoryState_Values returns all elements of the WorkspaceDirectoryState enum
11854func WorkspaceDirectoryState_Values() []string {
11855	return []string{
11856		WorkspaceDirectoryStateRegistering,
11857		WorkspaceDirectoryStateRegistered,
11858		WorkspaceDirectoryStateDeregistering,
11859		WorkspaceDirectoryStateDeregistered,
11860		WorkspaceDirectoryStateError,
11861	}
11862}
11863
11864const (
11865	// WorkspaceDirectoryTypeSimpleAd is a WorkspaceDirectoryType enum value
11866	WorkspaceDirectoryTypeSimpleAd = "SIMPLE_AD"
11867
11868	// WorkspaceDirectoryTypeAdConnector is a WorkspaceDirectoryType enum value
11869	WorkspaceDirectoryTypeAdConnector = "AD_CONNECTOR"
11870)
11871
11872// WorkspaceDirectoryType_Values returns all elements of the WorkspaceDirectoryType enum
11873func WorkspaceDirectoryType_Values() []string {
11874	return []string{
11875		WorkspaceDirectoryTypeSimpleAd,
11876		WorkspaceDirectoryTypeAdConnector,
11877	}
11878}
11879
11880const (
11881	// WorkspaceImageIngestionProcessByolRegular is a WorkspaceImageIngestionProcess enum value
11882	WorkspaceImageIngestionProcessByolRegular = "BYOL_REGULAR"
11883
11884	// WorkspaceImageIngestionProcessByolGraphics is a WorkspaceImageIngestionProcess enum value
11885	WorkspaceImageIngestionProcessByolGraphics = "BYOL_GRAPHICS"
11886
11887	// WorkspaceImageIngestionProcessByolGraphicspro is a WorkspaceImageIngestionProcess enum value
11888	WorkspaceImageIngestionProcessByolGraphicspro = "BYOL_GRAPHICSPRO"
11889
11890	// WorkspaceImageIngestionProcessByolRegularWsp is a WorkspaceImageIngestionProcess enum value
11891	WorkspaceImageIngestionProcessByolRegularWsp = "BYOL_REGULAR_WSP"
11892)
11893
11894// WorkspaceImageIngestionProcess_Values returns all elements of the WorkspaceImageIngestionProcess enum
11895func WorkspaceImageIngestionProcess_Values() []string {
11896	return []string{
11897		WorkspaceImageIngestionProcessByolRegular,
11898		WorkspaceImageIngestionProcessByolGraphics,
11899		WorkspaceImageIngestionProcessByolGraphicspro,
11900		WorkspaceImageIngestionProcessByolRegularWsp,
11901	}
11902}
11903
11904const (
11905	// WorkspaceImageRequiredTenancyDefault is a WorkspaceImageRequiredTenancy enum value
11906	WorkspaceImageRequiredTenancyDefault = "DEFAULT"
11907
11908	// WorkspaceImageRequiredTenancyDedicated is a WorkspaceImageRequiredTenancy enum value
11909	WorkspaceImageRequiredTenancyDedicated = "DEDICATED"
11910)
11911
11912// WorkspaceImageRequiredTenancy_Values returns all elements of the WorkspaceImageRequiredTenancy enum
11913func WorkspaceImageRequiredTenancy_Values() []string {
11914	return []string{
11915		WorkspaceImageRequiredTenancyDefault,
11916		WorkspaceImageRequiredTenancyDedicated,
11917	}
11918}
11919
11920const (
11921	// WorkspaceImageStateAvailable is a WorkspaceImageState enum value
11922	WorkspaceImageStateAvailable = "AVAILABLE"
11923
11924	// WorkspaceImageStatePending is a WorkspaceImageState enum value
11925	WorkspaceImageStatePending = "PENDING"
11926
11927	// WorkspaceImageStateError is a WorkspaceImageState enum value
11928	WorkspaceImageStateError = "ERROR"
11929)
11930
11931// WorkspaceImageState_Values returns all elements of the WorkspaceImageState enum
11932func WorkspaceImageState_Values() []string {
11933	return []string{
11934		WorkspaceImageStateAvailable,
11935		WorkspaceImageStatePending,
11936		WorkspaceImageStateError,
11937	}
11938}
11939
11940const (
11941	// WorkspaceStatePending is a WorkspaceState enum value
11942	WorkspaceStatePending = "PENDING"
11943
11944	// WorkspaceStateAvailable is a WorkspaceState enum value
11945	WorkspaceStateAvailable = "AVAILABLE"
11946
11947	// WorkspaceStateImpaired is a WorkspaceState enum value
11948	WorkspaceStateImpaired = "IMPAIRED"
11949
11950	// WorkspaceStateUnhealthy is a WorkspaceState enum value
11951	WorkspaceStateUnhealthy = "UNHEALTHY"
11952
11953	// WorkspaceStateRebooting is a WorkspaceState enum value
11954	WorkspaceStateRebooting = "REBOOTING"
11955
11956	// WorkspaceStateStarting is a WorkspaceState enum value
11957	WorkspaceStateStarting = "STARTING"
11958
11959	// WorkspaceStateRebuilding is a WorkspaceState enum value
11960	WorkspaceStateRebuilding = "REBUILDING"
11961
11962	// WorkspaceStateRestoring is a WorkspaceState enum value
11963	WorkspaceStateRestoring = "RESTORING"
11964
11965	// WorkspaceStateMaintenance is a WorkspaceState enum value
11966	WorkspaceStateMaintenance = "MAINTENANCE"
11967
11968	// WorkspaceStateAdminMaintenance is a WorkspaceState enum value
11969	WorkspaceStateAdminMaintenance = "ADMIN_MAINTENANCE"
11970
11971	// WorkspaceStateTerminating is a WorkspaceState enum value
11972	WorkspaceStateTerminating = "TERMINATING"
11973
11974	// WorkspaceStateTerminated is a WorkspaceState enum value
11975	WorkspaceStateTerminated = "TERMINATED"
11976
11977	// WorkspaceStateSuspended is a WorkspaceState enum value
11978	WorkspaceStateSuspended = "SUSPENDED"
11979
11980	// WorkspaceStateUpdating is a WorkspaceState enum value
11981	WorkspaceStateUpdating = "UPDATING"
11982
11983	// WorkspaceStateStopping is a WorkspaceState enum value
11984	WorkspaceStateStopping = "STOPPING"
11985
11986	// WorkspaceStateStopped is a WorkspaceState enum value
11987	WorkspaceStateStopped = "STOPPED"
11988
11989	// WorkspaceStateError is a WorkspaceState enum value
11990	WorkspaceStateError = "ERROR"
11991)
11992
11993// WorkspaceState_Values returns all elements of the WorkspaceState enum
11994func WorkspaceState_Values() []string {
11995	return []string{
11996		WorkspaceStatePending,
11997		WorkspaceStateAvailable,
11998		WorkspaceStateImpaired,
11999		WorkspaceStateUnhealthy,
12000		WorkspaceStateRebooting,
12001		WorkspaceStateStarting,
12002		WorkspaceStateRebuilding,
12003		WorkspaceStateRestoring,
12004		WorkspaceStateMaintenance,
12005		WorkspaceStateAdminMaintenance,
12006		WorkspaceStateTerminating,
12007		WorkspaceStateTerminated,
12008		WorkspaceStateSuspended,
12009		WorkspaceStateUpdating,
12010		WorkspaceStateStopping,
12011		WorkspaceStateStopped,
12012		WorkspaceStateError,
12013	}
12014}
12015