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