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 Amazon Web Services GovCloud (US), to copy images to and from other Regions,
356// contact Amazon Web Services Support.
357//
358// Before copying a shared image, be sure to verify that it has been shared
359// from the correct Amazon Web Services account. To determine if an image has
360// been shared and to see the ID of the Amazon Web Services account that owns
361// an image, use the DescribeWorkSpaceImages (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 opCreateUpdatedWorkspaceImage = "CreateUpdatedWorkspaceImage"
702
703// CreateUpdatedWorkspaceImageRequest generates a "aws/request.Request" representing the
704// client's request for the CreateUpdatedWorkspaceImage 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 CreateUpdatedWorkspaceImage for more information on using the CreateUpdatedWorkspaceImage
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 CreateUpdatedWorkspaceImageRequest method.
719//    req, resp := client.CreateUpdatedWorkspaceImageRequest(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/CreateUpdatedWorkspaceImage
727func (c *WorkSpaces) CreateUpdatedWorkspaceImageRequest(input *CreateUpdatedWorkspaceImageInput) (req *request.Request, output *CreateUpdatedWorkspaceImageOutput) {
728	op := &request.Operation{
729		Name:       opCreateUpdatedWorkspaceImage,
730		HTTPMethod: "POST",
731		HTTPPath:   "/",
732	}
733
734	if input == nil {
735		input = &CreateUpdatedWorkspaceImageInput{}
736	}
737
738	output = &CreateUpdatedWorkspaceImageOutput{}
739	req = c.newRequest(op, input, output)
740	return
741}
742
743// CreateUpdatedWorkspaceImage API operation for Amazon WorkSpaces.
744//
745// Creates a new updated WorkSpace image based on the specified source image.
746// The new updated WorkSpace image has the latest drivers and other updates
747// required by the Amazon WorkSpaces components.
748//
749// To determine which WorkSpace images need to be updated with the latest Amazon
750// WorkSpaces requirements, use DescribeWorkspaceImages (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceImages.html).
751//
752//    * Only Windows 10 WorkSpace images can be programmatically updated at
753//    this time.
754//
755//    * Microsoft Windows updates and other application updates are not included
756//    in the update process.
757//
758//    * The source WorkSpace image is not deleted. You can delete the source
759//    image after you've verified your new updated image and created a new bundle.
760//
761// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
762// with awserr.Error's Code and Message methods to get detailed information about
763// the error.
764//
765// See the AWS API reference guide for Amazon WorkSpaces's
766// API operation CreateUpdatedWorkspaceImage for usage and error information.
767//
768// Returned Error Types:
769//   * ResourceLimitExceededException
770//   Your resource limits have been exceeded.
771//
772//   * ResourceAlreadyExistsException
773//   The specified resource already exists.
774//
775//   * ResourceNotFoundException
776//   The resource could not be found.
777//
778//   * OperationNotSupportedException
779//   This operation is not supported.
780//
781//   * InvalidResourceStateException
782//   The state of the resource is not valid for this operation.
783//
784//   * AccessDeniedException
785//   The user is not authorized to access a resource.
786//
787//   * InvalidParameterValuesException
788//   One or more parameter values are not valid.
789//
790// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateUpdatedWorkspaceImage
791func (c *WorkSpaces) CreateUpdatedWorkspaceImage(input *CreateUpdatedWorkspaceImageInput) (*CreateUpdatedWorkspaceImageOutput, error) {
792	req, out := c.CreateUpdatedWorkspaceImageRequest(input)
793	return out, req.Send()
794}
795
796// CreateUpdatedWorkspaceImageWithContext is the same as CreateUpdatedWorkspaceImage with the addition of
797// the ability to pass a context and additional request options.
798//
799// See CreateUpdatedWorkspaceImage for details on how to use this API operation.
800//
801// The context must be non-nil and will be used for request cancellation. If
802// the context is nil a panic will occur. In the future the SDK may create
803// sub-contexts for http.Requests. See https://golang.org/pkg/context/
804// for more information on using Contexts.
805func (c *WorkSpaces) CreateUpdatedWorkspaceImageWithContext(ctx aws.Context, input *CreateUpdatedWorkspaceImageInput, opts ...request.Option) (*CreateUpdatedWorkspaceImageOutput, error) {
806	req, out := c.CreateUpdatedWorkspaceImageRequest(input)
807	req.SetContext(ctx)
808	req.ApplyOptions(opts...)
809	return out, req.Send()
810}
811
812const opCreateWorkspaceBundle = "CreateWorkspaceBundle"
813
814// CreateWorkspaceBundleRequest generates a "aws/request.Request" representing the
815// client's request for the CreateWorkspaceBundle operation. The "output" return
816// value will be populated with the request's response once the request completes
817// successfully.
818//
819// Use "Send" method on the returned Request to send the API call to the service.
820// the "output" return value is not valid until after Send returns without error.
821//
822// See CreateWorkspaceBundle for more information on using the CreateWorkspaceBundle
823// API call, and error handling.
824//
825// This method is useful when you want to inject custom logic or configuration
826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
827//
828//
829//    // Example sending a request using the CreateWorkspaceBundleRequest method.
830//    req, resp := client.CreateWorkspaceBundleRequest(params)
831//
832//    err := req.Send()
833//    if err == nil { // resp is now filled
834//        fmt.Println(resp)
835//    }
836//
837// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateWorkspaceBundle
838func (c *WorkSpaces) CreateWorkspaceBundleRequest(input *CreateWorkspaceBundleInput) (req *request.Request, output *CreateWorkspaceBundleOutput) {
839	op := &request.Operation{
840		Name:       opCreateWorkspaceBundle,
841		HTTPMethod: "POST",
842		HTTPPath:   "/",
843	}
844
845	if input == nil {
846		input = &CreateWorkspaceBundleInput{}
847	}
848
849	output = &CreateWorkspaceBundleOutput{}
850	req = c.newRequest(op, input, output)
851	return
852}
853
854// CreateWorkspaceBundle API operation for Amazon WorkSpaces.
855//
856// Creates the specified WorkSpace bundle. For more information about creating
857// WorkSpace bundles, see Create a Custom WorkSpaces Image and Bundle (https://docs.aws.amazon.com/workspaces/latest/adminguide/create-custom-bundle.html).
858//
859// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
860// with awserr.Error's Code and Message methods to get detailed information about
861// the error.
862//
863// See the AWS API reference guide for Amazon WorkSpaces's
864// API operation CreateWorkspaceBundle for usage and error information.
865//
866// Returned Error Types:
867//   * ResourceUnavailableException
868//   The specified resource is not available.
869//
870//   * ResourceAlreadyExistsException
871//   The specified resource already exists.
872//
873//   * ResourceLimitExceededException
874//   Your resource limits have been exceeded.
875//
876//   * InvalidParameterValuesException
877//   One or more parameter values are not valid.
878//
879//   * ResourceNotFoundException
880//   The resource could not be found.
881//
882//   * AccessDeniedException
883//   The user is not authorized to access a resource.
884//
885// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateWorkspaceBundle
886func (c *WorkSpaces) CreateWorkspaceBundle(input *CreateWorkspaceBundleInput) (*CreateWorkspaceBundleOutput, error) {
887	req, out := c.CreateWorkspaceBundleRequest(input)
888	return out, req.Send()
889}
890
891// CreateWorkspaceBundleWithContext is the same as CreateWorkspaceBundle with the addition of
892// the ability to pass a context and additional request options.
893//
894// See CreateWorkspaceBundle for details on how to use this API operation.
895//
896// The context must be non-nil and will be used for request cancellation. If
897// the context is nil a panic will occur. In the future the SDK may create
898// sub-contexts for http.Requests. See https://golang.org/pkg/context/
899// for more information on using Contexts.
900func (c *WorkSpaces) CreateWorkspaceBundleWithContext(ctx aws.Context, input *CreateWorkspaceBundleInput, opts ...request.Option) (*CreateWorkspaceBundleOutput, error) {
901	req, out := c.CreateWorkspaceBundleRequest(input)
902	req.SetContext(ctx)
903	req.ApplyOptions(opts...)
904	return out, req.Send()
905}
906
907const opCreateWorkspaces = "CreateWorkspaces"
908
909// CreateWorkspacesRequest generates a "aws/request.Request" representing the
910// client's request for the CreateWorkspaces operation. The "output" return
911// value will be populated with the request's response once the request completes
912// successfully.
913//
914// Use "Send" method on the returned Request to send the API call to the service.
915// the "output" return value is not valid until after Send returns without error.
916//
917// See CreateWorkspaces for more information on using the CreateWorkspaces
918// API call, and error handling.
919//
920// This method is useful when you want to inject custom logic or configuration
921// into the SDK's request lifecycle. Such as custom headers, or retry logic.
922//
923//
924//    // Example sending a request using the CreateWorkspacesRequest method.
925//    req, resp := client.CreateWorkspacesRequest(params)
926//
927//    err := req.Send()
928//    if err == nil { // resp is now filled
929//        fmt.Println(resp)
930//    }
931//
932// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateWorkspaces
933func (c *WorkSpaces) CreateWorkspacesRequest(input *CreateWorkspacesInput) (req *request.Request, output *CreateWorkspacesOutput) {
934	op := &request.Operation{
935		Name:       opCreateWorkspaces,
936		HTTPMethod: "POST",
937		HTTPPath:   "/",
938	}
939
940	if input == nil {
941		input = &CreateWorkspacesInput{}
942	}
943
944	output = &CreateWorkspacesOutput{}
945	req = c.newRequest(op, input, output)
946	return
947}
948
949// CreateWorkspaces API operation for Amazon WorkSpaces.
950//
951// Creates one or more WorkSpaces.
952//
953// This operation is asynchronous and returns before the WorkSpaces are created.
954//
955// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
956// with awserr.Error's Code and Message methods to get detailed information about
957// the error.
958//
959// See the AWS API reference guide for Amazon WorkSpaces's
960// API operation CreateWorkspaces for usage and error information.
961//
962// Returned Error Types:
963//   * ResourceLimitExceededException
964//   Your resource limits have been exceeded.
965//
966//   * InvalidParameterValuesException
967//   One or more parameter values are not valid.
968//
969// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateWorkspaces
970func (c *WorkSpaces) CreateWorkspaces(input *CreateWorkspacesInput) (*CreateWorkspacesOutput, error) {
971	req, out := c.CreateWorkspacesRequest(input)
972	return out, req.Send()
973}
974
975// CreateWorkspacesWithContext is the same as CreateWorkspaces with the addition of
976// the ability to pass a context and additional request options.
977//
978// See CreateWorkspaces for details on how to use this API operation.
979//
980// The context must be non-nil and will be used for request cancellation. If
981// the context is nil a panic will occur. In the future the SDK may create
982// sub-contexts for http.Requests. See https://golang.org/pkg/context/
983// for more information on using Contexts.
984func (c *WorkSpaces) CreateWorkspacesWithContext(ctx aws.Context, input *CreateWorkspacesInput, opts ...request.Option) (*CreateWorkspacesOutput, error) {
985	req, out := c.CreateWorkspacesRequest(input)
986	req.SetContext(ctx)
987	req.ApplyOptions(opts...)
988	return out, req.Send()
989}
990
991const opDeleteConnectionAlias = "DeleteConnectionAlias"
992
993// DeleteConnectionAliasRequest generates a "aws/request.Request" representing the
994// client's request for the DeleteConnectionAlias operation. The "output" return
995// value will be populated with the request's response once the request completes
996// successfully.
997//
998// Use "Send" method on the returned Request to send the API call to the service.
999// the "output" return value is not valid until after Send returns without error.
1000//
1001// See DeleteConnectionAlias for more information on using the DeleteConnectionAlias
1002// API call, and error handling.
1003//
1004// This method is useful when you want to inject custom logic or configuration
1005// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1006//
1007//
1008//    // Example sending a request using the DeleteConnectionAliasRequest method.
1009//    req, resp := client.DeleteConnectionAliasRequest(params)
1010//
1011//    err := req.Send()
1012//    if err == nil { // resp is now filled
1013//        fmt.Println(resp)
1014//    }
1015//
1016// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteConnectionAlias
1017func (c *WorkSpaces) DeleteConnectionAliasRequest(input *DeleteConnectionAliasInput) (req *request.Request, output *DeleteConnectionAliasOutput) {
1018	op := &request.Operation{
1019		Name:       opDeleteConnectionAlias,
1020		HTTPMethod: "POST",
1021		HTTPPath:   "/",
1022	}
1023
1024	if input == nil {
1025		input = &DeleteConnectionAliasInput{}
1026	}
1027
1028	output = &DeleteConnectionAliasOutput{}
1029	req = c.newRequest(op, input, output)
1030	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1031	return
1032}
1033
1034// DeleteConnectionAlias API operation for Amazon WorkSpaces.
1035//
1036// Deletes the specified connection alias. For more information, see Cross-Region
1037// Redirection for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
1038//
1039// If you will no longer be using a fully qualified domain name (FQDN) as the
1040// registration code for your WorkSpaces users, you must take certain precautions
1041// to prevent potential security issues. For more information, see Security
1042// 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).
1043//
1044// To delete a connection alias that has been shared, the shared account must
1045// first disassociate the connection alias from any directories it has been
1046// associated with. Then you must unshare the connection alias from the account
1047// it has been shared with. You can delete a connection alias only after it
1048// is no longer shared with any accounts or associated with any directories.
1049//
1050// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1051// with awserr.Error's Code and Message methods to get detailed information about
1052// the error.
1053//
1054// See the AWS API reference guide for Amazon WorkSpaces's
1055// API operation DeleteConnectionAlias for usage and error information.
1056//
1057// Returned Error Types:
1058//   * ResourceNotFoundException
1059//   The resource could not be found.
1060//
1061//   * ResourceAssociatedException
1062//   The resource is associated with a directory.
1063//
1064//   * AccessDeniedException
1065//   The user is not authorized to access a resource.
1066//
1067//   * InvalidParameterValuesException
1068//   One or more parameter values are not valid.
1069//
1070//   * InvalidResourceStateException
1071//   The state of the resource is not valid for this operation.
1072//
1073//   * OperationNotSupportedException
1074//   This operation is not supported.
1075//
1076// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteConnectionAlias
1077func (c *WorkSpaces) DeleteConnectionAlias(input *DeleteConnectionAliasInput) (*DeleteConnectionAliasOutput, error) {
1078	req, out := c.DeleteConnectionAliasRequest(input)
1079	return out, req.Send()
1080}
1081
1082// DeleteConnectionAliasWithContext is the same as DeleteConnectionAlias with the addition of
1083// the ability to pass a context and additional request options.
1084//
1085// See DeleteConnectionAlias for details on how to use this API operation.
1086//
1087// The context must be non-nil and will be used for request cancellation. If
1088// the context is nil a panic will occur. In the future the SDK may create
1089// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1090// for more information on using Contexts.
1091func (c *WorkSpaces) DeleteConnectionAliasWithContext(ctx aws.Context, input *DeleteConnectionAliasInput, opts ...request.Option) (*DeleteConnectionAliasOutput, error) {
1092	req, out := c.DeleteConnectionAliasRequest(input)
1093	req.SetContext(ctx)
1094	req.ApplyOptions(opts...)
1095	return out, req.Send()
1096}
1097
1098const opDeleteIpGroup = "DeleteIpGroup"
1099
1100// DeleteIpGroupRequest generates a "aws/request.Request" representing the
1101// client's request for the DeleteIpGroup operation. The "output" return
1102// value will be populated with the request's response once the request completes
1103// successfully.
1104//
1105// Use "Send" method on the returned Request to send the API call to the service.
1106// the "output" return value is not valid until after Send returns without error.
1107//
1108// See DeleteIpGroup for more information on using the DeleteIpGroup
1109// API call, and error handling.
1110//
1111// This method is useful when you want to inject custom logic or configuration
1112// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1113//
1114//
1115//    // Example sending a request using the DeleteIpGroupRequest method.
1116//    req, resp := client.DeleteIpGroupRequest(params)
1117//
1118//    err := req.Send()
1119//    if err == nil { // resp is now filled
1120//        fmt.Println(resp)
1121//    }
1122//
1123// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteIpGroup
1124func (c *WorkSpaces) DeleteIpGroupRequest(input *DeleteIpGroupInput) (req *request.Request, output *DeleteIpGroupOutput) {
1125	op := &request.Operation{
1126		Name:       opDeleteIpGroup,
1127		HTTPMethod: "POST",
1128		HTTPPath:   "/",
1129	}
1130
1131	if input == nil {
1132		input = &DeleteIpGroupInput{}
1133	}
1134
1135	output = &DeleteIpGroupOutput{}
1136	req = c.newRequest(op, input, output)
1137	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1138	return
1139}
1140
1141// DeleteIpGroup API operation for Amazon WorkSpaces.
1142//
1143// Deletes the specified IP access control group.
1144//
1145// You cannot delete an IP access control group that is associated with a directory.
1146//
1147// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1148// with awserr.Error's Code and Message methods to get detailed information about
1149// the error.
1150//
1151// See the AWS API reference guide for Amazon WorkSpaces's
1152// API operation DeleteIpGroup for usage and error information.
1153//
1154// Returned Error Types:
1155//   * InvalidParameterValuesException
1156//   One or more parameter values are not valid.
1157//
1158//   * ResourceNotFoundException
1159//   The resource could not be found.
1160//
1161//   * ResourceAssociatedException
1162//   The resource is associated with a directory.
1163//
1164//   * AccessDeniedException
1165//   The user is not authorized to access a resource.
1166//
1167// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteIpGroup
1168func (c *WorkSpaces) DeleteIpGroup(input *DeleteIpGroupInput) (*DeleteIpGroupOutput, error) {
1169	req, out := c.DeleteIpGroupRequest(input)
1170	return out, req.Send()
1171}
1172
1173// DeleteIpGroupWithContext is the same as DeleteIpGroup with the addition of
1174// the ability to pass a context and additional request options.
1175//
1176// See DeleteIpGroup for details on how to use this API operation.
1177//
1178// The context must be non-nil and will be used for request cancellation. If
1179// the context is nil a panic will occur. In the future the SDK may create
1180// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1181// for more information on using Contexts.
1182func (c *WorkSpaces) DeleteIpGroupWithContext(ctx aws.Context, input *DeleteIpGroupInput, opts ...request.Option) (*DeleteIpGroupOutput, error) {
1183	req, out := c.DeleteIpGroupRequest(input)
1184	req.SetContext(ctx)
1185	req.ApplyOptions(opts...)
1186	return out, req.Send()
1187}
1188
1189const opDeleteTags = "DeleteTags"
1190
1191// DeleteTagsRequest generates a "aws/request.Request" representing the
1192// client's request for the DeleteTags operation. The "output" return
1193// value will be populated with the request's response once the request completes
1194// successfully.
1195//
1196// Use "Send" method on the returned Request to send the API call to the service.
1197// the "output" return value is not valid until after Send returns without error.
1198//
1199// See DeleteTags for more information on using the DeleteTags
1200// API call, and error handling.
1201//
1202// This method is useful when you want to inject custom logic or configuration
1203// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1204//
1205//
1206//    // Example sending a request using the DeleteTagsRequest method.
1207//    req, resp := client.DeleteTagsRequest(params)
1208//
1209//    err := req.Send()
1210//    if err == nil { // resp is now filled
1211//        fmt.Println(resp)
1212//    }
1213//
1214// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteTags
1215func (c *WorkSpaces) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, output *DeleteTagsOutput) {
1216	op := &request.Operation{
1217		Name:       opDeleteTags,
1218		HTTPMethod: "POST",
1219		HTTPPath:   "/",
1220	}
1221
1222	if input == nil {
1223		input = &DeleteTagsInput{}
1224	}
1225
1226	output = &DeleteTagsOutput{}
1227	req = c.newRequest(op, input, output)
1228	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1229	return
1230}
1231
1232// DeleteTags API operation for Amazon WorkSpaces.
1233//
1234// Deletes the specified tags from the specified WorkSpaces resource.
1235//
1236// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1237// with awserr.Error's Code and Message methods to get detailed information about
1238// the error.
1239//
1240// See the AWS API reference guide for Amazon WorkSpaces's
1241// API operation DeleteTags for usage and error information.
1242//
1243// Returned Error Types:
1244//   * ResourceNotFoundException
1245//   The resource could not be found.
1246//
1247//   * InvalidParameterValuesException
1248//   One or more parameter values are not valid.
1249//
1250// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteTags
1251func (c *WorkSpaces) DeleteTags(input *DeleteTagsInput) (*DeleteTagsOutput, error) {
1252	req, out := c.DeleteTagsRequest(input)
1253	return out, req.Send()
1254}
1255
1256// DeleteTagsWithContext is the same as DeleteTags with the addition of
1257// the ability to pass a context and additional request options.
1258//
1259// See DeleteTags for details on how to use this API operation.
1260//
1261// The context must be non-nil and will be used for request cancellation. If
1262// the context is nil a panic will occur. In the future the SDK may create
1263// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1264// for more information on using Contexts.
1265func (c *WorkSpaces) DeleteTagsWithContext(ctx aws.Context, input *DeleteTagsInput, opts ...request.Option) (*DeleteTagsOutput, error) {
1266	req, out := c.DeleteTagsRequest(input)
1267	req.SetContext(ctx)
1268	req.ApplyOptions(opts...)
1269	return out, req.Send()
1270}
1271
1272const opDeleteWorkspaceBundle = "DeleteWorkspaceBundle"
1273
1274// DeleteWorkspaceBundleRequest generates a "aws/request.Request" representing the
1275// client's request for the DeleteWorkspaceBundle operation. The "output" return
1276// value will be populated with the request's response once the request completes
1277// successfully.
1278//
1279// Use "Send" method on the returned Request to send the API call to the service.
1280// the "output" return value is not valid until after Send returns without error.
1281//
1282// See DeleteWorkspaceBundle for more information on using the DeleteWorkspaceBundle
1283// API call, and error handling.
1284//
1285// This method is useful when you want to inject custom logic or configuration
1286// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1287//
1288//
1289//    // Example sending a request using the DeleteWorkspaceBundleRequest method.
1290//    req, resp := client.DeleteWorkspaceBundleRequest(params)
1291//
1292//    err := req.Send()
1293//    if err == nil { // resp is now filled
1294//        fmt.Println(resp)
1295//    }
1296//
1297// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteWorkspaceBundle
1298func (c *WorkSpaces) DeleteWorkspaceBundleRequest(input *DeleteWorkspaceBundleInput) (req *request.Request, output *DeleteWorkspaceBundleOutput) {
1299	op := &request.Operation{
1300		Name:       opDeleteWorkspaceBundle,
1301		HTTPMethod: "POST",
1302		HTTPPath:   "/",
1303	}
1304
1305	if input == nil {
1306		input = &DeleteWorkspaceBundleInput{}
1307	}
1308
1309	output = &DeleteWorkspaceBundleOutput{}
1310	req = c.newRequest(op, input, output)
1311	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1312	return
1313}
1314
1315// DeleteWorkspaceBundle API operation for Amazon WorkSpaces.
1316//
1317// Deletes the specified WorkSpace bundle. For more information about deleting
1318// WorkSpace bundles, see Delete a Custom WorkSpaces Bundle or Image (https://docs.aws.amazon.com/workspaces/latest/adminguide/delete_bundle.html).
1319//
1320// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1321// with awserr.Error's Code and Message methods to get detailed information about
1322// the error.
1323//
1324// See the AWS API reference guide for Amazon WorkSpaces's
1325// API operation DeleteWorkspaceBundle for usage and error information.
1326//
1327// Returned Error Types:
1328//   * InvalidParameterValuesException
1329//   One or more parameter values are not valid.
1330//
1331//   * ResourceNotFoundException
1332//   The resource could not be found.
1333//
1334//   * ResourceAssociatedException
1335//   The resource is associated with a directory.
1336//
1337//   * AccessDeniedException
1338//   The user is not authorized to access a resource.
1339//
1340// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteWorkspaceBundle
1341func (c *WorkSpaces) DeleteWorkspaceBundle(input *DeleteWorkspaceBundleInput) (*DeleteWorkspaceBundleOutput, error) {
1342	req, out := c.DeleteWorkspaceBundleRequest(input)
1343	return out, req.Send()
1344}
1345
1346// DeleteWorkspaceBundleWithContext is the same as DeleteWorkspaceBundle with the addition of
1347// the ability to pass a context and additional request options.
1348//
1349// See DeleteWorkspaceBundle for details on how to use this API operation.
1350//
1351// The context must be non-nil and will be used for request cancellation. If
1352// the context is nil a panic will occur. In the future the SDK may create
1353// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1354// for more information on using Contexts.
1355func (c *WorkSpaces) DeleteWorkspaceBundleWithContext(ctx aws.Context, input *DeleteWorkspaceBundleInput, opts ...request.Option) (*DeleteWorkspaceBundleOutput, error) {
1356	req, out := c.DeleteWorkspaceBundleRequest(input)
1357	req.SetContext(ctx)
1358	req.ApplyOptions(opts...)
1359	return out, req.Send()
1360}
1361
1362const opDeleteWorkspaceImage = "DeleteWorkspaceImage"
1363
1364// DeleteWorkspaceImageRequest generates a "aws/request.Request" representing the
1365// client's request for the DeleteWorkspaceImage operation. The "output" return
1366// value will be populated with the request's response once the request completes
1367// successfully.
1368//
1369// Use "Send" method on the returned Request to send the API call to the service.
1370// the "output" return value is not valid until after Send returns without error.
1371//
1372// See DeleteWorkspaceImage for more information on using the DeleteWorkspaceImage
1373// API call, and error handling.
1374//
1375// This method is useful when you want to inject custom logic or configuration
1376// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1377//
1378//
1379//    // Example sending a request using the DeleteWorkspaceImageRequest method.
1380//    req, resp := client.DeleteWorkspaceImageRequest(params)
1381//
1382//    err := req.Send()
1383//    if err == nil { // resp is now filled
1384//        fmt.Println(resp)
1385//    }
1386//
1387// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteWorkspaceImage
1388func (c *WorkSpaces) DeleteWorkspaceImageRequest(input *DeleteWorkspaceImageInput) (req *request.Request, output *DeleteWorkspaceImageOutput) {
1389	op := &request.Operation{
1390		Name:       opDeleteWorkspaceImage,
1391		HTTPMethod: "POST",
1392		HTTPPath:   "/",
1393	}
1394
1395	if input == nil {
1396		input = &DeleteWorkspaceImageInput{}
1397	}
1398
1399	output = &DeleteWorkspaceImageOutput{}
1400	req = c.newRequest(op, input, output)
1401	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1402	return
1403}
1404
1405// DeleteWorkspaceImage API operation for Amazon WorkSpaces.
1406//
1407// Deletes the specified image from your account. To delete an image, you must
1408// first delete any bundles that are associated with the image and unshare the
1409// image if it is shared with other accounts.
1410//
1411// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1412// with awserr.Error's Code and Message methods to get detailed information about
1413// the error.
1414//
1415// See the AWS API reference guide for Amazon WorkSpaces's
1416// API operation DeleteWorkspaceImage for usage and error information.
1417//
1418// Returned Error Types:
1419//   * ResourceAssociatedException
1420//   The resource is associated with a directory.
1421//
1422//   * InvalidResourceStateException
1423//   The state of the resource is not valid for this operation.
1424//
1425//   * AccessDeniedException
1426//   The user is not authorized to access a resource.
1427//
1428// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteWorkspaceImage
1429func (c *WorkSpaces) DeleteWorkspaceImage(input *DeleteWorkspaceImageInput) (*DeleteWorkspaceImageOutput, error) {
1430	req, out := c.DeleteWorkspaceImageRequest(input)
1431	return out, req.Send()
1432}
1433
1434// DeleteWorkspaceImageWithContext is the same as DeleteWorkspaceImage with the addition of
1435// the ability to pass a context and additional request options.
1436//
1437// See DeleteWorkspaceImage for details on how to use this API operation.
1438//
1439// The context must be non-nil and will be used for request cancellation. If
1440// the context is nil a panic will occur. In the future the SDK may create
1441// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1442// for more information on using Contexts.
1443func (c *WorkSpaces) DeleteWorkspaceImageWithContext(ctx aws.Context, input *DeleteWorkspaceImageInput, opts ...request.Option) (*DeleteWorkspaceImageOutput, error) {
1444	req, out := c.DeleteWorkspaceImageRequest(input)
1445	req.SetContext(ctx)
1446	req.ApplyOptions(opts...)
1447	return out, req.Send()
1448}
1449
1450const opDeregisterWorkspaceDirectory = "DeregisterWorkspaceDirectory"
1451
1452// DeregisterWorkspaceDirectoryRequest generates a "aws/request.Request" representing the
1453// client's request for the DeregisterWorkspaceDirectory operation. The "output" return
1454// value will be populated with the request's response once the request completes
1455// successfully.
1456//
1457// Use "Send" method on the returned Request to send the API call to the service.
1458// the "output" return value is not valid until after Send returns without error.
1459//
1460// See DeregisterWorkspaceDirectory for more information on using the DeregisterWorkspaceDirectory
1461// API call, and error handling.
1462//
1463// This method is useful when you want to inject custom logic or configuration
1464// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1465//
1466//
1467//    // Example sending a request using the DeregisterWorkspaceDirectoryRequest method.
1468//    req, resp := client.DeregisterWorkspaceDirectoryRequest(params)
1469//
1470//    err := req.Send()
1471//    if err == nil { // resp is now filled
1472//        fmt.Println(resp)
1473//    }
1474//
1475// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeregisterWorkspaceDirectory
1476func (c *WorkSpaces) DeregisterWorkspaceDirectoryRequest(input *DeregisterWorkspaceDirectoryInput) (req *request.Request, output *DeregisterWorkspaceDirectoryOutput) {
1477	op := &request.Operation{
1478		Name:       opDeregisterWorkspaceDirectory,
1479		HTTPMethod: "POST",
1480		HTTPPath:   "/",
1481	}
1482
1483	if input == nil {
1484		input = &DeregisterWorkspaceDirectoryInput{}
1485	}
1486
1487	output = &DeregisterWorkspaceDirectoryOutput{}
1488	req = c.newRequest(op, input, output)
1489	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1490	return
1491}
1492
1493// DeregisterWorkspaceDirectory API operation for Amazon WorkSpaces.
1494//
1495// Deregisters the specified directory. This operation is asynchronous and returns
1496// before the WorkSpace directory is deregistered. If any WorkSpaces are registered
1497// to this directory, you must remove them before you can deregister the directory.
1498//
1499// Simple AD and AD Connector are made available to you free of charge to use
1500// with WorkSpaces. If there are no WorkSpaces being used with your Simple AD
1501// or AD Connector directory for 30 consecutive days, this directory will be
1502// automatically deregistered for use with Amazon WorkSpaces, and you will be
1503// charged for this directory as per the Directory Service pricing terms (http://aws.amazon.com/directoryservice/pricing/).
1504//
1505// To delete empty directories, see Delete the Directory for Your WorkSpaces
1506// (https://docs.aws.amazon.com/workspaces/latest/adminguide/delete-workspaces-directory.html).
1507// If you delete your Simple AD or AD Connector directory, you can always create
1508// a new one when you want to start using WorkSpaces again.
1509//
1510// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1511// with awserr.Error's Code and Message methods to get detailed information about
1512// the error.
1513//
1514// See the AWS API reference guide for Amazon WorkSpaces's
1515// API operation DeregisterWorkspaceDirectory for usage and error information.
1516//
1517// Returned Error Types:
1518//   * AccessDeniedException
1519//   The user is not authorized to access a resource.
1520//
1521//   * InvalidParameterValuesException
1522//   One or more parameter values are not valid.
1523//
1524//   * OperationNotSupportedException
1525//   This operation is not supported.
1526//
1527//   * ResourceNotFoundException
1528//   The resource could not be found.
1529//
1530//   * InvalidResourceStateException
1531//   The state of the resource is not valid for this operation.
1532//
1533// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeregisterWorkspaceDirectory
1534func (c *WorkSpaces) DeregisterWorkspaceDirectory(input *DeregisterWorkspaceDirectoryInput) (*DeregisterWorkspaceDirectoryOutput, error) {
1535	req, out := c.DeregisterWorkspaceDirectoryRequest(input)
1536	return out, req.Send()
1537}
1538
1539// DeregisterWorkspaceDirectoryWithContext is the same as DeregisterWorkspaceDirectory with the addition of
1540// the ability to pass a context and additional request options.
1541//
1542// See DeregisterWorkspaceDirectory for details on how to use this API operation.
1543//
1544// The context must be non-nil and will be used for request cancellation. If
1545// the context is nil a panic will occur. In the future the SDK may create
1546// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1547// for more information on using Contexts.
1548func (c *WorkSpaces) DeregisterWorkspaceDirectoryWithContext(ctx aws.Context, input *DeregisterWorkspaceDirectoryInput, opts ...request.Option) (*DeregisterWorkspaceDirectoryOutput, error) {
1549	req, out := c.DeregisterWorkspaceDirectoryRequest(input)
1550	req.SetContext(ctx)
1551	req.ApplyOptions(opts...)
1552	return out, req.Send()
1553}
1554
1555const opDescribeAccount = "DescribeAccount"
1556
1557// DescribeAccountRequest generates a "aws/request.Request" representing the
1558// client's request for the DescribeAccount operation. The "output" return
1559// value will be populated with the request's response once the request completes
1560// successfully.
1561//
1562// Use "Send" method on the returned Request to send the API call to the service.
1563// the "output" return value is not valid until after Send returns without error.
1564//
1565// See DescribeAccount for more information on using the DescribeAccount
1566// API call, and error handling.
1567//
1568// This method is useful when you want to inject custom logic or configuration
1569// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1570//
1571//
1572//    // Example sending a request using the DescribeAccountRequest method.
1573//    req, resp := client.DescribeAccountRequest(params)
1574//
1575//    err := req.Send()
1576//    if err == nil { // resp is now filled
1577//        fmt.Println(resp)
1578//    }
1579//
1580// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccount
1581func (c *WorkSpaces) DescribeAccountRequest(input *DescribeAccountInput) (req *request.Request, output *DescribeAccountOutput) {
1582	op := &request.Operation{
1583		Name:       opDescribeAccount,
1584		HTTPMethod: "POST",
1585		HTTPPath:   "/",
1586	}
1587
1588	if input == nil {
1589		input = &DescribeAccountInput{}
1590	}
1591
1592	output = &DescribeAccountOutput{}
1593	req = c.newRequest(op, input, output)
1594	return
1595}
1596
1597// DescribeAccount API operation for Amazon WorkSpaces.
1598//
1599// Retrieves a list that describes the configuration of Bring Your Own License
1600// (BYOL) for the specified account.
1601//
1602// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1603// with awserr.Error's Code and Message methods to get detailed information about
1604// the error.
1605//
1606// See the AWS API reference guide for Amazon WorkSpaces's
1607// API operation DescribeAccount for usage and error information.
1608//
1609// Returned Error Types:
1610//   * AccessDeniedException
1611//   The user is not authorized to access a resource.
1612//
1613// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccount
1614func (c *WorkSpaces) DescribeAccount(input *DescribeAccountInput) (*DescribeAccountOutput, error) {
1615	req, out := c.DescribeAccountRequest(input)
1616	return out, req.Send()
1617}
1618
1619// DescribeAccountWithContext is the same as DescribeAccount with the addition of
1620// the ability to pass a context and additional request options.
1621//
1622// See DescribeAccount for details on how to use this API operation.
1623//
1624// The context must be non-nil and will be used for request cancellation. If
1625// the context is nil a panic will occur. In the future the SDK may create
1626// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1627// for more information on using Contexts.
1628func (c *WorkSpaces) DescribeAccountWithContext(ctx aws.Context, input *DescribeAccountInput, opts ...request.Option) (*DescribeAccountOutput, error) {
1629	req, out := c.DescribeAccountRequest(input)
1630	req.SetContext(ctx)
1631	req.ApplyOptions(opts...)
1632	return out, req.Send()
1633}
1634
1635const opDescribeAccountModifications = "DescribeAccountModifications"
1636
1637// DescribeAccountModificationsRequest generates a "aws/request.Request" representing the
1638// client's request for the DescribeAccountModifications operation. The "output" return
1639// value will be populated with the request's response once the request completes
1640// successfully.
1641//
1642// Use "Send" method on the returned Request to send the API call to the service.
1643// the "output" return value is not valid until after Send returns without error.
1644//
1645// See DescribeAccountModifications for more information on using the DescribeAccountModifications
1646// API call, and error handling.
1647//
1648// This method is useful when you want to inject custom logic or configuration
1649// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1650//
1651//
1652//    // Example sending a request using the DescribeAccountModificationsRequest method.
1653//    req, resp := client.DescribeAccountModificationsRequest(params)
1654//
1655//    err := req.Send()
1656//    if err == nil { // resp is now filled
1657//        fmt.Println(resp)
1658//    }
1659//
1660// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccountModifications
1661func (c *WorkSpaces) DescribeAccountModificationsRequest(input *DescribeAccountModificationsInput) (req *request.Request, output *DescribeAccountModificationsOutput) {
1662	op := &request.Operation{
1663		Name:       opDescribeAccountModifications,
1664		HTTPMethod: "POST",
1665		HTTPPath:   "/",
1666	}
1667
1668	if input == nil {
1669		input = &DescribeAccountModificationsInput{}
1670	}
1671
1672	output = &DescribeAccountModificationsOutput{}
1673	req = c.newRequest(op, input, output)
1674	return
1675}
1676
1677// DescribeAccountModifications API operation for Amazon WorkSpaces.
1678//
1679// Retrieves a list that describes modifications to the configuration of Bring
1680// Your Own License (BYOL) for the specified account.
1681//
1682// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1683// with awserr.Error's Code and Message methods to get detailed information about
1684// the error.
1685//
1686// See the AWS API reference guide for Amazon WorkSpaces's
1687// API operation DescribeAccountModifications for usage and error information.
1688//
1689// Returned Error Types:
1690//   * AccessDeniedException
1691//   The user is not authorized to access a resource.
1692//
1693// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccountModifications
1694func (c *WorkSpaces) DescribeAccountModifications(input *DescribeAccountModificationsInput) (*DescribeAccountModificationsOutput, error) {
1695	req, out := c.DescribeAccountModificationsRequest(input)
1696	return out, req.Send()
1697}
1698
1699// DescribeAccountModificationsWithContext is the same as DescribeAccountModifications with the addition of
1700// the ability to pass a context and additional request options.
1701//
1702// See DescribeAccountModifications for details on how to use this API operation.
1703//
1704// The context must be non-nil and will be used for request cancellation. If
1705// the context is nil a panic will occur. In the future the SDK may create
1706// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1707// for more information on using Contexts.
1708func (c *WorkSpaces) DescribeAccountModificationsWithContext(ctx aws.Context, input *DescribeAccountModificationsInput, opts ...request.Option) (*DescribeAccountModificationsOutput, error) {
1709	req, out := c.DescribeAccountModificationsRequest(input)
1710	req.SetContext(ctx)
1711	req.ApplyOptions(opts...)
1712	return out, req.Send()
1713}
1714
1715const opDescribeClientProperties = "DescribeClientProperties"
1716
1717// DescribeClientPropertiesRequest generates a "aws/request.Request" representing the
1718// client's request for the DescribeClientProperties operation. The "output" return
1719// value will be populated with the request's response once the request completes
1720// successfully.
1721//
1722// Use "Send" method on the returned Request to send the API call to the service.
1723// the "output" return value is not valid until after Send returns without error.
1724//
1725// See DescribeClientProperties for more information on using the DescribeClientProperties
1726// API call, and error handling.
1727//
1728// This method is useful when you want to inject custom logic or configuration
1729// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1730//
1731//
1732//    // Example sending a request using the DescribeClientPropertiesRequest method.
1733//    req, resp := client.DescribeClientPropertiesRequest(params)
1734//
1735//    err := req.Send()
1736//    if err == nil { // resp is now filled
1737//        fmt.Println(resp)
1738//    }
1739//
1740// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeClientProperties
1741func (c *WorkSpaces) DescribeClientPropertiesRequest(input *DescribeClientPropertiesInput) (req *request.Request, output *DescribeClientPropertiesOutput) {
1742	op := &request.Operation{
1743		Name:       opDescribeClientProperties,
1744		HTTPMethod: "POST",
1745		HTTPPath:   "/",
1746	}
1747
1748	if input == nil {
1749		input = &DescribeClientPropertiesInput{}
1750	}
1751
1752	output = &DescribeClientPropertiesOutput{}
1753	req = c.newRequest(op, input, output)
1754	return
1755}
1756
1757// DescribeClientProperties API operation for Amazon WorkSpaces.
1758//
1759// Retrieves a list that describes one or more specified Amazon WorkSpaces clients.
1760//
1761// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1762// with awserr.Error's Code and Message methods to get detailed information about
1763// the error.
1764//
1765// See the AWS API reference guide for Amazon WorkSpaces's
1766// API operation DescribeClientProperties for usage and error information.
1767//
1768// Returned Error Types:
1769//   * InvalidParameterValuesException
1770//   One or more parameter values are not valid.
1771//
1772//   * ResourceNotFoundException
1773//   The resource could not be found.
1774//
1775//   * AccessDeniedException
1776//   The user is not authorized to access a resource.
1777//
1778// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeClientProperties
1779func (c *WorkSpaces) DescribeClientProperties(input *DescribeClientPropertiesInput) (*DescribeClientPropertiesOutput, error) {
1780	req, out := c.DescribeClientPropertiesRequest(input)
1781	return out, req.Send()
1782}
1783
1784// DescribeClientPropertiesWithContext is the same as DescribeClientProperties with the addition of
1785// the ability to pass a context and additional request options.
1786//
1787// See DescribeClientProperties for details on how to use this API operation.
1788//
1789// The context must be non-nil and will be used for request cancellation. If
1790// the context is nil a panic will occur. In the future the SDK may create
1791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1792// for more information on using Contexts.
1793func (c *WorkSpaces) DescribeClientPropertiesWithContext(ctx aws.Context, input *DescribeClientPropertiesInput, opts ...request.Option) (*DescribeClientPropertiesOutput, error) {
1794	req, out := c.DescribeClientPropertiesRequest(input)
1795	req.SetContext(ctx)
1796	req.ApplyOptions(opts...)
1797	return out, req.Send()
1798}
1799
1800const opDescribeConnectionAliasPermissions = "DescribeConnectionAliasPermissions"
1801
1802// DescribeConnectionAliasPermissionsRequest generates a "aws/request.Request" representing the
1803// client's request for the DescribeConnectionAliasPermissions operation. The "output" return
1804// value will be populated with the request's response once the request completes
1805// successfully.
1806//
1807// Use "Send" method on the returned Request to send the API call to the service.
1808// the "output" return value is not valid until after Send returns without error.
1809//
1810// See DescribeConnectionAliasPermissions for more information on using the DescribeConnectionAliasPermissions
1811// API call, and error handling.
1812//
1813// This method is useful when you want to inject custom logic or configuration
1814// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1815//
1816//
1817//    // Example sending a request using the DescribeConnectionAliasPermissionsRequest method.
1818//    req, resp := client.DescribeConnectionAliasPermissionsRequest(params)
1819//
1820//    err := req.Send()
1821//    if err == nil { // resp is now filled
1822//        fmt.Println(resp)
1823//    }
1824//
1825// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeConnectionAliasPermissions
1826func (c *WorkSpaces) DescribeConnectionAliasPermissionsRequest(input *DescribeConnectionAliasPermissionsInput) (req *request.Request, output *DescribeConnectionAliasPermissionsOutput) {
1827	op := &request.Operation{
1828		Name:       opDescribeConnectionAliasPermissions,
1829		HTTPMethod: "POST",
1830		HTTPPath:   "/",
1831	}
1832
1833	if input == nil {
1834		input = &DescribeConnectionAliasPermissionsInput{}
1835	}
1836
1837	output = &DescribeConnectionAliasPermissionsOutput{}
1838	req = c.newRequest(op, input, output)
1839	return
1840}
1841
1842// DescribeConnectionAliasPermissions API operation for Amazon WorkSpaces.
1843//
1844// Describes the permissions that the owner of a connection alias has granted
1845// to another Amazon Web Services account for the specified connection alias.
1846// For more information, see Cross-Region Redirection for Amazon WorkSpaces
1847// (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
1848//
1849// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1850// with awserr.Error's Code and Message methods to get detailed information about
1851// the error.
1852//
1853// See the AWS API reference guide for Amazon WorkSpaces's
1854// API operation DescribeConnectionAliasPermissions for usage and error information.
1855//
1856// Returned Error Types:
1857//   * AccessDeniedException
1858//   The user is not authorized to access a resource.
1859//
1860//   * InvalidParameterValuesException
1861//   One or more parameter values are not valid.
1862//
1863//   * ResourceNotFoundException
1864//   The resource could not be found.
1865//
1866//   * OperationNotSupportedException
1867//   This operation is not supported.
1868//
1869// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeConnectionAliasPermissions
1870func (c *WorkSpaces) DescribeConnectionAliasPermissions(input *DescribeConnectionAliasPermissionsInput) (*DescribeConnectionAliasPermissionsOutput, error) {
1871	req, out := c.DescribeConnectionAliasPermissionsRequest(input)
1872	return out, req.Send()
1873}
1874
1875// DescribeConnectionAliasPermissionsWithContext is the same as DescribeConnectionAliasPermissions with the addition of
1876// the ability to pass a context and additional request options.
1877//
1878// See DescribeConnectionAliasPermissions for details on how to use this API operation.
1879//
1880// The context must be non-nil and will be used for request cancellation. If
1881// the context is nil a panic will occur. In the future the SDK may create
1882// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1883// for more information on using Contexts.
1884func (c *WorkSpaces) DescribeConnectionAliasPermissionsWithContext(ctx aws.Context, input *DescribeConnectionAliasPermissionsInput, opts ...request.Option) (*DescribeConnectionAliasPermissionsOutput, error) {
1885	req, out := c.DescribeConnectionAliasPermissionsRequest(input)
1886	req.SetContext(ctx)
1887	req.ApplyOptions(opts...)
1888	return out, req.Send()
1889}
1890
1891const opDescribeConnectionAliases = "DescribeConnectionAliases"
1892
1893// DescribeConnectionAliasesRequest generates a "aws/request.Request" representing the
1894// client's request for the DescribeConnectionAliases operation. The "output" return
1895// value will be populated with the request's response once the request completes
1896// successfully.
1897//
1898// Use "Send" method on the returned Request to send the API call to the service.
1899// the "output" return value is not valid until after Send returns without error.
1900//
1901// See DescribeConnectionAliases for more information on using the DescribeConnectionAliases
1902// API call, and error handling.
1903//
1904// This method is useful when you want to inject custom logic or configuration
1905// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1906//
1907//
1908//    // Example sending a request using the DescribeConnectionAliasesRequest method.
1909//    req, resp := client.DescribeConnectionAliasesRequest(params)
1910//
1911//    err := req.Send()
1912//    if err == nil { // resp is now filled
1913//        fmt.Println(resp)
1914//    }
1915//
1916// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeConnectionAliases
1917func (c *WorkSpaces) DescribeConnectionAliasesRequest(input *DescribeConnectionAliasesInput) (req *request.Request, output *DescribeConnectionAliasesOutput) {
1918	op := &request.Operation{
1919		Name:       opDescribeConnectionAliases,
1920		HTTPMethod: "POST",
1921		HTTPPath:   "/",
1922	}
1923
1924	if input == nil {
1925		input = &DescribeConnectionAliasesInput{}
1926	}
1927
1928	output = &DescribeConnectionAliasesOutput{}
1929	req = c.newRequest(op, input, output)
1930	return
1931}
1932
1933// DescribeConnectionAliases API operation for Amazon WorkSpaces.
1934//
1935// Retrieves a list that describes the connection aliases used for cross-Region
1936// redirection. For more information, see Cross-Region Redirection for Amazon
1937// WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
1938//
1939// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1940// with awserr.Error's Code and Message methods to get detailed information about
1941// the error.
1942//
1943// See the AWS API reference guide for Amazon WorkSpaces's
1944// API operation DescribeConnectionAliases for usage and error information.
1945//
1946// Returned Error Types:
1947//   * AccessDeniedException
1948//   The user is not authorized to access a resource.
1949//
1950//   * InvalidParameterValuesException
1951//   One or more parameter values are not valid.
1952//
1953//   * OperationNotSupportedException
1954//   This operation is not supported.
1955//
1956// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeConnectionAliases
1957func (c *WorkSpaces) DescribeConnectionAliases(input *DescribeConnectionAliasesInput) (*DescribeConnectionAliasesOutput, error) {
1958	req, out := c.DescribeConnectionAliasesRequest(input)
1959	return out, req.Send()
1960}
1961
1962// DescribeConnectionAliasesWithContext is the same as DescribeConnectionAliases with the addition of
1963// the ability to pass a context and additional request options.
1964//
1965// See DescribeConnectionAliases for details on how to use this API operation.
1966//
1967// The context must be non-nil and will be used for request cancellation. If
1968// the context is nil a panic will occur. In the future the SDK may create
1969// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1970// for more information on using Contexts.
1971func (c *WorkSpaces) DescribeConnectionAliasesWithContext(ctx aws.Context, input *DescribeConnectionAliasesInput, opts ...request.Option) (*DescribeConnectionAliasesOutput, error) {
1972	req, out := c.DescribeConnectionAliasesRequest(input)
1973	req.SetContext(ctx)
1974	req.ApplyOptions(opts...)
1975	return out, req.Send()
1976}
1977
1978const opDescribeIpGroups = "DescribeIpGroups"
1979
1980// DescribeIpGroupsRequest generates a "aws/request.Request" representing the
1981// client's request for the DescribeIpGroups operation. The "output" return
1982// value will be populated with the request's response once the request completes
1983// successfully.
1984//
1985// Use "Send" method on the returned Request to send the API call to the service.
1986// the "output" return value is not valid until after Send returns without error.
1987//
1988// See DescribeIpGroups for more information on using the DescribeIpGroups
1989// API call, and error handling.
1990//
1991// This method is useful when you want to inject custom logic or configuration
1992// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1993//
1994//
1995//    // Example sending a request using the DescribeIpGroupsRequest method.
1996//    req, resp := client.DescribeIpGroupsRequest(params)
1997//
1998//    err := req.Send()
1999//    if err == nil { // resp is now filled
2000//        fmt.Println(resp)
2001//    }
2002//
2003// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeIpGroups
2004func (c *WorkSpaces) DescribeIpGroupsRequest(input *DescribeIpGroupsInput) (req *request.Request, output *DescribeIpGroupsOutput) {
2005	op := &request.Operation{
2006		Name:       opDescribeIpGroups,
2007		HTTPMethod: "POST",
2008		HTTPPath:   "/",
2009	}
2010
2011	if input == nil {
2012		input = &DescribeIpGroupsInput{}
2013	}
2014
2015	output = &DescribeIpGroupsOutput{}
2016	req = c.newRequest(op, input, output)
2017	return
2018}
2019
2020// DescribeIpGroups API operation for Amazon WorkSpaces.
2021//
2022// Describes one or more of your IP access control groups.
2023//
2024// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2025// with awserr.Error's Code and Message methods to get detailed information about
2026// the error.
2027//
2028// See the AWS API reference guide for Amazon WorkSpaces's
2029// API operation DescribeIpGroups for usage and error information.
2030//
2031// Returned Error Types:
2032//   * InvalidParameterValuesException
2033//   One or more parameter values are not valid.
2034//
2035//   * AccessDeniedException
2036//   The user is not authorized to access a resource.
2037//
2038// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeIpGroups
2039func (c *WorkSpaces) DescribeIpGroups(input *DescribeIpGroupsInput) (*DescribeIpGroupsOutput, error) {
2040	req, out := c.DescribeIpGroupsRequest(input)
2041	return out, req.Send()
2042}
2043
2044// DescribeIpGroupsWithContext is the same as DescribeIpGroups with the addition of
2045// the ability to pass a context and additional request options.
2046//
2047// See DescribeIpGroups for details on how to use this API operation.
2048//
2049// The context must be non-nil and will be used for request cancellation. If
2050// the context is nil a panic will occur. In the future the SDK may create
2051// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2052// for more information on using Contexts.
2053func (c *WorkSpaces) DescribeIpGroupsWithContext(ctx aws.Context, input *DescribeIpGroupsInput, opts ...request.Option) (*DescribeIpGroupsOutput, error) {
2054	req, out := c.DescribeIpGroupsRequest(input)
2055	req.SetContext(ctx)
2056	req.ApplyOptions(opts...)
2057	return out, req.Send()
2058}
2059
2060const opDescribeTags = "DescribeTags"
2061
2062// DescribeTagsRequest generates a "aws/request.Request" representing the
2063// client's request for the DescribeTags operation. The "output" return
2064// value will be populated with the request's response once the request completes
2065// successfully.
2066//
2067// Use "Send" method on the returned Request to send the API call to the service.
2068// the "output" return value is not valid until after Send returns without error.
2069//
2070// See DescribeTags for more information on using the DescribeTags
2071// API call, and error handling.
2072//
2073// This method is useful when you want to inject custom logic or configuration
2074// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2075//
2076//
2077//    // Example sending a request using the DescribeTagsRequest method.
2078//    req, resp := client.DescribeTagsRequest(params)
2079//
2080//    err := req.Send()
2081//    if err == nil { // resp is now filled
2082//        fmt.Println(resp)
2083//    }
2084//
2085// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeTags
2086func (c *WorkSpaces) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Request, output *DescribeTagsOutput) {
2087	op := &request.Operation{
2088		Name:       opDescribeTags,
2089		HTTPMethod: "POST",
2090		HTTPPath:   "/",
2091	}
2092
2093	if input == nil {
2094		input = &DescribeTagsInput{}
2095	}
2096
2097	output = &DescribeTagsOutput{}
2098	req = c.newRequest(op, input, output)
2099	return
2100}
2101
2102// DescribeTags API operation for Amazon WorkSpaces.
2103//
2104// Describes the specified tags for the specified WorkSpaces resource.
2105//
2106// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2107// with awserr.Error's Code and Message methods to get detailed information about
2108// the error.
2109//
2110// See the AWS API reference guide for Amazon WorkSpaces's
2111// API operation DescribeTags for usage and error information.
2112//
2113// Returned Error Types:
2114//   * ResourceNotFoundException
2115//   The resource could not be found.
2116//
2117// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeTags
2118func (c *WorkSpaces) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) {
2119	req, out := c.DescribeTagsRequest(input)
2120	return out, req.Send()
2121}
2122
2123// DescribeTagsWithContext is the same as DescribeTags with the addition of
2124// the ability to pass a context and additional request options.
2125//
2126// See DescribeTags for details on how to use this API operation.
2127//
2128// The context must be non-nil and will be used for request cancellation. If
2129// the context is nil a panic will occur. In the future the SDK may create
2130// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2131// for more information on using Contexts.
2132func (c *WorkSpaces) DescribeTagsWithContext(ctx aws.Context, input *DescribeTagsInput, opts ...request.Option) (*DescribeTagsOutput, error) {
2133	req, out := c.DescribeTagsRequest(input)
2134	req.SetContext(ctx)
2135	req.ApplyOptions(opts...)
2136	return out, req.Send()
2137}
2138
2139const opDescribeWorkspaceBundles = "DescribeWorkspaceBundles"
2140
2141// DescribeWorkspaceBundlesRequest generates a "aws/request.Request" representing the
2142// client's request for the DescribeWorkspaceBundles operation. The "output" return
2143// value will be populated with the request's response once the request completes
2144// successfully.
2145//
2146// Use "Send" method on the returned Request to send the API call to the service.
2147// the "output" return value is not valid until after Send returns without error.
2148//
2149// See DescribeWorkspaceBundles for more information on using the DescribeWorkspaceBundles
2150// API call, and error handling.
2151//
2152// This method is useful when you want to inject custom logic or configuration
2153// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2154//
2155//
2156//    // Example sending a request using the DescribeWorkspaceBundlesRequest method.
2157//    req, resp := client.DescribeWorkspaceBundlesRequest(params)
2158//
2159//    err := req.Send()
2160//    if err == nil { // resp is now filled
2161//        fmt.Println(resp)
2162//    }
2163//
2164// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceBundles
2165func (c *WorkSpaces) DescribeWorkspaceBundlesRequest(input *DescribeWorkspaceBundlesInput) (req *request.Request, output *DescribeWorkspaceBundlesOutput) {
2166	op := &request.Operation{
2167		Name:       opDescribeWorkspaceBundles,
2168		HTTPMethod: "POST",
2169		HTTPPath:   "/",
2170		Paginator: &request.Paginator{
2171			InputTokens:     []string{"NextToken"},
2172			OutputTokens:    []string{"NextToken"},
2173			LimitToken:      "",
2174			TruncationToken: "",
2175		},
2176	}
2177
2178	if input == nil {
2179		input = &DescribeWorkspaceBundlesInput{}
2180	}
2181
2182	output = &DescribeWorkspaceBundlesOutput{}
2183	req = c.newRequest(op, input, output)
2184	return
2185}
2186
2187// DescribeWorkspaceBundles API operation for Amazon WorkSpaces.
2188//
2189// Retrieves a list that describes the available WorkSpace bundles.
2190//
2191// You can filter the results using either bundle ID or owner, but not both.
2192//
2193// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2194// with awserr.Error's Code and Message methods to get detailed information about
2195// the error.
2196//
2197// See the AWS API reference guide for Amazon WorkSpaces's
2198// API operation DescribeWorkspaceBundles for usage and error information.
2199//
2200// Returned Error Types:
2201//   * InvalidParameterValuesException
2202//   One or more parameter values are not valid.
2203//
2204// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceBundles
2205func (c *WorkSpaces) DescribeWorkspaceBundles(input *DescribeWorkspaceBundlesInput) (*DescribeWorkspaceBundlesOutput, error) {
2206	req, out := c.DescribeWorkspaceBundlesRequest(input)
2207	return out, req.Send()
2208}
2209
2210// DescribeWorkspaceBundlesWithContext is the same as DescribeWorkspaceBundles with the addition of
2211// the ability to pass a context and additional request options.
2212//
2213// See DescribeWorkspaceBundles for details on how to use this API operation.
2214//
2215// The context must be non-nil and will be used for request cancellation. If
2216// the context is nil a panic will occur. In the future the SDK may create
2217// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2218// for more information on using Contexts.
2219func (c *WorkSpaces) DescribeWorkspaceBundlesWithContext(ctx aws.Context, input *DescribeWorkspaceBundlesInput, opts ...request.Option) (*DescribeWorkspaceBundlesOutput, error) {
2220	req, out := c.DescribeWorkspaceBundlesRequest(input)
2221	req.SetContext(ctx)
2222	req.ApplyOptions(opts...)
2223	return out, req.Send()
2224}
2225
2226// DescribeWorkspaceBundlesPages iterates over the pages of a DescribeWorkspaceBundles operation,
2227// calling the "fn" function with the response data for each page. To stop
2228// iterating, return false from the fn function.
2229//
2230// See DescribeWorkspaceBundles method for more information on how to use this operation.
2231//
2232// Note: This operation can generate multiple requests to a service.
2233//
2234//    // Example iterating over at most 3 pages of a DescribeWorkspaceBundles operation.
2235//    pageNum := 0
2236//    err := client.DescribeWorkspaceBundlesPages(params,
2237//        func(page *workspaces.DescribeWorkspaceBundlesOutput, lastPage bool) bool {
2238//            pageNum++
2239//            fmt.Println(page)
2240//            return pageNum <= 3
2241//        })
2242//
2243func (c *WorkSpaces) DescribeWorkspaceBundlesPages(input *DescribeWorkspaceBundlesInput, fn func(*DescribeWorkspaceBundlesOutput, bool) bool) error {
2244	return c.DescribeWorkspaceBundlesPagesWithContext(aws.BackgroundContext(), input, fn)
2245}
2246
2247// DescribeWorkspaceBundlesPagesWithContext same as DescribeWorkspaceBundlesPages except
2248// it takes a Context and allows setting request options on the pages.
2249//
2250// The context must be non-nil and will be used for request cancellation. If
2251// the context is nil a panic will occur. In the future the SDK may create
2252// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2253// for more information on using Contexts.
2254func (c *WorkSpaces) DescribeWorkspaceBundlesPagesWithContext(ctx aws.Context, input *DescribeWorkspaceBundlesInput, fn func(*DescribeWorkspaceBundlesOutput, bool) bool, opts ...request.Option) error {
2255	p := request.Pagination{
2256		NewRequest: func() (*request.Request, error) {
2257			var inCpy *DescribeWorkspaceBundlesInput
2258			if input != nil {
2259				tmp := *input
2260				inCpy = &tmp
2261			}
2262			req, _ := c.DescribeWorkspaceBundlesRequest(inCpy)
2263			req.SetContext(ctx)
2264			req.ApplyOptions(opts...)
2265			return req, nil
2266		},
2267	}
2268
2269	for p.Next() {
2270		if !fn(p.Page().(*DescribeWorkspaceBundlesOutput), !p.HasNextPage()) {
2271			break
2272		}
2273	}
2274
2275	return p.Err()
2276}
2277
2278const opDescribeWorkspaceDirectories = "DescribeWorkspaceDirectories"
2279
2280// DescribeWorkspaceDirectoriesRequest generates a "aws/request.Request" representing the
2281// client's request for the DescribeWorkspaceDirectories operation. The "output" return
2282// value will be populated with the request's response once the request completes
2283// successfully.
2284//
2285// Use "Send" method on the returned Request to send the API call to the service.
2286// the "output" return value is not valid until after Send returns without error.
2287//
2288// See DescribeWorkspaceDirectories for more information on using the DescribeWorkspaceDirectories
2289// API call, and error handling.
2290//
2291// This method is useful when you want to inject custom logic or configuration
2292// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2293//
2294//
2295//    // Example sending a request using the DescribeWorkspaceDirectoriesRequest method.
2296//    req, resp := client.DescribeWorkspaceDirectoriesRequest(params)
2297//
2298//    err := req.Send()
2299//    if err == nil { // resp is now filled
2300//        fmt.Println(resp)
2301//    }
2302//
2303// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceDirectories
2304func (c *WorkSpaces) DescribeWorkspaceDirectoriesRequest(input *DescribeWorkspaceDirectoriesInput) (req *request.Request, output *DescribeWorkspaceDirectoriesOutput) {
2305	op := &request.Operation{
2306		Name:       opDescribeWorkspaceDirectories,
2307		HTTPMethod: "POST",
2308		HTTPPath:   "/",
2309		Paginator: &request.Paginator{
2310			InputTokens:     []string{"NextToken"},
2311			OutputTokens:    []string{"NextToken"},
2312			LimitToken:      "",
2313			TruncationToken: "",
2314		},
2315	}
2316
2317	if input == nil {
2318		input = &DescribeWorkspaceDirectoriesInput{}
2319	}
2320
2321	output = &DescribeWorkspaceDirectoriesOutput{}
2322	req = c.newRequest(op, input, output)
2323	return
2324}
2325
2326// DescribeWorkspaceDirectories API operation for Amazon WorkSpaces.
2327//
2328// Describes the available directories that are registered with Amazon WorkSpaces.
2329//
2330// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2331// with awserr.Error's Code and Message methods to get detailed information about
2332// the error.
2333//
2334// See the AWS API reference guide for Amazon WorkSpaces's
2335// API operation DescribeWorkspaceDirectories for usage and error information.
2336//
2337// Returned Error Types:
2338//   * InvalidParameterValuesException
2339//   One or more parameter values are not valid.
2340//
2341// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceDirectories
2342func (c *WorkSpaces) DescribeWorkspaceDirectories(input *DescribeWorkspaceDirectoriesInput) (*DescribeWorkspaceDirectoriesOutput, error) {
2343	req, out := c.DescribeWorkspaceDirectoriesRequest(input)
2344	return out, req.Send()
2345}
2346
2347// DescribeWorkspaceDirectoriesWithContext is the same as DescribeWorkspaceDirectories with the addition of
2348// the ability to pass a context and additional request options.
2349//
2350// See DescribeWorkspaceDirectories for details on how to use this API operation.
2351//
2352// The context must be non-nil and will be used for request cancellation. If
2353// the context is nil a panic will occur. In the future the SDK may create
2354// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2355// for more information on using Contexts.
2356func (c *WorkSpaces) DescribeWorkspaceDirectoriesWithContext(ctx aws.Context, input *DescribeWorkspaceDirectoriesInput, opts ...request.Option) (*DescribeWorkspaceDirectoriesOutput, error) {
2357	req, out := c.DescribeWorkspaceDirectoriesRequest(input)
2358	req.SetContext(ctx)
2359	req.ApplyOptions(opts...)
2360	return out, req.Send()
2361}
2362
2363// DescribeWorkspaceDirectoriesPages iterates over the pages of a DescribeWorkspaceDirectories operation,
2364// calling the "fn" function with the response data for each page. To stop
2365// iterating, return false from the fn function.
2366//
2367// See DescribeWorkspaceDirectories method for more information on how to use this operation.
2368//
2369// Note: This operation can generate multiple requests to a service.
2370//
2371//    // Example iterating over at most 3 pages of a DescribeWorkspaceDirectories operation.
2372//    pageNum := 0
2373//    err := client.DescribeWorkspaceDirectoriesPages(params,
2374//        func(page *workspaces.DescribeWorkspaceDirectoriesOutput, lastPage bool) bool {
2375//            pageNum++
2376//            fmt.Println(page)
2377//            return pageNum <= 3
2378//        })
2379//
2380func (c *WorkSpaces) DescribeWorkspaceDirectoriesPages(input *DescribeWorkspaceDirectoriesInput, fn func(*DescribeWorkspaceDirectoriesOutput, bool) bool) error {
2381	return c.DescribeWorkspaceDirectoriesPagesWithContext(aws.BackgroundContext(), input, fn)
2382}
2383
2384// DescribeWorkspaceDirectoriesPagesWithContext same as DescribeWorkspaceDirectoriesPages except
2385// it takes a Context and allows setting request options on the pages.
2386//
2387// The context must be non-nil and will be used for request cancellation. If
2388// the context is nil a panic will occur. In the future the SDK may create
2389// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2390// for more information on using Contexts.
2391func (c *WorkSpaces) DescribeWorkspaceDirectoriesPagesWithContext(ctx aws.Context, input *DescribeWorkspaceDirectoriesInput, fn func(*DescribeWorkspaceDirectoriesOutput, bool) bool, opts ...request.Option) error {
2392	p := request.Pagination{
2393		NewRequest: func() (*request.Request, error) {
2394			var inCpy *DescribeWorkspaceDirectoriesInput
2395			if input != nil {
2396				tmp := *input
2397				inCpy = &tmp
2398			}
2399			req, _ := c.DescribeWorkspaceDirectoriesRequest(inCpy)
2400			req.SetContext(ctx)
2401			req.ApplyOptions(opts...)
2402			return req, nil
2403		},
2404	}
2405
2406	for p.Next() {
2407		if !fn(p.Page().(*DescribeWorkspaceDirectoriesOutput), !p.HasNextPage()) {
2408			break
2409		}
2410	}
2411
2412	return p.Err()
2413}
2414
2415const opDescribeWorkspaceImagePermissions = "DescribeWorkspaceImagePermissions"
2416
2417// DescribeWorkspaceImagePermissionsRequest generates a "aws/request.Request" representing the
2418// client's request for the DescribeWorkspaceImagePermissions operation. The "output" return
2419// value will be populated with the request's response once the request completes
2420// successfully.
2421//
2422// Use "Send" method on the returned Request to send the API call to the service.
2423// the "output" return value is not valid until after Send returns without error.
2424//
2425// See DescribeWorkspaceImagePermissions for more information on using the DescribeWorkspaceImagePermissions
2426// API call, and error handling.
2427//
2428// This method is useful when you want to inject custom logic or configuration
2429// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2430//
2431//
2432//    // Example sending a request using the DescribeWorkspaceImagePermissionsRequest method.
2433//    req, resp := client.DescribeWorkspaceImagePermissionsRequest(params)
2434//
2435//    err := req.Send()
2436//    if err == nil { // resp is now filled
2437//        fmt.Println(resp)
2438//    }
2439//
2440// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImagePermissions
2441func (c *WorkSpaces) DescribeWorkspaceImagePermissionsRequest(input *DescribeWorkspaceImagePermissionsInput) (req *request.Request, output *DescribeWorkspaceImagePermissionsOutput) {
2442	op := &request.Operation{
2443		Name:       opDescribeWorkspaceImagePermissions,
2444		HTTPMethod: "POST",
2445		HTTPPath:   "/",
2446	}
2447
2448	if input == nil {
2449		input = &DescribeWorkspaceImagePermissionsInput{}
2450	}
2451
2452	output = &DescribeWorkspaceImagePermissionsOutput{}
2453	req = c.newRequest(op, input, output)
2454	return
2455}
2456
2457// DescribeWorkspaceImagePermissions API operation for Amazon WorkSpaces.
2458//
2459// Describes the permissions that the owner of an image has granted to other
2460// Amazon Web Services accounts for an image.
2461//
2462// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2463// with awserr.Error's Code and Message methods to get detailed information about
2464// the error.
2465//
2466// See the AWS API reference guide for Amazon WorkSpaces's
2467// API operation DescribeWorkspaceImagePermissions for usage and error information.
2468//
2469// Returned Error Types:
2470//   * ResourceNotFoundException
2471//   The resource could not be found.
2472//
2473//   * AccessDeniedException
2474//   The user is not authorized to access a resource.
2475//
2476//   * InvalidParameterValuesException
2477//   One or more parameter values are not valid.
2478//
2479// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImagePermissions
2480func (c *WorkSpaces) DescribeWorkspaceImagePermissions(input *DescribeWorkspaceImagePermissionsInput) (*DescribeWorkspaceImagePermissionsOutput, error) {
2481	req, out := c.DescribeWorkspaceImagePermissionsRequest(input)
2482	return out, req.Send()
2483}
2484
2485// DescribeWorkspaceImagePermissionsWithContext is the same as DescribeWorkspaceImagePermissions with the addition of
2486// the ability to pass a context and additional request options.
2487//
2488// See DescribeWorkspaceImagePermissions for details on how to use this API operation.
2489//
2490// The context must be non-nil and will be used for request cancellation. If
2491// the context is nil a panic will occur. In the future the SDK may create
2492// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2493// for more information on using Contexts.
2494func (c *WorkSpaces) DescribeWorkspaceImagePermissionsWithContext(ctx aws.Context, input *DescribeWorkspaceImagePermissionsInput, opts ...request.Option) (*DescribeWorkspaceImagePermissionsOutput, error) {
2495	req, out := c.DescribeWorkspaceImagePermissionsRequest(input)
2496	req.SetContext(ctx)
2497	req.ApplyOptions(opts...)
2498	return out, req.Send()
2499}
2500
2501const opDescribeWorkspaceImages = "DescribeWorkspaceImages"
2502
2503// DescribeWorkspaceImagesRequest generates a "aws/request.Request" representing the
2504// client's request for the DescribeWorkspaceImages operation. The "output" return
2505// value will be populated with the request's response once the request completes
2506// successfully.
2507//
2508// Use "Send" method on the returned Request to send the API call to the service.
2509// the "output" return value is not valid until after Send returns without error.
2510//
2511// See DescribeWorkspaceImages for more information on using the DescribeWorkspaceImages
2512// API call, and error handling.
2513//
2514// This method is useful when you want to inject custom logic or configuration
2515// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2516//
2517//
2518//    // Example sending a request using the DescribeWorkspaceImagesRequest method.
2519//    req, resp := client.DescribeWorkspaceImagesRequest(params)
2520//
2521//    err := req.Send()
2522//    if err == nil { // resp is now filled
2523//        fmt.Println(resp)
2524//    }
2525//
2526// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImages
2527func (c *WorkSpaces) DescribeWorkspaceImagesRequest(input *DescribeWorkspaceImagesInput) (req *request.Request, output *DescribeWorkspaceImagesOutput) {
2528	op := &request.Operation{
2529		Name:       opDescribeWorkspaceImages,
2530		HTTPMethod: "POST",
2531		HTTPPath:   "/",
2532	}
2533
2534	if input == nil {
2535		input = &DescribeWorkspaceImagesInput{}
2536	}
2537
2538	output = &DescribeWorkspaceImagesOutput{}
2539	req = c.newRequest(op, input, output)
2540	return
2541}
2542
2543// DescribeWorkspaceImages API operation for Amazon WorkSpaces.
2544//
2545// Retrieves a list that describes one or more specified images, if the image
2546// identifiers are provided. Otherwise, all images in the account are described.
2547//
2548// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2549// with awserr.Error's Code and Message methods to get detailed information about
2550// the error.
2551//
2552// See the AWS API reference guide for Amazon WorkSpaces's
2553// API operation DescribeWorkspaceImages for usage and error information.
2554//
2555// Returned Error Types:
2556//   * AccessDeniedException
2557//   The user is not authorized to access a resource.
2558//
2559// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImages
2560func (c *WorkSpaces) DescribeWorkspaceImages(input *DescribeWorkspaceImagesInput) (*DescribeWorkspaceImagesOutput, error) {
2561	req, out := c.DescribeWorkspaceImagesRequest(input)
2562	return out, req.Send()
2563}
2564
2565// DescribeWorkspaceImagesWithContext is the same as DescribeWorkspaceImages with the addition of
2566// the ability to pass a context and additional request options.
2567//
2568// See DescribeWorkspaceImages for details on how to use this API operation.
2569//
2570// The context must be non-nil and will be used for request cancellation. If
2571// the context is nil a panic will occur. In the future the SDK may create
2572// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2573// for more information on using Contexts.
2574func (c *WorkSpaces) DescribeWorkspaceImagesWithContext(ctx aws.Context, input *DescribeWorkspaceImagesInput, opts ...request.Option) (*DescribeWorkspaceImagesOutput, error) {
2575	req, out := c.DescribeWorkspaceImagesRequest(input)
2576	req.SetContext(ctx)
2577	req.ApplyOptions(opts...)
2578	return out, req.Send()
2579}
2580
2581const opDescribeWorkspaceSnapshots = "DescribeWorkspaceSnapshots"
2582
2583// DescribeWorkspaceSnapshotsRequest generates a "aws/request.Request" representing the
2584// client's request for the DescribeWorkspaceSnapshots operation. The "output" return
2585// value will be populated with the request's response once the request completes
2586// successfully.
2587//
2588// Use "Send" method on the returned Request to send the API call to the service.
2589// the "output" return value is not valid until after Send returns without error.
2590//
2591// See DescribeWorkspaceSnapshots for more information on using the DescribeWorkspaceSnapshots
2592// API call, and error handling.
2593//
2594// This method is useful when you want to inject custom logic or configuration
2595// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2596//
2597//
2598//    // Example sending a request using the DescribeWorkspaceSnapshotsRequest method.
2599//    req, resp := client.DescribeWorkspaceSnapshotsRequest(params)
2600//
2601//    err := req.Send()
2602//    if err == nil { // resp is now filled
2603//        fmt.Println(resp)
2604//    }
2605//
2606// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceSnapshots
2607func (c *WorkSpaces) DescribeWorkspaceSnapshotsRequest(input *DescribeWorkspaceSnapshotsInput) (req *request.Request, output *DescribeWorkspaceSnapshotsOutput) {
2608	op := &request.Operation{
2609		Name:       opDescribeWorkspaceSnapshots,
2610		HTTPMethod: "POST",
2611		HTTPPath:   "/",
2612	}
2613
2614	if input == nil {
2615		input = &DescribeWorkspaceSnapshotsInput{}
2616	}
2617
2618	output = &DescribeWorkspaceSnapshotsOutput{}
2619	req = c.newRequest(op, input, output)
2620	return
2621}
2622
2623// DescribeWorkspaceSnapshots API operation for Amazon WorkSpaces.
2624//
2625// Describes the snapshots for the specified WorkSpace.
2626//
2627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2628// with awserr.Error's Code and Message methods to get detailed information about
2629// the error.
2630//
2631// See the AWS API reference guide for Amazon WorkSpaces's
2632// API operation DescribeWorkspaceSnapshots for usage and error information.
2633//
2634// Returned Error Types:
2635//   * InvalidParameterValuesException
2636//   One or more parameter values are not valid.
2637//
2638//   * ResourceNotFoundException
2639//   The resource could not be found.
2640//
2641//   * AccessDeniedException
2642//   The user is not authorized to access a resource.
2643//
2644// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceSnapshots
2645func (c *WorkSpaces) DescribeWorkspaceSnapshots(input *DescribeWorkspaceSnapshotsInput) (*DescribeWorkspaceSnapshotsOutput, error) {
2646	req, out := c.DescribeWorkspaceSnapshotsRequest(input)
2647	return out, req.Send()
2648}
2649
2650// DescribeWorkspaceSnapshotsWithContext is the same as DescribeWorkspaceSnapshots with the addition of
2651// the ability to pass a context and additional request options.
2652//
2653// See DescribeWorkspaceSnapshots for details on how to use this API operation.
2654//
2655// The context must be non-nil and will be used for request cancellation. If
2656// the context is nil a panic will occur. In the future the SDK may create
2657// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2658// for more information on using Contexts.
2659func (c *WorkSpaces) DescribeWorkspaceSnapshotsWithContext(ctx aws.Context, input *DescribeWorkspaceSnapshotsInput, opts ...request.Option) (*DescribeWorkspaceSnapshotsOutput, error) {
2660	req, out := c.DescribeWorkspaceSnapshotsRequest(input)
2661	req.SetContext(ctx)
2662	req.ApplyOptions(opts...)
2663	return out, req.Send()
2664}
2665
2666const opDescribeWorkspaces = "DescribeWorkspaces"
2667
2668// DescribeWorkspacesRequest generates a "aws/request.Request" representing the
2669// client's request for the DescribeWorkspaces operation. The "output" return
2670// value will be populated with the request's response once the request completes
2671// successfully.
2672//
2673// Use "Send" method on the returned Request to send the API call to the service.
2674// the "output" return value is not valid until after Send returns without error.
2675//
2676// See DescribeWorkspaces for more information on using the DescribeWorkspaces
2677// API call, and error handling.
2678//
2679// This method is useful when you want to inject custom logic or configuration
2680// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2681//
2682//
2683//    // Example sending a request using the DescribeWorkspacesRequest method.
2684//    req, resp := client.DescribeWorkspacesRequest(params)
2685//
2686//    err := req.Send()
2687//    if err == nil { // resp is now filled
2688//        fmt.Println(resp)
2689//    }
2690//
2691// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaces
2692func (c *WorkSpaces) DescribeWorkspacesRequest(input *DescribeWorkspacesInput) (req *request.Request, output *DescribeWorkspacesOutput) {
2693	op := &request.Operation{
2694		Name:       opDescribeWorkspaces,
2695		HTTPMethod: "POST",
2696		HTTPPath:   "/",
2697		Paginator: &request.Paginator{
2698			InputTokens:     []string{"NextToken"},
2699			OutputTokens:    []string{"NextToken"},
2700			LimitToken:      "Limit",
2701			TruncationToken: "",
2702		},
2703	}
2704
2705	if input == nil {
2706		input = &DescribeWorkspacesInput{}
2707	}
2708
2709	output = &DescribeWorkspacesOutput{}
2710	req = c.newRequest(op, input, output)
2711	return
2712}
2713
2714// DescribeWorkspaces API operation for Amazon WorkSpaces.
2715//
2716// Describes the specified WorkSpaces.
2717//
2718// You can filter the results by using the bundle identifier, directory identifier,
2719// or owner, but you can specify only one filter at a time.
2720//
2721// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2722// with awserr.Error's Code and Message methods to get detailed information about
2723// the error.
2724//
2725// See the AWS API reference guide for Amazon WorkSpaces's
2726// API operation DescribeWorkspaces for usage and error information.
2727//
2728// Returned Error Types:
2729//   * InvalidParameterValuesException
2730//   One or more parameter values are not valid.
2731//
2732//   * ResourceUnavailableException
2733//   The specified resource is not available.
2734//
2735// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaces
2736func (c *WorkSpaces) DescribeWorkspaces(input *DescribeWorkspacesInput) (*DescribeWorkspacesOutput, error) {
2737	req, out := c.DescribeWorkspacesRequest(input)
2738	return out, req.Send()
2739}
2740
2741// DescribeWorkspacesWithContext is the same as DescribeWorkspaces with the addition of
2742// the ability to pass a context and additional request options.
2743//
2744// See DescribeWorkspaces for details on how to use this API operation.
2745//
2746// The context must be non-nil and will be used for request cancellation. If
2747// the context is nil a panic will occur. In the future the SDK may create
2748// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2749// for more information on using Contexts.
2750func (c *WorkSpaces) DescribeWorkspacesWithContext(ctx aws.Context, input *DescribeWorkspacesInput, opts ...request.Option) (*DescribeWorkspacesOutput, error) {
2751	req, out := c.DescribeWorkspacesRequest(input)
2752	req.SetContext(ctx)
2753	req.ApplyOptions(opts...)
2754	return out, req.Send()
2755}
2756
2757// DescribeWorkspacesPages iterates over the pages of a DescribeWorkspaces operation,
2758// calling the "fn" function with the response data for each page. To stop
2759// iterating, return false from the fn function.
2760//
2761// See DescribeWorkspaces method for more information on how to use this operation.
2762//
2763// Note: This operation can generate multiple requests to a service.
2764//
2765//    // Example iterating over at most 3 pages of a DescribeWorkspaces operation.
2766//    pageNum := 0
2767//    err := client.DescribeWorkspacesPages(params,
2768//        func(page *workspaces.DescribeWorkspacesOutput, lastPage bool) bool {
2769//            pageNum++
2770//            fmt.Println(page)
2771//            return pageNum <= 3
2772//        })
2773//
2774func (c *WorkSpaces) DescribeWorkspacesPages(input *DescribeWorkspacesInput, fn func(*DescribeWorkspacesOutput, bool) bool) error {
2775	return c.DescribeWorkspacesPagesWithContext(aws.BackgroundContext(), input, fn)
2776}
2777
2778// DescribeWorkspacesPagesWithContext same as DescribeWorkspacesPages except
2779// it takes a Context and allows setting request options on the pages.
2780//
2781// The context must be non-nil and will be used for request cancellation. If
2782// the context is nil a panic will occur. In the future the SDK may create
2783// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2784// for more information on using Contexts.
2785func (c *WorkSpaces) DescribeWorkspacesPagesWithContext(ctx aws.Context, input *DescribeWorkspacesInput, fn func(*DescribeWorkspacesOutput, bool) bool, opts ...request.Option) error {
2786	p := request.Pagination{
2787		NewRequest: func() (*request.Request, error) {
2788			var inCpy *DescribeWorkspacesInput
2789			if input != nil {
2790				tmp := *input
2791				inCpy = &tmp
2792			}
2793			req, _ := c.DescribeWorkspacesRequest(inCpy)
2794			req.SetContext(ctx)
2795			req.ApplyOptions(opts...)
2796			return req, nil
2797		},
2798	}
2799
2800	for p.Next() {
2801		if !fn(p.Page().(*DescribeWorkspacesOutput), !p.HasNextPage()) {
2802			break
2803		}
2804	}
2805
2806	return p.Err()
2807}
2808
2809const opDescribeWorkspacesConnectionStatus = "DescribeWorkspacesConnectionStatus"
2810
2811// DescribeWorkspacesConnectionStatusRequest generates a "aws/request.Request" representing the
2812// client's request for the DescribeWorkspacesConnectionStatus operation. The "output" return
2813// value will be populated with the request's response once the request completes
2814// successfully.
2815//
2816// Use "Send" method on the returned Request to send the API call to the service.
2817// the "output" return value is not valid until after Send returns without error.
2818//
2819// See DescribeWorkspacesConnectionStatus for more information on using the DescribeWorkspacesConnectionStatus
2820// API call, and error handling.
2821//
2822// This method is useful when you want to inject custom logic or configuration
2823// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2824//
2825//
2826//    // Example sending a request using the DescribeWorkspacesConnectionStatusRequest method.
2827//    req, resp := client.DescribeWorkspacesConnectionStatusRequest(params)
2828//
2829//    err := req.Send()
2830//    if err == nil { // resp is now filled
2831//        fmt.Println(resp)
2832//    }
2833//
2834// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspacesConnectionStatus
2835func (c *WorkSpaces) DescribeWorkspacesConnectionStatusRequest(input *DescribeWorkspacesConnectionStatusInput) (req *request.Request, output *DescribeWorkspacesConnectionStatusOutput) {
2836	op := &request.Operation{
2837		Name:       opDescribeWorkspacesConnectionStatus,
2838		HTTPMethod: "POST",
2839		HTTPPath:   "/",
2840	}
2841
2842	if input == nil {
2843		input = &DescribeWorkspacesConnectionStatusInput{}
2844	}
2845
2846	output = &DescribeWorkspacesConnectionStatusOutput{}
2847	req = c.newRequest(op, input, output)
2848	return
2849}
2850
2851// DescribeWorkspacesConnectionStatus API operation for Amazon WorkSpaces.
2852//
2853// Describes the connection status of the specified WorkSpaces.
2854//
2855// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2856// with awserr.Error's Code and Message methods to get detailed information about
2857// the error.
2858//
2859// See the AWS API reference guide for Amazon WorkSpaces's
2860// API operation DescribeWorkspacesConnectionStatus for usage and error information.
2861//
2862// Returned Error Types:
2863//   * InvalidParameterValuesException
2864//   One or more parameter values are not valid.
2865//
2866// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspacesConnectionStatus
2867func (c *WorkSpaces) DescribeWorkspacesConnectionStatus(input *DescribeWorkspacesConnectionStatusInput) (*DescribeWorkspacesConnectionStatusOutput, error) {
2868	req, out := c.DescribeWorkspacesConnectionStatusRequest(input)
2869	return out, req.Send()
2870}
2871
2872// DescribeWorkspacesConnectionStatusWithContext is the same as DescribeWorkspacesConnectionStatus with the addition of
2873// the ability to pass a context and additional request options.
2874//
2875// See DescribeWorkspacesConnectionStatus for details on how to use this API operation.
2876//
2877// The context must be non-nil and will be used for request cancellation. If
2878// the context is nil a panic will occur. In the future the SDK may create
2879// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2880// for more information on using Contexts.
2881func (c *WorkSpaces) DescribeWorkspacesConnectionStatusWithContext(ctx aws.Context, input *DescribeWorkspacesConnectionStatusInput, opts ...request.Option) (*DescribeWorkspacesConnectionStatusOutput, error) {
2882	req, out := c.DescribeWorkspacesConnectionStatusRequest(input)
2883	req.SetContext(ctx)
2884	req.ApplyOptions(opts...)
2885	return out, req.Send()
2886}
2887
2888const opDisassociateConnectionAlias = "DisassociateConnectionAlias"
2889
2890// DisassociateConnectionAliasRequest generates a "aws/request.Request" representing the
2891// client's request for the DisassociateConnectionAlias operation. The "output" return
2892// value will be populated with the request's response once the request completes
2893// successfully.
2894//
2895// Use "Send" method on the returned Request to send the API call to the service.
2896// the "output" return value is not valid until after Send returns without error.
2897//
2898// See DisassociateConnectionAlias for more information on using the DisassociateConnectionAlias
2899// API call, and error handling.
2900//
2901// This method is useful when you want to inject custom logic or configuration
2902// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2903//
2904//
2905//    // Example sending a request using the DisassociateConnectionAliasRequest method.
2906//    req, resp := client.DisassociateConnectionAliasRequest(params)
2907//
2908//    err := req.Send()
2909//    if err == nil { // resp is now filled
2910//        fmt.Println(resp)
2911//    }
2912//
2913// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateConnectionAlias
2914func (c *WorkSpaces) DisassociateConnectionAliasRequest(input *DisassociateConnectionAliasInput) (req *request.Request, output *DisassociateConnectionAliasOutput) {
2915	op := &request.Operation{
2916		Name:       opDisassociateConnectionAlias,
2917		HTTPMethod: "POST",
2918		HTTPPath:   "/",
2919	}
2920
2921	if input == nil {
2922		input = &DisassociateConnectionAliasInput{}
2923	}
2924
2925	output = &DisassociateConnectionAliasOutput{}
2926	req = c.newRequest(op, input, output)
2927	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2928	return
2929}
2930
2931// DisassociateConnectionAlias API operation for Amazon WorkSpaces.
2932//
2933// Disassociates a connection alias from a directory. Disassociating a connection
2934// alias disables cross-Region redirection between two directories in different
2935// Regions. For more information, see Cross-Region Redirection for Amazon WorkSpaces
2936// (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
2937//
2938// Before performing this operation, call DescribeConnectionAliases (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeConnectionAliases.html)
2939// to make sure that the current state of the connection alias is CREATED.
2940//
2941// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2942// with awserr.Error's Code and Message methods to get detailed information about
2943// the error.
2944//
2945// See the AWS API reference guide for Amazon WorkSpaces's
2946// API operation DisassociateConnectionAlias for usage and error information.
2947//
2948// Returned Error Types:
2949//   * AccessDeniedException
2950//   The user is not authorized to access a resource.
2951//
2952//   * ResourceNotFoundException
2953//   The resource could not be found.
2954//
2955//   * InvalidParameterValuesException
2956//   One or more parameter values are not valid.
2957//
2958//   * InvalidResourceStateException
2959//   The state of the resource is not valid for this operation.
2960//
2961//   * OperationNotSupportedException
2962//   This operation is not supported.
2963//
2964// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateConnectionAlias
2965func (c *WorkSpaces) DisassociateConnectionAlias(input *DisassociateConnectionAliasInput) (*DisassociateConnectionAliasOutput, error) {
2966	req, out := c.DisassociateConnectionAliasRequest(input)
2967	return out, req.Send()
2968}
2969
2970// DisassociateConnectionAliasWithContext is the same as DisassociateConnectionAlias with the addition of
2971// the ability to pass a context and additional request options.
2972//
2973// See DisassociateConnectionAlias for details on how to use this API operation.
2974//
2975// The context must be non-nil and will be used for request cancellation. If
2976// the context is nil a panic will occur. In the future the SDK may create
2977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2978// for more information on using Contexts.
2979func (c *WorkSpaces) DisassociateConnectionAliasWithContext(ctx aws.Context, input *DisassociateConnectionAliasInput, opts ...request.Option) (*DisassociateConnectionAliasOutput, error) {
2980	req, out := c.DisassociateConnectionAliasRequest(input)
2981	req.SetContext(ctx)
2982	req.ApplyOptions(opts...)
2983	return out, req.Send()
2984}
2985
2986const opDisassociateIpGroups = "DisassociateIpGroups"
2987
2988// DisassociateIpGroupsRequest generates a "aws/request.Request" representing the
2989// client's request for the DisassociateIpGroups operation. The "output" return
2990// value will be populated with the request's response once the request completes
2991// successfully.
2992//
2993// Use "Send" method on the returned Request to send the API call to the service.
2994// the "output" return value is not valid until after Send returns without error.
2995//
2996// See DisassociateIpGroups for more information on using the DisassociateIpGroups
2997// API call, and error handling.
2998//
2999// This method is useful when you want to inject custom logic or configuration
3000// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3001//
3002//
3003//    // Example sending a request using the DisassociateIpGroupsRequest method.
3004//    req, resp := client.DisassociateIpGroupsRequest(params)
3005//
3006//    err := req.Send()
3007//    if err == nil { // resp is now filled
3008//        fmt.Println(resp)
3009//    }
3010//
3011// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateIpGroups
3012func (c *WorkSpaces) DisassociateIpGroupsRequest(input *DisassociateIpGroupsInput) (req *request.Request, output *DisassociateIpGroupsOutput) {
3013	op := &request.Operation{
3014		Name:       opDisassociateIpGroups,
3015		HTTPMethod: "POST",
3016		HTTPPath:   "/",
3017	}
3018
3019	if input == nil {
3020		input = &DisassociateIpGroupsInput{}
3021	}
3022
3023	output = &DisassociateIpGroupsOutput{}
3024	req = c.newRequest(op, input, output)
3025	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3026	return
3027}
3028
3029// DisassociateIpGroups API operation for Amazon WorkSpaces.
3030//
3031// Disassociates the specified IP access control group from the specified directory.
3032//
3033// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3034// with awserr.Error's Code and Message methods to get detailed information about
3035// the error.
3036//
3037// See the AWS API reference guide for Amazon WorkSpaces's
3038// API operation DisassociateIpGroups for usage and error information.
3039//
3040// Returned Error Types:
3041//   * InvalidParameterValuesException
3042//   One or more parameter values are not valid.
3043//
3044//   * ResourceNotFoundException
3045//   The resource could not be found.
3046//
3047//   * InvalidResourceStateException
3048//   The state of the resource is not valid for this operation.
3049//
3050//   * AccessDeniedException
3051//   The user is not authorized to access a resource.
3052//
3053// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateIpGroups
3054func (c *WorkSpaces) DisassociateIpGroups(input *DisassociateIpGroupsInput) (*DisassociateIpGroupsOutput, error) {
3055	req, out := c.DisassociateIpGroupsRequest(input)
3056	return out, req.Send()
3057}
3058
3059// DisassociateIpGroupsWithContext is the same as DisassociateIpGroups with the addition of
3060// the ability to pass a context and additional request options.
3061//
3062// See DisassociateIpGroups for details on how to use this API operation.
3063//
3064// The context must be non-nil and will be used for request cancellation. If
3065// the context is nil a panic will occur. In the future the SDK may create
3066// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3067// for more information on using Contexts.
3068func (c *WorkSpaces) DisassociateIpGroupsWithContext(ctx aws.Context, input *DisassociateIpGroupsInput, opts ...request.Option) (*DisassociateIpGroupsOutput, error) {
3069	req, out := c.DisassociateIpGroupsRequest(input)
3070	req.SetContext(ctx)
3071	req.ApplyOptions(opts...)
3072	return out, req.Send()
3073}
3074
3075const opImportWorkspaceImage = "ImportWorkspaceImage"
3076
3077// ImportWorkspaceImageRequest generates a "aws/request.Request" representing the
3078// client's request for the ImportWorkspaceImage operation. The "output" return
3079// value will be populated with the request's response once the request completes
3080// successfully.
3081//
3082// Use "Send" method on the returned Request to send the API call to the service.
3083// the "output" return value is not valid until after Send returns without error.
3084//
3085// See ImportWorkspaceImage for more information on using the ImportWorkspaceImage
3086// API call, and error handling.
3087//
3088// This method is useful when you want to inject custom logic or configuration
3089// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3090//
3091//
3092//    // Example sending a request using the ImportWorkspaceImageRequest method.
3093//    req, resp := client.ImportWorkspaceImageRequest(params)
3094//
3095//    err := req.Send()
3096//    if err == nil { // resp is now filled
3097//        fmt.Println(resp)
3098//    }
3099//
3100// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ImportWorkspaceImage
3101func (c *WorkSpaces) ImportWorkspaceImageRequest(input *ImportWorkspaceImageInput) (req *request.Request, output *ImportWorkspaceImageOutput) {
3102	op := &request.Operation{
3103		Name:       opImportWorkspaceImage,
3104		HTTPMethod: "POST",
3105		HTTPPath:   "/",
3106	}
3107
3108	if input == nil {
3109		input = &ImportWorkspaceImageInput{}
3110	}
3111
3112	output = &ImportWorkspaceImageOutput{}
3113	req = c.newRequest(op, input, output)
3114	return
3115}
3116
3117// ImportWorkspaceImage API operation for Amazon WorkSpaces.
3118//
3119// Imports the specified Windows 10 Bring Your Own License (BYOL) image into
3120// Amazon WorkSpaces. The image must be an already licensed Amazon EC2 image
3121// that is in your Amazon Web Services account, and you must own the image.
3122// For more information about creating BYOL images, see Bring Your Own Windows
3123// Desktop Licenses (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
3124//
3125// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3126// with awserr.Error's Code and Message methods to get detailed information about
3127// the error.
3128//
3129// See the AWS API reference guide for Amazon WorkSpaces's
3130// API operation ImportWorkspaceImage for usage and error information.
3131//
3132// Returned Error Types:
3133//   * ResourceLimitExceededException
3134//   Your resource limits have been exceeded.
3135//
3136//   * ResourceAlreadyExistsException
3137//   The specified resource already exists.
3138//
3139//   * ResourceNotFoundException
3140//   The resource could not be found.
3141//
3142//   * OperationNotSupportedException
3143//   This operation is not supported.
3144//
3145//   * AccessDeniedException
3146//   The user is not authorized to access a resource.
3147//
3148//   * InvalidParameterValuesException
3149//   One or more parameter values are not valid.
3150//
3151// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ImportWorkspaceImage
3152func (c *WorkSpaces) ImportWorkspaceImage(input *ImportWorkspaceImageInput) (*ImportWorkspaceImageOutput, error) {
3153	req, out := c.ImportWorkspaceImageRequest(input)
3154	return out, req.Send()
3155}
3156
3157// ImportWorkspaceImageWithContext is the same as ImportWorkspaceImage with the addition of
3158// the ability to pass a context and additional request options.
3159//
3160// See ImportWorkspaceImage for details on how to use this API operation.
3161//
3162// The context must be non-nil and will be used for request cancellation. If
3163// the context is nil a panic will occur. In the future the SDK may create
3164// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3165// for more information on using Contexts.
3166func (c *WorkSpaces) ImportWorkspaceImageWithContext(ctx aws.Context, input *ImportWorkspaceImageInput, opts ...request.Option) (*ImportWorkspaceImageOutput, error) {
3167	req, out := c.ImportWorkspaceImageRequest(input)
3168	req.SetContext(ctx)
3169	req.ApplyOptions(opts...)
3170	return out, req.Send()
3171}
3172
3173const opListAvailableManagementCidrRanges = "ListAvailableManagementCidrRanges"
3174
3175// ListAvailableManagementCidrRangesRequest generates a "aws/request.Request" representing the
3176// client's request for the ListAvailableManagementCidrRanges operation. The "output" return
3177// value will be populated with the request's response once the request completes
3178// successfully.
3179//
3180// Use "Send" method on the returned Request to send the API call to the service.
3181// the "output" return value is not valid until after Send returns without error.
3182//
3183// See ListAvailableManagementCidrRanges for more information on using the ListAvailableManagementCidrRanges
3184// API call, and error handling.
3185//
3186// This method is useful when you want to inject custom logic or configuration
3187// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3188//
3189//
3190//    // Example sending a request using the ListAvailableManagementCidrRangesRequest method.
3191//    req, resp := client.ListAvailableManagementCidrRangesRequest(params)
3192//
3193//    err := req.Send()
3194//    if err == nil { // resp is now filled
3195//        fmt.Println(resp)
3196//    }
3197//
3198// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ListAvailableManagementCidrRanges
3199func (c *WorkSpaces) ListAvailableManagementCidrRangesRequest(input *ListAvailableManagementCidrRangesInput) (req *request.Request, output *ListAvailableManagementCidrRangesOutput) {
3200	op := &request.Operation{
3201		Name:       opListAvailableManagementCidrRanges,
3202		HTTPMethod: "POST",
3203		HTTPPath:   "/",
3204	}
3205
3206	if input == nil {
3207		input = &ListAvailableManagementCidrRangesInput{}
3208	}
3209
3210	output = &ListAvailableManagementCidrRangesOutput{}
3211	req = c.newRequest(op, input, output)
3212	return
3213}
3214
3215// ListAvailableManagementCidrRanges API operation for Amazon WorkSpaces.
3216//
3217// Retrieves a list of IP address ranges, specified as IPv4 CIDR blocks, that
3218// you can use for the network management interface when you enable Bring Your
3219// Own License (BYOL).
3220//
3221// This operation can be run only by Amazon Web Services accounts that are enabled
3222// for BYOL. If your account isn't enabled for BYOL, you'll receive an AccessDeniedException
3223// error.
3224//
3225// The management network interface is connected to a secure Amazon WorkSpaces
3226// management network. It is used for interactive streaming of the WorkSpace
3227// desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage
3228// the WorkSpace.
3229//
3230// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3231// with awserr.Error's Code and Message methods to get detailed information about
3232// the error.
3233//
3234// See the AWS API reference guide for Amazon WorkSpaces's
3235// API operation ListAvailableManagementCidrRanges for usage and error information.
3236//
3237// Returned Error Types:
3238//   * InvalidParameterValuesException
3239//   One or more parameter values are not valid.
3240//
3241//   * AccessDeniedException
3242//   The user is not authorized to access a resource.
3243//
3244// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ListAvailableManagementCidrRanges
3245func (c *WorkSpaces) ListAvailableManagementCidrRanges(input *ListAvailableManagementCidrRangesInput) (*ListAvailableManagementCidrRangesOutput, error) {
3246	req, out := c.ListAvailableManagementCidrRangesRequest(input)
3247	return out, req.Send()
3248}
3249
3250// ListAvailableManagementCidrRangesWithContext is the same as ListAvailableManagementCidrRanges with the addition of
3251// the ability to pass a context and additional request options.
3252//
3253// See ListAvailableManagementCidrRanges for details on how to use this API operation.
3254//
3255// The context must be non-nil and will be used for request cancellation. If
3256// the context is nil a panic will occur. In the future the SDK may create
3257// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3258// for more information on using Contexts.
3259func (c *WorkSpaces) ListAvailableManagementCidrRangesWithContext(ctx aws.Context, input *ListAvailableManagementCidrRangesInput, opts ...request.Option) (*ListAvailableManagementCidrRangesOutput, error) {
3260	req, out := c.ListAvailableManagementCidrRangesRequest(input)
3261	req.SetContext(ctx)
3262	req.ApplyOptions(opts...)
3263	return out, req.Send()
3264}
3265
3266const opMigrateWorkspace = "MigrateWorkspace"
3267
3268// MigrateWorkspaceRequest generates a "aws/request.Request" representing the
3269// client's request for the MigrateWorkspace operation. The "output" return
3270// value will be populated with the request's response once the request completes
3271// successfully.
3272//
3273// Use "Send" method on the returned Request to send the API call to the service.
3274// the "output" return value is not valid until after Send returns without error.
3275//
3276// See MigrateWorkspace for more information on using the MigrateWorkspace
3277// API call, and error handling.
3278//
3279// This method is useful when you want to inject custom logic or configuration
3280// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3281//
3282//
3283//    // Example sending a request using the MigrateWorkspaceRequest method.
3284//    req, resp := client.MigrateWorkspaceRequest(params)
3285//
3286//    err := req.Send()
3287//    if err == nil { // resp is now filled
3288//        fmt.Println(resp)
3289//    }
3290//
3291// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/MigrateWorkspace
3292func (c *WorkSpaces) MigrateWorkspaceRequest(input *MigrateWorkspaceInput) (req *request.Request, output *MigrateWorkspaceOutput) {
3293	op := &request.Operation{
3294		Name:       opMigrateWorkspace,
3295		HTTPMethod: "POST",
3296		HTTPPath:   "/",
3297	}
3298
3299	if input == nil {
3300		input = &MigrateWorkspaceInput{}
3301	}
3302
3303	output = &MigrateWorkspaceOutput{}
3304	req = c.newRequest(op, input, output)
3305	return
3306}
3307
3308// MigrateWorkspace API operation for Amazon WorkSpaces.
3309//
3310// Migrates a WorkSpace from one operating system or bundle type to another,
3311// while retaining the data on the user volume.
3312//
3313// The migration process recreates the WorkSpace by using a new root volume
3314// from the target bundle image and the user volume from the last available
3315// snapshot of the original WorkSpace. During migration, the original D:\Users\%USERNAME%
3316// user profile folder is renamed to D:\Users\%USERNAME%MMddyyTHHmmss%.NotMigrated.
3317// A new D:\Users\%USERNAME%\ folder is generated by the new OS. Certain files
3318// in the old user profile are moved to the new user profile.
3319//
3320// For available migration scenarios, details about what happens during migration,
3321// and best practices, see Migrate a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/migrate-workspaces.html).
3322//
3323// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3324// with awserr.Error's Code and Message methods to get detailed information about
3325// the error.
3326//
3327// See the AWS API reference guide for Amazon WorkSpaces's
3328// API operation MigrateWorkspace for usage and error information.
3329//
3330// Returned Error Types:
3331//   * InvalidParameterValuesException
3332//   One or more parameter values are not valid.
3333//
3334//   * ResourceNotFoundException
3335//   The resource could not be found.
3336//
3337//   * AccessDeniedException
3338//   The user is not authorized to access a resource.
3339//
3340//   * OperationNotSupportedException
3341//   This operation is not supported.
3342//
3343//   * OperationInProgressException
3344//   The properties of this WorkSpace are currently being modified. Try again
3345//   in a moment.
3346//
3347//   * ResourceUnavailableException
3348//   The specified resource is not available.
3349//
3350// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/MigrateWorkspace
3351func (c *WorkSpaces) MigrateWorkspace(input *MigrateWorkspaceInput) (*MigrateWorkspaceOutput, error) {
3352	req, out := c.MigrateWorkspaceRequest(input)
3353	return out, req.Send()
3354}
3355
3356// MigrateWorkspaceWithContext is the same as MigrateWorkspace with the addition of
3357// the ability to pass a context and additional request options.
3358//
3359// See MigrateWorkspace for details on how to use this API operation.
3360//
3361// The context must be non-nil and will be used for request cancellation. If
3362// the context is nil a panic will occur. In the future the SDK may create
3363// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3364// for more information on using Contexts.
3365func (c *WorkSpaces) MigrateWorkspaceWithContext(ctx aws.Context, input *MigrateWorkspaceInput, opts ...request.Option) (*MigrateWorkspaceOutput, error) {
3366	req, out := c.MigrateWorkspaceRequest(input)
3367	req.SetContext(ctx)
3368	req.ApplyOptions(opts...)
3369	return out, req.Send()
3370}
3371
3372const opModifyAccount = "ModifyAccount"
3373
3374// ModifyAccountRequest generates a "aws/request.Request" representing the
3375// client's request for the ModifyAccount operation. The "output" return
3376// value will be populated with the request's response once the request completes
3377// successfully.
3378//
3379// Use "Send" method on the returned Request to send the API call to the service.
3380// the "output" return value is not valid until after Send returns without error.
3381//
3382// See ModifyAccount for more information on using the ModifyAccount
3383// API call, and error handling.
3384//
3385// This method is useful when you want to inject custom logic or configuration
3386// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3387//
3388//
3389//    // Example sending a request using the ModifyAccountRequest method.
3390//    req, resp := client.ModifyAccountRequest(params)
3391//
3392//    err := req.Send()
3393//    if err == nil { // resp is now filled
3394//        fmt.Println(resp)
3395//    }
3396//
3397// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyAccount
3398func (c *WorkSpaces) ModifyAccountRequest(input *ModifyAccountInput) (req *request.Request, output *ModifyAccountOutput) {
3399	op := &request.Operation{
3400		Name:       opModifyAccount,
3401		HTTPMethod: "POST",
3402		HTTPPath:   "/",
3403	}
3404
3405	if input == nil {
3406		input = &ModifyAccountInput{}
3407	}
3408
3409	output = &ModifyAccountOutput{}
3410	req = c.newRequest(op, input, output)
3411	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3412	return
3413}
3414
3415// ModifyAccount API operation for Amazon WorkSpaces.
3416//
3417// Modifies the configuration of Bring Your Own License (BYOL) for the specified
3418// account.
3419//
3420// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3421// with awserr.Error's Code and Message methods to get detailed information about
3422// the error.
3423//
3424// See the AWS API reference guide for Amazon WorkSpaces's
3425// API operation ModifyAccount for usage and error information.
3426//
3427// Returned Error Types:
3428//   * InvalidParameterValuesException
3429//   One or more parameter values are not valid.
3430//
3431//   * AccessDeniedException
3432//   The user is not authorized to access a resource.
3433//
3434//   * InvalidResourceStateException
3435//   The state of the resource is not valid for this operation.
3436//
3437//   * ResourceUnavailableException
3438//   The specified resource is not available.
3439//
3440//   * ResourceNotFoundException
3441//   The resource could not be found.
3442//
3443// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyAccount
3444func (c *WorkSpaces) ModifyAccount(input *ModifyAccountInput) (*ModifyAccountOutput, error) {
3445	req, out := c.ModifyAccountRequest(input)
3446	return out, req.Send()
3447}
3448
3449// ModifyAccountWithContext is the same as ModifyAccount with the addition of
3450// the ability to pass a context and additional request options.
3451//
3452// See ModifyAccount for details on how to use this API operation.
3453//
3454// The context must be non-nil and will be used for request cancellation. If
3455// the context is nil a panic will occur. In the future the SDK may create
3456// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3457// for more information on using Contexts.
3458func (c *WorkSpaces) ModifyAccountWithContext(ctx aws.Context, input *ModifyAccountInput, opts ...request.Option) (*ModifyAccountOutput, error) {
3459	req, out := c.ModifyAccountRequest(input)
3460	req.SetContext(ctx)
3461	req.ApplyOptions(opts...)
3462	return out, req.Send()
3463}
3464
3465const opModifyClientProperties = "ModifyClientProperties"
3466
3467// ModifyClientPropertiesRequest generates a "aws/request.Request" representing the
3468// client's request for the ModifyClientProperties operation. The "output" return
3469// value will be populated with the request's response once the request completes
3470// successfully.
3471//
3472// Use "Send" method on the returned Request to send the API call to the service.
3473// the "output" return value is not valid until after Send returns without error.
3474//
3475// See ModifyClientProperties for more information on using the ModifyClientProperties
3476// API call, and error handling.
3477//
3478// This method is useful when you want to inject custom logic or configuration
3479// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3480//
3481//
3482//    // Example sending a request using the ModifyClientPropertiesRequest method.
3483//    req, resp := client.ModifyClientPropertiesRequest(params)
3484//
3485//    err := req.Send()
3486//    if err == nil { // resp is now filled
3487//        fmt.Println(resp)
3488//    }
3489//
3490// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyClientProperties
3491func (c *WorkSpaces) ModifyClientPropertiesRequest(input *ModifyClientPropertiesInput) (req *request.Request, output *ModifyClientPropertiesOutput) {
3492	op := &request.Operation{
3493		Name:       opModifyClientProperties,
3494		HTTPMethod: "POST",
3495		HTTPPath:   "/",
3496	}
3497
3498	if input == nil {
3499		input = &ModifyClientPropertiesInput{}
3500	}
3501
3502	output = &ModifyClientPropertiesOutput{}
3503	req = c.newRequest(op, input, output)
3504	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3505	return
3506}
3507
3508// ModifyClientProperties API operation for Amazon WorkSpaces.
3509//
3510// Modifies the properties of the specified Amazon WorkSpaces clients.
3511//
3512// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3513// with awserr.Error's Code and Message methods to get detailed information about
3514// the error.
3515//
3516// See the AWS API reference guide for Amazon WorkSpaces's
3517// API operation ModifyClientProperties for usage and error information.
3518//
3519// Returned Error Types:
3520//   * InvalidParameterValuesException
3521//   One or more parameter values are not valid.
3522//
3523//   * ResourceNotFoundException
3524//   The resource could not be found.
3525//
3526//   * AccessDeniedException
3527//   The user is not authorized to access a resource.
3528//
3529// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyClientProperties
3530func (c *WorkSpaces) ModifyClientProperties(input *ModifyClientPropertiesInput) (*ModifyClientPropertiesOutput, error) {
3531	req, out := c.ModifyClientPropertiesRequest(input)
3532	return out, req.Send()
3533}
3534
3535// ModifyClientPropertiesWithContext is the same as ModifyClientProperties with the addition of
3536// the ability to pass a context and additional request options.
3537//
3538// See ModifyClientProperties for details on how to use this API operation.
3539//
3540// The context must be non-nil and will be used for request cancellation. If
3541// the context is nil a panic will occur. In the future the SDK may create
3542// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3543// for more information on using Contexts.
3544func (c *WorkSpaces) ModifyClientPropertiesWithContext(ctx aws.Context, input *ModifyClientPropertiesInput, opts ...request.Option) (*ModifyClientPropertiesOutput, error) {
3545	req, out := c.ModifyClientPropertiesRequest(input)
3546	req.SetContext(ctx)
3547	req.ApplyOptions(opts...)
3548	return out, req.Send()
3549}
3550
3551const opModifySelfservicePermissions = "ModifySelfservicePermissions"
3552
3553// ModifySelfservicePermissionsRequest generates a "aws/request.Request" representing the
3554// client's request for the ModifySelfservicePermissions operation. The "output" return
3555// value will be populated with the request's response once the request completes
3556// successfully.
3557//
3558// Use "Send" method on the returned Request to send the API call to the service.
3559// the "output" return value is not valid until after Send returns without error.
3560//
3561// See ModifySelfservicePermissions for more information on using the ModifySelfservicePermissions
3562// API call, and error handling.
3563//
3564// This method is useful when you want to inject custom logic or configuration
3565// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3566//
3567//
3568//    // Example sending a request using the ModifySelfservicePermissionsRequest method.
3569//    req, resp := client.ModifySelfservicePermissionsRequest(params)
3570//
3571//    err := req.Send()
3572//    if err == nil { // resp is now filled
3573//        fmt.Println(resp)
3574//    }
3575//
3576// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifySelfservicePermissions
3577func (c *WorkSpaces) ModifySelfservicePermissionsRequest(input *ModifySelfservicePermissionsInput) (req *request.Request, output *ModifySelfservicePermissionsOutput) {
3578	op := &request.Operation{
3579		Name:       opModifySelfservicePermissions,
3580		HTTPMethod: "POST",
3581		HTTPPath:   "/",
3582	}
3583
3584	if input == nil {
3585		input = &ModifySelfservicePermissionsInput{}
3586	}
3587
3588	output = &ModifySelfservicePermissionsOutput{}
3589	req = c.newRequest(op, input, output)
3590	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3591	return
3592}
3593
3594// ModifySelfservicePermissions API operation for Amazon WorkSpaces.
3595//
3596// Modifies the self-service WorkSpace management capabilities for your users.
3597// For more information, see Enable Self-Service WorkSpace Management Capabilities
3598// for Your Users (https://docs.aws.amazon.com/workspaces/latest/adminguide/enable-user-self-service-workspace-management.html).
3599//
3600// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3601// with awserr.Error's Code and Message methods to get detailed information about
3602// the error.
3603//
3604// See the AWS API reference guide for Amazon WorkSpaces's
3605// API operation ModifySelfservicePermissions for usage and error information.
3606//
3607// Returned Error Types:
3608//   * AccessDeniedException
3609//   The user is not authorized to access a resource.
3610//
3611//   * InvalidParameterValuesException
3612//   One or more parameter values are not valid.
3613//
3614//   * ResourceNotFoundException
3615//   The resource could not be found.
3616//
3617// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifySelfservicePermissions
3618func (c *WorkSpaces) ModifySelfservicePermissions(input *ModifySelfservicePermissionsInput) (*ModifySelfservicePermissionsOutput, error) {
3619	req, out := c.ModifySelfservicePermissionsRequest(input)
3620	return out, req.Send()
3621}
3622
3623// ModifySelfservicePermissionsWithContext is the same as ModifySelfservicePermissions with the addition of
3624// the ability to pass a context and additional request options.
3625//
3626// See ModifySelfservicePermissions for details on how to use this API operation.
3627//
3628// The context must be non-nil and will be used for request cancellation. If
3629// the context is nil a panic will occur. In the future the SDK may create
3630// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3631// for more information on using Contexts.
3632func (c *WorkSpaces) ModifySelfservicePermissionsWithContext(ctx aws.Context, input *ModifySelfservicePermissionsInput, opts ...request.Option) (*ModifySelfservicePermissionsOutput, error) {
3633	req, out := c.ModifySelfservicePermissionsRequest(input)
3634	req.SetContext(ctx)
3635	req.ApplyOptions(opts...)
3636	return out, req.Send()
3637}
3638
3639const opModifyWorkspaceAccessProperties = "ModifyWorkspaceAccessProperties"
3640
3641// ModifyWorkspaceAccessPropertiesRequest generates a "aws/request.Request" representing the
3642// client's request for the ModifyWorkspaceAccessProperties operation. The "output" return
3643// value will be populated with the request's response once the request completes
3644// successfully.
3645//
3646// Use "Send" method on the returned Request to send the API call to the service.
3647// the "output" return value is not valid until after Send returns without error.
3648//
3649// See ModifyWorkspaceAccessProperties for more information on using the ModifyWorkspaceAccessProperties
3650// API call, and error handling.
3651//
3652// This method is useful when you want to inject custom logic or configuration
3653// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3654//
3655//
3656//    // Example sending a request using the ModifyWorkspaceAccessPropertiesRequest method.
3657//    req, resp := client.ModifyWorkspaceAccessPropertiesRequest(params)
3658//
3659//    err := req.Send()
3660//    if err == nil { // resp is now filled
3661//        fmt.Println(resp)
3662//    }
3663//
3664// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceAccessProperties
3665func (c *WorkSpaces) ModifyWorkspaceAccessPropertiesRequest(input *ModifyWorkspaceAccessPropertiesInput) (req *request.Request, output *ModifyWorkspaceAccessPropertiesOutput) {
3666	op := &request.Operation{
3667		Name:       opModifyWorkspaceAccessProperties,
3668		HTTPMethod: "POST",
3669		HTTPPath:   "/",
3670	}
3671
3672	if input == nil {
3673		input = &ModifyWorkspaceAccessPropertiesInput{}
3674	}
3675
3676	output = &ModifyWorkspaceAccessPropertiesOutput{}
3677	req = c.newRequest(op, input, output)
3678	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3679	return
3680}
3681
3682// ModifyWorkspaceAccessProperties API operation for Amazon WorkSpaces.
3683//
3684// Specifies which devices and operating systems users can use to access their
3685// WorkSpaces. For more information, see Control Device Access (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html#control-device-access).
3686//
3687// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3688// with awserr.Error's Code and Message methods to get detailed information about
3689// the error.
3690//
3691// See the AWS API reference guide for Amazon WorkSpaces's
3692// API operation ModifyWorkspaceAccessProperties for usage and error information.
3693//
3694// Returned Error Types:
3695//   * ResourceNotFoundException
3696//   The resource could not be found.
3697//
3698//   * AccessDeniedException
3699//   The user is not authorized to access a resource.
3700//
3701// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceAccessProperties
3702func (c *WorkSpaces) ModifyWorkspaceAccessProperties(input *ModifyWorkspaceAccessPropertiesInput) (*ModifyWorkspaceAccessPropertiesOutput, error) {
3703	req, out := c.ModifyWorkspaceAccessPropertiesRequest(input)
3704	return out, req.Send()
3705}
3706
3707// ModifyWorkspaceAccessPropertiesWithContext is the same as ModifyWorkspaceAccessProperties with the addition of
3708// the ability to pass a context and additional request options.
3709//
3710// See ModifyWorkspaceAccessProperties for details on how to use this API operation.
3711//
3712// The context must be non-nil and will be used for request cancellation. If
3713// the context is nil a panic will occur. In the future the SDK may create
3714// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3715// for more information on using Contexts.
3716func (c *WorkSpaces) ModifyWorkspaceAccessPropertiesWithContext(ctx aws.Context, input *ModifyWorkspaceAccessPropertiesInput, opts ...request.Option) (*ModifyWorkspaceAccessPropertiesOutput, error) {
3717	req, out := c.ModifyWorkspaceAccessPropertiesRequest(input)
3718	req.SetContext(ctx)
3719	req.ApplyOptions(opts...)
3720	return out, req.Send()
3721}
3722
3723const opModifyWorkspaceCreationProperties = "ModifyWorkspaceCreationProperties"
3724
3725// ModifyWorkspaceCreationPropertiesRequest generates a "aws/request.Request" representing the
3726// client's request for the ModifyWorkspaceCreationProperties operation. The "output" return
3727// value will be populated with the request's response once the request completes
3728// successfully.
3729//
3730// Use "Send" method on the returned Request to send the API call to the service.
3731// the "output" return value is not valid until after Send returns without error.
3732//
3733// See ModifyWorkspaceCreationProperties for more information on using the ModifyWorkspaceCreationProperties
3734// API call, and error handling.
3735//
3736// This method is useful when you want to inject custom logic or configuration
3737// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3738//
3739//
3740//    // Example sending a request using the ModifyWorkspaceCreationPropertiesRequest method.
3741//    req, resp := client.ModifyWorkspaceCreationPropertiesRequest(params)
3742//
3743//    err := req.Send()
3744//    if err == nil { // resp is now filled
3745//        fmt.Println(resp)
3746//    }
3747//
3748// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceCreationProperties
3749func (c *WorkSpaces) ModifyWorkspaceCreationPropertiesRequest(input *ModifyWorkspaceCreationPropertiesInput) (req *request.Request, output *ModifyWorkspaceCreationPropertiesOutput) {
3750	op := &request.Operation{
3751		Name:       opModifyWorkspaceCreationProperties,
3752		HTTPMethod: "POST",
3753		HTTPPath:   "/",
3754	}
3755
3756	if input == nil {
3757		input = &ModifyWorkspaceCreationPropertiesInput{}
3758	}
3759
3760	output = &ModifyWorkspaceCreationPropertiesOutput{}
3761	req = c.newRequest(op, input, output)
3762	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3763	return
3764}
3765
3766// ModifyWorkspaceCreationProperties API operation for Amazon WorkSpaces.
3767//
3768// Modify the default properties used to create WorkSpaces.
3769//
3770// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3771// with awserr.Error's Code and Message methods to get detailed information about
3772// the error.
3773//
3774// See the AWS API reference guide for Amazon WorkSpaces's
3775// API operation ModifyWorkspaceCreationProperties for usage and error information.
3776//
3777// Returned Error Types:
3778//   * AccessDeniedException
3779//   The user is not authorized to access a resource.
3780//
3781//   * InvalidParameterValuesException
3782//   One or more parameter values are not valid.
3783//
3784//   * ResourceNotFoundException
3785//   The resource could not be found.
3786//
3787//   * OperationNotSupportedException
3788//   This operation is not supported.
3789//
3790// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceCreationProperties
3791func (c *WorkSpaces) ModifyWorkspaceCreationProperties(input *ModifyWorkspaceCreationPropertiesInput) (*ModifyWorkspaceCreationPropertiesOutput, error) {
3792	req, out := c.ModifyWorkspaceCreationPropertiesRequest(input)
3793	return out, req.Send()
3794}
3795
3796// ModifyWorkspaceCreationPropertiesWithContext is the same as ModifyWorkspaceCreationProperties with the addition of
3797// the ability to pass a context and additional request options.
3798//
3799// See ModifyWorkspaceCreationProperties for details on how to use this API operation.
3800//
3801// The context must be non-nil and will be used for request cancellation. If
3802// the context is nil a panic will occur. In the future the SDK may create
3803// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3804// for more information on using Contexts.
3805func (c *WorkSpaces) ModifyWorkspaceCreationPropertiesWithContext(ctx aws.Context, input *ModifyWorkspaceCreationPropertiesInput, opts ...request.Option) (*ModifyWorkspaceCreationPropertiesOutput, error) {
3806	req, out := c.ModifyWorkspaceCreationPropertiesRequest(input)
3807	req.SetContext(ctx)
3808	req.ApplyOptions(opts...)
3809	return out, req.Send()
3810}
3811
3812const opModifyWorkspaceProperties = "ModifyWorkspaceProperties"
3813
3814// ModifyWorkspacePropertiesRequest generates a "aws/request.Request" representing the
3815// client's request for the ModifyWorkspaceProperties operation. The "output" return
3816// value will be populated with the request's response once the request completes
3817// successfully.
3818//
3819// Use "Send" method on the returned Request to send the API call to the service.
3820// the "output" return value is not valid until after Send returns without error.
3821//
3822// See ModifyWorkspaceProperties for more information on using the ModifyWorkspaceProperties
3823// API call, and error handling.
3824//
3825// This method is useful when you want to inject custom logic or configuration
3826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3827//
3828//
3829//    // Example sending a request using the ModifyWorkspacePropertiesRequest method.
3830//    req, resp := client.ModifyWorkspacePropertiesRequest(params)
3831//
3832//    err := req.Send()
3833//    if err == nil { // resp is now filled
3834//        fmt.Println(resp)
3835//    }
3836//
3837// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceProperties
3838func (c *WorkSpaces) ModifyWorkspacePropertiesRequest(input *ModifyWorkspacePropertiesInput) (req *request.Request, output *ModifyWorkspacePropertiesOutput) {
3839	op := &request.Operation{
3840		Name:       opModifyWorkspaceProperties,
3841		HTTPMethod: "POST",
3842		HTTPPath:   "/",
3843	}
3844
3845	if input == nil {
3846		input = &ModifyWorkspacePropertiesInput{}
3847	}
3848
3849	output = &ModifyWorkspacePropertiesOutput{}
3850	req = c.newRequest(op, input, output)
3851	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3852	return
3853}
3854
3855// ModifyWorkspaceProperties API operation for Amazon WorkSpaces.
3856//
3857// Modifies the specified WorkSpace properties. For important information about
3858// how to modify the size of the root and user volumes, see Modify a WorkSpace
3859// (https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html).
3860//
3861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3862// with awserr.Error's Code and Message methods to get detailed information about
3863// the error.
3864//
3865// See the AWS API reference guide for Amazon WorkSpaces's
3866// API operation ModifyWorkspaceProperties for usage and error information.
3867//
3868// Returned Error Types:
3869//   * InvalidParameterValuesException
3870//   One or more parameter values are not valid.
3871//
3872//   * InvalidResourceStateException
3873//   The state of the resource is not valid for this operation.
3874//
3875//   * OperationInProgressException
3876//   The properties of this WorkSpace are currently being modified. Try again
3877//   in a moment.
3878//
3879//   * UnsupportedWorkspaceConfigurationException
3880//   The configuration of this WorkSpace is not supported for this operation.
3881//   For more information, see Required Configuration and Service Components for
3882//   WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/required-service-components.html).
3883//
3884//   * ResourceNotFoundException
3885//   The resource could not be found.
3886//
3887//   * AccessDeniedException
3888//   The user is not authorized to access a resource.
3889//
3890//   * ResourceUnavailableException
3891//   The specified resource is not available.
3892//
3893// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceProperties
3894func (c *WorkSpaces) ModifyWorkspaceProperties(input *ModifyWorkspacePropertiesInput) (*ModifyWorkspacePropertiesOutput, error) {
3895	req, out := c.ModifyWorkspacePropertiesRequest(input)
3896	return out, req.Send()
3897}
3898
3899// ModifyWorkspacePropertiesWithContext is the same as ModifyWorkspaceProperties with the addition of
3900// the ability to pass a context and additional request options.
3901//
3902// See ModifyWorkspaceProperties for details on how to use this API operation.
3903//
3904// The context must be non-nil and will be used for request cancellation. If
3905// the context is nil a panic will occur. In the future the SDK may create
3906// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3907// for more information on using Contexts.
3908func (c *WorkSpaces) ModifyWorkspacePropertiesWithContext(ctx aws.Context, input *ModifyWorkspacePropertiesInput, opts ...request.Option) (*ModifyWorkspacePropertiesOutput, error) {
3909	req, out := c.ModifyWorkspacePropertiesRequest(input)
3910	req.SetContext(ctx)
3911	req.ApplyOptions(opts...)
3912	return out, req.Send()
3913}
3914
3915const opModifyWorkspaceState = "ModifyWorkspaceState"
3916
3917// ModifyWorkspaceStateRequest generates a "aws/request.Request" representing the
3918// client's request for the ModifyWorkspaceState operation. The "output" return
3919// value will be populated with the request's response once the request completes
3920// successfully.
3921//
3922// Use "Send" method on the returned Request to send the API call to the service.
3923// the "output" return value is not valid until after Send returns without error.
3924//
3925// See ModifyWorkspaceState for more information on using the ModifyWorkspaceState
3926// API call, and error handling.
3927//
3928// This method is useful when you want to inject custom logic or configuration
3929// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3930//
3931//
3932//    // Example sending a request using the ModifyWorkspaceStateRequest method.
3933//    req, resp := client.ModifyWorkspaceStateRequest(params)
3934//
3935//    err := req.Send()
3936//    if err == nil { // resp is now filled
3937//        fmt.Println(resp)
3938//    }
3939//
3940// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceState
3941func (c *WorkSpaces) ModifyWorkspaceStateRequest(input *ModifyWorkspaceStateInput) (req *request.Request, output *ModifyWorkspaceStateOutput) {
3942	op := &request.Operation{
3943		Name:       opModifyWorkspaceState,
3944		HTTPMethod: "POST",
3945		HTTPPath:   "/",
3946	}
3947
3948	if input == nil {
3949		input = &ModifyWorkspaceStateInput{}
3950	}
3951
3952	output = &ModifyWorkspaceStateOutput{}
3953	req = c.newRequest(op, input, output)
3954	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3955	return
3956}
3957
3958// ModifyWorkspaceState API operation for Amazon WorkSpaces.
3959//
3960// Sets the state of the specified WorkSpace.
3961//
3962// To maintain a WorkSpace without being interrupted, set the WorkSpace state
3963// to ADMIN_MAINTENANCE. WorkSpaces in this state do not respond to requests
3964// to reboot, stop, start, rebuild, or restore. An AutoStop WorkSpace in this
3965// state is not stopped. Users cannot log into a WorkSpace in the ADMIN_MAINTENANCE
3966// state.
3967//
3968// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3969// with awserr.Error's Code and Message methods to get detailed information about
3970// the error.
3971//
3972// See the AWS API reference guide for Amazon WorkSpaces's
3973// API operation ModifyWorkspaceState for usage and error information.
3974//
3975// Returned Error Types:
3976//   * InvalidParameterValuesException
3977//   One or more parameter values are not valid.
3978//
3979//   * InvalidResourceStateException
3980//   The state of the resource is not valid for this operation.
3981//
3982//   * ResourceNotFoundException
3983//   The resource could not be found.
3984//
3985// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceState
3986func (c *WorkSpaces) ModifyWorkspaceState(input *ModifyWorkspaceStateInput) (*ModifyWorkspaceStateOutput, error) {
3987	req, out := c.ModifyWorkspaceStateRequest(input)
3988	return out, req.Send()
3989}
3990
3991// ModifyWorkspaceStateWithContext is the same as ModifyWorkspaceState with the addition of
3992// the ability to pass a context and additional request options.
3993//
3994// See ModifyWorkspaceState for details on how to use this API operation.
3995//
3996// The context must be non-nil and will be used for request cancellation. If
3997// the context is nil a panic will occur. In the future the SDK may create
3998// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3999// for more information on using Contexts.
4000func (c *WorkSpaces) ModifyWorkspaceStateWithContext(ctx aws.Context, input *ModifyWorkspaceStateInput, opts ...request.Option) (*ModifyWorkspaceStateOutput, error) {
4001	req, out := c.ModifyWorkspaceStateRequest(input)
4002	req.SetContext(ctx)
4003	req.ApplyOptions(opts...)
4004	return out, req.Send()
4005}
4006
4007const opRebootWorkspaces = "RebootWorkspaces"
4008
4009// RebootWorkspacesRequest generates a "aws/request.Request" representing the
4010// client's request for the RebootWorkspaces operation. The "output" return
4011// value will be populated with the request's response once the request completes
4012// successfully.
4013//
4014// Use "Send" method on the returned Request to send the API call to the service.
4015// the "output" return value is not valid until after Send returns without error.
4016//
4017// See RebootWorkspaces for more information on using the RebootWorkspaces
4018// API call, and error handling.
4019//
4020// This method is useful when you want to inject custom logic or configuration
4021// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4022//
4023//
4024//    // Example sending a request using the RebootWorkspacesRequest method.
4025//    req, resp := client.RebootWorkspacesRequest(params)
4026//
4027//    err := req.Send()
4028//    if err == nil { // resp is now filled
4029//        fmt.Println(resp)
4030//    }
4031//
4032// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebootWorkspaces
4033func (c *WorkSpaces) RebootWorkspacesRequest(input *RebootWorkspacesInput) (req *request.Request, output *RebootWorkspacesOutput) {
4034	op := &request.Operation{
4035		Name:       opRebootWorkspaces,
4036		HTTPMethod: "POST",
4037		HTTPPath:   "/",
4038	}
4039
4040	if input == nil {
4041		input = &RebootWorkspacesInput{}
4042	}
4043
4044	output = &RebootWorkspacesOutput{}
4045	req = c.newRequest(op, input, output)
4046	return
4047}
4048
4049// RebootWorkspaces API operation for Amazon WorkSpaces.
4050//
4051// Reboots the specified WorkSpaces.
4052//
4053// You cannot reboot a WorkSpace unless its state is AVAILABLE or UNHEALTHY.
4054//
4055// This operation is asynchronous and returns before the WorkSpaces have rebooted.
4056//
4057// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4058// with awserr.Error's Code and Message methods to get detailed information about
4059// the error.
4060//
4061// See the AWS API reference guide for Amazon WorkSpaces's
4062// API operation RebootWorkspaces for usage and error information.
4063// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebootWorkspaces
4064func (c *WorkSpaces) RebootWorkspaces(input *RebootWorkspacesInput) (*RebootWorkspacesOutput, error) {
4065	req, out := c.RebootWorkspacesRequest(input)
4066	return out, req.Send()
4067}
4068
4069// RebootWorkspacesWithContext is the same as RebootWorkspaces with the addition of
4070// the ability to pass a context and additional request options.
4071//
4072// See RebootWorkspaces for details on how to use this API operation.
4073//
4074// The context must be non-nil and will be used for request cancellation. If
4075// the context is nil a panic will occur. In the future the SDK may create
4076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4077// for more information on using Contexts.
4078func (c *WorkSpaces) RebootWorkspacesWithContext(ctx aws.Context, input *RebootWorkspacesInput, opts ...request.Option) (*RebootWorkspacesOutput, error) {
4079	req, out := c.RebootWorkspacesRequest(input)
4080	req.SetContext(ctx)
4081	req.ApplyOptions(opts...)
4082	return out, req.Send()
4083}
4084
4085const opRebuildWorkspaces = "RebuildWorkspaces"
4086
4087// RebuildWorkspacesRequest generates a "aws/request.Request" representing the
4088// client's request for the RebuildWorkspaces operation. The "output" return
4089// value will be populated with the request's response once the request completes
4090// successfully.
4091//
4092// Use "Send" method on the returned Request to send the API call to the service.
4093// the "output" return value is not valid until after Send returns without error.
4094//
4095// See RebuildWorkspaces for more information on using the RebuildWorkspaces
4096// API call, and error handling.
4097//
4098// This method is useful when you want to inject custom logic or configuration
4099// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4100//
4101//
4102//    // Example sending a request using the RebuildWorkspacesRequest method.
4103//    req, resp := client.RebuildWorkspacesRequest(params)
4104//
4105//    err := req.Send()
4106//    if err == nil { // resp is now filled
4107//        fmt.Println(resp)
4108//    }
4109//
4110// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces
4111func (c *WorkSpaces) RebuildWorkspacesRequest(input *RebuildWorkspacesInput) (req *request.Request, output *RebuildWorkspacesOutput) {
4112	op := &request.Operation{
4113		Name:       opRebuildWorkspaces,
4114		HTTPMethod: "POST",
4115		HTTPPath:   "/",
4116	}
4117
4118	if input == nil {
4119		input = &RebuildWorkspacesInput{}
4120	}
4121
4122	output = &RebuildWorkspacesOutput{}
4123	req = c.newRequest(op, input, output)
4124	return
4125}
4126
4127// RebuildWorkspaces API operation for Amazon WorkSpaces.
4128//
4129// Rebuilds the specified WorkSpace.
4130//
4131// You cannot rebuild a WorkSpace unless its state is AVAILABLE, ERROR, UNHEALTHY,
4132// STOPPED, or REBOOTING.
4133//
4134// Rebuilding a WorkSpace is a potentially destructive action that can result
4135// in the loss of data. For more information, see Rebuild a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/reset-workspace.html).
4136//
4137// This operation is asynchronous and returns before the WorkSpaces have been
4138// completely rebuilt.
4139//
4140// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4141// with awserr.Error's Code and Message methods to get detailed information about
4142// the error.
4143//
4144// See the AWS API reference guide for Amazon WorkSpaces's
4145// API operation RebuildWorkspaces for usage and error information.
4146// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces
4147func (c *WorkSpaces) RebuildWorkspaces(input *RebuildWorkspacesInput) (*RebuildWorkspacesOutput, error) {
4148	req, out := c.RebuildWorkspacesRequest(input)
4149	return out, req.Send()
4150}
4151
4152// RebuildWorkspacesWithContext is the same as RebuildWorkspaces with the addition of
4153// the ability to pass a context and additional request options.
4154//
4155// See RebuildWorkspaces for details on how to use this API operation.
4156//
4157// The context must be non-nil and will be used for request cancellation. If
4158// the context is nil a panic will occur. In the future the SDK may create
4159// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4160// for more information on using Contexts.
4161func (c *WorkSpaces) RebuildWorkspacesWithContext(ctx aws.Context, input *RebuildWorkspacesInput, opts ...request.Option) (*RebuildWorkspacesOutput, error) {
4162	req, out := c.RebuildWorkspacesRequest(input)
4163	req.SetContext(ctx)
4164	req.ApplyOptions(opts...)
4165	return out, req.Send()
4166}
4167
4168const opRegisterWorkspaceDirectory = "RegisterWorkspaceDirectory"
4169
4170// RegisterWorkspaceDirectoryRequest generates a "aws/request.Request" representing the
4171// client's request for the RegisterWorkspaceDirectory operation. The "output" return
4172// value will be populated with the request's response once the request completes
4173// successfully.
4174//
4175// Use "Send" method on the returned Request to send the API call to the service.
4176// the "output" return value is not valid until after Send returns without error.
4177//
4178// See RegisterWorkspaceDirectory for more information on using the RegisterWorkspaceDirectory
4179// API call, and error handling.
4180//
4181// This method is useful when you want to inject custom logic or configuration
4182// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4183//
4184//
4185//    // Example sending a request using the RegisterWorkspaceDirectoryRequest method.
4186//    req, resp := client.RegisterWorkspaceDirectoryRequest(params)
4187//
4188//    err := req.Send()
4189//    if err == nil { // resp is now filled
4190//        fmt.Println(resp)
4191//    }
4192//
4193// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RegisterWorkspaceDirectory
4194func (c *WorkSpaces) RegisterWorkspaceDirectoryRequest(input *RegisterWorkspaceDirectoryInput) (req *request.Request, output *RegisterWorkspaceDirectoryOutput) {
4195	op := &request.Operation{
4196		Name:       opRegisterWorkspaceDirectory,
4197		HTTPMethod: "POST",
4198		HTTPPath:   "/",
4199	}
4200
4201	if input == nil {
4202		input = &RegisterWorkspaceDirectoryInput{}
4203	}
4204
4205	output = &RegisterWorkspaceDirectoryOutput{}
4206	req = c.newRequest(op, input, output)
4207	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4208	return
4209}
4210
4211// RegisterWorkspaceDirectory API operation for Amazon WorkSpaces.
4212//
4213// Registers the specified directory. This operation is asynchronous and returns
4214// before the WorkSpace directory is registered. If this is the first time you
4215// are registering a directory, you will need to create the workspaces_DefaultRole
4216// role before you can register a directory. For more information, see Creating
4217// the workspaces_DefaultRole Role (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role).
4218//
4219// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4220// with awserr.Error's Code and Message methods to get detailed information about
4221// the error.
4222//
4223// See the AWS API reference guide for Amazon WorkSpaces's
4224// API operation RegisterWorkspaceDirectory for usage and error information.
4225//
4226// Returned Error Types:
4227//   * InvalidParameterValuesException
4228//   One or more parameter values are not valid.
4229//
4230//   * ResourceNotFoundException
4231//   The resource could not be found.
4232//
4233//   * ResourceLimitExceededException
4234//   Your resource limits have been exceeded.
4235//
4236//   * AccessDeniedException
4237//   The user is not authorized to access a resource.
4238//
4239//   * WorkspacesDefaultRoleNotFoundException
4240//   The workspaces_DefaultRole role could not be found. If this is the first
4241//   time you are registering a directory, you will need to create the workspaces_DefaultRole
4242//   role before you can register a directory. For more information, see Creating
4243//   the workspaces_DefaultRole Role (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role).
4244//
4245//   * InvalidResourceStateException
4246//   The state of the resource is not valid for this operation.
4247//
4248//   * UnsupportedNetworkConfigurationException
4249//   The configuration of this network is not supported for this operation, or
4250//   your network configuration conflicts with the Amazon WorkSpaces management
4251//   network IP range. For more information, see Configure a VPC for Amazon WorkSpaces
4252//   (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html).
4253//
4254//   * OperationNotSupportedException
4255//   This operation is not supported.
4256//
4257// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RegisterWorkspaceDirectory
4258func (c *WorkSpaces) RegisterWorkspaceDirectory(input *RegisterWorkspaceDirectoryInput) (*RegisterWorkspaceDirectoryOutput, error) {
4259	req, out := c.RegisterWorkspaceDirectoryRequest(input)
4260	return out, req.Send()
4261}
4262
4263// RegisterWorkspaceDirectoryWithContext is the same as RegisterWorkspaceDirectory with the addition of
4264// the ability to pass a context and additional request options.
4265//
4266// See RegisterWorkspaceDirectory for details on how to use this API operation.
4267//
4268// The context must be non-nil and will be used for request cancellation. If
4269// the context is nil a panic will occur. In the future the SDK may create
4270// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4271// for more information on using Contexts.
4272func (c *WorkSpaces) RegisterWorkspaceDirectoryWithContext(ctx aws.Context, input *RegisterWorkspaceDirectoryInput, opts ...request.Option) (*RegisterWorkspaceDirectoryOutput, error) {
4273	req, out := c.RegisterWorkspaceDirectoryRequest(input)
4274	req.SetContext(ctx)
4275	req.ApplyOptions(opts...)
4276	return out, req.Send()
4277}
4278
4279const opRestoreWorkspace = "RestoreWorkspace"
4280
4281// RestoreWorkspaceRequest generates a "aws/request.Request" representing the
4282// client's request for the RestoreWorkspace operation. The "output" return
4283// value will be populated with the request's response once the request completes
4284// successfully.
4285//
4286// Use "Send" method on the returned Request to send the API call to the service.
4287// the "output" return value is not valid until after Send returns without error.
4288//
4289// See RestoreWorkspace for more information on using the RestoreWorkspace
4290// API call, and error handling.
4291//
4292// This method is useful when you want to inject custom logic or configuration
4293// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4294//
4295//
4296//    // Example sending a request using the RestoreWorkspaceRequest method.
4297//    req, resp := client.RestoreWorkspaceRequest(params)
4298//
4299//    err := req.Send()
4300//    if err == nil { // resp is now filled
4301//        fmt.Println(resp)
4302//    }
4303//
4304// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RestoreWorkspace
4305func (c *WorkSpaces) RestoreWorkspaceRequest(input *RestoreWorkspaceInput) (req *request.Request, output *RestoreWorkspaceOutput) {
4306	op := &request.Operation{
4307		Name:       opRestoreWorkspace,
4308		HTTPMethod: "POST",
4309		HTTPPath:   "/",
4310	}
4311
4312	if input == nil {
4313		input = &RestoreWorkspaceInput{}
4314	}
4315
4316	output = &RestoreWorkspaceOutput{}
4317	req = c.newRequest(op, input, output)
4318	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4319	return
4320}
4321
4322// RestoreWorkspace API operation for Amazon WorkSpaces.
4323//
4324// Restores the specified WorkSpace to its last known healthy state.
4325//
4326// You cannot restore a WorkSpace unless its state is AVAILABLE, ERROR, UNHEALTHY,
4327// or STOPPED.
4328//
4329// Restoring a WorkSpace is a potentially destructive action that can result
4330// in the loss of data. For more information, see Restore a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/restore-workspace.html).
4331//
4332// This operation is asynchronous and returns before the WorkSpace is completely
4333// restored.
4334//
4335// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4336// with awserr.Error's Code and Message methods to get detailed information about
4337// the error.
4338//
4339// See the AWS API reference guide for Amazon WorkSpaces's
4340// API operation RestoreWorkspace for usage and error information.
4341//
4342// Returned Error Types:
4343//   * InvalidParameterValuesException
4344//   One or more parameter values are not valid.
4345//
4346//   * ResourceNotFoundException
4347//   The resource could not be found.
4348//
4349//   * AccessDeniedException
4350//   The user is not authorized to access a resource.
4351//
4352// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RestoreWorkspace
4353func (c *WorkSpaces) RestoreWorkspace(input *RestoreWorkspaceInput) (*RestoreWorkspaceOutput, error) {
4354	req, out := c.RestoreWorkspaceRequest(input)
4355	return out, req.Send()
4356}
4357
4358// RestoreWorkspaceWithContext is the same as RestoreWorkspace with the addition of
4359// the ability to pass a context and additional request options.
4360//
4361// See RestoreWorkspace for details on how to use this API operation.
4362//
4363// The context must be non-nil and will be used for request cancellation. If
4364// the context is nil a panic will occur. In the future the SDK may create
4365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4366// for more information on using Contexts.
4367func (c *WorkSpaces) RestoreWorkspaceWithContext(ctx aws.Context, input *RestoreWorkspaceInput, opts ...request.Option) (*RestoreWorkspaceOutput, error) {
4368	req, out := c.RestoreWorkspaceRequest(input)
4369	req.SetContext(ctx)
4370	req.ApplyOptions(opts...)
4371	return out, req.Send()
4372}
4373
4374const opRevokeIpRules = "RevokeIpRules"
4375
4376// RevokeIpRulesRequest generates a "aws/request.Request" representing the
4377// client's request for the RevokeIpRules operation. The "output" return
4378// value will be populated with the request's response once the request completes
4379// successfully.
4380//
4381// Use "Send" method on the returned Request to send the API call to the service.
4382// the "output" return value is not valid until after Send returns without error.
4383//
4384// See RevokeIpRules for more information on using the RevokeIpRules
4385// API call, and error handling.
4386//
4387// This method is useful when you want to inject custom logic or configuration
4388// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4389//
4390//
4391//    // Example sending a request using the RevokeIpRulesRequest method.
4392//    req, resp := client.RevokeIpRulesRequest(params)
4393//
4394//    err := req.Send()
4395//    if err == nil { // resp is now filled
4396//        fmt.Println(resp)
4397//    }
4398//
4399// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RevokeIpRules
4400func (c *WorkSpaces) RevokeIpRulesRequest(input *RevokeIpRulesInput) (req *request.Request, output *RevokeIpRulesOutput) {
4401	op := &request.Operation{
4402		Name:       opRevokeIpRules,
4403		HTTPMethod: "POST",
4404		HTTPPath:   "/",
4405	}
4406
4407	if input == nil {
4408		input = &RevokeIpRulesInput{}
4409	}
4410
4411	output = &RevokeIpRulesOutput{}
4412	req = c.newRequest(op, input, output)
4413	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4414	return
4415}
4416
4417// RevokeIpRules API operation for Amazon WorkSpaces.
4418//
4419// Removes one or more rules from the specified IP access control group.
4420//
4421// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4422// with awserr.Error's Code and Message methods to get detailed information about
4423// the error.
4424//
4425// See the AWS API reference guide for Amazon WorkSpaces's
4426// API operation RevokeIpRules for usage and error information.
4427//
4428// Returned Error Types:
4429//   * InvalidParameterValuesException
4430//   One or more parameter values are not valid.
4431//
4432//   * ResourceNotFoundException
4433//   The resource could not be found.
4434//
4435//   * InvalidResourceStateException
4436//   The state of the resource is not valid for this operation.
4437//
4438//   * AccessDeniedException
4439//   The user is not authorized to access a resource.
4440//
4441// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RevokeIpRules
4442func (c *WorkSpaces) RevokeIpRules(input *RevokeIpRulesInput) (*RevokeIpRulesOutput, error) {
4443	req, out := c.RevokeIpRulesRequest(input)
4444	return out, req.Send()
4445}
4446
4447// RevokeIpRulesWithContext is the same as RevokeIpRules with the addition of
4448// the ability to pass a context and additional request options.
4449//
4450// See RevokeIpRules for details on how to use this API operation.
4451//
4452// The context must be non-nil and will be used for request cancellation. If
4453// the context is nil a panic will occur. In the future the SDK may create
4454// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4455// for more information on using Contexts.
4456func (c *WorkSpaces) RevokeIpRulesWithContext(ctx aws.Context, input *RevokeIpRulesInput, opts ...request.Option) (*RevokeIpRulesOutput, error) {
4457	req, out := c.RevokeIpRulesRequest(input)
4458	req.SetContext(ctx)
4459	req.ApplyOptions(opts...)
4460	return out, req.Send()
4461}
4462
4463const opStartWorkspaces = "StartWorkspaces"
4464
4465// StartWorkspacesRequest generates a "aws/request.Request" representing the
4466// client's request for the StartWorkspaces operation. The "output" return
4467// value will be populated with the request's response once the request completes
4468// successfully.
4469//
4470// Use "Send" method on the returned Request to send the API call to the service.
4471// the "output" return value is not valid until after Send returns without error.
4472//
4473// See StartWorkspaces for more information on using the StartWorkspaces
4474// API call, and error handling.
4475//
4476// This method is useful when you want to inject custom logic or configuration
4477// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4478//
4479//
4480//    // Example sending a request using the StartWorkspacesRequest method.
4481//    req, resp := client.StartWorkspacesRequest(params)
4482//
4483//    err := req.Send()
4484//    if err == nil { // resp is now filled
4485//        fmt.Println(resp)
4486//    }
4487//
4488// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StartWorkspaces
4489func (c *WorkSpaces) StartWorkspacesRequest(input *StartWorkspacesInput) (req *request.Request, output *StartWorkspacesOutput) {
4490	op := &request.Operation{
4491		Name:       opStartWorkspaces,
4492		HTTPMethod: "POST",
4493		HTTPPath:   "/",
4494	}
4495
4496	if input == nil {
4497		input = &StartWorkspacesInput{}
4498	}
4499
4500	output = &StartWorkspacesOutput{}
4501	req = c.newRequest(op, input, output)
4502	return
4503}
4504
4505// StartWorkspaces API operation for Amazon WorkSpaces.
4506//
4507// Starts the specified WorkSpaces.
4508//
4509// You cannot start a WorkSpace unless it has a running mode of AutoStop and
4510// a state of STOPPED.
4511//
4512// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4513// with awserr.Error's Code and Message methods to get detailed information about
4514// the error.
4515//
4516// See the AWS API reference guide for Amazon WorkSpaces's
4517// API operation StartWorkspaces for usage and error information.
4518// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StartWorkspaces
4519func (c *WorkSpaces) StartWorkspaces(input *StartWorkspacesInput) (*StartWorkspacesOutput, error) {
4520	req, out := c.StartWorkspacesRequest(input)
4521	return out, req.Send()
4522}
4523
4524// StartWorkspacesWithContext is the same as StartWorkspaces with the addition of
4525// the ability to pass a context and additional request options.
4526//
4527// See StartWorkspaces for details on how to use this API operation.
4528//
4529// The context must be non-nil and will be used for request cancellation. If
4530// the context is nil a panic will occur. In the future the SDK may create
4531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4532// for more information on using Contexts.
4533func (c *WorkSpaces) StartWorkspacesWithContext(ctx aws.Context, input *StartWorkspacesInput, opts ...request.Option) (*StartWorkspacesOutput, error) {
4534	req, out := c.StartWorkspacesRequest(input)
4535	req.SetContext(ctx)
4536	req.ApplyOptions(opts...)
4537	return out, req.Send()
4538}
4539
4540const opStopWorkspaces = "StopWorkspaces"
4541
4542// StopWorkspacesRequest generates a "aws/request.Request" representing the
4543// client's request for the StopWorkspaces operation. The "output" return
4544// value will be populated with the request's response once the request completes
4545// successfully.
4546//
4547// Use "Send" method on the returned Request to send the API call to the service.
4548// the "output" return value is not valid until after Send returns without error.
4549//
4550// See StopWorkspaces for more information on using the StopWorkspaces
4551// API call, and error handling.
4552//
4553// This method is useful when you want to inject custom logic or configuration
4554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4555//
4556//
4557//    // Example sending a request using the StopWorkspacesRequest method.
4558//    req, resp := client.StopWorkspacesRequest(params)
4559//
4560//    err := req.Send()
4561//    if err == nil { // resp is now filled
4562//        fmt.Println(resp)
4563//    }
4564//
4565// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StopWorkspaces
4566func (c *WorkSpaces) StopWorkspacesRequest(input *StopWorkspacesInput) (req *request.Request, output *StopWorkspacesOutput) {
4567	op := &request.Operation{
4568		Name:       opStopWorkspaces,
4569		HTTPMethod: "POST",
4570		HTTPPath:   "/",
4571	}
4572
4573	if input == nil {
4574		input = &StopWorkspacesInput{}
4575	}
4576
4577	output = &StopWorkspacesOutput{}
4578	req = c.newRequest(op, input, output)
4579	return
4580}
4581
4582// StopWorkspaces API operation for Amazon WorkSpaces.
4583//
4584// Stops the specified WorkSpaces.
4585//
4586// You cannot stop a WorkSpace unless it has a running mode of AutoStop and
4587// a state of AVAILABLE, IMPAIRED, UNHEALTHY, or ERROR.
4588//
4589// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4590// with awserr.Error's Code and Message methods to get detailed information about
4591// the error.
4592//
4593// See the AWS API reference guide for Amazon WorkSpaces's
4594// API operation StopWorkspaces for usage and error information.
4595// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StopWorkspaces
4596func (c *WorkSpaces) StopWorkspaces(input *StopWorkspacesInput) (*StopWorkspacesOutput, error) {
4597	req, out := c.StopWorkspacesRequest(input)
4598	return out, req.Send()
4599}
4600
4601// StopWorkspacesWithContext is the same as StopWorkspaces with the addition of
4602// the ability to pass a context and additional request options.
4603//
4604// See StopWorkspaces for details on how to use this API operation.
4605//
4606// The context must be non-nil and will be used for request cancellation. If
4607// the context is nil a panic will occur. In the future the SDK may create
4608// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4609// for more information on using Contexts.
4610func (c *WorkSpaces) StopWorkspacesWithContext(ctx aws.Context, input *StopWorkspacesInput, opts ...request.Option) (*StopWorkspacesOutput, error) {
4611	req, out := c.StopWorkspacesRequest(input)
4612	req.SetContext(ctx)
4613	req.ApplyOptions(opts...)
4614	return out, req.Send()
4615}
4616
4617const opTerminateWorkspaces = "TerminateWorkspaces"
4618
4619// TerminateWorkspacesRequest generates a "aws/request.Request" representing the
4620// client's request for the TerminateWorkspaces operation. The "output" return
4621// value will be populated with the request's response once the request completes
4622// successfully.
4623//
4624// Use "Send" method on the returned Request to send the API call to the service.
4625// the "output" return value is not valid until after Send returns without error.
4626//
4627// See TerminateWorkspaces for more information on using the TerminateWorkspaces
4628// API call, and error handling.
4629//
4630// This method is useful when you want to inject custom logic or configuration
4631// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4632//
4633//
4634//    // Example sending a request using the TerminateWorkspacesRequest method.
4635//    req, resp := client.TerminateWorkspacesRequest(params)
4636//
4637//    err := req.Send()
4638//    if err == nil { // resp is now filled
4639//        fmt.Println(resp)
4640//    }
4641//
4642// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/TerminateWorkspaces
4643func (c *WorkSpaces) TerminateWorkspacesRequest(input *TerminateWorkspacesInput) (req *request.Request, output *TerminateWorkspacesOutput) {
4644	op := &request.Operation{
4645		Name:       opTerminateWorkspaces,
4646		HTTPMethod: "POST",
4647		HTTPPath:   "/",
4648	}
4649
4650	if input == nil {
4651		input = &TerminateWorkspacesInput{}
4652	}
4653
4654	output = &TerminateWorkspacesOutput{}
4655	req = c.newRequest(op, input, output)
4656	return
4657}
4658
4659// TerminateWorkspaces API operation for Amazon WorkSpaces.
4660//
4661// Terminates the specified WorkSpaces.
4662//
4663// Terminating a WorkSpace is a permanent action and cannot be undone. The user's
4664// data is destroyed. If you need to archive any user data, contact Amazon Web
4665// Services Support before terminating the WorkSpace.
4666//
4667// You can terminate a WorkSpace that is in any state except SUSPENDED.
4668//
4669// This operation is asynchronous and returns before the WorkSpaces have been
4670// completely terminated. After a WorkSpace is terminated, the TERMINATED state
4671// is returned only briefly before the WorkSpace directory metadata is cleaned
4672// up, so this state is rarely returned. To confirm that a WorkSpace is terminated,
4673// check for the WorkSpace ID by using DescribeWorkSpaces (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaces.html).
4674// If the WorkSpace ID isn't returned, then the WorkSpace has been successfully
4675// terminated.
4676//
4677// Simple AD and AD Connector are made available to you free of charge to use
4678// with WorkSpaces. If there are no WorkSpaces being used with your Simple AD
4679// or AD Connector directory for 30 consecutive days, this directory will be
4680// automatically deregistered for use with Amazon WorkSpaces, and you will be
4681// charged for this directory as per the Directory Service pricing terms (http://aws.amazon.com/directoryservice/pricing/).
4682//
4683// To delete empty directories, see Delete the Directory for Your WorkSpaces
4684// (https://docs.aws.amazon.com/workspaces/latest/adminguide/delete-workspaces-directory.html).
4685// If you delete your Simple AD or AD Connector directory, you can always create
4686// a new one when you want to start using WorkSpaces again.
4687//
4688// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4689// with awserr.Error's Code and Message methods to get detailed information about
4690// the error.
4691//
4692// See the AWS API reference guide for Amazon WorkSpaces's
4693// API operation TerminateWorkspaces for usage and error information.
4694// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/TerminateWorkspaces
4695func (c *WorkSpaces) TerminateWorkspaces(input *TerminateWorkspacesInput) (*TerminateWorkspacesOutput, error) {
4696	req, out := c.TerminateWorkspacesRequest(input)
4697	return out, req.Send()
4698}
4699
4700// TerminateWorkspacesWithContext is the same as TerminateWorkspaces with the addition of
4701// the ability to pass a context and additional request options.
4702//
4703// See TerminateWorkspaces for details on how to use this API operation.
4704//
4705// The context must be non-nil and will be used for request cancellation. If
4706// the context is nil a panic will occur. In the future the SDK may create
4707// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4708// for more information on using Contexts.
4709func (c *WorkSpaces) TerminateWorkspacesWithContext(ctx aws.Context, input *TerminateWorkspacesInput, opts ...request.Option) (*TerminateWorkspacesOutput, error) {
4710	req, out := c.TerminateWorkspacesRequest(input)
4711	req.SetContext(ctx)
4712	req.ApplyOptions(opts...)
4713	return out, req.Send()
4714}
4715
4716const opUpdateConnectionAliasPermission = "UpdateConnectionAliasPermission"
4717
4718// UpdateConnectionAliasPermissionRequest generates a "aws/request.Request" representing the
4719// client's request for the UpdateConnectionAliasPermission operation. The "output" return
4720// value will be populated with the request's response once the request completes
4721// successfully.
4722//
4723// Use "Send" method on the returned Request to send the API call to the service.
4724// the "output" return value is not valid until after Send returns without error.
4725//
4726// See UpdateConnectionAliasPermission for more information on using the UpdateConnectionAliasPermission
4727// API call, and error handling.
4728//
4729// This method is useful when you want to inject custom logic or configuration
4730// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4731//
4732//
4733//    // Example sending a request using the UpdateConnectionAliasPermissionRequest method.
4734//    req, resp := client.UpdateConnectionAliasPermissionRequest(params)
4735//
4736//    err := req.Send()
4737//    if err == nil { // resp is now filled
4738//        fmt.Println(resp)
4739//    }
4740//
4741// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateConnectionAliasPermission
4742func (c *WorkSpaces) UpdateConnectionAliasPermissionRequest(input *UpdateConnectionAliasPermissionInput) (req *request.Request, output *UpdateConnectionAliasPermissionOutput) {
4743	op := &request.Operation{
4744		Name:       opUpdateConnectionAliasPermission,
4745		HTTPMethod: "POST",
4746		HTTPPath:   "/",
4747	}
4748
4749	if input == nil {
4750		input = &UpdateConnectionAliasPermissionInput{}
4751	}
4752
4753	output = &UpdateConnectionAliasPermissionOutput{}
4754	req = c.newRequest(op, input, output)
4755	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4756	return
4757}
4758
4759// UpdateConnectionAliasPermission API operation for Amazon WorkSpaces.
4760//
4761// Shares or unshares a connection alias with one account by specifying whether
4762// that account has permission to associate the connection alias with a directory.
4763// If the association permission is granted, the connection alias is shared
4764// with that account. If the association permission is revoked, the connection
4765// alias is unshared with the account. For more information, see Cross-Region
4766// Redirection for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
4767//
4768//    * Before performing this operation, call DescribeConnectionAliases (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeConnectionAliases.html)
4769//    to make sure that the current state of the connection alias is CREATED.
4770//
4771//    * To delete a connection alias that has been shared, the shared account
4772//    must first disassociate the connection alias from any directories it has
4773//    been associated with. Then you must unshare the connection alias from
4774//    the account it has been shared with. You can delete a connection alias
4775//    only after it is no longer shared with any accounts or associated with
4776//    any directories.
4777//
4778// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4779// with awserr.Error's Code and Message methods to get detailed information about
4780// the error.
4781//
4782// See the AWS API reference guide for Amazon WorkSpaces's
4783// API operation UpdateConnectionAliasPermission for usage and error information.
4784//
4785// Returned Error Types:
4786//   * AccessDeniedException
4787//   The user is not authorized to access a resource.
4788//
4789//   * InvalidParameterValuesException
4790//   One or more parameter values are not valid.
4791//
4792//   * ResourceLimitExceededException
4793//   Your resource limits have been exceeded.
4794//
4795//   * ResourceNotFoundException
4796//   The resource could not be found.
4797//
4798//   * ResourceAssociatedException
4799//   The resource is associated with a directory.
4800//
4801//   * InvalidResourceStateException
4802//   The state of the resource is not valid for this operation.
4803//
4804//   * OperationNotSupportedException
4805//   This operation is not supported.
4806//
4807// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateConnectionAliasPermission
4808func (c *WorkSpaces) UpdateConnectionAliasPermission(input *UpdateConnectionAliasPermissionInput) (*UpdateConnectionAliasPermissionOutput, error) {
4809	req, out := c.UpdateConnectionAliasPermissionRequest(input)
4810	return out, req.Send()
4811}
4812
4813// UpdateConnectionAliasPermissionWithContext is the same as UpdateConnectionAliasPermission with the addition of
4814// the ability to pass a context and additional request options.
4815//
4816// See UpdateConnectionAliasPermission for details on how to use this API operation.
4817//
4818// The context must be non-nil and will be used for request cancellation. If
4819// the context is nil a panic will occur. In the future the SDK may create
4820// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4821// for more information on using Contexts.
4822func (c *WorkSpaces) UpdateConnectionAliasPermissionWithContext(ctx aws.Context, input *UpdateConnectionAliasPermissionInput, opts ...request.Option) (*UpdateConnectionAliasPermissionOutput, error) {
4823	req, out := c.UpdateConnectionAliasPermissionRequest(input)
4824	req.SetContext(ctx)
4825	req.ApplyOptions(opts...)
4826	return out, req.Send()
4827}
4828
4829const opUpdateRulesOfIpGroup = "UpdateRulesOfIpGroup"
4830
4831// UpdateRulesOfIpGroupRequest generates a "aws/request.Request" representing the
4832// client's request for the UpdateRulesOfIpGroup operation. The "output" return
4833// value will be populated with the request's response once the request completes
4834// successfully.
4835//
4836// Use "Send" method on the returned Request to send the API call to the service.
4837// the "output" return value is not valid until after Send returns without error.
4838//
4839// See UpdateRulesOfIpGroup for more information on using the UpdateRulesOfIpGroup
4840// API call, and error handling.
4841//
4842// This method is useful when you want to inject custom logic or configuration
4843// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4844//
4845//
4846//    // Example sending a request using the UpdateRulesOfIpGroupRequest method.
4847//    req, resp := client.UpdateRulesOfIpGroupRequest(params)
4848//
4849//    err := req.Send()
4850//    if err == nil { // resp is now filled
4851//        fmt.Println(resp)
4852//    }
4853//
4854// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateRulesOfIpGroup
4855func (c *WorkSpaces) UpdateRulesOfIpGroupRequest(input *UpdateRulesOfIpGroupInput) (req *request.Request, output *UpdateRulesOfIpGroupOutput) {
4856	op := &request.Operation{
4857		Name:       opUpdateRulesOfIpGroup,
4858		HTTPMethod: "POST",
4859		HTTPPath:   "/",
4860	}
4861
4862	if input == nil {
4863		input = &UpdateRulesOfIpGroupInput{}
4864	}
4865
4866	output = &UpdateRulesOfIpGroupOutput{}
4867	req = c.newRequest(op, input, output)
4868	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4869	return
4870}
4871
4872// UpdateRulesOfIpGroup API operation for Amazon WorkSpaces.
4873//
4874// Replaces the current rules of the specified IP access control group with
4875// the specified rules.
4876//
4877// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4878// with awserr.Error's Code and Message methods to get detailed information about
4879// the error.
4880//
4881// See the AWS API reference guide for Amazon WorkSpaces's
4882// API operation UpdateRulesOfIpGroup for usage and error information.
4883//
4884// Returned Error Types:
4885//   * InvalidParameterValuesException
4886//   One or more parameter values are not valid.
4887//
4888//   * ResourceNotFoundException
4889//   The resource could not be found.
4890//
4891//   * ResourceLimitExceededException
4892//   Your resource limits have been exceeded.
4893//
4894//   * InvalidResourceStateException
4895//   The state of the resource is not valid for this operation.
4896//
4897//   * AccessDeniedException
4898//   The user is not authorized to access a resource.
4899//
4900// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateRulesOfIpGroup
4901func (c *WorkSpaces) UpdateRulesOfIpGroup(input *UpdateRulesOfIpGroupInput) (*UpdateRulesOfIpGroupOutput, error) {
4902	req, out := c.UpdateRulesOfIpGroupRequest(input)
4903	return out, req.Send()
4904}
4905
4906// UpdateRulesOfIpGroupWithContext is the same as UpdateRulesOfIpGroup with the addition of
4907// the ability to pass a context and additional request options.
4908//
4909// See UpdateRulesOfIpGroup for details on how to use this API operation.
4910//
4911// The context must be non-nil and will be used for request cancellation. If
4912// the context is nil a panic will occur. In the future the SDK may create
4913// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4914// for more information on using Contexts.
4915func (c *WorkSpaces) UpdateRulesOfIpGroupWithContext(ctx aws.Context, input *UpdateRulesOfIpGroupInput, opts ...request.Option) (*UpdateRulesOfIpGroupOutput, error) {
4916	req, out := c.UpdateRulesOfIpGroupRequest(input)
4917	req.SetContext(ctx)
4918	req.ApplyOptions(opts...)
4919	return out, req.Send()
4920}
4921
4922const opUpdateWorkspaceBundle = "UpdateWorkspaceBundle"
4923
4924// UpdateWorkspaceBundleRequest generates a "aws/request.Request" representing the
4925// client's request for the UpdateWorkspaceBundle operation. The "output" return
4926// value will be populated with the request's response once the request completes
4927// successfully.
4928//
4929// Use "Send" method on the returned Request to send the API call to the service.
4930// the "output" return value is not valid until after Send returns without error.
4931//
4932// See UpdateWorkspaceBundle for more information on using the UpdateWorkspaceBundle
4933// API call, and error handling.
4934//
4935// This method is useful when you want to inject custom logic or configuration
4936// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4937//
4938//
4939//    // Example sending a request using the UpdateWorkspaceBundleRequest method.
4940//    req, resp := client.UpdateWorkspaceBundleRequest(params)
4941//
4942//    err := req.Send()
4943//    if err == nil { // resp is now filled
4944//        fmt.Println(resp)
4945//    }
4946//
4947// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateWorkspaceBundle
4948func (c *WorkSpaces) UpdateWorkspaceBundleRequest(input *UpdateWorkspaceBundleInput) (req *request.Request, output *UpdateWorkspaceBundleOutput) {
4949	op := &request.Operation{
4950		Name:       opUpdateWorkspaceBundle,
4951		HTTPMethod: "POST",
4952		HTTPPath:   "/",
4953	}
4954
4955	if input == nil {
4956		input = &UpdateWorkspaceBundleInput{}
4957	}
4958
4959	output = &UpdateWorkspaceBundleOutput{}
4960	req = c.newRequest(op, input, output)
4961	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4962	return
4963}
4964
4965// UpdateWorkspaceBundle API operation for Amazon WorkSpaces.
4966//
4967// Updates a WorkSpace bundle with a new image. For more information about updating
4968// WorkSpace bundles, see Update a Custom WorkSpaces Bundle (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-custom-bundle.html).
4969//
4970// Existing WorkSpaces aren't automatically updated when you update the bundle
4971// that they're based on. To update existing WorkSpaces that are based on a
4972// bundle that you've updated, you must either rebuild the WorkSpaces or delete
4973// and recreate them.
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 UpdateWorkspaceBundle for usage and error information.
4981//
4982// Returned Error Types:
4983//   * AccessDeniedException
4984//   The user is not authorized to access a resource.
4985//
4986//   * InvalidParameterValuesException
4987//   One or more parameter values are not valid.
4988//
4989//   * ResourceNotFoundException
4990//   The resource could not be found.
4991//
4992//   * ResourceUnavailableException
4993//   The specified resource is not available.
4994//
4995// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateWorkspaceBundle
4996func (c *WorkSpaces) UpdateWorkspaceBundle(input *UpdateWorkspaceBundleInput) (*UpdateWorkspaceBundleOutput, error) {
4997	req, out := c.UpdateWorkspaceBundleRequest(input)
4998	return out, req.Send()
4999}
5000
5001// UpdateWorkspaceBundleWithContext is the same as UpdateWorkspaceBundle with the addition of
5002// the ability to pass a context and additional request options.
5003//
5004// See UpdateWorkspaceBundle for details on how to use this API operation.
5005//
5006// The context must be non-nil and will be used for request cancellation. If
5007// the context is nil a panic will occur. In the future the SDK may create
5008// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5009// for more information on using Contexts.
5010func (c *WorkSpaces) UpdateWorkspaceBundleWithContext(ctx aws.Context, input *UpdateWorkspaceBundleInput, opts ...request.Option) (*UpdateWorkspaceBundleOutput, error) {
5011	req, out := c.UpdateWorkspaceBundleRequest(input)
5012	req.SetContext(ctx)
5013	req.ApplyOptions(opts...)
5014	return out, req.Send()
5015}
5016
5017const opUpdateWorkspaceImagePermission = "UpdateWorkspaceImagePermission"
5018
5019// UpdateWorkspaceImagePermissionRequest generates a "aws/request.Request" representing the
5020// client's request for the UpdateWorkspaceImagePermission operation. The "output" return
5021// value will be populated with the request's response once the request completes
5022// successfully.
5023//
5024// Use "Send" method on the returned Request to send the API call to the service.
5025// the "output" return value is not valid until after Send returns without error.
5026//
5027// See UpdateWorkspaceImagePermission for more information on using the UpdateWorkspaceImagePermission
5028// API call, and error handling.
5029//
5030// This method is useful when you want to inject custom logic or configuration
5031// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5032//
5033//
5034//    // Example sending a request using the UpdateWorkspaceImagePermissionRequest method.
5035//    req, resp := client.UpdateWorkspaceImagePermissionRequest(params)
5036//
5037//    err := req.Send()
5038//    if err == nil { // resp is now filled
5039//        fmt.Println(resp)
5040//    }
5041//
5042// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateWorkspaceImagePermission
5043func (c *WorkSpaces) UpdateWorkspaceImagePermissionRequest(input *UpdateWorkspaceImagePermissionInput) (req *request.Request, output *UpdateWorkspaceImagePermissionOutput) {
5044	op := &request.Operation{
5045		Name:       opUpdateWorkspaceImagePermission,
5046		HTTPMethod: "POST",
5047		HTTPPath:   "/",
5048	}
5049
5050	if input == nil {
5051		input = &UpdateWorkspaceImagePermissionInput{}
5052	}
5053
5054	output = &UpdateWorkspaceImagePermissionOutput{}
5055	req = c.newRequest(op, input, output)
5056	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5057	return
5058}
5059
5060// UpdateWorkspaceImagePermission API operation for Amazon WorkSpaces.
5061//
5062// Shares or unshares an image with one account in the same Amazon Web Services
5063// Region by specifying whether that account has permission to copy the image.
5064// If the copy image permission is granted, the image is shared with that account.
5065// If the copy image permission is revoked, the image is unshared with the account.
5066//
5067// After an image has been shared, the recipient account can copy the image
5068// to other Regions as needed.
5069//
5070// In the China (Ningxia) Region, you can copy images only within the same Region.
5071//
5072// In Amazon Web Services GovCloud (US), to copy images to and from other Regions,
5073// contact Amazon Web Services Support.
5074//
5075// For more information about sharing images, see Share or Unshare a Custom
5076// WorkSpaces Image (https://docs.aws.amazon.com/workspaces/latest/adminguide/share-custom-image.html).
5077//
5078//    * To delete an image that has been shared, you must unshare the image
5079//    before you delete it.
5080//
5081//    * Sharing Bring Your Own License (BYOL) images across Amazon Web Services
5082//    accounts isn't supported at this time in Amazon Web Services GovCloud
5083//    (US). To share BYOL images across accounts in Amazon Web Services GovCloud
5084//    (US), contact Amazon Web Services Support.
5085//
5086// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5087// with awserr.Error's Code and Message methods to get detailed information about
5088// the error.
5089//
5090// See the AWS API reference guide for Amazon WorkSpaces's
5091// API operation UpdateWorkspaceImagePermission for usage and error information.
5092//
5093// Returned Error Types:
5094//   * ResourceNotFoundException
5095//   The resource could not be found.
5096//
5097//   * ResourceUnavailableException
5098//   The specified resource is not available.
5099//
5100//   * AccessDeniedException
5101//   The user is not authorized to access a resource.
5102//
5103//   * InvalidParameterValuesException
5104//   One or more parameter values are not valid.
5105//
5106//   * OperationNotSupportedException
5107//   This operation is not supported.
5108//
5109// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateWorkspaceImagePermission
5110func (c *WorkSpaces) UpdateWorkspaceImagePermission(input *UpdateWorkspaceImagePermissionInput) (*UpdateWorkspaceImagePermissionOutput, error) {
5111	req, out := c.UpdateWorkspaceImagePermissionRequest(input)
5112	return out, req.Send()
5113}
5114
5115// UpdateWorkspaceImagePermissionWithContext is the same as UpdateWorkspaceImagePermission with the addition of
5116// the ability to pass a context and additional request options.
5117//
5118// See UpdateWorkspaceImagePermission for details on how to use this API operation.
5119//
5120// The context must be non-nil and will be used for request cancellation. If
5121// the context is nil a panic will occur. In the future the SDK may create
5122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5123// for more information on using Contexts.
5124func (c *WorkSpaces) UpdateWorkspaceImagePermissionWithContext(ctx aws.Context, input *UpdateWorkspaceImagePermissionInput, opts ...request.Option) (*UpdateWorkspaceImagePermissionOutput, error) {
5125	req, out := c.UpdateWorkspaceImagePermissionRequest(input)
5126	req.SetContext(ctx)
5127	req.ApplyOptions(opts...)
5128	return out, req.Send()
5129}
5130
5131// The user is not authorized to access a resource.
5132type AccessDeniedException struct {
5133	_            struct{}                  `type:"structure"`
5134	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
5135
5136	Message_ *string `locationName:"message" type:"string"`
5137}
5138
5139// String returns the string representation.
5140//
5141// API parameter values that are decorated as "sensitive" in the API will not
5142// be included in the string output. The member name will be present, but the
5143// value will be replaced with "sensitive".
5144func (s AccessDeniedException) String() string {
5145	return awsutil.Prettify(s)
5146}
5147
5148// GoString returns the string representation.
5149//
5150// API parameter values that are decorated as "sensitive" in the API will not
5151// be included in the string output. The member name will be present, but the
5152// value will be replaced with "sensitive".
5153func (s AccessDeniedException) GoString() string {
5154	return s.String()
5155}
5156
5157func newErrorAccessDeniedException(v protocol.ResponseMetadata) error {
5158	return &AccessDeniedException{
5159		RespMetadata: v,
5160	}
5161}
5162
5163// Code returns the exception type name.
5164func (s *AccessDeniedException) Code() string {
5165	return "AccessDeniedException"
5166}
5167
5168// Message returns the exception's message.
5169func (s *AccessDeniedException) Message() string {
5170	if s.Message_ != nil {
5171		return *s.Message_
5172	}
5173	return ""
5174}
5175
5176// OrigErr always returns nil, satisfies awserr.Error interface.
5177func (s *AccessDeniedException) OrigErr() error {
5178	return nil
5179}
5180
5181func (s *AccessDeniedException) Error() string {
5182	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
5183}
5184
5185// Status code returns the HTTP status code for the request's response error.
5186func (s *AccessDeniedException) StatusCode() int {
5187	return s.RespMetadata.StatusCode
5188}
5189
5190// RequestID returns the service's response RequestID for request.
5191func (s *AccessDeniedException) RequestID() string {
5192	return s.RespMetadata.RequestID
5193}
5194
5195// Describes a modification to the configuration of Bring Your Own License (BYOL)
5196// for the specified account.
5197type AccountModification struct {
5198	_ struct{} `type:"structure"`
5199
5200	// The IP address range, specified as an IPv4 CIDR block, for the management
5201	// network interface used for the account.
5202	DedicatedTenancyManagementCidrRange *string `type:"string"`
5203
5204	// The status of BYOL (whether BYOL is being enabled or disabled).
5205	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportResultEnum"`
5206
5207	// The error code that is returned if the configuration of BYOL cannot be modified.
5208	ErrorCode *string `type:"string"`
5209
5210	// The text of the error message that is returned if the configuration of BYOL
5211	// cannot be modified.
5212	ErrorMessage *string `type:"string"`
5213
5214	// The state of the modification to the configuration of BYOL.
5215	ModificationState *string `type:"string" enum:"DedicatedTenancyModificationStateEnum"`
5216
5217	// The timestamp when the modification of the BYOL configuration was started.
5218	StartTime *time.Time `type:"timestamp"`
5219}
5220
5221// String returns the string representation.
5222//
5223// API parameter values that are decorated as "sensitive" in the API will not
5224// be included in the string output. The member name will be present, but the
5225// value will be replaced with "sensitive".
5226func (s AccountModification) String() string {
5227	return awsutil.Prettify(s)
5228}
5229
5230// GoString returns the string representation.
5231//
5232// API parameter values that are decorated as "sensitive" in the API will not
5233// be included in the string output. The member name will be present, but the
5234// value will be replaced with "sensitive".
5235func (s AccountModification) GoString() string {
5236	return s.String()
5237}
5238
5239// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
5240func (s *AccountModification) SetDedicatedTenancyManagementCidrRange(v string) *AccountModification {
5241	s.DedicatedTenancyManagementCidrRange = &v
5242	return s
5243}
5244
5245// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
5246func (s *AccountModification) SetDedicatedTenancySupport(v string) *AccountModification {
5247	s.DedicatedTenancySupport = &v
5248	return s
5249}
5250
5251// SetErrorCode sets the ErrorCode field's value.
5252func (s *AccountModification) SetErrorCode(v string) *AccountModification {
5253	s.ErrorCode = &v
5254	return s
5255}
5256
5257// SetErrorMessage sets the ErrorMessage field's value.
5258func (s *AccountModification) SetErrorMessage(v string) *AccountModification {
5259	s.ErrorMessage = &v
5260	return s
5261}
5262
5263// SetModificationState sets the ModificationState field's value.
5264func (s *AccountModification) SetModificationState(v string) *AccountModification {
5265	s.ModificationState = &v
5266	return s
5267}
5268
5269// SetStartTime sets the StartTime field's value.
5270func (s *AccountModification) SetStartTime(v time.Time) *AccountModification {
5271	s.StartTime = &v
5272	return s
5273}
5274
5275type AssociateConnectionAliasInput struct {
5276	_ struct{} `type:"structure"`
5277
5278	// The identifier of the connection alias.
5279	//
5280	// AliasId is a required field
5281	AliasId *string `min:"13" type:"string" required:"true"`
5282
5283	// The identifier of the directory to associate the connection alias with.
5284	//
5285	// ResourceId is a required field
5286	ResourceId *string `min:"1" type:"string" required:"true"`
5287}
5288
5289// String returns the string representation.
5290//
5291// API parameter values that are decorated as "sensitive" in the API will not
5292// be included in the string output. The member name will be present, but the
5293// value will be replaced with "sensitive".
5294func (s AssociateConnectionAliasInput) String() string {
5295	return awsutil.Prettify(s)
5296}
5297
5298// GoString returns the string representation.
5299//
5300// API parameter values that are decorated as "sensitive" in the API will not
5301// be included in the string output. The member name will be present, but the
5302// value will be replaced with "sensitive".
5303func (s AssociateConnectionAliasInput) GoString() string {
5304	return s.String()
5305}
5306
5307// Validate inspects the fields of the type to determine if they are valid.
5308func (s *AssociateConnectionAliasInput) Validate() error {
5309	invalidParams := request.ErrInvalidParams{Context: "AssociateConnectionAliasInput"}
5310	if s.AliasId == nil {
5311		invalidParams.Add(request.NewErrParamRequired("AliasId"))
5312	}
5313	if s.AliasId != nil && len(*s.AliasId) < 13 {
5314		invalidParams.Add(request.NewErrParamMinLen("AliasId", 13))
5315	}
5316	if s.ResourceId == nil {
5317		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
5318	}
5319	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
5320		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
5321	}
5322
5323	if invalidParams.Len() > 0 {
5324		return invalidParams
5325	}
5326	return nil
5327}
5328
5329// SetAliasId sets the AliasId field's value.
5330func (s *AssociateConnectionAliasInput) SetAliasId(v string) *AssociateConnectionAliasInput {
5331	s.AliasId = &v
5332	return s
5333}
5334
5335// SetResourceId sets the ResourceId field's value.
5336func (s *AssociateConnectionAliasInput) SetResourceId(v string) *AssociateConnectionAliasInput {
5337	s.ResourceId = &v
5338	return s
5339}
5340
5341type AssociateConnectionAliasOutput struct {
5342	_ struct{} `type:"structure"`
5343
5344	// The identifier of the connection alias association. You use the connection
5345	// identifier in the DNS TXT record when you're configuring your DNS routing
5346	// policies.
5347	ConnectionIdentifier *string `min:"1" type:"string"`
5348}
5349
5350// String returns the string representation.
5351//
5352// API parameter values that are decorated as "sensitive" in the API will not
5353// be included in the string output. The member name will be present, but the
5354// value will be replaced with "sensitive".
5355func (s AssociateConnectionAliasOutput) String() string {
5356	return awsutil.Prettify(s)
5357}
5358
5359// GoString returns the string representation.
5360//
5361// API parameter values that are decorated as "sensitive" in the API will not
5362// be included in the string output. The member name will be present, but the
5363// value will be replaced with "sensitive".
5364func (s AssociateConnectionAliasOutput) GoString() string {
5365	return s.String()
5366}
5367
5368// SetConnectionIdentifier sets the ConnectionIdentifier field's value.
5369func (s *AssociateConnectionAliasOutput) SetConnectionIdentifier(v string) *AssociateConnectionAliasOutput {
5370	s.ConnectionIdentifier = &v
5371	return s
5372}
5373
5374type AssociateIpGroupsInput struct {
5375	_ struct{} `type:"structure"`
5376
5377	// The identifier of the directory.
5378	//
5379	// DirectoryId is a required field
5380	DirectoryId *string `min:"10" type:"string" required:"true"`
5381
5382	// The identifiers of one or more IP access control groups.
5383	//
5384	// GroupIds is a required field
5385	GroupIds []*string `type:"list" required:"true"`
5386}
5387
5388// String returns the string representation.
5389//
5390// API parameter values that are decorated as "sensitive" in the API will not
5391// be included in the string output. The member name will be present, but the
5392// value will be replaced with "sensitive".
5393func (s AssociateIpGroupsInput) String() string {
5394	return awsutil.Prettify(s)
5395}
5396
5397// GoString returns the string representation.
5398//
5399// API parameter values that are decorated as "sensitive" in the API will not
5400// be included in the string output. The member name will be present, but the
5401// value will be replaced with "sensitive".
5402func (s AssociateIpGroupsInput) GoString() string {
5403	return s.String()
5404}
5405
5406// Validate inspects the fields of the type to determine if they are valid.
5407func (s *AssociateIpGroupsInput) Validate() error {
5408	invalidParams := request.ErrInvalidParams{Context: "AssociateIpGroupsInput"}
5409	if s.DirectoryId == nil {
5410		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
5411	}
5412	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
5413		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
5414	}
5415	if s.GroupIds == nil {
5416		invalidParams.Add(request.NewErrParamRequired("GroupIds"))
5417	}
5418
5419	if invalidParams.Len() > 0 {
5420		return invalidParams
5421	}
5422	return nil
5423}
5424
5425// SetDirectoryId sets the DirectoryId field's value.
5426func (s *AssociateIpGroupsInput) SetDirectoryId(v string) *AssociateIpGroupsInput {
5427	s.DirectoryId = &v
5428	return s
5429}
5430
5431// SetGroupIds sets the GroupIds field's value.
5432func (s *AssociateIpGroupsInput) SetGroupIds(v []*string) *AssociateIpGroupsInput {
5433	s.GroupIds = v
5434	return s
5435}
5436
5437type AssociateIpGroupsOutput struct {
5438	_ struct{} `type:"structure"`
5439}
5440
5441// String returns the string representation.
5442//
5443// API parameter values that are decorated as "sensitive" in the API will not
5444// be included in the string output. The member name will be present, but the
5445// value will be replaced with "sensitive".
5446func (s AssociateIpGroupsOutput) String() string {
5447	return awsutil.Prettify(s)
5448}
5449
5450// GoString returns the string representation.
5451//
5452// API parameter values that are decorated as "sensitive" in the API will not
5453// be included in the string output. The member name will be present, but the
5454// value will be replaced with "sensitive".
5455func (s AssociateIpGroupsOutput) GoString() string {
5456	return s.String()
5457}
5458
5459type AuthorizeIpRulesInput struct {
5460	_ struct{} `type:"structure"`
5461
5462	// The identifier of the group.
5463	//
5464	// GroupId is a required field
5465	GroupId *string `type:"string" required:"true"`
5466
5467	// The rules to add to the group.
5468	//
5469	// UserRules is a required field
5470	UserRules []*IpRuleItem `type:"list" required:"true"`
5471}
5472
5473// String returns the string representation.
5474//
5475// API parameter values that are decorated as "sensitive" in the API will not
5476// be included in the string output. The member name will be present, but the
5477// value will be replaced with "sensitive".
5478func (s AuthorizeIpRulesInput) String() string {
5479	return awsutil.Prettify(s)
5480}
5481
5482// GoString returns the string representation.
5483//
5484// API parameter values that are decorated as "sensitive" in the API will not
5485// be included in the string output. The member name will be present, but the
5486// value will be replaced with "sensitive".
5487func (s AuthorizeIpRulesInput) GoString() string {
5488	return s.String()
5489}
5490
5491// Validate inspects the fields of the type to determine if they are valid.
5492func (s *AuthorizeIpRulesInput) Validate() error {
5493	invalidParams := request.ErrInvalidParams{Context: "AuthorizeIpRulesInput"}
5494	if s.GroupId == nil {
5495		invalidParams.Add(request.NewErrParamRequired("GroupId"))
5496	}
5497	if s.UserRules == nil {
5498		invalidParams.Add(request.NewErrParamRequired("UserRules"))
5499	}
5500
5501	if invalidParams.Len() > 0 {
5502		return invalidParams
5503	}
5504	return nil
5505}
5506
5507// SetGroupId sets the GroupId field's value.
5508func (s *AuthorizeIpRulesInput) SetGroupId(v string) *AuthorizeIpRulesInput {
5509	s.GroupId = &v
5510	return s
5511}
5512
5513// SetUserRules sets the UserRules field's value.
5514func (s *AuthorizeIpRulesInput) SetUserRules(v []*IpRuleItem) *AuthorizeIpRulesInput {
5515	s.UserRules = v
5516	return s
5517}
5518
5519type AuthorizeIpRulesOutput struct {
5520	_ struct{} `type:"structure"`
5521}
5522
5523// String returns the string representation.
5524//
5525// API parameter values that are decorated as "sensitive" in the API will not
5526// be included in the string output. The member name will be present, but the
5527// value will be replaced with "sensitive".
5528func (s AuthorizeIpRulesOutput) String() string {
5529	return awsutil.Prettify(s)
5530}
5531
5532// GoString returns the string representation.
5533//
5534// API parameter values that are decorated as "sensitive" in the API will not
5535// be included in the string output. The member name will be present, but the
5536// value will be replaced with "sensitive".
5537func (s AuthorizeIpRulesOutput) GoString() string {
5538	return s.String()
5539}
5540
5541// Describes an Amazon WorkSpaces client.
5542type ClientProperties struct {
5543	_ struct{} `type:"structure"`
5544
5545	// Specifies whether users can cache their credentials on the Amazon WorkSpaces
5546	// client. When enabled, users can choose to reconnect to their WorkSpaces without
5547	// re-entering their credentials.
5548	ReconnectEnabled *string `type:"string" enum:"ReconnectEnum"`
5549}
5550
5551// String returns the string representation.
5552//
5553// API parameter values that are decorated as "sensitive" in the API will not
5554// be included in the string output. The member name will be present, but the
5555// value will be replaced with "sensitive".
5556func (s ClientProperties) String() string {
5557	return awsutil.Prettify(s)
5558}
5559
5560// GoString returns the string representation.
5561//
5562// API parameter values that are decorated as "sensitive" in the API will not
5563// be included in the string output. The member name will be present, but the
5564// value will be replaced with "sensitive".
5565func (s ClientProperties) GoString() string {
5566	return s.String()
5567}
5568
5569// SetReconnectEnabled sets the ReconnectEnabled field's value.
5570func (s *ClientProperties) SetReconnectEnabled(v string) *ClientProperties {
5571	s.ReconnectEnabled = &v
5572	return s
5573}
5574
5575// Information about the Amazon WorkSpaces client.
5576type ClientPropertiesResult struct {
5577	_ struct{} `type:"structure"`
5578
5579	// Information about the Amazon WorkSpaces client.
5580	ClientProperties *ClientProperties `type:"structure"`
5581
5582	// The resource identifier, in the form of a directory ID.
5583	ResourceId *string `min:"1" type:"string"`
5584}
5585
5586// String returns the string representation.
5587//
5588// API parameter values that are decorated as "sensitive" in the API will not
5589// be included in the string output. The member name will be present, but the
5590// value will be replaced with "sensitive".
5591func (s ClientPropertiesResult) String() string {
5592	return awsutil.Prettify(s)
5593}
5594
5595// GoString returns the string representation.
5596//
5597// API parameter values that are decorated as "sensitive" in the API will not
5598// be included in the string output. The member name will be present, but the
5599// value will be replaced with "sensitive".
5600func (s ClientPropertiesResult) GoString() string {
5601	return s.String()
5602}
5603
5604// SetClientProperties sets the ClientProperties field's value.
5605func (s *ClientPropertiesResult) SetClientProperties(v *ClientProperties) *ClientPropertiesResult {
5606	s.ClientProperties = v
5607	return s
5608}
5609
5610// SetResourceId sets the ResourceId field's value.
5611func (s *ClientPropertiesResult) SetResourceId(v string) *ClientPropertiesResult {
5612	s.ResourceId = &v
5613	return s
5614}
5615
5616// Describes the compute type of the bundle.
5617type ComputeType struct {
5618	_ struct{} `type:"structure"`
5619
5620	// The compute type.
5621	Name *string `type:"string" enum:"Compute"`
5622}
5623
5624// String returns the string representation.
5625//
5626// API parameter values that are decorated as "sensitive" in the API will not
5627// be included in the string output. The member name will be present, but the
5628// value will be replaced with "sensitive".
5629func (s ComputeType) String() string {
5630	return awsutil.Prettify(s)
5631}
5632
5633// GoString returns the string representation.
5634//
5635// API parameter values that are decorated as "sensitive" in the API will not
5636// be included in the string output. The member name will be present, but the
5637// value will be replaced with "sensitive".
5638func (s ComputeType) GoString() string {
5639	return s.String()
5640}
5641
5642// SetName sets the Name field's value.
5643func (s *ComputeType) SetName(v string) *ComputeType {
5644	s.Name = &v
5645	return s
5646}
5647
5648// Describes a connection alias. Connection aliases are used for cross-Region
5649// redirection. For more information, see Cross-Region Redirection for Amazon
5650// WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
5651type ConnectionAlias struct {
5652	_ struct{} `type:"structure"`
5653
5654	// The identifier of the connection alias.
5655	AliasId *string `min:"13" type:"string"`
5656
5657	// The association status of the connection alias.
5658	Associations []*ConnectionAliasAssociation `min:"1" type:"list"`
5659
5660	// The connection string specified for the connection alias. The connection
5661	// string must be in the form of a fully qualified domain name (FQDN), such
5662	// as www.example.com.
5663	ConnectionString *string `min:"1" type:"string"`
5664
5665	// The identifier of the Amazon Web Services account that owns the connection
5666	// alias.
5667	OwnerAccountId *string `type:"string"`
5668
5669	// The current state of the connection alias.
5670	State *string `type:"string" enum:"ConnectionAliasState"`
5671}
5672
5673// String returns the string representation.
5674//
5675// API parameter values that are decorated as "sensitive" in the API will not
5676// be included in the string output. The member name will be present, but the
5677// value will be replaced with "sensitive".
5678func (s ConnectionAlias) String() string {
5679	return awsutil.Prettify(s)
5680}
5681
5682// GoString returns the string representation.
5683//
5684// API parameter values that are decorated as "sensitive" in the API will not
5685// be included in the string output. The member name will be present, but the
5686// value will be replaced with "sensitive".
5687func (s ConnectionAlias) GoString() string {
5688	return s.String()
5689}
5690
5691// SetAliasId sets the AliasId field's value.
5692func (s *ConnectionAlias) SetAliasId(v string) *ConnectionAlias {
5693	s.AliasId = &v
5694	return s
5695}
5696
5697// SetAssociations sets the Associations field's value.
5698func (s *ConnectionAlias) SetAssociations(v []*ConnectionAliasAssociation) *ConnectionAlias {
5699	s.Associations = v
5700	return s
5701}
5702
5703// SetConnectionString sets the ConnectionString field's value.
5704func (s *ConnectionAlias) SetConnectionString(v string) *ConnectionAlias {
5705	s.ConnectionString = &v
5706	return s
5707}
5708
5709// SetOwnerAccountId sets the OwnerAccountId field's value.
5710func (s *ConnectionAlias) SetOwnerAccountId(v string) *ConnectionAlias {
5711	s.OwnerAccountId = &v
5712	return s
5713}
5714
5715// SetState sets the State field's value.
5716func (s *ConnectionAlias) SetState(v string) *ConnectionAlias {
5717	s.State = &v
5718	return s
5719}
5720
5721// Describes a connection alias association that is used for cross-Region redirection.
5722// For more information, see Cross-Region Redirection for Amazon WorkSpaces
5723// (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
5724type ConnectionAliasAssociation struct {
5725	_ struct{} `type:"structure"`
5726
5727	// The identifier of the Amazon Web Services account that associated the connection
5728	// alias with a directory.
5729	AssociatedAccountId *string `type:"string"`
5730
5731	// The association status of the connection alias.
5732	AssociationStatus *string `type:"string" enum:"AssociationStatus"`
5733
5734	// The identifier of the connection alias association. You use the connection
5735	// identifier in the DNS TXT record when you're configuring your DNS routing
5736	// policies.
5737	ConnectionIdentifier *string `min:"1" type:"string"`
5738
5739	// The identifier of the directory associated with a connection alias.
5740	ResourceId *string `min:"1" type:"string"`
5741}
5742
5743// String returns the string representation.
5744//
5745// API parameter values that are decorated as "sensitive" in the API will not
5746// be included in the string output. The member name will be present, but the
5747// value will be replaced with "sensitive".
5748func (s ConnectionAliasAssociation) String() string {
5749	return awsutil.Prettify(s)
5750}
5751
5752// GoString returns the string representation.
5753//
5754// API parameter values that are decorated as "sensitive" in the API will not
5755// be included in the string output. The member name will be present, but the
5756// value will be replaced with "sensitive".
5757func (s ConnectionAliasAssociation) GoString() string {
5758	return s.String()
5759}
5760
5761// SetAssociatedAccountId sets the AssociatedAccountId field's value.
5762func (s *ConnectionAliasAssociation) SetAssociatedAccountId(v string) *ConnectionAliasAssociation {
5763	s.AssociatedAccountId = &v
5764	return s
5765}
5766
5767// SetAssociationStatus sets the AssociationStatus field's value.
5768func (s *ConnectionAliasAssociation) SetAssociationStatus(v string) *ConnectionAliasAssociation {
5769	s.AssociationStatus = &v
5770	return s
5771}
5772
5773// SetConnectionIdentifier sets the ConnectionIdentifier field's value.
5774func (s *ConnectionAliasAssociation) SetConnectionIdentifier(v string) *ConnectionAliasAssociation {
5775	s.ConnectionIdentifier = &v
5776	return s
5777}
5778
5779// SetResourceId sets the ResourceId field's value.
5780func (s *ConnectionAliasAssociation) SetResourceId(v string) *ConnectionAliasAssociation {
5781	s.ResourceId = &v
5782	return s
5783}
5784
5785// Describes the permissions for a connection alias. Connection aliases are
5786// used for cross-Region redirection. For more information, see Cross-Region
5787// Redirection for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/cross-region-redirection.html).
5788type ConnectionAliasPermission struct {
5789	_ struct{} `type:"structure"`
5790
5791	// Indicates whether the specified Amazon Web Services account is allowed to
5792	// associate the connection alias with a directory.
5793	//
5794	// AllowAssociation is a required field
5795	AllowAssociation *bool `type:"boolean" required:"true"`
5796
5797	// The identifier of the Amazon Web Services account that the connection alias
5798	// is shared with.
5799	//
5800	// SharedAccountId is a required field
5801	SharedAccountId *string `type:"string" required:"true"`
5802}
5803
5804// String returns the string representation.
5805//
5806// API parameter values that are decorated as "sensitive" in the API will not
5807// be included in the string output. The member name will be present, but the
5808// value will be replaced with "sensitive".
5809func (s ConnectionAliasPermission) String() string {
5810	return awsutil.Prettify(s)
5811}
5812
5813// GoString returns the string representation.
5814//
5815// API parameter values that are decorated as "sensitive" in the API will not
5816// be included in the string output. The member name will be present, but the
5817// value will be replaced with "sensitive".
5818func (s ConnectionAliasPermission) GoString() string {
5819	return s.String()
5820}
5821
5822// Validate inspects the fields of the type to determine if they are valid.
5823func (s *ConnectionAliasPermission) Validate() error {
5824	invalidParams := request.ErrInvalidParams{Context: "ConnectionAliasPermission"}
5825	if s.AllowAssociation == nil {
5826		invalidParams.Add(request.NewErrParamRequired("AllowAssociation"))
5827	}
5828	if s.SharedAccountId == nil {
5829		invalidParams.Add(request.NewErrParamRequired("SharedAccountId"))
5830	}
5831
5832	if invalidParams.Len() > 0 {
5833		return invalidParams
5834	}
5835	return nil
5836}
5837
5838// SetAllowAssociation sets the AllowAssociation field's value.
5839func (s *ConnectionAliasPermission) SetAllowAssociation(v bool) *ConnectionAliasPermission {
5840	s.AllowAssociation = &v
5841	return s
5842}
5843
5844// SetSharedAccountId sets the SharedAccountId field's value.
5845func (s *ConnectionAliasPermission) SetSharedAccountId(v string) *ConnectionAliasPermission {
5846	s.SharedAccountId = &v
5847	return s
5848}
5849
5850type CopyWorkspaceImageInput struct {
5851	_ struct{} `type:"structure"`
5852
5853	// A description of the image.
5854	Description *string `min:"1" type:"string"`
5855
5856	// The name of the image.
5857	//
5858	// Name is a required field
5859	Name *string `min:"1" type:"string" required:"true"`
5860
5861	// The identifier of the source image.
5862	//
5863	// SourceImageId is a required field
5864	SourceImageId *string `type:"string" required:"true"`
5865
5866	// The identifier of the source Region.
5867	//
5868	// SourceRegion is a required field
5869	SourceRegion *string `min:"1" type:"string" required:"true"`
5870
5871	// The tags for the image.
5872	Tags []*Tag `type:"list"`
5873}
5874
5875// String returns the string representation.
5876//
5877// API parameter values that are decorated as "sensitive" in the API will not
5878// be included in the string output. The member name will be present, but the
5879// value will be replaced with "sensitive".
5880func (s CopyWorkspaceImageInput) String() string {
5881	return awsutil.Prettify(s)
5882}
5883
5884// GoString returns the string representation.
5885//
5886// API parameter values that are decorated as "sensitive" in the API will not
5887// be included in the string output. The member name will be present, but the
5888// value will be replaced with "sensitive".
5889func (s CopyWorkspaceImageInput) GoString() string {
5890	return s.String()
5891}
5892
5893// Validate inspects the fields of the type to determine if they are valid.
5894func (s *CopyWorkspaceImageInput) Validate() error {
5895	invalidParams := request.ErrInvalidParams{Context: "CopyWorkspaceImageInput"}
5896	if s.Description != nil && len(*s.Description) < 1 {
5897		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
5898	}
5899	if s.Name == nil {
5900		invalidParams.Add(request.NewErrParamRequired("Name"))
5901	}
5902	if s.Name != nil && len(*s.Name) < 1 {
5903		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5904	}
5905	if s.SourceImageId == nil {
5906		invalidParams.Add(request.NewErrParamRequired("SourceImageId"))
5907	}
5908	if s.SourceRegion == nil {
5909		invalidParams.Add(request.NewErrParamRequired("SourceRegion"))
5910	}
5911	if s.SourceRegion != nil && len(*s.SourceRegion) < 1 {
5912		invalidParams.Add(request.NewErrParamMinLen("SourceRegion", 1))
5913	}
5914	if s.Tags != nil {
5915		for i, v := range s.Tags {
5916			if v == nil {
5917				continue
5918			}
5919			if err := v.Validate(); err != nil {
5920				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5921			}
5922		}
5923	}
5924
5925	if invalidParams.Len() > 0 {
5926		return invalidParams
5927	}
5928	return nil
5929}
5930
5931// SetDescription sets the Description field's value.
5932func (s *CopyWorkspaceImageInput) SetDescription(v string) *CopyWorkspaceImageInput {
5933	s.Description = &v
5934	return s
5935}
5936
5937// SetName sets the Name field's value.
5938func (s *CopyWorkspaceImageInput) SetName(v string) *CopyWorkspaceImageInput {
5939	s.Name = &v
5940	return s
5941}
5942
5943// SetSourceImageId sets the SourceImageId field's value.
5944func (s *CopyWorkspaceImageInput) SetSourceImageId(v string) *CopyWorkspaceImageInput {
5945	s.SourceImageId = &v
5946	return s
5947}
5948
5949// SetSourceRegion sets the SourceRegion field's value.
5950func (s *CopyWorkspaceImageInput) SetSourceRegion(v string) *CopyWorkspaceImageInput {
5951	s.SourceRegion = &v
5952	return s
5953}
5954
5955// SetTags sets the Tags field's value.
5956func (s *CopyWorkspaceImageInput) SetTags(v []*Tag) *CopyWorkspaceImageInput {
5957	s.Tags = v
5958	return s
5959}
5960
5961type CopyWorkspaceImageOutput struct {
5962	_ struct{} `type:"structure"`
5963
5964	// The identifier of the image.
5965	ImageId *string `type:"string"`
5966}
5967
5968// String returns the string representation.
5969//
5970// API parameter values that are decorated as "sensitive" in the API will not
5971// be included in the string output. The member name will be present, but the
5972// value will be replaced with "sensitive".
5973func (s CopyWorkspaceImageOutput) String() string {
5974	return awsutil.Prettify(s)
5975}
5976
5977// GoString returns the string representation.
5978//
5979// API parameter values that are decorated as "sensitive" in the API will not
5980// be included in the string output. The member name will be present, but the
5981// value will be replaced with "sensitive".
5982func (s CopyWorkspaceImageOutput) GoString() string {
5983	return s.String()
5984}
5985
5986// SetImageId sets the ImageId field's value.
5987func (s *CopyWorkspaceImageOutput) SetImageId(v string) *CopyWorkspaceImageOutput {
5988	s.ImageId = &v
5989	return s
5990}
5991
5992type CreateConnectionAliasInput struct {
5993	_ struct{} `type:"structure"`
5994
5995	// A connection string in the form of a fully qualified domain name (FQDN),
5996	// such as www.example.com.
5997	//
5998	// After you create a connection string, it is always associated to your Amazon
5999	// Web Services account. You cannot recreate the same connection string with
6000	// a different account, even if you delete all instances of it from the original
6001	// account. The connection string is globally reserved for your account.
6002	//
6003	// ConnectionString is a required field
6004	ConnectionString *string `min:"1" type:"string" required:"true"`
6005
6006	// The tags to associate with the connection alias.
6007	Tags []*Tag `type:"list"`
6008}
6009
6010// String returns the string representation.
6011//
6012// API parameter values that are decorated as "sensitive" in the API will not
6013// be included in the string output. The member name will be present, but the
6014// value will be replaced with "sensitive".
6015func (s CreateConnectionAliasInput) String() string {
6016	return awsutil.Prettify(s)
6017}
6018
6019// GoString returns the string representation.
6020//
6021// API parameter values that are decorated as "sensitive" in the API will not
6022// be included in the string output. The member name will be present, but the
6023// value will be replaced with "sensitive".
6024func (s CreateConnectionAliasInput) GoString() string {
6025	return s.String()
6026}
6027
6028// Validate inspects the fields of the type to determine if they are valid.
6029func (s *CreateConnectionAliasInput) Validate() error {
6030	invalidParams := request.ErrInvalidParams{Context: "CreateConnectionAliasInput"}
6031	if s.ConnectionString == nil {
6032		invalidParams.Add(request.NewErrParamRequired("ConnectionString"))
6033	}
6034	if s.ConnectionString != nil && len(*s.ConnectionString) < 1 {
6035		invalidParams.Add(request.NewErrParamMinLen("ConnectionString", 1))
6036	}
6037	if s.Tags != nil {
6038		for i, v := range s.Tags {
6039			if v == nil {
6040				continue
6041			}
6042			if err := v.Validate(); err != nil {
6043				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6044			}
6045		}
6046	}
6047
6048	if invalidParams.Len() > 0 {
6049		return invalidParams
6050	}
6051	return nil
6052}
6053
6054// SetConnectionString sets the ConnectionString field's value.
6055func (s *CreateConnectionAliasInput) SetConnectionString(v string) *CreateConnectionAliasInput {
6056	s.ConnectionString = &v
6057	return s
6058}
6059
6060// SetTags sets the Tags field's value.
6061func (s *CreateConnectionAliasInput) SetTags(v []*Tag) *CreateConnectionAliasInput {
6062	s.Tags = v
6063	return s
6064}
6065
6066type CreateConnectionAliasOutput struct {
6067	_ struct{} `type:"structure"`
6068
6069	// The identifier of the connection alias.
6070	AliasId *string `min:"13" type:"string"`
6071}
6072
6073// String returns the string representation.
6074//
6075// API parameter values that are decorated as "sensitive" in the API will not
6076// be included in the string output. The member name will be present, but the
6077// value will be replaced with "sensitive".
6078func (s CreateConnectionAliasOutput) String() string {
6079	return awsutil.Prettify(s)
6080}
6081
6082// GoString returns the string representation.
6083//
6084// API parameter values that are decorated as "sensitive" in the API will not
6085// be included in the string output. The member name will be present, but the
6086// value will be replaced with "sensitive".
6087func (s CreateConnectionAliasOutput) GoString() string {
6088	return s.String()
6089}
6090
6091// SetAliasId sets the AliasId field's value.
6092func (s *CreateConnectionAliasOutput) SetAliasId(v string) *CreateConnectionAliasOutput {
6093	s.AliasId = &v
6094	return s
6095}
6096
6097type CreateIpGroupInput struct {
6098	_ struct{} `type:"structure"`
6099
6100	// The description of the group.
6101	GroupDesc *string `type:"string"`
6102
6103	// The name of the group.
6104	//
6105	// GroupName is a required field
6106	GroupName *string `type:"string" required:"true"`
6107
6108	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
6109	Tags []*Tag `type:"list"`
6110
6111	// The rules to add to the group.
6112	UserRules []*IpRuleItem `type:"list"`
6113}
6114
6115// String returns the string representation.
6116//
6117// API parameter values that are decorated as "sensitive" in the API will not
6118// be included in the string output. The member name will be present, but the
6119// value will be replaced with "sensitive".
6120func (s CreateIpGroupInput) String() string {
6121	return awsutil.Prettify(s)
6122}
6123
6124// GoString returns the string representation.
6125//
6126// API parameter values that are decorated as "sensitive" in the API will not
6127// be included in the string output. The member name will be present, but the
6128// value will be replaced with "sensitive".
6129func (s CreateIpGroupInput) GoString() string {
6130	return s.String()
6131}
6132
6133// Validate inspects the fields of the type to determine if they are valid.
6134func (s *CreateIpGroupInput) Validate() error {
6135	invalidParams := request.ErrInvalidParams{Context: "CreateIpGroupInput"}
6136	if s.GroupName == nil {
6137		invalidParams.Add(request.NewErrParamRequired("GroupName"))
6138	}
6139	if s.Tags != nil {
6140		for i, v := range s.Tags {
6141			if v == nil {
6142				continue
6143			}
6144			if err := v.Validate(); err != nil {
6145				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6146			}
6147		}
6148	}
6149
6150	if invalidParams.Len() > 0 {
6151		return invalidParams
6152	}
6153	return nil
6154}
6155
6156// SetGroupDesc sets the GroupDesc field's value.
6157func (s *CreateIpGroupInput) SetGroupDesc(v string) *CreateIpGroupInput {
6158	s.GroupDesc = &v
6159	return s
6160}
6161
6162// SetGroupName sets the GroupName field's value.
6163func (s *CreateIpGroupInput) SetGroupName(v string) *CreateIpGroupInput {
6164	s.GroupName = &v
6165	return s
6166}
6167
6168// SetTags sets the Tags field's value.
6169func (s *CreateIpGroupInput) SetTags(v []*Tag) *CreateIpGroupInput {
6170	s.Tags = v
6171	return s
6172}
6173
6174// SetUserRules sets the UserRules field's value.
6175func (s *CreateIpGroupInput) SetUserRules(v []*IpRuleItem) *CreateIpGroupInput {
6176	s.UserRules = v
6177	return s
6178}
6179
6180type CreateIpGroupOutput struct {
6181	_ struct{} `type:"structure"`
6182
6183	// The identifier of the group.
6184	GroupId *string `type:"string"`
6185}
6186
6187// String returns the string representation.
6188//
6189// API parameter values that are decorated as "sensitive" in the API will not
6190// be included in the string output. The member name will be present, but the
6191// value will be replaced with "sensitive".
6192func (s CreateIpGroupOutput) String() string {
6193	return awsutil.Prettify(s)
6194}
6195
6196// GoString returns the string representation.
6197//
6198// API parameter values that are decorated as "sensitive" in the API will not
6199// be included in the string output. The member name will be present, but the
6200// value will be replaced with "sensitive".
6201func (s CreateIpGroupOutput) GoString() string {
6202	return s.String()
6203}
6204
6205// SetGroupId sets the GroupId field's value.
6206func (s *CreateIpGroupOutput) SetGroupId(v string) *CreateIpGroupOutput {
6207	s.GroupId = &v
6208	return s
6209}
6210
6211type CreateTagsInput struct {
6212	_ struct{} `type:"structure"`
6213
6214	// The identifier of the WorkSpaces resource. The supported resource types are
6215	// WorkSpaces, registered directories, images, custom bundles, IP access control
6216	// groups, and connection aliases.
6217	//
6218	// ResourceId is a required field
6219	ResourceId *string `min:"1" type:"string" required:"true"`
6220
6221	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
6222	//
6223	// Tags is a required field
6224	Tags []*Tag `type:"list" required:"true"`
6225}
6226
6227// String returns the string representation.
6228//
6229// API parameter values that are decorated as "sensitive" in the API will not
6230// be included in the string output. The member name will be present, but the
6231// value will be replaced with "sensitive".
6232func (s CreateTagsInput) String() string {
6233	return awsutil.Prettify(s)
6234}
6235
6236// GoString returns the string representation.
6237//
6238// API parameter values that are decorated as "sensitive" in the API will not
6239// be included in the string output. The member name will be present, but the
6240// value will be replaced with "sensitive".
6241func (s CreateTagsInput) GoString() string {
6242	return s.String()
6243}
6244
6245// Validate inspects the fields of the type to determine if they are valid.
6246func (s *CreateTagsInput) Validate() error {
6247	invalidParams := request.ErrInvalidParams{Context: "CreateTagsInput"}
6248	if s.ResourceId == nil {
6249		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6250	}
6251	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
6252		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
6253	}
6254	if s.Tags == nil {
6255		invalidParams.Add(request.NewErrParamRequired("Tags"))
6256	}
6257	if s.Tags != nil {
6258		for i, v := range s.Tags {
6259			if v == nil {
6260				continue
6261			}
6262			if err := v.Validate(); err != nil {
6263				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6264			}
6265		}
6266	}
6267
6268	if invalidParams.Len() > 0 {
6269		return invalidParams
6270	}
6271	return nil
6272}
6273
6274// SetResourceId sets the ResourceId field's value.
6275func (s *CreateTagsInput) SetResourceId(v string) *CreateTagsInput {
6276	s.ResourceId = &v
6277	return s
6278}
6279
6280// SetTags sets the Tags field's value.
6281func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput {
6282	s.Tags = v
6283	return s
6284}
6285
6286type CreateTagsOutput struct {
6287	_ struct{} `type:"structure"`
6288}
6289
6290// String returns the string representation.
6291//
6292// API parameter values that are decorated as "sensitive" in the API will not
6293// be included in the string output. The member name will be present, but the
6294// value will be replaced with "sensitive".
6295func (s CreateTagsOutput) String() string {
6296	return awsutil.Prettify(s)
6297}
6298
6299// GoString returns the string representation.
6300//
6301// API parameter values that are decorated as "sensitive" in the API will not
6302// be included in the string output. The member name will be present, but the
6303// value will be replaced with "sensitive".
6304func (s CreateTagsOutput) GoString() string {
6305	return s.String()
6306}
6307
6308type CreateUpdatedWorkspaceImageInput struct {
6309	_ struct{} `type:"structure"`
6310
6311	// A description of whether updates for the WorkSpace image are available.
6312	//
6313	// Description is a required field
6314	Description *string `min:"1" type:"string" required:"true"`
6315
6316	// The name of the new updated WorkSpace image.
6317	//
6318	// Name is a required field
6319	Name *string `min:"1" type:"string" required:"true"`
6320
6321	// The identifier of the source WorkSpace image.
6322	//
6323	// SourceImageId is a required field
6324	SourceImageId *string `type:"string" required:"true"`
6325
6326	// The tags that you want to add to the new updated WorkSpace image.
6327	//
6328	// To add tags at the same time when you're creating the updated image, you
6329	// must create an IAM policy that grants your IAM user permissions to use workspaces:CreateTags.
6330	Tags []*Tag `type:"list"`
6331}
6332
6333// String returns the string representation.
6334//
6335// API parameter values that are decorated as "sensitive" in the API will not
6336// be included in the string output. The member name will be present, but the
6337// value will be replaced with "sensitive".
6338func (s CreateUpdatedWorkspaceImageInput) String() string {
6339	return awsutil.Prettify(s)
6340}
6341
6342// GoString returns the string representation.
6343//
6344// API parameter values that are decorated as "sensitive" in the API will not
6345// be included in the string output. The member name will be present, but the
6346// value will be replaced with "sensitive".
6347func (s CreateUpdatedWorkspaceImageInput) GoString() string {
6348	return s.String()
6349}
6350
6351// Validate inspects the fields of the type to determine if they are valid.
6352func (s *CreateUpdatedWorkspaceImageInput) Validate() error {
6353	invalidParams := request.ErrInvalidParams{Context: "CreateUpdatedWorkspaceImageInput"}
6354	if s.Description == nil {
6355		invalidParams.Add(request.NewErrParamRequired("Description"))
6356	}
6357	if s.Description != nil && len(*s.Description) < 1 {
6358		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
6359	}
6360	if s.Name == nil {
6361		invalidParams.Add(request.NewErrParamRequired("Name"))
6362	}
6363	if s.Name != nil && len(*s.Name) < 1 {
6364		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6365	}
6366	if s.SourceImageId == nil {
6367		invalidParams.Add(request.NewErrParamRequired("SourceImageId"))
6368	}
6369	if s.Tags != nil {
6370		for i, v := range s.Tags {
6371			if v == nil {
6372				continue
6373			}
6374			if err := v.Validate(); err != nil {
6375				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6376			}
6377		}
6378	}
6379
6380	if invalidParams.Len() > 0 {
6381		return invalidParams
6382	}
6383	return nil
6384}
6385
6386// SetDescription sets the Description field's value.
6387func (s *CreateUpdatedWorkspaceImageInput) SetDescription(v string) *CreateUpdatedWorkspaceImageInput {
6388	s.Description = &v
6389	return s
6390}
6391
6392// SetName sets the Name field's value.
6393func (s *CreateUpdatedWorkspaceImageInput) SetName(v string) *CreateUpdatedWorkspaceImageInput {
6394	s.Name = &v
6395	return s
6396}
6397
6398// SetSourceImageId sets the SourceImageId field's value.
6399func (s *CreateUpdatedWorkspaceImageInput) SetSourceImageId(v string) *CreateUpdatedWorkspaceImageInput {
6400	s.SourceImageId = &v
6401	return s
6402}
6403
6404// SetTags sets the Tags field's value.
6405func (s *CreateUpdatedWorkspaceImageInput) SetTags(v []*Tag) *CreateUpdatedWorkspaceImageInput {
6406	s.Tags = v
6407	return s
6408}
6409
6410type CreateUpdatedWorkspaceImageOutput struct {
6411	_ struct{} `type:"structure"`
6412
6413	// The identifier of the new updated WorkSpace image.
6414	ImageId *string `type:"string"`
6415}
6416
6417// String returns the string representation.
6418//
6419// API parameter values that are decorated as "sensitive" in the API will not
6420// be included in the string output. The member name will be present, but the
6421// value will be replaced with "sensitive".
6422func (s CreateUpdatedWorkspaceImageOutput) String() string {
6423	return awsutil.Prettify(s)
6424}
6425
6426// GoString returns the string representation.
6427//
6428// API parameter values that are decorated as "sensitive" in the API will not
6429// be included in the string output. The member name will be present, but the
6430// value will be replaced with "sensitive".
6431func (s CreateUpdatedWorkspaceImageOutput) GoString() string {
6432	return s.String()
6433}
6434
6435// SetImageId sets the ImageId field's value.
6436func (s *CreateUpdatedWorkspaceImageOutput) SetImageId(v string) *CreateUpdatedWorkspaceImageOutput {
6437	s.ImageId = &v
6438	return s
6439}
6440
6441type CreateWorkspaceBundleInput struct {
6442	_ struct{} `type:"structure"`
6443
6444	// The description of the bundle.
6445	//
6446	// BundleDescription is a required field
6447	BundleDescription *string `min:"1" type:"string" required:"true"`
6448
6449	// The name of the bundle.
6450	//
6451	// BundleName is a required field
6452	BundleName *string `min:"1" type:"string" required:"true"`
6453
6454	// Describes the compute type of the bundle.
6455	//
6456	// ComputeType is a required field
6457	ComputeType *ComputeType `type:"structure" required:"true"`
6458
6459	// The identifier of the image that is used to create the bundle.
6460	//
6461	// ImageId is a required field
6462	ImageId *string `type:"string" required:"true"`
6463
6464	// Describes the root volume for a WorkSpace bundle.
6465	RootStorage *RootStorage `type:"structure"`
6466
6467	// The tags associated with the bundle.
6468	//
6469	// To add tags at the same time when you're creating the bundle, you must create
6470	// an IAM policy that grants your IAM user permissions to use workspaces:CreateTags.
6471	Tags []*Tag `type:"list"`
6472
6473	// Describes the user volume for a WorkSpace bundle.
6474	//
6475	// UserStorage is a required field
6476	UserStorage *UserStorage `type:"structure" required:"true"`
6477}
6478
6479// String returns the string representation.
6480//
6481// API parameter values that are decorated as "sensitive" in the API will not
6482// be included in the string output. The member name will be present, but the
6483// value will be replaced with "sensitive".
6484func (s CreateWorkspaceBundleInput) String() string {
6485	return awsutil.Prettify(s)
6486}
6487
6488// GoString returns the string representation.
6489//
6490// API parameter values that are decorated as "sensitive" in the API will not
6491// be included in the string output. The member name will be present, but the
6492// value will be replaced with "sensitive".
6493func (s CreateWorkspaceBundleInput) GoString() string {
6494	return s.String()
6495}
6496
6497// Validate inspects the fields of the type to determine if they are valid.
6498func (s *CreateWorkspaceBundleInput) Validate() error {
6499	invalidParams := request.ErrInvalidParams{Context: "CreateWorkspaceBundleInput"}
6500	if s.BundleDescription == nil {
6501		invalidParams.Add(request.NewErrParamRequired("BundleDescription"))
6502	}
6503	if s.BundleDescription != nil && len(*s.BundleDescription) < 1 {
6504		invalidParams.Add(request.NewErrParamMinLen("BundleDescription", 1))
6505	}
6506	if s.BundleName == nil {
6507		invalidParams.Add(request.NewErrParamRequired("BundleName"))
6508	}
6509	if s.BundleName != nil && len(*s.BundleName) < 1 {
6510		invalidParams.Add(request.NewErrParamMinLen("BundleName", 1))
6511	}
6512	if s.ComputeType == nil {
6513		invalidParams.Add(request.NewErrParamRequired("ComputeType"))
6514	}
6515	if s.ImageId == nil {
6516		invalidParams.Add(request.NewErrParamRequired("ImageId"))
6517	}
6518	if s.UserStorage == nil {
6519		invalidParams.Add(request.NewErrParamRequired("UserStorage"))
6520	}
6521	if s.RootStorage != nil {
6522		if err := s.RootStorage.Validate(); err != nil {
6523			invalidParams.AddNested("RootStorage", err.(request.ErrInvalidParams))
6524		}
6525	}
6526	if s.Tags != nil {
6527		for i, v := range s.Tags {
6528			if v == nil {
6529				continue
6530			}
6531			if err := v.Validate(); err != nil {
6532				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6533			}
6534		}
6535	}
6536	if s.UserStorage != nil {
6537		if err := s.UserStorage.Validate(); err != nil {
6538			invalidParams.AddNested("UserStorage", err.(request.ErrInvalidParams))
6539		}
6540	}
6541
6542	if invalidParams.Len() > 0 {
6543		return invalidParams
6544	}
6545	return nil
6546}
6547
6548// SetBundleDescription sets the BundleDescription field's value.
6549func (s *CreateWorkspaceBundleInput) SetBundleDescription(v string) *CreateWorkspaceBundleInput {
6550	s.BundleDescription = &v
6551	return s
6552}
6553
6554// SetBundleName sets the BundleName field's value.
6555func (s *CreateWorkspaceBundleInput) SetBundleName(v string) *CreateWorkspaceBundleInput {
6556	s.BundleName = &v
6557	return s
6558}
6559
6560// SetComputeType sets the ComputeType field's value.
6561func (s *CreateWorkspaceBundleInput) SetComputeType(v *ComputeType) *CreateWorkspaceBundleInput {
6562	s.ComputeType = v
6563	return s
6564}
6565
6566// SetImageId sets the ImageId field's value.
6567func (s *CreateWorkspaceBundleInput) SetImageId(v string) *CreateWorkspaceBundleInput {
6568	s.ImageId = &v
6569	return s
6570}
6571
6572// SetRootStorage sets the RootStorage field's value.
6573func (s *CreateWorkspaceBundleInput) SetRootStorage(v *RootStorage) *CreateWorkspaceBundleInput {
6574	s.RootStorage = v
6575	return s
6576}
6577
6578// SetTags sets the Tags field's value.
6579func (s *CreateWorkspaceBundleInput) SetTags(v []*Tag) *CreateWorkspaceBundleInput {
6580	s.Tags = v
6581	return s
6582}
6583
6584// SetUserStorage sets the UserStorage field's value.
6585func (s *CreateWorkspaceBundleInput) SetUserStorage(v *UserStorage) *CreateWorkspaceBundleInput {
6586	s.UserStorage = v
6587	return s
6588}
6589
6590type CreateWorkspaceBundleOutput struct {
6591	_ struct{} `type:"structure"`
6592
6593	// Describes a WorkSpace bundle.
6594	WorkspaceBundle *WorkspaceBundle `type:"structure"`
6595}
6596
6597// String returns the string representation.
6598//
6599// API parameter values that are decorated as "sensitive" in the API will not
6600// be included in the string output. The member name will be present, but the
6601// value will be replaced with "sensitive".
6602func (s CreateWorkspaceBundleOutput) String() string {
6603	return awsutil.Prettify(s)
6604}
6605
6606// GoString returns the string representation.
6607//
6608// API parameter values that are decorated as "sensitive" in the API will not
6609// be included in the string output. The member name will be present, but the
6610// value will be replaced with "sensitive".
6611func (s CreateWorkspaceBundleOutput) GoString() string {
6612	return s.String()
6613}
6614
6615// SetWorkspaceBundle sets the WorkspaceBundle field's value.
6616func (s *CreateWorkspaceBundleOutput) SetWorkspaceBundle(v *WorkspaceBundle) *CreateWorkspaceBundleOutput {
6617	s.WorkspaceBundle = v
6618	return s
6619}
6620
6621type CreateWorkspacesInput struct {
6622	_ struct{} `type:"structure"`
6623
6624	// The WorkSpaces to create. You can specify up to 25 WorkSpaces.
6625	//
6626	// Workspaces is a required field
6627	Workspaces []*WorkspaceRequest `min:"1" type:"list" required:"true"`
6628}
6629
6630// String returns the string representation.
6631//
6632// API parameter values that are decorated as "sensitive" in the API will not
6633// be included in the string output. The member name will be present, but the
6634// value will be replaced with "sensitive".
6635func (s CreateWorkspacesInput) String() string {
6636	return awsutil.Prettify(s)
6637}
6638
6639// GoString returns the string representation.
6640//
6641// API parameter values that are decorated as "sensitive" in the API will not
6642// be included in the string output. The member name will be present, but the
6643// value will be replaced with "sensitive".
6644func (s CreateWorkspacesInput) GoString() string {
6645	return s.String()
6646}
6647
6648// Validate inspects the fields of the type to determine if they are valid.
6649func (s *CreateWorkspacesInput) Validate() error {
6650	invalidParams := request.ErrInvalidParams{Context: "CreateWorkspacesInput"}
6651	if s.Workspaces == nil {
6652		invalidParams.Add(request.NewErrParamRequired("Workspaces"))
6653	}
6654	if s.Workspaces != nil && len(s.Workspaces) < 1 {
6655		invalidParams.Add(request.NewErrParamMinLen("Workspaces", 1))
6656	}
6657	if s.Workspaces != nil {
6658		for i, v := range s.Workspaces {
6659			if v == nil {
6660				continue
6661			}
6662			if err := v.Validate(); err != nil {
6663				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Workspaces", i), err.(request.ErrInvalidParams))
6664			}
6665		}
6666	}
6667
6668	if invalidParams.Len() > 0 {
6669		return invalidParams
6670	}
6671	return nil
6672}
6673
6674// SetWorkspaces sets the Workspaces field's value.
6675func (s *CreateWorkspacesInput) SetWorkspaces(v []*WorkspaceRequest) *CreateWorkspacesInput {
6676	s.Workspaces = v
6677	return s
6678}
6679
6680type CreateWorkspacesOutput struct {
6681	_ struct{} `type:"structure"`
6682
6683	// Information about the WorkSpaces that could not be created.
6684	FailedRequests []*FailedCreateWorkspaceRequest `type:"list"`
6685
6686	// Information about the WorkSpaces that were created.
6687	//
6688	// Because this operation is asynchronous, the identifier returned is not immediately
6689	// available for use with other operations. For example, if you call DescribeWorkspaces
6690	// before the WorkSpace is created, the information returned can be incomplete.
6691	PendingRequests []*Workspace `type:"list"`
6692}
6693
6694// String returns the string representation.
6695//
6696// API parameter values that are decorated as "sensitive" in the API will not
6697// be included in the string output. The member name will be present, but the
6698// value will be replaced with "sensitive".
6699func (s CreateWorkspacesOutput) String() string {
6700	return awsutil.Prettify(s)
6701}
6702
6703// GoString returns the string representation.
6704//
6705// API parameter values that are decorated as "sensitive" in the API will not
6706// be included in the string output. The member name will be present, but the
6707// value will be replaced with "sensitive".
6708func (s CreateWorkspacesOutput) GoString() string {
6709	return s.String()
6710}
6711
6712// SetFailedRequests sets the FailedRequests field's value.
6713func (s *CreateWorkspacesOutput) SetFailedRequests(v []*FailedCreateWorkspaceRequest) *CreateWorkspacesOutput {
6714	s.FailedRequests = v
6715	return s
6716}
6717
6718// SetPendingRequests sets the PendingRequests field's value.
6719func (s *CreateWorkspacesOutput) SetPendingRequests(v []*Workspace) *CreateWorkspacesOutput {
6720	s.PendingRequests = v
6721	return s
6722}
6723
6724// Describes the default values that are used to create WorkSpaces. For more
6725// information, see Update Directory Details for Your WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html).
6726type DefaultWorkspaceCreationProperties struct {
6727	_ struct{} `type:"structure"`
6728
6729	// The identifier of the default security group to apply to WorkSpaces when
6730	// they are created. For more information, see Security Groups for Your WorkSpaces
6731	// (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-security-groups.html).
6732	CustomSecurityGroupId *string `min:"11" type:"string"`
6733
6734	// The organizational unit (OU) in the directory for the WorkSpace machine accounts.
6735	DefaultOu *string `type:"string"`
6736
6737	// Specifies whether to automatically assign an Elastic public IP address to
6738	// WorkSpaces in this directory by default. If enabled, the Elastic public IP
6739	// address allows outbound internet access from your WorkSpaces when you’re
6740	// using an internet gateway in the Amazon VPC in which your WorkSpaces are
6741	// located. If you're using a Network Address Translation (NAT) gateway for
6742	// outbound internet access from your VPC, or if your WorkSpaces are in public
6743	// subnets and you manually assign them Elastic IP addresses, you should disable
6744	// this setting. This setting applies to new WorkSpaces that you launch or to
6745	// existing WorkSpaces that you rebuild. For more information, see Configure
6746	// a VPC for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html).
6747	EnableInternetAccess *bool `type:"boolean"`
6748
6749	// Specifies whether maintenance mode is enabled for WorkSpaces. For more information,
6750	// see WorkSpace Maintenance (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).
6751	EnableMaintenanceMode *bool `type:"boolean"`
6752
6753	// Specifies whether the directory is enabled for Amazon WorkDocs.
6754	EnableWorkDocs *bool `type:"boolean"`
6755
6756	// Specifies whether WorkSpace users are local administrators on their WorkSpaces.
6757	UserEnabledAsLocalAdministrator *bool `type:"boolean"`
6758}
6759
6760// String returns the string representation.
6761//
6762// API parameter values that are decorated as "sensitive" in the API will not
6763// be included in the string output. The member name will be present, but the
6764// value will be replaced with "sensitive".
6765func (s DefaultWorkspaceCreationProperties) String() string {
6766	return awsutil.Prettify(s)
6767}
6768
6769// GoString returns the string representation.
6770//
6771// API parameter values that are decorated as "sensitive" in the API will not
6772// be included in the string output. The member name will be present, but the
6773// value will be replaced with "sensitive".
6774func (s DefaultWorkspaceCreationProperties) GoString() string {
6775	return s.String()
6776}
6777
6778// SetCustomSecurityGroupId sets the CustomSecurityGroupId field's value.
6779func (s *DefaultWorkspaceCreationProperties) SetCustomSecurityGroupId(v string) *DefaultWorkspaceCreationProperties {
6780	s.CustomSecurityGroupId = &v
6781	return s
6782}
6783
6784// SetDefaultOu sets the DefaultOu field's value.
6785func (s *DefaultWorkspaceCreationProperties) SetDefaultOu(v string) *DefaultWorkspaceCreationProperties {
6786	s.DefaultOu = &v
6787	return s
6788}
6789
6790// SetEnableInternetAccess sets the EnableInternetAccess field's value.
6791func (s *DefaultWorkspaceCreationProperties) SetEnableInternetAccess(v bool) *DefaultWorkspaceCreationProperties {
6792	s.EnableInternetAccess = &v
6793	return s
6794}
6795
6796// SetEnableMaintenanceMode sets the EnableMaintenanceMode field's value.
6797func (s *DefaultWorkspaceCreationProperties) SetEnableMaintenanceMode(v bool) *DefaultWorkspaceCreationProperties {
6798	s.EnableMaintenanceMode = &v
6799	return s
6800}
6801
6802// SetEnableWorkDocs sets the EnableWorkDocs field's value.
6803func (s *DefaultWorkspaceCreationProperties) SetEnableWorkDocs(v bool) *DefaultWorkspaceCreationProperties {
6804	s.EnableWorkDocs = &v
6805	return s
6806}
6807
6808// SetUserEnabledAsLocalAdministrator sets the UserEnabledAsLocalAdministrator field's value.
6809func (s *DefaultWorkspaceCreationProperties) SetUserEnabledAsLocalAdministrator(v bool) *DefaultWorkspaceCreationProperties {
6810	s.UserEnabledAsLocalAdministrator = &v
6811	return s
6812}
6813
6814type DeleteConnectionAliasInput struct {
6815	_ struct{} `type:"structure"`
6816
6817	// The identifier of the connection alias to delete.
6818	//
6819	// AliasId is a required field
6820	AliasId *string `min:"13" type:"string" required:"true"`
6821}
6822
6823// String returns the string representation.
6824//
6825// API parameter values that are decorated as "sensitive" in the API will not
6826// be included in the string output. The member name will be present, but the
6827// value will be replaced with "sensitive".
6828func (s DeleteConnectionAliasInput) String() string {
6829	return awsutil.Prettify(s)
6830}
6831
6832// GoString returns the string representation.
6833//
6834// API parameter values that are decorated as "sensitive" in the API will not
6835// be included in the string output. The member name will be present, but the
6836// value will be replaced with "sensitive".
6837func (s DeleteConnectionAliasInput) GoString() string {
6838	return s.String()
6839}
6840
6841// Validate inspects the fields of the type to determine if they are valid.
6842func (s *DeleteConnectionAliasInput) Validate() error {
6843	invalidParams := request.ErrInvalidParams{Context: "DeleteConnectionAliasInput"}
6844	if s.AliasId == nil {
6845		invalidParams.Add(request.NewErrParamRequired("AliasId"))
6846	}
6847	if s.AliasId != nil && len(*s.AliasId) < 13 {
6848		invalidParams.Add(request.NewErrParamMinLen("AliasId", 13))
6849	}
6850
6851	if invalidParams.Len() > 0 {
6852		return invalidParams
6853	}
6854	return nil
6855}
6856
6857// SetAliasId sets the AliasId field's value.
6858func (s *DeleteConnectionAliasInput) SetAliasId(v string) *DeleteConnectionAliasInput {
6859	s.AliasId = &v
6860	return s
6861}
6862
6863type DeleteConnectionAliasOutput struct {
6864	_ struct{} `type:"structure"`
6865}
6866
6867// String returns the string representation.
6868//
6869// API parameter values that are decorated as "sensitive" in the API will not
6870// be included in the string output. The member name will be present, but the
6871// value will be replaced with "sensitive".
6872func (s DeleteConnectionAliasOutput) String() string {
6873	return awsutil.Prettify(s)
6874}
6875
6876// GoString returns the string representation.
6877//
6878// API parameter values that are decorated as "sensitive" in the API will not
6879// be included in the string output. The member name will be present, but the
6880// value will be replaced with "sensitive".
6881func (s DeleteConnectionAliasOutput) GoString() string {
6882	return s.String()
6883}
6884
6885type DeleteIpGroupInput struct {
6886	_ struct{} `type:"structure"`
6887
6888	// The identifier of the IP access control group.
6889	//
6890	// GroupId is a required field
6891	GroupId *string `type:"string" required:"true"`
6892}
6893
6894// String returns the string representation.
6895//
6896// API parameter values that are decorated as "sensitive" in the API will not
6897// be included in the string output. The member name will be present, but the
6898// value will be replaced with "sensitive".
6899func (s DeleteIpGroupInput) String() string {
6900	return awsutil.Prettify(s)
6901}
6902
6903// GoString returns the string representation.
6904//
6905// API parameter values that are decorated as "sensitive" in the API will not
6906// be included in the string output. The member name will be present, but the
6907// value will be replaced with "sensitive".
6908func (s DeleteIpGroupInput) GoString() string {
6909	return s.String()
6910}
6911
6912// Validate inspects the fields of the type to determine if they are valid.
6913func (s *DeleteIpGroupInput) Validate() error {
6914	invalidParams := request.ErrInvalidParams{Context: "DeleteIpGroupInput"}
6915	if s.GroupId == nil {
6916		invalidParams.Add(request.NewErrParamRequired("GroupId"))
6917	}
6918
6919	if invalidParams.Len() > 0 {
6920		return invalidParams
6921	}
6922	return nil
6923}
6924
6925// SetGroupId sets the GroupId field's value.
6926func (s *DeleteIpGroupInput) SetGroupId(v string) *DeleteIpGroupInput {
6927	s.GroupId = &v
6928	return s
6929}
6930
6931type DeleteIpGroupOutput struct {
6932	_ struct{} `type:"structure"`
6933}
6934
6935// String returns the string representation.
6936//
6937// API parameter values that are decorated as "sensitive" in the API will not
6938// be included in the string output. The member name will be present, but the
6939// value will be replaced with "sensitive".
6940func (s DeleteIpGroupOutput) String() string {
6941	return awsutil.Prettify(s)
6942}
6943
6944// GoString returns the string representation.
6945//
6946// API parameter values that are decorated as "sensitive" in the API will not
6947// be included in the string output. The member name will be present, but the
6948// value will be replaced with "sensitive".
6949func (s DeleteIpGroupOutput) GoString() string {
6950	return s.String()
6951}
6952
6953type DeleteTagsInput struct {
6954	_ struct{} `type:"structure"`
6955
6956	// The identifier of the WorkSpaces resource. The supported resource types are
6957	// WorkSpaces, registered directories, images, custom bundles, IP access control
6958	// groups, and connection aliases.
6959	//
6960	// ResourceId is a required field
6961	ResourceId *string `min:"1" type:"string" required:"true"`
6962
6963	// The tag keys.
6964	//
6965	// TagKeys is a required field
6966	TagKeys []*string `type:"list" required:"true"`
6967}
6968
6969// String returns the string representation.
6970//
6971// API parameter values that are decorated as "sensitive" in the API will not
6972// be included in the string output. The member name will be present, but the
6973// value will be replaced with "sensitive".
6974func (s DeleteTagsInput) String() string {
6975	return awsutil.Prettify(s)
6976}
6977
6978// GoString returns the string representation.
6979//
6980// API parameter values that are decorated as "sensitive" in the API will not
6981// be included in the string output. The member name will be present, but the
6982// value will be replaced with "sensitive".
6983func (s DeleteTagsInput) GoString() string {
6984	return s.String()
6985}
6986
6987// Validate inspects the fields of the type to determine if they are valid.
6988func (s *DeleteTagsInput) Validate() error {
6989	invalidParams := request.ErrInvalidParams{Context: "DeleteTagsInput"}
6990	if s.ResourceId == nil {
6991		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6992	}
6993	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
6994		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
6995	}
6996	if s.TagKeys == nil {
6997		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
6998	}
6999
7000	if invalidParams.Len() > 0 {
7001		return invalidParams
7002	}
7003	return nil
7004}
7005
7006// SetResourceId sets the ResourceId field's value.
7007func (s *DeleteTagsInput) SetResourceId(v string) *DeleteTagsInput {
7008	s.ResourceId = &v
7009	return s
7010}
7011
7012// SetTagKeys sets the TagKeys field's value.
7013func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput {
7014	s.TagKeys = v
7015	return s
7016}
7017
7018type DeleteTagsOutput struct {
7019	_ struct{} `type:"structure"`
7020}
7021
7022// String returns the string representation.
7023//
7024// API parameter values that are decorated as "sensitive" in the API will not
7025// be included in the string output. The member name will be present, but the
7026// value will be replaced with "sensitive".
7027func (s DeleteTagsOutput) String() string {
7028	return awsutil.Prettify(s)
7029}
7030
7031// GoString returns the string representation.
7032//
7033// API parameter values that are decorated as "sensitive" in the API will not
7034// be included in the string output. The member name will be present, but the
7035// value will be replaced with "sensitive".
7036func (s DeleteTagsOutput) GoString() string {
7037	return s.String()
7038}
7039
7040type DeleteWorkspaceBundleInput struct {
7041	_ struct{} `type:"structure"`
7042
7043	// The identifier of the bundle.
7044	BundleId *string `type:"string"`
7045}
7046
7047// String returns the string representation.
7048//
7049// API parameter values that are decorated as "sensitive" in the API will not
7050// be included in the string output. The member name will be present, but the
7051// value will be replaced with "sensitive".
7052func (s DeleteWorkspaceBundleInput) String() string {
7053	return awsutil.Prettify(s)
7054}
7055
7056// GoString returns the string representation.
7057//
7058// API parameter values that are decorated as "sensitive" in the API will not
7059// be included in the string output. The member name will be present, but the
7060// value will be replaced with "sensitive".
7061func (s DeleteWorkspaceBundleInput) GoString() string {
7062	return s.String()
7063}
7064
7065// SetBundleId sets the BundleId field's value.
7066func (s *DeleteWorkspaceBundleInput) SetBundleId(v string) *DeleteWorkspaceBundleInput {
7067	s.BundleId = &v
7068	return s
7069}
7070
7071type DeleteWorkspaceBundleOutput struct {
7072	_ struct{} `type:"structure"`
7073}
7074
7075// String returns the string representation.
7076//
7077// API parameter values that are decorated as "sensitive" in the API will not
7078// be included in the string output. The member name will be present, but the
7079// value will be replaced with "sensitive".
7080func (s DeleteWorkspaceBundleOutput) String() string {
7081	return awsutil.Prettify(s)
7082}
7083
7084// GoString returns the string representation.
7085//
7086// API parameter values that are decorated as "sensitive" in the API will not
7087// be included in the string output. The member name will be present, but the
7088// value will be replaced with "sensitive".
7089func (s DeleteWorkspaceBundleOutput) GoString() string {
7090	return s.String()
7091}
7092
7093type DeleteWorkspaceImageInput struct {
7094	_ struct{} `type:"structure"`
7095
7096	// The identifier of the image.
7097	//
7098	// ImageId is a required field
7099	ImageId *string `type:"string" required:"true"`
7100}
7101
7102// String returns the string representation.
7103//
7104// API parameter values that are decorated as "sensitive" in the API will not
7105// be included in the string output. The member name will be present, but the
7106// value will be replaced with "sensitive".
7107func (s DeleteWorkspaceImageInput) String() string {
7108	return awsutil.Prettify(s)
7109}
7110
7111// GoString returns the string representation.
7112//
7113// API parameter values that are decorated as "sensitive" in the API will not
7114// be included in the string output. The member name will be present, but the
7115// value will be replaced with "sensitive".
7116func (s DeleteWorkspaceImageInput) GoString() string {
7117	return s.String()
7118}
7119
7120// Validate inspects the fields of the type to determine if they are valid.
7121func (s *DeleteWorkspaceImageInput) Validate() error {
7122	invalidParams := request.ErrInvalidParams{Context: "DeleteWorkspaceImageInput"}
7123	if s.ImageId == nil {
7124		invalidParams.Add(request.NewErrParamRequired("ImageId"))
7125	}
7126
7127	if invalidParams.Len() > 0 {
7128		return invalidParams
7129	}
7130	return nil
7131}
7132
7133// SetImageId sets the ImageId field's value.
7134func (s *DeleteWorkspaceImageInput) SetImageId(v string) *DeleteWorkspaceImageInput {
7135	s.ImageId = &v
7136	return s
7137}
7138
7139type DeleteWorkspaceImageOutput struct {
7140	_ struct{} `type:"structure"`
7141}
7142
7143// String returns the string representation.
7144//
7145// API parameter values that are decorated as "sensitive" in the API will not
7146// be included in the string output. The member name will be present, but the
7147// value will be replaced with "sensitive".
7148func (s DeleteWorkspaceImageOutput) String() string {
7149	return awsutil.Prettify(s)
7150}
7151
7152// GoString returns the string representation.
7153//
7154// API parameter values that are decorated as "sensitive" in the API will not
7155// be included in the string output. The member name will be present, but the
7156// value will be replaced with "sensitive".
7157func (s DeleteWorkspaceImageOutput) GoString() string {
7158	return s.String()
7159}
7160
7161type DeregisterWorkspaceDirectoryInput struct {
7162	_ struct{} `type:"structure"`
7163
7164	// The identifier of the directory. If any WorkSpaces are registered to this
7165	// directory, you must remove them before you deregister the directory, or you
7166	// will receive an OperationNotSupportedException error.
7167	//
7168	// DirectoryId is a required field
7169	DirectoryId *string `min:"10" type:"string" required:"true"`
7170}
7171
7172// String returns the string representation.
7173//
7174// API parameter values that are decorated as "sensitive" in the API will not
7175// be included in the string output. The member name will be present, but the
7176// value will be replaced with "sensitive".
7177func (s DeregisterWorkspaceDirectoryInput) String() string {
7178	return awsutil.Prettify(s)
7179}
7180
7181// GoString returns the string representation.
7182//
7183// API parameter values that are decorated as "sensitive" in the API will not
7184// be included in the string output. The member name will be present, but the
7185// value will be replaced with "sensitive".
7186func (s DeregisterWorkspaceDirectoryInput) GoString() string {
7187	return s.String()
7188}
7189
7190// Validate inspects the fields of the type to determine if they are valid.
7191func (s *DeregisterWorkspaceDirectoryInput) Validate() error {
7192	invalidParams := request.ErrInvalidParams{Context: "DeregisterWorkspaceDirectoryInput"}
7193	if s.DirectoryId == nil {
7194		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
7195	}
7196	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
7197		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
7198	}
7199
7200	if invalidParams.Len() > 0 {
7201		return invalidParams
7202	}
7203	return nil
7204}
7205
7206// SetDirectoryId sets the DirectoryId field's value.
7207func (s *DeregisterWorkspaceDirectoryInput) SetDirectoryId(v string) *DeregisterWorkspaceDirectoryInput {
7208	s.DirectoryId = &v
7209	return s
7210}
7211
7212type DeregisterWorkspaceDirectoryOutput struct {
7213	_ struct{} `type:"structure"`
7214}
7215
7216// String returns the string representation.
7217//
7218// API parameter values that are decorated as "sensitive" in the API will not
7219// be included in the string output. The member name will be present, but the
7220// value will be replaced with "sensitive".
7221func (s DeregisterWorkspaceDirectoryOutput) String() string {
7222	return awsutil.Prettify(s)
7223}
7224
7225// GoString returns the string representation.
7226//
7227// API parameter values that are decorated as "sensitive" in the API will not
7228// be included in the string output. The member name will be present, but the
7229// value will be replaced with "sensitive".
7230func (s DeregisterWorkspaceDirectoryOutput) GoString() string {
7231	return s.String()
7232}
7233
7234type DescribeAccountInput struct {
7235	_ struct{} `type:"structure"`
7236}
7237
7238// String returns the string representation.
7239//
7240// API parameter values that are decorated as "sensitive" in the API will not
7241// be included in the string output. The member name will be present, but the
7242// value will be replaced with "sensitive".
7243func (s DescribeAccountInput) String() string {
7244	return awsutil.Prettify(s)
7245}
7246
7247// GoString returns the string representation.
7248//
7249// API parameter values that are decorated as "sensitive" in the API will not
7250// be included in the string output. The member name will be present, but the
7251// value will be replaced with "sensitive".
7252func (s DescribeAccountInput) GoString() string {
7253	return s.String()
7254}
7255
7256type DescribeAccountModificationsInput struct {
7257	_ struct{} `type:"structure"`
7258
7259	// If you received a NextToken from a previous call that was paginated, provide
7260	// this token to receive the next set of results.
7261	NextToken *string `min:"1" type:"string"`
7262}
7263
7264// String returns the string representation.
7265//
7266// API parameter values that are decorated as "sensitive" in the API will not
7267// be included in the string output. The member name will be present, but the
7268// value will be replaced with "sensitive".
7269func (s DescribeAccountModificationsInput) String() string {
7270	return awsutil.Prettify(s)
7271}
7272
7273// GoString returns the string representation.
7274//
7275// API parameter values that are decorated as "sensitive" in the API will not
7276// be included in the string output. The member name will be present, but the
7277// value will be replaced with "sensitive".
7278func (s DescribeAccountModificationsInput) GoString() string {
7279	return s.String()
7280}
7281
7282// Validate inspects the fields of the type to determine if they are valid.
7283func (s *DescribeAccountModificationsInput) Validate() error {
7284	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountModificationsInput"}
7285	if s.NextToken != nil && len(*s.NextToken) < 1 {
7286		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7287	}
7288
7289	if invalidParams.Len() > 0 {
7290		return invalidParams
7291	}
7292	return nil
7293}
7294
7295// SetNextToken sets the NextToken field's value.
7296func (s *DescribeAccountModificationsInput) SetNextToken(v string) *DescribeAccountModificationsInput {
7297	s.NextToken = &v
7298	return s
7299}
7300
7301type DescribeAccountModificationsOutput struct {
7302	_ struct{} `type:"structure"`
7303
7304	// The list of modifications to the configuration of BYOL.
7305	AccountModifications []*AccountModification `type:"list"`
7306
7307	// The token to use to retrieve the next page of results. This value is null
7308	// when there are no more results to return.
7309	NextToken *string `min:"1" type:"string"`
7310}
7311
7312// String returns the string representation.
7313//
7314// API parameter values that are decorated as "sensitive" in the API will not
7315// be included in the string output. The member name will be present, but the
7316// value will be replaced with "sensitive".
7317func (s DescribeAccountModificationsOutput) String() string {
7318	return awsutil.Prettify(s)
7319}
7320
7321// GoString returns the string representation.
7322//
7323// API parameter values that are decorated as "sensitive" in the API will not
7324// be included in the string output. The member name will be present, but the
7325// value will be replaced with "sensitive".
7326func (s DescribeAccountModificationsOutput) GoString() string {
7327	return s.String()
7328}
7329
7330// SetAccountModifications sets the AccountModifications field's value.
7331func (s *DescribeAccountModificationsOutput) SetAccountModifications(v []*AccountModification) *DescribeAccountModificationsOutput {
7332	s.AccountModifications = v
7333	return s
7334}
7335
7336// SetNextToken sets the NextToken field's value.
7337func (s *DescribeAccountModificationsOutput) SetNextToken(v string) *DescribeAccountModificationsOutput {
7338	s.NextToken = &v
7339	return s
7340}
7341
7342type DescribeAccountOutput struct {
7343	_ struct{} `type:"structure"`
7344
7345	// The IP address range, specified as an IPv4 CIDR block, used for the management
7346	// network interface.
7347	//
7348	// The management network interface is connected to a secure Amazon WorkSpaces
7349	// management network. It is used for interactive streaming of the WorkSpace
7350	// desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage
7351	// the WorkSpace.
7352	DedicatedTenancyManagementCidrRange *string `type:"string"`
7353
7354	// The status of BYOL (whether BYOL is enabled or disabled).
7355	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportResultEnum"`
7356}
7357
7358// String returns the string representation.
7359//
7360// API parameter values that are decorated as "sensitive" in the API will not
7361// be included in the string output. The member name will be present, but the
7362// value will be replaced with "sensitive".
7363func (s DescribeAccountOutput) String() string {
7364	return awsutil.Prettify(s)
7365}
7366
7367// GoString returns the string representation.
7368//
7369// API parameter values that are decorated as "sensitive" in the API will not
7370// be included in the string output. The member name will be present, but the
7371// value will be replaced with "sensitive".
7372func (s DescribeAccountOutput) GoString() string {
7373	return s.String()
7374}
7375
7376// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
7377func (s *DescribeAccountOutput) SetDedicatedTenancyManagementCidrRange(v string) *DescribeAccountOutput {
7378	s.DedicatedTenancyManagementCidrRange = &v
7379	return s
7380}
7381
7382// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
7383func (s *DescribeAccountOutput) SetDedicatedTenancySupport(v string) *DescribeAccountOutput {
7384	s.DedicatedTenancySupport = &v
7385	return s
7386}
7387
7388type DescribeClientPropertiesInput struct {
7389	_ struct{} `type:"structure"`
7390
7391	// The resource identifier, in the form of directory IDs.
7392	//
7393	// ResourceIds is a required field
7394	ResourceIds []*string `min:"1" type:"list" required:"true"`
7395}
7396
7397// String returns the string representation.
7398//
7399// API parameter values that are decorated as "sensitive" in the API will not
7400// be included in the string output. The member name will be present, but the
7401// value will be replaced with "sensitive".
7402func (s DescribeClientPropertiesInput) String() string {
7403	return awsutil.Prettify(s)
7404}
7405
7406// GoString returns the string representation.
7407//
7408// API parameter values that are decorated as "sensitive" in the API will not
7409// be included in the string output. The member name will be present, but the
7410// value will be replaced with "sensitive".
7411func (s DescribeClientPropertiesInput) GoString() string {
7412	return s.String()
7413}
7414
7415// Validate inspects the fields of the type to determine if they are valid.
7416func (s *DescribeClientPropertiesInput) Validate() error {
7417	invalidParams := request.ErrInvalidParams{Context: "DescribeClientPropertiesInput"}
7418	if s.ResourceIds == nil {
7419		invalidParams.Add(request.NewErrParamRequired("ResourceIds"))
7420	}
7421	if s.ResourceIds != nil && len(s.ResourceIds) < 1 {
7422		invalidParams.Add(request.NewErrParamMinLen("ResourceIds", 1))
7423	}
7424
7425	if invalidParams.Len() > 0 {
7426		return invalidParams
7427	}
7428	return nil
7429}
7430
7431// SetResourceIds sets the ResourceIds field's value.
7432func (s *DescribeClientPropertiesInput) SetResourceIds(v []*string) *DescribeClientPropertiesInput {
7433	s.ResourceIds = v
7434	return s
7435}
7436
7437type DescribeClientPropertiesOutput struct {
7438	_ struct{} `type:"structure"`
7439
7440	// Information about the specified Amazon WorkSpaces clients.
7441	ClientPropertiesList []*ClientPropertiesResult `type:"list"`
7442}
7443
7444// String returns the string representation.
7445//
7446// API parameter values that are decorated as "sensitive" in the API will not
7447// be included in the string output. The member name will be present, but the
7448// value will be replaced with "sensitive".
7449func (s DescribeClientPropertiesOutput) String() string {
7450	return awsutil.Prettify(s)
7451}
7452
7453// GoString returns the string representation.
7454//
7455// API parameter values that are decorated as "sensitive" in the API will not
7456// be included in the string output. The member name will be present, but the
7457// value will be replaced with "sensitive".
7458func (s DescribeClientPropertiesOutput) GoString() string {
7459	return s.String()
7460}
7461
7462// SetClientPropertiesList sets the ClientPropertiesList field's value.
7463func (s *DescribeClientPropertiesOutput) SetClientPropertiesList(v []*ClientPropertiesResult) *DescribeClientPropertiesOutput {
7464	s.ClientPropertiesList = v
7465	return s
7466}
7467
7468type DescribeConnectionAliasPermissionsInput struct {
7469	_ struct{} `type:"structure"`
7470
7471	// The identifier of the connection alias.
7472	//
7473	// AliasId is a required field
7474	AliasId *string `min:"13" type:"string" required:"true"`
7475
7476	// The maximum number of results to return.
7477	MaxResults *int64 `min:"1" type:"integer"`
7478
7479	// If you received a NextToken from a previous call that was paginated, provide
7480	// this token to receive the next set of results.
7481	NextToken *string `min:"1" type:"string"`
7482}
7483
7484// String returns the string representation.
7485//
7486// API parameter values that are decorated as "sensitive" in the API will not
7487// be included in the string output. The member name will be present, but the
7488// value will be replaced with "sensitive".
7489func (s DescribeConnectionAliasPermissionsInput) String() string {
7490	return awsutil.Prettify(s)
7491}
7492
7493// GoString returns the string representation.
7494//
7495// API parameter values that are decorated as "sensitive" in the API will not
7496// be included in the string output. The member name will be present, but the
7497// value will be replaced with "sensitive".
7498func (s DescribeConnectionAliasPermissionsInput) GoString() string {
7499	return s.String()
7500}
7501
7502// Validate inspects the fields of the type to determine if they are valid.
7503func (s *DescribeConnectionAliasPermissionsInput) Validate() error {
7504	invalidParams := request.ErrInvalidParams{Context: "DescribeConnectionAliasPermissionsInput"}
7505	if s.AliasId == nil {
7506		invalidParams.Add(request.NewErrParamRequired("AliasId"))
7507	}
7508	if s.AliasId != nil && len(*s.AliasId) < 13 {
7509		invalidParams.Add(request.NewErrParamMinLen("AliasId", 13))
7510	}
7511	if s.MaxResults != nil && *s.MaxResults < 1 {
7512		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7513	}
7514	if s.NextToken != nil && len(*s.NextToken) < 1 {
7515		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7516	}
7517
7518	if invalidParams.Len() > 0 {
7519		return invalidParams
7520	}
7521	return nil
7522}
7523
7524// SetAliasId sets the AliasId field's value.
7525func (s *DescribeConnectionAliasPermissionsInput) SetAliasId(v string) *DescribeConnectionAliasPermissionsInput {
7526	s.AliasId = &v
7527	return s
7528}
7529
7530// SetMaxResults sets the MaxResults field's value.
7531func (s *DescribeConnectionAliasPermissionsInput) SetMaxResults(v int64) *DescribeConnectionAliasPermissionsInput {
7532	s.MaxResults = &v
7533	return s
7534}
7535
7536// SetNextToken sets the NextToken field's value.
7537func (s *DescribeConnectionAliasPermissionsInput) SetNextToken(v string) *DescribeConnectionAliasPermissionsInput {
7538	s.NextToken = &v
7539	return s
7540}
7541
7542type DescribeConnectionAliasPermissionsOutput struct {
7543	_ struct{} `type:"structure"`
7544
7545	// The identifier of the connection alias.
7546	AliasId *string `min:"13" type:"string"`
7547
7548	// The permissions associated with a connection alias.
7549	ConnectionAliasPermissions []*ConnectionAliasPermission `min:"1" type:"list"`
7550
7551	// The token to use to retrieve the next page of results. This value is null
7552	// when there are no more results to return.
7553	NextToken *string `min:"1" type:"string"`
7554}
7555
7556// String returns the string representation.
7557//
7558// API parameter values that are decorated as "sensitive" in the API will not
7559// be included in the string output. The member name will be present, but the
7560// value will be replaced with "sensitive".
7561func (s DescribeConnectionAliasPermissionsOutput) String() string {
7562	return awsutil.Prettify(s)
7563}
7564
7565// GoString returns the string representation.
7566//
7567// API parameter values that are decorated as "sensitive" in the API will not
7568// be included in the string output. The member name will be present, but the
7569// value will be replaced with "sensitive".
7570func (s DescribeConnectionAliasPermissionsOutput) GoString() string {
7571	return s.String()
7572}
7573
7574// SetAliasId sets the AliasId field's value.
7575func (s *DescribeConnectionAliasPermissionsOutput) SetAliasId(v string) *DescribeConnectionAliasPermissionsOutput {
7576	s.AliasId = &v
7577	return s
7578}
7579
7580// SetConnectionAliasPermissions sets the ConnectionAliasPermissions field's value.
7581func (s *DescribeConnectionAliasPermissionsOutput) SetConnectionAliasPermissions(v []*ConnectionAliasPermission) *DescribeConnectionAliasPermissionsOutput {
7582	s.ConnectionAliasPermissions = v
7583	return s
7584}
7585
7586// SetNextToken sets the NextToken field's value.
7587func (s *DescribeConnectionAliasPermissionsOutput) SetNextToken(v string) *DescribeConnectionAliasPermissionsOutput {
7588	s.NextToken = &v
7589	return s
7590}
7591
7592type DescribeConnectionAliasesInput struct {
7593	_ struct{} `type:"structure"`
7594
7595	// The identifiers of the connection aliases to describe.
7596	AliasIds []*string `min:"1" type:"list"`
7597
7598	// The maximum number of connection aliases to return.
7599	Limit *int64 `min:"1" type:"integer"`
7600
7601	// If you received a NextToken from a previous call that was paginated, provide
7602	// this token to receive the next set of results.
7603	NextToken *string `min:"1" type:"string"`
7604
7605	// The identifier of the directory associated with the connection alias.
7606	ResourceId *string `min:"1" type:"string"`
7607}
7608
7609// String returns the string representation.
7610//
7611// API parameter values that are decorated as "sensitive" in the API will not
7612// be included in the string output. The member name will be present, but the
7613// value will be replaced with "sensitive".
7614func (s DescribeConnectionAliasesInput) String() string {
7615	return awsutil.Prettify(s)
7616}
7617
7618// GoString returns the string representation.
7619//
7620// API parameter values that are decorated as "sensitive" in the API will not
7621// be included in the string output. The member name will be present, but the
7622// value will be replaced with "sensitive".
7623func (s DescribeConnectionAliasesInput) GoString() string {
7624	return s.String()
7625}
7626
7627// Validate inspects the fields of the type to determine if they are valid.
7628func (s *DescribeConnectionAliasesInput) Validate() error {
7629	invalidParams := request.ErrInvalidParams{Context: "DescribeConnectionAliasesInput"}
7630	if s.AliasIds != nil && len(s.AliasIds) < 1 {
7631		invalidParams.Add(request.NewErrParamMinLen("AliasIds", 1))
7632	}
7633	if s.Limit != nil && *s.Limit < 1 {
7634		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
7635	}
7636	if s.NextToken != nil && len(*s.NextToken) < 1 {
7637		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7638	}
7639	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
7640		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
7641	}
7642
7643	if invalidParams.Len() > 0 {
7644		return invalidParams
7645	}
7646	return nil
7647}
7648
7649// SetAliasIds sets the AliasIds field's value.
7650func (s *DescribeConnectionAliasesInput) SetAliasIds(v []*string) *DescribeConnectionAliasesInput {
7651	s.AliasIds = v
7652	return s
7653}
7654
7655// SetLimit sets the Limit field's value.
7656func (s *DescribeConnectionAliasesInput) SetLimit(v int64) *DescribeConnectionAliasesInput {
7657	s.Limit = &v
7658	return s
7659}
7660
7661// SetNextToken sets the NextToken field's value.
7662func (s *DescribeConnectionAliasesInput) SetNextToken(v string) *DescribeConnectionAliasesInput {
7663	s.NextToken = &v
7664	return s
7665}
7666
7667// SetResourceId sets the ResourceId field's value.
7668func (s *DescribeConnectionAliasesInput) SetResourceId(v string) *DescribeConnectionAliasesInput {
7669	s.ResourceId = &v
7670	return s
7671}
7672
7673type DescribeConnectionAliasesOutput struct {
7674	_ struct{} `type:"structure"`
7675
7676	// Information about the specified connection aliases.
7677	ConnectionAliases []*ConnectionAlias `min:"1" type:"list"`
7678
7679	// The token to use to retrieve the next page of results. This value is null
7680	// when there are no more results to return.
7681	NextToken *string `min:"1" type:"string"`
7682}
7683
7684// String returns the string representation.
7685//
7686// API parameter values that are decorated as "sensitive" in the API will not
7687// be included in the string output. The member name will be present, but the
7688// value will be replaced with "sensitive".
7689func (s DescribeConnectionAliasesOutput) String() string {
7690	return awsutil.Prettify(s)
7691}
7692
7693// GoString returns the string representation.
7694//
7695// API parameter values that are decorated as "sensitive" in the API will not
7696// be included in the string output. The member name will be present, but the
7697// value will be replaced with "sensitive".
7698func (s DescribeConnectionAliasesOutput) GoString() string {
7699	return s.String()
7700}
7701
7702// SetConnectionAliases sets the ConnectionAliases field's value.
7703func (s *DescribeConnectionAliasesOutput) SetConnectionAliases(v []*ConnectionAlias) *DescribeConnectionAliasesOutput {
7704	s.ConnectionAliases = v
7705	return s
7706}
7707
7708// SetNextToken sets the NextToken field's value.
7709func (s *DescribeConnectionAliasesOutput) SetNextToken(v string) *DescribeConnectionAliasesOutput {
7710	s.NextToken = &v
7711	return s
7712}
7713
7714type DescribeIpGroupsInput struct {
7715	_ struct{} `type:"structure"`
7716
7717	// The identifiers of one or more IP access control groups.
7718	GroupIds []*string `type:"list"`
7719
7720	// The maximum number of items to return.
7721	MaxResults *int64 `min:"1" type:"integer"`
7722
7723	// If you received a NextToken from a previous call that was paginated, provide
7724	// this token to receive the next set of results.
7725	NextToken *string `min:"1" type:"string"`
7726}
7727
7728// String returns the string representation.
7729//
7730// API parameter values that are decorated as "sensitive" in the API will not
7731// be included in the string output. The member name will be present, but the
7732// value will be replaced with "sensitive".
7733func (s DescribeIpGroupsInput) String() string {
7734	return awsutil.Prettify(s)
7735}
7736
7737// GoString returns the string representation.
7738//
7739// API parameter values that are decorated as "sensitive" in the API will not
7740// be included in the string output. The member name will be present, but the
7741// value will be replaced with "sensitive".
7742func (s DescribeIpGroupsInput) GoString() string {
7743	return s.String()
7744}
7745
7746// Validate inspects the fields of the type to determine if they are valid.
7747func (s *DescribeIpGroupsInput) Validate() error {
7748	invalidParams := request.ErrInvalidParams{Context: "DescribeIpGroupsInput"}
7749	if s.MaxResults != nil && *s.MaxResults < 1 {
7750		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
7751	}
7752	if s.NextToken != nil && len(*s.NextToken) < 1 {
7753		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7754	}
7755
7756	if invalidParams.Len() > 0 {
7757		return invalidParams
7758	}
7759	return nil
7760}
7761
7762// SetGroupIds sets the GroupIds field's value.
7763func (s *DescribeIpGroupsInput) SetGroupIds(v []*string) *DescribeIpGroupsInput {
7764	s.GroupIds = v
7765	return s
7766}
7767
7768// SetMaxResults sets the MaxResults field's value.
7769func (s *DescribeIpGroupsInput) SetMaxResults(v int64) *DescribeIpGroupsInput {
7770	s.MaxResults = &v
7771	return s
7772}
7773
7774// SetNextToken sets the NextToken field's value.
7775func (s *DescribeIpGroupsInput) SetNextToken(v string) *DescribeIpGroupsInput {
7776	s.NextToken = &v
7777	return s
7778}
7779
7780type DescribeIpGroupsOutput struct {
7781	_ struct{} `type:"structure"`
7782
7783	// The token to use to retrieve the next page of results. This value is null
7784	// when there are no more results to return.
7785	NextToken *string `min:"1" type:"string"`
7786
7787	// Information about the IP access control groups.
7788	Result []*IpGroup `type:"list"`
7789}
7790
7791// String returns the string representation.
7792//
7793// API parameter values that are decorated as "sensitive" in the API will not
7794// be included in the string output. The member name will be present, but the
7795// value will be replaced with "sensitive".
7796func (s DescribeIpGroupsOutput) String() string {
7797	return awsutil.Prettify(s)
7798}
7799
7800// GoString returns the string representation.
7801//
7802// API parameter values that are decorated as "sensitive" in the API will not
7803// be included in the string output. The member name will be present, but the
7804// value will be replaced with "sensitive".
7805func (s DescribeIpGroupsOutput) GoString() string {
7806	return s.String()
7807}
7808
7809// SetNextToken sets the NextToken field's value.
7810func (s *DescribeIpGroupsOutput) SetNextToken(v string) *DescribeIpGroupsOutput {
7811	s.NextToken = &v
7812	return s
7813}
7814
7815// SetResult sets the Result field's value.
7816func (s *DescribeIpGroupsOutput) SetResult(v []*IpGroup) *DescribeIpGroupsOutput {
7817	s.Result = v
7818	return s
7819}
7820
7821type DescribeTagsInput struct {
7822	_ struct{} `type:"structure"`
7823
7824	// The identifier of the WorkSpaces resource. The supported resource types are
7825	// WorkSpaces, registered directories, images, custom bundles, IP access control
7826	// groups, and connection aliases.
7827	//
7828	// ResourceId is a required field
7829	ResourceId *string `min:"1" type:"string" required:"true"`
7830}
7831
7832// String returns the string representation.
7833//
7834// API parameter values that are decorated as "sensitive" in the API will not
7835// be included in the string output. The member name will be present, but the
7836// value will be replaced with "sensitive".
7837func (s DescribeTagsInput) String() string {
7838	return awsutil.Prettify(s)
7839}
7840
7841// GoString returns the string representation.
7842//
7843// API parameter values that are decorated as "sensitive" in the API will not
7844// be included in the string output. The member name will be present, but the
7845// value will be replaced with "sensitive".
7846func (s DescribeTagsInput) GoString() string {
7847	return s.String()
7848}
7849
7850// Validate inspects the fields of the type to determine if they are valid.
7851func (s *DescribeTagsInput) Validate() error {
7852	invalidParams := request.ErrInvalidParams{Context: "DescribeTagsInput"}
7853	if s.ResourceId == nil {
7854		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
7855	}
7856	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
7857		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
7858	}
7859
7860	if invalidParams.Len() > 0 {
7861		return invalidParams
7862	}
7863	return nil
7864}
7865
7866// SetResourceId sets the ResourceId field's value.
7867func (s *DescribeTagsInput) SetResourceId(v string) *DescribeTagsInput {
7868	s.ResourceId = &v
7869	return s
7870}
7871
7872type DescribeTagsOutput struct {
7873	_ struct{} `type:"structure"`
7874
7875	// The tags.
7876	TagList []*Tag `type:"list"`
7877}
7878
7879// String returns the string representation.
7880//
7881// API parameter values that are decorated as "sensitive" in the API will not
7882// be included in the string output. The member name will be present, but the
7883// value will be replaced with "sensitive".
7884func (s DescribeTagsOutput) String() string {
7885	return awsutil.Prettify(s)
7886}
7887
7888// GoString returns the string representation.
7889//
7890// API parameter values that are decorated as "sensitive" in the API will not
7891// be included in the string output. The member name will be present, but the
7892// value will be replaced with "sensitive".
7893func (s DescribeTagsOutput) GoString() string {
7894	return s.String()
7895}
7896
7897// SetTagList sets the TagList field's value.
7898func (s *DescribeTagsOutput) SetTagList(v []*Tag) *DescribeTagsOutput {
7899	s.TagList = v
7900	return s
7901}
7902
7903type DescribeWorkspaceBundlesInput struct {
7904	_ struct{} `type:"structure"`
7905
7906	// The identifiers of the bundles. You cannot combine this parameter with any
7907	// other filter.
7908	BundleIds []*string `min:"1" type:"list"`
7909
7910	// The token for the next set of results. (You received this token from a previous
7911	// call.)
7912	NextToken *string `min:"1" type:"string"`
7913
7914	// The owner of the bundles. You cannot combine this parameter with any other
7915	// filter.
7916	//
7917	// To describe the bundles provided by Amazon Web Services, specify AMAZON.
7918	// To describe the bundles that belong to your account, don't specify a value.
7919	Owner *string `type:"string"`
7920}
7921
7922// String returns the string representation.
7923//
7924// API parameter values that are decorated as "sensitive" in the API will not
7925// be included in the string output. The member name will be present, but the
7926// value will be replaced with "sensitive".
7927func (s DescribeWorkspaceBundlesInput) String() string {
7928	return awsutil.Prettify(s)
7929}
7930
7931// GoString returns the string representation.
7932//
7933// API parameter values that are decorated as "sensitive" in the API will not
7934// be included in the string output. The member name will be present, but the
7935// value will be replaced with "sensitive".
7936func (s DescribeWorkspaceBundlesInput) GoString() string {
7937	return s.String()
7938}
7939
7940// Validate inspects the fields of the type to determine if they are valid.
7941func (s *DescribeWorkspaceBundlesInput) Validate() error {
7942	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceBundlesInput"}
7943	if s.BundleIds != nil && len(s.BundleIds) < 1 {
7944		invalidParams.Add(request.NewErrParamMinLen("BundleIds", 1))
7945	}
7946	if s.NextToken != nil && len(*s.NextToken) < 1 {
7947		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7948	}
7949
7950	if invalidParams.Len() > 0 {
7951		return invalidParams
7952	}
7953	return nil
7954}
7955
7956// SetBundleIds sets the BundleIds field's value.
7957func (s *DescribeWorkspaceBundlesInput) SetBundleIds(v []*string) *DescribeWorkspaceBundlesInput {
7958	s.BundleIds = v
7959	return s
7960}
7961
7962// SetNextToken sets the NextToken field's value.
7963func (s *DescribeWorkspaceBundlesInput) SetNextToken(v string) *DescribeWorkspaceBundlesInput {
7964	s.NextToken = &v
7965	return s
7966}
7967
7968// SetOwner sets the Owner field's value.
7969func (s *DescribeWorkspaceBundlesInput) SetOwner(v string) *DescribeWorkspaceBundlesInput {
7970	s.Owner = &v
7971	return s
7972}
7973
7974type DescribeWorkspaceBundlesOutput struct {
7975	_ struct{} `type:"structure"`
7976
7977	// Information about the bundles.
7978	Bundles []*WorkspaceBundle `type:"list"`
7979
7980	// The token to use to retrieve the next page of results. This value is null
7981	// when there are no more results to return. This token is valid for one day
7982	// and must be used within that time frame.
7983	NextToken *string `min:"1" type:"string"`
7984}
7985
7986// String returns the string representation.
7987//
7988// API parameter values that are decorated as "sensitive" in the API will not
7989// be included in the string output. The member name will be present, but the
7990// value will be replaced with "sensitive".
7991func (s DescribeWorkspaceBundlesOutput) String() string {
7992	return awsutil.Prettify(s)
7993}
7994
7995// GoString returns the string representation.
7996//
7997// API parameter values that are decorated as "sensitive" in the API will not
7998// be included in the string output. The member name will be present, but the
7999// value will be replaced with "sensitive".
8000func (s DescribeWorkspaceBundlesOutput) GoString() string {
8001	return s.String()
8002}
8003
8004// SetBundles sets the Bundles field's value.
8005func (s *DescribeWorkspaceBundlesOutput) SetBundles(v []*WorkspaceBundle) *DescribeWorkspaceBundlesOutput {
8006	s.Bundles = v
8007	return s
8008}
8009
8010// SetNextToken sets the NextToken field's value.
8011func (s *DescribeWorkspaceBundlesOutput) SetNextToken(v string) *DescribeWorkspaceBundlesOutput {
8012	s.NextToken = &v
8013	return s
8014}
8015
8016type DescribeWorkspaceDirectoriesInput struct {
8017	_ struct{} `type:"structure"`
8018
8019	// The identifiers of the directories. If the value is null, all directories
8020	// are retrieved.
8021	DirectoryIds []*string `min:"1" type:"list"`
8022
8023	// The maximum number of directories to return.
8024	Limit *int64 `min:"1" type:"integer"`
8025
8026	// If you received a NextToken from a previous call that was paginated, provide
8027	// this token to receive the next set of results.
8028	NextToken *string `min:"1" type:"string"`
8029}
8030
8031// String returns the string representation.
8032//
8033// API parameter values that are decorated as "sensitive" in the API will not
8034// be included in the string output. The member name will be present, but the
8035// value will be replaced with "sensitive".
8036func (s DescribeWorkspaceDirectoriesInput) String() string {
8037	return awsutil.Prettify(s)
8038}
8039
8040// GoString returns the string representation.
8041//
8042// API parameter values that are decorated as "sensitive" in the API will not
8043// be included in the string output. The member name will be present, but the
8044// value will be replaced with "sensitive".
8045func (s DescribeWorkspaceDirectoriesInput) GoString() string {
8046	return s.String()
8047}
8048
8049// Validate inspects the fields of the type to determine if they are valid.
8050func (s *DescribeWorkspaceDirectoriesInput) Validate() error {
8051	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceDirectoriesInput"}
8052	if s.DirectoryIds != nil && len(s.DirectoryIds) < 1 {
8053		invalidParams.Add(request.NewErrParamMinLen("DirectoryIds", 1))
8054	}
8055	if s.Limit != nil && *s.Limit < 1 {
8056		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
8057	}
8058	if s.NextToken != nil && len(*s.NextToken) < 1 {
8059		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8060	}
8061
8062	if invalidParams.Len() > 0 {
8063		return invalidParams
8064	}
8065	return nil
8066}
8067
8068// SetDirectoryIds sets the DirectoryIds field's value.
8069func (s *DescribeWorkspaceDirectoriesInput) SetDirectoryIds(v []*string) *DescribeWorkspaceDirectoriesInput {
8070	s.DirectoryIds = v
8071	return s
8072}
8073
8074// SetLimit sets the Limit field's value.
8075func (s *DescribeWorkspaceDirectoriesInput) SetLimit(v int64) *DescribeWorkspaceDirectoriesInput {
8076	s.Limit = &v
8077	return s
8078}
8079
8080// SetNextToken sets the NextToken field's value.
8081func (s *DescribeWorkspaceDirectoriesInput) SetNextToken(v string) *DescribeWorkspaceDirectoriesInput {
8082	s.NextToken = &v
8083	return s
8084}
8085
8086type DescribeWorkspaceDirectoriesOutput struct {
8087	_ struct{} `type:"structure"`
8088
8089	// Information about the directories.
8090	Directories []*WorkspaceDirectory `type:"list"`
8091
8092	// The token to use to retrieve the next page of results. This value is null
8093	// when there are no more results to return.
8094	NextToken *string `min:"1" type:"string"`
8095}
8096
8097// String returns the string representation.
8098//
8099// API parameter values that are decorated as "sensitive" in the API will not
8100// be included in the string output. The member name will be present, but the
8101// value will be replaced with "sensitive".
8102func (s DescribeWorkspaceDirectoriesOutput) String() string {
8103	return awsutil.Prettify(s)
8104}
8105
8106// GoString returns the string representation.
8107//
8108// API parameter values that are decorated as "sensitive" in the API will not
8109// be included in the string output. The member name will be present, but the
8110// value will be replaced with "sensitive".
8111func (s DescribeWorkspaceDirectoriesOutput) GoString() string {
8112	return s.String()
8113}
8114
8115// SetDirectories sets the Directories field's value.
8116func (s *DescribeWorkspaceDirectoriesOutput) SetDirectories(v []*WorkspaceDirectory) *DescribeWorkspaceDirectoriesOutput {
8117	s.Directories = v
8118	return s
8119}
8120
8121// SetNextToken sets the NextToken field's value.
8122func (s *DescribeWorkspaceDirectoriesOutput) SetNextToken(v string) *DescribeWorkspaceDirectoriesOutput {
8123	s.NextToken = &v
8124	return s
8125}
8126
8127type DescribeWorkspaceImagePermissionsInput struct {
8128	_ struct{} `type:"structure"`
8129
8130	// The identifier of the image.
8131	//
8132	// ImageId is a required field
8133	ImageId *string `type:"string" required:"true"`
8134
8135	// The maximum number of items to return.
8136	MaxResults *int64 `min:"1" type:"integer"`
8137
8138	// If you received a NextToken from a previous call that was paginated, provide
8139	// this token to receive the next set of results.
8140	NextToken *string `min:"1" type:"string"`
8141}
8142
8143// String returns the string representation.
8144//
8145// API parameter values that are decorated as "sensitive" in the API will not
8146// be included in the string output. The member name will be present, but the
8147// value will be replaced with "sensitive".
8148func (s DescribeWorkspaceImagePermissionsInput) String() string {
8149	return awsutil.Prettify(s)
8150}
8151
8152// GoString returns the string representation.
8153//
8154// API parameter values that are decorated as "sensitive" in the API will not
8155// be included in the string output. The member name will be present, but the
8156// value will be replaced with "sensitive".
8157func (s DescribeWorkspaceImagePermissionsInput) GoString() string {
8158	return s.String()
8159}
8160
8161// Validate inspects the fields of the type to determine if they are valid.
8162func (s *DescribeWorkspaceImagePermissionsInput) Validate() error {
8163	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceImagePermissionsInput"}
8164	if s.ImageId == nil {
8165		invalidParams.Add(request.NewErrParamRequired("ImageId"))
8166	}
8167	if s.MaxResults != nil && *s.MaxResults < 1 {
8168		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8169	}
8170	if s.NextToken != nil && len(*s.NextToken) < 1 {
8171		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8172	}
8173
8174	if invalidParams.Len() > 0 {
8175		return invalidParams
8176	}
8177	return nil
8178}
8179
8180// SetImageId sets the ImageId field's value.
8181func (s *DescribeWorkspaceImagePermissionsInput) SetImageId(v string) *DescribeWorkspaceImagePermissionsInput {
8182	s.ImageId = &v
8183	return s
8184}
8185
8186// SetMaxResults sets the MaxResults field's value.
8187func (s *DescribeWorkspaceImagePermissionsInput) SetMaxResults(v int64) *DescribeWorkspaceImagePermissionsInput {
8188	s.MaxResults = &v
8189	return s
8190}
8191
8192// SetNextToken sets the NextToken field's value.
8193func (s *DescribeWorkspaceImagePermissionsInput) SetNextToken(v string) *DescribeWorkspaceImagePermissionsInput {
8194	s.NextToken = &v
8195	return s
8196}
8197
8198type DescribeWorkspaceImagePermissionsOutput struct {
8199	_ struct{} `type:"structure"`
8200
8201	// The identifier of the image.
8202	ImageId *string `type:"string"`
8203
8204	// The identifiers of the Amazon Web Services accounts that the image has been
8205	// shared with.
8206	ImagePermissions []*ImagePermission `type:"list"`
8207
8208	// The token to use to retrieve the next page of results. This value is null
8209	// when there are no more results to return.
8210	NextToken *string `min:"1" type:"string"`
8211}
8212
8213// String returns the string representation.
8214//
8215// API parameter values that are decorated as "sensitive" in the API will not
8216// be included in the string output. The member name will be present, but the
8217// value will be replaced with "sensitive".
8218func (s DescribeWorkspaceImagePermissionsOutput) String() string {
8219	return awsutil.Prettify(s)
8220}
8221
8222// GoString returns the string representation.
8223//
8224// API parameter values that are decorated as "sensitive" in the API will not
8225// be included in the string output. The member name will be present, but the
8226// value will be replaced with "sensitive".
8227func (s DescribeWorkspaceImagePermissionsOutput) GoString() string {
8228	return s.String()
8229}
8230
8231// SetImageId sets the ImageId field's value.
8232func (s *DescribeWorkspaceImagePermissionsOutput) SetImageId(v string) *DescribeWorkspaceImagePermissionsOutput {
8233	s.ImageId = &v
8234	return s
8235}
8236
8237// SetImagePermissions sets the ImagePermissions field's value.
8238func (s *DescribeWorkspaceImagePermissionsOutput) SetImagePermissions(v []*ImagePermission) *DescribeWorkspaceImagePermissionsOutput {
8239	s.ImagePermissions = v
8240	return s
8241}
8242
8243// SetNextToken sets the NextToken field's value.
8244func (s *DescribeWorkspaceImagePermissionsOutput) SetNextToken(v string) *DescribeWorkspaceImagePermissionsOutput {
8245	s.NextToken = &v
8246	return s
8247}
8248
8249type DescribeWorkspaceImagesInput struct {
8250	_ struct{} `type:"structure"`
8251
8252	// The identifier of the image.
8253	ImageIds []*string `min:"1" type:"list"`
8254
8255	// The type (owned or shared) of the image.
8256	ImageType *string `type:"string" enum:"ImageType"`
8257
8258	// The maximum number of items to return.
8259	MaxResults *int64 `min:"1" type:"integer"`
8260
8261	// If you received a NextToken from a previous call that was paginated, provide
8262	// this token to receive the next set of results.
8263	NextToken *string `min:"1" type:"string"`
8264}
8265
8266// String returns the string representation.
8267//
8268// API parameter values that are decorated as "sensitive" in the API will not
8269// be included in the string output. The member name will be present, but the
8270// value will be replaced with "sensitive".
8271func (s DescribeWorkspaceImagesInput) String() string {
8272	return awsutil.Prettify(s)
8273}
8274
8275// GoString returns the string representation.
8276//
8277// API parameter values that are decorated as "sensitive" in the API will not
8278// be included in the string output. The member name will be present, but the
8279// value will be replaced with "sensitive".
8280func (s DescribeWorkspaceImagesInput) GoString() string {
8281	return s.String()
8282}
8283
8284// Validate inspects the fields of the type to determine if they are valid.
8285func (s *DescribeWorkspaceImagesInput) Validate() error {
8286	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceImagesInput"}
8287	if s.ImageIds != nil && len(s.ImageIds) < 1 {
8288		invalidParams.Add(request.NewErrParamMinLen("ImageIds", 1))
8289	}
8290	if s.MaxResults != nil && *s.MaxResults < 1 {
8291		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
8292	}
8293	if s.NextToken != nil && len(*s.NextToken) < 1 {
8294		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8295	}
8296
8297	if invalidParams.Len() > 0 {
8298		return invalidParams
8299	}
8300	return nil
8301}
8302
8303// SetImageIds sets the ImageIds field's value.
8304func (s *DescribeWorkspaceImagesInput) SetImageIds(v []*string) *DescribeWorkspaceImagesInput {
8305	s.ImageIds = v
8306	return s
8307}
8308
8309// SetImageType sets the ImageType field's value.
8310func (s *DescribeWorkspaceImagesInput) SetImageType(v string) *DescribeWorkspaceImagesInput {
8311	s.ImageType = &v
8312	return s
8313}
8314
8315// SetMaxResults sets the MaxResults field's value.
8316func (s *DescribeWorkspaceImagesInput) SetMaxResults(v int64) *DescribeWorkspaceImagesInput {
8317	s.MaxResults = &v
8318	return s
8319}
8320
8321// SetNextToken sets the NextToken field's value.
8322func (s *DescribeWorkspaceImagesInput) SetNextToken(v string) *DescribeWorkspaceImagesInput {
8323	s.NextToken = &v
8324	return s
8325}
8326
8327type DescribeWorkspaceImagesOutput struct {
8328	_ struct{} `type:"structure"`
8329
8330	// Information about the images.
8331	Images []*WorkspaceImage `type:"list"`
8332
8333	// The token to use to retrieve the next page of results. This value is null
8334	// when there are no more results to return.
8335	NextToken *string `min:"1" type:"string"`
8336}
8337
8338// String returns the string representation.
8339//
8340// API parameter values that are decorated as "sensitive" in the API will not
8341// be included in the string output. The member name will be present, but the
8342// value will be replaced with "sensitive".
8343func (s DescribeWorkspaceImagesOutput) String() string {
8344	return awsutil.Prettify(s)
8345}
8346
8347// GoString returns the string representation.
8348//
8349// API parameter values that are decorated as "sensitive" in the API will not
8350// be included in the string output. The member name will be present, but the
8351// value will be replaced with "sensitive".
8352func (s DescribeWorkspaceImagesOutput) GoString() string {
8353	return s.String()
8354}
8355
8356// SetImages sets the Images field's value.
8357func (s *DescribeWorkspaceImagesOutput) SetImages(v []*WorkspaceImage) *DescribeWorkspaceImagesOutput {
8358	s.Images = v
8359	return s
8360}
8361
8362// SetNextToken sets the NextToken field's value.
8363func (s *DescribeWorkspaceImagesOutput) SetNextToken(v string) *DescribeWorkspaceImagesOutput {
8364	s.NextToken = &v
8365	return s
8366}
8367
8368type DescribeWorkspaceSnapshotsInput struct {
8369	_ struct{} `type:"structure"`
8370
8371	// The identifier of the WorkSpace.
8372	//
8373	// WorkspaceId is a required field
8374	WorkspaceId *string `type:"string" required:"true"`
8375}
8376
8377// String returns the string representation.
8378//
8379// API parameter values that are decorated as "sensitive" in the API will not
8380// be included in the string output. The member name will be present, but the
8381// value will be replaced with "sensitive".
8382func (s DescribeWorkspaceSnapshotsInput) String() string {
8383	return awsutil.Prettify(s)
8384}
8385
8386// GoString returns the string representation.
8387//
8388// API parameter values that are decorated as "sensitive" in the API will not
8389// be included in the string output. The member name will be present, but the
8390// value will be replaced with "sensitive".
8391func (s DescribeWorkspaceSnapshotsInput) GoString() string {
8392	return s.String()
8393}
8394
8395// Validate inspects the fields of the type to determine if they are valid.
8396func (s *DescribeWorkspaceSnapshotsInput) Validate() error {
8397	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceSnapshotsInput"}
8398	if s.WorkspaceId == nil {
8399		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
8400	}
8401
8402	if invalidParams.Len() > 0 {
8403		return invalidParams
8404	}
8405	return nil
8406}
8407
8408// SetWorkspaceId sets the WorkspaceId field's value.
8409func (s *DescribeWorkspaceSnapshotsInput) SetWorkspaceId(v string) *DescribeWorkspaceSnapshotsInput {
8410	s.WorkspaceId = &v
8411	return s
8412}
8413
8414type DescribeWorkspaceSnapshotsOutput struct {
8415	_ struct{} `type:"structure"`
8416
8417	// Information about the snapshots that can be used to rebuild a WorkSpace.
8418	// These snapshots include the user volume.
8419	RebuildSnapshots []*Snapshot `type:"list"`
8420
8421	// Information about the snapshots that can be used to restore a WorkSpace.
8422	// These snapshots include both the root volume and the user volume.
8423	RestoreSnapshots []*Snapshot `type:"list"`
8424}
8425
8426// String returns the string representation.
8427//
8428// API parameter values that are decorated as "sensitive" in the API will not
8429// be included in the string output. The member name will be present, but the
8430// value will be replaced with "sensitive".
8431func (s DescribeWorkspaceSnapshotsOutput) String() string {
8432	return awsutil.Prettify(s)
8433}
8434
8435// GoString returns the string representation.
8436//
8437// API parameter values that are decorated as "sensitive" in the API will not
8438// be included in the string output. The member name will be present, but the
8439// value will be replaced with "sensitive".
8440func (s DescribeWorkspaceSnapshotsOutput) GoString() string {
8441	return s.String()
8442}
8443
8444// SetRebuildSnapshots sets the RebuildSnapshots field's value.
8445func (s *DescribeWorkspaceSnapshotsOutput) SetRebuildSnapshots(v []*Snapshot) *DescribeWorkspaceSnapshotsOutput {
8446	s.RebuildSnapshots = v
8447	return s
8448}
8449
8450// SetRestoreSnapshots sets the RestoreSnapshots field's value.
8451func (s *DescribeWorkspaceSnapshotsOutput) SetRestoreSnapshots(v []*Snapshot) *DescribeWorkspaceSnapshotsOutput {
8452	s.RestoreSnapshots = v
8453	return s
8454}
8455
8456type DescribeWorkspacesConnectionStatusInput struct {
8457	_ struct{} `type:"structure"`
8458
8459	// If you received a NextToken from a previous call that was paginated, provide
8460	// this token to receive the next set of results.
8461	NextToken *string `min:"1" type:"string"`
8462
8463	// The identifiers of the WorkSpaces. You can specify up to 25 WorkSpaces.
8464	WorkspaceIds []*string `min:"1" type:"list"`
8465}
8466
8467// String returns the string representation.
8468//
8469// API parameter values that are decorated as "sensitive" in the API will not
8470// be included in the string output. The member name will be present, but the
8471// value will be replaced with "sensitive".
8472func (s DescribeWorkspacesConnectionStatusInput) String() string {
8473	return awsutil.Prettify(s)
8474}
8475
8476// GoString returns the string representation.
8477//
8478// API parameter values that are decorated as "sensitive" in the API will not
8479// be included in the string output. The member name will be present, but the
8480// value will be replaced with "sensitive".
8481func (s DescribeWorkspacesConnectionStatusInput) GoString() string {
8482	return s.String()
8483}
8484
8485// Validate inspects the fields of the type to determine if they are valid.
8486func (s *DescribeWorkspacesConnectionStatusInput) Validate() error {
8487	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspacesConnectionStatusInput"}
8488	if s.NextToken != nil && len(*s.NextToken) < 1 {
8489		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8490	}
8491	if s.WorkspaceIds != nil && len(s.WorkspaceIds) < 1 {
8492		invalidParams.Add(request.NewErrParamMinLen("WorkspaceIds", 1))
8493	}
8494
8495	if invalidParams.Len() > 0 {
8496		return invalidParams
8497	}
8498	return nil
8499}
8500
8501// SetNextToken sets the NextToken field's value.
8502func (s *DescribeWorkspacesConnectionStatusInput) SetNextToken(v string) *DescribeWorkspacesConnectionStatusInput {
8503	s.NextToken = &v
8504	return s
8505}
8506
8507// SetWorkspaceIds sets the WorkspaceIds field's value.
8508func (s *DescribeWorkspacesConnectionStatusInput) SetWorkspaceIds(v []*string) *DescribeWorkspacesConnectionStatusInput {
8509	s.WorkspaceIds = v
8510	return s
8511}
8512
8513type DescribeWorkspacesConnectionStatusOutput struct {
8514	_ struct{} `type:"structure"`
8515
8516	// The token to use to retrieve the next page of results. This value is null
8517	// when there are no more results to return.
8518	NextToken *string `min:"1" type:"string"`
8519
8520	// Information about the connection status of the WorkSpace.
8521	WorkspacesConnectionStatus []*WorkspaceConnectionStatus `type:"list"`
8522}
8523
8524// String returns the string representation.
8525//
8526// API parameter values that are decorated as "sensitive" in the API will not
8527// be included in the string output. The member name will be present, but the
8528// value will be replaced with "sensitive".
8529func (s DescribeWorkspacesConnectionStatusOutput) String() string {
8530	return awsutil.Prettify(s)
8531}
8532
8533// GoString returns the string representation.
8534//
8535// API parameter values that are decorated as "sensitive" in the API will not
8536// be included in the string output. The member name will be present, but the
8537// value will be replaced with "sensitive".
8538func (s DescribeWorkspacesConnectionStatusOutput) GoString() string {
8539	return s.String()
8540}
8541
8542// SetNextToken sets the NextToken field's value.
8543func (s *DescribeWorkspacesConnectionStatusOutput) SetNextToken(v string) *DescribeWorkspacesConnectionStatusOutput {
8544	s.NextToken = &v
8545	return s
8546}
8547
8548// SetWorkspacesConnectionStatus sets the WorkspacesConnectionStatus field's value.
8549func (s *DescribeWorkspacesConnectionStatusOutput) SetWorkspacesConnectionStatus(v []*WorkspaceConnectionStatus) *DescribeWorkspacesConnectionStatusOutput {
8550	s.WorkspacesConnectionStatus = v
8551	return s
8552}
8553
8554type DescribeWorkspacesInput struct {
8555	_ struct{} `type:"structure"`
8556
8557	// The identifier of the bundle. All WorkSpaces that are created from this bundle
8558	// are retrieved. You cannot combine this parameter with any other filter.
8559	BundleId *string `type:"string"`
8560
8561	// The identifier of the directory. In addition, you can optionally specify
8562	// a specific directory user (see UserName). You cannot combine this parameter
8563	// with any other filter.
8564	DirectoryId *string `min:"10" type:"string"`
8565
8566	// The maximum number of items to return.
8567	Limit *int64 `min:"1" type:"integer"`
8568
8569	// If you received a NextToken from a previous call that was paginated, provide
8570	// this token to receive the next set of results.
8571	NextToken *string `min:"1" type:"string"`
8572
8573	// The name of the directory user. You must specify this parameter with DirectoryId.
8574	UserName *string `min:"1" type:"string"`
8575
8576	// The identifiers of the WorkSpaces. You cannot combine this parameter with
8577	// any other filter.
8578	//
8579	// Because the CreateWorkspaces operation is asynchronous, the identifier it
8580	// returns is not immediately available. If you immediately call DescribeWorkspaces
8581	// with this identifier, no information is returned.
8582	WorkspaceIds []*string `min:"1" type:"list"`
8583}
8584
8585// String returns the string representation.
8586//
8587// API parameter values that are decorated as "sensitive" in the API will not
8588// be included in the string output. The member name will be present, but the
8589// value will be replaced with "sensitive".
8590func (s DescribeWorkspacesInput) String() string {
8591	return awsutil.Prettify(s)
8592}
8593
8594// GoString returns the string representation.
8595//
8596// API parameter values that are decorated as "sensitive" in the API will not
8597// be included in the string output. The member name will be present, but the
8598// value will be replaced with "sensitive".
8599func (s DescribeWorkspacesInput) GoString() string {
8600	return s.String()
8601}
8602
8603// Validate inspects the fields of the type to determine if they are valid.
8604func (s *DescribeWorkspacesInput) Validate() error {
8605	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspacesInput"}
8606	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
8607		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
8608	}
8609	if s.Limit != nil && *s.Limit < 1 {
8610		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
8611	}
8612	if s.NextToken != nil && len(*s.NextToken) < 1 {
8613		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8614	}
8615	if s.UserName != nil && len(*s.UserName) < 1 {
8616		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
8617	}
8618	if s.WorkspaceIds != nil && len(s.WorkspaceIds) < 1 {
8619		invalidParams.Add(request.NewErrParamMinLen("WorkspaceIds", 1))
8620	}
8621
8622	if invalidParams.Len() > 0 {
8623		return invalidParams
8624	}
8625	return nil
8626}
8627
8628// SetBundleId sets the BundleId field's value.
8629func (s *DescribeWorkspacesInput) SetBundleId(v string) *DescribeWorkspacesInput {
8630	s.BundleId = &v
8631	return s
8632}
8633
8634// SetDirectoryId sets the DirectoryId field's value.
8635func (s *DescribeWorkspacesInput) SetDirectoryId(v string) *DescribeWorkspacesInput {
8636	s.DirectoryId = &v
8637	return s
8638}
8639
8640// SetLimit sets the Limit field's value.
8641func (s *DescribeWorkspacesInput) SetLimit(v int64) *DescribeWorkspacesInput {
8642	s.Limit = &v
8643	return s
8644}
8645
8646// SetNextToken sets the NextToken field's value.
8647func (s *DescribeWorkspacesInput) SetNextToken(v string) *DescribeWorkspacesInput {
8648	s.NextToken = &v
8649	return s
8650}
8651
8652// SetUserName sets the UserName field's value.
8653func (s *DescribeWorkspacesInput) SetUserName(v string) *DescribeWorkspacesInput {
8654	s.UserName = &v
8655	return s
8656}
8657
8658// SetWorkspaceIds sets the WorkspaceIds field's value.
8659func (s *DescribeWorkspacesInput) SetWorkspaceIds(v []*string) *DescribeWorkspacesInput {
8660	s.WorkspaceIds = v
8661	return s
8662}
8663
8664type DescribeWorkspacesOutput struct {
8665	_ struct{} `type:"structure"`
8666
8667	// The token to use to retrieve the next page of results. This value is null
8668	// when there are no more results to return.
8669	NextToken *string `min:"1" type:"string"`
8670
8671	// Information about the WorkSpaces.
8672	//
8673	// Because CreateWorkspaces is an asynchronous operation, some of the returned
8674	// information could be incomplete.
8675	Workspaces []*Workspace `type:"list"`
8676}
8677
8678// String returns the string representation.
8679//
8680// API parameter values that are decorated as "sensitive" in the API will not
8681// be included in the string output. The member name will be present, but the
8682// value will be replaced with "sensitive".
8683func (s DescribeWorkspacesOutput) String() string {
8684	return awsutil.Prettify(s)
8685}
8686
8687// GoString returns the string representation.
8688//
8689// API parameter values that are decorated as "sensitive" in the API will not
8690// be included in the string output. The member name will be present, but the
8691// value will be replaced with "sensitive".
8692func (s DescribeWorkspacesOutput) GoString() string {
8693	return s.String()
8694}
8695
8696// SetNextToken sets the NextToken field's value.
8697func (s *DescribeWorkspacesOutput) SetNextToken(v string) *DescribeWorkspacesOutput {
8698	s.NextToken = &v
8699	return s
8700}
8701
8702// SetWorkspaces sets the Workspaces field's value.
8703func (s *DescribeWorkspacesOutput) SetWorkspaces(v []*Workspace) *DescribeWorkspacesOutput {
8704	s.Workspaces = v
8705	return s
8706}
8707
8708type DisassociateConnectionAliasInput struct {
8709	_ struct{} `type:"structure"`
8710
8711	// The identifier of the connection alias to disassociate.
8712	//
8713	// AliasId is a required field
8714	AliasId *string `min:"13" type:"string" required:"true"`
8715}
8716
8717// String returns the string representation.
8718//
8719// API parameter values that are decorated as "sensitive" in the API will not
8720// be included in the string output. The member name will be present, but the
8721// value will be replaced with "sensitive".
8722func (s DisassociateConnectionAliasInput) String() string {
8723	return awsutil.Prettify(s)
8724}
8725
8726// GoString returns the string representation.
8727//
8728// API parameter values that are decorated as "sensitive" in the API will not
8729// be included in the string output. The member name will be present, but the
8730// value will be replaced with "sensitive".
8731func (s DisassociateConnectionAliasInput) GoString() string {
8732	return s.String()
8733}
8734
8735// Validate inspects the fields of the type to determine if they are valid.
8736func (s *DisassociateConnectionAliasInput) Validate() error {
8737	invalidParams := request.ErrInvalidParams{Context: "DisassociateConnectionAliasInput"}
8738	if s.AliasId == nil {
8739		invalidParams.Add(request.NewErrParamRequired("AliasId"))
8740	}
8741	if s.AliasId != nil && len(*s.AliasId) < 13 {
8742		invalidParams.Add(request.NewErrParamMinLen("AliasId", 13))
8743	}
8744
8745	if invalidParams.Len() > 0 {
8746		return invalidParams
8747	}
8748	return nil
8749}
8750
8751// SetAliasId sets the AliasId field's value.
8752func (s *DisassociateConnectionAliasInput) SetAliasId(v string) *DisassociateConnectionAliasInput {
8753	s.AliasId = &v
8754	return s
8755}
8756
8757type DisassociateConnectionAliasOutput struct {
8758	_ struct{} `type:"structure"`
8759}
8760
8761// String returns the string representation.
8762//
8763// API parameter values that are decorated as "sensitive" in the API will not
8764// be included in the string output. The member name will be present, but the
8765// value will be replaced with "sensitive".
8766func (s DisassociateConnectionAliasOutput) String() string {
8767	return awsutil.Prettify(s)
8768}
8769
8770// GoString returns the string representation.
8771//
8772// API parameter values that are decorated as "sensitive" in the API will not
8773// be included in the string output. The member name will be present, but the
8774// value will be replaced with "sensitive".
8775func (s DisassociateConnectionAliasOutput) GoString() string {
8776	return s.String()
8777}
8778
8779type DisassociateIpGroupsInput struct {
8780	_ struct{} `type:"structure"`
8781
8782	// The identifier of the directory.
8783	//
8784	// DirectoryId is a required field
8785	DirectoryId *string `min:"10" type:"string" required:"true"`
8786
8787	// The identifiers of one or more IP access control groups.
8788	//
8789	// GroupIds is a required field
8790	GroupIds []*string `type:"list" required:"true"`
8791}
8792
8793// String returns the string representation.
8794//
8795// API parameter values that are decorated as "sensitive" in the API will not
8796// be included in the string output. The member name will be present, but the
8797// value will be replaced with "sensitive".
8798func (s DisassociateIpGroupsInput) String() string {
8799	return awsutil.Prettify(s)
8800}
8801
8802// GoString returns the string representation.
8803//
8804// API parameter values that are decorated as "sensitive" in the API will not
8805// be included in the string output. The member name will be present, but the
8806// value will be replaced with "sensitive".
8807func (s DisassociateIpGroupsInput) GoString() string {
8808	return s.String()
8809}
8810
8811// Validate inspects the fields of the type to determine if they are valid.
8812func (s *DisassociateIpGroupsInput) Validate() error {
8813	invalidParams := request.ErrInvalidParams{Context: "DisassociateIpGroupsInput"}
8814	if s.DirectoryId == nil {
8815		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8816	}
8817	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
8818		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
8819	}
8820	if s.GroupIds == nil {
8821		invalidParams.Add(request.NewErrParamRequired("GroupIds"))
8822	}
8823
8824	if invalidParams.Len() > 0 {
8825		return invalidParams
8826	}
8827	return nil
8828}
8829
8830// SetDirectoryId sets the DirectoryId field's value.
8831func (s *DisassociateIpGroupsInput) SetDirectoryId(v string) *DisassociateIpGroupsInput {
8832	s.DirectoryId = &v
8833	return s
8834}
8835
8836// SetGroupIds sets the GroupIds field's value.
8837func (s *DisassociateIpGroupsInput) SetGroupIds(v []*string) *DisassociateIpGroupsInput {
8838	s.GroupIds = v
8839	return s
8840}
8841
8842type DisassociateIpGroupsOutput struct {
8843	_ struct{} `type:"structure"`
8844}
8845
8846// String returns the string representation.
8847//
8848// API parameter values that are decorated as "sensitive" in the API will not
8849// be included in the string output. The member name will be present, but the
8850// value will be replaced with "sensitive".
8851func (s DisassociateIpGroupsOutput) String() string {
8852	return awsutil.Prettify(s)
8853}
8854
8855// GoString returns the string representation.
8856//
8857// API parameter values that are decorated as "sensitive" in the API will not
8858// be included in the string output. The member name will be present, but the
8859// value will be replaced with "sensitive".
8860func (s DisassociateIpGroupsOutput) GoString() string {
8861	return s.String()
8862}
8863
8864// Describes a WorkSpace that cannot be created.
8865type FailedCreateWorkspaceRequest struct {
8866	_ struct{} `type:"structure"`
8867
8868	// The error code that is returned if the WorkSpace cannot be created.
8869	ErrorCode *string `type:"string"`
8870
8871	// The text of the error message that is returned if the WorkSpace cannot be
8872	// created.
8873	ErrorMessage *string `type:"string"`
8874
8875	// Information about the WorkSpace.
8876	WorkspaceRequest *WorkspaceRequest `type:"structure"`
8877}
8878
8879// String returns the string representation.
8880//
8881// API parameter values that are decorated as "sensitive" in the API will not
8882// be included in the string output. The member name will be present, but the
8883// value will be replaced with "sensitive".
8884func (s FailedCreateWorkspaceRequest) String() string {
8885	return awsutil.Prettify(s)
8886}
8887
8888// GoString returns the string representation.
8889//
8890// API parameter values that are decorated as "sensitive" in the API will not
8891// be included in the string output. The member name will be present, but the
8892// value will be replaced with "sensitive".
8893func (s FailedCreateWorkspaceRequest) GoString() string {
8894	return s.String()
8895}
8896
8897// SetErrorCode sets the ErrorCode field's value.
8898func (s *FailedCreateWorkspaceRequest) SetErrorCode(v string) *FailedCreateWorkspaceRequest {
8899	s.ErrorCode = &v
8900	return s
8901}
8902
8903// SetErrorMessage sets the ErrorMessage field's value.
8904func (s *FailedCreateWorkspaceRequest) SetErrorMessage(v string) *FailedCreateWorkspaceRequest {
8905	s.ErrorMessage = &v
8906	return s
8907}
8908
8909// SetWorkspaceRequest sets the WorkspaceRequest field's value.
8910func (s *FailedCreateWorkspaceRequest) SetWorkspaceRequest(v *WorkspaceRequest) *FailedCreateWorkspaceRequest {
8911	s.WorkspaceRequest = v
8912	return s
8913}
8914
8915// Describes a WorkSpace that could not be rebooted. (RebootWorkspaces), rebuilt
8916// (RebuildWorkspaces), restored (RestoreWorkspace), terminated (TerminateWorkspaces),
8917// started (StartWorkspaces), or stopped (StopWorkspaces).
8918type FailedWorkspaceChangeRequest struct {
8919	_ struct{} `type:"structure"`
8920
8921	// The error code that is returned if the WorkSpace cannot be rebooted.
8922	ErrorCode *string `type:"string"`
8923
8924	// The text of the error message that is returned if the WorkSpace cannot be
8925	// rebooted.
8926	ErrorMessage *string `type:"string"`
8927
8928	// The identifier of the WorkSpace.
8929	WorkspaceId *string `type:"string"`
8930}
8931
8932// String returns the string representation.
8933//
8934// API parameter values that are decorated as "sensitive" in the API will not
8935// be included in the string output. The member name will be present, but the
8936// value will be replaced with "sensitive".
8937func (s FailedWorkspaceChangeRequest) String() string {
8938	return awsutil.Prettify(s)
8939}
8940
8941// GoString returns the string representation.
8942//
8943// API parameter values that are decorated as "sensitive" in the API will not
8944// be included in the string output. The member name will be present, but the
8945// value will be replaced with "sensitive".
8946func (s FailedWorkspaceChangeRequest) GoString() string {
8947	return s.String()
8948}
8949
8950// SetErrorCode sets the ErrorCode field's value.
8951func (s *FailedWorkspaceChangeRequest) SetErrorCode(v string) *FailedWorkspaceChangeRequest {
8952	s.ErrorCode = &v
8953	return s
8954}
8955
8956// SetErrorMessage sets the ErrorMessage field's value.
8957func (s *FailedWorkspaceChangeRequest) SetErrorMessage(v string) *FailedWorkspaceChangeRequest {
8958	s.ErrorMessage = &v
8959	return s
8960}
8961
8962// SetWorkspaceId sets the WorkspaceId field's value.
8963func (s *FailedWorkspaceChangeRequest) SetWorkspaceId(v string) *FailedWorkspaceChangeRequest {
8964	s.WorkspaceId = &v
8965	return s
8966}
8967
8968// Describes the Amazon Web Services accounts that have been granted permission
8969// to use a shared image. For more information about sharing images, see Share
8970// or Unshare a Custom WorkSpaces Image (https://docs.aws.amazon.com/workspaces/latest/adminguide/share-custom-image.html).
8971type ImagePermission struct {
8972	_ struct{} `type:"structure"`
8973
8974	// The identifier of the Amazon Web Services account that an image has been
8975	// shared with.
8976	SharedAccountId *string `type:"string"`
8977}
8978
8979// String returns the string representation.
8980//
8981// API parameter values that are decorated as "sensitive" in the API will not
8982// be included in the string output. The member name will be present, but the
8983// value will be replaced with "sensitive".
8984func (s ImagePermission) String() string {
8985	return awsutil.Prettify(s)
8986}
8987
8988// GoString returns the string representation.
8989//
8990// API parameter values that are decorated as "sensitive" in the API will not
8991// be included in the string output. The member name will be present, but the
8992// value will be replaced with "sensitive".
8993func (s ImagePermission) GoString() string {
8994	return s.String()
8995}
8996
8997// SetSharedAccountId sets the SharedAccountId field's value.
8998func (s *ImagePermission) SetSharedAccountId(v string) *ImagePermission {
8999	s.SharedAccountId = &v
9000	return s
9001}
9002
9003type ImportWorkspaceImageInput struct {
9004	_ struct{} `type:"structure"`
9005
9006	// If specified, the version of Microsoft Office to subscribe to. Valid only
9007	// for Windows 10 BYOL images. For more information about subscribing to Office
9008	// for BYOL images, see Bring Your Own Windows Desktop Licenses (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
9009	//
9010	// Although this parameter is an array, only one item is allowed at this time.
9011	Applications []*string `min:"1" type:"list"`
9012
9013	// The identifier of the EC2 image.
9014	//
9015	// Ec2ImageId is a required field
9016	Ec2ImageId *string `type:"string" required:"true"`
9017
9018	// The description of the WorkSpace image.
9019	//
9020	// ImageDescription is a required field
9021	ImageDescription *string `min:"1" type:"string" required:"true"`
9022
9023	// The name of the WorkSpace image.
9024	//
9025	// ImageName is a required field
9026	ImageName *string `min:"1" type:"string" required:"true"`
9027
9028	// The ingestion process to be used when importing the image, depending on which
9029	// protocol you want to use for your BYOL Workspace image, either PCoIP or WorkSpaces
9030	// Streaming Protocol (WSP). To use WSP, specify a value that ends in _WSP.
9031	// To use PCoIP, specify a value that does not end in _WSP.
9032	//
9033	// For non-GPU-enabled bundles (bundles other than Graphics or GraphicsPro),
9034	// specify BYOL_REGULAR or BYOL_REGULAR_WSP, depending on the protocol.
9035	//
9036	// IngestionProcess is a required field
9037	IngestionProcess *string `type:"string" required:"true" enum:"WorkspaceImageIngestionProcess"`
9038
9039	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
9040	Tags []*Tag `type:"list"`
9041}
9042
9043// String returns the string representation.
9044//
9045// API parameter values that are decorated as "sensitive" in the API will not
9046// be included in the string output. The member name will be present, but the
9047// value will be replaced with "sensitive".
9048func (s ImportWorkspaceImageInput) String() string {
9049	return awsutil.Prettify(s)
9050}
9051
9052// GoString returns the string representation.
9053//
9054// API parameter values that are decorated as "sensitive" in the API will not
9055// be included in the string output. The member name will be present, but the
9056// value will be replaced with "sensitive".
9057func (s ImportWorkspaceImageInput) GoString() string {
9058	return s.String()
9059}
9060
9061// Validate inspects the fields of the type to determine if they are valid.
9062func (s *ImportWorkspaceImageInput) Validate() error {
9063	invalidParams := request.ErrInvalidParams{Context: "ImportWorkspaceImageInput"}
9064	if s.Applications != nil && len(s.Applications) < 1 {
9065		invalidParams.Add(request.NewErrParamMinLen("Applications", 1))
9066	}
9067	if s.Ec2ImageId == nil {
9068		invalidParams.Add(request.NewErrParamRequired("Ec2ImageId"))
9069	}
9070	if s.ImageDescription == nil {
9071		invalidParams.Add(request.NewErrParamRequired("ImageDescription"))
9072	}
9073	if s.ImageDescription != nil && len(*s.ImageDescription) < 1 {
9074		invalidParams.Add(request.NewErrParamMinLen("ImageDescription", 1))
9075	}
9076	if s.ImageName == nil {
9077		invalidParams.Add(request.NewErrParamRequired("ImageName"))
9078	}
9079	if s.ImageName != nil && len(*s.ImageName) < 1 {
9080		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
9081	}
9082	if s.IngestionProcess == nil {
9083		invalidParams.Add(request.NewErrParamRequired("IngestionProcess"))
9084	}
9085	if s.Tags != nil {
9086		for i, v := range s.Tags {
9087			if v == nil {
9088				continue
9089			}
9090			if err := v.Validate(); err != nil {
9091				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
9092			}
9093		}
9094	}
9095
9096	if invalidParams.Len() > 0 {
9097		return invalidParams
9098	}
9099	return nil
9100}
9101
9102// SetApplications sets the Applications field's value.
9103func (s *ImportWorkspaceImageInput) SetApplications(v []*string) *ImportWorkspaceImageInput {
9104	s.Applications = v
9105	return s
9106}
9107
9108// SetEc2ImageId sets the Ec2ImageId field's value.
9109func (s *ImportWorkspaceImageInput) SetEc2ImageId(v string) *ImportWorkspaceImageInput {
9110	s.Ec2ImageId = &v
9111	return s
9112}
9113
9114// SetImageDescription sets the ImageDescription field's value.
9115func (s *ImportWorkspaceImageInput) SetImageDescription(v string) *ImportWorkspaceImageInput {
9116	s.ImageDescription = &v
9117	return s
9118}
9119
9120// SetImageName sets the ImageName field's value.
9121func (s *ImportWorkspaceImageInput) SetImageName(v string) *ImportWorkspaceImageInput {
9122	s.ImageName = &v
9123	return s
9124}
9125
9126// SetIngestionProcess sets the IngestionProcess field's value.
9127func (s *ImportWorkspaceImageInput) SetIngestionProcess(v string) *ImportWorkspaceImageInput {
9128	s.IngestionProcess = &v
9129	return s
9130}
9131
9132// SetTags sets the Tags field's value.
9133func (s *ImportWorkspaceImageInput) SetTags(v []*Tag) *ImportWorkspaceImageInput {
9134	s.Tags = v
9135	return s
9136}
9137
9138type ImportWorkspaceImageOutput struct {
9139	_ struct{} `type:"structure"`
9140
9141	// The identifier of the WorkSpace image.
9142	ImageId *string `type:"string"`
9143}
9144
9145// String returns the string representation.
9146//
9147// API parameter values that are decorated as "sensitive" in the API will not
9148// be included in the string output. The member name will be present, but the
9149// value will be replaced with "sensitive".
9150func (s ImportWorkspaceImageOutput) String() string {
9151	return awsutil.Prettify(s)
9152}
9153
9154// GoString returns the string representation.
9155//
9156// API parameter values that are decorated as "sensitive" in the API will not
9157// be included in the string output. The member name will be present, but the
9158// value will be replaced with "sensitive".
9159func (s ImportWorkspaceImageOutput) GoString() string {
9160	return s.String()
9161}
9162
9163// SetImageId sets the ImageId field's value.
9164func (s *ImportWorkspaceImageOutput) SetImageId(v string) *ImportWorkspaceImageOutput {
9165	s.ImageId = &v
9166	return s
9167}
9168
9169// One or more parameter values are not valid.
9170type InvalidParameterValuesException struct {
9171	_            struct{}                  `type:"structure"`
9172	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9173
9174	// The exception error message.
9175	Message_ *string `locationName:"message" type:"string"`
9176}
9177
9178// String returns the string representation.
9179//
9180// API parameter values that are decorated as "sensitive" in the API will not
9181// be included in the string output. The member name will be present, but the
9182// value will be replaced with "sensitive".
9183func (s InvalidParameterValuesException) String() string {
9184	return awsutil.Prettify(s)
9185}
9186
9187// GoString returns the string representation.
9188//
9189// API parameter values that are decorated as "sensitive" in the API will not
9190// be included in the string output. The member name will be present, but the
9191// value will be replaced with "sensitive".
9192func (s InvalidParameterValuesException) GoString() string {
9193	return s.String()
9194}
9195
9196func newErrorInvalidParameterValuesException(v protocol.ResponseMetadata) error {
9197	return &InvalidParameterValuesException{
9198		RespMetadata: v,
9199	}
9200}
9201
9202// Code returns the exception type name.
9203func (s *InvalidParameterValuesException) Code() string {
9204	return "InvalidParameterValuesException"
9205}
9206
9207// Message returns the exception's message.
9208func (s *InvalidParameterValuesException) Message() string {
9209	if s.Message_ != nil {
9210		return *s.Message_
9211	}
9212	return ""
9213}
9214
9215// OrigErr always returns nil, satisfies awserr.Error interface.
9216func (s *InvalidParameterValuesException) OrigErr() error {
9217	return nil
9218}
9219
9220func (s *InvalidParameterValuesException) Error() string {
9221	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9222}
9223
9224// Status code returns the HTTP status code for the request's response error.
9225func (s *InvalidParameterValuesException) StatusCode() int {
9226	return s.RespMetadata.StatusCode
9227}
9228
9229// RequestID returns the service's response RequestID for request.
9230func (s *InvalidParameterValuesException) RequestID() string {
9231	return s.RespMetadata.RequestID
9232}
9233
9234// The state of the resource is not valid for this operation.
9235type InvalidResourceStateException struct {
9236	_            struct{}                  `type:"structure"`
9237	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
9238
9239	Message_ *string `locationName:"message" type:"string"`
9240}
9241
9242// String returns the string representation.
9243//
9244// API parameter values that are decorated as "sensitive" in the API will not
9245// be included in the string output. The member name will be present, but the
9246// value will be replaced with "sensitive".
9247func (s InvalidResourceStateException) String() string {
9248	return awsutil.Prettify(s)
9249}
9250
9251// GoString returns the string representation.
9252//
9253// API parameter values that are decorated as "sensitive" in the API will not
9254// be included in the string output. The member name will be present, but the
9255// value will be replaced with "sensitive".
9256func (s InvalidResourceStateException) GoString() string {
9257	return s.String()
9258}
9259
9260func newErrorInvalidResourceStateException(v protocol.ResponseMetadata) error {
9261	return &InvalidResourceStateException{
9262		RespMetadata: v,
9263	}
9264}
9265
9266// Code returns the exception type name.
9267func (s *InvalidResourceStateException) Code() string {
9268	return "InvalidResourceStateException"
9269}
9270
9271// Message returns the exception's message.
9272func (s *InvalidResourceStateException) Message() string {
9273	if s.Message_ != nil {
9274		return *s.Message_
9275	}
9276	return ""
9277}
9278
9279// OrigErr always returns nil, satisfies awserr.Error interface.
9280func (s *InvalidResourceStateException) OrigErr() error {
9281	return nil
9282}
9283
9284func (s *InvalidResourceStateException) Error() string {
9285	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
9286}
9287
9288// Status code returns the HTTP status code for the request's response error.
9289func (s *InvalidResourceStateException) StatusCode() int {
9290	return s.RespMetadata.StatusCode
9291}
9292
9293// RequestID returns the service's response RequestID for request.
9294func (s *InvalidResourceStateException) RequestID() string {
9295	return s.RespMetadata.RequestID
9296}
9297
9298// Describes an IP access control group.
9299type IpGroup struct {
9300	_ struct{} `type:"structure"`
9301
9302	// The description of the group.
9303	GroupDesc *string `locationName:"groupDesc" type:"string"`
9304
9305	// The identifier of the group.
9306	GroupId *string `locationName:"groupId" type:"string"`
9307
9308	// The name of the group.
9309	GroupName *string `locationName:"groupName" type:"string"`
9310
9311	// The rules.
9312	UserRules []*IpRuleItem `locationName:"userRules" type:"list"`
9313}
9314
9315// String returns the string representation.
9316//
9317// API parameter values that are decorated as "sensitive" in the API will not
9318// be included in the string output. The member name will be present, but the
9319// value will be replaced with "sensitive".
9320func (s IpGroup) String() string {
9321	return awsutil.Prettify(s)
9322}
9323
9324// GoString returns the string representation.
9325//
9326// API parameter values that are decorated as "sensitive" in the API will not
9327// be included in the string output. The member name will be present, but the
9328// value will be replaced with "sensitive".
9329func (s IpGroup) GoString() string {
9330	return s.String()
9331}
9332
9333// SetGroupDesc sets the GroupDesc field's value.
9334func (s *IpGroup) SetGroupDesc(v string) *IpGroup {
9335	s.GroupDesc = &v
9336	return s
9337}
9338
9339// SetGroupId sets the GroupId field's value.
9340func (s *IpGroup) SetGroupId(v string) *IpGroup {
9341	s.GroupId = &v
9342	return s
9343}
9344
9345// SetGroupName sets the GroupName field's value.
9346func (s *IpGroup) SetGroupName(v string) *IpGroup {
9347	s.GroupName = &v
9348	return s
9349}
9350
9351// SetUserRules sets the UserRules field's value.
9352func (s *IpGroup) SetUserRules(v []*IpRuleItem) *IpGroup {
9353	s.UserRules = v
9354	return s
9355}
9356
9357// Describes a rule for an IP access control group.
9358type IpRuleItem struct {
9359	_ struct{} `type:"structure"`
9360
9361	// The IP address range, in CIDR notation.
9362	IpRule *string `locationName:"ipRule" type:"string"`
9363
9364	// The description.
9365	RuleDesc *string `locationName:"ruleDesc" type:"string"`
9366}
9367
9368// String returns the string representation.
9369//
9370// API parameter values that are decorated as "sensitive" in the API will not
9371// be included in the string output. The member name will be present, but the
9372// value will be replaced with "sensitive".
9373func (s IpRuleItem) String() string {
9374	return awsutil.Prettify(s)
9375}
9376
9377// GoString returns the string representation.
9378//
9379// API parameter values that are decorated as "sensitive" in the API will not
9380// be included in the string output. The member name will be present, but the
9381// value will be replaced with "sensitive".
9382func (s IpRuleItem) GoString() string {
9383	return s.String()
9384}
9385
9386// SetIpRule sets the IpRule field's value.
9387func (s *IpRuleItem) SetIpRule(v string) *IpRuleItem {
9388	s.IpRule = &v
9389	return s
9390}
9391
9392// SetRuleDesc sets the RuleDesc field's value.
9393func (s *IpRuleItem) SetRuleDesc(v string) *IpRuleItem {
9394	s.RuleDesc = &v
9395	return s
9396}
9397
9398type ListAvailableManagementCidrRangesInput struct {
9399	_ struct{} `type:"structure"`
9400
9401	// The IP address range to search. Specify an IP address range that is compatible
9402	// with your network and in CIDR notation (that is, specify the range as an
9403	// IPv4 CIDR block).
9404	//
9405	// ManagementCidrRangeConstraint is a required field
9406	ManagementCidrRangeConstraint *string `type:"string" required:"true"`
9407
9408	// The maximum number of items to return.
9409	MaxResults *int64 `min:"1" type:"integer"`
9410
9411	// If you received a NextToken from a previous call that was paginated, provide
9412	// this token to receive the next set of results.
9413	NextToken *string `min:"1" type:"string"`
9414}
9415
9416// String returns the string representation.
9417//
9418// API parameter values that are decorated as "sensitive" in the API will not
9419// be included in the string output. The member name will be present, but the
9420// value will be replaced with "sensitive".
9421func (s ListAvailableManagementCidrRangesInput) String() string {
9422	return awsutil.Prettify(s)
9423}
9424
9425// GoString returns the string representation.
9426//
9427// API parameter values that are decorated as "sensitive" in the API will not
9428// be included in the string output. The member name will be present, but the
9429// value will be replaced with "sensitive".
9430func (s ListAvailableManagementCidrRangesInput) GoString() string {
9431	return s.String()
9432}
9433
9434// Validate inspects the fields of the type to determine if they are valid.
9435func (s *ListAvailableManagementCidrRangesInput) Validate() error {
9436	invalidParams := request.ErrInvalidParams{Context: "ListAvailableManagementCidrRangesInput"}
9437	if s.ManagementCidrRangeConstraint == nil {
9438		invalidParams.Add(request.NewErrParamRequired("ManagementCidrRangeConstraint"))
9439	}
9440	if s.MaxResults != nil && *s.MaxResults < 1 {
9441		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
9442	}
9443	if s.NextToken != nil && len(*s.NextToken) < 1 {
9444		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
9445	}
9446
9447	if invalidParams.Len() > 0 {
9448		return invalidParams
9449	}
9450	return nil
9451}
9452
9453// SetManagementCidrRangeConstraint sets the ManagementCidrRangeConstraint field's value.
9454func (s *ListAvailableManagementCidrRangesInput) SetManagementCidrRangeConstraint(v string) *ListAvailableManagementCidrRangesInput {
9455	s.ManagementCidrRangeConstraint = &v
9456	return s
9457}
9458
9459// SetMaxResults sets the MaxResults field's value.
9460func (s *ListAvailableManagementCidrRangesInput) SetMaxResults(v int64) *ListAvailableManagementCidrRangesInput {
9461	s.MaxResults = &v
9462	return s
9463}
9464
9465// SetNextToken sets the NextToken field's value.
9466func (s *ListAvailableManagementCidrRangesInput) SetNextToken(v string) *ListAvailableManagementCidrRangesInput {
9467	s.NextToken = &v
9468	return s
9469}
9470
9471type ListAvailableManagementCidrRangesOutput struct {
9472	_ struct{} `type:"structure"`
9473
9474	// The list of available IP address ranges, specified as IPv4 CIDR blocks.
9475	ManagementCidrRanges []*string `type:"list"`
9476
9477	// The token to use to retrieve the next page of results. This value is null
9478	// when there are no more results to return.
9479	NextToken *string `min:"1" type:"string"`
9480}
9481
9482// String returns the string representation.
9483//
9484// API parameter values that are decorated as "sensitive" in the API will not
9485// be included in the string output. The member name will be present, but the
9486// value will be replaced with "sensitive".
9487func (s ListAvailableManagementCidrRangesOutput) String() string {
9488	return awsutil.Prettify(s)
9489}
9490
9491// GoString returns the string representation.
9492//
9493// API parameter values that are decorated as "sensitive" in the API will not
9494// be included in the string output. The member name will be present, but the
9495// value will be replaced with "sensitive".
9496func (s ListAvailableManagementCidrRangesOutput) GoString() string {
9497	return s.String()
9498}
9499
9500// SetManagementCidrRanges sets the ManagementCidrRanges field's value.
9501func (s *ListAvailableManagementCidrRangesOutput) SetManagementCidrRanges(v []*string) *ListAvailableManagementCidrRangesOutput {
9502	s.ManagementCidrRanges = v
9503	return s
9504}
9505
9506// SetNextToken sets the NextToken field's value.
9507func (s *ListAvailableManagementCidrRangesOutput) SetNextToken(v string) *ListAvailableManagementCidrRangesOutput {
9508	s.NextToken = &v
9509	return s
9510}
9511
9512type MigrateWorkspaceInput struct {
9513	_ struct{} `type:"structure"`
9514
9515	// The identifier of the target bundle type to migrate the WorkSpace to.
9516	//
9517	// BundleId is a required field
9518	BundleId *string `type:"string" required:"true"`
9519
9520	// The identifier of the WorkSpace to migrate from.
9521	//
9522	// SourceWorkspaceId is a required field
9523	SourceWorkspaceId *string `type:"string" required:"true"`
9524}
9525
9526// String returns the string representation.
9527//
9528// API parameter values that are decorated as "sensitive" in the API will not
9529// be included in the string output. The member name will be present, but the
9530// value will be replaced with "sensitive".
9531func (s MigrateWorkspaceInput) String() string {
9532	return awsutil.Prettify(s)
9533}
9534
9535// GoString returns the string representation.
9536//
9537// API parameter values that are decorated as "sensitive" in the API will not
9538// be included in the string output. The member name will be present, but the
9539// value will be replaced with "sensitive".
9540func (s MigrateWorkspaceInput) GoString() string {
9541	return s.String()
9542}
9543
9544// Validate inspects the fields of the type to determine if they are valid.
9545func (s *MigrateWorkspaceInput) Validate() error {
9546	invalidParams := request.ErrInvalidParams{Context: "MigrateWorkspaceInput"}
9547	if s.BundleId == nil {
9548		invalidParams.Add(request.NewErrParamRequired("BundleId"))
9549	}
9550	if s.SourceWorkspaceId == nil {
9551		invalidParams.Add(request.NewErrParamRequired("SourceWorkspaceId"))
9552	}
9553
9554	if invalidParams.Len() > 0 {
9555		return invalidParams
9556	}
9557	return nil
9558}
9559
9560// SetBundleId sets the BundleId field's value.
9561func (s *MigrateWorkspaceInput) SetBundleId(v string) *MigrateWorkspaceInput {
9562	s.BundleId = &v
9563	return s
9564}
9565
9566// SetSourceWorkspaceId sets the SourceWorkspaceId field's value.
9567func (s *MigrateWorkspaceInput) SetSourceWorkspaceId(v string) *MigrateWorkspaceInput {
9568	s.SourceWorkspaceId = &v
9569	return s
9570}
9571
9572type MigrateWorkspaceOutput struct {
9573	_ struct{} `type:"structure"`
9574
9575	// The original identifier of the WorkSpace that is being migrated.
9576	SourceWorkspaceId *string `type:"string"`
9577
9578	// The new identifier of the WorkSpace that is being migrated. If the migration
9579	// does not succeed, the target WorkSpace ID will not be used, and the WorkSpace
9580	// will still have the original WorkSpace ID.
9581	TargetWorkspaceId *string `type:"string"`
9582}
9583
9584// String returns the string representation.
9585//
9586// API parameter values that are decorated as "sensitive" in the API will not
9587// be included in the string output. The member name will be present, but the
9588// value will be replaced with "sensitive".
9589func (s MigrateWorkspaceOutput) String() string {
9590	return awsutil.Prettify(s)
9591}
9592
9593// GoString returns the string representation.
9594//
9595// API parameter values that are decorated as "sensitive" in the API will not
9596// be included in the string output. The member name will be present, but the
9597// value will be replaced with "sensitive".
9598func (s MigrateWorkspaceOutput) GoString() string {
9599	return s.String()
9600}
9601
9602// SetSourceWorkspaceId sets the SourceWorkspaceId field's value.
9603func (s *MigrateWorkspaceOutput) SetSourceWorkspaceId(v string) *MigrateWorkspaceOutput {
9604	s.SourceWorkspaceId = &v
9605	return s
9606}
9607
9608// SetTargetWorkspaceId sets the TargetWorkspaceId field's value.
9609func (s *MigrateWorkspaceOutput) SetTargetWorkspaceId(v string) *MigrateWorkspaceOutput {
9610	s.TargetWorkspaceId = &v
9611	return s
9612}
9613
9614// Describes a WorkSpace modification.
9615type ModificationState struct {
9616	_ struct{} `type:"structure"`
9617
9618	// The resource.
9619	Resource *string `type:"string" enum:"ModificationResourceEnum"`
9620
9621	// The modification state.
9622	State *string `type:"string" enum:"ModificationStateEnum"`
9623}
9624
9625// String returns the string representation.
9626//
9627// API parameter values that are decorated as "sensitive" in the API will not
9628// be included in the string output. The member name will be present, but the
9629// value will be replaced with "sensitive".
9630func (s ModificationState) String() string {
9631	return awsutil.Prettify(s)
9632}
9633
9634// GoString returns the string representation.
9635//
9636// API parameter values that are decorated as "sensitive" in the API will not
9637// be included in the string output. The member name will be present, but the
9638// value will be replaced with "sensitive".
9639func (s ModificationState) GoString() string {
9640	return s.String()
9641}
9642
9643// SetResource sets the Resource field's value.
9644func (s *ModificationState) SetResource(v string) *ModificationState {
9645	s.Resource = &v
9646	return s
9647}
9648
9649// SetState sets the State field's value.
9650func (s *ModificationState) SetState(v string) *ModificationState {
9651	s.State = &v
9652	return s
9653}
9654
9655type ModifyAccountInput struct {
9656	_ struct{} `type:"structure"`
9657
9658	// The IP address range, specified as an IPv4 CIDR block, for the management
9659	// network interface. Specify an IP address range that is compatible with your
9660	// network and in CIDR notation (that is, specify the range as an IPv4 CIDR
9661	// block). The CIDR block size must be /16 (for example, 203.0.113.25/16). It
9662	// must also be specified as available by the ListAvailableManagementCidrRanges
9663	// operation.
9664	DedicatedTenancyManagementCidrRange *string `type:"string"`
9665
9666	// The status of BYOL.
9667	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportEnum"`
9668}
9669
9670// String returns the string representation.
9671//
9672// API parameter values that are decorated as "sensitive" in the API will not
9673// be included in the string output. The member name will be present, but the
9674// value will be replaced with "sensitive".
9675func (s ModifyAccountInput) String() string {
9676	return awsutil.Prettify(s)
9677}
9678
9679// GoString returns the string representation.
9680//
9681// API parameter values that are decorated as "sensitive" in the API will not
9682// be included in the string output. The member name will be present, but the
9683// value will be replaced with "sensitive".
9684func (s ModifyAccountInput) GoString() string {
9685	return s.String()
9686}
9687
9688// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
9689func (s *ModifyAccountInput) SetDedicatedTenancyManagementCidrRange(v string) *ModifyAccountInput {
9690	s.DedicatedTenancyManagementCidrRange = &v
9691	return s
9692}
9693
9694// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
9695func (s *ModifyAccountInput) SetDedicatedTenancySupport(v string) *ModifyAccountInput {
9696	s.DedicatedTenancySupport = &v
9697	return s
9698}
9699
9700type ModifyAccountOutput struct {
9701	_ struct{} `type:"structure"`
9702}
9703
9704// String returns the string representation.
9705//
9706// API parameter values that are decorated as "sensitive" in the API will not
9707// be included in the string output. The member name will be present, but the
9708// value will be replaced with "sensitive".
9709func (s ModifyAccountOutput) String() string {
9710	return awsutil.Prettify(s)
9711}
9712
9713// GoString returns the string representation.
9714//
9715// API parameter values that are decorated as "sensitive" in the API will not
9716// be included in the string output. The member name will be present, but the
9717// value will be replaced with "sensitive".
9718func (s ModifyAccountOutput) GoString() string {
9719	return s.String()
9720}
9721
9722type ModifyClientPropertiesInput struct {
9723	_ struct{} `type:"structure"`
9724
9725	// Information about the Amazon WorkSpaces client.
9726	//
9727	// ClientProperties is a required field
9728	ClientProperties *ClientProperties `type:"structure" required:"true"`
9729
9730	// The resource identifiers, in the form of directory IDs.
9731	//
9732	// ResourceId is a required field
9733	ResourceId *string `min:"1" type:"string" required:"true"`
9734}
9735
9736// String returns the string representation.
9737//
9738// API parameter values that are decorated as "sensitive" in the API will not
9739// be included in the string output. The member name will be present, but the
9740// value will be replaced with "sensitive".
9741func (s ModifyClientPropertiesInput) String() string {
9742	return awsutil.Prettify(s)
9743}
9744
9745// GoString returns the string representation.
9746//
9747// API parameter values that are decorated as "sensitive" in the API will not
9748// be included in the string output. The member name will be present, but the
9749// value will be replaced with "sensitive".
9750func (s ModifyClientPropertiesInput) GoString() string {
9751	return s.String()
9752}
9753
9754// Validate inspects the fields of the type to determine if they are valid.
9755func (s *ModifyClientPropertiesInput) Validate() error {
9756	invalidParams := request.ErrInvalidParams{Context: "ModifyClientPropertiesInput"}
9757	if s.ClientProperties == nil {
9758		invalidParams.Add(request.NewErrParamRequired("ClientProperties"))
9759	}
9760	if s.ResourceId == nil {
9761		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
9762	}
9763	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
9764		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
9765	}
9766
9767	if invalidParams.Len() > 0 {
9768		return invalidParams
9769	}
9770	return nil
9771}
9772
9773// SetClientProperties sets the ClientProperties field's value.
9774func (s *ModifyClientPropertiesInput) SetClientProperties(v *ClientProperties) *ModifyClientPropertiesInput {
9775	s.ClientProperties = v
9776	return s
9777}
9778
9779// SetResourceId sets the ResourceId field's value.
9780func (s *ModifyClientPropertiesInput) SetResourceId(v string) *ModifyClientPropertiesInput {
9781	s.ResourceId = &v
9782	return s
9783}
9784
9785type ModifyClientPropertiesOutput struct {
9786	_ struct{} `type:"structure"`
9787}
9788
9789// String returns the string representation.
9790//
9791// API parameter values that are decorated as "sensitive" in the API will not
9792// be included in the string output. The member name will be present, but the
9793// value will be replaced with "sensitive".
9794func (s ModifyClientPropertiesOutput) String() string {
9795	return awsutil.Prettify(s)
9796}
9797
9798// GoString returns the string representation.
9799//
9800// API parameter values that are decorated as "sensitive" in the API will not
9801// be included in the string output. The member name will be present, but the
9802// value will be replaced with "sensitive".
9803func (s ModifyClientPropertiesOutput) GoString() string {
9804	return s.String()
9805}
9806
9807type ModifySelfservicePermissionsInput struct {
9808	_ struct{} `type:"structure"`
9809
9810	// The identifier of the directory.
9811	//
9812	// ResourceId is a required field
9813	ResourceId *string `min:"10" type:"string" required:"true"`
9814
9815	// The permissions to enable or disable self-service capabilities.
9816	//
9817	// SelfservicePermissions is a required field
9818	SelfservicePermissions *SelfservicePermissions `type:"structure" required:"true"`
9819}
9820
9821// String returns the string representation.
9822//
9823// API parameter values that are decorated as "sensitive" in the API will not
9824// be included in the string output. The member name will be present, but the
9825// value will be replaced with "sensitive".
9826func (s ModifySelfservicePermissionsInput) String() string {
9827	return awsutil.Prettify(s)
9828}
9829
9830// GoString returns the string representation.
9831//
9832// API parameter values that are decorated as "sensitive" in the API will not
9833// be included in the string output. The member name will be present, but the
9834// value will be replaced with "sensitive".
9835func (s ModifySelfservicePermissionsInput) GoString() string {
9836	return s.String()
9837}
9838
9839// Validate inspects the fields of the type to determine if they are valid.
9840func (s *ModifySelfservicePermissionsInput) Validate() error {
9841	invalidParams := request.ErrInvalidParams{Context: "ModifySelfservicePermissionsInput"}
9842	if s.ResourceId == nil {
9843		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
9844	}
9845	if s.ResourceId != nil && len(*s.ResourceId) < 10 {
9846		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10))
9847	}
9848	if s.SelfservicePermissions == nil {
9849		invalidParams.Add(request.NewErrParamRequired("SelfservicePermissions"))
9850	}
9851
9852	if invalidParams.Len() > 0 {
9853		return invalidParams
9854	}
9855	return nil
9856}
9857
9858// SetResourceId sets the ResourceId field's value.
9859func (s *ModifySelfservicePermissionsInput) SetResourceId(v string) *ModifySelfservicePermissionsInput {
9860	s.ResourceId = &v
9861	return s
9862}
9863
9864// SetSelfservicePermissions sets the SelfservicePermissions field's value.
9865func (s *ModifySelfservicePermissionsInput) SetSelfservicePermissions(v *SelfservicePermissions) *ModifySelfservicePermissionsInput {
9866	s.SelfservicePermissions = v
9867	return s
9868}
9869
9870type ModifySelfservicePermissionsOutput struct {
9871	_ struct{} `type:"structure"`
9872}
9873
9874// String returns the string representation.
9875//
9876// API parameter values that are decorated as "sensitive" in the API will not
9877// be included in the string output. The member name will be present, but the
9878// value will be replaced with "sensitive".
9879func (s ModifySelfservicePermissionsOutput) String() string {
9880	return awsutil.Prettify(s)
9881}
9882
9883// GoString returns the string representation.
9884//
9885// API parameter values that are decorated as "sensitive" in the API will not
9886// be included in the string output. The member name will be present, but the
9887// value will be replaced with "sensitive".
9888func (s ModifySelfservicePermissionsOutput) GoString() string {
9889	return s.String()
9890}
9891
9892type ModifyWorkspaceAccessPropertiesInput struct {
9893	_ struct{} `type:"structure"`
9894
9895	// The identifier of the directory.
9896	//
9897	// ResourceId is a required field
9898	ResourceId *string `min:"10" type:"string" required:"true"`
9899
9900	// The device types and operating systems to enable or disable for access.
9901	//
9902	// WorkspaceAccessProperties is a required field
9903	WorkspaceAccessProperties *WorkspaceAccessProperties `type:"structure" required:"true"`
9904}
9905
9906// String returns the string representation.
9907//
9908// API parameter values that are decorated as "sensitive" in the API will not
9909// be included in the string output. The member name will be present, but the
9910// value will be replaced with "sensitive".
9911func (s ModifyWorkspaceAccessPropertiesInput) String() string {
9912	return awsutil.Prettify(s)
9913}
9914
9915// GoString returns the string representation.
9916//
9917// API parameter values that are decorated as "sensitive" in the API will not
9918// be included in the string output. The member name will be present, but the
9919// value will be replaced with "sensitive".
9920func (s ModifyWorkspaceAccessPropertiesInput) GoString() string {
9921	return s.String()
9922}
9923
9924// Validate inspects the fields of the type to determine if they are valid.
9925func (s *ModifyWorkspaceAccessPropertiesInput) Validate() error {
9926	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceAccessPropertiesInput"}
9927	if s.ResourceId == nil {
9928		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
9929	}
9930	if s.ResourceId != nil && len(*s.ResourceId) < 10 {
9931		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10))
9932	}
9933	if s.WorkspaceAccessProperties == nil {
9934		invalidParams.Add(request.NewErrParamRequired("WorkspaceAccessProperties"))
9935	}
9936
9937	if invalidParams.Len() > 0 {
9938		return invalidParams
9939	}
9940	return nil
9941}
9942
9943// SetResourceId sets the ResourceId field's value.
9944func (s *ModifyWorkspaceAccessPropertiesInput) SetResourceId(v string) *ModifyWorkspaceAccessPropertiesInput {
9945	s.ResourceId = &v
9946	return s
9947}
9948
9949// SetWorkspaceAccessProperties sets the WorkspaceAccessProperties field's value.
9950func (s *ModifyWorkspaceAccessPropertiesInput) SetWorkspaceAccessProperties(v *WorkspaceAccessProperties) *ModifyWorkspaceAccessPropertiesInput {
9951	s.WorkspaceAccessProperties = v
9952	return s
9953}
9954
9955type ModifyWorkspaceAccessPropertiesOutput struct {
9956	_ struct{} `type:"structure"`
9957}
9958
9959// String returns the string representation.
9960//
9961// API parameter values that are decorated as "sensitive" in the API will not
9962// be included in the string output. The member name will be present, but the
9963// value will be replaced with "sensitive".
9964func (s ModifyWorkspaceAccessPropertiesOutput) String() string {
9965	return awsutil.Prettify(s)
9966}
9967
9968// GoString returns the string representation.
9969//
9970// API parameter values that are decorated as "sensitive" in the API will not
9971// be included in the string output. The member name will be present, but the
9972// value will be replaced with "sensitive".
9973func (s ModifyWorkspaceAccessPropertiesOutput) GoString() string {
9974	return s.String()
9975}
9976
9977type ModifyWorkspaceCreationPropertiesInput struct {
9978	_ struct{} `type:"structure"`
9979
9980	// The identifier of the directory.
9981	//
9982	// ResourceId is a required field
9983	ResourceId *string `min:"10" type:"string" required:"true"`
9984
9985	// The default properties for creating WorkSpaces.
9986	//
9987	// WorkspaceCreationProperties is a required field
9988	WorkspaceCreationProperties *WorkspaceCreationProperties `type:"structure" required:"true"`
9989}
9990
9991// String returns the string representation.
9992//
9993// API parameter values that are decorated as "sensitive" in the API will not
9994// be included in the string output. The member name will be present, but the
9995// value will be replaced with "sensitive".
9996func (s ModifyWorkspaceCreationPropertiesInput) String() string {
9997	return awsutil.Prettify(s)
9998}
9999
10000// GoString returns the string representation.
10001//
10002// API parameter values that are decorated as "sensitive" in the API will not
10003// be included in the string output. The member name will be present, but the
10004// value will be replaced with "sensitive".
10005func (s ModifyWorkspaceCreationPropertiesInput) GoString() string {
10006	return s.String()
10007}
10008
10009// Validate inspects the fields of the type to determine if they are valid.
10010func (s *ModifyWorkspaceCreationPropertiesInput) Validate() error {
10011	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceCreationPropertiesInput"}
10012	if s.ResourceId == nil {
10013		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
10014	}
10015	if s.ResourceId != nil && len(*s.ResourceId) < 10 {
10016		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10))
10017	}
10018	if s.WorkspaceCreationProperties == nil {
10019		invalidParams.Add(request.NewErrParamRequired("WorkspaceCreationProperties"))
10020	}
10021	if s.WorkspaceCreationProperties != nil {
10022		if err := s.WorkspaceCreationProperties.Validate(); err != nil {
10023			invalidParams.AddNested("WorkspaceCreationProperties", err.(request.ErrInvalidParams))
10024		}
10025	}
10026
10027	if invalidParams.Len() > 0 {
10028		return invalidParams
10029	}
10030	return nil
10031}
10032
10033// SetResourceId sets the ResourceId field's value.
10034func (s *ModifyWorkspaceCreationPropertiesInput) SetResourceId(v string) *ModifyWorkspaceCreationPropertiesInput {
10035	s.ResourceId = &v
10036	return s
10037}
10038
10039// SetWorkspaceCreationProperties sets the WorkspaceCreationProperties field's value.
10040func (s *ModifyWorkspaceCreationPropertiesInput) SetWorkspaceCreationProperties(v *WorkspaceCreationProperties) *ModifyWorkspaceCreationPropertiesInput {
10041	s.WorkspaceCreationProperties = v
10042	return s
10043}
10044
10045type ModifyWorkspaceCreationPropertiesOutput struct {
10046	_ struct{} `type:"structure"`
10047}
10048
10049// String returns the string representation.
10050//
10051// API parameter values that are decorated as "sensitive" in the API will not
10052// be included in the string output. The member name will be present, but the
10053// value will be replaced with "sensitive".
10054func (s ModifyWorkspaceCreationPropertiesOutput) String() string {
10055	return awsutil.Prettify(s)
10056}
10057
10058// GoString returns the string representation.
10059//
10060// API parameter values that are decorated as "sensitive" in the API will not
10061// be included in the string output. The member name will be present, but the
10062// value will be replaced with "sensitive".
10063func (s ModifyWorkspaceCreationPropertiesOutput) GoString() string {
10064	return s.String()
10065}
10066
10067type ModifyWorkspacePropertiesInput struct {
10068	_ struct{} `type:"structure"`
10069
10070	// The identifier of the WorkSpace.
10071	//
10072	// WorkspaceId is a required field
10073	WorkspaceId *string `type:"string" required:"true"`
10074
10075	// The properties of the WorkSpace.
10076	//
10077	// WorkspaceProperties is a required field
10078	WorkspaceProperties *WorkspaceProperties `type:"structure" required:"true"`
10079}
10080
10081// String returns the string representation.
10082//
10083// API parameter values that are decorated as "sensitive" in the API will not
10084// be included in the string output. The member name will be present, but the
10085// value will be replaced with "sensitive".
10086func (s ModifyWorkspacePropertiesInput) String() string {
10087	return awsutil.Prettify(s)
10088}
10089
10090// GoString returns the string representation.
10091//
10092// API parameter values that are decorated as "sensitive" in the API will not
10093// be included in the string output. The member name will be present, but the
10094// value will be replaced with "sensitive".
10095func (s ModifyWorkspacePropertiesInput) GoString() string {
10096	return s.String()
10097}
10098
10099// Validate inspects the fields of the type to determine if they are valid.
10100func (s *ModifyWorkspacePropertiesInput) Validate() error {
10101	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspacePropertiesInput"}
10102	if s.WorkspaceId == nil {
10103		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
10104	}
10105	if s.WorkspaceProperties == nil {
10106		invalidParams.Add(request.NewErrParamRequired("WorkspaceProperties"))
10107	}
10108
10109	if invalidParams.Len() > 0 {
10110		return invalidParams
10111	}
10112	return nil
10113}
10114
10115// SetWorkspaceId sets the WorkspaceId field's value.
10116func (s *ModifyWorkspacePropertiesInput) SetWorkspaceId(v string) *ModifyWorkspacePropertiesInput {
10117	s.WorkspaceId = &v
10118	return s
10119}
10120
10121// SetWorkspaceProperties sets the WorkspaceProperties field's value.
10122func (s *ModifyWorkspacePropertiesInput) SetWorkspaceProperties(v *WorkspaceProperties) *ModifyWorkspacePropertiesInput {
10123	s.WorkspaceProperties = v
10124	return s
10125}
10126
10127type ModifyWorkspacePropertiesOutput struct {
10128	_ struct{} `type:"structure"`
10129}
10130
10131// String returns the string representation.
10132//
10133// API parameter values that are decorated as "sensitive" in the API will not
10134// be included in the string output. The member name will be present, but the
10135// value will be replaced with "sensitive".
10136func (s ModifyWorkspacePropertiesOutput) String() string {
10137	return awsutil.Prettify(s)
10138}
10139
10140// GoString returns the string representation.
10141//
10142// API parameter values that are decorated as "sensitive" in the API will not
10143// be included in the string output. The member name will be present, but the
10144// value will be replaced with "sensitive".
10145func (s ModifyWorkspacePropertiesOutput) GoString() string {
10146	return s.String()
10147}
10148
10149type ModifyWorkspaceStateInput struct {
10150	_ struct{} `type:"structure"`
10151
10152	// The identifier of the WorkSpace.
10153	//
10154	// WorkspaceId is a required field
10155	WorkspaceId *string `type:"string" required:"true"`
10156
10157	// The WorkSpace state.
10158	//
10159	// WorkspaceState is a required field
10160	WorkspaceState *string `type:"string" required:"true" enum:"TargetWorkspaceState"`
10161}
10162
10163// String returns the string representation.
10164//
10165// API parameter values that are decorated as "sensitive" in the API will not
10166// be included in the string output. The member name will be present, but the
10167// value will be replaced with "sensitive".
10168func (s ModifyWorkspaceStateInput) String() string {
10169	return awsutil.Prettify(s)
10170}
10171
10172// GoString returns the string representation.
10173//
10174// API parameter values that are decorated as "sensitive" in the API will not
10175// be included in the string output. The member name will be present, but the
10176// value will be replaced with "sensitive".
10177func (s ModifyWorkspaceStateInput) GoString() string {
10178	return s.String()
10179}
10180
10181// Validate inspects the fields of the type to determine if they are valid.
10182func (s *ModifyWorkspaceStateInput) Validate() error {
10183	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceStateInput"}
10184	if s.WorkspaceId == nil {
10185		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
10186	}
10187	if s.WorkspaceState == nil {
10188		invalidParams.Add(request.NewErrParamRequired("WorkspaceState"))
10189	}
10190
10191	if invalidParams.Len() > 0 {
10192		return invalidParams
10193	}
10194	return nil
10195}
10196
10197// SetWorkspaceId sets the WorkspaceId field's value.
10198func (s *ModifyWorkspaceStateInput) SetWorkspaceId(v string) *ModifyWorkspaceStateInput {
10199	s.WorkspaceId = &v
10200	return s
10201}
10202
10203// SetWorkspaceState sets the WorkspaceState field's value.
10204func (s *ModifyWorkspaceStateInput) SetWorkspaceState(v string) *ModifyWorkspaceStateInput {
10205	s.WorkspaceState = &v
10206	return s
10207}
10208
10209type ModifyWorkspaceStateOutput struct {
10210	_ struct{} `type:"structure"`
10211}
10212
10213// String returns the string representation.
10214//
10215// API parameter values that are decorated as "sensitive" in the API will not
10216// be included in the string output. The member name will be present, but the
10217// value will be replaced with "sensitive".
10218func (s ModifyWorkspaceStateOutput) String() string {
10219	return awsutil.Prettify(s)
10220}
10221
10222// GoString returns the string representation.
10223//
10224// API parameter values that are decorated as "sensitive" in the API will not
10225// be included in the string output. The member name will be present, but the
10226// value will be replaced with "sensitive".
10227func (s ModifyWorkspaceStateOutput) GoString() string {
10228	return s.String()
10229}
10230
10231// The operating system that the image is running.
10232type OperatingSystem struct {
10233	_ struct{} `type:"structure"`
10234
10235	// The operating system.
10236	Type *string `type:"string" enum:"OperatingSystemType"`
10237}
10238
10239// String returns the string representation.
10240//
10241// API parameter values that are decorated as "sensitive" in the API will not
10242// be included in the string output. The member name will be present, but the
10243// value will be replaced with "sensitive".
10244func (s OperatingSystem) String() string {
10245	return awsutil.Prettify(s)
10246}
10247
10248// GoString returns the string representation.
10249//
10250// API parameter values that are decorated as "sensitive" in the API will not
10251// be included in the string output. The member name will be present, but the
10252// value will be replaced with "sensitive".
10253func (s OperatingSystem) GoString() string {
10254	return s.String()
10255}
10256
10257// SetType sets the Type field's value.
10258func (s *OperatingSystem) SetType(v string) *OperatingSystem {
10259	s.Type = &v
10260	return s
10261}
10262
10263// The properties of this WorkSpace are currently being modified. Try again
10264// in a moment.
10265type OperationInProgressException struct {
10266	_            struct{}                  `type:"structure"`
10267	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10268
10269	Message_ *string `locationName:"message" type:"string"`
10270}
10271
10272// String returns the string representation.
10273//
10274// API parameter values that are decorated as "sensitive" in the API will not
10275// be included in the string output. The member name will be present, but the
10276// value will be replaced with "sensitive".
10277func (s OperationInProgressException) String() string {
10278	return awsutil.Prettify(s)
10279}
10280
10281// GoString returns the string representation.
10282//
10283// API parameter values that are decorated as "sensitive" in the API will not
10284// be included in the string output. The member name will be present, but the
10285// value will be replaced with "sensitive".
10286func (s OperationInProgressException) GoString() string {
10287	return s.String()
10288}
10289
10290func newErrorOperationInProgressException(v protocol.ResponseMetadata) error {
10291	return &OperationInProgressException{
10292		RespMetadata: v,
10293	}
10294}
10295
10296// Code returns the exception type name.
10297func (s *OperationInProgressException) Code() string {
10298	return "OperationInProgressException"
10299}
10300
10301// Message returns the exception's message.
10302func (s *OperationInProgressException) Message() string {
10303	if s.Message_ != nil {
10304		return *s.Message_
10305	}
10306	return ""
10307}
10308
10309// OrigErr always returns nil, satisfies awserr.Error interface.
10310func (s *OperationInProgressException) OrigErr() error {
10311	return nil
10312}
10313
10314func (s *OperationInProgressException) Error() string {
10315	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10316}
10317
10318// Status code returns the HTTP status code for the request's response error.
10319func (s *OperationInProgressException) StatusCode() int {
10320	return s.RespMetadata.StatusCode
10321}
10322
10323// RequestID returns the service's response RequestID for request.
10324func (s *OperationInProgressException) RequestID() string {
10325	return s.RespMetadata.RequestID
10326}
10327
10328// This operation is not supported.
10329type OperationNotSupportedException struct {
10330	_            struct{}                  `type:"structure"`
10331	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10332
10333	Message_ *string `locationName:"message" type:"string"`
10334}
10335
10336// String returns the string representation.
10337//
10338// API parameter values that are decorated as "sensitive" in the API will not
10339// be included in the string output. The member name will be present, but the
10340// value will be replaced with "sensitive".
10341func (s OperationNotSupportedException) String() string {
10342	return awsutil.Prettify(s)
10343}
10344
10345// GoString returns the string representation.
10346//
10347// API parameter values that are decorated as "sensitive" in the API will not
10348// be included in the string output. The member name will be present, but the
10349// value will be replaced with "sensitive".
10350func (s OperationNotSupportedException) GoString() string {
10351	return s.String()
10352}
10353
10354func newErrorOperationNotSupportedException(v protocol.ResponseMetadata) error {
10355	return &OperationNotSupportedException{
10356		RespMetadata: v,
10357	}
10358}
10359
10360// Code returns the exception type name.
10361func (s *OperationNotSupportedException) Code() string {
10362	return "OperationNotSupportedException"
10363}
10364
10365// Message returns the exception's message.
10366func (s *OperationNotSupportedException) Message() string {
10367	if s.Message_ != nil {
10368		return *s.Message_
10369	}
10370	return ""
10371}
10372
10373// OrigErr always returns nil, satisfies awserr.Error interface.
10374func (s *OperationNotSupportedException) OrigErr() error {
10375	return nil
10376}
10377
10378func (s *OperationNotSupportedException) Error() string {
10379	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10380}
10381
10382// Status code returns the HTTP status code for the request's response error.
10383func (s *OperationNotSupportedException) StatusCode() int {
10384	return s.RespMetadata.StatusCode
10385}
10386
10387// RequestID returns the service's response RequestID for request.
10388func (s *OperationNotSupportedException) RequestID() string {
10389	return s.RespMetadata.RequestID
10390}
10391
10392// Describes the information used to reboot a WorkSpace.
10393type RebootRequest struct {
10394	_ struct{} `type:"structure"`
10395
10396	// The identifier of the WorkSpace.
10397	//
10398	// WorkspaceId is a required field
10399	WorkspaceId *string `type:"string" required:"true"`
10400}
10401
10402// String returns the string representation.
10403//
10404// API parameter values that are decorated as "sensitive" in the API will not
10405// be included in the string output. The member name will be present, but the
10406// value will be replaced with "sensitive".
10407func (s RebootRequest) String() string {
10408	return awsutil.Prettify(s)
10409}
10410
10411// GoString returns the string representation.
10412//
10413// API parameter values that are decorated as "sensitive" in the API will not
10414// be included in the string output. The member name will be present, but the
10415// value will be replaced with "sensitive".
10416func (s RebootRequest) GoString() string {
10417	return s.String()
10418}
10419
10420// Validate inspects the fields of the type to determine if they are valid.
10421func (s *RebootRequest) Validate() error {
10422	invalidParams := request.ErrInvalidParams{Context: "RebootRequest"}
10423	if s.WorkspaceId == nil {
10424		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
10425	}
10426
10427	if invalidParams.Len() > 0 {
10428		return invalidParams
10429	}
10430	return nil
10431}
10432
10433// SetWorkspaceId sets the WorkspaceId field's value.
10434func (s *RebootRequest) SetWorkspaceId(v string) *RebootRequest {
10435	s.WorkspaceId = &v
10436	return s
10437}
10438
10439type RebootWorkspacesInput struct {
10440	_ struct{} `type:"structure"`
10441
10442	// The WorkSpaces to reboot. You can specify up to 25 WorkSpaces.
10443	//
10444	// RebootWorkspaceRequests is a required field
10445	RebootWorkspaceRequests []*RebootRequest `min:"1" type:"list" required:"true"`
10446}
10447
10448// String returns the string representation.
10449//
10450// API parameter values that are decorated as "sensitive" in the API will not
10451// be included in the string output. The member name will be present, but the
10452// value will be replaced with "sensitive".
10453func (s RebootWorkspacesInput) String() string {
10454	return awsutil.Prettify(s)
10455}
10456
10457// GoString returns the string representation.
10458//
10459// API parameter values that are decorated as "sensitive" in the API will not
10460// be included in the string output. The member name will be present, but the
10461// value will be replaced with "sensitive".
10462func (s RebootWorkspacesInput) GoString() string {
10463	return s.String()
10464}
10465
10466// Validate inspects the fields of the type to determine if they are valid.
10467func (s *RebootWorkspacesInput) Validate() error {
10468	invalidParams := request.ErrInvalidParams{Context: "RebootWorkspacesInput"}
10469	if s.RebootWorkspaceRequests == nil {
10470		invalidParams.Add(request.NewErrParamRequired("RebootWorkspaceRequests"))
10471	}
10472	if s.RebootWorkspaceRequests != nil && len(s.RebootWorkspaceRequests) < 1 {
10473		invalidParams.Add(request.NewErrParamMinLen("RebootWorkspaceRequests", 1))
10474	}
10475	if s.RebootWorkspaceRequests != nil {
10476		for i, v := range s.RebootWorkspaceRequests {
10477			if v == nil {
10478				continue
10479			}
10480			if err := v.Validate(); err != nil {
10481				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RebootWorkspaceRequests", i), err.(request.ErrInvalidParams))
10482			}
10483		}
10484	}
10485
10486	if invalidParams.Len() > 0 {
10487		return invalidParams
10488	}
10489	return nil
10490}
10491
10492// SetRebootWorkspaceRequests sets the RebootWorkspaceRequests field's value.
10493func (s *RebootWorkspacesInput) SetRebootWorkspaceRequests(v []*RebootRequest) *RebootWorkspacesInput {
10494	s.RebootWorkspaceRequests = v
10495	return s
10496}
10497
10498type RebootWorkspacesOutput struct {
10499	_ struct{} `type:"structure"`
10500
10501	// Information about the WorkSpaces that could not be rebooted.
10502	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
10503}
10504
10505// String returns the string representation.
10506//
10507// API parameter values that are decorated as "sensitive" in the API will not
10508// be included in the string output. The member name will be present, but the
10509// value will be replaced with "sensitive".
10510func (s RebootWorkspacesOutput) String() string {
10511	return awsutil.Prettify(s)
10512}
10513
10514// GoString returns the string representation.
10515//
10516// API parameter values that are decorated as "sensitive" in the API will not
10517// be included in the string output. The member name will be present, but the
10518// value will be replaced with "sensitive".
10519func (s RebootWorkspacesOutput) GoString() string {
10520	return s.String()
10521}
10522
10523// SetFailedRequests sets the FailedRequests field's value.
10524func (s *RebootWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *RebootWorkspacesOutput {
10525	s.FailedRequests = v
10526	return s
10527}
10528
10529// Describes the information used to rebuild a WorkSpace.
10530type RebuildRequest struct {
10531	_ struct{} `type:"structure"`
10532
10533	// The identifier of the WorkSpace.
10534	//
10535	// WorkspaceId is a required field
10536	WorkspaceId *string `type:"string" required:"true"`
10537}
10538
10539// String returns the string representation.
10540//
10541// API parameter values that are decorated as "sensitive" in the API will not
10542// be included in the string output. The member name will be present, but the
10543// value will be replaced with "sensitive".
10544func (s RebuildRequest) String() string {
10545	return awsutil.Prettify(s)
10546}
10547
10548// GoString returns the string representation.
10549//
10550// API parameter values that are decorated as "sensitive" in the API will not
10551// be included in the string output. The member name will be present, but the
10552// value will be replaced with "sensitive".
10553func (s RebuildRequest) GoString() string {
10554	return s.String()
10555}
10556
10557// Validate inspects the fields of the type to determine if they are valid.
10558func (s *RebuildRequest) Validate() error {
10559	invalidParams := request.ErrInvalidParams{Context: "RebuildRequest"}
10560	if s.WorkspaceId == nil {
10561		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
10562	}
10563
10564	if invalidParams.Len() > 0 {
10565		return invalidParams
10566	}
10567	return nil
10568}
10569
10570// SetWorkspaceId sets the WorkspaceId field's value.
10571func (s *RebuildRequest) SetWorkspaceId(v string) *RebuildRequest {
10572	s.WorkspaceId = &v
10573	return s
10574}
10575
10576type RebuildWorkspacesInput struct {
10577	_ struct{} `type:"structure"`
10578
10579	// The WorkSpace to rebuild. You can specify a single WorkSpace.
10580	//
10581	// RebuildWorkspaceRequests is a required field
10582	RebuildWorkspaceRequests []*RebuildRequest `min:"1" type:"list" required:"true"`
10583}
10584
10585// String returns the string representation.
10586//
10587// API parameter values that are decorated as "sensitive" in the API will not
10588// be included in the string output. The member name will be present, but the
10589// value will be replaced with "sensitive".
10590func (s RebuildWorkspacesInput) String() string {
10591	return awsutil.Prettify(s)
10592}
10593
10594// GoString returns the string representation.
10595//
10596// API parameter values that are decorated as "sensitive" in the API will not
10597// be included in the string output. The member name will be present, but the
10598// value will be replaced with "sensitive".
10599func (s RebuildWorkspacesInput) GoString() string {
10600	return s.String()
10601}
10602
10603// Validate inspects the fields of the type to determine if they are valid.
10604func (s *RebuildWorkspacesInput) Validate() error {
10605	invalidParams := request.ErrInvalidParams{Context: "RebuildWorkspacesInput"}
10606	if s.RebuildWorkspaceRequests == nil {
10607		invalidParams.Add(request.NewErrParamRequired("RebuildWorkspaceRequests"))
10608	}
10609	if s.RebuildWorkspaceRequests != nil && len(s.RebuildWorkspaceRequests) < 1 {
10610		invalidParams.Add(request.NewErrParamMinLen("RebuildWorkspaceRequests", 1))
10611	}
10612	if s.RebuildWorkspaceRequests != nil {
10613		for i, v := range s.RebuildWorkspaceRequests {
10614			if v == nil {
10615				continue
10616			}
10617			if err := v.Validate(); err != nil {
10618				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RebuildWorkspaceRequests", i), err.(request.ErrInvalidParams))
10619			}
10620		}
10621	}
10622
10623	if invalidParams.Len() > 0 {
10624		return invalidParams
10625	}
10626	return nil
10627}
10628
10629// SetRebuildWorkspaceRequests sets the RebuildWorkspaceRequests field's value.
10630func (s *RebuildWorkspacesInput) SetRebuildWorkspaceRequests(v []*RebuildRequest) *RebuildWorkspacesInput {
10631	s.RebuildWorkspaceRequests = v
10632	return s
10633}
10634
10635type RebuildWorkspacesOutput struct {
10636	_ struct{} `type:"structure"`
10637
10638	// Information about the WorkSpace that could not be rebuilt.
10639	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
10640}
10641
10642// String returns the string representation.
10643//
10644// API parameter values that are decorated as "sensitive" in the API will not
10645// be included in the string output. The member name will be present, but the
10646// value will be replaced with "sensitive".
10647func (s RebuildWorkspacesOutput) String() string {
10648	return awsutil.Prettify(s)
10649}
10650
10651// GoString returns the string representation.
10652//
10653// API parameter values that are decorated as "sensitive" in the API will not
10654// be included in the string output. The member name will be present, but the
10655// value will be replaced with "sensitive".
10656func (s RebuildWorkspacesOutput) GoString() string {
10657	return s.String()
10658}
10659
10660// SetFailedRequests sets the FailedRequests field's value.
10661func (s *RebuildWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *RebuildWorkspacesOutput {
10662	s.FailedRequests = v
10663	return s
10664}
10665
10666type RegisterWorkspaceDirectoryInput struct {
10667	_ struct{} `type:"structure"`
10668
10669	// The identifier of the directory. You cannot register a directory if it does
10670	// not have a status of Active. If the directory does not have a status of Active,
10671	// you will receive an InvalidResourceStateException error. If you have already
10672	// registered the maximum number of directories that you can register with Amazon
10673	// WorkSpaces, you will receive a ResourceLimitExceededException error. Deregister
10674	// directories that you are not using for WorkSpaces, and try again.
10675	//
10676	// DirectoryId is a required field
10677	DirectoryId *string `min:"10" type:"string" required:"true"`
10678
10679	// Indicates whether self-service capabilities are enabled or disabled.
10680	EnableSelfService *bool `type:"boolean"`
10681
10682	// Indicates whether Amazon WorkDocs is enabled or disabled. If you have enabled
10683	// this parameter and WorkDocs is not available in the Region, you will receive
10684	// an OperationNotSupportedException error. Set EnableWorkDocs to disabled,
10685	// and try again.
10686	//
10687	// EnableWorkDocs is a required field
10688	EnableWorkDocs *bool `type:"boolean" required:"true"`
10689
10690	// The identifiers of the subnets for your virtual private cloud (VPC). Make
10691	// sure that the subnets are in supported Availability Zones. The subnets must
10692	// also be in separate Availability Zones. If these conditions are not met,
10693	// you will receive an OperationNotSupportedException error.
10694	SubnetIds []*string `type:"list"`
10695
10696	// The tags associated with the directory.
10697	Tags []*Tag `type:"list"`
10698
10699	// Indicates whether your WorkSpace directory is dedicated or shared. To use
10700	// Bring Your Own License (BYOL) images, this value must be set to DEDICATED
10701	// and your Amazon Web Services account must be enabled for BYOL. If your account
10702	// has not been enabled for BYOL, you will receive an InvalidParameterValuesException
10703	// error. For more information about BYOL images, see Bring Your Own Windows
10704	// Desktop Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
10705	Tenancy *string `type:"string" enum:"Tenancy"`
10706}
10707
10708// String returns the string representation.
10709//
10710// API parameter values that are decorated as "sensitive" in the API will not
10711// be included in the string output. The member name will be present, but the
10712// value will be replaced with "sensitive".
10713func (s RegisterWorkspaceDirectoryInput) String() string {
10714	return awsutil.Prettify(s)
10715}
10716
10717// GoString returns the string representation.
10718//
10719// API parameter values that are decorated as "sensitive" in the API will not
10720// be included in the string output. The member name will be present, but the
10721// value will be replaced with "sensitive".
10722func (s RegisterWorkspaceDirectoryInput) GoString() string {
10723	return s.String()
10724}
10725
10726// Validate inspects the fields of the type to determine if they are valid.
10727func (s *RegisterWorkspaceDirectoryInput) Validate() error {
10728	invalidParams := request.ErrInvalidParams{Context: "RegisterWorkspaceDirectoryInput"}
10729	if s.DirectoryId == nil {
10730		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
10731	}
10732	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
10733		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
10734	}
10735	if s.EnableWorkDocs == nil {
10736		invalidParams.Add(request.NewErrParamRequired("EnableWorkDocs"))
10737	}
10738	if s.Tags != nil {
10739		for i, v := range s.Tags {
10740			if v == nil {
10741				continue
10742			}
10743			if err := v.Validate(); err != nil {
10744				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
10745			}
10746		}
10747	}
10748
10749	if invalidParams.Len() > 0 {
10750		return invalidParams
10751	}
10752	return nil
10753}
10754
10755// SetDirectoryId sets the DirectoryId field's value.
10756func (s *RegisterWorkspaceDirectoryInput) SetDirectoryId(v string) *RegisterWorkspaceDirectoryInput {
10757	s.DirectoryId = &v
10758	return s
10759}
10760
10761// SetEnableSelfService sets the EnableSelfService field's value.
10762func (s *RegisterWorkspaceDirectoryInput) SetEnableSelfService(v bool) *RegisterWorkspaceDirectoryInput {
10763	s.EnableSelfService = &v
10764	return s
10765}
10766
10767// SetEnableWorkDocs sets the EnableWorkDocs field's value.
10768func (s *RegisterWorkspaceDirectoryInput) SetEnableWorkDocs(v bool) *RegisterWorkspaceDirectoryInput {
10769	s.EnableWorkDocs = &v
10770	return s
10771}
10772
10773// SetSubnetIds sets the SubnetIds field's value.
10774func (s *RegisterWorkspaceDirectoryInput) SetSubnetIds(v []*string) *RegisterWorkspaceDirectoryInput {
10775	s.SubnetIds = v
10776	return s
10777}
10778
10779// SetTags sets the Tags field's value.
10780func (s *RegisterWorkspaceDirectoryInput) SetTags(v []*Tag) *RegisterWorkspaceDirectoryInput {
10781	s.Tags = v
10782	return s
10783}
10784
10785// SetTenancy sets the Tenancy field's value.
10786func (s *RegisterWorkspaceDirectoryInput) SetTenancy(v string) *RegisterWorkspaceDirectoryInput {
10787	s.Tenancy = &v
10788	return s
10789}
10790
10791type RegisterWorkspaceDirectoryOutput struct {
10792	_ struct{} `type:"structure"`
10793}
10794
10795// String returns the string representation.
10796//
10797// API parameter values that are decorated as "sensitive" in the API will not
10798// be included in the string output. The member name will be present, but the
10799// value will be replaced with "sensitive".
10800func (s RegisterWorkspaceDirectoryOutput) String() string {
10801	return awsutil.Prettify(s)
10802}
10803
10804// GoString returns the string representation.
10805//
10806// API parameter values that are decorated as "sensitive" in the API will not
10807// be included in the string output. The member name will be present, but the
10808// value will be replaced with "sensitive".
10809func (s RegisterWorkspaceDirectoryOutput) GoString() string {
10810	return s.String()
10811}
10812
10813// The specified resource already exists.
10814type ResourceAlreadyExistsException struct {
10815	_            struct{}                  `type:"structure"`
10816	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10817
10818	Message_ *string `locationName:"message" type:"string"`
10819}
10820
10821// String returns the string representation.
10822//
10823// API parameter values that are decorated as "sensitive" in the API will not
10824// be included in the string output. The member name will be present, but the
10825// value will be replaced with "sensitive".
10826func (s ResourceAlreadyExistsException) String() string {
10827	return awsutil.Prettify(s)
10828}
10829
10830// GoString returns the string representation.
10831//
10832// API parameter values that are decorated as "sensitive" in the API will not
10833// be included in the string output. The member name will be present, but the
10834// value will be replaced with "sensitive".
10835func (s ResourceAlreadyExistsException) GoString() string {
10836	return s.String()
10837}
10838
10839func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
10840	return &ResourceAlreadyExistsException{
10841		RespMetadata: v,
10842	}
10843}
10844
10845// Code returns the exception type name.
10846func (s *ResourceAlreadyExistsException) Code() string {
10847	return "ResourceAlreadyExistsException"
10848}
10849
10850// Message returns the exception's message.
10851func (s *ResourceAlreadyExistsException) Message() string {
10852	if s.Message_ != nil {
10853		return *s.Message_
10854	}
10855	return ""
10856}
10857
10858// OrigErr always returns nil, satisfies awserr.Error interface.
10859func (s *ResourceAlreadyExistsException) OrigErr() error {
10860	return nil
10861}
10862
10863func (s *ResourceAlreadyExistsException) Error() string {
10864	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10865}
10866
10867// Status code returns the HTTP status code for the request's response error.
10868func (s *ResourceAlreadyExistsException) StatusCode() int {
10869	return s.RespMetadata.StatusCode
10870}
10871
10872// RequestID returns the service's response RequestID for request.
10873func (s *ResourceAlreadyExistsException) RequestID() string {
10874	return s.RespMetadata.RequestID
10875}
10876
10877// The resource is associated with a directory.
10878type ResourceAssociatedException struct {
10879	_            struct{}                  `type:"structure"`
10880	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10881
10882	Message_ *string `locationName:"message" type:"string"`
10883}
10884
10885// String returns the string representation.
10886//
10887// API parameter values that are decorated as "sensitive" in the API will not
10888// be included in the string output. The member name will be present, but the
10889// value will be replaced with "sensitive".
10890func (s ResourceAssociatedException) String() string {
10891	return awsutil.Prettify(s)
10892}
10893
10894// GoString returns the string representation.
10895//
10896// API parameter values that are decorated as "sensitive" in the API will not
10897// be included in the string output. The member name will be present, but the
10898// value will be replaced with "sensitive".
10899func (s ResourceAssociatedException) GoString() string {
10900	return s.String()
10901}
10902
10903func newErrorResourceAssociatedException(v protocol.ResponseMetadata) error {
10904	return &ResourceAssociatedException{
10905		RespMetadata: v,
10906	}
10907}
10908
10909// Code returns the exception type name.
10910func (s *ResourceAssociatedException) Code() string {
10911	return "ResourceAssociatedException"
10912}
10913
10914// Message returns the exception's message.
10915func (s *ResourceAssociatedException) Message() string {
10916	if s.Message_ != nil {
10917		return *s.Message_
10918	}
10919	return ""
10920}
10921
10922// OrigErr always returns nil, satisfies awserr.Error interface.
10923func (s *ResourceAssociatedException) OrigErr() error {
10924	return nil
10925}
10926
10927func (s *ResourceAssociatedException) Error() string {
10928	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10929}
10930
10931// Status code returns the HTTP status code for the request's response error.
10932func (s *ResourceAssociatedException) StatusCode() int {
10933	return s.RespMetadata.StatusCode
10934}
10935
10936// RequestID returns the service's response RequestID for request.
10937func (s *ResourceAssociatedException) RequestID() string {
10938	return s.RespMetadata.RequestID
10939}
10940
10941// The resource could not be created.
10942type ResourceCreationFailedException struct {
10943	_            struct{}                  `type:"structure"`
10944	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
10945
10946	Message_ *string `locationName:"message" type:"string"`
10947}
10948
10949// String returns the string representation.
10950//
10951// API parameter values that are decorated as "sensitive" in the API will not
10952// be included in the string output. The member name will be present, but the
10953// value will be replaced with "sensitive".
10954func (s ResourceCreationFailedException) String() string {
10955	return awsutil.Prettify(s)
10956}
10957
10958// GoString returns the string representation.
10959//
10960// API parameter values that are decorated as "sensitive" in the API will not
10961// be included in the string output. The member name will be present, but the
10962// value will be replaced with "sensitive".
10963func (s ResourceCreationFailedException) GoString() string {
10964	return s.String()
10965}
10966
10967func newErrorResourceCreationFailedException(v protocol.ResponseMetadata) error {
10968	return &ResourceCreationFailedException{
10969		RespMetadata: v,
10970	}
10971}
10972
10973// Code returns the exception type name.
10974func (s *ResourceCreationFailedException) Code() string {
10975	return "ResourceCreationFailedException"
10976}
10977
10978// Message returns the exception's message.
10979func (s *ResourceCreationFailedException) Message() string {
10980	if s.Message_ != nil {
10981		return *s.Message_
10982	}
10983	return ""
10984}
10985
10986// OrigErr always returns nil, satisfies awserr.Error interface.
10987func (s *ResourceCreationFailedException) OrigErr() error {
10988	return nil
10989}
10990
10991func (s *ResourceCreationFailedException) Error() string {
10992	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
10993}
10994
10995// Status code returns the HTTP status code for the request's response error.
10996func (s *ResourceCreationFailedException) StatusCode() int {
10997	return s.RespMetadata.StatusCode
10998}
10999
11000// RequestID returns the service's response RequestID for request.
11001func (s *ResourceCreationFailedException) RequestID() string {
11002	return s.RespMetadata.RequestID
11003}
11004
11005// Your resource limits have been exceeded.
11006type ResourceLimitExceededException struct {
11007	_            struct{}                  `type:"structure"`
11008	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11009
11010	// The exception error message.
11011	Message_ *string `locationName:"message" type:"string"`
11012}
11013
11014// String returns the string representation.
11015//
11016// API parameter values that are decorated as "sensitive" in the API will not
11017// be included in the string output. The member name will be present, but the
11018// value will be replaced with "sensitive".
11019func (s ResourceLimitExceededException) String() string {
11020	return awsutil.Prettify(s)
11021}
11022
11023// GoString returns the string representation.
11024//
11025// API parameter values that are decorated as "sensitive" in the API will not
11026// be included in the string output. The member name will be present, but the
11027// value will be replaced with "sensitive".
11028func (s ResourceLimitExceededException) GoString() string {
11029	return s.String()
11030}
11031
11032func newErrorResourceLimitExceededException(v protocol.ResponseMetadata) error {
11033	return &ResourceLimitExceededException{
11034		RespMetadata: v,
11035	}
11036}
11037
11038// Code returns the exception type name.
11039func (s *ResourceLimitExceededException) Code() string {
11040	return "ResourceLimitExceededException"
11041}
11042
11043// Message returns the exception's message.
11044func (s *ResourceLimitExceededException) Message() string {
11045	if s.Message_ != nil {
11046		return *s.Message_
11047	}
11048	return ""
11049}
11050
11051// OrigErr always returns nil, satisfies awserr.Error interface.
11052func (s *ResourceLimitExceededException) OrigErr() error {
11053	return nil
11054}
11055
11056func (s *ResourceLimitExceededException) Error() string {
11057	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11058}
11059
11060// Status code returns the HTTP status code for the request's response error.
11061func (s *ResourceLimitExceededException) StatusCode() int {
11062	return s.RespMetadata.StatusCode
11063}
11064
11065// RequestID returns the service's response RequestID for request.
11066func (s *ResourceLimitExceededException) RequestID() string {
11067	return s.RespMetadata.RequestID
11068}
11069
11070// The resource could not be found.
11071type ResourceNotFoundException struct {
11072	_            struct{}                  `type:"structure"`
11073	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11074
11075	// The resource could not be found.
11076	Message_ *string `locationName:"message" type:"string"`
11077
11078	// The ID of the resource that could not be found.
11079	ResourceId *string `min:"1" type:"string"`
11080}
11081
11082// String returns the string representation.
11083//
11084// API parameter values that are decorated as "sensitive" in the API will not
11085// be included in the string output. The member name will be present, but the
11086// value will be replaced with "sensitive".
11087func (s ResourceNotFoundException) String() string {
11088	return awsutil.Prettify(s)
11089}
11090
11091// GoString returns the string representation.
11092//
11093// API parameter values that are decorated as "sensitive" in the API will not
11094// be included in the string output. The member name will be present, but the
11095// value will be replaced with "sensitive".
11096func (s ResourceNotFoundException) GoString() string {
11097	return s.String()
11098}
11099
11100func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
11101	return &ResourceNotFoundException{
11102		RespMetadata: v,
11103	}
11104}
11105
11106// Code returns the exception type name.
11107func (s *ResourceNotFoundException) Code() string {
11108	return "ResourceNotFoundException"
11109}
11110
11111// Message returns the exception's message.
11112func (s *ResourceNotFoundException) Message() string {
11113	if s.Message_ != nil {
11114		return *s.Message_
11115	}
11116	return ""
11117}
11118
11119// OrigErr always returns nil, satisfies awserr.Error interface.
11120func (s *ResourceNotFoundException) OrigErr() error {
11121	return nil
11122}
11123
11124func (s *ResourceNotFoundException) Error() string {
11125	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11126}
11127
11128// Status code returns the HTTP status code for the request's response error.
11129func (s *ResourceNotFoundException) StatusCode() int {
11130	return s.RespMetadata.StatusCode
11131}
11132
11133// RequestID returns the service's response RequestID for request.
11134func (s *ResourceNotFoundException) RequestID() string {
11135	return s.RespMetadata.RequestID
11136}
11137
11138// The specified resource is not available.
11139type ResourceUnavailableException struct {
11140	_            struct{}                  `type:"structure"`
11141	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11142
11143	// The exception error message.
11144	Message_ *string `locationName:"message" type:"string"`
11145
11146	// The identifier of the resource that is not available.
11147	ResourceId *string `min:"1" type:"string"`
11148}
11149
11150// String returns the string representation.
11151//
11152// API parameter values that are decorated as "sensitive" in the API will not
11153// be included in the string output. The member name will be present, but the
11154// value will be replaced with "sensitive".
11155func (s ResourceUnavailableException) String() string {
11156	return awsutil.Prettify(s)
11157}
11158
11159// GoString returns the string representation.
11160//
11161// API parameter values that are decorated as "sensitive" in the API will not
11162// be included in the string output. The member name will be present, but the
11163// value will be replaced with "sensitive".
11164func (s ResourceUnavailableException) GoString() string {
11165	return s.String()
11166}
11167
11168func newErrorResourceUnavailableException(v protocol.ResponseMetadata) error {
11169	return &ResourceUnavailableException{
11170		RespMetadata: v,
11171	}
11172}
11173
11174// Code returns the exception type name.
11175func (s *ResourceUnavailableException) Code() string {
11176	return "ResourceUnavailableException"
11177}
11178
11179// Message returns the exception's message.
11180func (s *ResourceUnavailableException) Message() string {
11181	if s.Message_ != nil {
11182		return *s.Message_
11183	}
11184	return ""
11185}
11186
11187// OrigErr always returns nil, satisfies awserr.Error interface.
11188func (s *ResourceUnavailableException) OrigErr() error {
11189	return nil
11190}
11191
11192func (s *ResourceUnavailableException) Error() string {
11193	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11194}
11195
11196// Status code returns the HTTP status code for the request's response error.
11197func (s *ResourceUnavailableException) StatusCode() int {
11198	return s.RespMetadata.StatusCode
11199}
11200
11201// RequestID returns the service's response RequestID for request.
11202func (s *ResourceUnavailableException) RequestID() string {
11203	return s.RespMetadata.RequestID
11204}
11205
11206type RestoreWorkspaceInput struct {
11207	_ struct{} `type:"structure"`
11208
11209	// The identifier of the WorkSpace.
11210	//
11211	// WorkspaceId is a required field
11212	WorkspaceId *string `type:"string" required:"true"`
11213}
11214
11215// String returns the string representation.
11216//
11217// API parameter values that are decorated as "sensitive" in the API will not
11218// be included in the string output. The member name will be present, but the
11219// value will be replaced with "sensitive".
11220func (s RestoreWorkspaceInput) String() string {
11221	return awsutil.Prettify(s)
11222}
11223
11224// GoString returns the string representation.
11225//
11226// API parameter values that are decorated as "sensitive" in the API will not
11227// be included in the string output. The member name will be present, but the
11228// value will be replaced with "sensitive".
11229func (s RestoreWorkspaceInput) GoString() string {
11230	return s.String()
11231}
11232
11233// Validate inspects the fields of the type to determine if they are valid.
11234func (s *RestoreWorkspaceInput) Validate() error {
11235	invalidParams := request.ErrInvalidParams{Context: "RestoreWorkspaceInput"}
11236	if s.WorkspaceId == nil {
11237		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
11238	}
11239
11240	if invalidParams.Len() > 0 {
11241		return invalidParams
11242	}
11243	return nil
11244}
11245
11246// SetWorkspaceId sets the WorkspaceId field's value.
11247func (s *RestoreWorkspaceInput) SetWorkspaceId(v string) *RestoreWorkspaceInput {
11248	s.WorkspaceId = &v
11249	return s
11250}
11251
11252type RestoreWorkspaceOutput struct {
11253	_ struct{} `type:"structure"`
11254}
11255
11256// String returns the string representation.
11257//
11258// API parameter values that are decorated as "sensitive" in the API will not
11259// be included in the string output. The member name will be present, but the
11260// value will be replaced with "sensitive".
11261func (s RestoreWorkspaceOutput) String() string {
11262	return awsutil.Prettify(s)
11263}
11264
11265// GoString returns the string representation.
11266//
11267// API parameter values that are decorated as "sensitive" in the API will not
11268// be included in the string output. The member name will be present, but the
11269// value will be replaced with "sensitive".
11270func (s RestoreWorkspaceOutput) GoString() string {
11271	return s.String()
11272}
11273
11274type RevokeIpRulesInput struct {
11275	_ struct{} `type:"structure"`
11276
11277	// The identifier of the group.
11278	//
11279	// GroupId is a required field
11280	GroupId *string `type:"string" required:"true"`
11281
11282	// The rules to remove from the group.
11283	//
11284	// UserRules is a required field
11285	UserRules []*string `type:"list" required:"true"`
11286}
11287
11288// String returns the string representation.
11289//
11290// API parameter values that are decorated as "sensitive" in the API will not
11291// be included in the string output. The member name will be present, but the
11292// value will be replaced with "sensitive".
11293func (s RevokeIpRulesInput) String() string {
11294	return awsutil.Prettify(s)
11295}
11296
11297// GoString returns the string representation.
11298//
11299// API parameter values that are decorated as "sensitive" in the API will not
11300// be included in the string output. The member name will be present, but the
11301// value will be replaced with "sensitive".
11302func (s RevokeIpRulesInput) GoString() string {
11303	return s.String()
11304}
11305
11306// Validate inspects the fields of the type to determine if they are valid.
11307func (s *RevokeIpRulesInput) Validate() error {
11308	invalidParams := request.ErrInvalidParams{Context: "RevokeIpRulesInput"}
11309	if s.GroupId == nil {
11310		invalidParams.Add(request.NewErrParamRequired("GroupId"))
11311	}
11312	if s.UserRules == nil {
11313		invalidParams.Add(request.NewErrParamRequired("UserRules"))
11314	}
11315
11316	if invalidParams.Len() > 0 {
11317		return invalidParams
11318	}
11319	return nil
11320}
11321
11322// SetGroupId sets the GroupId field's value.
11323func (s *RevokeIpRulesInput) SetGroupId(v string) *RevokeIpRulesInput {
11324	s.GroupId = &v
11325	return s
11326}
11327
11328// SetUserRules sets the UserRules field's value.
11329func (s *RevokeIpRulesInput) SetUserRules(v []*string) *RevokeIpRulesInput {
11330	s.UserRules = v
11331	return s
11332}
11333
11334type RevokeIpRulesOutput struct {
11335	_ struct{} `type:"structure"`
11336}
11337
11338// String returns the string representation.
11339//
11340// API parameter values that are decorated as "sensitive" in the API will not
11341// be included in the string output. The member name will be present, but the
11342// value will be replaced with "sensitive".
11343func (s RevokeIpRulesOutput) String() string {
11344	return awsutil.Prettify(s)
11345}
11346
11347// GoString returns the string representation.
11348//
11349// API parameter values that are decorated as "sensitive" in the API will not
11350// be included in the string output. The member name will be present, but the
11351// value will be replaced with "sensitive".
11352func (s RevokeIpRulesOutput) GoString() string {
11353	return s.String()
11354}
11355
11356// Describes the root volume for a WorkSpace bundle.
11357type RootStorage struct {
11358	_ struct{} `type:"structure"`
11359
11360	// The size of the root volume.
11361	Capacity *string `min:"1" type:"string"`
11362}
11363
11364// String returns the string representation.
11365//
11366// API parameter values that are decorated as "sensitive" in the API will not
11367// be included in the string output. The member name will be present, but the
11368// value will be replaced with "sensitive".
11369func (s RootStorage) String() string {
11370	return awsutil.Prettify(s)
11371}
11372
11373// GoString returns the string representation.
11374//
11375// API parameter values that are decorated as "sensitive" in the API will not
11376// be included in the string output. The member name will be present, but the
11377// value will be replaced with "sensitive".
11378func (s RootStorage) GoString() string {
11379	return s.String()
11380}
11381
11382// Validate inspects the fields of the type to determine if they are valid.
11383func (s *RootStorage) Validate() error {
11384	invalidParams := request.ErrInvalidParams{Context: "RootStorage"}
11385	if s.Capacity != nil && len(*s.Capacity) < 1 {
11386		invalidParams.Add(request.NewErrParamMinLen("Capacity", 1))
11387	}
11388
11389	if invalidParams.Len() > 0 {
11390		return invalidParams
11391	}
11392	return nil
11393}
11394
11395// SetCapacity sets the Capacity field's value.
11396func (s *RootStorage) SetCapacity(v string) *RootStorage {
11397	s.Capacity = &v
11398	return s
11399}
11400
11401// Describes the self-service permissions for a directory. For more information,
11402// see Enable Self-Service WorkSpace Management Capabilities for Your Users
11403// (https://docs.aws.amazon.com/workspaces/latest/adminguide/enable-user-self-service-workspace-management.html).
11404type SelfservicePermissions struct {
11405	_ struct{} `type:"structure"`
11406
11407	// Specifies whether users can change the compute type (bundle) for their WorkSpace.
11408	ChangeComputeType *string `type:"string" enum:"ReconnectEnum"`
11409
11410	// Specifies whether users can increase the volume size of the drives on their
11411	// WorkSpace.
11412	IncreaseVolumeSize *string `type:"string" enum:"ReconnectEnum"`
11413
11414	// Specifies whether users can rebuild the operating system of a WorkSpace to
11415	// its original state.
11416	RebuildWorkspace *string `type:"string" enum:"ReconnectEnum"`
11417
11418	// Specifies whether users can restart their WorkSpace.
11419	RestartWorkspace *string `type:"string" enum:"ReconnectEnum"`
11420
11421	// Specifies whether users can switch the running mode of their WorkSpace.
11422	SwitchRunningMode *string `type:"string" enum:"ReconnectEnum"`
11423}
11424
11425// String returns the string representation.
11426//
11427// API parameter values that are decorated as "sensitive" in the API will not
11428// be included in the string output. The member name will be present, but the
11429// value will be replaced with "sensitive".
11430func (s SelfservicePermissions) String() string {
11431	return awsutil.Prettify(s)
11432}
11433
11434// GoString returns the string representation.
11435//
11436// API parameter values that are decorated as "sensitive" in the API will not
11437// be included in the string output. The member name will be present, but the
11438// value will be replaced with "sensitive".
11439func (s SelfservicePermissions) GoString() string {
11440	return s.String()
11441}
11442
11443// SetChangeComputeType sets the ChangeComputeType field's value.
11444func (s *SelfservicePermissions) SetChangeComputeType(v string) *SelfservicePermissions {
11445	s.ChangeComputeType = &v
11446	return s
11447}
11448
11449// SetIncreaseVolumeSize sets the IncreaseVolumeSize field's value.
11450func (s *SelfservicePermissions) SetIncreaseVolumeSize(v string) *SelfservicePermissions {
11451	s.IncreaseVolumeSize = &v
11452	return s
11453}
11454
11455// SetRebuildWorkspace sets the RebuildWorkspace field's value.
11456func (s *SelfservicePermissions) SetRebuildWorkspace(v string) *SelfservicePermissions {
11457	s.RebuildWorkspace = &v
11458	return s
11459}
11460
11461// SetRestartWorkspace sets the RestartWorkspace field's value.
11462func (s *SelfservicePermissions) SetRestartWorkspace(v string) *SelfservicePermissions {
11463	s.RestartWorkspace = &v
11464	return s
11465}
11466
11467// SetSwitchRunningMode sets the SwitchRunningMode field's value.
11468func (s *SelfservicePermissions) SetSwitchRunningMode(v string) *SelfservicePermissions {
11469	s.SwitchRunningMode = &v
11470	return s
11471}
11472
11473// Describes a snapshot.
11474type Snapshot struct {
11475	_ struct{} `type:"structure"`
11476
11477	// The time when the snapshot was created.
11478	SnapshotTime *time.Time `type:"timestamp"`
11479}
11480
11481// String returns the string representation.
11482//
11483// API parameter values that are decorated as "sensitive" in the API will not
11484// be included in the string output. The member name will be present, but the
11485// value will be replaced with "sensitive".
11486func (s Snapshot) String() string {
11487	return awsutil.Prettify(s)
11488}
11489
11490// GoString returns the string representation.
11491//
11492// API parameter values that are decorated as "sensitive" in the API will not
11493// be included in the string output. The member name will be present, but the
11494// value will be replaced with "sensitive".
11495func (s Snapshot) GoString() string {
11496	return s.String()
11497}
11498
11499// SetSnapshotTime sets the SnapshotTime field's value.
11500func (s *Snapshot) SetSnapshotTime(v time.Time) *Snapshot {
11501	s.SnapshotTime = &v
11502	return s
11503}
11504
11505// Information used to start a WorkSpace.
11506type StartRequest struct {
11507	_ struct{} `type:"structure"`
11508
11509	// The identifier of the WorkSpace.
11510	WorkspaceId *string `type:"string"`
11511}
11512
11513// String returns the string representation.
11514//
11515// API parameter values that are decorated as "sensitive" in the API will not
11516// be included in the string output. The member name will be present, but the
11517// value will be replaced with "sensitive".
11518func (s StartRequest) String() string {
11519	return awsutil.Prettify(s)
11520}
11521
11522// GoString returns the string representation.
11523//
11524// API parameter values that are decorated as "sensitive" in the API will not
11525// be included in the string output. The member name will be present, but the
11526// value will be replaced with "sensitive".
11527func (s StartRequest) GoString() string {
11528	return s.String()
11529}
11530
11531// SetWorkspaceId sets the WorkspaceId field's value.
11532func (s *StartRequest) SetWorkspaceId(v string) *StartRequest {
11533	s.WorkspaceId = &v
11534	return s
11535}
11536
11537type StartWorkspacesInput struct {
11538	_ struct{} `type:"structure"`
11539
11540	// The WorkSpaces to start. You can specify up to 25 WorkSpaces.
11541	//
11542	// StartWorkspaceRequests is a required field
11543	StartWorkspaceRequests []*StartRequest `min:"1" type:"list" required:"true"`
11544}
11545
11546// String returns the string representation.
11547//
11548// API parameter values that are decorated as "sensitive" in the API will not
11549// be included in the string output. The member name will be present, but the
11550// value will be replaced with "sensitive".
11551func (s StartWorkspacesInput) String() string {
11552	return awsutil.Prettify(s)
11553}
11554
11555// GoString returns the string representation.
11556//
11557// API parameter values that are decorated as "sensitive" in the API will not
11558// be included in the string output. The member name will be present, but the
11559// value will be replaced with "sensitive".
11560func (s StartWorkspacesInput) GoString() string {
11561	return s.String()
11562}
11563
11564// Validate inspects the fields of the type to determine if they are valid.
11565func (s *StartWorkspacesInput) Validate() error {
11566	invalidParams := request.ErrInvalidParams{Context: "StartWorkspacesInput"}
11567	if s.StartWorkspaceRequests == nil {
11568		invalidParams.Add(request.NewErrParamRequired("StartWorkspaceRequests"))
11569	}
11570	if s.StartWorkspaceRequests != nil && len(s.StartWorkspaceRequests) < 1 {
11571		invalidParams.Add(request.NewErrParamMinLen("StartWorkspaceRequests", 1))
11572	}
11573
11574	if invalidParams.Len() > 0 {
11575		return invalidParams
11576	}
11577	return nil
11578}
11579
11580// SetStartWorkspaceRequests sets the StartWorkspaceRequests field's value.
11581func (s *StartWorkspacesInput) SetStartWorkspaceRequests(v []*StartRequest) *StartWorkspacesInput {
11582	s.StartWorkspaceRequests = v
11583	return s
11584}
11585
11586type StartWorkspacesOutput struct {
11587	_ struct{} `type:"structure"`
11588
11589	// Information about the WorkSpaces that could not be started.
11590	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
11591}
11592
11593// String returns the string representation.
11594//
11595// API parameter values that are decorated as "sensitive" in the API will not
11596// be included in the string output. The member name will be present, but the
11597// value will be replaced with "sensitive".
11598func (s StartWorkspacesOutput) String() string {
11599	return awsutil.Prettify(s)
11600}
11601
11602// GoString returns the string representation.
11603//
11604// API parameter values that are decorated as "sensitive" in the API will not
11605// be included in the string output. The member name will be present, but the
11606// value will be replaced with "sensitive".
11607func (s StartWorkspacesOutput) GoString() string {
11608	return s.String()
11609}
11610
11611// SetFailedRequests sets the FailedRequests field's value.
11612func (s *StartWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *StartWorkspacesOutput {
11613	s.FailedRequests = v
11614	return s
11615}
11616
11617// Describes the information used to stop a WorkSpace.
11618type StopRequest struct {
11619	_ struct{} `type:"structure"`
11620
11621	// The identifier of the WorkSpace.
11622	WorkspaceId *string `type:"string"`
11623}
11624
11625// String returns the string representation.
11626//
11627// API parameter values that are decorated as "sensitive" in the API will not
11628// be included in the string output. The member name will be present, but the
11629// value will be replaced with "sensitive".
11630func (s StopRequest) String() string {
11631	return awsutil.Prettify(s)
11632}
11633
11634// GoString returns the string representation.
11635//
11636// API parameter values that are decorated as "sensitive" in the API will not
11637// be included in the string output. The member name will be present, but the
11638// value will be replaced with "sensitive".
11639func (s StopRequest) GoString() string {
11640	return s.String()
11641}
11642
11643// SetWorkspaceId sets the WorkspaceId field's value.
11644func (s *StopRequest) SetWorkspaceId(v string) *StopRequest {
11645	s.WorkspaceId = &v
11646	return s
11647}
11648
11649type StopWorkspacesInput struct {
11650	_ struct{} `type:"structure"`
11651
11652	// The WorkSpaces to stop. You can specify up to 25 WorkSpaces.
11653	//
11654	// StopWorkspaceRequests is a required field
11655	StopWorkspaceRequests []*StopRequest `min:"1" type:"list" required:"true"`
11656}
11657
11658// String returns the string representation.
11659//
11660// API parameter values that are decorated as "sensitive" in the API will not
11661// be included in the string output. The member name will be present, but the
11662// value will be replaced with "sensitive".
11663func (s StopWorkspacesInput) String() string {
11664	return awsutil.Prettify(s)
11665}
11666
11667// GoString returns the string representation.
11668//
11669// API parameter values that are decorated as "sensitive" in the API will not
11670// be included in the string output. The member name will be present, but the
11671// value will be replaced with "sensitive".
11672func (s StopWorkspacesInput) GoString() string {
11673	return s.String()
11674}
11675
11676// Validate inspects the fields of the type to determine if they are valid.
11677func (s *StopWorkspacesInput) Validate() error {
11678	invalidParams := request.ErrInvalidParams{Context: "StopWorkspacesInput"}
11679	if s.StopWorkspaceRequests == nil {
11680		invalidParams.Add(request.NewErrParamRequired("StopWorkspaceRequests"))
11681	}
11682	if s.StopWorkspaceRequests != nil && len(s.StopWorkspaceRequests) < 1 {
11683		invalidParams.Add(request.NewErrParamMinLen("StopWorkspaceRequests", 1))
11684	}
11685
11686	if invalidParams.Len() > 0 {
11687		return invalidParams
11688	}
11689	return nil
11690}
11691
11692// SetStopWorkspaceRequests sets the StopWorkspaceRequests field's value.
11693func (s *StopWorkspacesInput) SetStopWorkspaceRequests(v []*StopRequest) *StopWorkspacesInput {
11694	s.StopWorkspaceRequests = v
11695	return s
11696}
11697
11698type StopWorkspacesOutput struct {
11699	_ struct{} `type:"structure"`
11700
11701	// Information about the WorkSpaces that could not be stopped.
11702	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
11703}
11704
11705// String returns the string representation.
11706//
11707// API parameter values that are decorated as "sensitive" in the API will not
11708// be included in the string output. The member name will be present, but the
11709// value will be replaced with "sensitive".
11710func (s StopWorkspacesOutput) String() string {
11711	return awsutil.Prettify(s)
11712}
11713
11714// GoString returns the string representation.
11715//
11716// API parameter values that are decorated as "sensitive" in the API will not
11717// be included in the string output. The member name will be present, but the
11718// value will be replaced with "sensitive".
11719func (s StopWorkspacesOutput) GoString() string {
11720	return s.String()
11721}
11722
11723// SetFailedRequests sets the FailedRequests field's value.
11724func (s *StopWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *StopWorkspacesOutput {
11725	s.FailedRequests = v
11726	return s
11727}
11728
11729// Describes a tag.
11730type Tag struct {
11731	_ struct{} `type:"structure"`
11732
11733	// The key of the tag.
11734	//
11735	// Key is a required field
11736	Key *string `min:"1" type:"string" required:"true"`
11737
11738	// The value of the tag.
11739	Value *string `type:"string"`
11740}
11741
11742// String returns the string representation.
11743//
11744// API parameter values that are decorated as "sensitive" in the API will not
11745// be included in the string output. The member name will be present, but the
11746// value will be replaced with "sensitive".
11747func (s Tag) String() string {
11748	return awsutil.Prettify(s)
11749}
11750
11751// GoString returns the string representation.
11752//
11753// API parameter values that are decorated as "sensitive" in the API will not
11754// be included in the string output. The member name will be present, but the
11755// value will be replaced with "sensitive".
11756func (s Tag) GoString() string {
11757	return s.String()
11758}
11759
11760// Validate inspects the fields of the type to determine if they are valid.
11761func (s *Tag) Validate() error {
11762	invalidParams := request.ErrInvalidParams{Context: "Tag"}
11763	if s.Key == nil {
11764		invalidParams.Add(request.NewErrParamRequired("Key"))
11765	}
11766	if s.Key != nil && len(*s.Key) < 1 {
11767		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
11768	}
11769
11770	if invalidParams.Len() > 0 {
11771		return invalidParams
11772	}
11773	return nil
11774}
11775
11776// SetKey sets the Key field's value.
11777func (s *Tag) SetKey(v string) *Tag {
11778	s.Key = &v
11779	return s
11780}
11781
11782// SetValue sets the Value field's value.
11783func (s *Tag) SetValue(v string) *Tag {
11784	s.Value = &v
11785	return s
11786}
11787
11788// Describes the information used to terminate a WorkSpace.
11789type TerminateRequest struct {
11790	_ struct{} `type:"structure"`
11791
11792	// The identifier of the WorkSpace.
11793	//
11794	// WorkspaceId is a required field
11795	WorkspaceId *string `type:"string" required:"true"`
11796}
11797
11798// String returns the string representation.
11799//
11800// API parameter values that are decorated as "sensitive" in the API will not
11801// be included in the string output. The member name will be present, but the
11802// value will be replaced with "sensitive".
11803func (s TerminateRequest) String() string {
11804	return awsutil.Prettify(s)
11805}
11806
11807// GoString returns the string representation.
11808//
11809// API parameter values that are decorated as "sensitive" in the API will not
11810// be included in the string output. The member name will be present, but the
11811// value will be replaced with "sensitive".
11812func (s TerminateRequest) GoString() string {
11813	return s.String()
11814}
11815
11816// Validate inspects the fields of the type to determine if they are valid.
11817func (s *TerminateRequest) Validate() error {
11818	invalidParams := request.ErrInvalidParams{Context: "TerminateRequest"}
11819	if s.WorkspaceId == nil {
11820		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
11821	}
11822
11823	if invalidParams.Len() > 0 {
11824		return invalidParams
11825	}
11826	return nil
11827}
11828
11829// SetWorkspaceId sets the WorkspaceId field's value.
11830func (s *TerminateRequest) SetWorkspaceId(v string) *TerminateRequest {
11831	s.WorkspaceId = &v
11832	return s
11833}
11834
11835type TerminateWorkspacesInput struct {
11836	_ struct{} `type:"structure"`
11837
11838	// The WorkSpaces to terminate. You can specify up to 25 WorkSpaces.
11839	//
11840	// TerminateWorkspaceRequests is a required field
11841	TerminateWorkspaceRequests []*TerminateRequest `min:"1" type:"list" required:"true"`
11842}
11843
11844// String returns the string representation.
11845//
11846// API parameter values that are decorated as "sensitive" in the API will not
11847// be included in the string output. The member name will be present, but the
11848// value will be replaced with "sensitive".
11849func (s TerminateWorkspacesInput) String() string {
11850	return awsutil.Prettify(s)
11851}
11852
11853// GoString returns the string representation.
11854//
11855// API parameter values that are decorated as "sensitive" in the API will not
11856// be included in the string output. The member name will be present, but the
11857// value will be replaced with "sensitive".
11858func (s TerminateWorkspacesInput) GoString() string {
11859	return s.String()
11860}
11861
11862// Validate inspects the fields of the type to determine if they are valid.
11863func (s *TerminateWorkspacesInput) Validate() error {
11864	invalidParams := request.ErrInvalidParams{Context: "TerminateWorkspacesInput"}
11865	if s.TerminateWorkspaceRequests == nil {
11866		invalidParams.Add(request.NewErrParamRequired("TerminateWorkspaceRequests"))
11867	}
11868	if s.TerminateWorkspaceRequests != nil && len(s.TerminateWorkspaceRequests) < 1 {
11869		invalidParams.Add(request.NewErrParamMinLen("TerminateWorkspaceRequests", 1))
11870	}
11871	if s.TerminateWorkspaceRequests != nil {
11872		for i, v := range s.TerminateWorkspaceRequests {
11873			if v == nil {
11874				continue
11875			}
11876			if err := v.Validate(); err != nil {
11877				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TerminateWorkspaceRequests", i), err.(request.ErrInvalidParams))
11878			}
11879		}
11880	}
11881
11882	if invalidParams.Len() > 0 {
11883		return invalidParams
11884	}
11885	return nil
11886}
11887
11888// SetTerminateWorkspaceRequests sets the TerminateWorkspaceRequests field's value.
11889func (s *TerminateWorkspacesInput) SetTerminateWorkspaceRequests(v []*TerminateRequest) *TerminateWorkspacesInput {
11890	s.TerminateWorkspaceRequests = v
11891	return s
11892}
11893
11894type TerminateWorkspacesOutput struct {
11895	_ struct{} `type:"structure"`
11896
11897	// Information about the WorkSpaces that could not be terminated.
11898	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
11899}
11900
11901// String returns the string representation.
11902//
11903// API parameter values that are decorated as "sensitive" in the API will not
11904// be included in the string output. The member name will be present, but the
11905// value will be replaced with "sensitive".
11906func (s TerminateWorkspacesOutput) String() string {
11907	return awsutil.Prettify(s)
11908}
11909
11910// GoString returns the string representation.
11911//
11912// API parameter values that are decorated as "sensitive" in the API will not
11913// be included in the string output. The member name will be present, but the
11914// value will be replaced with "sensitive".
11915func (s TerminateWorkspacesOutput) GoString() string {
11916	return s.String()
11917}
11918
11919// SetFailedRequests sets the FailedRequests field's value.
11920func (s *TerminateWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *TerminateWorkspacesOutput {
11921	s.FailedRequests = v
11922	return s
11923}
11924
11925// The configuration of this network is not supported for this operation, or
11926// your network configuration conflicts with the Amazon WorkSpaces management
11927// network IP range. For more information, see Configure a VPC for Amazon WorkSpaces
11928// (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html).
11929type UnsupportedNetworkConfigurationException struct {
11930	_            struct{}                  `type:"structure"`
11931	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11932
11933	Message_ *string `locationName:"message" type:"string"`
11934}
11935
11936// String returns the string representation.
11937//
11938// API parameter values that are decorated as "sensitive" in the API will not
11939// be included in the string output. The member name will be present, but the
11940// value will be replaced with "sensitive".
11941func (s UnsupportedNetworkConfigurationException) String() string {
11942	return awsutil.Prettify(s)
11943}
11944
11945// GoString returns the string representation.
11946//
11947// API parameter values that are decorated as "sensitive" in the API will not
11948// be included in the string output. The member name will be present, but the
11949// value will be replaced with "sensitive".
11950func (s UnsupportedNetworkConfigurationException) GoString() string {
11951	return s.String()
11952}
11953
11954func newErrorUnsupportedNetworkConfigurationException(v protocol.ResponseMetadata) error {
11955	return &UnsupportedNetworkConfigurationException{
11956		RespMetadata: v,
11957	}
11958}
11959
11960// Code returns the exception type name.
11961func (s *UnsupportedNetworkConfigurationException) Code() string {
11962	return "UnsupportedNetworkConfigurationException"
11963}
11964
11965// Message returns the exception's message.
11966func (s *UnsupportedNetworkConfigurationException) Message() string {
11967	if s.Message_ != nil {
11968		return *s.Message_
11969	}
11970	return ""
11971}
11972
11973// OrigErr always returns nil, satisfies awserr.Error interface.
11974func (s *UnsupportedNetworkConfigurationException) OrigErr() error {
11975	return nil
11976}
11977
11978func (s *UnsupportedNetworkConfigurationException) Error() string {
11979	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11980}
11981
11982// Status code returns the HTTP status code for the request's response error.
11983func (s *UnsupportedNetworkConfigurationException) StatusCode() int {
11984	return s.RespMetadata.StatusCode
11985}
11986
11987// RequestID returns the service's response RequestID for request.
11988func (s *UnsupportedNetworkConfigurationException) RequestID() string {
11989	return s.RespMetadata.RequestID
11990}
11991
11992// The configuration of this WorkSpace is not supported for this operation.
11993// For more information, see Required Configuration and Service Components for
11994// WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/required-service-components.html).
11995type UnsupportedWorkspaceConfigurationException struct {
11996	_            struct{}                  `type:"structure"`
11997	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11998
11999	Message_ *string `locationName:"message" type:"string"`
12000}
12001
12002// String returns the string representation.
12003//
12004// API parameter values that are decorated as "sensitive" in the API will not
12005// be included in the string output. The member name will be present, but the
12006// value will be replaced with "sensitive".
12007func (s UnsupportedWorkspaceConfigurationException) String() string {
12008	return awsutil.Prettify(s)
12009}
12010
12011// GoString returns the string representation.
12012//
12013// API parameter values that are decorated as "sensitive" in the API will not
12014// be included in the string output. The member name will be present, but the
12015// value will be replaced with "sensitive".
12016func (s UnsupportedWorkspaceConfigurationException) GoString() string {
12017	return s.String()
12018}
12019
12020func newErrorUnsupportedWorkspaceConfigurationException(v protocol.ResponseMetadata) error {
12021	return &UnsupportedWorkspaceConfigurationException{
12022		RespMetadata: v,
12023	}
12024}
12025
12026// Code returns the exception type name.
12027func (s *UnsupportedWorkspaceConfigurationException) Code() string {
12028	return "UnsupportedWorkspaceConfigurationException"
12029}
12030
12031// Message returns the exception's message.
12032func (s *UnsupportedWorkspaceConfigurationException) Message() string {
12033	if s.Message_ != nil {
12034		return *s.Message_
12035	}
12036	return ""
12037}
12038
12039// OrigErr always returns nil, satisfies awserr.Error interface.
12040func (s *UnsupportedWorkspaceConfigurationException) OrigErr() error {
12041	return nil
12042}
12043
12044func (s *UnsupportedWorkspaceConfigurationException) Error() string {
12045	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12046}
12047
12048// Status code returns the HTTP status code for the request's response error.
12049func (s *UnsupportedWorkspaceConfigurationException) StatusCode() int {
12050	return s.RespMetadata.StatusCode
12051}
12052
12053// RequestID returns the service's response RequestID for request.
12054func (s *UnsupportedWorkspaceConfigurationException) RequestID() string {
12055	return s.RespMetadata.RequestID
12056}
12057
12058type UpdateConnectionAliasPermissionInput struct {
12059	_ struct{} `type:"structure"`
12060
12061	// The identifier of the connection alias that you want to update permissions
12062	// for.
12063	//
12064	// AliasId is a required field
12065	AliasId *string `min:"13" type:"string" required:"true"`
12066
12067	// Indicates whether to share or unshare the connection alias with the specified
12068	// Amazon Web Services account.
12069	//
12070	// ConnectionAliasPermission is a required field
12071	ConnectionAliasPermission *ConnectionAliasPermission `type:"structure" required:"true"`
12072}
12073
12074// String returns the string representation.
12075//
12076// API parameter values that are decorated as "sensitive" in the API will not
12077// be included in the string output. The member name will be present, but the
12078// value will be replaced with "sensitive".
12079func (s UpdateConnectionAliasPermissionInput) String() string {
12080	return awsutil.Prettify(s)
12081}
12082
12083// GoString returns the string representation.
12084//
12085// API parameter values that are decorated as "sensitive" in the API will not
12086// be included in the string output. The member name will be present, but the
12087// value will be replaced with "sensitive".
12088func (s UpdateConnectionAliasPermissionInput) GoString() string {
12089	return s.String()
12090}
12091
12092// Validate inspects the fields of the type to determine if they are valid.
12093func (s *UpdateConnectionAliasPermissionInput) Validate() error {
12094	invalidParams := request.ErrInvalidParams{Context: "UpdateConnectionAliasPermissionInput"}
12095	if s.AliasId == nil {
12096		invalidParams.Add(request.NewErrParamRequired("AliasId"))
12097	}
12098	if s.AliasId != nil && len(*s.AliasId) < 13 {
12099		invalidParams.Add(request.NewErrParamMinLen("AliasId", 13))
12100	}
12101	if s.ConnectionAliasPermission == nil {
12102		invalidParams.Add(request.NewErrParamRequired("ConnectionAliasPermission"))
12103	}
12104	if s.ConnectionAliasPermission != nil {
12105		if err := s.ConnectionAliasPermission.Validate(); err != nil {
12106			invalidParams.AddNested("ConnectionAliasPermission", err.(request.ErrInvalidParams))
12107		}
12108	}
12109
12110	if invalidParams.Len() > 0 {
12111		return invalidParams
12112	}
12113	return nil
12114}
12115
12116// SetAliasId sets the AliasId field's value.
12117func (s *UpdateConnectionAliasPermissionInput) SetAliasId(v string) *UpdateConnectionAliasPermissionInput {
12118	s.AliasId = &v
12119	return s
12120}
12121
12122// SetConnectionAliasPermission sets the ConnectionAliasPermission field's value.
12123func (s *UpdateConnectionAliasPermissionInput) SetConnectionAliasPermission(v *ConnectionAliasPermission) *UpdateConnectionAliasPermissionInput {
12124	s.ConnectionAliasPermission = v
12125	return s
12126}
12127
12128type UpdateConnectionAliasPermissionOutput struct {
12129	_ struct{} `type:"structure"`
12130}
12131
12132// String returns the string representation.
12133//
12134// API parameter values that are decorated as "sensitive" in the API will not
12135// be included in the string output. The member name will be present, but the
12136// value will be replaced with "sensitive".
12137func (s UpdateConnectionAliasPermissionOutput) String() string {
12138	return awsutil.Prettify(s)
12139}
12140
12141// GoString returns the string representation.
12142//
12143// API parameter values that are decorated as "sensitive" in the API will not
12144// be included in the string output. The member name will be present, but the
12145// value will be replaced with "sensitive".
12146func (s UpdateConnectionAliasPermissionOutput) GoString() string {
12147	return s.String()
12148}
12149
12150// Describes whether a WorkSpace image needs to be updated with the latest drivers
12151// and other components required by Amazon WorkSpaces.
12152//
12153// Only Windows 10 WorkSpace images can be programmatically updated at this
12154// time.
12155type UpdateResult struct {
12156	_ struct{} `type:"structure"`
12157
12158	// A description of whether updates for the WorkSpace image are pending or available.
12159	Description *string `min:"1" type:"string"`
12160
12161	// Indicates whether updated drivers or other components are available for the
12162	// specified WorkSpace image.
12163	UpdateAvailable *bool `type:"boolean"`
12164}
12165
12166// String returns the string representation.
12167//
12168// API parameter values that are decorated as "sensitive" in the API will not
12169// be included in the string output. The member name will be present, but the
12170// value will be replaced with "sensitive".
12171func (s UpdateResult) String() string {
12172	return awsutil.Prettify(s)
12173}
12174
12175// GoString returns the string representation.
12176//
12177// API parameter values that are decorated as "sensitive" in the API will not
12178// be included in the string output. The member name will be present, but the
12179// value will be replaced with "sensitive".
12180func (s UpdateResult) GoString() string {
12181	return s.String()
12182}
12183
12184// SetDescription sets the Description field's value.
12185func (s *UpdateResult) SetDescription(v string) *UpdateResult {
12186	s.Description = &v
12187	return s
12188}
12189
12190// SetUpdateAvailable sets the UpdateAvailable field's value.
12191func (s *UpdateResult) SetUpdateAvailable(v bool) *UpdateResult {
12192	s.UpdateAvailable = &v
12193	return s
12194}
12195
12196type UpdateRulesOfIpGroupInput struct {
12197	_ struct{} `type:"structure"`
12198
12199	// The identifier of the group.
12200	//
12201	// GroupId is a required field
12202	GroupId *string `type:"string" required:"true"`
12203
12204	// One or more rules.
12205	//
12206	// UserRules is a required field
12207	UserRules []*IpRuleItem `type:"list" required:"true"`
12208}
12209
12210// String returns the string representation.
12211//
12212// API parameter values that are decorated as "sensitive" in the API will not
12213// be included in the string output. The member name will be present, but the
12214// value will be replaced with "sensitive".
12215func (s UpdateRulesOfIpGroupInput) String() string {
12216	return awsutil.Prettify(s)
12217}
12218
12219// GoString returns the string representation.
12220//
12221// API parameter values that are decorated as "sensitive" in the API will not
12222// be included in the string output. The member name will be present, but the
12223// value will be replaced with "sensitive".
12224func (s UpdateRulesOfIpGroupInput) GoString() string {
12225	return s.String()
12226}
12227
12228// Validate inspects the fields of the type to determine if they are valid.
12229func (s *UpdateRulesOfIpGroupInput) Validate() error {
12230	invalidParams := request.ErrInvalidParams{Context: "UpdateRulesOfIpGroupInput"}
12231	if s.GroupId == nil {
12232		invalidParams.Add(request.NewErrParamRequired("GroupId"))
12233	}
12234	if s.UserRules == nil {
12235		invalidParams.Add(request.NewErrParamRequired("UserRules"))
12236	}
12237
12238	if invalidParams.Len() > 0 {
12239		return invalidParams
12240	}
12241	return nil
12242}
12243
12244// SetGroupId sets the GroupId field's value.
12245func (s *UpdateRulesOfIpGroupInput) SetGroupId(v string) *UpdateRulesOfIpGroupInput {
12246	s.GroupId = &v
12247	return s
12248}
12249
12250// SetUserRules sets the UserRules field's value.
12251func (s *UpdateRulesOfIpGroupInput) SetUserRules(v []*IpRuleItem) *UpdateRulesOfIpGroupInput {
12252	s.UserRules = v
12253	return s
12254}
12255
12256type UpdateRulesOfIpGroupOutput struct {
12257	_ struct{} `type:"structure"`
12258}
12259
12260// String returns the string representation.
12261//
12262// API parameter values that are decorated as "sensitive" in the API will not
12263// be included in the string output. The member name will be present, but the
12264// value will be replaced with "sensitive".
12265func (s UpdateRulesOfIpGroupOutput) String() string {
12266	return awsutil.Prettify(s)
12267}
12268
12269// GoString returns the string representation.
12270//
12271// API parameter values that are decorated as "sensitive" in the API will not
12272// be included in the string output. The member name will be present, but the
12273// value will be replaced with "sensitive".
12274func (s UpdateRulesOfIpGroupOutput) GoString() string {
12275	return s.String()
12276}
12277
12278type UpdateWorkspaceBundleInput struct {
12279	_ struct{} `type:"structure"`
12280
12281	// The identifier of the bundle.
12282	BundleId *string `type:"string"`
12283
12284	// The identifier of the image.
12285	ImageId *string `type:"string"`
12286}
12287
12288// String returns the string representation.
12289//
12290// API parameter values that are decorated as "sensitive" in the API will not
12291// be included in the string output. The member name will be present, but the
12292// value will be replaced with "sensitive".
12293func (s UpdateWorkspaceBundleInput) String() string {
12294	return awsutil.Prettify(s)
12295}
12296
12297// GoString returns the string representation.
12298//
12299// API parameter values that are decorated as "sensitive" in the API will not
12300// be included in the string output. The member name will be present, but the
12301// value will be replaced with "sensitive".
12302func (s UpdateWorkspaceBundleInput) GoString() string {
12303	return s.String()
12304}
12305
12306// SetBundleId sets the BundleId field's value.
12307func (s *UpdateWorkspaceBundleInput) SetBundleId(v string) *UpdateWorkspaceBundleInput {
12308	s.BundleId = &v
12309	return s
12310}
12311
12312// SetImageId sets the ImageId field's value.
12313func (s *UpdateWorkspaceBundleInput) SetImageId(v string) *UpdateWorkspaceBundleInput {
12314	s.ImageId = &v
12315	return s
12316}
12317
12318type UpdateWorkspaceBundleOutput struct {
12319	_ struct{} `type:"structure"`
12320}
12321
12322// String returns the string representation.
12323//
12324// API parameter values that are decorated as "sensitive" in the API will not
12325// be included in the string output. The member name will be present, but the
12326// value will be replaced with "sensitive".
12327func (s UpdateWorkspaceBundleOutput) String() string {
12328	return awsutil.Prettify(s)
12329}
12330
12331// GoString returns the string representation.
12332//
12333// API parameter values that are decorated as "sensitive" in the API will not
12334// be included in the string output. The member name will be present, but the
12335// value will be replaced with "sensitive".
12336func (s UpdateWorkspaceBundleOutput) GoString() string {
12337	return s.String()
12338}
12339
12340type UpdateWorkspaceImagePermissionInput struct {
12341	_ struct{} `type:"structure"`
12342
12343	// The permission to copy the image. This permission can be revoked only after
12344	// an image has been shared.
12345	//
12346	// AllowCopyImage is a required field
12347	AllowCopyImage *bool `type:"boolean" required:"true"`
12348
12349	// The identifier of the image.
12350	//
12351	// ImageId is a required field
12352	ImageId *string `type:"string" required:"true"`
12353
12354	// The identifier of the Amazon Web Services account to share or unshare the
12355	// image with.
12356	//
12357	// Before sharing the image, confirm that you are sharing to the correct Amazon
12358	// Web Services account ID.
12359	//
12360	// SharedAccountId is a required field
12361	SharedAccountId *string `type:"string" required:"true"`
12362}
12363
12364// String returns the string representation.
12365//
12366// API parameter values that are decorated as "sensitive" in the API will not
12367// be included in the string output. The member name will be present, but the
12368// value will be replaced with "sensitive".
12369func (s UpdateWorkspaceImagePermissionInput) String() string {
12370	return awsutil.Prettify(s)
12371}
12372
12373// GoString returns the string representation.
12374//
12375// API parameter values that are decorated as "sensitive" in the API will not
12376// be included in the string output. The member name will be present, but the
12377// value will be replaced with "sensitive".
12378func (s UpdateWorkspaceImagePermissionInput) GoString() string {
12379	return s.String()
12380}
12381
12382// Validate inspects the fields of the type to determine if they are valid.
12383func (s *UpdateWorkspaceImagePermissionInput) Validate() error {
12384	invalidParams := request.ErrInvalidParams{Context: "UpdateWorkspaceImagePermissionInput"}
12385	if s.AllowCopyImage == nil {
12386		invalidParams.Add(request.NewErrParamRequired("AllowCopyImage"))
12387	}
12388	if s.ImageId == nil {
12389		invalidParams.Add(request.NewErrParamRequired("ImageId"))
12390	}
12391	if s.SharedAccountId == nil {
12392		invalidParams.Add(request.NewErrParamRequired("SharedAccountId"))
12393	}
12394
12395	if invalidParams.Len() > 0 {
12396		return invalidParams
12397	}
12398	return nil
12399}
12400
12401// SetAllowCopyImage sets the AllowCopyImage field's value.
12402func (s *UpdateWorkspaceImagePermissionInput) SetAllowCopyImage(v bool) *UpdateWorkspaceImagePermissionInput {
12403	s.AllowCopyImage = &v
12404	return s
12405}
12406
12407// SetImageId sets the ImageId field's value.
12408func (s *UpdateWorkspaceImagePermissionInput) SetImageId(v string) *UpdateWorkspaceImagePermissionInput {
12409	s.ImageId = &v
12410	return s
12411}
12412
12413// SetSharedAccountId sets the SharedAccountId field's value.
12414func (s *UpdateWorkspaceImagePermissionInput) SetSharedAccountId(v string) *UpdateWorkspaceImagePermissionInput {
12415	s.SharedAccountId = &v
12416	return s
12417}
12418
12419type UpdateWorkspaceImagePermissionOutput struct {
12420	_ struct{} `type:"structure"`
12421}
12422
12423// String returns the string representation.
12424//
12425// API parameter values that are decorated as "sensitive" in the API will not
12426// be included in the string output. The member name will be present, but the
12427// value will be replaced with "sensitive".
12428func (s UpdateWorkspaceImagePermissionOutput) String() string {
12429	return awsutil.Prettify(s)
12430}
12431
12432// GoString returns the string representation.
12433//
12434// API parameter values that are decorated as "sensitive" in the API will not
12435// be included in the string output. The member name will be present, but the
12436// value will be replaced with "sensitive".
12437func (s UpdateWorkspaceImagePermissionOutput) GoString() string {
12438	return s.String()
12439}
12440
12441// Describes the user volume for a WorkSpace bundle.
12442type UserStorage struct {
12443	_ struct{} `type:"structure"`
12444
12445	// The size of the user volume.
12446	Capacity *string `min:"1" type:"string"`
12447}
12448
12449// String returns the string representation.
12450//
12451// API parameter values that are decorated as "sensitive" in the API will not
12452// be included in the string output. The member name will be present, but the
12453// value will be replaced with "sensitive".
12454func (s UserStorage) String() string {
12455	return awsutil.Prettify(s)
12456}
12457
12458// GoString returns the string representation.
12459//
12460// API parameter values that are decorated as "sensitive" in the API will not
12461// be included in the string output. The member name will be present, but the
12462// value will be replaced with "sensitive".
12463func (s UserStorage) GoString() string {
12464	return s.String()
12465}
12466
12467// Validate inspects the fields of the type to determine if they are valid.
12468func (s *UserStorage) Validate() error {
12469	invalidParams := request.ErrInvalidParams{Context: "UserStorage"}
12470	if s.Capacity != nil && len(*s.Capacity) < 1 {
12471		invalidParams.Add(request.NewErrParamMinLen("Capacity", 1))
12472	}
12473
12474	if invalidParams.Len() > 0 {
12475		return invalidParams
12476	}
12477	return nil
12478}
12479
12480// SetCapacity sets the Capacity field's value.
12481func (s *UserStorage) SetCapacity(v string) *UserStorage {
12482	s.Capacity = &v
12483	return s
12484}
12485
12486// Describes a WorkSpace.
12487type Workspace struct {
12488	_ struct{} `type:"structure"`
12489
12490	// The identifier of the bundle used to create the WorkSpace.
12491	BundleId *string `type:"string"`
12492
12493	// The name of the WorkSpace, as seen by the operating system. The format of
12494	// this name varies. For more information, see Launch a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/launch-workspaces-tutorials.html).
12495	ComputerName *string `type:"string"`
12496
12497	// The identifier of the Directory Service directory for the WorkSpace.
12498	DirectoryId *string `min:"10" type:"string"`
12499
12500	// The error code that is returned if the WorkSpace cannot be created.
12501	ErrorCode *string `type:"string"`
12502
12503	// The text of the error message that is returned if the WorkSpace cannot be
12504	// created.
12505	ErrorMessage *string `type:"string"`
12506
12507	// The IP address of the WorkSpace.
12508	IpAddress *string `type:"string"`
12509
12510	// The modification states of the WorkSpace.
12511	ModificationStates []*ModificationState `type:"list"`
12512
12513	// Indicates whether the data stored on the root volume is encrypted.
12514	RootVolumeEncryptionEnabled *bool `type:"boolean"`
12515
12516	// The operational state of the WorkSpace.
12517	//
12518	// After a WorkSpace is terminated, the TERMINATED state is returned only briefly
12519	// before the WorkSpace directory metadata is cleaned up, so this state is rarely
12520	// returned. To confirm that a WorkSpace is terminated, check for the WorkSpace
12521	// ID by using DescribeWorkSpaces (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaces.html).
12522	// If the WorkSpace ID isn't returned, then the WorkSpace has been successfully
12523	// terminated.
12524	State *string `type:"string" enum:"WorkspaceState"`
12525
12526	// The identifier of the subnet for the WorkSpace.
12527	SubnetId *string `min:"15" type:"string"`
12528
12529	// The user for the WorkSpace.
12530	UserName *string `min:"1" type:"string"`
12531
12532	// Indicates whether the data stored on the user volume is encrypted.
12533	UserVolumeEncryptionEnabled *bool `type:"boolean"`
12534
12535	// The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon
12536	// WorkSpaces does not support asymmetric KMS keys.
12537	VolumeEncryptionKey *string `type:"string"`
12538
12539	// The identifier of the WorkSpace.
12540	WorkspaceId *string `type:"string"`
12541
12542	// The properties of the WorkSpace.
12543	WorkspaceProperties *WorkspaceProperties `type:"structure"`
12544}
12545
12546// String returns the string representation.
12547//
12548// API parameter values that are decorated as "sensitive" in the API will not
12549// be included in the string output. The member name will be present, but the
12550// value will be replaced with "sensitive".
12551func (s Workspace) String() string {
12552	return awsutil.Prettify(s)
12553}
12554
12555// GoString returns the string representation.
12556//
12557// API parameter values that are decorated as "sensitive" in the API will not
12558// be included in the string output. The member name will be present, but the
12559// value will be replaced with "sensitive".
12560func (s Workspace) GoString() string {
12561	return s.String()
12562}
12563
12564// SetBundleId sets the BundleId field's value.
12565func (s *Workspace) SetBundleId(v string) *Workspace {
12566	s.BundleId = &v
12567	return s
12568}
12569
12570// SetComputerName sets the ComputerName field's value.
12571func (s *Workspace) SetComputerName(v string) *Workspace {
12572	s.ComputerName = &v
12573	return s
12574}
12575
12576// SetDirectoryId sets the DirectoryId field's value.
12577func (s *Workspace) SetDirectoryId(v string) *Workspace {
12578	s.DirectoryId = &v
12579	return s
12580}
12581
12582// SetErrorCode sets the ErrorCode field's value.
12583func (s *Workspace) SetErrorCode(v string) *Workspace {
12584	s.ErrorCode = &v
12585	return s
12586}
12587
12588// SetErrorMessage sets the ErrorMessage field's value.
12589func (s *Workspace) SetErrorMessage(v string) *Workspace {
12590	s.ErrorMessage = &v
12591	return s
12592}
12593
12594// SetIpAddress sets the IpAddress field's value.
12595func (s *Workspace) SetIpAddress(v string) *Workspace {
12596	s.IpAddress = &v
12597	return s
12598}
12599
12600// SetModificationStates sets the ModificationStates field's value.
12601func (s *Workspace) SetModificationStates(v []*ModificationState) *Workspace {
12602	s.ModificationStates = v
12603	return s
12604}
12605
12606// SetRootVolumeEncryptionEnabled sets the RootVolumeEncryptionEnabled field's value.
12607func (s *Workspace) SetRootVolumeEncryptionEnabled(v bool) *Workspace {
12608	s.RootVolumeEncryptionEnabled = &v
12609	return s
12610}
12611
12612// SetState sets the State field's value.
12613func (s *Workspace) SetState(v string) *Workspace {
12614	s.State = &v
12615	return s
12616}
12617
12618// SetSubnetId sets the SubnetId field's value.
12619func (s *Workspace) SetSubnetId(v string) *Workspace {
12620	s.SubnetId = &v
12621	return s
12622}
12623
12624// SetUserName sets the UserName field's value.
12625func (s *Workspace) SetUserName(v string) *Workspace {
12626	s.UserName = &v
12627	return s
12628}
12629
12630// SetUserVolumeEncryptionEnabled sets the UserVolumeEncryptionEnabled field's value.
12631func (s *Workspace) SetUserVolumeEncryptionEnabled(v bool) *Workspace {
12632	s.UserVolumeEncryptionEnabled = &v
12633	return s
12634}
12635
12636// SetVolumeEncryptionKey sets the VolumeEncryptionKey field's value.
12637func (s *Workspace) SetVolumeEncryptionKey(v string) *Workspace {
12638	s.VolumeEncryptionKey = &v
12639	return s
12640}
12641
12642// SetWorkspaceId sets the WorkspaceId field's value.
12643func (s *Workspace) SetWorkspaceId(v string) *Workspace {
12644	s.WorkspaceId = &v
12645	return s
12646}
12647
12648// SetWorkspaceProperties sets the WorkspaceProperties field's value.
12649func (s *Workspace) SetWorkspaceProperties(v *WorkspaceProperties) *Workspace {
12650	s.WorkspaceProperties = v
12651	return s
12652}
12653
12654// The device types and operating systems that can be used to access a WorkSpace.
12655// For more information, see Amazon WorkSpaces Client Network Requirements (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-network-requirements.html).
12656type WorkspaceAccessProperties struct {
12657	_ struct{} `type:"structure"`
12658
12659	// Indicates whether users can use Android and Android-compatible Chrome OS
12660	// devices to access their WorkSpaces.
12661	DeviceTypeAndroid *string `type:"string" enum:"AccessPropertyValue"`
12662
12663	// Indicates whether users can use Chromebooks to access their WorkSpaces.
12664	DeviceTypeChromeOs *string `type:"string" enum:"AccessPropertyValue"`
12665
12666	// Indicates whether users can use iOS devices to access their WorkSpaces.
12667	DeviceTypeIos *string `type:"string" enum:"AccessPropertyValue"`
12668
12669	// Indicates whether users can use Linux clients to access their WorkSpaces.
12670	DeviceTypeLinux *string `type:"string" enum:"AccessPropertyValue"`
12671
12672	// Indicates whether users can use macOS clients to access their WorkSpaces.
12673	DeviceTypeOsx *string `type:"string" enum:"AccessPropertyValue"`
12674
12675	// Indicates whether users can access their WorkSpaces through a web browser.
12676	DeviceTypeWeb *string `type:"string" enum:"AccessPropertyValue"`
12677
12678	// Indicates whether users can use Windows clients to access their WorkSpaces.
12679	DeviceTypeWindows *string `type:"string" enum:"AccessPropertyValue"`
12680
12681	// Indicates whether users can use zero client devices to access their WorkSpaces.
12682	DeviceTypeZeroClient *string `type:"string" enum:"AccessPropertyValue"`
12683}
12684
12685// String returns the string representation.
12686//
12687// API parameter values that are decorated as "sensitive" in the API will not
12688// be included in the string output. The member name will be present, but the
12689// value will be replaced with "sensitive".
12690func (s WorkspaceAccessProperties) String() string {
12691	return awsutil.Prettify(s)
12692}
12693
12694// GoString returns the string representation.
12695//
12696// API parameter values that are decorated as "sensitive" in the API will not
12697// be included in the string output. The member name will be present, but the
12698// value will be replaced with "sensitive".
12699func (s WorkspaceAccessProperties) GoString() string {
12700	return s.String()
12701}
12702
12703// SetDeviceTypeAndroid sets the DeviceTypeAndroid field's value.
12704func (s *WorkspaceAccessProperties) SetDeviceTypeAndroid(v string) *WorkspaceAccessProperties {
12705	s.DeviceTypeAndroid = &v
12706	return s
12707}
12708
12709// SetDeviceTypeChromeOs sets the DeviceTypeChromeOs field's value.
12710func (s *WorkspaceAccessProperties) SetDeviceTypeChromeOs(v string) *WorkspaceAccessProperties {
12711	s.DeviceTypeChromeOs = &v
12712	return s
12713}
12714
12715// SetDeviceTypeIos sets the DeviceTypeIos field's value.
12716func (s *WorkspaceAccessProperties) SetDeviceTypeIos(v string) *WorkspaceAccessProperties {
12717	s.DeviceTypeIos = &v
12718	return s
12719}
12720
12721// SetDeviceTypeLinux sets the DeviceTypeLinux field's value.
12722func (s *WorkspaceAccessProperties) SetDeviceTypeLinux(v string) *WorkspaceAccessProperties {
12723	s.DeviceTypeLinux = &v
12724	return s
12725}
12726
12727// SetDeviceTypeOsx sets the DeviceTypeOsx field's value.
12728func (s *WorkspaceAccessProperties) SetDeviceTypeOsx(v string) *WorkspaceAccessProperties {
12729	s.DeviceTypeOsx = &v
12730	return s
12731}
12732
12733// SetDeviceTypeWeb sets the DeviceTypeWeb field's value.
12734func (s *WorkspaceAccessProperties) SetDeviceTypeWeb(v string) *WorkspaceAccessProperties {
12735	s.DeviceTypeWeb = &v
12736	return s
12737}
12738
12739// SetDeviceTypeWindows sets the DeviceTypeWindows field's value.
12740func (s *WorkspaceAccessProperties) SetDeviceTypeWindows(v string) *WorkspaceAccessProperties {
12741	s.DeviceTypeWindows = &v
12742	return s
12743}
12744
12745// SetDeviceTypeZeroClient sets the DeviceTypeZeroClient field's value.
12746func (s *WorkspaceAccessProperties) SetDeviceTypeZeroClient(v string) *WorkspaceAccessProperties {
12747	s.DeviceTypeZeroClient = &v
12748	return s
12749}
12750
12751// Describes a WorkSpace bundle.
12752type WorkspaceBundle struct {
12753	_ struct{} `type:"structure"`
12754
12755	// The identifier of the bundle.
12756	BundleId *string `type:"string"`
12757
12758	// The compute type of the bundle. For more information, see Amazon WorkSpaces
12759	// Bundles (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
12760	ComputeType *ComputeType `type:"structure"`
12761
12762	// The time when the bundle was created.
12763	CreationTime *time.Time `type:"timestamp"`
12764
12765	// The description of the bundle.
12766	Description *string `type:"string"`
12767
12768	// The identifier of the image that was used to create the bundle.
12769	ImageId *string `type:"string"`
12770
12771	// The last time that the bundle was updated.
12772	LastUpdatedTime *time.Time `type:"timestamp"`
12773
12774	// The name of the bundle.
12775	Name *string `min:"1" type:"string"`
12776
12777	// The owner of the bundle. This is the account identifier of the owner, or
12778	// AMAZON if the bundle is provided by Amazon Web Services.
12779	Owner *string `type:"string"`
12780
12781	// The size of the root volume.
12782	RootStorage *RootStorage `type:"structure"`
12783
12784	// The size of the user volume.
12785	UserStorage *UserStorage `type:"structure"`
12786}
12787
12788// String returns the string representation.
12789//
12790// API parameter values that are decorated as "sensitive" in the API will not
12791// be included in the string output. The member name will be present, but the
12792// value will be replaced with "sensitive".
12793func (s WorkspaceBundle) String() string {
12794	return awsutil.Prettify(s)
12795}
12796
12797// GoString returns the string representation.
12798//
12799// API parameter values that are decorated as "sensitive" in the API will not
12800// be included in the string output. The member name will be present, but the
12801// value will be replaced with "sensitive".
12802func (s WorkspaceBundle) GoString() string {
12803	return s.String()
12804}
12805
12806// SetBundleId sets the BundleId field's value.
12807func (s *WorkspaceBundle) SetBundleId(v string) *WorkspaceBundle {
12808	s.BundleId = &v
12809	return s
12810}
12811
12812// SetComputeType sets the ComputeType field's value.
12813func (s *WorkspaceBundle) SetComputeType(v *ComputeType) *WorkspaceBundle {
12814	s.ComputeType = v
12815	return s
12816}
12817
12818// SetCreationTime sets the CreationTime field's value.
12819func (s *WorkspaceBundle) SetCreationTime(v time.Time) *WorkspaceBundle {
12820	s.CreationTime = &v
12821	return s
12822}
12823
12824// SetDescription sets the Description field's value.
12825func (s *WorkspaceBundle) SetDescription(v string) *WorkspaceBundle {
12826	s.Description = &v
12827	return s
12828}
12829
12830// SetImageId sets the ImageId field's value.
12831func (s *WorkspaceBundle) SetImageId(v string) *WorkspaceBundle {
12832	s.ImageId = &v
12833	return s
12834}
12835
12836// SetLastUpdatedTime sets the LastUpdatedTime field's value.
12837func (s *WorkspaceBundle) SetLastUpdatedTime(v time.Time) *WorkspaceBundle {
12838	s.LastUpdatedTime = &v
12839	return s
12840}
12841
12842// SetName sets the Name field's value.
12843func (s *WorkspaceBundle) SetName(v string) *WorkspaceBundle {
12844	s.Name = &v
12845	return s
12846}
12847
12848// SetOwner sets the Owner field's value.
12849func (s *WorkspaceBundle) SetOwner(v string) *WorkspaceBundle {
12850	s.Owner = &v
12851	return s
12852}
12853
12854// SetRootStorage sets the RootStorage field's value.
12855func (s *WorkspaceBundle) SetRootStorage(v *RootStorage) *WorkspaceBundle {
12856	s.RootStorage = v
12857	return s
12858}
12859
12860// SetUserStorage sets the UserStorage field's value.
12861func (s *WorkspaceBundle) SetUserStorage(v *UserStorage) *WorkspaceBundle {
12862	s.UserStorage = v
12863	return s
12864}
12865
12866// Describes the connection status of a WorkSpace.
12867type WorkspaceConnectionStatus struct {
12868	_ struct{} `type:"structure"`
12869
12870	// The connection state of the WorkSpace. The connection state is unknown if
12871	// the WorkSpace is stopped.
12872	ConnectionState *string `type:"string" enum:"ConnectionState"`
12873
12874	// The timestamp of the connection status check.
12875	ConnectionStateCheckTimestamp *time.Time `type:"timestamp"`
12876
12877	// The timestamp of the last known user connection.
12878	LastKnownUserConnectionTimestamp *time.Time `type:"timestamp"`
12879
12880	// The identifier of the WorkSpace.
12881	WorkspaceId *string `type:"string"`
12882}
12883
12884// String returns the string representation.
12885//
12886// API parameter values that are decorated as "sensitive" in the API will not
12887// be included in the string output. The member name will be present, but the
12888// value will be replaced with "sensitive".
12889func (s WorkspaceConnectionStatus) String() string {
12890	return awsutil.Prettify(s)
12891}
12892
12893// GoString returns the string representation.
12894//
12895// API parameter values that are decorated as "sensitive" in the API will not
12896// be included in the string output. The member name will be present, but the
12897// value will be replaced with "sensitive".
12898func (s WorkspaceConnectionStatus) GoString() string {
12899	return s.String()
12900}
12901
12902// SetConnectionState sets the ConnectionState field's value.
12903func (s *WorkspaceConnectionStatus) SetConnectionState(v string) *WorkspaceConnectionStatus {
12904	s.ConnectionState = &v
12905	return s
12906}
12907
12908// SetConnectionStateCheckTimestamp sets the ConnectionStateCheckTimestamp field's value.
12909func (s *WorkspaceConnectionStatus) SetConnectionStateCheckTimestamp(v time.Time) *WorkspaceConnectionStatus {
12910	s.ConnectionStateCheckTimestamp = &v
12911	return s
12912}
12913
12914// SetLastKnownUserConnectionTimestamp sets the LastKnownUserConnectionTimestamp field's value.
12915func (s *WorkspaceConnectionStatus) SetLastKnownUserConnectionTimestamp(v time.Time) *WorkspaceConnectionStatus {
12916	s.LastKnownUserConnectionTimestamp = &v
12917	return s
12918}
12919
12920// SetWorkspaceId sets the WorkspaceId field's value.
12921func (s *WorkspaceConnectionStatus) SetWorkspaceId(v string) *WorkspaceConnectionStatus {
12922	s.WorkspaceId = &v
12923	return s
12924}
12925
12926// Describes the default properties that are used for creating WorkSpaces. For
12927// more information, see Update Directory Details for Your WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html).
12928type WorkspaceCreationProperties struct {
12929	_ struct{} `type:"structure"`
12930
12931	// The identifier of your custom security group.
12932	CustomSecurityGroupId *string `min:"11" type:"string"`
12933
12934	// The default organizational unit (OU) for your WorkSpaces directories. This
12935	// string must be the full Lightweight Directory Access Protocol (LDAP) distinguished
12936	// name for the target domain and OU. It must be in the form "OU=value,DC=value,DC=value",
12937	// where value is any string of characters, and the number of domain components
12938	// (DCs) is two or more. For example, OU=WorkSpaces_machines,DC=machines,DC=example,DC=com.
12939	//
12940	//    * To avoid errors, certain characters in the distinguished name must be
12941	//    escaped. For more information, see Distinguished Names (https://docs.microsoft.com/previous-versions/windows/desktop/ldap/distinguished-names)
12942	//    in the Microsoft documentation.
12943	//
12944	//    * The API doesn't validate whether the OU exists.
12945	DefaultOu *string `type:"string"`
12946
12947	// Indicates whether internet access is enabled for your WorkSpaces.
12948	EnableInternetAccess *bool `type:"boolean"`
12949
12950	// Indicates whether maintenance mode is enabled for your WorkSpaces. For more
12951	// information, see WorkSpace Maintenance (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).
12952	EnableMaintenanceMode *bool `type:"boolean"`
12953
12954	// Indicates whether Amazon WorkDocs is enabled for your WorkSpaces.
12955	//
12956	// If WorkDocs is already enabled for a WorkSpaces directory and you disable
12957	// it, new WorkSpaces launched in the directory will not have WorkDocs enabled.
12958	// However, WorkDocs remains enabled for any existing WorkSpaces, unless you
12959	// either disable users' access to WorkDocs or you delete the WorkDocs site.
12960	// To disable users' access to WorkDocs, see Disabling Users (https://docs.aws.amazon.com/workdocs/latest/adminguide/inactive-user.html)
12961	// in the Amazon WorkDocs Administration Guide. To delete a WorkDocs site, see
12962	// Deleting a Site (https://docs.aws.amazon.com/workdocs/latest/adminguide/manage-sites.html)
12963	// in the Amazon WorkDocs Administration Guide.
12964	//
12965	// If you enable WorkDocs on a directory that already has existing WorkSpaces,
12966	// the existing WorkSpaces and any new WorkSpaces that are launched in the directory
12967	// will have WorkDocs enabled.
12968	EnableWorkDocs *bool `type:"boolean"`
12969
12970	// Indicates whether users are local administrators of their WorkSpaces.
12971	UserEnabledAsLocalAdministrator *bool `type:"boolean"`
12972}
12973
12974// String returns the string representation.
12975//
12976// API parameter values that are decorated as "sensitive" in the API will not
12977// be included in the string output. The member name will be present, but the
12978// value will be replaced with "sensitive".
12979func (s WorkspaceCreationProperties) String() string {
12980	return awsutil.Prettify(s)
12981}
12982
12983// GoString returns the string representation.
12984//
12985// API parameter values that are decorated as "sensitive" in the API will not
12986// be included in the string output. The member name will be present, but the
12987// value will be replaced with "sensitive".
12988func (s WorkspaceCreationProperties) GoString() string {
12989	return s.String()
12990}
12991
12992// Validate inspects the fields of the type to determine if they are valid.
12993func (s *WorkspaceCreationProperties) Validate() error {
12994	invalidParams := request.ErrInvalidParams{Context: "WorkspaceCreationProperties"}
12995	if s.CustomSecurityGroupId != nil && len(*s.CustomSecurityGroupId) < 11 {
12996		invalidParams.Add(request.NewErrParamMinLen("CustomSecurityGroupId", 11))
12997	}
12998
12999	if invalidParams.Len() > 0 {
13000		return invalidParams
13001	}
13002	return nil
13003}
13004
13005// SetCustomSecurityGroupId sets the CustomSecurityGroupId field's value.
13006func (s *WorkspaceCreationProperties) SetCustomSecurityGroupId(v string) *WorkspaceCreationProperties {
13007	s.CustomSecurityGroupId = &v
13008	return s
13009}
13010
13011// SetDefaultOu sets the DefaultOu field's value.
13012func (s *WorkspaceCreationProperties) SetDefaultOu(v string) *WorkspaceCreationProperties {
13013	s.DefaultOu = &v
13014	return s
13015}
13016
13017// SetEnableInternetAccess sets the EnableInternetAccess field's value.
13018func (s *WorkspaceCreationProperties) SetEnableInternetAccess(v bool) *WorkspaceCreationProperties {
13019	s.EnableInternetAccess = &v
13020	return s
13021}
13022
13023// SetEnableMaintenanceMode sets the EnableMaintenanceMode field's value.
13024func (s *WorkspaceCreationProperties) SetEnableMaintenanceMode(v bool) *WorkspaceCreationProperties {
13025	s.EnableMaintenanceMode = &v
13026	return s
13027}
13028
13029// SetEnableWorkDocs sets the EnableWorkDocs field's value.
13030func (s *WorkspaceCreationProperties) SetEnableWorkDocs(v bool) *WorkspaceCreationProperties {
13031	s.EnableWorkDocs = &v
13032	return s
13033}
13034
13035// SetUserEnabledAsLocalAdministrator sets the UserEnabledAsLocalAdministrator field's value.
13036func (s *WorkspaceCreationProperties) SetUserEnabledAsLocalAdministrator(v bool) *WorkspaceCreationProperties {
13037	s.UserEnabledAsLocalAdministrator = &v
13038	return s
13039}
13040
13041// Describes a directory that is used with Amazon WorkSpaces.
13042type WorkspaceDirectory struct {
13043	_ struct{} `type:"structure"`
13044
13045	// The directory alias.
13046	Alias *string `type:"string"`
13047
13048	// The user name for the service account.
13049	CustomerUserName *string `min:"1" type:"string"`
13050
13051	// The directory identifier.
13052	DirectoryId *string `min:"10" type:"string"`
13053
13054	// The name of the directory.
13055	DirectoryName *string `type:"string"`
13056
13057	// The directory type.
13058	DirectoryType *string `type:"string" enum:"WorkspaceDirectoryType"`
13059
13060	// The IP addresses of the DNS servers for the directory.
13061	DnsIpAddresses []*string `type:"list"`
13062
13063	// The identifier of the IAM role. This is the role that allows Amazon WorkSpaces
13064	// to make calls to other services, such as Amazon EC2, on your behalf.
13065	IamRoleId *string `type:"string"`
13066
13067	// The identifiers of the IP access control groups associated with the directory.
13068	IpGroupIds []*string `locationName:"ipGroupIds" type:"list"`
13069
13070	// The registration code for the directory. This is the code that users enter
13071	// in their Amazon WorkSpaces client application to connect to the directory.
13072	RegistrationCode *string `min:"1" type:"string"`
13073
13074	// The default self-service permissions for WorkSpaces in the directory.
13075	SelfservicePermissions *SelfservicePermissions `type:"structure"`
13076
13077	// The state of the directory's registration with Amazon WorkSpaces. After a
13078	// directory is deregistered, the DEREGISTERED state is returned very briefly
13079	// before the directory metadata is cleaned up, so this state is rarely returned.
13080	// To confirm that a directory is deregistered, check for the directory ID by
13081	// using DescribeWorkspaceDirectories (https://docs.aws.amazon.com/workspaces/latest/api/API_DescribeWorkspaceDirectories.html).
13082	// If the directory ID isn't returned, then the directory has been successfully
13083	// deregistered.
13084	State *string `type:"string" enum:"WorkspaceDirectoryState"`
13085
13086	// The identifiers of the subnets used with the directory.
13087	SubnetIds []*string `type:"list"`
13088
13089	// Specifies whether the directory is dedicated or shared. To use Bring Your
13090	// Own License (BYOL), this value must be set to DEDICATED. For more information,
13091	// see Bring Your Own Windows Desktop Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
13092	Tenancy *string `type:"string" enum:"Tenancy"`
13093
13094	// The devices and operating systems that users can use to access WorkSpaces.
13095	WorkspaceAccessProperties *WorkspaceAccessProperties `type:"structure"`
13096
13097	// The default creation properties for all WorkSpaces in the directory.
13098	WorkspaceCreationProperties *DefaultWorkspaceCreationProperties `type:"structure"`
13099
13100	// The identifier of the security group that is assigned to new WorkSpaces.
13101	WorkspaceSecurityGroupId *string `min:"11" type:"string"`
13102}
13103
13104// String returns the string representation.
13105//
13106// API parameter values that are decorated as "sensitive" in the API will not
13107// be included in the string output. The member name will be present, but the
13108// value will be replaced with "sensitive".
13109func (s WorkspaceDirectory) String() string {
13110	return awsutil.Prettify(s)
13111}
13112
13113// GoString returns the string representation.
13114//
13115// API parameter values that are decorated as "sensitive" in the API will not
13116// be included in the string output. The member name will be present, but the
13117// value will be replaced with "sensitive".
13118func (s WorkspaceDirectory) GoString() string {
13119	return s.String()
13120}
13121
13122// SetAlias sets the Alias field's value.
13123func (s *WorkspaceDirectory) SetAlias(v string) *WorkspaceDirectory {
13124	s.Alias = &v
13125	return s
13126}
13127
13128// SetCustomerUserName sets the CustomerUserName field's value.
13129func (s *WorkspaceDirectory) SetCustomerUserName(v string) *WorkspaceDirectory {
13130	s.CustomerUserName = &v
13131	return s
13132}
13133
13134// SetDirectoryId sets the DirectoryId field's value.
13135func (s *WorkspaceDirectory) SetDirectoryId(v string) *WorkspaceDirectory {
13136	s.DirectoryId = &v
13137	return s
13138}
13139
13140// SetDirectoryName sets the DirectoryName field's value.
13141func (s *WorkspaceDirectory) SetDirectoryName(v string) *WorkspaceDirectory {
13142	s.DirectoryName = &v
13143	return s
13144}
13145
13146// SetDirectoryType sets the DirectoryType field's value.
13147func (s *WorkspaceDirectory) SetDirectoryType(v string) *WorkspaceDirectory {
13148	s.DirectoryType = &v
13149	return s
13150}
13151
13152// SetDnsIpAddresses sets the DnsIpAddresses field's value.
13153func (s *WorkspaceDirectory) SetDnsIpAddresses(v []*string) *WorkspaceDirectory {
13154	s.DnsIpAddresses = v
13155	return s
13156}
13157
13158// SetIamRoleId sets the IamRoleId field's value.
13159func (s *WorkspaceDirectory) SetIamRoleId(v string) *WorkspaceDirectory {
13160	s.IamRoleId = &v
13161	return s
13162}
13163
13164// SetIpGroupIds sets the IpGroupIds field's value.
13165func (s *WorkspaceDirectory) SetIpGroupIds(v []*string) *WorkspaceDirectory {
13166	s.IpGroupIds = v
13167	return s
13168}
13169
13170// SetRegistrationCode sets the RegistrationCode field's value.
13171func (s *WorkspaceDirectory) SetRegistrationCode(v string) *WorkspaceDirectory {
13172	s.RegistrationCode = &v
13173	return s
13174}
13175
13176// SetSelfservicePermissions sets the SelfservicePermissions field's value.
13177func (s *WorkspaceDirectory) SetSelfservicePermissions(v *SelfservicePermissions) *WorkspaceDirectory {
13178	s.SelfservicePermissions = v
13179	return s
13180}
13181
13182// SetState sets the State field's value.
13183func (s *WorkspaceDirectory) SetState(v string) *WorkspaceDirectory {
13184	s.State = &v
13185	return s
13186}
13187
13188// SetSubnetIds sets the SubnetIds field's value.
13189func (s *WorkspaceDirectory) SetSubnetIds(v []*string) *WorkspaceDirectory {
13190	s.SubnetIds = v
13191	return s
13192}
13193
13194// SetTenancy sets the Tenancy field's value.
13195func (s *WorkspaceDirectory) SetTenancy(v string) *WorkspaceDirectory {
13196	s.Tenancy = &v
13197	return s
13198}
13199
13200// SetWorkspaceAccessProperties sets the WorkspaceAccessProperties field's value.
13201func (s *WorkspaceDirectory) SetWorkspaceAccessProperties(v *WorkspaceAccessProperties) *WorkspaceDirectory {
13202	s.WorkspaceAccessProperties = v
13203	return s
13204}
13205
13206// SetWorkspaceCreationProperties sets the WorkspaceCreationProperties field's value.
13207func (s *WorkspaceDirectory) SetWorkspaceCreationProperties(v *DefaultWorkspaceCreationProperties) *WorkspaceDirectory {
13208	s.WorkspaceCreationProperties = v
13209	return s
13210}
13211
13212// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
13213func (s *WorkspaceDirectory) SetWorkspaceSecurityGroupId(v string) *WorkspaceDirectory {
13214	s.WorkspaceSecurityGroupId = &v
13215	return s
13216}
13217
13218// Describes a WorkSpace image.
13219type WorkspaceImage struct {
13220	_ struct{} `type:"structure"`
13221
13222	// The date when the image was created. If the image has been shared, the Amazon
13223	// Web Services account that the image has been shared with sees the original
13224	// creation date of the image.
13225	Created *time.Time `type:"timestamp"`
13226
13227	// The description of the image.
13228	Description *string `min:"1" type:"string"`
13229
13230	// The error code that is returned for the image.
13231	ErrorCode *string `type:"string"`
13232
13233	// The text of the error message that is returned for the image.
13234	ErrorMessage *string `type:"string"`
13235
13236	// The identifier of the image.
13237	ImageId *string `type:"string"`
13238
13239	// The name of the image.
13240	Name *string `min:"1" type:"string"`
13241
13242	// The operating system that the image is running.
13243	OperatingSystem *OperatingSystem `type:"structure"`
13244
13245	// The identifier of the Amazon Web Services account that owns the image.
13246	OwnerAccountId *string `type:"string"`
13247
13248	// Specifies whether the image is running on dedicated hardware. When Bring
13249	// Your Own License (BYOL) is enabled, this value is set to DEDICATED. For more
13250	// information, see Bring Your Own Windows Desktop Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
13251	RequiredTenancy *string `type:"string" enum:"WorkspaceImageRequiredTenancy"`
13252
13253	// The status of the image.
13254	State *string `type:"string" enum:"WorkspaceImageState"`
13255
13256	// The updates (if any) that are available for the specified image.
13257	Updates *UpdateResult `type:"structure"`
13258}
13259
13260// String returns the string representation.
13261//
13262// API parameter values that are decorated as "sensitive" in the API will not
13263// be included in the string output. The member name will be present, but the
13264// value will be replaced with "sensitive".
13265func (s WorkspaceImage) String() string {
13266	return awsutil.Prettify(s)
13267}
13268
13269// GoString returns the string representation.
13270//
13271// API parameter values that are decorated as "sensitive" in the API will not
13272// be included in the string output. The member name will be present, but the
13273// value will be replaced with "sensitive".
13274func (s WorkspaceImage) GoString() string {
13275	return s.String()
13276}
13277
13278// SetCreated sets the Created field's value.
13279func (s *WorkspaceImage) SetCreated(v time.Time) *WorkspaceImage {
13280	s.Created = &v
13281	return s
13282}
13283
13284// SetDescription sets the Description field's value.
13285func (s *WorkspaceImage) SetDescription(v string) *WorkspaceImage {
13286	s.Description = &v
13287	return s
13288}
13289
13290// SetErrorCode sets the ErrorCode field's value.
13291func (s *WorkspaceImage) SetErrorCode(v string) *WorkspaceImage {
13292	s.ErrorCode = &v
13293	return s
13294}
13295
13296// SetErrorMessage sets the ErrorMessage field's value.
13297func (s *WorkspaceImage) SetErrorMessage(v string) *WorkspaceImage {
13298	s.ErrorMessage = &v
13299	return s
13300}
13301
13302// SetImageId sets the ImageId field's value.
13303func (s *WorkspaceImage) SetImageId(v string) *WorkspaceImage {
13304	s.ImageId = &v
13305	return s
13306}
13307
13308// SetName sets the Name field's value.
13309func (s *WorkspaceImage) SetName(v string) *WorkspaceImage {
13310	s.Name = &v
13311	return s
13312}
13313
13314// SetOperatingSystem sets the OperatingSystem field's value.
13315func (s *WorkspaceImage) SetOperatingSystem(v *OperatingSystem) *WorkspaceImage {
13316	s.OperatingSystem = v
13317	return s
13318}
13319
13320// SetOwnerAccountId sets the OwnerAccountId field's value.
13321func (s *WorkspaceImage) SetOwnerAccountId(v string) *WorkspaceImage {
13322	s.OwnerAccountId = &v
13323	return s
13324}
13325
13326// SetRequiredTenancy sets the RequiredTenancy field's value.
13327func (s *WorkspaceImage) SetRequiredTenancy(v string) *WorkspaceImage {
13328	s.RequiredTenancy = &v
13329	return s
13330}
13331
13332// SetState sets the State field's value.
13333func (s *WorkspaceImage) SetState(v string) *WorkspaceImage {
13334	s.State = &v
13335	return s
13336}
13337
13338// SetUpdates sets the Updates field's value.
13339func (s *WorkspaceImage) SetUpdates(v *UpdateResult) *WorkspaceImage {
13340	s.Updates = v
13341	return s
13342}
13343
13344// Describes a WorkSpace.
13345type WorkspaceProperties struct {
13346	_ struct{} `type:"structure"`
13347
13348	// The compute type. For more information, see Amazon WorkSpaces Bundles (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
13349	ComputeTypeName *string `type:"string" enum:"Compute"`
13350
13351	// The size of the root volume. For important information about how to modify
13352	// the size of the root and user volumes, see Modify a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html).
13353	RootVolumeSizeGib *int64 `type:"integer"`
13354
13355	// The running mode. For more information, see Manage the WorkSpace Running
13356	// Mode (https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html).
13357	RunningMode *string `type:"string" enum:"RunningMode"`
13358
13359	// The time after a user logs off when WorkSpaces are automatically stopped.
13360	// Configured in 60-minute intervals.
13361	RunningModeAutoStopTimeoutInMinutes *int64 `type:"integer"`
13362
13363	// The size of the user storage. For important information about how to modify
13364	// the size of the root and user volumes, see Modify a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/modify-workspaces.html).
13365	UserVolumeSizeGib *int64 `type:"integer"`
13366}
13367
13368// String returns the string representation.
13369//
13370// API parameter values that are decorated as "sensitive" in the API will not
13371// be included in the string output. The member name will be present, but the
13372// value will be replaced with "sensitive".
13373func (s WorkspaceProperties) String() string {
13374	return awsutil.Prettify(s)
13375}
13376
13377// GoString returns the string representation.
13378//
13379// API parameter values that are decorated as "sensitive" in the API will not
13380// be included in the string output. The member name will be present, but the
13381// value will be replaced with "sensitive".
13382func (s WorkspaceProperties) GoString() string {
13383	return s.String()
13384}
13385
13386// SetComputeTypeName sets the ComputeTypeName field's value.
13387func (s *WorkspaceProperties) SetComputeTypeName(v string) *WorkspaceProperties {
13388	s.ComputeTypeName = &v
13389	return s
13390}
13391
13392// SetRootVolumeSizeGib sets the RootVolumeSizeGib field's value.
13393func (s *WorkspaceProperties) SetRootVolumeSizeGib(v int64) *WorkspaceProperties {
13394	s.RootVolumeSizeGib = &v
13395	return s
13396}
13397
13398// SetRunningMode sets the RunningMode field's value.
13399func (s *WorkspaceProperties) SetRunningMode(v string) *WorkspaceProperties {
13400	s.RunningMode = &v
13401	return s
13402}
13403
13404// SetRunningModeAutoStopTimeoutInMinutes sets the RunningModeAutoStopTimeoutInMinutes field's value.
13405func (s *WorkspaceProperties) SetRunningModeAutoStopTimeoutInMinutes(v int64) *WorkspaceProperties {
13406	s.RunningModeAutoStopTimeoutInMinutes = &v
13407	return s
13408}
13409
13410// SetUserVolumeSizeGib sets the UserVolumeSizeGib field's value.
13411func (s *WorkspaceProperties) SetUserVolumeSizeGib(v int64) *WorkspaceProperties {
13412	s.UserVolumeSizeGib = &v
13413	return s
13414}
13415
13416// Describes the information used to create a WorkSpace.
13417type WorkspaceRequest struct {
13418	_ struct{} `type:"structure"`
13419
13420	// The identifier of the bundle for the WorkSpace. You can use DescribeWorkspaceBundles
13421	// to list the available bundles.
13422	//
13423	// BundleId is a required field
13424	BundleId *string `type:"string" required:"true"`
13425
13426	// The identifier of the Directory Service directory for the WorkSpace. You
13427	// can use DescribeWorkspaceDirectories to list the available directories.
13428	//
13429	// DirectoryId is a required field
13430	DirectoryId *string `min:"10" type:"string" required:"true"`
13431
13432	// Indicates whether the data stored on the root volume is encrypted.
13433	RootVolumeEncryptionEnabled *bool `type:"boolean"`
13434
13435	// The tags for the WorkSpace.
13436	Tags []*Tag `type:"list"`
13437
13438	// The user name of the user for the WorkSpace. This user name must exist in
13439	// the Directory Service directory for the WorkSpace.
13440	//
13441	// UserName is a required field
13442	UserName *string `min:"1" type:"string" required:"true"`
13443
13444	// Indicates whether the data stored on the user volume is encrypted.
13445	UserVolumeEncryptionEnabled *bool `type:"boolean"`
13446
13447	// The symmetric KMS key used to encrypt data stored on your WorkSpace. Amazon
13448	// WorkSpaces does not support asymmetric KMS keys.
13449	VolumeEncryptionKey *string `type:"string"`
13450
13451	// The WorkSpace properties.
13452	WorkspaceProperties *WorkspaceProperties `type:"structure"`
13453}
13454
13455// String returns the string representation.
13456//
13457// API parameter values that are decorated as "sensitive" in the API will not
13458// be included in the string output. The member name will be present, but the
13459// value will be replaced with "sensitive".
13460func (s WorkspaceRequest) String() string {
13461	return awsutil.Prettify(s)
13462}
13463
13464// GoString returns the string representation.
13465//
13466// API parameter values that are decorated as "sensitive" in the API will not
13467// be included in the string output. The member name will be present, but the
13468// value will be replaced with "sensitive".
13469func (s WorkspaceRequest) GoString() string {
13470	return s.String()
13471}
13472
13473// Validate inspects the fields of the type to determine if they are valid.
13474func (s *WorkspaceRequest) Validate() error {
13475	invalidParams := request.ErrInvalidParams{Context: "WorkspaceRequest"}
13476	if s.BundleId == nil {
13477		invalidParams.Add(request.NewErrParamRequired("BundleId"))
13478	}
13479	if s.DirectoryId == nil {
13480		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
13481	}
13482	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
13483		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
13484	}
13485	if s.UserName == nil {
13486		invalidParams.Add(request.NewErrParamRequired("UserName"))
13487	}
13488	if s.UserName != nil && len(*s.UserName) < 1 {
13489		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
13490	}
13491	if s.Tags != nil {
13492		for i, v := range s.Tags {
13493			if v == nil {
13494				continue
13495			}
13496			if err := v.Validate(); err != nil {
13497				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
13498			}
13499		}
13500	}
13501
13502	if invalidParams.Len() > 0 {
13503		return invalidParams
13504	}
13505	return nil
13506}
13507
13508// SetBundleId sets the BundleId field's value.
13509func (s *WorkspaceRequest) SetBundleId(v string) *WorkspaceRequest {
13510	s.BundleId = &v
13511	return s
13512}
13513
13514// SetDirectoryId sets the DirectoryId field's value.
13515func (s *WorkspaceRequest) SetDirectoryId(v string) *WorkspaceRequest {
13516	s.DirectoryId = &v
13517	return s
13518}
13519
13520// SetRootVolumeEncryptionEnabled sets the RootVolumeEncryptionEnabled field's value.
13521func (s *WorkspaceRequest) SetRootVolumeEncryptionEnabled(v bool) *WorkspaceRequest {
13522	s.RootVolumeEncryptionEnabled = &v
13523	return s
13524}
13525
13526// SetTags sets the Tags field's value.
13527func (s *WorkspaceRequest) SetTags(v []*Tag) *WorkspaceRequest {
13528	s.Tags = v
13529	return s
13530}
13531
13532// SetUserName sets the UserName field's value.
13533func (s *WorkspaceRequest) SetUserName(v string) *WorkspaceRequest {
13534	s.UserName = &v
13535	return s
13536}
13537
13538// SetUserVolumeEncryptionEnabled sets the UserVolumeEncryptionEnabled field's value.
13539func (s *WorkspaceRequest) SetUserVolumeEncryptionEnabled(v bool) *WorkspaceRequest {
13540	s.UserVolumeEncryptionEnabled = &v
13541	return s
13542}
13543
13544// SetVolumeEncryptionKey sets the VolumeEncryptionKey field's value.
13545func (s *WorkspaceRequest) SetVolumeEncryptionKey(v string) *WorkspaceRequest {
13546	s.VolumeEncryptionKey = &v
13547	return s
13548}
13549
13550// SetWorkspaceProperties sets the WorkspaceProperties field's value.
13551func (s *WorkspaceRequest) SetWorkspaceProperties(v *WorkspaceProperties) *WorkspaceRequest {
13552	s.WorkspaceProperties = v
13553	return s
13554}
13555
13556// The workspaces_DefaultRole role could not be found. If this is the first
13557// time you are registering a directory, you will need to create the workspaces_DefaultRole
13558// role before you can register a directory. For more information, see Creating
13559// the workspaces_DefaultRole Role (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role).
13560type WorkspacesDefaultRoleNotFoundException struct {
13561	_            struct{}                  `type:"structure"`
13562	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
13563
13564	Message_ *string `locationName:"message" type:"string"`
13565}
13566
13567// String returns the string representation.
13568//
13569// API parameter values that are decorated as "sensitive" in the API will not
13570// be included in the string output. The member name will be present, but the
13571// value will be replaced with "sensitive".
13572func (s WorkspacesDefaultRoleNotFoundException) String() string {
13573	return awsutil.Prettify(s)
13574}
13575
13576// GoString returns the string representation.
13577//
13578// API parameter values that are decorated as "sensitive" in the API will not
13579// be included in the string output. The member name will be present, but the
13580// value will be replaced with "sensitive".
13581func (s WorkspacesDefaultRoleNotFoundException) GoString() string {
13582	return s.String()
13583}
13584
13585func newErrorWorkspacesDefaultRoleNotFoundException(v protocol.ResponseMetadata) error {
13586	return &WorkspacesDefaultRoleNotFoundException{
13587		RespMetadata: v,
13588	}
13589}
13590
13591// Code returns the exception type name.
13592func (s *WorkspacesDefaultRoleNotFoundException) Code() string {
13593	return "WorkspacesDefaultRoleNotFoundException"
13594}
13595
13596// Message returns the exception's message.
13597func (s *WorkspacesDefaultRoleNotFoundException) Message() string {
13598	if s.Message_ != nil {
13599		return *s.Message_
13600	}
13601	return ""
13602}
13603
13604// OrigErr always returns nil, satisfies awserr.Error interface.
13605func (s *WorkspacesDefaultRoleNotFoundException) OrigErr() error {
13606	return nil
13607}
13608
13609func (s *WorkspacesDefaultRoleNotFoundException) Error() string {
13610	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
13611}
13612
13613// Status code returns the HTTP status code for the request's response error.
13614func (s *WorkspacesDefaultRoleNotFoundException) StatusCode() int {
13615	return s.RespMetadata.StatusCode
13616}
13617
13618// RequestID returns the service's response RequestID for request.
13619func (s *WorkspacesDefaultRoleNotFoundException) RequestID() string {
13620	return s.RespMetadata.RequestID
13621}
13622
13623const (
13624	// AccessPropertyValueAllow is a AccessPropertyValue enum value
13625	AccessPropertyValueAllow = "ALLOW"
13626
13627	// AccessPropertyValueDeny is a AccessPropertyValue enum value
13628	AccessPropertyValueDeny = "DENY"
13629)
13630
13631// AccessPropertyValue_Values returns all elements of the AccessPropertyValue enum
13632func AccessPropertyValue_Values() []string {
13633	return []string{
13634		AccessPropertyValueAllow,
13635		AccessPropertyValueDeny,
13636	}
13637}
13638
13639const (
13640	// ApplicationMicrosoftOffice2016 is a Application enum value
13641	ApplicationMicrosoftOffice2016 = "Microsoft_Office_2016"
13642
13643	// ApplicationMicrosoftOffice2019 is a Application enum value
13644	ApplicationMicrosoftOffice2019 = "Microsoft_Office_2019"
13645)
13646
13647// Application_Values returns all elements of the Application enum
13648func Application_Values() []string {
13649	return []string{
13650		ApplicationMicrosoftOffice2016,
13651		ApplicationMicrosoftOffice2019,
13652	}
13653}
13654
13655const (
13656	// AssociationStatusNotAssociated is a AssociationStatus enum value
13657	AssociationStatusNotAssociated = "NOT_ASSOCIATED"
13658
13659	// AssociationStatusAssociatedWithOwnerAccount is a AssociationStatus enum value
13660	AssociationStatusAssociatedWithOwnerAccount = "ASSOCIATED_WITH_OWNER_ACCOUNT"
13661
13662	// AssociationStatusAssociatedWithSharedAccount is a AssociationStatus enum value
13663	AssociationStatusAssociatedWithSharedAccount = "ASSOCIATED_WITH_SHARED_ACCOUNT"
13664
13665	// AssociationStatusPendingAssociation is a AssociationStatus enum value
13666	AssociationStatusPendingAssociation = "PENDING_ASSOCIATION"
13667
13668	// AssociationStatusPendingDisassociation is a AssociationStatus enum value
13669	AssociationStatusPendingDisassociation = "PENDING_DISASSOCIATION"
13670)
13671
13672// AssociationStatus_Values returns all elements of the AssociationStatus enum
13673func AssociationStatus_Values() []string {
13674	return []string{
13675		AssociationStatusNotAssociated,
13676		AssociationStatusAssociatedWithOwnerAccount,
13677		AssociationStatusAssociatedWithSharedAccount,
13678		AssociationStatusPendingAssociation,
13679		AssociationStatusPendingDisassociation,
13680	}
13681}
13682
13683const (
13684	// ComputeValue is a Compute enum value
13685	ComputeValue = "VALUE"
13686
13687	// ComputeStandard is a Compute enum value
13688	ComputeStandard = "STANDARD"
13689
13690	// ComputePerformance is a Compute enum value
13691	ComputePerformance = "PERFORMANCE"
13692
13693	// ComputePower is a Compute enum value
13694	ComputePower = "POWER"
13695
13696	// ComputeGraphics is a Compute enum value
13697	ComputeGraphics = "GRAPHICS"
13698
13699	// ComputePowerpro is a Compute enum value
13700	ComputePowerpro = "POWERPRO"
13701
13702	// ComputeGraphicspro is a Compute enum value
13703	ComputeGraphicspro = "GRAPHICSPRO"
13704)
13705
13706// Compute_Values returns all elements of the Compute enum
13707func Compute_Values() []string {
13708	return []string{
13709		ComputeValue,
13710		ComputeStandard,
13711		ComputePerformance,
13712		ComputePower,
13713		ComputeGraphics,
13714		ComputePowerpro,
13715		ComputeGraphicspro,
13716	}
13717}
13718
13719const (
13720	// ConnectionAliasStateCreating is a ConnectionAliasState enum value
13721	ConnectionAliasStateCreating = "CREATING"
13722
13723	// ConnectionAliasStateCreated is a ConnectionAliasState enum value
13724	ConnectionAliasStateCreated = "CREATED"
13725
13726	// ConnectionAliasStateDeleting is a ConnectionAliasState enum value
13727	ConnectionAliasStateDeleting = "DELETING"
13728)
13729
13730// ConnectionAliasState_Values returns all elements of the ConnectionAliasState enum
13731func ConnectionAliasState_Values() []string {
13732	return []string{
13733		ConnectionAliasStateCreating,
13734		ConnectionAliasStateCreated,
13735		ConnectionAliasStateDeleting,
13736	}
13737}
13738
13739const (
13740	// ConnectionStateConnected is a ConnectionState enum value
13741	ConnectionStateConnected = "CONNECTED"
13742
13743	// ConnectionStateDisconnected is a ConnectionState enum value
13744	ConnectionStateDisconnected = "DISCONNECTED"
13745
13746	// ConnectionStateUnknown is a ConnectionState enum value
13747	ConnectionStateUnknown = "UNKNOWN"
13748)
13749
13750// ConnectionState_Values returns all elements of the ConnectionState enum
13751func ConnectionState_Values() []string {
13752	return []string{
13753		ConnectionStateConnected,
13754		ConnectionStateDisconnected,
13755		ConnectionStateUnknown,
13756	}
13757}
13758
13759const (
13760	// DedicatedTenancyModificationStateEnumPending is a DedicatedTenancyModificationStateEnum enum value
13761	DedicatedTenancyModificationStateEnumPending = "PENDING"
13762
13763	// DedicatedTenancyModificationStateEnumCompleted is a DedicatedTenancyModificationStateEnum enum value
13764	DedicatedTenancyModificationStateEnumCompleted = "COMPLETED"
13765
13766	// DedicatedTenancyModificationStateEnumFailed is a DedicatedTenancyModificationStateEnum enum value
13767	DedicatedTenancyModificationStateEnumFailed = "FAILED"
13768)
13769
13770// DedicatedTenancyModificationStateEnum_Values returns all elements of the DedicatedTenancyModificationStateEnum enum
13771func DedicatedTenancyModificationStateEnum_Values() []string {
13772	return []string{
13773		DedicatedTenancyModificationStateEnumPending,
13774		DedicatedTenancyModificationStateEnumCompleted,
13775		DedicatedTenancyModificationStateEnumFailed,
13776	}
13777}
13778
13779const (
13780	// DedicatedTenancySupportEnumEnabled is a DedicatedTenancySupportEnum enum value
13781	DedicatedTenancySupportEnumEnabled = "ENABLED"
13782)
13783
13784// DedicatedTenancySupportEnum_Values returns all elements of the DedicatedTenancySupportEnum enum
13785func DedicatedTenancySupportEnum_Values() []string {
13786	return []string{
13787		DedicatedTenancySupportEnumEnabled,
13788	}
13789}
13790
13791const (
13792	// DedicatedTenancySupportResultEnumEnabled is a DedicatedTenancySupportResultEnum enum value
13793	DedicatedTenancySupportResultEnumEnabled = "ENABLED"
13794
13795	// DedicatedTenancySupportResultEnumDisabled is a DedicatedTenancySupportResultEnum enum value
13796	DedicatedTenancySupportResultEnumDisabled = "DISABLED"
13797)
13798
13799// DedicatedTenancySupportResultEnum_Values returns all elements of the DedicatedTenancySupportResultEnum enum
13800func DedicatedTenancySupportResultEnum_Values() []string {
13801	return []string{
13802		DedicatedTenancySupportResultEnumEnabled,
13803		DedicatedTenancySupportResultEnumDisabled,
13804	}
13805}
13806
13807const (
13808	// ImageTypeOwned is a ImageType enum value
13809	ImageTypeOwned = "OWNED"
13810
13811	// ImageTypeShared is a ImageType enum value
13812	ImageTypeShared = "SHARED"
13813)
13814
13815// ImageType_Values returns all elements of the ImageType enum
13816func ImageType_Values() []string {
13817	return []string{
13818		ImageTypeOwned,
13819		ImageTypeShared,
13820	}
13821}
13822
13823const (
13824	// ModificationResourceEnumRootVolume is a ModificationResourceEnum enum value
13825	ModificationResourceEnumRootVolume = "ROOT_VOLUME"
13826
13827	// ModificationResourceEnumUserVolume is a ModificationResourceEnum enum value
13828	ModificationResourceEnumUserVolume = "USER_VOLUME"
13829
13830	// ModificationResourceEnumComputeType is a ModificationResourceEnum enum value
13831	ModificationResourceEnumComputeType = "COMPUTE_TYPE"
13832)
13833
13834// ModificationResourceEnum_Values returns all elements of the ModificationResourceEnum enum
13835func ModificationResourceEnum_Values() []string {
13836	return []string{
13837		ModificationResourceEnumRootVolume,
13838		ModificationResourceEnumUserVolume,
13839		ModificationResourceEnumComputeType,
13840	}
13841}
13842
13843const (
13844	// ModificationStateEnumUpdateInitiated is a ModificationStateEnum enum value
13845	ModificationStateEnumUpdateInitiated = "UPDATE_INITIATED"
13846
13847	// ModificationStateEnumUpdateInProgress is a ModificationStateEnum enum value
13848	ModificationStateEnumUpdateInProgress = "UPDATE_IN_PROGRESS"
13849)
13850
13851// ModificationStateEnum_Values returns all elements of the ModificationStateEnum enum
13852func ModificationStateEnum_Values() []string {
13853	return []string{
13854		ModificationStateEnumUpdateInitiated,
13855		ModificationStateEnumUpdateInProgress,
13856	}
13857}
13858
13859const (
13860	// OperatingSystemTypeWindows is a OperatingSystemType enum value
13861	OperatingSystemTypeWindows = "WINDOWS"
13862
13863	// OperatingSystemTypeLinux is a OperatingSystemType enum value
13864	OperatingSystemTypeLinux = "LINUX"
13865)
13866
13867// OperatingSystemType_Values returns all elements of the OperatingSystemType enum
13868func OperatingSystemType_Values() []string {
13869	return []string{
13870		OperatingSystemTypeWindows,
13871		OperatingSystemTypeLinux,
13872	}
13873}
13874
13875const (
13876	// ReconnectEnumEnabled is a ReconnectEnum enum value
13877	ReconnectEnumEnabled = "ENABLED"
13878
13879	// ReconnectEnumDisabled is a ReconnectEnum enum value
13880	ReconnectEnumDisabled = "DISABLED"
13881)
13882
13883// ReconnectEnum_Values returns all elements of the ReconnectEnum enum
13884func ReconnectEnum_Values() []string {
13885	return []string{
13886		ReconnectEnumEnabled,
13887		ReconnectEnumDisabled,
13888	}
13889}
13890
13891const (
13892	// RunningModeAutoStop is a RunningMode enum value
13893	RunningModeAutoStop = "AUTO_STOP"
13894
13895	// RunningModeAlwaysOn is a RunningMode enum value
13896	RunningModeAlwaysOn = "ALWAYS_ON"
13897)
13898
13899// RunningMode_Values returns all elements of the RunningMode enum
13900func RunningMode_Values() []string {
13901	return []string{
13902		RunningModeAutoStop,
13903		RunningModeAlwaysOn,
13904	}
13905}
13906
13907const (
13908	// TargetWorkspaceStateAvailable is a TargetWorkspaceState enum value
13909	TargetWorkspaceStateAvailable = "AVAILABLE"
13910
13911	// TargetWorkspaceStateAdminMaintenance is a TargetWorkspaceState enum value
13912	TargetWorkspaceStateAdminMaintenance = "ADMIN_MAINTENANCE"
13913)
13914
13915// TargetWorkspaceState_Values returns all elements of the TargetWorkspaceState enum
13916func TargetWorkspaceState_Values() []string {
13917	return []string{
13918		TargetWorkspaceStateAvailable,
13919		TargetWorkspaceStateAdminMaintenance,
13920	}
13921}
13922
13923const (
13924	// TenancyDedicated is a Tenancy enum value
13925	TenancyDedicated = "DEDICATED"
13926
13927	// TenancyShared is a Tenancy enum value
13928	TenancyShared = "SHARED"
13929)
13930
13931// Tenancy_Values returns all elements of the Tenancy enum
13932func Tenancy_Values() []string {
13933	return []string{
13934		TenancyDedicated,
13935		TenancyShared,
13936	}
13937}
13938
13939const (
13940	// WorkspaceDirectoryStateRegistering is a WorkspaceDirectoryState enum value
13941	WorkspaceDirectoryStateRegistering = "REGISTERING"
13942
13943	// WorkspaceDirectoryStateRegistered is a WorkspaceDirectoryState enum value
13944	WorkspaceDirectoryStateRegistered = "REGISTERED"
13945
13946	// WorkspaceDirectoryStateDeregistering is a WorkspaceDirectoryState enum value
13947	WorkspaceDirectoryStateDeregistering = "DEREGISTERING"
13948
13949	// WorkspaceDirectoryStateDeregistered is a WorkspaceDirectoryState enum value
13950	WorkspaceDirectoryStateDeregistered = "DEREGISTERED"
13951
13952	// WorkspaceDirectoryStateError is a WorkspaceDirectoryState enum value
13953	WorkspaceDirectoryStateError = "ERROR"
13954)
13955
13956// WorkspaceDirectoryState_Values returns all elements of the WorkspaceDirectoryState enum
13957func WorkspaceDirectoryState_Values() []string {
13958	return []string{
13959		WorkspaceDirectoryStateRegistering,
13960		WorkspaceDirectoryStateRegistered,
13961		WorkspaceDirectoryStateDeregistering,
13962		WorkspaceDirectoryStateDeregistered,
13963		WorkspaceDirectoryStateError,
13964	}
13965}
13966
13967const (
13968	// WorkspaceDirectoryTypeSimpleAd is a WorkspaceDirectoryType enum value
13969	WorkspaceDirectoryTypeSimpleAd = "SIMPLE_AD"
13970
13971	// WorkspaceDirectoryTypeAdConnector is a WorkspaceDirectoryType enum value
13972	WorkspaceDirectoryTypeAdConnector = "AD_CONNECTOR"
13973)
13974
13975// WorkspaceDirectoryType_Values returns all elements of the WorkspaceDirectoryType enum
13976func WorkspaceDirectoryType_Values() []string {
13977	return []string{
13978		WorkspaceDirectoryTypeSimpleAd,
13979		WorkspaceDirectoryTypeAdConnector,
13980	}
13981}
13982
13983const (
13984	// WorkspaceImageIngestionProcessByolRegular is a WorkspaceImageIngestionProcess enum value
13985	WorkspaceImageIngestionProcessByolRegular = "BYOL_REGULAR"
13986
13987	// WorkspaceImageIngestionProcessByolGraphics is a WorkspaceImageIngestionProcess enum value
13988	WorkspaceImageIngestionProcessByolGraphics = "BYOL_GRAPHICS"
13989
13990	// WorkspaceImageIngestionProcessByolGraphicspro is a WorkspaceImageIngestionProcess enum value
13991	WorkspaceImageIngestionProcessByolGraphicspro = "BYOL_GRAPHICSPRO"
13992
13993	// WorkspaceImageIngestionProcessByolRegularWsp is a WorkspaceImageIngestionProcess enum value
13994	WorkspaceImageIngestionProcessByolRegularWsp = "BYOL_REGULAR_WSP"
13995)
13996
13997// WorkspaceImageIngestionProcess_Values returns all elements of the WorkspaceImageIngestionProcess enum
13998func WorkspaceImageIngestionProcess_Values() []string {
13999	return []string{
14000		WorkspaceImageIngestionProcessByolRegular,
14001		WorkspaceImageIngestionProcessByolGraphics,
14002		WorkspaceImageIngestionProcessByolGraphicspro,
14003		WorkspaceImageIngestionProcessByolRegularWsp,
14004	}
14005}
14006
14007const (
14008	// WorkspaceImageRequiredTenancyDefault is a WorkspaceImageRequiredTenancy enum value
14009	WorkspaceImageRequiredTenancyDefault = "DEFAULT"
14010
14011	// WorkspaceImageRequiredTenancyDedicated is a WorkspaceImageRequiredTenancy enum value
14012	WorkspaceImageRequiredTenancyDedicated = "DEDICATED"
14013)
14014
14015// WorkspaceImageRequiredTenancy_Values returns all elements of the WorkspaceImageRequiredTenancy enum
14016func WorkspaceImageRequiredTenancy_Values() []string {
14017	return []string{
14018		WorkspaceImageRequiredTenancyDefault,
14019		WorkspaceImageRequiredTenancyDedicated,
14020	}
14021}
14022
14023const (
14024	// WorkspaceImageStateAvailable is a WorkspaceImageState enum value
14025	WorkspaceImageStateAvailable = "AVAILABLE"
14026
14027	// WorkspaceImageStatePending is a WorkspaceImageState enum value
14028	WorkspaceImageStatePending = "PENDING"
14029
14030	// WorkspaceImageStateError is a WorkspaceImageState enum value
14031	WorkspaceImageStateError = "ERROR"
14032)
14033
14034// WorkspaceImageState_Values returns all elements of the WorkspaceImageState enum
14035func WorkspaceImageState_Values() []string {
14036	return []string{
14037		WorkspaceImageStateAvailable,
14038		WorkspaceImageStatePending,
14039		WorkspaceImageStateError,
14040	}
14041}
14042
14043const (
14044	// WorkspaceStatePending is a WorkspaceState enum value
14045	WorkspaceStatePending = "PENDING"
14046
14047	// WorkspaceStateAvailable is a WorkspaceState enum value
14048	WorkspaceStateAvailable = "AVAILABLE"
14049
14050	// WorkspaceStateImpaired is a WorkspaceState enum value
14051	WorkspaceStateImpaired = "IMPAIRED"
14052
14053	// WorkspaceStateUnhealthy is a WorkspaceState enum value
14054	WorkspaceStateUnhealthy = "UNHEALTHY"
14055
14056	// WorkspaceStateRebooting is a WorkspaceState enum value
14057	WorkspaceStateRebooting = "REBOOTING"
14058
14059	// WorkspaceStateStarting is a WorkspaceState enum value
14060	WorkspaceStateStarting = "STARTING"
14061
14062	// WorkspaceStateRebuilding is a WorkspaceState enum value
14063	WorkspaceStateRebuilding = "REBUILDING"
14064
14065	// WorkspaceStateRestoring is a WorkspaceState enum value
14066	WorkspaceStateRestoring = "RESTORING"
14067
14068	// WorkspaceStateMaintenance is a WorkspaceState enum value
14069	WorkspaceStateMaintenance = "MAINTENANCE"
14070
14071	// WorkspaceStateAdminMaintenance is a WorkspaceState enum value
14072	WorkspaceStateAdminMaintenance = "ADMIN_MAINTENANCE"
14073
14074	// WorkspaceStateTerminating is a WorkspaceState enum value
14075	WorkspaceStateTerminating = "TERMINATING"
14076
14077	// WorkspaceStateTerminated is a WorkspaceState enum value
14078	WorkspaceStateTerminated = "TERMINATED"
14079
14080	// WorkspaceStateSuspended is a WorkspaceState enum value
14081	WorkspaceStateSuspended = "SUSPENDED"
14082
14083	// WorkspaceStateUpdating is a WorkspaceState enum value
14084	WorkspaceStateUpdating = "UPDATING"
14085
14086	// WorkspaceStateStopping is a WorkspaceState enum value
14087	WorkspaceStateStopping = "STOPPING"
14088
14089	// WorkspaceStateStopped is a WorkspaceState enum value
14090	WorkspaceStateStopped = "STOPPED"
14091
14092	// WorkspaceStateError is a WorkspaceState enum value
14093	WorkspaceStateError = "ERROR"
14094)
14095
14096// WorkspaceState_Values returns all elements of the WorkspaceState enum
14097func WorkspaceState_Values() []string {
14098	return []string{
14099		WorkspaceStatePending,
14100		WorkspaceStateAvailable,
14101		WorkspaceStateImpaired,
14102		WorkspaceStateUnhealthy,
14103		WorkspaceStateRebooting,
14104		WorkspaceStateStarting,
14105		WorkspaceStateRebuilding,
14106		WorkspaceStateRestoring,
14107		WorkspaceStateMaintenance,
14108		WorkspaceStateAdminMaintenance,
14109		WorkspaceStateTerminating,
14110		WorkspaceStateTerminated,
14111		WorkspaceStateSuspended,
14112		WorkspaceStateUpdating,
14113		WorkspaceStateStopping,
14114		WorkspaceStateStopped,
14115		WorkspaceStateError,
14116	}
14117}
14118