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 opAssociateIpGroups = "AssociateIpGroups"
17
18// AssociateIpGroupsRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateIpGroups 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 AssociateIpGroups for more information on using the AssociateIpGroups
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 AssociateIpGroupsRequest method.
34//    req, resp := client.AssociateIpGroupsRequest(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/AssociateIpGroups
42func (c *WorkSpaces) AssociateIpGroupsRequest(input *AssociateIpGroupsInput) (req *request.Request, output *AssociateIpGroupsOutput) {
43	op := &request.Operation{
44		Name:       opAssociateIpGroups,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AssociateIpGroupsInput{}
51	}
52
53	output = &AssociateIpGroupsOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AssociateIpGroups API operation for Amazon WorkSpaces.
60//
61// Associates the specified IP access control group with the specified directory.
62//
63// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
64// with awserr.Error's Code and Message methods to get detailed information about
65// the error.
66//
67// See the AWS API reference guide for Amazon WorkSpaces's
68// API operation AssociateIpGroups for usage and error information.
69//
70// Returned Error Codes:
71//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
72//   One or more parameter values are not valid.
73//
74//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
75//   The resource could not be found.
76//
77//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
78//   Your resource limits have been exceeded.
79//
80//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
81//   The state of the resource is not valid for this operation.
82//
83//   * ErrCodeAccessDeniedException "AccessDeniedException"
84//   The user is not authorized to access a resource.
85//
86//   * ErrCodeOperationNotSupportedException "OperationNotSupportedException"
87//   This operation is not supported.
88//
89// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AssociateIpGroups
90func (c *WorkSpaces) AssociateIpGroups(input *AssociateIpGroupsInput) (*AssociateIpGroupsOutput, error) {
91	req, out := c.AssociateIpGroupsRequest(input)
92	return out, req.Send()
93}
94
95// AssociateIpGroupsWithContext is the same as AssociateIpGroups with the addition of
96// the ability to pass a context and additional request options.
97//
98// See AssociateIpGroups for details on how to use this API operation.
99//
100// The context must be non-nil and will be used for request cancellation. If
101// the context is nil a panic will occur. In the future the SDK may create
102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
103// for more information on using Contexts.
104func (c *WorkSpaces) AssociateIpGroupsWithContext(ctx aws.Context, input *AssociateIpGroupsInput, opts ...request.Option) (*AssociateIpGroupsOutput, error) {
105	req, out := c.AssociateIpGroupsRequest(input)
106	req.SetContext(ctx)
107	req.ApplyOptions(opts...)
108	return out, req.Send()
109}
110
111const opAuthorizeIpRules = "AuthorizeIpRules"
112
113// AuthorizeIpRulesRequest generates a "aws/request.Request" representing the
114// client's request for the AuthorizeIpRules operation. The "output" return
115// value will be populated with the request's response once the request completes
116// successfully.
117//
118// Use "Send" method on the returned Request to send the API call to the service.
119// the "output" return value is not valid until after Send returns without error.
120//
121// See AuthorizeIpRules for more information on using the AuthorizeIpRules
122// API call, and error handling.
123//
124// This method is useful when you want to inject custom logic or configuration
125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
126//
127//
128//    // Example sending a request using the AuthorizeIpRulesRequest method.
129//    req, resp := client.AuthorizeIpRulesRequest(params)
130//
131//    err := req.Send()
132//    if err == nil { // resp is now filled
133//        fmt.Println(resp)
134//    }
135//
136// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AuthorizeIpRules
137func (c *WorkSpaces) AuthorizeIpRulesRequest(input *AuthorizeIpRulesInput) (req *request.Request, output *AuthorizeIpRulesOutput) {
138	op := &request.Operation{
139		Name:       opAuthorizeIpRules,
140		HTTPMethod: "POST",
141		HTTPPath:   "/",
142	}
143
144	if input == nil {
145		input = &AuthorizeIpRulesInput{}
146	}
147
148	output = &AuthorizeIpRulesOutput{}
149	req = c.newRequest(op, input, output)
150	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
151	return
152}
153
154// AuthorizeIpRules API operation for Amazon WorkSpaces.
155//
156// Adds one or more rules to the specified IP access control group.
157//
158// This action gives users permission to access their WorkSpaces from the CIDR
159// address ranges specified in the rules.
160//
161// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
162// with awserr.Error's Code and Message methods to get detailed information about
163// the error.
164//
165// See the AWS API reference guide for Amazon WorkSpaces's
166// API operation AuthorizeIpRules for usage and error information.
167//
168// Returned Error Codes:
169//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
170//   One or more parameter values are not valid.
171//
172//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
173//   The resource could not be found.
174//
175//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
176//   Your resource limits have been exceeded.
177//
178//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
179//   The state of the resource is not valid for this operation.
180//
181//   * ErrCodeAccessDeniedException "AccessDeniedException"
182//   The user is not authorized to access a resource.
183//
184// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AuthorizeIpRules
185func (c *WorkSpaces) AuthorizeIpRules(input *AuthorizeIpRulesInput) (*AuthorizeIpRulesOutput, error) {
186	req, out := c.AuthorizeIpRulesRequest(input)
187	return out, req.Send()
188}
189
190// AuthorizeIpRulesWithContext is the same as AuthorizeIpRules with the addition of
191// the ability to pass a context and additional request options.
192//
193// See AuthorizeIpRules for details on how to use this API operation.
194//
195// The context must be non-nil and will be used for request cancellation. If
196// the context is nil a panic will occur. In the future the SDK may create
197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
198// for more information on using Contexts.
199func (c *WorkSpaces) AuthorizeIpRulesWithContext(ctx aws.Context, input *AuthorizeIpRulesInput, opts ...request.Option) (*AuthorizeIpRulesOutput, error) {
200	req, out := c.AuthorizeIpRulesRequest(input)
201	req.SetContext(ctx)
202	req.ApplyOptions(opts...)
203	return out, req.Send()
204}
205
206const opCopyWorkspaceImage = "CopyWorkspaceImage"
207
208// CopyWorkspaceImageRequest generates a "aws/request.Request" representing the
209// client's request for the CopyWorkspaceImage operation. The "output" return
210// value will be populated with the request's response once the request completes
211// successfully.
212//
213// Use "Send" method on the returned Request to send the API call to the service.
214// the "output" return value is not valid until after Send returns without error.
215//
216// See CopyWorkspaceImage for more information on using the CopyWorkspaceImage
217// API call, and error handling.
218//
219// This method is useful when you want to inject custom logic or configuration
220// into the SDK's request lifecycle. Such as custom headers, or retry logic.
221//
222//
223//    // Example sending a request using the CopyWorkspaceImageRequest method.
224//    req, resp := client.CopyWorkspaceImageRequest(params)
225//
226//    err := req.Send()
227//    if err == nil { // resp is now filled
228//        fmt.Println(resp)
229//    }
230//
231// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CopyWorkspaceImage
232func (c *WorkSpaces) CopyWorkspaceImageRequest(input *CopyWorkspaceImageInput) (req *request.Request, output *CopyWorkspaceImageOutput) {
233	op := &request.Operation{
234		Name:       opCopyWorkspaceImage,
235		HTTPMethod: "POST",
236		HTTPPath:   "/",
237	}
238
239	if input == nil {
240		input = &CopyWorkspaceImageInput{}
241	}
242
243	output = &CopyWorkspaceImageOutput{}
244	req = c.newRequest(op, input, output)
245	return
246}
247
248// CopyWorkspaceImage API operation for Amazon WorkSpaces.
249//
250// Copies the specified image from the specified Region to the current Region.
251//
252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
253// with awserr.Error's Code and Message methods to get detailed information about
254// the error.
255//
256// See the AWS API reference guide for Amazon WorkSpaces's
257// API operation CopyWorkspaceImage for usage and error information.
258//
259// Returned Error Codes:
260//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
261//   Your resource limits have been exceeded.
262//
263//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
264//   The specified resource already exists.
265//
266//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
267//   The resource could not be found.
268//
269//   * ErrCodeResourceUnavailableException "ResourceUnavailableException"
270//   The specified resource is not available.
271//
272//   * ErrCodeOperationNotSupportedException "OperationNotSupportedException"
273//   This operation is not supported.
274//
275//   * ErrCodeAccessDeniedException "AccessDeniedException"
276//   The user is not authorized to access a resource.
277//
278//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
279//   One or more parameter values are not valid.
280//
281// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CopyWorkspaceImage
282func (c *WorkSpaces) CopyWorkspaceImage(input *CopyWorkspaceImageInput) (*CopyWorkspaceImageOutput, error) {
283	req, out := c.CopyWorkspaceImageRequest(input)
284	return out, req.Send()
285}
286
287// CopyWorkspaceImageWithContext is the same as CopyWorkspaceImage with the addition of
288// the ability to pass a context and additional request options.
289//
290// See CopyWorkspaceImage for details on how to use this API operation.
291//
292// The context must be non-nil and will be used for request cancellation. If
293// the context is nil a panic will occur. In the future the SDK may create
294// sub-contexts for http.Requests. See https://golang.org/pkg/context/
295// for more information on using Contexts.
296func (c *WorkSpaces) CopyWorkspaceImageWithContext(ctx aws.Context, input *CopyWorkspaceImageInput, opts ...request.Option) (*CopyWorkspaceImageOutput, error) {
297	req, out := c.CopyWorkspaceImageRequest(input)
298	req.SetContext(ctx)
299	req.ApplyOptions(opts...)
300	return out, req.Send()
301}
302
303const opCreateIpGroup = "CreateIpGroup"
304
305// CreateIpGroupRequest generates a "aws/request.Request" representing the
306// client's request for the CreateIpGroup operation. The "output" return
307// value will be populated with the request's response once the request completes
308// successfully.
309//
310// Use "Send" method on the returned Request to send the API call to the service.
311// the "output" return value is not valid until after Send returns without error.
312//
313// See CreateIpGroup for more information on using the CreateIpGroup
314// API call, and error handling.
315//
316// This method is useful when you want to inject custom logic or configuration
317// into the SDK's request lifecycle. Such as custom headers, or retry logic.
318//
319//
320//    // Example sending a request using the CreateIpGroupRequest method.
321//    req, resp := client.CreateIpGroupRequest(params)
322//
323//    err := req.Send()
324//    if err == nil { // resp is now filled
325//        fmt.Println(resp)
326//    }
327//
328// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateIpGroup
329func (c *WorkSpaces) CreateIpGroupRequest(input *CreateIpGroupInput) (req *request.Request, output *CreateIpGroupOutput) {
330	op := &request.Operation{
331		Name:       opCreateIpGroup,
332		HTTPMethod: "POST",
333		HTTPPath:   "/",
334	}
335
336	if input == nil {
337		input = &CreateIpGroupInput{}
338	}
339
340	output = &CreateIpGroupOutput{}
341	req = c.newRequest(op, input, output)
342	return
343}
344
345// CreateIpGroup API operation for Amazon WorkSpaces.
346//
347// Creates an IP access control group.
348//
349// An IP access control group provides you with the ability to control the IP
350// addresses from which users are allowed to access their WorkSpaces. To specify
351// the CIDR address ranges, add rules to your IP access control group and then
352// associate the group with your directory. You can add rules when you create
353// the group or at any time using AuthorizeIpRules.
354//
355// There is a default IP access control group associated with your directory.
356// If you don't associate an IP access control group with your directory, the
357// default group is used. The default group includes a default rule that allows
358// users to access their WorkSpaces from anywhere. You cannot modify the default
359// IP access control group for your directory.
360//
361// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
362// with awserr.Error's Code and Message methods to get detailed information about
363// the error.
364//
365// See the AWS API reference guide for Amazon WorkSpaces's
366// API operation CreateIpGroup for usage and error information.
367//
368// Returned Error Codes:
369//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
370//   One or more parameter values are not valid.
371//
372//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
373//   Your resource limits have been exceeded.
374//
375//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
376//   The specified resource already exists.
377//
378//   * ErrCodeResourceCreationFailedException "ResourceCreationFailedException"
379//   The resource could not be created.
380//
381//   * ErrCodeAccessDeniedException "AccessDeniedException"
382//   The user is not authorized to access a resource.
383//
384// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateIpGroup
385func (c *WorkSpaces) CreateIpGroup(input *CreateIpGroupInput) (*CreateIpGroupOutput, error) {
386	req, out := c.CreateIpGroupRequest(input)
387	return out, req.Send()
388}
389
390// CreateIpGroupWithContext is the same as CreateIpGroup with the addition of
391// the ability to pass a context and additional request options.
392//
393// See CreateIpGroup for details on how to use this API operation.
394//
395// The context must be non-nil and will be used for request cancellation. If
396// the context is nil a panic will occur. In the future the SDK may create
397// sub-contexts for http.Requests. See https://golang.org/pkg/context/
398// for more information on using Contexts.
399func (c *WorkSpaces) CreateIpGroupWithContext(ctx aws.Context, input *CreateIpGroupInput, opts ...request.Option) (*CreateIpGroupOutput, error) {
400	req, out := c.CreateIpGroupRequest(input)
401	req.SetContext(ctx)
402	req.ApplyOptions(opts...)
403	return out, req.Send()
404}
405
406const opCreateTags = "CreateTags"
407
408// CreateTagsRequest generates a "aws/request.Request" representing the
409// client's request for the CreateTags operation. The "output" return
410// value will be populated with the request's response once the request completes
411// successfully.
412//
413// Use "Send" method on the returned Request to send the API call to the service.
414// the "output" return value is not valid until after Send returns without error.
415//
416// See CreateTags for more information on using the CreateTags
417// API call, and error handling.
418//
419// This method is useful when you want to inject custom logic or configuration
420// into the SDK's request lifecycle. Such as custom headers, or retry logic.
421//
422//
423//    // Example sending a request using the CreateTagsRequest method.
424//    req, resp := client.CreateTagsRequest(params)
425//
426//    err := req.Send()
427//    if err == nil { // resp is now filled
428//        fmt.Println(resp)
429//    }
430//
431// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateTags
432func (c *WorkSpaces) CreateTagsRequest(input *CreateTagsInput) (req *request.Request, output *CreateTagsOutput) {
433	op := &request.Operation{
434		Name:       opCreateTags,
435		HTTPMethod: "POST",
436		HTTPPath:   "/",
437	}
438
439	if input == nil {
440		input = &CreateTagsInput{}
441	}
442
443	output = &CreateTagsOutput{}
444	req = c.newRequest(op, input, output)
445	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
446	return
447}
448
449// CreateTags API operation for Amazon WorkSpaces.
450//
451// Creates the specified tags for the specified WorkSpaces resource.
452//
453// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
454// with awserr.Error's Code and Message methods to get detailed information about
455// the error.
456//
457// See the AWS API reference guide for Amazon WorkSpaces's
458// API operation CreateTags for usage and error information.
459//
460// Returned Error Codes:
461//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
462//   The resource could not be found.
463//
464//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
465//   One or more parameter values are not valid.
466//
467//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
468//   Your resource limits have been exceeded.
469//
470// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateTags
471func (c *WorkSpaces) CreateTags(input *CreateTagsInput) (*CreateTagsOutput, error) {
472	req, out := c.CreateTagsRequest(input)
473	return out, req.Send()
474}
475
476// CreateTagsWithContext is the same as CreateTags with the addition of
477// the ability to pass a context and additional request options.
478//
479// See CreateTags for details on how to use this API operation.
480//
481// The context must be non-nil and will be used for request cancellation. If
482// the context is nil a panic will occur. In the future the SDK may create
483// sub-contexts for http.Requests. See https://golang.org/pkg/context/
484// for more information on using Contexts.
485func (c *WorkSpaces) CreateTagsWithContext(ctx aws.Context, input *CreateTagsInput, opts ...request.Option) (*CreateTagsOutput, error) {
486	req, out := c.CreateTagsRequest(input)
487	req.SetContext(ctx)
488	req.ApplyOptions(opts...)
489	return out, req.Send()
490}
491
492const opCreateWorkspaces = "CreateWorkspaces"
493
494// CreateWorkspacesRequest generates a "aws/request.Request" representing the
495// client's request for the CreateWorkspaces operation. The "output" return
496// value will be populated with the request's response once the request completes
497// successfully.
498//
499// Use "Send" method on the returned Request to send the API call to the service.
500// the "output" return value is not valid until after Send returns without error.
501//
502// See CreateWorkspaces for more information on using the CreateWorkspaces
503// API call, and error handling.
504//
505// This method is useful when you want to inject custom logic or configuration
506// into the SDK's request lifecycle. Such as custom headers, or retry logic.
507//
508//
509//    // Example sending a request using the CreateWorkspacesRequest method.
510//    req, resp := client.CreateWorkspacesRequest(params)
511//
512//    err := req.Send()
513//    if err == nil { // resp is now filled
514//        fmt.Println(resp)
515//    }
516//
517// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateWorkspaces
518func (c *WorkSpaces) CreateWorkspacesRequest(input *CreateWorkspacesInput) (req *request.Request, output *CreateWorkspacesOutput) {
519	op := &request.Operation{
520		Name:       opCreateWorkspaces,
521		HTTPMethod: "POST",
522		HTTPPath:   "/",
523	}
524
525	if input == nil {
526		input = &CreateWorkspacesInput{}
527	}
528
529	output = &CreateWorkspacesOutput{}
530	req = c.newRequest(op, input, output)
531	return
532}
533
534// CreateWorkspaces API operation for Amazon WorkSpaces.
535//
536// Creates one or more WorkSpaces.
537//
538// This operation is asynchronous and returns before the WorkSpaces are created.
539//
540// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
541// with awserr.Error's Code and Message methods to get detailed information about
542// the error.
543//
544// See the AWS API reference guide for Amazon WorkSpaces's
545// API operation CreateWorkspaces for usage and error information.
546//
547// Returned Error Codes:
548//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
549//   Your resource limits have been exceeded.
550//
551//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
552//   One or more parameter values are not valid.
553//
554// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateWorkspaces
555func (c *WorkSpaces) CreateWorkspaces(input *CreateWorkspacesInput) (*CreateWorkspacesOutput, error) {
556	req, out := c.CreateWorkspacesRequest(input)
557	return out, req.Send()
558}
559
560// CreateWorkspacesWithContext is the same as CreateWorkspaces with the addition of
561// the ability to pass a context and additional request options.
562//
563// See CreateWorkspaces for details on how to use this API operation.
564//
565// The context must be non-nil and will be used for request cancellation. If
566// the context is nil a panic will occur. In the future the SDK may create
567// sub-contexts for http.Requests. See https://golang.org/pkg/context/
568// for more information on using Contexts.
569func (c *WorkSpaces) CreateWorkspacesWithContext(ctx aws.Context, input *CreateWorkspacesInput, opts ...request.Option) (*CreateWorkspacesOutput, error) {
570	req, out := c.CreateWorkspacesRequest(input)
571	req.SetContext(ctx)
572	req.ApplyOptions(opts...)
573	return out, req.Send()
574}
575
576const opDeleteIpGroup = "DeleteIpGroup"
577
578// DeleteIpGroupRequest generates a "aws/request.Request" representing the
579// client's request for the DeleteIpGroup operation. The "output" return
580// value will be populated with the request's response once the request completes
581// successfully.
582//
583// Use "Send" method on the returned Request to send the API call to the service.
584// the "output" return value is not valid until after Send returns without error.
585//
586// See DeleteIpGroup for more information on using the DeleteIpGroup
587// API call, and error handling.
588//
589// This method is useful when you want to inject custom logic or configuration
590// into the SDK's request lifecycle. Such as custom headers, or retry logic.
591//
592//
593//    // Example sending a request using the DeleteIpGroupRequest method.
594//    req, resp := client.DeleteIpGroupRequest(params)
595//
596//    err := req.Send()
597//    if err == nil { // resp is now filled
598//        fmt.Println(resp)
599//    }
600//
601// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteIpGroup
602func (c *WorkSpaces) DeleteIpGroupRequest(input *DeleteIpGroupInput) (req *request.Request, output *DeleteIpGroupOutput) {
603	op := &request.Operation{
604		Name:       opDeleteIpGroup,
605		HTTPMethod: "POST",
606		HTTPPath:   "/",
607	}
608
609	if input == nil {
610		input = &DeleteIpGroupInput{}
611	}
612
613	output = &DeleteIpGroupOutput{}
614	req = c.newRequest(op, input, output)
615	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
616	return
617}
618
619// DeleteIpGroup API operation for Amazon WorkSpaces.
620//
621// Deletes the specified IP access control group.
622//
623// You cannot delete an IP access control group that is associated with a directory.
624//
625// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
626// with awserr.Error's Code and Message methods to get detailed information about
627// the error.
628//
629// See the AWS API reference guide for Amazon WorkSpaces's
630// API operation DeleteIpGroup for usage and error information.
631//
632// Returned Error Codes:
633//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
634//   One or more parameter values are not valid.
635//
636//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
637//   The resource could not be found.
638//
639//   * ErrCodeResourceAssociatedException "ResourceAssociatedException"
640//   The resource is associated with a directory.
641//
642//   * ErrCodeAccessDeniedException "AccessDeniedException"
643//   The user is not authorized to access a resource.
644//
645// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteIpGroup
646func (c *WorkSpaces) DeleteIpGroup(input *DeleteIpGroupInput) (*DeleteIpGroupOutput, error) {
647	req, out := c.DeleteIpGroupRequest(input)
648	return out, req.Send()
649}
650
651// DeleteIpGroupWithContext is the same as DeleteIpGroup with the addition of
652// the ability to pass a context and additional request options.
653//
654// See DeleteIpGroup for details on how to use this API operation.
655//
656// The context must be non-nil and will be used for request cancellation. If
657// the context is nil a panic will occur. In the future the SDK may create
658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
659// for more information on using Contexts.
660func (c *WorkSpaces) DeleteIpGroupWithContext(ctx aws.Context, input *DeleteIpGroupInput, opts ...request.Option) (*DeleteIpGroupOutput, error) {
661	req, out := c.DeleteIpGroupRequest(input)
662	req.SetContext(ctx)
663	req.ApplyOptions(opts...)
664	return out, req.Send()
665}
666
667const opDeleteTags = "DeleteTags"
668
669// DeleteTagsRequest generates a "aws/request.Request" representing the
670// client's request for the DeleteTags operation. The "output" return
671// value will be populated with the request's response once the request completes
672// successfully.
673//
674// Use "Send" method on the returned Request to send the API call to the service.
675// the "output" return value is not valid until after Send returns without error.
676//
677// See DeleteTags for more information on using the DeleteTags
678// API call, and error handling.
679//
680// This method is useful when you want to inject custom logic or configuration
681// into the SDK's request lifecycle. Such as custom headers, or retry logic.
682//
683//
684//    // Example sending a request using the DeleteTagsRequest method.
685//    req, resp := client.DeleteTagsRequest(params)
686//
687//    err := req.Send()
688//    if err == nil { // resp is now filled
689//        fmt.Println(resp)
690//    }
691//
692// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteTags
693func (c *WorkSpaces) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, output *DeleteTagsOutput) {
694	op := &request.Operation{
695		Name:       opDeleteTags,
696		HTTPMethod: "POST",
697		HTTPPath:   "/",
698	}
699
700	if input == nil {
701		input = &DeleteTagsInput{}
702	}
703
704	output = &DeleteTagsOutput{}
705	req = c.newRequest(op, input, output)
706	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
707	return
708}
709
710// DeleteTags API operation for Amazon WorkSpaces.
711//
712// Deletes the specified tags from the specified WorkSpaces resource.
713//
714// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
715// with awserr.Error's Code and Message methods to get detailed information about
716// the error.
717//
718// See the AWS API reference guide for Amazon WorkSpaces's
719// API operation DeleteTags for usage and error information.
720//
721// Returned Error Codes:
722//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
723//   The resource could not be found.
724//
725//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
726//   One or more parameter values are not valid.
727//
728// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteTags
729func (c *WorkSpaces) DeleteTags(input *DeleteTagsInput) (*DeleteTagsOutput, error) {
730	req, out := c.DeleteTagsRequest(input)
731	return out, req.Send()
732}
733
734// DeleteTagsWithContext is the same as DeleteTags with the addition of
735// the ability to pass a context and additional request options.
736//
737// See DeleteTags for details on how to use this API operation.
738//
739// The context must be non-nil and will be used for request cancellation. If
740// the context is nil a panic will occur. In the future the SDK may create
741// sub-contexts for http.Requests. See https://golang.org/pkg/context/
742// for more information on using Contexts.
743func (c *WorkSpaces) DeleteTagsWithContext(ctx aws.Context, input *DeleteTagsInput, opts ...request.Option) (*DeleteTagsOutput, error) {
744	req, out := c.DeleteTagsRequest(input)
745	req.SetContext(ctx)
746	req.ApplyOptions(opts...)
747	return out, req.Send()
748}
749
750const opDeleteWorkspaceImage = "DeleteWorkspaceImage"
751
752// DeleteWorkspaceImageRequest generates a "aws/request.Request" representing the
753// client's request for the DeleteWorkspaceImage operation. The "output" return
754// value will be populated with the request's response once the request completes
755// successfully.
756//
757// Use "Send" method on the returned Request to send the API call to the service.
758// the "output" return value is not valid until after Send returns without error.
759//
760// See DeleteWorkspaceImage for more information on using the DeleteWorkspaceImage
761// API call, and error handling.
762//
763// This method is useful when you want to inject custom logic or configuration
764// into the SDK's request lifecycle. Such as custom headers, or retry logic.
765//
766//
767//    // Example sending a request using the DeleteWorkspaceImageRequest method.
768//    req, resp := client.DeleteWorkspaceImageRequest(params)
769//
770//    err := req.Send()
771//    if err == nil { // resp is now filled
772//        fmt.Println(resp)
773//    }
774//
775// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteWorkspaceImage
776func (c *WorkSpaces) DeleteWorkspaceImageRequest(input *DeleteWorkspaceImageInput) (req *request.Request, output *DeleteWorkspaceImageOutput) {
777	op := &request.Operation{
778		Name:       opDeleteWorkspaceImage,
779		HTTPMethod: "POST",
780		HTTPPath:   "/",
781	}
782
783	if input == nil {
784		input = &DeleteWorkspaceImageInput{}
785	}
786
787	output = &DeleteWorkspaceImageOutput{}
788	req = c.newRequest(op, input, output)
789	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
790	return
791}
792
793// DeleteWorkspaceImage API operation for Amazon WorkSpaces.
794//
795// Deletes the specified image from your account. To delete an image, you must
796// first delete any bundles that are associated with the image and un-share
797// the image if it is shared with other accounts.
798//
799// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
800// with awserr.Error's Code and Message methods to get detailed information about
801// the error.
802//
803// See the AWS API reference guide for Amazon WorkSpaces's
804// API operation DeleteWorkspaceImage for usage and error information.
805//
806// Returned Error Codes:
807//   * ErrCodeResourceAssociatedException "ResourceAssociatedException"
808//   The resource is associated with a directory.
809//
810//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
811//   The state of the resource is not valid for this operation.
812//
813//   * ErrCodeAccessDeniedException "AccessDeniedException"
814//   The user is not authorized to access a resource.
815//
816// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteWorkspaceImage
817func (c *WorkSpaces) DeleteWorkspaceImage(input *DeleteWorkspaceImageInput) (*DeleteWorkspaceImageOutput, error) {
818	req, out := c.DeleteWorkspaceImageRequest(input)
819	return out, req.Send()
820}
821
822// DeleteWorkspaceImageWithContext is the same as DeleteWorkspaceImage with the addition of
823// the ability to pass a context and additional request options.
824//
825// See DeleteWorkspaceImage for details on how to use this API operation.
826//
827// The context must be non-nil and will be used for request cancellation. If
828// the context is nil a panic will occur. In the future the SDK may create
829// sub-contexts for http.Requests. See https://golang.org/pkg/context/
830// for more information on using Contexts.
831func (c *WorkSpaces) DeleteWorkspaceImageWithContext(ctx aws.Context, input *DeleteWorkspaceImageInput, opts ...request.Option) (*DeleteWorkspaceImageOutput, error) {
832	req, out := c.DeleteWorkspaceImageRequest(input)
833	req.SetContext(ctx)
834	req.ApplyOptions(opts...)
835	return out, req.Send()
836}
837
838const opDeregisterWorkspaceDirectory = "DeregisterWorkspaceDirectory"
839
840// DeregisterWorkspaceDirectoryRequest generates a "aws/request.Request" representing the
841// client's request for the DeregisterWorkspaceDirectory operation. The "output" return
842// value will be populated with the request's response once the request completes
843// successfully.
844//
845// Use "Send" method on the returned Request to send the API call to the service.
846// the "output" return value is not valid until after Send returns without error.
847//
848// See DeregisterWorkspaceDirectory for more information on using the DeregisterWorkspaceDirectory
849// API call, and error handling.
850//
851// This method is useful when you want to inject custom logic or configuration
852// into the SDK's request lifecycle. Such as custom headers, or retry logic.
853//
854//
855//    // Example sending a request using the DeregisterWorkspaceDirectoryRequest method.
856//    req, resp := client.DeregisterWorkspaceDirectoryRequest(params)
857//
858//    err := req.Send()
859//    if err == nil { // resp is now filled
860//        fmt.Println(resp)
861//    }
862//
863// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeregisterWorkspaceDirectory
864func (c *WorkSpaces) DeregisterWorkspaceDirectoryRequest(input *DeregisterWorkspaceDirectoryInput) (req *request.Request, output *DeregisterWorkspaceDirectoryOutput) {
865	op := &request.Operation{
866		Name:       opDeregisterWorkspaceDirectory,
867		HTTPMethod: "POST",
868		HTTPPath:   "/",
869	}
870
871	if input == nil {
872		input = &DeregisterWorkspaceDirectoryInput{}
873	}
874
875	output = &DeregisterWorkspaceDirectoryOutput{}
876	req = c.newRequest(op, input, output)
877	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
878	return
879}
880
881// DeregisterWorkspaceDirectory API operation for Amazon WorkSpaces.
882//
883// Deregisters the specified directory. This operation is asynchronous and returns
884// before the WorkSpace directory is deregistered. If any WorkSpaces are registered
885// to this directory, you must remove them before you can deregister the directory.
886//
887// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
888// with awserr.Error's Code and Message methods to get detailed information about
889// the error.
890//
891// See the AWS API reference guide for Amazon WorkSpaces's
892// API operation DeregisterWorkspaceDirectory for usage and error information.
893//
894// Returned Error Codes:
895//   * ErrCodeAccessDeniedException "AccessDeniedException"
896//   The user is not authorized to access a resource.
897//
898//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
899//   One or more parameter values are not valid.
900//
901//   * ErrCodeOperationNotSupportedException "OperationNotSupportedException"
902//   This operation is not supported.
903//
904//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
905//   The resource could not be found.
906//
907//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
908//   The state of the resource is not valid for this operation.
909//
910// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeregisterWorkspaceDirectory
911func (c *WorkSpaces) DeregisterWorkspaceDirectory(input *DeregisterWorkspaceDirectoryInput) (*DeregisterWorkspaceDirectoryOutput, error) {
912	req, out := c.DeregisterWorkspaceDirectoryRequest(input)
913	return out, req.Send()
914}
915
916// DeregisterWorkspaceDirectoryWithContext is the same as DeregisterWorkspaceDirectory with the addition of
917// the ability to pass a context and additional request options.
918//
919// See DeregisterWorkspaceDirectory for details on how to use this API operation.
920//
921// The context must be non-nil and will be used for request cancellation. If
922// the context is nil a panic will occur. In the future the SDK may create
923// sub-contexts for http.Requests. See https://golang.org/pkg/context/
924// for more information on using Contexts.
925func (c *WorkSpaces) DeregisterWorkspaceDirectoryWithContext(ctx aws.Context, input *DeregisterWorkspaceDirectoryInput, opts ...request.Option) (*DeregisterWorkspaceDirectoryOutput, error) {
926	req, out := c.DeregisterWorkspaceDirectoryRequest(input)
927	req.SetContext(ctx)
928	req.ApplyOptions(opts...)
929	return out, req.Send()
930}
931
932const opDescribeAccount = "DescribeAccount"
933
934// DescribeAccountRequest generates a "aws/request.Request" representing the
935// client's request for the DescribeAccount operation. The "output" return
936// value will be populated with the request's response once the request completes
937// successfully.
938//
939// Use "Send" method on the returned Request to send the API call to the service.
940// the "output" return value is not valid until after Send returns without error.
941//
942// See DescribeAccount for more information on using the DescribeAccount
943// API call, and error handling.
944//
945// This method is useful when you want to inject custom logic or configuration
946// into the SDK's request lifecycle. Such as custom headers, or retry logic.
947//
948//
949//    // Example sending a request using the DescribeAccountRequest method.
950//    req, resp := client.DescribeAccountRequest(params)
951//
952//    err := req.Send()
953//    if err == nil { // resp is now filled
954//        fmt.Println(resp)
955//    }
956//
957// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccount
958func (c *WorkSpaces) DescribeAccountRequest(input *DescribeAccountInput) (req *request.Request, output *DescribeAccountOutput) {
959	op := &request.Operation{
960		Name:       opDescribeAccount,
961		HTTPMethod: "POST",
962		HTTPPath:   "/",
963	}
964
965	if input == nil {
966		input = &DescribeAccountInput{}
967	}
968
969	output = &DescribeAccountOutput{}
970	req = c.newRequest(op, input, output)
971	return
972}
973
974// DescribeAccount API operation for Amazon WorkSpaces.
975//
976// Retrieves a list that describes the configuration of Bring Your Own License
977// (BYOL) for the specified account.
978//
979// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
980// with awserr.Error's Code and Message methods to get detailed information about
981// the error.
982//
983// See the AWS API reference guide for Amazon WorkSpaces's
984// API operation DescribeAccount for usage and error information.
985//
986// Returned Error Codes:
987//   * ErrCodeAccessDeniedException "AccessDeniedException"
988//   The user is not authorized to access a resource.
989//
990// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccount
991func (c *WorkSpaces) DescribeAccount(input *DescribeAccountInput) (*DescribeAccountOutput, error) {
992	req, out := c.DescribeAccountRequest(input)
993	return out, req.Send()
994}
995
996// DescribeAccountWithContext is the same as DescribeAccount with the addition of
997// the ability to pass a context and additional request options.
998//
999// See DescribeAccount for details on how to use this API operation.
1000//
1001// The context must be non-nil and will be used for request cancellation. If
1002// the context is nil a panic will occur. In the future the SDK may create
1003// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1004// for more information on using Contexts.
1005func (c *WorkSpaces) DescribeAccountWithContext(ctx aws.Context, input *DescribeAccountInput, opts ...request.Option) (*DescribeAccountOutput, error) {
1006	req, out := c.DescribeAccountRequest(input)
1007	req.SetContext(ctx)
1008	req.ApplyOptions(opts...)
1009	return out, req.Send()
1010}
1011
1012const opDescribeAccountModifications = "DescribeAccountModifications"
1013
1014// DescribeAccountModificationsRequest generates a "aws/request.Request" representing the
1015// client's request for the DescribeAccountModifications operation. The "output" return
1016// value will be populated with the request's response once the request completes
1017// successfully.
1018//
1019// Use "Send" method on the returned Request to send the API call to the service.
1020// the "output" return value is not valid until after Send returns without error.
1021//
1022// See DescribeAccountModifications for more information on using the DescribeAccountModifications
1023// API call, and error handling.
1024//
1025// This method is useful when you want to inject custom logic or configuration
1026// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1027//
1028//
1029//    // Example sending a request using the DescribeAccountModificationsRequest method.
1030//    req, resp := client.DescribeAccountModificationsRequest(params)
1031//
1032//    err := req.Send()
1033//    if err == nil { // resp is now filled
1034//        fmt.Println(resp)
1035//    }
1036//
1037// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccountModifications
1038func (c *WorkSpaces) DescribeAccountModificationsRequest(input *DescribeAccountModificationsInput) (req *request.Request, output *DescribeAccountModificationsOutput) {
1039	op := &request.Operation{
1040		Name:       opDescribeAccountModifications,
1041		HTTPMethod: "POST",
1042		HTTPPath:   "/",
1043	}
1044
1045	if input == nil {
1046		input = &DescribeAccountModificationsInput{}
1047	}
1048
1049	output = &DescribeAccountModificationsOutput{}
1050	req = c.newRequest(op, input, output)
1051	return
1052}
1053
1054// DescribeAccountModifications API operation for Amazon WorkSpaces.
1055//
1056// Retrieves a list that describes modifications to the configuration of Bring
1057// Your Own License (BYOL) for the specified account.
1058//
1059// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1060// with awserr.Error's Code and Message methods to get detailed information about
1061// the error.
1062//
1063// See the AWS API reference guide for Amazon WorkSpaces's
1064// API operation DescribeAccountModifications for usage and error information.
1065//
1066// Returned Error Codes:
1067//   * ErrCodeAccessDeniedException "AccessDeniedException"
1068//   The user is not authorized to access a resource.
1069//
1070// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccountModifications
1071func (c *WorkSpaces) DescribeAccountModifications(input *DescribeAccountModificationsInput) (*DescribeAccountModificationsOutput, error) {
1072	req, out := c.DescribeAccountModificationsRequest(input)
1073	return out, req.Send()
1074}
1075
1076// DescribeAccountModificationsWithContext is the same as DescribeAccountModifications with the addition of
1077// the ability to pass a context and additional request options.
1078//
1079// See DescribeAccountModifications for details on how to use this API operation.
1080//
1081// The context must be non-nil and will be used for request cancellation. If
1082// the context is nil a panic will occur. In the future the SDK may create
1083// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1084// for more information on using Contexts.
1085func (c *WorkSpaces) DescribeAccountModificationsWithContext(ctx aws.Context, input *DescribeAccountModificationsInput, opts ...request.Option) (*DescribeAccountModificationsOutput, error) {
1086	req, out := c.DescribeAccountModificationsRequest(input)
1087	req.SetContext(ctx)
1088	req.ApplyOptions(opts...)
1089	return out, req.Send()
1090}
1091
1092const opDescribeClientProperties = "DescribeClientProperties"
1093
1094// DescribeClientPropertiesRequest generates a "aws/request.Request" representing the
1095// client's request for the DescribeClientProperties operation. The "output" return
1096// value will be populated with the request's response once the request completes
1097// successfully.
1098//
1099// Use "Send" method on the returned Request to send the API call to the service.
1100// the "output" return value is not valid until after Send returns without error.
1101//
1102// See DescribeClientProperties for more information on using the DescribeClientProperties
1103// API call, and error handling.
1104//
1105// This method is useful when you want to inject custom logic or configuration
1106// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1107//
1108//
1109//    // Example sending a request using the DescribeClientPropertiesRequest method.
1110//    req, resp := client.DescribeClientPropertiesRequest(params)
1111//
1112//    err := req.Send()
1113//    if err == nil { // resp is now filled
1114//        fmt.Println(resp)
1115//    }
1116//
1117// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeClientProperties
1118func (c *WorkSpaces) DescribeClientPropertiesRequest(input *DescribeClientPropertiesInput) (req *request.Request, output *DescribeClientPropertiesOutput) {
1119	op := &request.Operation{
1120		Name:       opDescribeClientProperties,
1121		HTTPMethod: "POST",
1122		HTTPPath:   "/",
1123	}
1124
1125	if input == nil {
1126		input = &DescribeClientPropertiesInput{}
1127	}
1128
1129	output = &DescribeClientPropertiesOutput{}
1130	req = c.newRequest(op, input, output)
1131	return
1132}
1133
1134// DescribeClientProperties API operation for Amazon WorkSpaces.
1135//
1136// Retrieves a list that describes one or more specified Amazon WorkSpaces clients.
1137//
1138// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1139// with awserr.Error's Code and Message methods to get detailed information about
1140// the error.
1141//
1142// See the AWS API reference guide for Amazon WorkSpaces's
1143// API operation DescribeClientProperties for usage and error information.
1144//
1145// Returned Error Codes:
1146//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1147//   One or more parameter values are not valid.
1148//
1149//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1150//   The resource could not be found.
1151//
1152//   * ErrCodeAccessDeniedException "AccessDeniedException"
1153//   The user is not authorized to access a resource.
1154//
1155// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeClientProperties
1156func (c *WorkSpaces) DescribeClientProperties(input *DescribeClientPropertiesInput) (*DescribeClientPropertiesOutput, error) {
1157	req, out := c.DescribeClientPropertiesRequest(input)
1158	return out, req.Send()
1159}
1160
1161// DescribeClientPropertiesWithContext is the same as DescribeClientProperties with the addition of
1162// the ability to pass a context and additional request options.
1163//
1164// See DescribeClientProperties for details on how to use this API operation.
1165//
1166// The context must be non-nil and will be used for request cancellation. If
1167// the context is nil a panic will occur. In the future the SDK may create
1168// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1169// for more information on using Contexts.
1170func (c *WorkSpaces) DescribeClientPropertiesWithContext(ctx aws.Context, input *DescribeClientPropertiesInput, opts ...request.Option) (*DescribeClientPropertiesOutput, error) {
1171	req, out := c.DescribeClientPropertiesRequest(input)
1172	req.SetContext(ctx)
1173	req.ApplyOptions(opts...)
1174	return out, req.Send()
1175}
1176
1177const opDescribeIpGroups = "DescribeIpGroups"
1178
1179// DescribeIpGroupsRequest generates a "aws/request.Request" representing the
1180// client's request for the DescribeIpGroups operation. The "output" return
1181// value will be populated with the request's response once the request completes
1182// successfully.
1183//
1184// Use "Send" method on the returned Request to send the API call to the service.
1185// the "output" return value is not valid until after Send returns without error.
1186//
1187// See DescribeIpGroups for more information on using the DescribeIpGroups
1188// API call, and error handling.
1189//
1190// This method is useful when you want to inject custom logic or configuration
1191// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1192//
1193//
1194//    // Example sending a request using the DescribeIpGroupsRequest method.
1195//    req, resp := client.DescribeIpGroupsRequest(params)
1196//
1197//    err := req.Send()
1198//    if err == nil { // resp is now filled
1199//        fmt.Println(resp)
1200//    }
1201//
1202// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeIpGroups
1203func (c *WorkSpaces) DescribeIpGroupsRequest(input *DescribeIpGroupsInput) (req *request.Request, output *DescribeIpGroupsOutput) {
1204	op := &request.Operation{
1205		Name:       opDescribeIpGroups,
1206		HTTPMethod: "POST",
1207		HTTPPath:   "/",
1208	}
1209
1210	if input == nil {
1211		input = &DescribeIpGroupsInput{}
1212	}
1213
1214	output = &DescribeIpGroupsOutput{}
1215	req = c.newRequest(op, input, output)
1216	return
1217}
1218
1219// DescribeIpGroups API operation for Amazon WorkSpaces.
1220//
1221// Describes one or more of your IP access control groups.
1222//
1223// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1224// with awserr.Error's Code and Message methods to get detailed information about
1225// the error.
1226//
1227// See the AWS API reference guide for Amazon WorkSpaces's
1228// API operation DescribeIpGroups for usage and error information.
1229//
1230// Returned Error Codes:
1231//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1232//   One or more parameter values are not valid.
1233//
1234//   * ErrCodeAccessDeniedException "AccessDeniedException"
1235//   The user is not authorized to access a resource.
1236//
1237// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeIpGroups
1238func (c *WorkSpaces) DescribeIpGroups(input *DescribeIpGroupsInput) (*DescribeIpGroupsOutput, error) {
1239	req, out := c.DescribeIpGroupsRequest(input)
1240	return out, req.Send()
1241}
1242
1243// DescribeIpGroupsWithContext is the same as DescribeIpGroups with the addition of
1244// the ability to pass a context and additional request options.
1245//
1246// See DescribeIpGroups for details on how to use this API operation.
1247//
1248// The context must be non-nil and will be used for request cancellation. If
1249// the context is nil a panic will occur. In the future the SDK may create
1250// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1251// for more information on using Contexts.
1252func (c *WorkSpaces) DescribeIpGroupsWithContext(ctx aws.Context, input *DescribeIpGroupsInput, opts ...request.Option) (*DescribeIpGroupsOutput, error) {
1253	req, out := c.DescribeIpGroupsRequest(input)
1254	req.SetContext(ctx)
1255	req.ApplyOptions(opts...)
1256	return out, req.Send()
1257}
1258
1259const opDescribeTags = "DescribeTags"
1260
1261// DescribeTagsRequest generates a "aws/request.Request" representing the
1262// client's request for the DescribeTags operation. The "output" return
1263// value will be populated with the request's response once the request completes
1264// successfully.
1265//
1266// Use "Send" method on the returned Request to send the API call to the service.
1267// the "output" return value is not valid until after Send returns without error.
1268//
1269// See DescribeTags for more information on using the DescribeTags
1270// API call, and error handling.
1271//
1272// This method is useful when you want to inject custom logic or configuration
1273// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1274//
1275//
1276//    // Example sending a request using the DescribeTagsRequest method.
1277//    req, resp := client.DescribeTagsRequest(params)
1278//
1279//    err := req.Send()
1280//    if err == nil { // resp is now filled
1281//        fmt.Println(resp)
1282//    }
1283//
1284// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeTags
1285func (c *WorkSpaces) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Request, output *DescribeTagsOutput) {
1286	op := &request.Operation{
1287		Name:       opDescribeTags,
1288		HTTPMethod: "POST",
1289		HTTPPath:   "/",
1290	}
1291
1292	if input == nil {
1293		input = &DescribeTagsInput{}
1294	}
1295
1296	output = &DescribeTagsOutput{}
1297	req = c.newRequest(op, input, output)
1298	return
1299}
1300
1301// DescribeTags API operation for Amazon WorkSpaces.
1302//
1303// Describes the specified tags for the specified WorkSpaces resource.
1304//
1305// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1306// with awserr.Error's Code and Message methods to get detailed information about
1307// the error.
1308//
1309// See the AWS API reference guide for Amazon WorkSpaces's
1310// API operation DescribeTags for usage and error information.
1311//
1312// Returned Error Codes:
1313//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1314//   The resource could not be found.
1315//
1316// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeTags
1317func (c *WorkSpaces) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) {
1318	req, out := c.DescribeTagsRequest(input)
1319	return out, req.Send()
1320}
1321
1322// DescribeTagsWithContext is the same as DescribeTags with the addition of
1323// the ability to pass a context and additional request options.
1324//
1325// See DescribeTags for details on how to use this API operation.
1326//
1327// The context must be non-nil and will be used for request cancellation. If
1328// the context is nil a panic will occur. In the future the SDK may create
1329// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1330// for more information on using Contexts.
1331func (c *WorkSpaces) DescribeTagsWithContext(ctx aws.Context, input *DescribeTagsInput, opts ...request.Option) (*DescribeTagsOutput, error) {
1332	req, out := c.DescribeTagsRequest(input)
1333	req.SetContext(ctx)
1334	req.ApplyOptions(opts...)
1335	return out, req.Send()
1336}
1337
1338const opDescribeWorkspaceBundles = "DescribeWorkspaceBundles"
1339
1340// DescribeWorkspaceBundlesRequest generates a "aws/request.Request" representing the
1341// client's request for the DescribeWorkspaceBundles operation. The "output" return
1342// value will be populated with the request's response once the request completes
1343// successfully.
1344//
1345// Use "Send" method on the returned Request to send the API call to the service.
1346// the "output" return value is not valid until after Send returns without error.
1347//
1348// See DescribeWorkspaceBundles for more information on using the DescribeWorkspaceBundles
1349// API call, and error handling.
1350//
1351// This method is useful when you want to inject custom logic or configuration
1352// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1353//
1354//
1355//    // Example sending a request using the DescribeWorkspaceBundlesRequest method.
1356//    req, resp := client.DescribeWorkspaceBundlesRequest(params)
1357//
1358//    err := req.Send()
1359//    if err == nil { // resp is now filled
1360//        fmt.Println(resp)
1361//    }
1362//
1363// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceBundles
1364func (c *WorkSpaces) DescribeWorkspaceBundlesRequest(input *DescribeWorkspaceBundlesInput) (req *request.Request, output *DescribeWorkspaceBundlesOutput) {
1365	op := &request.Operation{
1366		Name:       opDescribeWorkspaceBundles,
1367		HTTPMethod: "POST",
1368		HTTPPath:   "/",
1369		Paginator: &request.Paginator{
1370			InputTokens:     []string{"NextToken"},
1371			OutputTokens:    []string{"NextToken"},
1372			LimitToken:      "",
1373			TruncationToken: "",
1374		},
1375	}
1376
1377	if input == nil {
1378		input = &DescribeWorkspaceBundlesInput{}
1379	}
1380
1381	output = &DescribeWorkspaceBundlesOutput{}
1382	req = c.newRequest(op, input, output)
1383	return
1384}
1385
1386// DescribeWorkspaceBundles API operation for Amazon WorkSpaces.
1387//
1388// Retrieves a list that describes the available WorkSpace bundles.
1389//
1390// You can filter the results using either bundle ID or owner, but not both.
1391//
1392// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1393// with awserr.Error's Code and Message methods to get detailed information about
1394// the error.
1395//
1396// See the AWS API reference guide for Amazon WorkSpaces's
1397// API operation DescribeWorkspaceBundles for usage and error information.
1398//
1399// Returned Error Codes:
1400//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1401//   One or more parameter values are not valid.
1402//
1403// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceBundles
1404func (c *WorkSpaces) DescribeWorkspaceBundles(input *DescribeWorkspaceBundlesInput) (*DescribeWorkspaceBundlesOutput, error) {
1405	req, out := c.DescribeWorkspaceBundlesRequest(input)
1406	return out, req.Send()
1407}
1408
1409// DescribeWorkspaceBundlesWithContext is the same as DescribeWorkspaceBundles with the addition of
1410// the ability to pass a context and additional request options.
1411//
1412// See DescribeWorkspaceBundles for details on how to use this API operation.
1413//
1414// The context must be non-nil and will be used for request cancellation. If
1415// the context is nil a panic will occur. In the future the SDK may create
1416// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1417// for more information on using Contexts.
1418func (c *WorkSpaces) DescribeWorkspaceBundlesWithContext(ctx aws.Context, input *DescribeWorkspaceBundlesInput, opts ...request.Option) (*DescribeWorkspaceBundlesOutput, error) {
1419	req, out := c.DescribeWorkspaceBundlesRequest(input)
1420	req.SetContext(ctx)
1421	req.ApplyOptions(opts...)
1422	return out, req.Send()
1423}
1424
1425// DescribeWorkspaceBundlesPages iterates over the pages of a DescribeWorkspaceBundles operation,
1426// calling the "fn" function with the response data for each page. To stop
1427// iterating, return false from the fn function.
1428//
1429// See DescribeWorkspaceBundles method for more information on how to use this operation.
1430//
1431// Note: This operation can generate multiple requests to a service.
1432//
1433//    // Example iterating over at most 3 pages of a DescribeWorkspaceBundles operation.
1434//    pageNum := 0
1435//    err := client.DescribeWorkspaceBundlesPages(params,
1436//        func(page *workspaces.DescribeWorkspaceBundlesOutput, lastPage bool) bool {
1437//            pageNum++
1438//            fmt.Println(page)
1439//            return pageNum <= 3
1440//        })
1441//
1442func (c *WorkSpaces) DescribeWorkspaceBundlesPages(input *DescribeWorkspaceBundlesInput, fn func(*DescribeWorkspaceBundlesOutput, bool) bool) error {
1443	return c.DescribeWorkspaceBundlesPagesWithContext(aws.BackgroundContext(), input, fn)
1444}
1445
1446// DescribeWorkspaceBundlesPagesWithContext same as DescribeWorkspaceBundlesPages except
1447// it takes a Context and allows setting request options on the pages.
1448//
1449// The context must be non-nil and will be used for request cancellation. If
1450// the context is nil a panic will occur. In the future the SDK may create
1451// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1452// for more information on using Contexts.
1453func (c *WorkSpaces) DescribeWorkspaceBundlesPagesWithContext(ctx aws.Context, input *DescribeWorkspaceBundlesInput, fn func(*DescribeWorkspaceBundlesOutput, bool) bool, opts ...request.Option) error {
1454	p := request.Pagination{
1455		NewRequest: func() (*request.Request, error) {
1456			var inCpy *DescribeWorkspaceBundlesInput
1457			if input != nil {
1458				tmp := *input
1459				inCpy = &tmp
1460			}
1461			req, _ := c.DescribeWorkspaceBundlesRequest(inCpy)
1462			req.SetContext(ctx)
1463			req.ApplyOptions(opts...)
1464			return req, nil
1465		},
1466	}
1467
1468	for p.Next() {
1469		if !fn(p.Page().(*DescribeWorkspaceBundlesOutput), !p.HasNextPage()) {
1470			break
1471		}
1472	}
1473
1474	return p.Err()
1475}
1476
1477const opDescribeWorkspaceDirectories = "DescribeWorkspaceDirectories"
1478
1479// DescribeWorkspaceDirectoriesRequest generates a "aws/request.Request" representing the
1480// client's request for the DescribeWorkspaceDirectories operation. The "output" return
1481// value will be populated with the request's response once the request completes
1482// successfully.
1483//
1484// Use "Send" method on the returned Request to send the API call to the service.
1485// the "output" return value is not valid until after Send returns without error.
1486//
1487// See DescribeWorkspaceDirectories for more information on using the DescribeWorkspaceDirectories
1488// API call, and error handling.
1489//
1490// This method is useful when you want to inject custom logic or configuration
1491// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1492//
1493//
1494//    // Example sending a request using the DescribeWorkspaceDirectoriesRequest method.
1495//    req, resp := client.DescribeWorkspaceDirectoriesRequest(params)
1496//
1497//    err := req.Send()
1498//    if err == nil { // resp is now filled
1499//        fmt.Println(resp)
1500//    }
1501//
1502// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceDirectories
1503func (c *WorkSpaces) DescribeWorkspaceDirectoriesRequest(input *DescribeWorkspaceDirectoriesInput) (req *request.Request, output *DescribeWorkspaceDirectoriesOutput) {
1504	op := &request.Operation{
1505		Name:       opDescribeWorkspaceDirectories,
1506		HTTPMethod: "POST",
1507		HTTPPath:   "/",
1508		Paginator: &request.Paginator{
1509			InputTokens:     []string{"NextToken"},
1510			OutputTokens:    []string{"NextToken"},
1511			LimitToken:      "",
1512			TruncationToken: "",
1513		},
1514	}
1515
1516	if input == nil {
1517		input = &DescribeWorkspaceDirectoriesInput{}
1518	}
1519
1520	output = &DescribeWorkspaceDirectoriesOutput{}
1521	req = c.newRequest(op, input, output)
1522	return
1523}
1524
1525// DescribeWorkspaceDirectories API operation for Amazon WorkSpaces.
1526//
1527// Describes the available directories that are registered with Amazon WorkSpaces.
1528//
1529// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1530// with awserr.Error's Code and Message methods to get detailed information about
1531// the error.
1532//
1533// See the AWS API reference guide for Amazon WorkSpaces's
1534// API operation DescribeWorkspaceDirectories for usage and error information.
1535//
1536// Returned Error Codes:
1537//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1538//   One or more parameter values are not valid.
1539//
1540// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceDirectories
1541func (c *WorkSpaces) DescribeWorkspaceDirectories(input *DescribeWorkspaceDirectoriesInput) (*DescribeWorkspaceDirectoriesOutput, error) {
1542	req, out := c.DescribeWorkspaceDirectoriesRequest(input)
1543	return out, req.Send()
1544}
1545
1546// DescribeWorkspaceDirectoriesWithContext is the same as DescribeWorkspaceDirectories with the addition of
1547// the ability to pass a context and additional request options.
1548//
1549// See DescribeWorkspaceDirectories for details on how to use this API operation.
1550//
1551// The context must be non-nil and will be used for request cancellation. If
1552// the context is nil a panic will occur. In the future the SDK may create
1553// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1554// for more information on using Contexts.
1555func (c *WorkSpaces) DescribeWorkspaceDirectoriesWithContext(ctx aws.Context, input *DescribeWorkspaceDirectoriesInput, opts ...request.Option) (*DescribeWorkspaceDirectoriesOutput, error) {
1556	req, out := c.DescribeWorkspaceDirectoriesRequest(input)
1557	req.SetContext(ctx)
1558	req.ApplyOptions(opts...)
1559	return out, req.Send()
1560}
1561
1562// DescribeWorkspaceDirectoriesPages iterates over the pages of a DescribeWorkspaceDirectories operation,
1563// calling the "fn" function with the response data for each page. To stop
1564// iterating, return false from the fn function.
1565//
1566// See DescribeWorkspaceDirectories method for more information on how to use this operation.
1567//
1568// Note: This operation can generate multiple requests to a service.
1569//
1570//    // Example iterating over at most 3 pages of a DescribeWorkspaceDirectories operation.
1571//    pageNum := 0
1572//    err := client.DescribeWorkspaceDirectoriesPages(params,
1573//        func(page *workspaces.DescribeWorkspaceDirectoriesOutput, lastPage bool) bool {
1574//            pageNum++
1575//            fmt.Println(page)
1576//            return pageNum <= 3
1577//        })
1578//
1579func (c *WorkSpaces) DescribeWorkspaceDirectoriesPages(input *DescribeWorkspaceDirectoriesInput, fn func(*DescribeWorkspaceDirectoriesOutput, bool) bool) error {
1580	return c.DescribeWorkspaceDirectoriesPagesWithContext(aws.BackgroundContext(), input, fn)
1581}
1582
1583// DescribeWorkspaceDirectoriesPagesWithContext same as DescribeWorkspaceDirectoriesPages except
1584// it takes a Context and allows setting request options on the pages.
1585//
1586// The context must be non-nil and will be used for request cancellation. If
1587// the context is nil a panic will occur. In the future the SDK may create
1588// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1589// for more information on using Contexts.
1590func (c *WorkSpaces) DescribeWorkspaceDirectoriesPagesWithContext(ctx aws.Context, input *DescribeWorkspaceDirectoriesInput, fn func(*DescribeWorkspaceDirectoriesOutput, bool) bool, opts ...request.Option) error {
1591	p := request.Pagination{
1592		NewRequest: func() (*request.Request, error) {
1593			var inCpy *DescribeWorkspaceDirectoriesInput
1594			if input != nil {
1595				tmp := *input
1596				inCpy = &tmp
1597			}
1598			req, _ := c.DescribeWorkspaceDirectoriesRequest(inCpy)
1599			req.SetContext(ctx)
1600			req.ApplyOptions(opts...)
1601			return req, nil
1602		},
1603	}
1604
1605	for p.Next() {
1606		if !fn(p.Page().(*DescribeWorkspaceDirectoriesOutput), !p.HasNextPage()) {
1607			break
1608		}
1609	}
1610
1611	return p.Err()
1612}
1613
1614const opDescribeWorkspaceImages = "DescribeWorkspaceImages"
1615
1616// DescribeWorkspaceImagesRequest generates a "aws/request.Request" representing the
1617// client's request for the DescribeWorkspaceImages operation. The "output" return
1618// value will be populated with the request's response once the request completes
1619// successfully.
1620//
1621// Use "Send" method on the returned Request to send the API call to the service.
1622// the "output" return value is not valid until after Send returns without error.
1623//
1624// See DescribeWorkspaceImages for more information on using the DescribeWorkspaceImages
1625// API call, and error handling.
1626//
1627// This method is useful when you want to inject custom logic or configuration
1628// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1629//
1630//
1631//    // Example sending a request using the DescribeWorkspaceImagesRequest method.
1632//    req, resp := client.DescribeWorkspaceImagesRequest(params)
1633//
1634//    err := req.Send()
1635//    if err == nil { // resp is now filled
1636//        fmt.Println(resp)
1637//    }
1638//
1639// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImages
1640func (c *WorkSpaces) DescribeWorkspaceImagesRequest(input *DescribeWorkspaceImagesInput) (req *request.Request, output *DescribeWorkspaceImagesOutput) {
1641	op := &request.Operation{
1642		Name:       opDescribeWorkspaceImages,
1643		HTTPMethod: "POST",
1644		HTTPPath:   "/",
1645	}
1646
1647	if input == nil {
1648		input = &DescribeWorkspaceImagesInput{}
1649	}
1650
1651	output = &DescribeWorkspaceImagesOutput{}
1652	req = c.newRequest(op, input, output)
1653	return
1654}
1655
1656// DescribeWorkspaceImages API operation for Amazon WorkSpaces.
1657//
1658// Retrieves a list that describes one or more specified images, if the image
1659// identifiers are provided. Otherwise, all images in the account are described.
1660//
1661// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1662// with awserr.Error's Code and Message methods to get detailed information about
1663// the error.
1664//
1665// See the AWS API reference guide for Amazon WorkSpaces's
1666// API operation DescribeWorkspaceImages for usage and error information.
1667//
1668// Returned Error Codes:
1669//   * ErrCodeAccessDeniedException "AccessDeniedException"
1670//   The user is not authorized to access a resource.
1671//
1672// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImages
1673func (c *WorkSpaces) DescribeWorkspaceImages(input *DescribeWorkspaceImagesInput) (*DescribeWorkspaceImagesOutput, error) {
1674	req, out := c.DescribeWorkspaceImagesRequest(input)
1675	return out, req.Send()
1676}
1677
1678// DescribeWorkspaceImagesWithContext is the same as DescribeWorkspaceImages with the addition of
1679// the ability to pass a context and additional request options.
1680//
1681// See DescribeWorkspaceImages for details on how to use this API operation.
1682//
1683// The context must be non-nil and will be used for request cancellation. If
1684// the context is nil a panic will occur. In the future the SDK may create
1685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1686// for more information on using Contexts.
1687func (c *WorkSpaces) DescribeWorkspaceImagesWithContext(ctx aws.Context, input *DescribeWorkspaceImagesInput, opts ...request.Option) (*DescribeWorkspaceImagesOutput, error) {
1688	req, out := c.DescribeWorkspaceImagesRequest(input)
1689	req.SetContext(ctx)
1690	req.ApplyOptions(opts...)
1691	return out, req.Send()
1692}
1693
1694const opDescribeWorkspaceSnapshots = "DescribeWorkspaceSnapshots"
1695
1696// DescribeWorkspaceSnapshotsRequest generates a "aws/request.Request" representing the
1697// client's request for the DescribeWorkspaceSnapshots operation. The "output" return
1698// value will be populated with the request's response once the request completes
1699// successfully.
1700//
1701// Use "Send" method on the returned Request to send the API call to the service.
1702// the "output" return value is not valid until after Send returns without error.
1703//
1704// See DescribeWorkspaceSnapshots for more information on using the DescribeWorkspaceSnapshots
1705// API call, and error handling.
1706//
1707// This method is useful when you want to inject custom logic or configuration
1708// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1709//
1710//
1711//    // Example sending a request using the DescribeWorkspaceSnapshotsRequest method.
1712//    req, resp := client.DescribeWorkspaceSnapshotsRequest(params)
1713//
1714//    err := req.Send()
1715//    if err == nil { // resp is now filled
1716//        fmt.Println(resp)
1717//    }
1718//
1719// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceSnapshots
1720func (c *WorkSpaces) DescribeWorkspaceSnapshotsRequest(input *DescribeWorkspaceSnapshotsInput) (req *request.Request, output *DescribeWorkspaceSnapshotsOutput) {
1721	op := &request.Operation{
1722		Name:       opDescribeWorkspaceSnapshots,
1723		HTTPMethod: "POST",
1724		HTTPPath:   "/",
1725	}
1726
1727	if input == nil {
1728		input = &DescribeWorkspaceSnapshotsInput{}
1729	}
1730
1731	output = &DescribeWorkspaceSnapshotsOutput{}
1732	req = c.newRequest(op, input, output)
1733	return
1734}
1735
1736// DescribeWorkspaceSnapshots API operation for Amazon WorkSpaces.
1737//
1738// Describes the snapshots for the specified WorkSpace.
1739//
1740// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1741// with awserr.Error's Code and Message methods to get detailed information about
1742// the error.
1743//
1744// See the AWS API reference guide for Amazon WorkSpaces's
1745// API operation DescribeWorkspaceSnapshots for usage and error information.
1746//
1747// Returned Error Codes:
1748//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1749//   One or more parameter values are not valid.
1750//
1751//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1752//   The resource could not be found.
1753//
1754//   * ErrCodeAccessDeniedException "AccessDeniedException"
1755//   The user is not authorized to access a resource.
1756//
1757// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceSnapshots
1758func (c *WorkSpaces) DescribeWorkspaceSnapshots(input *DescribeWorkspaceSnapshotsInput) (*DescribeWorkspaceSnapshotsOutput, error) {
1759	req, out := c.DescribeWorkspaceSnapshotsRequest(input)
1760	return out, req.Send()
1761}
1762
1763// DescribeWorkspaceSnapshotsWithContext is the same as DescribeWorkspaceSnapshots with the addition of
1764// the ability to pass a context and additional request options.
1765//
1766// See DescribeWorkspaceSnapshots for details on how to use this API operation.
1767//
1768// The context must be non-nil and will be used for request cancellation. If
1769// the context is nil a panic will occur. In the future the SDK may create
1770// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1771// for more information on using Contexts.
1772func (c *WorkSpaces) DescribeWorkspaceSnapshotsWithContext(ctx aws.Context, input *DescribeWorkspaceSnapshotsInput, opts ...request.Option) (*DescribeWorkspaceSnapshotsOutput, error) {
1773	req, out := c.DescribeWorkspaceSnapshotsRequest(input)
1774	req.SetContext(ctx)
1775	req.ApplyOptions(opts...)
1776	return out, req.Send()
1777}
1778
1779const opDescribeWorkspaces = "DescribeWorkspaces"
1780
1781// DescribeWorkspacesRequest generates a "aws/request.Request" representing the
1782// client's request for the DescribeWorkspaces operation. The "output" return
1783// value will be populated with the request's response once the request completes
1784// successfully.
1785//
1786// Use "Send" method on the returned Request to send the API call to the service.
1787// the "output" return value is not valid until after Send returns without error.
1788//
1789// See DescribeWorkspaces for more information on using the DescribeWorkspaces
1790// API call, and error handling.
1791//
1792// This method is useful when you want to inject custom logic or configuration
1793// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1794//
1795//
1796//    // Example sending a request using the DescribeWorkspacesRequest method.
1797//    req, resp := client.DescribeWorkspacesRequest(params)
1798//
1799//    err := req.Send()
1800//    if err == nil { // resp is now filled
1801//        fmt.Println(resp)
1802//    }
1803//
1804// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaces
1805func (c *WorkSpaces) DescribeWorkspacesRequest(input *DescribeWorkspacesInput) (req *request.Request, output *DescribeWorkspacesOutput) {
1806	op := &request.Operation{
1807		Name:       opDescribeWorkspaces,
1808		HTTPMethod: "POST",
1809		HTTPPath:   "/",
1810		Paginator: &request.Paginator{
1811			InputTokens:     []string{"NextToken"},
1812			OutputTokens:    []string{"NextToken"},
1813			LimitToken:      "Limit",
1814			TruncationToken: "",
1815		},
1816	}
1817
1818	if input == nil {
1819		input = &DescribeWorkspacesInput{}
1820	}
1821
1822	output = &DescribeWorkspacesOutput{}
1823	req = c.newRequest(op, input, output)
1824	return
1825}
1826
1827// DescribeWorkspaces API operation for Amazon WorkSpaces.
1828//
1829// Describes the specified WorkSpaces.
1830//
1831// You can filter the results by using the bundle identifier, directory identifier,
1832// or owner, but you can specify only one filter at a time.
1833//
1834// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1835// with awserr.Error's Code and Message methods to get detailed information about
1836// the error.
1837//
1838// See the AWS API reference guide for Amazon WorkSpaces's
1839// API operation DescribeWorkspaces for usage and error information.
1840//
1841// Returned Error Codes:
1842//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1843//   One or more parameter values are not valid.
1844//
1845//   * ErrCodeResourceUnavailableException "ResourceUnavailableException"
1846//   The specified resource is not available.
1847//
1848// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaces
1849func (c *WorkSpaces) DescribeWorkspaces(input *DescribeWorkspacesInput) (*DescribeWorkspacesOutput, error) {
1850	req, out := c.DescribeWorkspacesRequest(input)
1851	return out, req.Send()
1852}
1853
1854// DescribeWorkspacesWithContext is the same as DescribeWorkspaces with the addition of
1855// the ability to pass a context and additional request options.
1856//
1857// See DescribeWorkspaces for details on how to use this API operation.
1858//
1859// The context must be non-nil and will be used for request cancellation. If
1860// the context is nil a panic will occur. In the future the SDK may create
1861// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1862// for more information on using Contexts.
1863func (c *WorkSpaces) DescribeWorkspacesWithContext(ctx aws.Context, input *DescribeWorkspacesInput, opts ...request.Option) (*DescribeWorkspacesOutput, error) {
1864	req, out := c.DescribeWorkspacesRequest(input)
1865	req.SetContext(ctx)
1866	req.ApplyOptions(opts...)
1867	return out, req.Send()
1868}
1869
1870// DescribeWorkspacesPages iterates over the pages of a DescribeWorkspaces operation,
1871// calling the "fn" function with the response data for each page. To stop
1872// iterating, return false from the fn function.
1873//
1874// See DescribeWorkspaces method for more information on how to use this operation.
1875//
1876// Note: This operation can generate multiple requests to a service.
1877//
1878//    // Example iterating over at most 3 pages of a DescribeWorkspaces operation.
1879//    pageNum := 0
1880//    err := client.DescribeWorkspacesPages(params,
1881//        func(page *workspaces.DescribeWorkspacesOutput, lastPage bool) bool {
1882//            pageNum++
1883//            fmt.Println(page)
1884//            return pageNum <= 3
1885//        })
1886//
1887func (c *WorkSpaces) DescribeWorkspacesPages(input *DescribeWorkspacesInput, fn func(*DescribeWorkspacesOutput, bool) bool) error {
1888	return c.DescribeWorkspacesPagesWithContext(aws.BackgroundContext(), input, fn)
1889}
1890
1891// DescribeWorkspacesPagesWithContext same as DescribeWorkspacesPages except
1892// it takes a Context and allows setting request options on the pages.
1893//
1894// The context must be non-nil and will be used for request cancellation. If
1895// the context is nil a panic will occur. In the future the SDK may create
1896// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1897// for more information on using Contexts.
1898func (c *WorkSpaces) DescribeWorkspacesPagesWithContext(ctx aws.Context, input *DescribeWorkspacesInput, fn func(*DescribeWorkspacesOutput, bool) bool, opts ...request.Option) error {
1899	p := request.Pagination{
1900		NewRequest: func() (*request.Request, error) {
1901			var inCpy *DescribeWorkspacesInput
1902			if input != nil {
1903				tmp := *input
1904				inCpy = &tmp
1905			}
1906			req, _ := c.DescribeWorkspacesRequest(inCpy)
1907			req.SetContext(ctx)
1908			req.ApplyOptions(opts...)
1909			return req, nil
1910		},
1911	}
1912
1913	for p.Next() {
1914		if !fn(p.Page().(*DescribeWorkspacesOutput), !p.HasNextPage()) {
1915			break
1916		}
1917	}
1918
1919	return p.Err()
1920}
1921
1922const opDescribeWorkspacesConnectionStatus = "DescribeWorkspacesConnectionStatus"
1923
1924// DescribeWorkspacesConnectionStatusRequest generates a "aws/request.Request" representing the
1925// client's request for the DescribeWorkspacesConnectionStatus operation. The "output" return
1926// value will be populated with the request's response once the request completes
1927// successfully.
1928//
1929// Use "Send" method on the returned Request to send the API call to the service.
1930// the "output" return value is not valid until after Send returns without error.
1931//
1932// See DescribeWorkspacesConnectionStatus for more information on using the DescribeWorkspacesConnectionStatus
1933// API call, and error handling.
1934//
1935// This method is useful when you want to inject custom logic or configuration
1936// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1937//
1938//
1939//    // Example sending a request using the DescribeWorkspacesConnectionStatusRequest method.
1940//    req, resp := client.DescribeWorkspacesConnectionStatusRequest(params)
1941//
1942//    err := req.Send()
1943//    if err == nil { // resp is now filled
1944//        fmt.Println(resp)
1945//    }
1946//
1947// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspacesConnectionStatus
1948func (c *WorkSpaces) DescribeWorkspacesConnectionStatusRequest(input *DescribeWorkspacesConnectionStatusInput) (req *request.Request, output *DescribeWorkspacesConnectionStatusOutput) {
1949	op := &request.Operation{
1950		Name:       opDescribeWorkspacesConnectionStatus,
1951		HTTPMethod: "POST",
1952		HTTPPath:   "/",
1953	}
1954
1955	if input == nil {
1956		input = &DescribeWorkspacesConnectionStatusInput{}
1957	}
1958
1959	output = &DescribeWorkspacesConnectionStatusOutput{}
1960	req = c.newRequest(op, input, output)
1961	return
1962}
1963
1964// DescribeWorkspacesConnectionStatus API operation for Amazon WorkSpaces.
1965//
1966// Describes the connection status of the specified WorkSpaces.
1967//
1968// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1969// with awserr.Error's Code and Message methods to get detailed information about
1970// the error.
1971//
1972// See the AWS API reference guide for Amazon WorkSpaces's
1973// API operation DescribeWorkspacesConnectionStatus for usage and error information.
1974//
1975// Returned Error Codes:
1976//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1977//   One or more parameter values are not valid.
1978//
1979// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspacesConnectionStatus
1980func (c *WorkSpaces) DescribeWorkspacesConnectionStatus(input *DescribeWorkspacesConnectionStatusInput) (*DescribeWorkspacesConnectionStatusOutput, error) {
1981	req, out := c.DescribeWorkspacesConnectionStatusRequest(input)
1982	return out, req.Send()
1983}
1984
1985// DescribeWorkspacesConnectionStatusWithContext is the same as DescribeWorkspacesConnectionStatus with the addition of
1986// the ability to pass a context and additional request options.
1987//
1988// See DescribeWorkspacesConnectionStatus for details on how to use this API operation.
1989//
1990// The context must be non-nil and will be used for request cancellation. If
1991// the context is nil a panic will occur. In the future the SDK may create
1992// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1993// for more information on using Contexts.
1994func (c *WorkSpaces) DescribeWorkspacesConnectionStatusWithContext(ctx aws.Context, input *DescribeWorkspacesConnectionStatusInput, opts ...request.Option) (*DescribeWorkspacesConnectionStatusOutput, error) {
1995	req, out := c.DescribeWorkspacesConnectionStatusRequest(input)
1996	req.SetContext(ctx)
1997	req.ApplyOptions(opts...)
1998	return out, req.Send()
1999}
2000
2001const opDisassociateIpGroups = "DisassociateIpGroups"
2002
2003// DisassociateIpGroupsRequest generates a "aws/request.Request" representing the
2004// client's request for the DisassociateIpGroups operation. The "output" return
2005// value will be populated with the request's response once the request completes
2006// successfully.
2007//
2008// Use "Send" method on the returned Request to send the API call to the service.
2009// the "output" return value is not valid until after Send returns without error.
2010//
2011// See DisassociateIpGroups for more information on using the DisassociateIpGroups
2012// API call, and error handling.
2013//
2014// This method is useful when you want to inject custom logic or configuration
2015// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2016//
2017//
2018//    // Example sending a request using the DisassociateIpGroupsRequest method.
2019//    req, resp := client.DisassociateIpGroupsRequest(params)
2020//
2021//    err := req.Send()
2022//    if err == nil { // resp is now filled
2023//        fmt.Println(resp)
2024//    }
2025//
2026// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateIpGroups
2027func (c *WorkSpaces) DisassociateIpGroupsRequest(input *DisassociateIpGroupsInput) (req *request.Request, output *DisassociateIpGroupsOutput) {
2028	op := &request.Operation{
2029		Name:       opDisassociateIpGroups,
2030		HTTPMethod: "POST",
2031		HTTPPath:   "/",
2032	}
2033
2034	if input == nil {
2035		input = &DisassociateIpGroupsInput{}
2036	}
2037
2038	output = &DisassociateIpGroupsOutput{}
2039	req = c.newRequest(op, input, output)
2040	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2041	return
2042}
2043
2044// DisassociateIpGroups API operation for Amazon WorkSpaces.
2045//
2046// Disassociates the specified IP access control group from the specified directory.
2047//
2048// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2049// with awserr.Error's Code and Message methods to get detailed information about
2050// the error.
2051//
2052// See the AWS API reference guide for Amazon WorkSpaces's
2053// API operation DisassociateIpGroups for usage and error information.
2054//
2055// Returned Error Codes:
2056//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2057//   One or more parameter values are not valid.
2058//
2059//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2060//   The resource could not be found.
2061//
2062//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
2063//   The state of the resource is not valid for this operation.
2064//
2065//   * ErrCodeAccessDeniedException "AccessDeniedException"
2066//   The user is not authorized to access a resource.
2067//
2068// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateIpGroups
2069func (c *WorkSpaces) DisassociateIpGroups(input *DisassociateIpGroupsInput) (*DisassociateIpGroupsOutput, error) {
2070	req, out := c.DisassociateIpGroupsRequest(input)
2071	return out, req.Send()
2072}
2073
2074// DisassociateIpGroupsWithContext is the same as DisassociateIpGroups with the addition of
2075// the ability to pass a context and additional request options.
2076//
2077// See DisassociateIpGroups for details on how to use this API operation.
2078//
2079// The context must be non-nil and will be used for request cancellation. If
2080// the context is nil a panic will occur. In the future the SDK may create
2081// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2082// for more information on using Contexts.
2083func (c *WorkSpaces) DisassociateIpGroupsWithContext(ctx aws.Context, input *DisassociateIpGroupsInput, opts ...request.Option) (*DisassociateIpGroupsOutput, error) {
2084	req, out := c.DisassociateIpGroupsRequest(input)
2085	req.SetContext(ctx)
2086	req.ApplyOptions(opts...)
2087	return out, req.Send()
2088}
2089
2090const opImportWorkspaceImage = "ImportWorkspaceImage"
2091
2092// ImportWorkspaceImageRequest generates a "aws/request.Request" representing the
2093// client's request for the ImportWorkspaceImage operation. The "output" return
2094// value will be populated with the request's response once the request completes
2095// successfully.
2096//
2097// Use "Send" method on the returned Request to send the API call to the service.
2098// the "output" return value is not valid until after Send returns without error.
2099//
2100// See ImportWorkspaceImage for more information on using the ImportWorkspaceImage
2101// API call, and error handling.
2102//
2103// This method is useful when you want to inject custom logic or configuration
2104// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2105//
2106//
2107//    // Example sending a request using the ImportWorkspaceImageRequest method.
2108//    req, resp := client.ImportWorkspaceImageRequest(params)
2109//
2110//    err := req.Send()
2111//    if err == nil { // resp is now filled
2112//        fmt.Println(resp)
2113//    }
2114//
2115// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ImportWorkspaceImage
2116func (c *WorkSpaces) ImportWorkspaceImageRequest(input *ImportWorkspaceImageInput) (req *request.Request, output *ImportWorkspaceImageOutput) {
2117	op := &request.Operation{
2118		Name:       opImportWorkspaceImage,
2119		HTTPMethod: "POST",
2120		HTTPPath:   "/",
2121	}
2122
2123	if input == nil {
2124		input = &ImportWorkspaceImageInput{}
2125	}
2126
2127	output = &ImportWorkspaceImageOutput{}
2128	req = c.newRequest(op, input, output)
2129	return
2130}
2131
2132// ImportWorkspaceImage API operation for Amazon WorkSpaces.
2133//
2134// Imports the specified Windows 7 or Windows 10 Bring Your Own License (BYOL)
2135// image into Amazon WorkSpaces. The image must be an already licensed EC2 image
2136// that is in your AWS account, and you must own the image.
2137//
2138// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2139// with awserr.Error's Code and Message methods to get detailed information about
2140// the error.
2141//
2142// See the AWS API reference guide for Amazon WorkSpaces's
2143// API operation ImportWorkspaceImage for usage and error information.
2144//
2145// Returned Error Codes:
2146//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
2147//   Your resource limits have been exceeded.
2148//
2149//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
2150//   The specified resource already exists.
2151//
2152//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2153//   The resource could not be found.
2154//
2155//   * ErrCodeOperationNotSupportedException "OperationNotSupportedException"
2156//   This operation is not supported.
2157//
2158//   * ErrCodeAccessDeniedException "AccessDeniedException"
2159//   The user is not authorized to access a resource.
2160//
2161//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2162//   One or more parameter values are not valid.
2163//
2164// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ImportWorkspaceImage
2165func (c *WorkSpaces) ImportWorkspaceImage(input *ImportWorkspaceImageInput) (*ImportWorkspaceImageOutput, error) {
2166	req, out := c.ImportWorkspaceImageRequest(input)
2167	return out, req.Send()
2168}
2169
2170// ImportWorkspaceImageWithContext is the same as ImportWorkspaceImage with the addition of
2171// the ability to pass a context and additional request options.
2172//
2173// See ImportWorkspaceImage for details on how to use this API operation.
2174//
2175// The context must be non-nil and will be used for request cancellation. If
2176// the context is nil a panic will occur. In the future the SDK may create
2177// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2178// for more information on using Contexts.
2179func (c *WorkSpaces) ImportWorkspaceImageWithContext(ctx aws.Context, input *ImportWorkspaceImageInput, opts ...request.Option) (*ImportWorkspaceImageOutput, error) {
2180	req, out := c.ImportWorkspaceImageRequest(input)
2181	req.SetContext(ctx)
2182	req.ApplyOptions(opts...)
2183	return out, req.Send()
2184}
2185
2186const opListAvailableManagementCidrRanges = "ListAvailableManagementCidrRanges"
2187
2188// ListAvailableManagementCidrRangesRequest generates a "aws/request.Request" representing the
2189// client's request for the ListAvailableManagementCidrRanges operation. The "output" return
2190// value will be populated with the request's response once the request completes
2191// successfully.
2192//
2193// Use "Send" method on the returned Request to send the API call to the service.
2194// the "output" return value is not valid until after Send returns without error.
2195//
2196// See ListAvailableManagementCidrRanges for more information on using the ListAvailableManagementCidrRanges
2197// API call, and error handling.
2198//
2199// This method is useful when you want to inject custom logic or configuration
2200// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2201//
2202//
2203//    // Example sending a request using the ListAvailableManagementCidrRangesRequest method.
2204//    req, resp := client.ListAvailableManagementCidrRangesRequest(params)
2205//
2206//    err := req.Send()
2207//    if err == nil { // resp is now filled
2208//        fmt.Println(resp)
2209//    }
2210//
2211// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ListAvailableManagementCidrRanges
2212func (c *WorkSpaces) ListAvailableManagementCidrRangesRequest(input *ListAvailableManagementCidrRangesInput) (req *request.Request, output *ListAvailableManagementCidrRangesOutput) {
2213	op := &request.Operation{
2214		Name:       opListAvailableManagementCidrRanges,
2215		HTTPMethod: "POST",
2216		HTTPPath:   "/",
2217	}
2218
2219	if input == nil {
2220		input = &ListAvailableManagementCidrRangesInput{}
2221	}
2222
2223	output = &ListAvailableManagementCidrRangesOutput{}
2224	req = c.newRequest(op, input, output)
2225	return
2226}
2227
2228// ListAvailableManagementCidrRanges API operation for Amazon WorkSpaces.
2229//
2230// Retrieves a list of IP address ranges, specified as IPv4 CIDR blocks, that
2231// you can use for the network management interface when you enable Bring Your
2232// Own License (BYOL).
2233//
2234// The management network interface is connected to a secure Amazon WorkSpaces
2235// management network. It is used for interactive streaming of the WorkSpace
2236// desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage
2237// the WorkSpace.
2238//
2239// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2240// with awserr.Error's Code and Message methods to get detailed information about
2241// the error.
2242//
2243// See the AWS API reference guide for Amazon WorkSpaces's
2244// API operation ListAvailableManagementCidrRanges for usage and error information.
2245//
2246// Returned Error Codes:
2247//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2248//   One or more parameter values are not valid.
2249//
2250//   * ErrCodeAccessDeniedException "AccessDeniedException"
2251//   The user is not authorized to access a resource.
2252//
2253// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ListAvailableManagementCidrRanges
2254func (c *WorkSpaces) ListAvailableManagementCidrRanges(input *ListAvailableManagementCidrRangesInput) (*ListAvailableManagementCidrRangesOutput, error) {
2255	req, out := c.ListAvailableManagementCidrRangesRequest(input)
2256	return out, req.Send()
2257}
2258
2259// ListAvailableManagementCidrRangesWithContext is the same as ListAvailableManagementCidrRanges with the addition of
2260// the ability to pass a context and additional request options.
2261//
2262// See ListAvailableManagementCidrRanges for details on how to use this API operation.
2263//
2264// The context must be non-nil and will be used for request cancellation. If
2265// the context is nil a panic will occur. In the future the SDK may create
2266// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2267// for more information on using Contexts.
2268func (c *WorkSpaces) ListAvailableManagementCidrRangesWithContext(ctx aws.Context, input *ListAvailableManagementCidrRangesInput, opts ...request.Option) (*ListAvailableManagementCidrRangesOutput, error) {
2269	req, out := c.ListAvailableManagementCidrRangesRequest(input)
2270	req.SetContext(ctx)
2271	req.ApplyOptions(opts...)
2272	return out, req.Send()
2273}
2274
2275const opModifyAccount = "ModifyAccount"
2276
2277// ModifyAccountRequest generates a "aws/request.Request" representing the
2278// client's request for the ModifyAccount operation. The "output" return
2279// value will be populated with the request's response once the request completes
2280// successfully.
2281//
2282// Use "Send" method on the returned Request to send the API call to the service.
2283// the "output" return value is not valid until after Send returns without error.
2284//
2285// See ModifyAccount for more information on using the ModifyAccount
2286// API call, and error handling.
2287//
2288// This method is useful when you want to inject custom logic or configuration
2289// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2290//
2291//
2292//    // Example sending a request using the ModifyAccountRequest method.
2293//    req, resp := client.ModifyAccountRequest(params)
2294//
2295//    err := req.Send()
2296//    if err == nil { // resp is now filled
2297//        fmt.Println(resp)
2298//    }
2299//
2300// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyAccount
2301func (c *WorkSpaces) ModifyAccountRequest(input *ModifyAccountInput) (req *request.Request, output *ModifyAccountOutput) {
2302	op := &request.Operation{
2303		Name:       opModifyAccount,
2304		HTTPMethod: "POST",
2305		HTTPPath:   "/",
2306	}
2307
2308	if input == nil {
2309		input = &ModifyAccountInput{}
2310	}
2311
2312	output = &ModifyAccountOutput{}
2313	req = c.newRequest(op, input, output)
2314	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2315	return
2316}
2317
2318// ModifyAccount API operation for Amazon WorkSpaces.
2319//
2320// Modifies the configuration of Bring Your Own License (BYOL) for the specified
2321// account.
2322//
2323// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2324// with awserr.Error's Code and Message methods to get detailed information about
2325// the error.
2326//
2327// See the AWS API reference guide for Amazon WorkSpaces's
2328// API operation ModifyAccount for usage and error information.
2329//
2330// Returned Error Codes:
2331//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2332//   One or more parameter values are not valid.
2333//
2334//   * ErrCodeAccessDeniedException "AccessDeniedException"
2335//   The user is not authorized to access a resource.
2336//
2337//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
2338//   The state of the resource is not valid for this operation.
2339//
2340//   * ErrCodeResourceUnavailableException "ResourceUnavailableException"
2341//   The specified resource is not available.
2342//
2343//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2344//   The resource could not be found.
2345//
2346// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyAccount
2347func (c *WorkSpaces) ModifyAccount(input *ModifyAccountInput) (*ModifyAccountOutput, error) {
2348	req, out := c.ModifyAccountRequest(input)
2349	return out, req.Send()
2350}
2351
2352// ModifyAccountWithContext is the same as ModifyAccount with the addition of
2353// the ability to pass a context and additional request options.
2354//
2355// See ModifyAccount for details on how to use this API operation.
2356//
2357// The context must be non-nil and will be used for request cancellation. If
2358// the context is nil a panic will occur. In the future the SDK may create
2359// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2360// for more information on using Contexts.
2361func (c *WorkSpaces) ModifyAccountWithContext(ctx aws.Context, input *ModifyAccountInput, opts ...request.Option) (*ModifyAccountOutput, error) {
2362	req, out := c.ModifyAccountRequest(input)
2363	req.SetContext(ctx)
2364	req.ApplyOptions(opts...)
2365	return out, req.Send()
2366}
2367
2368const opModifyClientProperties = "ModifyClientProperties"
2369
2370// ModifyClientPropertiesRequest generates a "aws/request.Request" representing the
2371// client's request for the ModifyClientProperties operation. The "output" return
2372// value will be populated with the request's response once the request completes
2373// successfully.
2374//
2375// Use "Send" method on the returned Request to send the API call to the service.
2376// the "output" return value is not valid until after Send returns without error.
2377//
2378// See ModifyClientProperties for more information on using the ModifyClientProperties
2379// API call, and error handling.
2380//
2381// This method is useful when you want to inject custom logic or configuration
2382// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2383//
2384//
2385//    // Example sending a request using the ModifyClientPropertiesRequest method.
2386//    req, resp := client.ModifyClientPropertiesRequest(params)
2387//
2388//    err := req.Send()
2389//    if err == nil { // resp is now filled
2390//        fmt.Println(resp)
2391//    }
2392//
2393// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyClientProperties
2394func (c *WorkSpaces) ModifyClientPropertiesRequest(input *ModifyClientPropertiesInput) (req *request.Request, output *ModifyClientPropertiesOutput) {
2395	op := &request.Operation{
2396		Name:       opModifyClientProperties,
2397		HTTPMethod: "POST",
2398		HTTPPath:   "/",
2399	}
2400
2401	if input == nil {
2402		input = &ModifyClientPropertiesInput{}
2403	}
2404
2405	output = &ModifyClientPropertiesOutput{}
2406	req = c.newRequest(op, input, output)
2407	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2408	return
2409}
2410
2411// ModifyClientProperties API operation for Amazon WorkSpaces.
2412//
2413// Modifies the properties of the specified Amazon WorkSpaces clients.
2414//
2415// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2416// with awserr.Error's Code and Message methods to get detailed information about
2417// the error.
2418//
2419// See the AWS API reference guide for Amazon WorkSpaces's
2420// API operation ModifyClientProperties for usage and error information.
2421//
2422// Returned Error Codes:
2423//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2424//   One or more parameter values are not valid.
2425//
2426//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2427//   The resource could not be found.
2428//
2429//   * ErrCodeAccessDeniedException "AccessDeniedException"
2430//   The user is not authorized to access a resource.
2431//
2432// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyClientProperties
2433func (c *WorkSpaces) ModifyClientProperties(input *ModifyClientPropertiesInput) (*ModifyClientPropertiesOutput, error) {
2434	req, out := c.ModifyClientPropertiesRequest(input)
2435	return out, req.Send()
2436}
2437
2438// ModifyClientPropertiesWithContext is the same as ModifyClientProperties with the addition of
2439// the ability to pass a context and additional request options.
2440//
2441// See ModifyClientProperties for details on how to use this API operation.
2442//
2443// The context must be non-nil and will be used for request cancellation. If
2444// the context is nil a panic will occur. In the future the SDK may create
2445// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2446// for more information on using Contexts.
2447func (c *WorkSpaces) ModifyClientPropertiesWithContext(ctx aws.Context, input *ModifyClientPropertiesInput, opts ...request.Option) (*ModifyClientPropertiesOutput, error) {
2448	req, out := c.ModifyClientPropertiesRequest(input)
2449	req.SetContext(ctx)
2450	req.ApplyOptions(opts...)
2451	return out, req.Send()
2452}
2453
2454const opModifySelfservicePermissions = "ModifySelfservicePermissions"
2455
2456// ModifySelfservicePermissionsRequest generates a "aws/request.Request" representing the
2457// client's request for the ModifySelfservicePermissions operation. The "output" return
2458// value will be populated with the request's response once the request completes
2459// successfully.
2460//
2461// Use "Send" method on the returned Request to send the API call to the service.
2462// the "output" return value is not valid until after Send returns without error.
2463//
2464// See ModifySelfservicePermissions for more information on using the ModifySelfservicePermissions
2465// API call, and error handling.
2466//
2467// This method is useful when you want to inject custom logic or configuration
2468// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2469//
2470//
2471//    // Example sending a request using the ModifySelfservicePermissionsRequest method.
2472//    req, resp := client.ModifySelfservicePermissionsRequest(params)
2473//
2474//    err := req.Send()
2475//    if err == nil { // resp is now filled
2476//        fmt.Println(resp)
2477//    }
2478//
2479// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifySelfservicePermissions
2480func (c *WorkSpaces) ModifySelfservicePermissionsRequest(input *ModifySelfservicePermissionsInput) (req *request.Request, output *ModifySelfservicePermissionsOutput) {
2481	op := &request.Operation{
2482		Name:       opModifySelfservicePermissions,
2483		HTTPMethod: "POST",
2484		HTTPPath:   "/",
2485	}
2486
2487	if input == nil {
2488		input = &ModifySelfservicePermissionsInput{}
2489	}
2490
2491	output = &ModifySelfservicePermissionsOutput{}
2492	req = c.newRequest(op, input, output)
2493	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2494	return
2495}
2496
2497// ModifySelfservicePermissions API operation for Amazon WorkSpaces.
2498//
2499// Modifies the self-service WorkSpace management capabilities for your users.
2500// For more information, see Enable Self-Service WorkSpace Management Capabilities
2501// for Your Users (https://docs.aws.amazon.com/workspaces/latest/adminguide/enable-user-self-service-workspace-management.html).
2502//
2503// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2504// with awserr.Error's Code and Message methods to get detailed information about
2505// the error.
2506//
2507// See the AWS API reference guide for Amazon WorkSpaces's
2508// API operation ModifySelfservicePermissions for usage and error information.
2509//
2510// Returned Error Codes:
2511//   * ErrCodeAccessDeniedException "AccessDeniedException"
2512//   The user is not authorized to access a resource.
2513//
2514//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2515//   One or more parameter values are not valid.
2516//
2517//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2518//   The resource could not be found.
2519//
2520// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifySelfservicePermissions
2521func (c *WorkSpaces) ModifySelfservicePermissions(input *ModifySelfservicePermissionsInput) (*ModifySelfservicePermissionsOutput, error) {
2522	req, out := c.ModifySelfservicePermissionsRequest(input)
2523	return out, req.Send()
2524}
2525
2526// ModifySelfservicePermissionsWithContext is the same as ModifySelfservicePermissions with the addition of
2527// the ability to pass a context and additional request options.
2528//
2529// See ModifySelfservicePermissions for details on how to use this API operation.
2530//
2531// The context must be non-nil and will be used for request cancellation. If
2532// the context is nil a panic will occur. In the future the SDK may create
2533// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2534// for more information on using Contexts.
2535func (c *WorkSpaces) ModifySelfservicePermissionsWithContext(ctx aws.Context, input *ModifySelfservicePermissionsInput, opts ...request.Option) (*ModifySelfservicePermissionsOutput, error) {
2536	req, out := c.ModifySelfservicePermissionsRequest(input)
2537	req.SetContext(ctx)
2538	req.ApplyOptions(opts...)
2539	return out, req.Send()
2540}
2541
2542const opModifyWorkspaceAccessProperties = "ModifyWorkspaceAccessProperties"
2543
2544// ModifyWorkspaceAccessPropertiesRequest generates a "aws/request.Request" representing the
2545// client's request for the ModifyWorkspaceAccessProperties operation. The "output" return
2546// value will be populated with the request's response once the request completes
2547// successfully.
2548//
2549// Use "Send" method on the returned Request to send the API call to the service.
2550// the "output" return value is not valid until after Send returns without error.
2551//
2552// See ModifyWorkspaceAccessProperties for more information on using the ModifyWorkspaceAccessProperties
2553// API call, and error handling.
2554//
2555// This method is useful when you want to inject custom logic or configuration
2556// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2557//
2558//
2559//    // Example sending a request using the ModifyWorkspaceAccessPropertiesRequest method.
2560//    req, resp := client.ModifyWorkspaceAccessPropertiesRequest(params)
2561//
2562//    err := req.Send()
2563//    if err == nil { // resp is now filled
2564//        fmt.Println(resp)
2565//    }
2566//
2567// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceAccessProperties
2568func (c *WorkSpaces) ModifyWorkspaceAccessPropertiesRequest(input *ModifyWorkspaceAccessPropertiesInput) (req *request.Request, output *ModifyWorkspaceAccessPropertiesOutput) {
2569	op := &request.Operation{
2570		Name:       opModifyWorkspaceAccessProperties,
2571		HTTPMethod: "POST",
2572		HTTPPath:   "/",
2573	}
2574
2575	if input == nil {
2576		input = &ModifyWorkspaceAccessPropertiesInput{}
2577	}
2578
2579	output = &ModifyWorkspaceAccessPropertiesOutput{}
2580	req = c.newRequest(op, input, output)
2581	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2582	return
2583}
2584
2585// ModifyWorkspaceAccessProperties API operation for Amazon WorkSpaces.
2586//
2587// Specifies which devices and operating systems users can use to access their
2588// Workspaces. For more information, see Control Device Access (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html#control-device-access).
2589//
2590// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2591// with awserr.Error's Code and Message methods to get detailed information about
2592// the error.
2593//
2594// See the AWS API reference guide for Amazon WorkSpaces's
2595// API operation ModifyWorkspaceAccessProperties for usage and error information.
2596//
2597// Returned Error Codes:
2598//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2599//   The resource could not be found.
2600//
2601//   * ErrCodeAccessDeniedException "AccessDeniedException"
2602//   The user is not authorized to access a resource.
2603//
2604// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceAccessProperties
2605func (c *WorkSpaces) ModifyWorkspaceAccessProperties(input *ModifyWorkspaceAccessPropertiesInput) (*ModifyWorkspaceAccessPropertiesOutput, error) {
2606	req, out := c.ModifyWorkspaceAccessPropertiesRequest(input)
2607	return out, req.Send()
2608}
2609
2610// ModifyWorkspaceAccessPropertiesWithContext is the same as ModifyWorkspaceAccessProperties with the addition of
2611// the ability to pass a context and additional request options.
2612//
2613// See ModifyWorkspaceAccessProperties for details on how to use this API operation.
2614//
2615// The context must be non-nil and will be used for request cancellation. If
2616// the context is nil a panic will occur. In the future the SDK may create
2617// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2618// for more information on using Contexts.
2619func (c *WorkSpaces) ModifyWorkspaceAccessPropertiesWithContext(ctx aws.Context, input *ModifyWorkspaceAccessPropertiesInput, opts ...request.Option) (*ModifyWorkspaceAccessPropertiesOutput, error) {
2620	req, out := c.ModifyWorkspaceAccessPropertiesRequest(input)
2621	req.SetContext(ctx)
2622	req.ApplyOptions(opts...)
2623	return out, req.Send()
2624}
2625
2626const opModifyWorkspaceCreationProperties = "ModifyWorkspaceCreationProperties"
2627
2628// ModifyWorkspaceCreationPropertiesRequest generates a "aws/request.Request" representing the
2629// client's request for the ModifyWorkspaceCreationProperties operation. The "output" return
2630// value will be populated with the request's response once the request completes
2631// successfully.
2632//
2633// Use "Send" method on the returned Request to send the API call to the service.
2634// the "output" return value is not valid until after Send returns without error.
2635//
2636// See ModifyWorkspaceCreationProperties for more information on using the ModifyWorkspaceCreationProperties
2637// API call, and error handling.
2638//
2639// This method is useful when you want to inject custom logic or configuration
2640// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2641//
2642//
2643//    // Example sending a request using the ModifyWorkspaceCreationPropertiesRequest method.
2644//    req, resp := client.ModifyWorkspaceCreationPropertiesRequest(params)
2645//
2646//    err := req.Send()
2647//    if err == nil { // resp is now filled
2648//        fmt.Println(resp)
2649//    }
2650//
2651// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceCreationProperties
2652func (c *WorkSpaces) ModifyWorkspaceCreationPropertiesRequest(input *ModifyWorkspaceCreationPropertiesInput) (req *request.Request, output *ModifyWorkspaceCreationPropertiesOutput) {
2653	op := &request.Operation{
2654		Name:       opModifyWorkspaceCreationProperties,
2655		HTTPMethod: "POST",
2656		HTTPPath:   "/",
2657	}
2658
2659	if input == nil {
2660		input = &ModifyWorkspaceCreationPropertiesInput{}
2661	}
2662
2663	output = &ModifyWorkspaceCreationPropertiesOutput{}
2664	req = c.newRequest(op, input, output)
2665	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2666	return
2667}
2668
2669// ModifyWorkspaceCreationProperties API operation for Amazon WorkSpaces.
2670//
2671// Modify the default properties used to create WorkSpaces.
2672//
2673// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2674// with awserr.Error's Code and Message methods to get detailed information about
2675// the error.
2676//
2677// See the AWS API reference guide for Amazon WorkSpaces's
2678// API operation ModifyWorkspaceCreationProperties for usage and error information.
2679//
2680// Returned Error Codes:
2681//   * ErrCodeAccessDeniedException "AccessDeniedException"
2682//   The user is not authorized to access a resource.
2683//
2684//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2685//   One or more parameter values are not valid.
2686//
2687//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2688//   The resource could not be found.
2689//
2690// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceCreationProperties
2691func (c *WorkSpaces) ModifyWorkspaceCreationProperties(input *ModifyWorkspaceCreationPropertiesInput) (*ModifyWorkspaceCreationPropertiesOutput, error) {
2692	req, out := c.ModifyWorkspaceCreationPropertiesRequest(input)
2693	return out, req.Send()
2694}
2695
2696// ModifyWorkspaceCreationPropertiesWithContext is the same as ModifyWorkspaceCreationProperties with the addition of
2697// the ability to pass a context and additional request options.
2698//
2699// See ModifyWorkspaceCreationProperties for details on how to use this API operation.
2700//
2701// The context must be non-nil and will be used for request cancellation. If
2702// the context is nil a panic will occur. In the future the SDK may create
2703// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2704// for more information on using Contexts.
2705func (c *WorkSpaces) ModifyWorkspaceCreationPropertiesWithContext(ctx aws.Context, input *ModifyWorkspaceCreationPropertiesInput, opts ...request.Option) (*ModifyWorkspaceCreationPropertiesOutput, error) {
2706	req, out := c.ModifyWorkspaceCreationPropertiesRequest(input)
2707	req.SetContext(ctx)
2708	req.ApplyOptions(opts...)
2709	return out, req.Send()
2710}
2711
2712const opModifyWorkspaceProperties = "ModifyWorkspaceProperties"
2713
2714// ModifyWorkspacePropertiesRequest generates a "aws/request.Request" representing the
2715// client's request for the ModifyWorkspaceProperties operation. The "output" return
2716// value will be populated with the request's response once the request completes
2717// successfully.
2718//
2719// Use "Send" method on the returned Request to send the API call to the service.
2720// the "output" return value is not valid until after Send returns without error.
2721//
2722// See ModifyWorkspaceProperties for more information on using the ModifyWorkspaceProperties
2723// API call, and error handling.
2724//
2725// This method is useful when you want to inject custom logic or configuration
2726// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2727//
2728//
2729//    // Example sending a request using the ModifyWorkspacePropertiesRequest method.
2730//    req, resp := client.ModifyWorkspacePropertiesRequest(params)
2731//
2732//    err := req.Send()
2733//    if err == nil { // resp is now filled
2734//        fmt.Println(resp)
2735//    }
2736//
2737// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceProperties
2738func (c *WorkSpaces) ModifyWorkspacePropertiesRequest(input *ModifyWorkspacePropertiesInput) (req *request.Request, output *ModifyWorkspacePropertiesOutput) {
2739	op := &request.Operation{
2740		Name:       opModifyWorkspaceProperties,
2741		HTTPMethod: "POST",
2742		HTTPPath:   "/",
2743	}
2744
2745	if input == nil {
2746		input = &ModifyWorkspacePropertiesInput{}
2747	}
2748
2749	output = &ModifyWorkspacePropertiesOutput{}
2750	req = c.newRequest(op, input, output)
2751	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2752	return
2753}
2754
2755// ModifyWorkspaceProperties API operation for Amazon WorkSpaces.
2756//
2757// Modifies the specified WorkSpace properties.
2758//
2759// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2760// with awserr.Error's Code and Message methods to get detailed information about
2761// the error.
2762//
2763// See the AWS API reference guide for Amazon WorkSpaces's
2764// API operation ModifyWorkspaceProperties for usage and error information.
2765//
2766// Returned Error Codes:
2767//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2768//   One or more parameter values are not valid.
2769//
2770//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
2771//   The state of the resource is not valid for this operation.
2772//
2773//   * ErrCodeOperationInProgressException "OperationInProgressException"
2774//   The properties of this WorkSpace are currently being modified. Try again
2775//   in a moment.
2776//
2777//   * ErrCodeUnsupportedWorkspaceConfigurationException "UnsupportedWorkspaceConfigurationException"
2778//   The configuration of this WorkSpace is not supported for this operation.
2779//   For more information, see Required Configuration and Service Components for
2780//   WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/required-service-components.html).
2781//
2782//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2783//   The resource could not be found.
2784//
2785//   * ErrCodeAccessDeniedException "AccessDeniedException"
2786//   The user is not authorized to access a resource.
2787//
2788//   * ErrCodeResourceUnavailableException "ResourceUnavailableException"
2789//   The specified resource is not available.
2790//
2791// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceProperties
2792func (c *WorkSpaces) ModifyWorkspaceProperties(input *ModifyWorkspacePropertiesInput) (*ModifyWorkspacePropertiesOutput, error) {
2793	req, out := c.ModifyWorkspacePropertiesRequest(input)
2794	return out, req.Send()
2795}
2796
2797// ModifyWorkspacePropertiesWithContext is the same as ModifyWorkspaceProperties with the addition of
2798// the ability to pass a context and additional request options.
2799//
2800// See ModifyWorkspaceProperties for details on how to use this API operation.
2801//
2802// The context must be non-nil and will be used for request cancellation. If
2803// the context is nil a panic will occur. In the future the SDK may create
2804// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2805// for more information on using Contexts.
2806func (c *WorkSpaces) ModifyWorkspacePropertiesWithContext(ctx aws.Context, input *ModifyWorkspacePropertiesInput, opts ...request.Option) (*ModifyWorkspacePropertiesOutput, error) {
2807	req, out := c.ModifyWorkspacePropertiesRequest(input)
2808	req.SetContext(ctx)
2809	req.ApplyOptions(opts...)
2810	return out, req.Send()
2811}
2812
2813const opModifyWorkspaceState = "ModifyWorkspaceState"
2814
2815// ModifyWorkspaceStateRequest generates a "aws/request.Request" representing the
2816// client's request for the ModifyWorkspaceState operation. The "output" return
2817// value will be populated with the request's response once the request completes
2818// successfully.
2819//
2820// Use "Send" method on the returned Request to send the API call to the service.
2821// the "output" return value is not valid until after Send returns without error.
2822//
2823// See ModifyWorkspaceState for more information on using the ModifyWorkspaceState
2824// API call, and error handling.
2825//
2826// This method is useful when you want to inject custom logic or configuration
2827// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2828//
2829//
2830//    // Example sending a request using the ModifyWorkspaceStateRequest method.
2831//    req, resp := client.ModifyWorkspaceStateRequest(params)
2832//
2833//    err := req.Send()
2834//    if err == nil { // resp is now filled
2835//        fmt.Println(resp)
2836//    }
2837//
2838// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceState
2839func (c *WorkSpaces) ModifyWorkspaceStateRequest(input *ModifyWorkspaceStateInput) (req *request.Request, output *ModifyWorkspaceStateOutput) {
2840	op := &request.Operation{
2841		Name:       opModifyWorkspaceState,
2842		HTTPMethod: "POST",
2843		HTTPPath:   "/",
2844	}
2845
2846	if input == nil {
2847		input = &ModifyWorkspaceStateInput{}
2848	}
2849
2850	output = &ModifyWorkspaceStateOutput{}
2851	req = c.newRequest(op, input, output)
2852	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2853	return
2854}
2855
2856// ModifyWorkspaceState API operation for Amazon WorkSpaces.
2857//
2858// Sets the state of the specified WorkSpace.
2859//
2860// To maintain a WorkSpace without being interrupted, set the WorkSpace state
2861// to ADMIN_MAINTENANCE. WorkSpaces in this state do not respond to requests
2862// to reboot, stop, start, rebuild, or restore. An AutoStop WorkSpace in this
2863// state is not stopped. Users cannot log into a WorkSpace in the ADMIN_MAINTENANCE
2864// state.
2865//
2866// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2867// with awserr.Error's Code and Message methods to get detailed information about
2868// the error.
2869//
2870// See the AWS API reference guide for Amazon WorkSpaces's
2871// API operation ModifyWorkspaceState for usage and error information.
2872//
2873// Returned Error Codes:
2874//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2875//   One or more parameter values are not valid.
2876//
2877//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
2878//   The state of the resource is not valid for this operation.
2879//
2880//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2881//   The resource could not be found.
2882//
2883// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceState
2884func (c *WorkSpaces) ModifyWorkspaceState(input *ModifyWorkspaceStateInput) (*ModifyWorkspaceStateOutput, error) {
2885	req, out := c.ModifyWorkspaceStateRequest(input)
2886	return out, req.Send()
2887}
2888
2889// ModifyWorkspaceStateWithContext is the same as ModifyWorkspaceState with the addition of
2890// the ability to pass a context and additional request options.
2891//
2892// See ModifyWorkspaceState for details on how to use this API operation.
2893//
2894// The context must be non-nil and will be used for request cancellation. If
2895// the context is nil a panic will occur. In the future the SDK may create
2896// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2897// for more information on using Contexts.
2898func (c *WorkSpaces) ModifyWorkspaceStateWithContext(ctx aws.Context, input *ModifyWorkspaceStateInput, opts ...request.Option) (*ModifyWorkspaceStateOutput, error) {
2899	req, out := c.ModifyWorkspaceStateRequest(input)
2900	req.SetContext(ctx)
2901	req.ApplyOptions(opts...)
2902	return out, req.Send()
2903}
2904
2905const opRebootWorkspaces = "RebootWorkspaces"
2906
2907// RebootWorkspacesRequest generates a "aws/request.Request" representing the
2908// client's request for the RebootWorkspaces operation. The "output" return
2909// value will be populated with the request's response once the request completes
2910// successfully.
2911//
2912// Use "Send" method on the returned Request to send the API call to the service.
2913// the "output" return value is not valid until after Send returns without error.
2914//
2915// See RebootWorkspaces for more information on using the RebootWorkspaces
2916// API call, and error handling.
2917//
2918// This method is useful when you want to inject custom logic or configuration
2919// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2920//
2921//
2922//    // Example sending a request using the RebootWorkspacesRequest method.
2923//    req, resp := client.RebootWorkspacesRequest(params)
2924//
2925//    err := req.Send()
2926//    if err == nil { // resp is now filled
2927//        fmt.Println(resp)
2928//    }
2929//
2930// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebootWorkspaces
2931func (c *WorkSpaces) RebootWorkspacesRequest(input *RebootWorkspacesInput) (req *request.Request, output *RebootWorkspacesOutput) {
2932	op := &request.Operation{
2933		Name:       opRebootWorkspaces,
2934		HTTPMethod: "POST",
2935		HTTPPath:   "/",
2936	}
2937
2938	if input == nil {
2939		input = &RebootWorkspacesInput{}
2940	}
2941
2942	output = &RebootWorkspacesOutput{}
2943	req = c.newRequest(op, input, output)
2944	return
2945}
2946
2947// RebootWorkspaces API operation for Amazon WorkSpaces.
2948//
2949// Reboots the specified WorkSpaces.
2950//
2951// You cannot reboot a WorkSpace unless its state is AVAILABLE or UNHEALTHY.
2952//
2953// This operation is asynchronous and returns before the WorkSpaces have rebooted.
2954//
2955// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2956// with awserr.Error's Code and Message methods to get detailed information about
2957// the error.
2958//
2959// See the AWS API reference guide for Amazon WorkSpaces's
2960// API operation RebootWorkspaces for usage and error information.
2961// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebootWorkspaces
2962func (c *WorkSpaces) RebootWorkspaces(input *RebootWorkspacesInput) (*RebootWorkspacesOutput, error) {
2963	req, out := c.RebootWorkspacesRequest(input)
2964	return out, req.Send()
2965}
2966
2967// RebootWorkspacesWithContext is the same as RebootWorkspaces with the addition of
2968// the ability to pass a context and additional request options.
2969//
2970// See RebootWorkspaces for details on how to use this API operation.
2971//
2972// The context must be non-nil and will be used for request cancellation. If
2973// the context is nil a panic will occur. In the future the SDK may create
2974// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2975// for more information on using Contexts.
2976func (c *WorkSpaces) RebootWorkspacesWithContext(ctx aws.Context, input *RebootWorkspacesInput, opts ...request.Option) (*RebootWorkspacesOutput, error) {
2977	req, out := c.RebootWorkspacesRequest(input)
2978	req.SetContext(ctx)
2979	req.ApplyOptions(opts...)
2980	return out, req.Send()
2981}
2982
2983const opRebuildWorkspaces = "RebuildWorkspaces"
2984
2985// RebuildWorkspacesRequest generates a "aws/request.Request" representing the
2986// client's request for the RebuildWorkspaces operation. The "output" return
2987// value will be populated with the request's response once the request completes
2988// successfully.
2989//
2990// Use "Send" method on the returned Request to send the API call to the service.
2991// the "output" return value is not valid until after Send returns without error.
2992//
2993// See RebuildWorkspaces for more information on using the RebuildWorkspaces
2994// API call, and error handling.
2995//
2996// This method is useful when you want to inject custom logic or configuration
2997// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2998//
2999//
3000//    // Example sending a request using the RebuildWorkspacesRequest method.
3001//    req, resp := client.RebuildWorkspacesRequest(params)
3002//
3003//    err := req.Send()
3004//    if err == nil { // resp is now filled
3005//        fmt.Println(resp)
3006//    }
3007//
3008// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces
3009func (c *WorkSpaces) RebuildWorkspacesRequest(input *RebuildWorkspacesInput) (req *request.Request, output *RebuildWorkspacesOutput) {
3010	op := &request.Operation{
3011		Name:       opRebuildWorkspaces,
3012		HTTPMethod: "POST",
3013		HTTPPath:   "/",
3014	}
3015
3016	if input == nil {
3017		input = &RebuildWorkspacesInput{}
3018	}
3019
3020	output = &RebuildWorkspacesOutput{}
3021	req = c.newRequest(op, input, output)
3022	return
3023}
3024
3025// RebuildWorkspaces API operation for Amazon WorkSpaces.
3026//
3027// Rebuilds the specified WorkSpace.
3028//
3029// You cannot rebuild a WorkSpace unless its state is AVAILABLE, ERROR, or UNHEALTHY.
3030//
3031// Rebuilding a WorkSpace is a potentially destructive action that can result
3032// in the loss of data. For more information, see Rebuild a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/reset-workspace.html).
3033//
3034// This operation is asynchronous and returns before the WorkSpaces have been
3035// completely rebuilt.
3036//
3037// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3038// with awserr.Error's Code and Message methods to get detailed information about
3039// the error.
3040//
3041// See the AWS API reference guide for Amazon WorkSpaces's
3042// API operation RebuildWorkspaces for usage and error information.
3043// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces
3044func (c *WorkSpaces) RebuildWorkspaces(input *RebuildWorkspacesInput) (*RebuildWorkspacesOutput, error) {
3045	req, out := c.RebuildWorkspacesRequest(input)
3046	return out, req.Send()
3047}
3048
3049// RebuildWorkspacesWithContext is the same as RebuildWorkspaces with the addition of
3050// the ability to pass a context and additional request options.
3051//
3052// See RebuildWorkspaces for details on how to use this API operation.
3053//
3054// The context must be non-nil and will be used for request cancellation. If
3055// the context is nil a panic will occur. In the future the SDK may create
3056// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3057// for more information on using Contexts.
3058func (c *WorkSpaces) RebuildWorkspacesWithContext(ctx aws.Context, input *RebuildWorkspacesInput, opts ...request.Option) (*RebuildWorkspacesOutput, error) {
3059	req, out := c.RebuildWorkspacesRequest(input)
3060	req.SetContext(ctx)
3061	req.ApplyOptions(opts...)
3062	return out, req.Send()
3063}
3064
3065const opRegisterWorkspaceDirectory = "RegisterWorkspaceDirectory"
3066
3067// RegisterWorkspaceDirectoryRequest generates a "aws/request.Request" representing the
3068// client's request for the RegisterWorkspaceDirectory operation. The "output" return
3069// value will be populated with the request's response once the request completes
3070// successfully.
3071//
3072// Use "Send" method on the returned Request to send the API call to the service.
3073// the "output" return value is not valid until after Send returns without error.
3074//
3075// See RegisterWorkspaceDirectory for more information on using the RegisterWorkspaceDirectory
3076// API call, and error handling.
3077//
3078// This method is useful when you want to inject custom logic or configuration
3079// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3080//
3081//
3082//    // Example sending a request using the RegisterWorkspaceDirectoryRequest method.
3083//    req, resp := client.RegisterWorkspaceDirectoryRequest(params)
3084//
3085//    err := req.Send()
3086//    if err == nil { // resp is now filled
3087//        fmt.Println(resp)
3088//    }
3089//
3090// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RegisterWorkspaceDirectory
3091func (c *WorkSpaces) RegisterWorkspaceDirectoryRequest(input *RegisterWorkspaceDirectoryInput) (req *request.Request, output *RegisterWorkspaceDirectoryOutput) {
3092	op := &request.Operation{
3093		Name:       opRegisterWorkspaceDirectory,
3094		HTTPMethod: "POST",
3095		HTTPPath:   "/",
3096	}
3097
3098	if input == nil {
3099		input = &RegisterWorkspaceDirectoryInput{}
3100	}
3101
3102	output = &RegisterWorkspaceDirectoryOutput{}
3103	req = c.newRequest(op, input, output)
3104	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3105	return
3106}
3107
3108// RegisterWorkspaceDirectory API operation for Amazon WorkSpaces.
3109//
3110// Registers the specified directory. This operation is asynchronous and returns
3111// before the WorkSpace directory is registered. If this is the first time you
3112// are registering a directory, you will need to create the workspaces_DefaultRole
3113// role before you can register a directory. For more information, see Creating
3114// the workspaces_DefaultRole Role (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role).
3115//
3116// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3117// with awserr.Error's Code and Message methods to get detailed information about
3118// the error.
3119//
3120// See the AWS API reference guide for Amazon WorkSpaces's
3121// API operation RegisterWorkspaceDirectory for usage and error information.
3122//
3123// Returned Error Codes:
3124//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
3125//   One or more parameter values are not valid.
3126//
3127//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3128//   The resource could not be found.
3129//
3130//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
3131//   Your resource limits have been exceeded.
3132//
3133//   * ErrCodeAccessDeniedException "AccessDeniedException"
3134//   The user is not authorized to access a resource.
3135//
3136//   * ErrCodeWorkspacesDefaultRoleNotFoundException "WorkspacesDefaultRoleNotFoundException"
3137//   The workspaces_DefaultRole role could not be found. If this is the first
3138//   time you are registering a directory, you will need to create the workspaces_DefaultRole
3139//   role before you can register a directory. For more information, see Creating
3140//   the workspaces_DefaultRole Role (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-access-control.html#create-default-role).
3141//
3142//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
3143//   The state of the resource is not valid for this operation.
3144//
3145//   * ErrCodeUnsupportedNetworkConfigurationException "UnsupportedNetworkConfigurationException"
3146//   The configuration of this network is not supported for this operation, or
3147//   your network configuration conflicts with the Amazon WorkSpaces management
3148//   network IP range. For more information, see Configure a VPC for Amazon WorkSpaces
3149//   (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html).
3150//
3151//   * ErrCodeOperationNotSupportedException "OperationNotSupportedException"
3152//   This operation is not supported.
3153//
3154// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RegisterWorkspaceDirectory
3155func (c *WorkSpaces) RegisterWorkspaceDirectory(input *RegisterWorkspaceDirectoryInput) (*RegisterWorkspaceDirectoryOutput, error) {
3156	req, out := c.RegisterWorkspaceDirectoryRequest(input)
3157	return out, req.Send()
3158}
3159
3160// RegisterWorkspaceDirectoryWithContext is the same as RegisterWorkspaceDirectory with the addition of
3161// the ability to pass a context and additional request options.
3162//
3163// See RegisterWorkspaceDirectory for details on how to use this API operation.
3164//
3165// The context must be non-nil and will be used for request cancellation. If
3166// the context is nil a panic will occur. In the future the SDK may create
3167// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3168// for more information on using Contexts.
3169func (c *WorkSpaces) RegisterWorkspaceDirectoryWithContext(ctx aws.Context, input *RegisterWorkspaceDirectoryInput, opts ...request.Option) (*RegisterWorkspaceDirectoryOutput, error) {
3170	req, out := c.RegisterWorkspaceDirectoryRequest(input)
3171	req.SetContext(ctx)
3172	req.ApplyOptions(opts...)
3173	return out, req.Send()
3174}
3175
3176const opRestoreWorkspace = "RestoreWorkspace"
3177
3178// RestoreWorkspaceRequest generates a "aws/request.Request" representing the
3179// client's request for the RestoreWorkspace operation. The "output" return
3180// value will be populated with the request's response once the request completes
3181// successfully.
3182//
3183// Use "Send" method on the returned Request to send the API call to the service.
3184// the "output" return value is not valid until after Send returns without error.
3185//
3186// See RestoreWorkspace for more information on using the RestoreWorkspace
3187// API call, and error handling.
3188//
3189// This method is useful when you want to inject custom logic or configuration
3190// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3191//
3192//
3193//    // Example sending a request using the RestoreWorkspaceRequest method.
3194//    req, resp := client.RestoreWorkspaceRequest(params)
3195//
3196//    err := req.Send()
3197//    if err == nil { // resp is now filled
3198//        fmt.Println(resp)
3199//    }
3200//
3201// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RestoreWorkspace
3202func (c *WorkSpaces) RestoreWorkspaceRequest(input *RestoreWorkspaceInput) (req *request.Request, output *RestoreWorkspaceOutput) {
3203	op := &request.Operation{
3204		Name:       opRestoreWorkspace,
3205		HTTPMethod: "POST",
3206		HTTPPath:   "/",
3207	}
3208
3209	if input == nil {
3210		input = &RestoreWorkspaceInput{}
3211	}
3212
3213	output = &RestoreWorkspaceOutput{}
3214	req = c.newRequest(op, input, output)
3215	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3216	return
3217}
3218
3219// RestoreWorkspace API operation for Amazon WorkSpaces.
3220//
3221// Restores the specified WorkSpace to its last known healthy state.
3222//
3223// You cannot restore a WorkSpace unless its state is AVAILABLE, ERROR, or UNHEALTHY.
3224//
3225// Restoring a WorkSpace is a potentially destructive action that can result
3226// in the loss of data. For more information, see Restore a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/restore-workspace.html).
3227//
3228// This operation is asynchronous and returns before the WorkSpace is completely
3229// restored.
3230//
3231// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3232// with awserr.Error's Code and Message methods to get detailed information about
3233// the error.
3234//
3235// See the AWS API reference guide for Amazon WorkSpaces's
3236// API operation RestoreWorkspace for usage and error information.
3237//
3238// Returned Error Codes:
3239//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
3240//   One or more parameter values are not valid.
3241//
3242//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3243//   The resource could not be found.
3244//
3245//   * ErrCodeAccessDeniedException "AccessDeniedException"
3246//   The user is not authorized to access a resource.
3247//
3248// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RestoreWorkspace
3249func (c *WorkSpaces) RestoreWorkspace(input *RestoreWorkspaceInput) (*RestoreWorkspaceOutput, error) {
3250	req, out := c.RestoreWorkspaceRequest(input)
3251	return out, req.Send()
3252}
3253
3254// RestoreWorkspaceWithContext is the same as RestoreWorkspace with the addition of
3255// the ability to pass a context and additional request options.
3256//
3257// See RestoreWorkspace for details on how to use this API operation.
3258//
3259// The context must be non-nil and will be used for request cancellation. If
3260// the context is nil a panic will occur. In the future the SDK may create
3261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3262// for more information on using Contexts.
3263func (c *WorkSpaces) RestoreWorkspaceWithContext(ctx aws.Context, input *RestoreWorkspaceInput, opts ...request.Option) (*RestoreWorkspaceOutput, error) {
3264	req, out := c.RestoreWorkspaceRequest(input)
3265	req.SetContext(ctx)
3266	req.ApplyOptions(opts...)
3267	return out, req.Send()
3268}
3269
3270const opRevokeIpRules = "RevokeIpRules"
3271
3272// RevokeIpRulesRequest generates a "aws/request.Request" representing the
3273// client's request for the RevokeIpRules operation. The "output" return
3274// value will be populated with the request's response once the request completes
3275// successfully.
3276//
3277// Use "Send" method on the returned Request to send the API call to the service.
3278// the "output" return value is not valid until after Send returns without error.
3279//
3280// See RevokeIpRules for more information on using the RevokeIpRules
3281// API call, and error handling.
3282//
3283// This method is useful when you want to inject custom logic or configuration
3284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3285//
3286//
3287//    // Example sending a request using the RevokeIpRulesRequest method.
3288//    req, resp := client.RevokeIpRulesRequest(params)
3289//
3290//    err := req.Send()
3291//    if err == nil { // resp is now filled
3292//        fmt.Println(resp)
3293//    }
3294//
3295// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RevokeIpRules
3296func (c *WorkSpaces) RevokeIpRulesRequest(input *RevokeIpRulesInput) (req *request.Request, output *RevokeIpRulesOutput) {
3297	op := &request.Operation{
3298		Name:       opRevokeIpRules,
3299		HTTPMethod: "POST",
3300		HTTPPath:   "/",
3301	}
3302
3303	if input == nil {
3304		input = &RevokeIpRulesInput{}
3305	}
3306
3307	output = &RevokeIpRulesOutput{}
3308	req = c.newRequest(op, input, output)
3309	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3310	return
3311}
3312
3313// RevokeIpRules API operation for Amazon WorkSpaces.
3314//
3315// Removes one or more rules from the specified IP access control group.
3316//
3317// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3318// with awserr.Error's Code and Message methods to get detailed information about
3319// the error.
3320//
3321// See the AWS API reference guide for Amazon WorkSpaces's
3322// API operation RevokeIpRules for usage and error information.
3323//
3324// Returned Error Codes:
3325//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
3326//   One or more parameter values are not valid.
3327//
3328//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3329//   The resource could not be found.
3330//
3331//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
3332//   The state of the resource is not valid for this operation.
3333//
3334//   * ErrCodeAccessDeniedException "AccessDeniedException"
3335//   The user is not authorized to access a resource.
3336//
3337// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RevokeIpRules
3338func (c *WorkSpaces) RevokeIpRules(input *RevokeIpRulesInput) (*RevokeIpRulesOutput, error) {
3339	req, out := c.RevokeIpRulesRequest(input)
3340	return out, req.Send()
3341}
3342
3343// RevokeIpRulesWithContext is the same as RevokeIpRules with the addition of
3344// the ability to pass a context and additional request options.
3345//
3346// See RevokeIpRules for details on how to use this API operation.
3347//
3348// The context must be non-nil and will be used for request cancellation. If
3349// the context is nil a panic will occur. In the future the SDK may create
3350// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3351// for more information on using Contexts.
3352func (c *WorkSpaces) RevokeIpRulesWithContext(ctx aws.Context, input *RevokeIpRulesInput, opts ...request.Option) (*RevokeIpRulesOutput, error) {
3353	req, out := c.RevokeIpRulesRequest(input)
3354	req.SetContext(ctx)
3355	req.ApplyOptions(opts...)
3356	return out, req.Send()
3357}
3358
3359const opStartWorkspaces = "StartWorkspaces"
3360
3361// StartWorkspacesRequest generates a "aws/request.Request" representing the
3362// client's request for the StartWorkspaces operation. The "output" return
3363// value will be populated with the request's response once the request completes
3364// successfully.
3365//
3366// Use "Send" method on the returned Request to send the API call to the service.
3367// the "output" return value is not valid until after Send returns without error.
3368//
3369// See StartWorkspaces for more information on using the StartWorkspaces
3370// API call, and error handling.
3371//
3372// This method is useful when you want to inject custom logic or configuration
3373// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3374//
3375//
3376//    // Example sending a request using the StartWorkspacesRequest method.
3377//    req, resp := client.StartWorkspacesRequest(params)
3378//
3379//    err := req.Send()
3380//    if err == nil { // resp is now filled
3381//        fmt.Println(resp)
3382//    }
3383//
3384// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StartWorkspaces
3385func (c *WorkSpaces) StartWorkspacesRequest(input *StartWorkspacesInput) (req *request.Request, output *StartWorkspacesOutput) {
3386	op := &request.Operation{
3387		Name:       opStartWorkspaces,
3388		HTTPMethod: "POST",
3389		HTTPPath:   "/",
3390	}
3391
3392	if input == nil {
3393		input = &StartWorkspacesInput{}
3394	}
3395
3396	output = &StartWorkspacesOutput{}
3397	req = c.newRequest(op, input, output)
3398	return
3399}
3400
3401// StartWorkspaces API operation for Amazon WorkSpaces.
3402//
3403// Starts the specified WorkSpaces.
3404//
3405// You cannot start a WorkSpace unless it has a running mode of AutoStop and
3406// a state of STOPPED.
3407//
3408// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3409// with awserr.Error's Code and Message methods to get detailed information about
3410// the error.
3411//
3412// See the AWS API reference guide for Amazon WorkSpaces's
3413// API operation StartWorkspaces for usage and error information.
3414// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StartWorkspaces
3415func (c *WorkSpaces) StartWorkspaces(input *StartWorkspacesInput) (*StartWorkspacesOutput, error) {
3416	req, out := c.StartWorkspacesRequest(input)
3417	return out, req.Send()
3418}
3419
3420// StartWorkspacesWithContext is the same as StartWorkspaces with the addition of
3421// the ability to pass a context and additional request options.
3422//
3423// See StartWorkspaces for details on how to use this API operation.
3424//
3425// The context must be non-nil and will be used for request cancellation. If
3426// the context is nil a panic will occur. In the future the SDK may create
3427// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3428// for more information on using Contexts.
3429func (c *WorkSpaces) StartWorkspacesWithContext(ctx aws.Context, input *StartWorkspacesInput, opts ...request.Option) (*StartWorkspacesOutput, error) {
3430	req, out := c.StartWorkspacesRequest(input)
3431	req.SetContext(ctx)
3432	req.ApplyOptions(opts...)
3433	return out, req.Send()
3434}
3435
3436const opStopWorkspaces = "StopWorkspaces"
3437
3438// StopWorkspacesRequest generates a "aws/request.Request" representing the
3439// client's request for the StopWorkspaces operation. The "output" return
3440// value will be populated with the request's response once the request completes
3441// successfully.
3442//
3443// Use "Send" method on the returned Request to send the API call to the service.
3444// the "output" return value is not valid until after Send returns without error.
3445//
3446// See StopWorkspaces for more information on using the StopWorkspaces
3447// API call, and error handling.
3448//
3449// This method is useful when you want to inject custom logic or configuration
3450// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3451//
3452//
3453//    // Example sending a request using the StopWorkspacesRequest method.
3454//    req, resp := client.StopWorkspacesRequest(params)
3455//
3456//    err := req.Send()
3457//    if err == nil { // resp is now filled
3458//        fmt.Println(resp)
3459//    }
3460//
3461// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StopWorkspaces
3462func (c *WorkSpaces) StopWorkspacesRequest(input *StopWorkspacesInput) (req *request.Request, output *StopWorkspacesOutput) {
3463	op := &request.Operation{
3464		Name:       opStopWorkspaces,
3465		HTTPMethod: "POST",
3466		HTTPPath:   "/",
3467	}
3468
3469	if input == nil {
3470		input = &StopWorkspacesInput{}
3471	}
3472
3473	output = &StopWorkspacesOutput{}
3474	req = c.newRequest(op, input, output)
3475	return
3476}
3477
3478// StopWorkspaces API operation for Amazon WorkSpaces.
3479//
3480// Stops the specified WorkSpaces.
3481//
3482// You cannot stop a WorkSpace unless it has a running mode of AutoStop and
3483// a state of AVAILABLE, IMPAIRED, UNHEALTHY, or ERROR.
3484//
3485// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3486// with awserr.Error's Code and Message methods to get detailed information about
3487// the error.
3488//
3489// See the AWS API reference guide for Amazon WorkSpaces's
3490// API operation StopWorkspaces for usage and error information.
3491// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StopWorkspaces
3492func (c *WorkSpaces) StopWorkspaces(input *StopWorkspacesInput) (*StopWorkspacesOutput, error) {
3493	req, out := c.StopWorkspacesRequest(input)
3494	return out, req.Send()
3495}
3496
3497// StopWorkspacesWithContext is the same as StopWorkspaces with the addition of
3498// the ability to pass a context and additional request options.
3499//
3500// See StopWorkspaces for details on how to use this API operation.
3501//
3502// The context must be non-nil and will be used for request cancellation. If
3503// the context is nil a panic will occur. In the future the SDK may create
3504// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3505// for more information on using Contexts.
3506func (c *WorkSpaces) StopWorkspacesWithContext(ctx aws.Context, input *StopWorkspacesInput, opts ...request.Option) (*StopWorkspacesOutput, error) {
3507	req, out := c.StopWorkspacesRequest(input)
3508	req.SetContext(ctx)
3509	req.ApplyOptions(opts...)
3510	return out, req.Send()
3511}
3512
3513const opTerminateWorkspaces = "TerminateWorkspaces"
3514
3515// TerminateWorkspacesRequest generates a "aws/request.Request" representing the
3516// client's request for the TerminateWorkspaces operation. The "output" return
3517// value will be populated with the request's response once the request completes
3518// successfully.
3519//
3520// Use "Send" method on the returned Request to send the API call to the service.
3521// the "output" return value is not valid until after Send returns without error.
3522//
3523// See TerminateWorkspaces for more information on using the TerminateWorkspaces
3524// API call, and error handling.
3525//
3526// This method is useful when you want to inject custom logic or configuration
3527// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3528//
3529//
3530//    // Example sending a request using the TerminateWorkspacesRequest method.
3531//    req, resp := client.TerminateWorkspacesRequest(params)
3532//
3533//    err := req.Send()
3534//    if err == nil { // resp is now filled
3535//        fmt.Println(resp)
3536//    }
3537//
3538// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/TerminateWorkspaces
3539func (c *WorkSpaces) TerminateWorkspacesRequest(input *TerminateWorkspacesInput) (req *request.Request, output *TerminateWorkspacesOutput) {
3540	op := &request.Operation{
3541		Name:       opTerminateWorkspaces,
3542		HTTPMethod: "POST",
3543		HTTPPath:   "/",
3544	}
3545
3546	if input == nil {
3547		input = &TerminateWorkspacesInput{}
3548	}
3549
3550	output = &TerminateWorkspacesOutput{}
3551	req = c.newRequest(op, input, output)
3552	return
3553}
3554
3555// TerminateWorkspaces API operation for Amazon WorkSpaces.
3556//
3557// Terminates the specified WorkSpaces.
3558//
3559// Terminating a WorkSpace is a permanent action and cannot be undone. The user's
3560// data is destroyed. If you need to archive any user data, contact Amazon Web
3561// Services before terminating the WorkSpace.
3562//
3563// You can terminate a WorkSpace that is in any state except SUSPENDED.
3564//
3565// This operation is asynchronous and returns before the WorkSpaces have been
3566// completely terminated.
3567//
3568// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3569// with awserr.Error's Code and Message methods to get detailed information about
3570// the error.
3571//
3572// See the AWS API reference guide for Amazon WorkSpaces's
3573// API operation TerminateWorkspaces for usage and error information.
3574// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/TerminateWorkspaces
3575func (c *WorkSpaces) TerminateWorkspaces(input *TerminateWorkspacesInput) (*TerminateWorkspacesOutput, error) {
3576	req, out := c.TerminateWorkspacesRequest(input)
3577	return out, req.Send()
3578}
3579
3580// TerminateWorkspacesWithContext is the same as TerminateWorkspaces with the addition of
3581// the ability to pass a context and additional request options.
3582//
3583// See TerminateWorkspaces for details on how to use this API operation.
3584//
3585// The context must be non-nil and will be used for request cancellation. If
3586// the context is nil a panic will occur. In the future the SDK may create
3587// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3588// for more information on using Contexts.
3589func (c *WorkSpaces) TerminateWorkspacesWithContext(ctx aws.Context, input *TerminateWorkspacesInput, opts ...request.Option) (*TerminateWorkspacesOutput, error) {
3590	req, out := c.TerminateWorkspacesRequest(input)
3591	req.SetContext(ctx)
3592	req.ApplyOptions(opts...)
3593	return out, req.Send()
3594}
3595
3596const opUpdateRulesOfIpGroup = "UpdateRulesOfIpGroup"
3597
3598// UpdateRulesOfIpGroupRequest generates a "aws/request.Request" representing the
3599// client's request for the UpdateRulesOfIpGroup operation. The "output" return
3600// value will be populated with the request's response once the request completes
3601// successfully.
3602//
3603// Use "Send" method on the returned Request to send the API call to the service.
3604// the "output" return value is not valid until after Send returns without error.
3605//
3606// See UpdateRulesOfIpGroup for more information on using the UpdateRulesOfIpGroup
3607// API call, and error handling.
3608//
3609// This method is useful when you want to inject custom logic or configuration
3610// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3611//
3612//
3613//    // Example sending a request using the UpdateRulesOfIpGroupRequest method.
3614//    req, resp := client.UpdateRulesOfIpGroupRequest(params)
3615//
3616//    err := req.Send()
3617//    if err == nil { // resp is now filled
3618//        fmt.Println(resp)
3619//    }
3620//
3621// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateRulesOfIpGroup
3622func (c *WorkSpaces) UpdateRulesOfIpGroupRequest(input *UpdateRulesOfIpGroupInput) (req *request.Request, output *UpdateRulesOfIpGroupOutput) {
3623	op := &request.Operation{
3624		Name:       opUpdateRulesOfIpGroup,
3625		HTTPMethod: "POST",
3626		HTTPPath:   "/",
3627	}
3628
3629	if input == nil {
3630		input = &UpdateRulesOfIpGroupInput{}
3631	}
3632
3633	output = &UpdateRulesOfIpGroupOutput{}
3634	req = c.newRequest(op, input, output)
3635	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3636	return
3637}
3638
3639// UpdateRulesOfIpGroup API operation for Amazon WorkSpaces.
3640//
3641// Replaces the current rules of the specified IP access control group with
3642// the specified rules.
3643//
3644// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3645// with awserr.Error's Code and Message methods to get detailed information about
3646// the error.
3647//
3648// See the AWS API reference guide for Amazon WorkSpaces's
3649// API operation UpdateRulesOfIpGroup for usage and error information.
3650//
3651// Returned Error Codes:
3652//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
3653//   One or more parameter values are not valid.
3654//
3655//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3656//   The resource could not be found.
3657//
3658//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
3659//   Your resource limits have been exceeded.
3660//
3661//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
3662//   The state of the resource is not valid for this operation.
3663//
3664//   * ErrCodeAccessDeniedException "AccessDeniedException"
3665//   The user is not authorized to access a resource.
3666//
3667// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateRulesOfIpGroup
3668func (c *WorkSpaces) UpdateRulesOfIpGroup(input *UpdateRulesOfIpGroupInput) (*UpdateRulesOfIpGroupOutput, error) {
3669	req, out := c.UpdateRulesOfIpGroupRequest(input)
3670	return out, req.Send()
3671}
3672
3673// UpdateRulesOfIpGroupWithContext is the same as UpdateRulesOfIpGroup with the addition of
3674// the ability to pass a context and additional request options.
3675//
3676// See UpdateRulesOfIpGroup for details on how to use this API operation.
3677//
3678// The context must be non-nil and will be used for request cancellation. If
3679// the context is nil a panic will occur. In the future the SDK may create
3680// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3681// for more information on using Contexts.
3682func (c *WorkSpaces) UpdateRulesOfIpGroupWithContext(ctx aws.Context, input *UpdateRulesOfIpGroupInput, opts ...request.Option) (*UpdateRulesOfIpGroupOutput, error) {
3683	req, out := c.UpdateRulesOfIpGroupRequest(input)
3684	req.SetContext(ctx)
3685	req.ApplyOptions(opts...)
3686	return out, req.Send()
3687}
3688
3689// Describes a modification to the configuration of Bring Your Own License (BYOL)
3690// for the specified account.
3691type AccountModification struct {
3692	_ struct{} `type:"structure"`
3693
3694	// The IP address range, specified as an IPv4 CIDR block, for the management
3695	// network interface used for the account.
3696	DedicatedTenancyManagementCidrRange *string `type:"string"`
3697
3698	// The status of BYOL (whether BYOL is being enabled or disabled).
3699	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportResultEnum"`
3700
3701	// The error code that is returned if the configuration of BYOL cannot be modified.
3702	ErrorCode *string `type:"string"`
3703
3704	// The text of the error message that is returned if the configuration of BYOL
3705	// cannot be modified.
3706	ErrorMessage *string `type:"string"`
3707
3708	// The state of the modification to the configuration of BYOL.
3709	ModificationState *string `type:"string" enum:"DedicatedTenancyModificationStateEnum"`
3710
3711	// The timestamp when the modification of the BYOL configuration was started.
3712	StartTime *time.Time `type:"timestamp"`
3713}
3714
3715// String returns the string representation
3716func (s AccountModification) String() string {
3717	return awsutil.Prettify(s)
3718}
3719
3720// GoString returns the string representation
3721func (s AccountModification) GoString() string {
3722	return s.String()
3723}
3724
3725// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
3726func (s *AccountModification) SetDedicatedTenancyManagementCidrRange(v string) *AccountModification {
3727	s.DedicatedTenancyManagementCidrRange = &v
3728	return s
3729}
3730
3731// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
3732func (s *AccountModification) SetDedicatedTenancySupport(v string) *AccountModification {
3733	s.DedicatedTenancySupport = &v
3734	return s
3735}
3736
3737// SetErrorCode sets the ErrorCode field's value.
3738func (s *AccountModification) SetErrorCode(v string) *AccountModification {
3739	s.ErrorCode = &v
3740	return s
3741}
3742
3743// SetErrorMessage sets the ErrorMessage field's value.
3744func (s *AccountModification) SetErrorMessage(v string) *AccountModification {
3745	s.ErrorMessage = &v
3746	return s
3747}
3748
3749// SetModificationState sets the ModificationState field's value.
3750func (s *AccountModification) SetModificationState(v string) *AccountModification {
3751	s.ModificationState = &v
3752	return s
3753}
3754
3755// SetStartTime sets the StartTime field's value.
3756func (s *AccountModification) SetStartTime(v time.Time) *AccountModification {
3757	s.StartTime = &v
3758	return s
3759}
3760
3761type AssociateIpGroupsInput struct {
3762	_ struct{} `type:"structure"`
3763
3764	// The identifier of the directory.
3765	//
3766	// DirectoryId is a required field
3767	DirectoryId *string `min:"10" type:"string" required:"true"`
3768
3769	// The identifiers of one or more IP access control groups.
3770	//
3771	// GroupIds is a required field
3772	GroupIds []*string `type:"list" required:"true"`
3773}
3774
3775// String returns the string representation
3776func (s AssociateIpGroupsInput) String() string {
3777	return awsutil.Prettify(s)
3778}
3779
3780// GoString returns the string representation
3781func (s AssociateIpGroupsInput) GoString() string {
3782	return s.String()
3783}
3784
3785// Validate inspects the fields of the type to determine if they are valid.
3786func (s *AssociateIpGroupsInput) Validate() error {
3787	invalidParams := request.ErrInvalidParams{Context: "AssociateIpGroupsInput"}
3788	if s.DirectoryId == nil {
3789		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
3790	}
3791	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
3792		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
3793	}
3794	if s.GroupIds == nil {
3795		invalidParams.Add(request.NewErrParamRequired("GroupIds"))
3796	}
3797
3798	if invalidParams.Len() > 0 {
3799		return invalidParams
3800	}
3801	return nil
3802}
3803
3804// SetDirectoryId sets the DirectoryId field's value.
3805func (s *AssociateIpGroupsInput) SetDirectoryId(v string) *AssociateIpGroupsInput {
3806	s.DirectoryId = &v
3807	return s
3808}
3809
3810// SetGroupIds sets the GroupIds field's value.
3811func (s *AssociateIpGroupsInput) SetGroupIds(v []*string) *AssociateIpGroupsInput {
3812	s.GroupIds = v
3813	return s
3814}
3815
3816type AssociateIpGroupsOutput struct {
3817	_ struct{} `type:"structure"`
3818}
3819
3820// String returns the string representation
3821func (s AssociateIpGroupsOutput) String() string {
3822	return awsutil.Prettify(s)
3823}
3824
3825// GoString returns the string representation
3826func (s AssociateIpGroupsOutput) GoString() string {
3827	return s.String()
3828}
3829
3830type AuthorizeIpRulesInput struct {
3831	_ struct{} `type:"structure"`
3832
3833	// The identifier of the group.
3834	//
3835	// GroupId is a required field
3836	GroupId *string `type:"string" required:"true"`
3837
3838	// The rules to add to the group.
3839	//
3840	// UserRules is a required field
3841	UserRules []*IpRuleItem `type:"list" required:"true"`
3842}
3843
3844// String returns the string representation
3845func (s AuthorizeIpRulesInput) String() string {
3846	return awsutil.Prettify(s)
3847}
3848
3849// GoString returns the string representation
3850func (s AuthorizeIpRulesInput) GoString() string {
3851	return s.String()
3852}
3853
3854// Validate inspects the fields of the type to determine if they are valid.
3855func (s *AuthorizeIpRulesInput) Validate() error {
3856	invalidParams := request.ErrInvalidParams{Context: "AuthorizeIpRulesInput"}
3857	if s.GroupId == nil {
3858		invalidParams.Add(request.NewErrParamRequired("GroupId"))
3859	}
3860	if s.UserRules == nil {
3861		invalidParams.Add(request.NewErrParamRequired("UserRules"))
3862	}
3863
3864	if invalidParams.Len() > 0 {
3865		return invalidParams
3866	}
3867	return nil
3868}
3869
3870// SetGroupId sets the GroupId field's value.
3871func (s *AuthorizeIpRulesInput) SetGroupId(v string) *AuthorizeIpRulesInput {
3872	s.GroupId = &v
3873	return s
3874}
3875
3876// SetUserRules sets the UserRules field's value.
3877func (s *AuthorizeIpRulesInput) SetUserRules(v []*IpRuleItem) *AuthorizeIpRulesInput {
3878	s.UserRules = v
3879	return s
3880}
3881
3882type AuthorizeIpRulesOutput struct {
3883	_ struct{} `type:"structure"`
3884}
3885
3886// String returns the string representation
3887func (s AuthorizeIpRulesOutput) String() string {
3888	return awsutil.Prettify(s)
3889}
3890
3891// GoString returns the string representation
3892func (s AuthorizeIpRulesOutput) GoString() string {
3893	return s.String()
3894}
3895
3896// Describes an Amazon WorkSpaces client.
3897type ClientProperties struct {
3898	_ struct{} `type:"structure"`
3899
3900	// Specifies whether users can cache their credentials on the Amazon WorkSpaces
3901	// client. When enabled, users can choose to reconnect to their WorkSpaces without
3902	// re-entering their credentials.
3903	ReconnectEnabled *string `type:"string" enum:"ReconnectEnum"`
3904}
3905
3906// String returns the string representation
3907func (s ClientProperties) String() string {
3908	return awsutil.Prettify(s)
3909}
3910
3911// GoString returns the string representation
3912func (s ClientProperties) GoString() string {
3913	return s.String()
3914}
3915
3916// SetReconnectEnabled sets the ReconnectEnabled field's value.
3917func (s *ClientProperties) SetReconnectEnabled(v string) *ClientProperties {
3918	s.ReconnectEnabled = &v
3919	return s
3920}
3921
3922// Information about the Amazon WorkSpaces client.
3923type ClientPropertiesResult struct {
3924	_ struct{} `type:"structure"`
3925
3926	// Information about the Amazon WorkSpaces client.
3927	ClientProperties *ClientProperties `type:"structure"`
3928
3929	// The resource identifier, in the form of a directory ID.
3930	ResourceId *string `min:"1" type:"string"`
3931}
3932
3933// String returns the string representation
3934func (s ClientPropertiesResult) String() string {
3935	return awsutil.Prettify(s)
3936}
3937
3938// GoString returns the string representation
3939func (s ClientPropertiesResult) GoString() string {
3940	return s.String()
3941}
3942
3943// SetClientProperties sets the ClientProperties field's value.
3944func (s *ClientPropertiesResult) SetClientProperties(v *ClientProperties) *ClientPropertiesResult {
3945	s.ClientProperties = v
3946	return s
3947}
3948
3949// SetResourceId sets the ResourceId field's value.
3950func (s *ClientPropertiesResult) SetResourceId(v string) *ClientPropertiesResult {
3951	s.ResourceId = &v
3952	return s
3953}
3954
3955// Describes the compute type.
3956type ComputeType struct {
3957	_ struct{} `type:"structure"`
3958
3959	// The compute type.
3960	Name *string `type:"string" enum:"Compute"`
3961}
3962
3963// String returns the string representation
3964func (s ComputeType) String() string {
3965	return awsutil.Prettify(s)
3966}
3967
3968// GoString returns the string representation
3969func (s ComputeType) GoString() string {
3970	return s.String()
3971}
3972
3973// SetName sets the Name field's value.
3974func (s *ComputeType) SetName(v string) *ComputeType {
3975	s.Name = &v
3976	return s
3977}
3978
3979type CopyWorkspaceImageInput struct {
3980	_ struct{} `type:"structure"`
3981
3982	// A description of the image.
3983	Description *string `min:"1" type:"string"`
3984
3985	// The name of the image.
3986	//
3987	// Name is a required field
3988	Name *string `min:"1" type:"string" required:"true"`
3989
3990	// The identifier of the source image.
3991	//
3992	// SourceImageId is a required field
3993	SourceImageId *string `type:"string" required:"true"`
3994
3995	// The identifier of the source Region.
3996	//
3997	// SourceRegion is a required field
3998	SourceRegion *string `min:"1" type:"string" required:"true"`
3999
4000	// The tags for the image.
4001	Tags []*Tag `type:"list"`
4002}
4003
4004// String returns the string representation
4005func (s CopyWorkspaceImageInput) String() string {
4006	return awsutil.Prettify(s)
4007}
4008
4009// GoString returns the string representation
4010func (s CopyWorkspaceImageInput) GoString() string {
4011	return s.String()
4012}
4013
4014// Validate inspects the fields of the type to determine if they are valid.
4015func (s *CopyWorkspaceImageInput) Validate() error {
4016	invalidParams := request.ErrInvalidParams{Context: "CopyWorkspaceImageInput"}
4017	if s.Description != nil && len(*s.Description) < 1 {
4018		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
4019	}
4020	if s.Name == nil {
4021		invalidParams.Add(request.NewErrParamRequired("Name"))
4022	}
4023	if s.Name != nil && len(*s.Name) < 1 {
4024		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
4025	}
4026	if s.SourceImageId == nil {
4027		invalidParams.Add(request.NewErrParamRequired("SourceImageId"))
4028	}
4029	if s.SourceRegion == nil {
4030		invalidParams.Add(request.NewErrParamRequired("SourceRegion"))
4031	}
4032	if s.SourceRegion != nil && len(*s.SourceRegion) < 1 {
4033		invalidParams.Add(request.NewErrParamMinLen("SourceRegion", 1))
4034	}
4035	if s.Tags != nil {
4036		for i, v := range s.Tags {
4037			if v == nil {
4038				continue
4039			}
4040			if err := v.Validate(); err != nil {
4041				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4042			}
4043		}
4044	}
4045
4046	if invalidParams.Len() > 0 {
4047		return invalidParams
4048	}
4049	return nil
4050}
4051
4052// SetDescription sets the Description field's value.
4053func (s *CopyWorkspaceImageInput) SetDescription(v string) *CopyWorkspaceImageInput {
4054	s.Description = &v
4055	return s
4056}
4057
4058// SetName sets the Name field's value.
4059func (s *CopyWorkspaceImageInput) SetName(v string) *CopyWorkspaceImageInput {
4060	s.Name = &v
4061	return s
4062}
4063
4064// SetSourceImageId sets the SourceImageId field's value.
4065func (s *CopyWorkspaceImageInput) SetSourceImageId(v string) *CopyWorkspaceImageInput {
4066	s.SourceImageId = &v
4067	return s
4068}
4069
4070// SetSourceRegion sets the SourceRegion field's value.
4071func (s *CopyWorkspaceImageInput) SetSourceRegion(v string) *CopyWorkspaceImageInput {
4072	s.SourceRegion = &v
4073	return s
4074}
4075
4076// SetTags sets the Tags field's value.
4077func (s *CopyWorkspaceImageInput) SetTags(v []*Tag) *CopyWorkspaceImageInput {
4078	s.Tags = v
4079	return s
4080}
4081
4082type CopyWorkspaceImageOutput struct {
4083	_ struct{} `type:"structure"`
4084
4085	// The identifier of the image.
4086	ImageId *string `type:"string"`
4087}
4088
4089// String returns the string representation
4090func (s CopyWorkspaceImageOutput) String() string {
4091	return awsutil.Prettify(s)
4092}
4093
4094// GoString returns the string representation
4095func (s CopyWorkspaceImageOutput) GoString() string {
4096	return s.String()
4097}
4098
4099// SetImageId sets the ImageId field's value.
4100func (s *CopyWorkspaceImageOutput) SetImageId(v string) *CopyWorkspaceImageOutput {
4101	s.ImageId = &v
4102	return s
4103}
4104
4105type CreateIpGroupInput struct {
4106	_ struct{} `type:"structure"`
4107
4108	// The description of the group.
4109	GroupDesc *string `type:"string"`
4110
4111	// The name of the group.
4112	//
4113	// GroupName is a required field
4114	GroupName *string `type:"string" required:"true"`
4115
4116	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
4117	Tags []*Tag `type:"list"`
4118
4119	// The rules to add to the group.
4120	UserRules []*IpRuleItem `type:"list"`
4121}
4122
4123// String returns the string representation
4124func (s CreateIpGroupInput) String() string {
4125	return awsutil.Prettify(s)
4126}
4127
4128// GoString returns the string representation
4129func (s CreateIpGroupInput) GoString() string {
4130	return s.String()
4131}
4132
4133// Validate inspects the fields of the type to determine if they are valid.
4134func (s *CreateIpGroupInput) Validate() error {
4135	invalidParams := request.ErrInvalidParams{Context: "CreateIpGroupInput"}
4136	if s.GroupName == nil {
4137		invalidParams.Add(request.NewErrParamRequired("GroupName"))
4138	}
4139	if s.Tags != nil {
4140		for i, v := range s.Tags {
4141			if v == nil {
4142				continue
4143			}
4144			if err := v.Validate(); err != nil {
4145				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4146			}
4147		}
4148	}
4149
4150	if invalidParams.Len() > 0 {
4151		return invalidParams
4152	}
4153	return nil
4154}
4155
4156// SetGroupDesc sets the GroupDesc field's value.
4157func (s *CreateIpGroupInput) SetGroupDesc(v string) *CreateIpGroupInput {
4158	s.GroupDesc = &v
4159	return s
4160}
4161
4162// SetGroupName sets the GroupName field's value.
4163func (s *CreateIpGroupInput) SetGroupName(v string) *CreateIpGroupInput {
4164	s.GroupName = &v
4165	return s
4166}
4167
4168// SetTags sets the Tags field's value.
4169func (s *CreateIpGroupInput) SetTags(v []*Tag) *CreateIpGroupInput {
4170	s.Tags = v
4171	return s
4172}
4173
4174// SetUserRules sets the UserRules field's value.
4175func (s *CreateIpGroupInput) SetUserRules(v []*IpRuleItem) *CreateIpGroupInput {
4176	s.UserRules = v
4177	return s
4178}
4179
4180type CreateIpGroupOutput struct {
4181	_ struct{} `type:"structure"`
4182
4183	// The identifier of the group.
4184	GroupId *string `type:"string"`
4185}
4186
4187// String returns the string representation
4188func (s CreateIpGroupOutput) String() string {
4189	return awsutil.Prettify(s)
4190}
4191
4192// GoString returns the string representation
4193func (s CreateIpGroupOutput) GoString() string {
4194	return s.String()
4195}
4196
4197// SetGroupId sets the GroupId field's value.
4198func (s *CreateIpGroupOutput) SetGroupId(v string) *CreateIpGroupOutput {
4199	s.GroupId = &v
4200	return s
4201}
4202
4203type CreateTagsInput struct {
4204	_ struct{} `type:"structure"`
4205
4206	// The identifier of the WorkSpaces resource. The supported resource types are
4207	// WorkSpaces, registered directories, images, custom bundles, and IP access
4208	// control groups.
4209	//
4210	// ResourceId is a required field
4211	ResourceId *string `min:"1" type:"string" required:"true"`
4212
4213	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
4214	//
4215	// Tags is a required field
4216	Tags []*Tag `type:"list" required:"true"`
4217}
4218
4219// String returns the string representation
4220func (s CreateTagsInput) String() string {
4221	return awsutil.Prettify(s)
4222}
4223
4224// GoString returns the string representation
4225func (s CreateTagsInput) GoString() string {
4226	return s.String()
4227}
4228
4229// Validate inspects the fields of the type to determine if they are valid.
4230func (s *CreateTagsInput) Validate() error {
4231	invalidParams := request.ErrInvalidParams{Context: "CreateTagsInput"}
4232	if s.ResourceId == nil {
4233		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
4234	}
4235	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
4236		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
4237	}
4238	if s.Tags == nil {
4239		invalidParams.Add(request.NewErrParamRequired("Tags"))
4240	}
4241	if s.Tags != nil {
4242		for i, v := range s.Tags {
4243			if v == nil {
4244				continue
4245			}
4246			if err := v.Validate(); err != nil {
4247				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4248			}
4249		}
4250	}
4251
4252	if invalidParams.Len() > 0 {
4253		return invalidParams
4254	}
4255	return nil
4256}
4257
4258// SetResourceId sets the ResourceId field's value.
4259func (s *CreateTagsInput) SetResourceId(v string) *CreateTagsInput {
4260	s.ResourceId = &v
4261	return s
4262}
4263
4264// SetTags sets the Tags field's value.
4265func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput {
4266	s.Tags = v
4267	return s
4268}
4269
4270type CreateTagsOutput struct {
4271	_ struct{} `type:"structure"`
4272}
4273
4274// String returns the string representation
4275func (s CreateTagsOutput) String() string {
4276	return awsutil.Prettify(s)
4277}
4278
4279// GoString returns the string representation
4280func (s CreateTagsOutput) GoString() string {
4281	return s.String()
4282}
4283
4284type CreateWorkspacesInput struct {
4285	_ struct{} `type:"structure"`
4286
4287	// The WorkSpaces to create. You can specify up to 25 WorkSpaces.
4288	//
4289	// Workspaces is a required field
4290	Workspaces []*WorkspaceRequest `min:"1" type:"list" required:"true"`
4291}
4292
4293// String returns the string representation
4294func (s CreateWorkspacesInput) String() string {
4295	return awsutil.Prettify(s)
4296}
4297
4298// GoString returns the string representation
4299func (s CreateWorkspacesInput) GoString() string {
4300	return s.String()
4301}
4302
4303// Validate inspects the fields of the type to determine if they are valid.
4304func (s *CreateWorkspacesInput) Validate() error {
4305	invalidParams := request.ErrInvalidParams{Context: "CreateWorkspacesInput"}
4306	if s.Workspaces == nil {
4307		invalidParams.Add(request.NewErrParamRequired("Workspaces"))
4308	}
4309	if s.Workspaces != nil && len(s.Workspaces) < 1 {
4310		invalidParams.Add(request.NewErrParamMinLen("Workspaces", 1))
4311	}
4312	if s.Workspaces != nil {
4313		for i, v := range s.Workspaces {
4314			if v == nil {
4315				continue
4316			}
4317			if err := v.Validate(); err != nil {
4318				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Workspaces", i), err.(request.ErrInvalidParams))
4319			}
4320		}
4321	}
4322
4323	if invalidParams.Len() > 0 {
4324		return invalidParams
4325	}
4326	return nil
4327}
4328
4329// SetWorkspaces sets the Workspaces field's value.
4330func (s *CreateWorkspacesInput) SetWorkspaces(v []*WorkspaceRequest) *CreateWorkspacesInput {
4331	s.Workspaces = v
4332	return s
4333}
4334
4335type CreateWorkspacesOutput struct {
4336	_ struct{} `type:"structure"`
4337
4338	// Information about the WorkSpaces that could not be created.
4339	FailedRequests []*FailedCreateWorkspaceRequest `type:"list"`
4340
4341	// Information about the WorkSpaces that were created.
4342	//
4343	// Because this operation is asynchronous, the identifier returned is not immediately
4344	// available for use with other operations. For example, if you call DescribeWorkspaces
4345	// before the WorkSpace is created, the information returned can be incomplete.
4346	PendingRequests []*Workspace `type:"list"`
4347}
4348
4349// String returns the string representation
4350func (s CreateWorkspacesOutput) String() string {
4351	return awsutil.Prettify(s)
4352}
4353
4354// GoString returns the string representation
4355func (s CreateWorkspacesOutput) GoString() string {
4356	return s.String()
4357}
4358
4359// SetFailedRequests sets the FailedRequests field's value.
4360func (s *CreateWorkspacesOutput) SetFailedRequests(v []*FailedCreateWorkspaceRequest) *CreateWorkspacesOutput {
4361	s.FailedRequests = v
4362	return s
4363}
4364
4365// SetPendingRequests sets the PendingRequests field's value.
4366func (s *CreateWorkspacesOutput) SetPendingRequests(v []*Workspace) *CreateWorkspacesOutput {
4367	s.PendingRequests = v
4368	return s
4369}
4370
4371// Describes the default values that are used to create WorkSpaces. For more
4372// information, see Update Directory Details for Your WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html).
4373type DefaultWorkspaceCreationProperties struct {
4374	_ struct{} `type:"structure"`
4375
4376	// The identifier of any security groups to apply to WorkSpaces when they are
4377	// created.
4378	CustomSecurityGroupId *string `min:"11" type:"string"`
4379
4380	// The organizational unit (OU) in the directory for the WorkSpace machine accounts.
4381	DefaultOu *string `type:"string"`
4382
4383	// Specifies whether to automatically assign an Elastic public IP address to
4384	// WorkSpaces in this directory by default. If enabled, the Elastic public IP
4385	// address allows outbound internet access from your WorkSpaces when you’re
4386	// using an internet gateway in the Amazon VPC in which your WorkSpaces are
4387	// located. If you're using a Network Address Translation (NAT) gateway for
4388	// outbound internet access from your VPC, or if your WorkSpaces are in public
4389	// subnets and you manually assign them Elastic IP addresses, you should disable
4390	// this setting. This setting applies to new WorkSpaces that you launch or to
4391	// existing WorkSpaces that you rebuild. For more information, see Configure
4392	// a VPC for Amazon WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/amazon-workspaces-vpc.html).
4393	EnableInternetAccess *bool `type:"boolean"`
4394
4395	// Specifies whether maintenance mode is enabled for WorkSpaces. For more information,
4396	// see WorkSpace Maintenance (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).
4397	EnableMaintenanceMode *bool `type:"boolean"`
4398
4399	// Specifies whether the directory is enabled for Amazon WorkDocs.
4400	EnableWorkDocs *bool `type:"boolean"`
4401
4402	// Specifies whether WorkSpace users are local administrators on their WorkSpaces.
4403	UserEnabledAsLocalAdministrator *bool `type:"boolean"`
4404}
4405
4406// String returns the string representation
4407func (s DefaultWorkspaceCreationProperties) String() string {
4408	return awsutil.Prettify(s)
4409}
4410
4411// GoString returns the string representation
4412func (s DefaultWorkspaceCreationProperties) GoString() string {
4413	return s.String()
4414}
4415
4416// SetCustomSecurityGroupId sets the CustomSecurityGroupId field's value.
4417func (s *DefaultWorkspaceCreationProperties) SetCustomSecurityGroupId(v string) *DefaultWorkspaceCreationProperties {
4418	s.CustomSecurityGroupId = &v
4419	return s
4420}
4421
4422// SetDefaultOu sets the DefaultOu field's value.
4423func (s *DefaultWorkspaceCreationProperties) SetDefaultOu(v string) *DefaultWorkspaceCreationProperties {
4424	s.DefaultOu = &v
4425	return s
4426}
4427
4428// SetEnableInternetAccess sets the EnableInternetAccess field's value.
4429func (s *DefaultWorkspaceCreationProperties) SetEnableInternetAccess(v bool) *DefaultWorkspaceCreationProperties {
4430	s.EnableInternetAccess = &v
4431	return s
4432}
4433
4434// SetEnableMaintenanceMode sets the EnableMaintenanceMode field's value.
4435func (s *DefaultWorkspaceCreationProperties) SetEnableMaintenanceMode(v bool) *DefaultWorkspaceCreationProperties {
4436	s.EnableMaintenanceMode = &v
4437	return s
4438}
4439
4440// SetEnableWorkDocs sets the EnableWorkDocs field's value.
4441func (s *DefaultWorkspaceCreationProperties) SetEnableWorkDocs(v bool) *DefaultWorkspaceCreationProperties {
4442	s.EnableWorkDocs = &v
4443	return s
4444}
4445
4446// SetUserEnabledAsLocalAdministrator sets the UserEnabledAsLocalAdministrator field's value.
4447func (s *DefaultWorkspaceCreationProperties) SetUserEnabledAsLocalAdministrator(v bool) *DefaultWorkspaceCreationProperties {
4448	s.UserEnabledAsLocalAdministrator = &v
4449	return s
4450}
4451
4452type DeleteIpGroupInput struct {
4453	_ struct{} `type:"structure"`
4454
4455	// The identifier of the IP access control group.
4456	//
4457	// GroupId is a required field
4458	GroupId *string `type:"string" required:"true"`
4459}
4460
4461// String returns the string representation
4462func (s DeleteIpGroupInput) String() string {
4463	return awsutil.Prettify(s)
4464}
4465
4466// GoString returns the string representation
4467func (s DeleteIpGroupInput) GoString() string {
4468	return s.String()
4469}
4470
4471// Validate inspects the fields of the type to determine if they are valid.
4472func (s *DeleteIpGroupInput) Validate() error {
4473	invalidParams := request.ErrInvalidParams{Context: "DeleteIpGroupInput"}
4474	if s.GroupId == nil {
4475		invalidParams.Add(request.NewErrParamRequired("GroupId"))
4476	}
4477
4478	if invalidParams.Len() > 0 {
4479		return invalidParams
4480	}
4481	return nil
4482}
4483
4484// SetGroupId sets the GroupId field's value.
4485func (s *DeleteIpGroupInput) SetGroupId(v string) *DeleteIpGroupInput {
4486	s.GroupId = &v
4487	return s
4488}
4489
4490type DeleteIpGroupOutput struct {
4491	_ struct{} `type:"structure"`
4492}
4493
4494// String returns the string representation
4495func (s DeleteIpGroupOutput) String() string {
4496	return awsutil.Prettify(s)
4497}
4498
4499// GoString returns the string representation
4500func (s DeleteIpGroupOutput) GoString() string {
4501	return s.String()
4502}
4503
4504type DeleteTagsInput struct {
4505	_ struct{} `type:"structure"`
4506
4507	// The identifier of the WorkSpaces resource. The supported resource types are
4508	// WorkSpaces, registered directories, images, custom bundles, and IP access
4509	// control groups.
4510	//
4511	// ResourceId is a required field
4512	ResourceId *string `min:"1" type:"string" required:"true"`
4513
4514	// The tag keys.
4515	//
4516	// TagKeys is a required field
4517	TagKeys []*string `type:"list" required:"true"`
4518}
4519
4520// String returns the string representation
4521func (s DeleteTagsInput) String() string {
4522	return awsutil.Prettify(s)
4523}
4524
4525// GoString returns the string representation
4526func (s DeleteTagsInput) GoString() string {
4527	return s.String()
4528}
4529
4530// Validate inspects the fields of the type to determine if they are valid.
4531func (s *DeleteTagsInput) Validate() error {
4532	invalidParams := request.ErrInvalidParams{Context: "DeleteTagsInput"}
4533	if s.ResourceId == nil {
4534		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
4535	}
4536	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
4537		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
4538	}
4539	if s.TagKeys == nil {
4540		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
4541	}
4542
4543	if invalidParams.Len() > 0 {
4544		return invalidParams
4545	}
4546	return nil
4547}
4548
4549// SetResourceId sets the ResourceId field's value.
4550func (s *DeleteTagsInput) SetResourceId(v string) *DeleteTagsInput {
4551	s.ResourceId = &v
4552	return s
4553}
4554
4555// SetTagKeys sets the TagKeys field's value.
4556func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput {
4557	s.TagKeys = v
4558	return s
4559}
4560
4561type DeleteTagsOutput struct {
4562	_ struct{} `type:"structure"`
4563}
4564
4565// String returns the string representation
4566func (s DeleteTagsOutput) String() string {
4567	return awsutil.Prettify(s)
4568}
4569
4570// GoString returns the string representation
4571func (s DeleteTagsOutput) GoString() string {
4572	return s.String()
4573}
4574
4575type DeleteWorkspaceImageInput struct {
4576	_ struct{} `type:"structure"`
4577
4578	// The identifier of the image.
4579	//
4580	// ImageId is a required field
4581	ImageId *string `type:"string" required:"true"`
4582}
4583
4584// String returns the string representation
4585func (s DeleteWorkspaceImageInput) String() string {
4586	return awsutil.Prettify(s)
4587}
4588
4589// GoString returns the string representation
4590func (s DeleteWorkspaceImageInput) GoString() string {
4591	return s.String()
4592}
4593
4594// Validate inspects the fields of the type to determine if they are valid.
4595func (s *DeleteWorkspaceImageInput) Validate() error {
4596	invalidParams := request.ErrInvalidParams{Context: "DeleteWorkspaceImageInput"}
4597	if s.ImageId == nil {
4598		invalidParams.Add(request.NewErrParamRequired("ImageId"))
4599	}
4600
4601	if invalidParams.Len() > 0 {
4602		return invalidParams
4603	}
4604	return nil
4605}
4606
4607// SetImageId sets the ImageId field's value.
4608func (s *DeleteWorkspaceImageInput) SetImageId(v string) *DeleteWorkspaceImageInput {
4609	s.ImageId = &v
4610	return s
4611}
4612
4613type DeleteWorkspaceImageOutput struct {
4614	_ struct{} `type:"structure"`
4615}
4616
4617// String returns the string representation
4618func (s DeleteWorkspaceImageOutput) String() string {
4619	return awsutil.Prettify(s)
4620}
4621
4622// GoString returns the string representation
4623func (s DeleteWorkspaceImageOutput) GoString() string {
4624	return s.String()
4625}
4626
4627type DeregisterWorkspaceDirectoryInput struct {
4628	_ struct{} `type:"structure"`
4629
4630	// The identifier of the directory. If any WorkSpaces are registered to this
4631	// directory, you must remove them before you deregister the directory, or you
4632	// will receive an OperationNotSupportedException error.
4633	//
4634	// DirectoryId is a required field
4635	DirectoryId *string `min:"10" type:"string" required:"true"`
4636}
4637
4638// String returns the string representation
4639func (s DeregisterWorkspaceDirectoryInput) String() string {
4640	return awsutil.Prettify(s)
4641}
4642
4643// GoString returns the string representation
4644func (s DeregisterWorkspaceDirectoryInput) GoString() string {
4645	return s.String()
4646}
4647
4648// Validate inspects the fields of the type to determine if they are valid.
4649func (s *DeregisterWorkspaceDirectoryInput) Validate() error {
4650	invalidParams := request.ErrInvalidParams{Context: "DeregisterWorkspaceDirectoryInput"}
4651	if s.DirectoryId == nil {
4652		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
4653	}
4654	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
4655		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
4656	}
4657
4658	if invalidParams.Len() > 0 {
4659		return invalidParams
4660	}
4661	return nil
4662}
4663
4664// SetDirectoryId sets the DirectoryId field's value.
4665func (s *DeregisterWorkspaceDirectoryInput) SetDirectoryId(v string) *DeregisterWorkspaceDirectoryInput {
4666	s.DirectoryId = &v
4667	return s
4668}
4669
4670type DeregisterWorkspaceDirectoryOutput struct {
4671	_ struct{} `type:"structure"`
4672}
4673
4674// String returns the string representation
4675func (s DeregisterWorkspaceDirectoryOutput) String() string {
4676	return awsutil.Prettify(s)
4677}
4678
4679// GoString returns the string representation
4680func (s DeregisterWorkspaceDirectoryOutput) GoString() string {
4681	return s.String()
4682}
4683
4684type DescribeAccountInput struct {
4685	_ struct{} `type:"structure"`
4686}
4687
4688// String returns the string representation
4689func (s DescribeAccountInput) String() string {
4690	return awsutil.Prettify(s)
4691}
4692
4693// GoString returns the string representation
4694func (s DescribeAccountInput) GoString() string {
4695	return s.String()
4696}
4697
4698type DescribeAccountModificationsInput struct {
4699	_ struct{} `type:"structure"`
4700
4701	// If you received a NextToken from a previous call that was paginated, provide
4702	// this token to receive the next set of results.
4703	NextToken *string `min:"1" type:"string"`
4704}
4705
4706// String returns the string representation
4707func (s DescribeAccountModificationsInput) String() string {
4708	return awsutil.Prettify(s)
4709}
4710
4711// GoString returns the string representation
4712func (s DescribeAccountModificationsInput) GoString() string {
4713	return s.String()
4714}
4715
4716// Validate inspects the fields of the type to determine if they are valid.
4717func (s *DescribeAccountModificationsInput) Validate() error {
4718	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountModificationsInput"}
4719	if s.NextToken != nil && len(*s.NextToken) < 1 {
4720		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4721	}
4722
4723	if invalidParams.Len() > 0 {
4724		return invalidParams
4725	}
4726	return nil
4727}
4728
4729// SetNextToken sets the NextToken field's value.
4730func (s *DescribeAccountModificationsInput) SetNextToken(v string) *DescribeAccountModificationsInput {
4731	s.NextToken = &v
4732	return s
4733}
4734
4735type DescribeAccountModificationsOutput struct {
4736	_ struct{} `type:"structure"`
4737
4738	// The list of modifications to the configuration of BYOL.
4739	AccountModifications []*AccountModification `type:"list"`
4740
4741	// The token to use to retrieve the next set of results, or null if no more
4742	// results are available.
4743	NextToken *string `min:"1" type:"string"`
4744}
4745
4746// String returns the string representation
4747func (s DescribeAccountModificationsOutput) String() string {
4748	return awsutil.Prettify(s)
4749}
4750
4751// GoString returns the string representation
4752func (s DescribeAccountModificationsOutput) GoString() string {
4753	return s.String()
4754}
4755
4756// SetAccountModifications sets the AccountModifications field's value.
4757func (s *DescribeAccountModificationsOutput) SetAccountModifications(v []*AccountModification) *DescribeAccountModificationsOutput {
4758	s.AccountModifications = v
4759	return s
4760}
4761
4762// SetNextToken sets the NextToken field's value.
4763func (s *DescribeAccountModificationsOutput) SetNextToken(v string) *DescribeAccountModificationsOutput {
4764	s.NextToken = &v
4765	return s
4766}
4767
4768type DescribeAccountOutput struct {
4769	_ struct{} `type:"structure"`
4770
4771	// The IP address range, specified as an IPv4 CIDR block, used for the management
4772	// network interface.
4773	//
4774	// The management network interface is connected to a secure Amazon WorkSpaces
4775	// management network. It is used for interactive streaming of the WorkSpace
4776	// desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage
4777	// the WorkSpace.
4778	DedicatedTenancyManagementCidrRange *string `type:"string"`
4779
4780	// The status of BYOL (whether BYOL is enabled or disabled).
4781	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportResultEnum"`
4782}
4783
4784// String returns the string representation
4785func (s DescribeAccountOutput) String() string {
4786	return awsutil.Prettify(s)
4787}
4788
4789// GoString returns the string representation
4790func (s DescribeAccountOutput) GoString() string {
4791	return s.String()
4792}
4793
4794// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
4795func (s *DescribeAccountOutput) SetDedicatedTenancyManagementCidrRange(v string) *DescribeAccountOutput {
4796	s.DedicatedTenancyManagementCidrRange = &v
4797	return s
4798}
4799
4800// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
4801func (s *DescribeAccountOutput) SetDedicatedTenancySupport(v string) *DescribeAccountOutput {
4802	s.DedicatedTenancySupport = &v
4803	return s
4804}
4805
4806type DescribeClientPropertiesInput struct {
4807	_ struct{} `type:"structure"`
4808
4809	// The resource identifier, in the form of directory IDs.
4810	//
4811	// ResourceIds is a required field
4812	ResourceIds []*string `min:"1" type:"list" required:"true"`
4813}
4814
4815// String returns the string representation
4816func (s DescribeClientPropertiesInput) String() string {
4817	return awsutil.Prettify(s)
4818}
4819
4820// GoString returns the string representation
4821func (s DescribeClientPropertiesInput) GoString() string {
4822	return s.String()
4823}
4824
4825// Validate inspects the fields of the type to determine if they are valid.
4826func (s *DescribeClientPropertiesInput) Validate() error {
4827	invalidParams := request.ErrInvalidParams{Context: "DescribeClientPropertiesInput"}
4828	if s.ResourceIds == nil {
4829		invalidParams.Add(request.NewErrParamRequired("ResourceIds"))
4830	}
4831	if s.ResourceIds != nil && len(s.ResourceIds) < 1 {
4832		invalidParams.Add(request.NewErrParamMinLen("ResourceIds", 1))
4833	}
4834
4835	if invalidParams.Len() > 0 {
4836		return invalidParams
4837	}
4838	return nil
4839}
4840
4841// SetResourceIds sets the ResourceIds field's value.
4842func (s *DescribeClientPropertiesInput) SetResourceIds(v []*string) *DescribeClientPropertiesInput {
4843	s.ResourceIds = v
4844	return s
4845}
4846
4847type DescribeClientPropertiesOutput struct {
4848	_ struct{} `type:"structure"`
4849
4850	// Information about the specified Amazon WorkSpaces clients.
4851	ClientPropertiesList []*ClientPropertiesResult `type:"list"`
4852}
4853
4854// String returns the string representation
4855func (s DescribeClientPropertiesOutput) String() string {
4856	return awsutil.Prettify(s)
4857}
4858
4859// GoString returns the string representation
4860func (s DescribeClientPropertiesOutput) GoString() string {
4861	return s.String()
4862}
4863
4864// SetClientPropertiesList sets the ClientPropertiesList field's value.
4865func (s *DescribeClientPropertiesOutput) SetClientPropertiesList(v []*ClientPropertiesResult) *DescribeClientPropertiesOutput {
4866	s.ClientPropertiesList = v
4867	return s
4868}
4869
4870type DescribeIpGroupsInput struct {
4871	_ struct{} `type:"structure"`
4872
4873	// The identifiers of one or more IP access control groups.
4874	GroupIds []*string `type:"list"`
4875
4876	// The maximum number of items to return.
4877	MaxResults *int64 `min:"1" type:"integer"`
4878
4879	// If you received a NextToken from a previous call that was paginated, provide
4880	// this token to receive the next set of results.
4881	NextToken *string `min:"1" type:"string"`
4882}
4883
4884// String returns the string representation
4885func (s DescribeIpGroupsInput) String() string {
4886	return awsutil.Prettify(s)
4887}
4888
4889// GoString returns the string representation
4890func (s DescribeIpGroupsInput) GoString() string {
4891	return s.String()
4892}
4893
4894// Validate inspects the fields of the type to determine if they are valid.
4895func (s *DescribeIpGroupsInput) Validate() error {
4896	invalidParams := request.ErrInvalidParams{Context: "DescribeIpGroupsInput"}
4897	if s.MaxResults != nil && *s.MaxResults < 1 {
4898		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4899	}
4900	if s.NextToken != nil && len(*s.NextToken) < 1 {
4901		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4902	}
4903
4904	if invalidParams.Len() > 0 {
4905		return invalidParams
4906	}
4907	return nil
4908}
4909
4910// SetGroupIds sets the GroupIds field's value.
4911func (s *DescribeIpGroupsInput) SetGroupIds(v []*string) *DescribeIpGroupsInput {
4912	s.GroupIds = v
4913	return s
4914}
4915
4916// SetMaxResults sets the MaxResults field's value.
4917func (s *DescribeIpGroupsInput) SetMaxResults(v int64) *DescribeIpGroupsInput {
4918	s.MaxResults = &v
4919	return s
4920}
4921
4922// SetNextToken sets the NextToken field's value.
4923func (s *DescribeIpGroupsInput) SetNextToken(v string) *DescribeIpGroupsInput {
4924	s.NextToken = &v
4925	return s
4926}
4927
4928type DescribeIpGroupsOutput struct {
4929	_ struct{} `type:"structure"`
4930
4931	// The token to use to retrieve the next set of results, or null if no more
4932	// results are available.
4933	NextToken *string `min:"1" type:"string"`
4934
4935	// Information about the IP access control groups.
4936	Result []*IpGroup `type:"list"`
4937}
4938
4939// String returns the string representation
4940func (s DescribeIpGroupsOutput) String() string {
4941	return awsutil.Prettify(s)
4942}
4943
4944// GoString returns the string representation
4945func (s DescribeIpGroupsOutput) GoString() string {
4946	return s.String()
4947}
4948
4949// SetNextToken sets the NextToken field's value.
4950func (s *DescribeIpGroupsOutput) SetNextToken(v string) *DescribeIpGroupsOutput {
4951	s.NextToken = &v
4952	return s
4953}
4954
4955// SetResult sets the Result field's value.
4956func (s *DescribeIpGroupsOutput) SetResult(v []*IpGroup) *DescribeIpGroupsOutput {
4957	s.Result = v
4958	return s
4959}
4960
4961type DescribeTagsInput struct {
4962	_ struct{} `type:"structure"`
4963
4964	// The identifier of the WorkSpaces resource. The supported resource types are
4965	// WorkSpaces, registered directories, images, custom bundles, and IP access
4966	// control groups.
4967	//
4968	// ResourceId is a required field
4969	ResourceId *string `min:"1" type:"string" required:"true"`
4970}
4971
4972// String returns the string representation
4973func (s DescribeTagsInput) String() string {
4974	return awsutil.Prettify(s)
4975}
4976
4977// GoString returns the string representation
4978func (s DescribeTagsInput) GoString() string {
4979	return s.String()
4980}
4981
4982// Validate inspects the fields of the type to determine if they are valid.
4983func (s *DescribeTagsInput) Validate() error {
4984	invalidParams := request.ErrInvalidParams{Context: "DescribeTagsInput"}
4985	if s.ResourceId == nil {
4986		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
4987	}
4988	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
4989		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
4990	}
4991
4992	if invalidParams.Len() > 0 {
4993		return invalidParams
4994	}
4995	return nil
4996}
4997
4998// SetResourceId sets the ResourceId field's value.
4999func (s *DescribeTagsInput) SetResourceId(v string) *DescribeTagsInput {
5000	s.ResourceId = &v
5001	return s
5002}
5003
5004type DescribeTagsOutput struct {
5005	_ struct{} `type:"structure"`
5006
5007	// The tags.
5008	TagList []*Tag `type:"list"`
5009}
5010
5011// String returns the string representation
5012func (s DescribeTagsOutput) String() string {
5013	return awsutil.Prettify(s)
5014}
5015
5016// GoString returns the string representation
5017func (s DescribeTagsOutput) GoString() string {
5018	return s.String()
5019}
5020
5021// SetTagList sets the TagList field's value.
5022func (s *DescribeTagsOutput) SetTagList(v []*Tag) *DescribeTagsOutput {
5023	s.TagList = v
5024	return s
5025}
5026
5027type DescribeWorkspaceBundlesInput struct {
5028	_ struct{} `type:"structure"`
5029
5030	// The identifiers of the bundles. You cannot combine this parameter with any
5031	// other filter.
5032	BundleIds []*string `min:"1" type:"list"`
5033
5034	// The token for the next set of results. (You received this token from a previous
5035	// call.)
5036	NextToken *string `min:"1" type:"string"`
5037
5038	// The owner of the bundles. You cannot combine this parameter with any other
5039	// filter.
5040	//
5041	// Specify AMAZON to describe the bundles provided by AWS or null to describe
5042	// the bundles that belong to your account.
5043	Owner *string `type:"string"`
5044}
5045
5046// String returns the string representation
5047func (s DescribeWorkspaceBundlesInput) String() string {
5048	return awsutil.Prettify(s)
5049}
5050
5051// GoString returns the string representation
5052func (s DescribeWorkspaceBundlesInput) GoString() string {
5053	return s.String()
5054}
5055
5056// Validate inspects the fields of the type to determine if they are valid.
5057func (s *DescribeWorkspaceBundlesInput) Validate() error {
5058	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceBundlesInput"}
5059	if s.BundleIds != nil && len(s.BundleIds) < 1 {
5060		invalidParams.Add(request.NewErrParamMinLen("BundleIds", 1))
5061	}
5062	if s.NextToken != nil && len(*s.NextToken) < 1 {
5063		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5064	}
5065
5066	if invalidParams.Len() > 0 {
5067		return invalidParams
5068	}
5069	return nil
5070}
5071
5072// SetBundleIds sets the BundleIds field's value.
5073func (s *DescribeWorkspaceBundlesInput) SetBundleIds(v []*string) *DescribeWorkspaceBundlesInput {
5074	s.BundleIds = v
5075	return s
5076}
5077
5078// SetNextToken sets the NextToken field's value.
5079func (s *DescribeWorkspaceBundlesInput) SetNextToken(v string) *DescribeWorkspaceBundlesInput {
5080	s.NextToken = &v
5081	return s
5082}
5083
5084// SetOwner sets the Owner field's value.
5085func (s *DescribeWorkspaceBundlesInput) SetOwner(v string) *DescribeWorkspaceBundlesInput {
5086	s.Owner = &v
5087	return s
5088}
5089
5090type DescribeWorkspaceBundlesOutput struct {
5091	_ struct{} `type:"structure"`
5092
5093	// Information about the bundles.
5094	Bundles []*WorkspaceBundle `type:"list"`
5095
5096	// The token to use to retrieve the next set of results, or null if there are
5097	// no more results available. This token is valid for one day and must be used
5098	// within that time frame.
5099	NextToken *string `min:"1" type:"string"`
5100}
5101
5102// String returns the string representation
5103func (s DescribeWorkspaceBundlesOutput) String() string {
5104	return awsutil.Prettify(s)
5105}
5106
5107// GoString returns the string representation
5108func (s DescribeWorkspaceBundlesOutput) GoString() string {
5109	return s.String()
5110}
5111
5112// SetBundles sets the Bundles field's value.
5113func (s *DescribeWorkspaceBundlesOutput) SetBundles(v []*WorkspaceBundle) *DescribeWorkspaceBundlesOutput {
5114	s.Bundles = v
5115	return s
5116}
5117
5118// SetNextToken sets the NextToken field's value.
5119func (s *DescribeWorkspaceBundlesOutput) SetNextToken(v string) *DescribeWorkspaceBundlesOutput {
5120	s.NextToken = &v
5121	return s
5122}
5123
5124type DescribeWorkspaceDirectoriesInput struct {
5125	_ struct{} `type:"structure"`
5126
5127	// The identifiers of the directories. If the value is null, all directories
5128	// are retrieved.
5129	DirectoryIds []*string `min:"1" type:"list"`
5130
5131	// The maximum number of directories to return.
5132	Limit *int64 `min:"1" type:"integer"`
5133
5134	// If you received a NextToken from a previous call that was paginated, provide
5135	// this token to receive the next set of results.
5136	NextToken *string `min:"1" type:"string"`
5137}
5138
5139// String returns the string representation
5140func (s DescribeWorkspaceDirectoriesInput) String() string {
5141	return awsutil.Prettify(s)
5142}
5143
5144// GoString returns the string representation
5145func (s DescribeWorkspaceDirectoriesInput) GoString() string {
5146	return s.String()
5147}
5148
5149// Validate inspects the fields of the type to determine if they are valid.
5150func (s *DescribeWorkspaceDirectoriesInput) Validate() error {
5151	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceDirectoriesInput"}
5152	if s.DirectoryIds != nil && len(s.DirectoryIds) < 1 {
5153		invalidParams.Add(request.NewErrParamMinLen("DirectoryIds", 1))
5154	}
5155	if s.Limit != nil && *s.Limit < 1 {
5156		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
5157	}
5158	if s.NextToken != nil && len(*s.NextToken) < 1 {
5159		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5160	}
5161
5162	if invalidParams.Len() > 0 {
5163		return invalidParams
5164	}
5165	return nil
5166}
5167
5168// SetDirectoryIds sets the DirectoryIds field's value.
5169func (s *DescribeWorkspaceDirectoriesInput) SetDirectoryIds(v []*string) *DescribeWorkspaceDirectoriesInput {
5170	s.DirectoryIds = v
5171	return s
5172}
5173
5174// SetLimit sets the Limit field's value.
5175func (s *DescribeWorkspaceDirectoriesInput) SetLimit(v int64) *DescribeWorkspaceDirectoriesInput {
5176	s.Limit = &v
5177	return s
5178}
5179
5180// SetNextToken sets the NextToken field's value.
5181func (s *DescribeWorkspaceDirectoriesInput) SetNextToken(v string) *DescribeWorkspaceDirectoriesInput {
5182	s.NextToken = &v
5183	return s
5184}
5185
5186type DescribeWorkspaceDirectoriesOutput struct {
5187	_ struct{} `type:"structure"`
5188
5189	// Information about the directories.
5190	Directories []*WorkspaceDirectory `type:"list"`
5191
5192	// The token to use to retrieve the next set of results, or null if no more
5193	// results are available.
5194	NextToken *string `min:"1" type:"string"`
5195}
5196
5197// String returns the string representation
5198func (s DescribeWorkspaceDirectoriesOutput) String() string {
5199	return awsutil.Prettify(s)
5200}
5201
5202// GoString returns the string representation
5203func (s DescribeWorkspaceDirectoriesOutput) GoString() string {
5204	return s.String()
5205}
5206
5207// SetDirectories sets the Directories field's value.
5208func (s *DescribeWorkspaceDirectoriesOutput) SetDirectories(v []*WorkspaceDirectory) *DescribeWorkspaceDirectoriesOutput {
5209	s.Directories = v
5210	return s
5211}
5212
5213// SetNextToken sets the NextToken field's value.
5214func (s *DescribeWorkspaceDirectoriesOutput) SetNextToken(v string) *DescribeWorkspaceDirectoriesOutput {
5215	s.NextToken = &v
5216	return s
5217}
5218
5219type DescribeWorkspaceImagesInput struct {
5220	_ struct{} `type:"structure"`
5221
5222	// The identifier of the image.
5223	ImageIds []*string `min:"1" type:"list"`
5224
5225	// The maximum number of items to return.
5226	MaxResults *int64 `min:"1" type:"integer"`
5227
5228	// If you received a NextToken from a previous call that was paginated, provide
5229	// this token to receive the next set of results.
5230	NextToken *string `min:"1" type:"string"`
5231}
5232
5233// String returns the string representation
5234func (s DescribeWorkspaceImagesInput) String() string {
5235	return awsutil.Prettify(s)
5236}
5237
5238// GoString returns the string representation
5239func (s DescribeWorkspaceImagesInput) GoString() string {
5240	return s.String()
5241}
5242
5243// Validate inspects the fields of the type to determine if they are valid.
5244func (s *DescribeWorkspaceImagesInput) Validate() error {
5245	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceImagesInput"}
5246	if s.ImageIds != nil && len(s.ImageIds) < 1 {
5247		invalidParams.Add(request.NewErrParamMinLen("ImageIds", 1))
5248	}
5249	if s.MaxResults != nil && *s.MaxResults < 1 {
5250		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5251	}
5252	if s.NextToken != nil && len(*s.NextToken) < 1 {
5253		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5254	}
5255
5256	if invalidParams.Len() > 0 {
5257		return invalidParams
5258	}
5259	return nil
5260}
5261
5262// SetImageIds sets the ImageIds field's value.
5263func (s *DescribeWorkspaceImagesInput) SetImageIds(v []*string) *DescribeWorkspaceImagesInput {
5264	s.ImageIds = v
5265	return s
5266}
5267
5268// SetMaxResults sets the MaxResults field's value.
5269func (s *DescribeWorkspaceImagesInput) SetMaxResults(v int64) *DescribeWorkspaceImagesInput {
5270	s.MaxResults = &v
5271	return s
5272}
5273
5274// SetNextToken sets the NextToken field's value.
5275func (s *DescribeWorkspaceImagesInput) SetNextToken(v string) *DescribeWorkspaceImagesInput {
5276	s.NextToken = &v
5277	return s
5278}
5279
5280type DescribeWorkspaceImagesOutput struct {
5281	_ struct{} `type:"structure"`
5282
5283	// Information about the images.
5284	Images []*WorkspaceImage `type:"list"`
5285
5286	// The token to use to retrieve the next set of results, or null if no more
5287	// results are available.
5288	NextToken *string `min:"1" type:"string"`
5289}
5290
5291// String returns the string representation
5292func (s DescribeWorkspaceImagesOutput) String() string {
5293	return awsutil.Prettify(s)
5294}
5295
5296// GoString returns the string representation
5297func (s DescribeWorkspaceImagesOutput) GoString() string {
5298	return s.String()
5299}
5300
5301// SetImages sets the Images field's value.
5302func (s *DescribeWorkspaceImagesOutput) SetImages(v []*WorkspaceImage) *DescribeWorkspaceImagesOutput {
5303	s.Images = v
5304	return s
5305}
5306
5307// SetNextToken sets the NextToken field's value.
5308func (s *DescribeWorkspaceImagesOutput) SetNextToken(v string) *DescribeWorkspaceImagesOutput {
5309	s.NextToken = &v
5310	return s
5311}
5312
5313type DescribeWorkspaceSnapshotsInput struct {
5314	_ struct{} `type:"structure"`
5315
5316	// The identifier of the WorkSpace.
5317	//
5318	// WorkspaceId is a required field
5319	WorkspaceId *string `type:"string" required:"true"`
5320}
5321
5322// String returns the string representation
5323func (s DescribeWorkspaceSnapshotsInput) String() string {
5324	return awsutil.Prettify(s)
5325}
5326
5327// GoString returns the string representation
5328func (s DescribeWorkspaceSnapshotsInput) GoString() string {
5329	return s.String()
5330}
5331
5332// Validate inspects the fields of the type to determine if they are valid.
5333func (s *DescribeWorkspaceSnapshotsInput) Validate() error {
5334	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceSnapshotsInput"}
5335	if s.WorkspaceId == nil {
5336		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
5337	}
5338
5339	if invalidParams.Len() > 0 {
5340		return invalidParams
5341	}
5342	return nil
5343}
5344
5345// SetWorkspaceId sets the WorkspaceId field's value.
5346func (s *DescribeWorkspaceSnapshotsInput) SetWorkspaceId(v string) *DescribeWorkspaceSnapshotsInput {
5347	s.WorkspaceId = &v
5348	return s
5349}
5350
5351type DescribeWorkspaceSnapshotsOutput struct {
5352	_ struct{} `type:"structure"`
5353
5354	// Information about the snapshots that can be used to rebuild a WorkSpace.
5355	// These snapshots include the user volume.
5356	RebuildSnapshots []*Snapshot `type:"list"`
5357
5358	// Information about the snapshots that can be used to restore a WorkSpace.
5359	// These snapshots include both the root volume and the user volume.
5360	RestoreSnapshots []*Snapshot `type:"list"`
5361}
5362
5363// String returns the string representation
5364func (s DescribeWorkspaceSnapshotsOutput) String() string {
5365	return awsutil.Prettify(s)
5366}
5367
5368// GoString returns the string representation
5369func (s DescribeWorkspaceSnapshotsOutput) GoString() string {
5370	return s.String()
5371}
5372
5373// SetRebuildSnapshots sets the RebuildSnapshots field's value.
5374func (s *DescribeWorkspaceSnapshotsOutput) SetRebuildSnapshots(v []*Snapshot) *DescribeWorkspaceSnapshotsOutput {
5375	s.RebuildSnapshots = v
5376	return s
5377}
5378
5379// SetRestoreSnapshots sets the RestoreSnapshots field's value.
5380func (s *DescribeWorkspaceSnapshotsOutput) SetRestoreSnapshots(v []*Snapshot) *DescribeWorkspaceSnapshotsOutput {
5381	s.RestoreSnapshots = v
5382	return s
5383}
5384
5385type DescribeWorkspacesConnectionStatusInput struct {
5386	_ struct{} `type:"structure"`
5387
5388	// If you received a NextToken from a previous call that was paginated, provide
5389	// this token to receive the next set of results.
5390	NextToken *string `min:"1" type:"string"`
5391
5392	// The identifiers of the WorkSpaces. You can specify up to 25 WorkSpaces.
5393	WorkspaceIds []*string `min:"1" type:"list"`
5394}
5395
5396// String returns the string representation
5397func (s DescribeWorkspacesConnectionStatusInput) String() string {
5398	return awsutil.Prettify(s)
5399}
5400
5401// GoString returns the string representation
5402func (s DescribeWorkspacesConnectionStatusInput) GoString() string {
5403	return s.String()
5404}
5405
5406// Validate inspects the fields of the type to determine if they are valid.
5407func (s *DescribeWorkspacesConnectionStatusInput) Validate() error {
5408	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspacesConnectionStatusInput"}
5409	if s.NextToken != nil && len(*s.NextToken) < 1 {
5410		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5411	}
5412	if s.WorkspaceIds != nil && len(s.WorkspaceIds) < 1 {
5413		invalidParams.Add(request.NewErrParamMinLen("WorkspaceIds", 1))
5414	}
5415
5416	if invalidParams.Len() > 0 {
5417		return invalidParams
5418	}
5419	return nil
5420}
5421
5422// SetNextToken sets the NextToken field's value.
5423func (s *DescribeWorkspacesConnectionStatusInput) SetNextToken(v string) *DescribeWorkspacesConnectionStatusInput {
5424	s.NextToken = &v
5425	return s
5426}
5427
5428// SetWorkspaceIds sets the WorkspaceIds field's value.
5429func (s *DescribeWorkspacesConnectionStatusInput) SetWorkspaceIds(v []*string) *DescribeWorkspacesConnectionStatusInput {
5430	s.WorkspaceIds = v
5431	return s
5432}
5433
5434type DescribeWorkspacesConnectionStatusOutput struct {
5435	_ struct{} `type:"structure"`
5436
5437	// The token to use to retrieve the next set of results, or null if no more
5438	// results are available.
5439	NextToken *string `min:"1" type:"string"`
5440
5441	// Information about the connection status of the WorkSpace.
5442	WorkspacesConnectionStatus []*WorkspaceConnectionStatus `type:"list"`
5443}
5444
5445// String returns the string representation
5446func (s DescribeWorkspacesConnectionStatusOutput) String() string {
5447	return awsutil.Prettify(s)
5448}
5449
5450// GoString returns the string representation
5451func (s DescribeWorkspacesConnectionStatusOutput) GoString() string {
5452	return s.String()
5453}
5454
5455// SetNextToken sets the NextToken field's value.
5456func (s *DescribeWorkspacesConnectionStatusOutput) SetNextToken(v string) *DescribeWorkspacesConnectionStatusOutput {
5457	s.NextToken = &v
5458	return s
5459}
5460
5461// SetWorkspacesConnectionStatus sets the WorkspacesConnectionStatus field's value.
5462func (s *DescribeWorkspacesConnectionStatusOutput) SetWorkspacesConnectionStatus(v []*WorkspaceConnectionStatus) *DescribeWorkspacesConnectionStatusOutput {
5463	s.WorkspacesConnectionStatus = v
5464	return s
5465}
5466
5467type DescribeWorkspacesInput struct {
5468	_ struct{} `type:"structure"`
5469
5470	// The identifier of the bundle. All WorkSpaces that are created from this bundle
5471	// are retrieved. You cannot combine this parameter with any other filter.
5472	BundleId *string `type:"string"`
5473
5474	// The identifier of the directory. In addition, you can optionally specify
5475	// a specific directory user (see UserName). You cannot combine this parameter
5476	// with any other filter.
5477	DirectoryId *string `min:"10" type:"string"`
5478
5479	// The maximum number of items to return.
5480	Limit *int64 `min:"1" type:"integer"`
5481
5482	// If you received a NextToken from a previous call that was paginated, provide
5483	// this token to receive the next set of results.
5484	NextToken *string `min:"1" type:"string"`
5485
5486	// The name of the directory user. You must specify this parameter with DirectoryId.
5487	UserName *string `min:"1" type:"string"`
5488
5489	// The identifiers of the WorkSpaces. You cannot combine this parameter with
5490	// any other filter.
5491	//
5492	// Because the CreateWorkspaces operation is asynchronous, the identifier it
5493	// returns is not immediately available. If you immediately call DescribeWorkspaces
5494	// with this identifier, no information is returned.
5495	WorkspaceIds []*string `min:"1" type:"list"`
5496}
5497
5498// String returns the string representation
5499func (s DescribeWorkspacesInput) String() string {
5500	return awsutil.Prettify(s)
5501}
5502
5503// GoString returns the string representation
5504func (s DescribeWorkspacesInput) GoString() string {
5505	return s.String()
5506}
5507
5508// Validate inspects the fields of the type to determine if they are valid.
5509func (s *DescribeWorkspacesInput) Validate() error {
5510	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspacesInput"}
5511	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
5512		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
5513	}
5514	if s.Limit != nil && *s.Limit < 1 {
5515		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
5516	}
5517	if s.NextToken != nil && len(*s.NextToken) < 1 {
5518		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5519	}
5520	if s.UserName != nil && len(*s.UserName) < 1 {
5521		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
5522	}
5523	if s.WorkspaceIds != nil && len(s.WorkspaceIds) < 1 {
5524		invalidParams.Add(request.NewErrParamMinLen("WorkspaceIds", 1))
5525	}
5526
5527	if invalidParams.Len() > 0 {
5528		return invalidParams
5529	}
5530	return nil
5531}
5532
5533// SetBundleId sets the BundleId field's value.
5534func (s *DescribeWorkspacesInput) SetBundleId(v string) *DescribeWorkspacesInput {
5535	s.BundleId = &v
5536	return s
5537}
5538
5539// SetDirectoryId sets the DirectoryId field's value.
5540func (s *DescribeWorkspacesInput) SetDirectoryId(v string) *DescribeWorkspacesInput {
5541	s.DirectoryId = &v
5542	return s
5543}
5544
5545// SetLimit sets the Limit field's value.
5546func (s *DescribeWorkspacesInput) SetLimit(v int64) *DescribeWorkspacesInput {
5547	s.Limit = &v
5548	return s
5549}
5550
5551// SetNextToken sets the NextToken field's value.
5552func (s *DescribeWorkspacesInput) SetNextToken(v string) *DescribeWorkspacesInput {
5553	s.NextToken = &v
5554	return s
5555}
5556
5557// SetUserName sets the UserName field's value.
5558func (s *DescribeWorkspacesInput) SetUserName(v string) *DescribeWorkspacesInput {
5559	s.UserName = &v
5560	return s
5561}
5562
5563// SetWorkspaceIds sets the WorkspaceIds field's value.
5564func (s *DescribeWorkspacesInput) SetWorkspaceIds(v []*string) *DescribeWorkspacesInput {
5565	s.WorkspaceIds = v
5566	return s
5567}
5568
5569type DescribeWorkspacesOutput struct {
5570	_ struct{} `type:"structure"`
5571
5572	// The token to use to retrieve the next set of results, or null if no more
5573	// results are available.
5574	NextToken *string `min:"1" type:"string"`
5575
5576	// Information about the WorkSpaces.
5577	//
5578	// Because CreateWorkspaces is an asynchronous operation, some of the returned
5579	// information could be incomplete.
5580	Workspaces []*Workspace `type:"list"`
5581}
5582
5583// String returns the string representation
5584func (s DescribeWorkspacesOutput) String() string {
5585	return awsutil.Prettify(s)
5586}
5587
5588// GoString returns the string representation
5589func (s DescribeWorkspacesOutput) GoString() string {
5590	return s.String()
5591}
5592
5593// SetNextToken sets the NextToken field's value.
5594func (s *DescribeWorkspacesOutput) SetNextToken(v string) *DescribeWorkspacesOutput {
5595	s.NextToken = &v
5596	return s
5597}
5598
5599// SetWorkspaces sets the Workspaces field's value.
5600func (s *DescribeWorkspacesOutput) SetWorkspaces(v []*Workspace) *DescribeWorkspacesOutput {
5601	s.Workspaces = v
5602	return s
5603}
5604
5605type DisassociateIpGroupsInput struct {
5606	_ struct{} `type:"structure"`
5607
5608	// The identifier of the directory.
5609	//
5610	// DirectoryId is a required field
5611	DirectoryId *string `min:"10" type:"string" required:"true"`
5612
5613	// The identifiers of one or more IP access control groups.
5614	//
5615	// GroupIds is a required field
5616	GroupIds []*string `type:"list" required:"true"`
5617}
5618
5619// String returns the string representation
5620func (s DisassociateIpGroupsInput) String() string {
5621	return awsutil.Prettify(s)
5622}
5623
5624// GoString returns the string representation
5625func (s DisassociateIpGroupsInput) GoString() string {
5626	return s.String()
5627}
5628
5629// Validate inspects the fields of the type to determine if they are valid.
5630func (s *DisassociateIpGroupsInput) Validate() error {
5631	invalidParams := request.ErrInvalidParams{Context: "DisassociateIpGroupsInput"}
5632	if s.DirectoryId == nil {
5633		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
5634	}
5635	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
5636		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
5637	}
5638	if s.GroupIds == nil {
5639		invalidParams.Add(request.NewErrParamRequired("GroupIds"))
5640	}
5641
5642	if invalidParams.Len() > 0 {
5643		return invalidParams
5644	}
5645	return nil
5646}
5647
5648// SetDirectoryId sets the DirectoryId field's value.
5649func (s *DisassociateIpGroupsInput) SetDirectoryId(v string) *DisassociateIpGroupsInput {
5650	s.DirectoryId = &v
5651	return s
5652}
5653
5654// SetGroupIds sets the GroupIds field's value.
5655func (s *DisassociateIpGroupsInput) SetGroupIds(v []*string) *DisassociateIpGroupsInput {
5656	s.GroupIds = v
5657	return s
5658}
5659
5660type DisassociateIpGroupsOutput struct {
5661	_ struct{} `type:"structure"`
5662}
5663
5664// String returns the string representation
5665func (s DisassociateIpGroupsOutput) String() string {
5666	return awsutil.Prettify(s)
5667}
5668
5669// GoString returns the string representation
5670func (s DisassociateIpGroupsOutput) GoString() string {
5671	return s.String()
5672}
5673
5674// Describes a WorkSpace that cannot be created.
5675type FailedCreateWorkspaceRequest struct {
5676	_ struct{} `type:"structure"`
5677
5678	// The error code that is returned if the WorkSpace cannot be created.
5679	ErrorCode *string `type:"string"`
5680
5681	// The text of the error message that is returned if the WorkSpace cannot be
5682	// created.
5683	ErrorMessage *string `type:"string"`
5684
5685	// Information about the WorkSpace.
5686	WorkspaceRequest *WorkspaceRequest `type:"structure"`
5687}
5688
5689// String returns the string representation
5690func (s FailedCreateWorkspaceRequest) String() string {
5691	return awsutil.Prettify(s)
5692}
5693
5694// GoString returns the string representation
5695func (s FailedCreateWorkspaceRequest) GoString() string {
5696	return s.String()
5697}
5698
5699// SetErrorCode sets the ErrorCode field's value.
5700func (s *FailedCreateWorkspaceRequest) SetErrorCode(v string) *FailedCreateWorkspaceRequest {
5701	s.ErrorCode = &v
5702	return s
5703}
5704
5705// SetErrorMessage sets the ErrorMessage field's value.
5706func (s *FailedCreateWorkspaceRequest) SetErrorMessage(v string) *FailedCreateWorkspaceRequest {
5707	s.ErrorMessage = &v
5708	return s
5709}
5710
5711// SetWorkspaceRequest sets the WorkspaceRequest field's value.
5712func (s *FailedCreateWorkspaceRequest) SetWorkspaceRequest(v *WorkspaceRequest) *FailedCreateWorkspaceRequest {
5713	s.WorkspaceRequest = v
5714	return s
5715}
5716
5717// Describes a WorkSpace that could not be rebooted. (RebootWorkspaces), rebuilt
5718// (RebuildWorkspaces), restored (RestoreWorkspace), terminated (TerminateWorkspaces),
5719// started (StartWorkspaces), or stopped (StopWorkspaces).
5720type FailedWorkspaceChangeRequest struct {
5721	_ struct{} `type:"structure"`
5722
5723	// The error code that is returned if the WorkSpace cannot be rebooted.
5724	ErrorCode *string `type:"string"`
5725
5726	// The text of the error message that is returned if the WorkSpace cannot be
5727	// rebooted.
5728	ErrorMessage *string `type:"string"`
5729
5730	// The identifier of the WorkSpace.
5731	WorkspaceId *string `type:"string"`
5732}
5733
5734// String returns the string representation
5735func (s FailedWorkspaceChangeRequest) String() string {
5736	return awsutil.Prettify(s)
5737}
5738
5739// GoString returns the string representation
5740func (s FailedWorkspaceChangeRequest) GoString() string {
5741	return s.String()
5742}
5743
5744// SetErrorCode sets the ErrorCode field's value.
5745func (s *FailedWorkspaceChangeRequest) SetErrorCode(v string) *FailedWorkspaceChangeRequest {
5746	s.ErrorCode = &v
5747	return s
5748}
5749
5750// SetErrorMessage sets the ErrorMessage field's value.
5751func (s *FailedWorkspaceChangeRequest) SetErrorMessage(v string) *FailedWorkspaceChangeRequest {
5752	s.ErrorMessage = &v
5753	return s
5754}
5755
5756// SetWorkspaceId sets the WorkspaceId field's value.
5757func (s *FailedWorkspaceChangeRequest) SetWorkspaceId(v string) *FailedWorkspaceChangeRequest {
5758	s.WorkspaceId = &v
5759	return s
5760}
5761
5762type ImportWorkspaceImageInput struct {
5763	_ struct{} `type:"structure"`
5764
5765	// The identifier of the EC2 image.
5766	//
5767	// Ec2ImageId is a required field
5768	Ec2ImageId *string `type:"string" required:"true"`
5769
5770	// The description of the WorkSpace image.
5771	//
5772	// ImageDescription is a required field
5773	ImageDescription *string `min:"1" type:"string" required:"true"`
5774
5775	// The name of the WorkSpace image.
5776	//
5777	// ImageName is a required field
5778	ImageName *string `min:"1" type:"string" required:"true"`
5779
5780	// The ingestion process to be used when importing the image.
5781	//
5782	// IngestionProcess is a required field
5783	IngestionProcess *string `type:"string" required:"true" enum:"WorkspaceImageIngestionProcess"`
5784
5785	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
5786	Tags []*Tag `type:"list"`
5787}
5788
5789// String returns the string representation
5790func (s ImportWorkspaceImageInput) String() string {
5791	return awsutil.Prettify(s)
5792}
5793
5794// GoString returns the string representation
5795func (s ImportWorkspaceImageInput) GoString() string {
5796	return s.String()
5797}
5798
5799// Validate inspects the fields of the type to determine if they are valid.
5800func (s *ImportWorkspaceImageInput) Validate() error {
5801	invalidParams := request.ErrInvalidParams{Context: "ImportWorkspaceImageInput"}
5802	if s.Ec2ImageId == nil {
5803		invalidParams.Add(request.NewErrParamRequired("Ec2ImageId"))
5804	}
5805	if s.ImageDescription == nil {
5806		invalidParams.Add(request.NewErrParamRequired("ImageDescription"))
5807	}
5808	if s.ImageDescription != nil && len(*s.ImageDescription) < 1 {
5809		invalidParams.Add(request.NewErrParamMinLen("ImageDescription", 1))
5810	}
5811	if s.ImageName == nil {
5812		invalidParams.Add(request.NewErrParamRequired("ImageName"))
5813	}
5814	if s.ImageName != nil && len(*s.ImageName) < 1 {
5815		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
5816	}
5817	if s.IngestionProcess == nil {
5818		invalidParams.Add(request.NewErrParamRequired("IngestionProcess"))
5819	}
5820	if s.Tags != nil {
5821		for i, v := range s.Tags {
5822			if v == nil {
5823				continue
5824			}
5825			if err := v.Validate(); err != nil {
5826				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5827			}
5828		}
5829	}
5830
5831	if invalidParams.Len() > 0 {
5832		return invalidParams
5833	}
5834	return nil
5835}
5836
5837// SetEc2ImageId sets the Ec2ImageId field's value.
5838func (s *ImportWorkspaceImageInput) SetEc2ImageId(v string) *ImportWorkspaceImageInput {
5839	s.Ec2ImageId = &v
5840	return s
5841}
5842
5843// SetImageDescription sets the ImageDescription field's value.
5844func (s *ImportWorkspaceImageInput) SetImageDescription(v string) *ImportWorkspaceImageInput {
5845	s.ImageDescription = &v
5846	return s
5847}
5848
5849// SetImageName sets the ImageName field's value.
5850func (s *ImportWorkspaceImageInput) SetImageName(v string) *ImportWorkspaceImageInput {
5851	s.ImageName = &v
5852	return s
5853}
5854
5855// SetIngestionProcess sets the IngestionProcess field's value.
5856func (s *ImportWorkspaceImageInput) SetIngestionProcess(v string) *ImportWorkspaceImageInput {
5857	s.IngestionProcess = &v
5858	return s
5859}
5860
5861// SetTags sets the Tags field's value.
5862func (s *ImportWorkspaceImageInput) SetTags(v []*Tag) *ImportWorkspaceImageInput {
5863	s.Tags = v
5864	return s
5865}
5866
5867type ImportWorkspaceImageOutput struct {
5868	_ struct{} `type:"structure"`
5869
5870	// The identifier of the WorkSpace image.
5871	ImageId *string `type:"string"`
5872}
5873
5874// String returns the string representation
5875func (s ImportWorkspaceImageOutput) String() string {
5876	return awsutil.Prettify(s)
5877}
5878
5879// GoString returns the string representation
5880func (s ImportWorkspaceImageOutput) GoString() string {
5881	return s.String()
5882}
5883
5884// SetImageId sets the ImageId field's value.
5885func (s *ImportWorkspaceImageOutput) SetImageId(v string) *ImportWorkspaceImageOutput {
5886	s.ImageId = &v
5887	return s
5888}
5889
5890// Describes an IP access control group.
5891type IpGroup struct {
5892	_ struct{} `type:"structure"`
5893
5894	// The description of the group.
5895	GroupDesc *string `locationName:"groupDesc" type:"string"`
5896
5897	// The identifier of the group.
5898	GroupId *string `locationName:"groupId" type:"string"`
5899
5900	// The name of the group.
5901	GroupName *string `locationName:"groupName" type:"string"`
5902
5903	// The rules.
5904	UserRules []*IpRuleItem `locationName:"userRules" type:"list"`
5905}
5906
5907// String returns the string representation
5908func (s IpGroup) String() string {
5909	return awsutil.Prettify(s)
5910}
5911
5912// GoString returns the string representation
5913func (s IpGroup) GoString() string {
5914	return s.String()
5915}
5916
5917// SetGroupDesc sets the GroupDesc field's value.
5918func (s *IpGroup) SetGroupDesc(v string) *IpGroup {
5919	s.GroupDesc = &v
5920	return s
5921}
5922
5923// SetGroupId sets the GroupId field's value.
5924func (s *IpGroup) SetGroupId(v string) *IpGroup {
5925	s.GroupId = &v
5926	return s
5927}
5928
5929// SetGroupName sets the GroupName field's value.
5930func (s *IpGroup) SetGroupName(v string) *IpGroup {
5931	s.GroupName = &v
5932	return s
5933}
5934
5935// SetUserRules sets the UserRules field's value.
5936func (s *IpGroup) SetUserRules(v []*IpRuleItem) *IpGroup {
5937	s.UserRules = v
5938	return s
5939}
5940
5941// Describes a rule for an IP access control group.
5942type IpRuleItem struct {
5943	_ struct{} `type:"structure"`
5944
5945	// The IP address range, in CIDR notation.
5946	IpRule *string `locationName:"ipRule" type:"string"`
5947
5948	// The description.
5949	RuleDesc *string `locationName:"ruleDesc" type:"string"`
5950}
5951
5952// String returns the string representation
5953func (s IpRuleItem) String() string {
5954	return awsutil.Prettify(s)
5955}
5956
5957// GoString returns the string representation
5958func (s IpRuleItem) GoString() string {
5959	return s.String()
5960}
5961
5962// SetIpRule sets the IpRule field's value.
5963func (s *IpRuleItem) SetIpRule(v string) *IpRuleItem {
5964	s.IpRule = &v
5965	return s
5966}
5967
5968// SetRuleDesc sets the RuleDesc field's value.
5969func (s *IpRuleItem) SetRuleDesc(v string) *IpRuleItem {
5970	s.RuleDesc = &v
5971	return s
5972}
5973
5974type ListAvailableManagementCidrRangesInput struct {
5975	_ struct{} `type:"structure"`
5976
5977	// The IP address range to search. Specify an IP address range that is compatible
5978	// with your network and in CIDR notation (that is, specify the range as an
5979	// IPv4 CIDR block).
5980	//
5981	// ManagementCidrRangeConstraint is a required field
5982	ManagementCidrRangeConstraint *string `type:"string" required:"true"`
5983
5984	// The maximum number of items to return.
5985	MaxResults *int64 `min:"1" type:"integer"`
5986
5987	// If you received a NextToken from a previous call that was paginated, provide
5988	// this token to receive the next set of results.
5989	NextToken *string `min:"1" type:"string"`
5990}
5991
5992// String returns the string representation
5993func (s ListAvailableManagementCidrRangesInput) String() string {
5994	return awsutil.Prettify(s)
5995}
5996
5997// GoString returns the string representation
5998func (s ListAvailableManagementCidrRangesInput) GoString() string {
5999	return s.String()
6000}
6001
6002// Validate inspects the fields of the type to determine if they are valid.
6003func (s *ListAvailableManagementCidrRangesInput) Validate() error {
6004	invalidParams := request.ErrInvalidParams{Context: "ListAvailableManagementCidrRangesInput"}
6005	if s.ManagementCidrRangeConstraint == nil {
6006		invalidParams.Add(request.NewErrParamRequired("ManagementCidrRangeConstraint"))
6007	}
6008	if s.MaxResults != nil && *s.MaxResults < 1 {
6009		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
6010	}
6011	if s.NextToken != nil && len(*s.NextToken) < 1 {
6012		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6013	}
6014
6015	if invalidParams.Len() > 0 {
6016		return invalidParams
6017	}
6018	return nil
6019}
6020
6021// SetManagementCidrRangeConstraint sets the ManagementCidrRangeConstraint field's value.
6022func (s *ListAvailableManagementCidrRangesInput) SetManagementCidrRangeConstraint(v string) *ListAvailableManagementCidrRangesInput {
6023	s.ManagementCidrRangeConstraint = &v
6024	return s
6025}
6026
6027// SetMaxResults sets the MaxResults field's value.
6028func (s *ListAvailableManagementCidrRangesInput) SetMaxResults(v int64) *ListAvailableManagementCidrRangesInput {
6029	s.MaxResults = &v
6030	return s
6031}
6032
6033// SetNextToken sets the NextToken field's value.
6034func (s *ListAvailableManagementCidrRangesInput) SetNextToken(v string) *ListAvailableManagementCidrRangesInput {
6035	s.NextToken = &v
6036	return s
6037}
6038
6039type ListAvailableManagementCidrRangesOutput struct {
6040	_ struct{} `type:"structure"`
6041
6042	// The list of available IP address ranges, specified as IPv4 CIDR blocks.
6043	ManagementCidrRanges []*string `type:"list"`
6044
6045	// The token to use to retrieve the next set of results, or null if no more
6046	// results are available.
6047	NextToken *string `min:"1" type:"string"`
6048}
6049
6050// String returns the string representation
6051func (s ListAvailableManagementCidrRangesOutput) String() string {
6052	return awsutil.Prettify(s)
6053}
6054
6055// GoString returns the string representation
6056func (s ListAvailableManagementCidrRangesOutput) GoString() string {
6057	return s.String()
6058}
6059
6060// SetManagementCidrRanges sets the ManagementCidrRanges field's value.
6061func (s *ListAvailableManagementCidrRangesOutput) SetManagementCidrRanges(v []*string) *ListAvailableManagementCidrRangesOutput {
6062	s.ManagementCidrRanges = v
6063	return s
6064}
6065
6066// SetNextToken sets the NextToken field's value.
6067func (s *ListAvailableManagementCidrRangesOutput) SetNextToken(v string) *ListAvailableManagementCidrRangesOutput {
6068	s.NextToken = &v
6069	return s
6070}
6071
6072// Describes a WorkSpace modification.
6073type ModificationState struct {
6074	_ struct{} `type:"structure"`
6075
6076	// The resource.
6077	Resource *string `type:"string" enum:"ModificationResourceEnum"`
6078
6079	// The modification state.
6080	State *string `type:"string" enum:"ModificationStateEnum"`
6081}
6082
6083// String returns the string representation
6084func (s ModificationState) String() string {
6085	return awsutil.Prettify(s)
6086}
6087
6088// GoString returns the string representation
6089func (s ModificationState) GoString() string {
6090	return s.String()
6091}
6092
6093// SetResource sets the Resource field's value.
6094func (s *ModificationState) SetResource(v string) *ModificationState {
6095	s.Resource = &v
6096	return s
6097}
6098
6099// SetState sets the State field's value.
6100func (s *ModificationState) SetState(v string) *ModificationState {
6101	s.State = &v
6102	return s
6103}
6104
6105type ModifyAccountInput struct {
6106	_ struct{} `type:"structure"`
6107
6108	// The IP address range, specified as an IPv4 CIDR block, for the management
6109	// network interface. Specify an IP address range that is compatible with your
6110	// network and in CIDR notation (that is, specify the range as an IPv4 CIDR
6111	// block). The CIDR block size must be /16 (for example, 203.0.113.25/16). It
6112	// must also be specified as available by the ListAvailableManagementCidrRanges
6113	// operation.
6114	DedicatedTenancyManagementCidrRange *string `type:"string"`
6115
6116	// The status of BYOL.
6117	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportEnum"`
6118}
6119
6120// String returns the string representation
6121func (s ModifyAccountInput) String() string {
6122	return awsutil.Prettify(s)
6123}
6124
6125// GoString returns the string representation
6126func (s ModifyAccountInput) GoString() string {
6127	return s.String()
6128}
6129
6130// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
6131func (s *ModifyAccountInput) SetDedicatedTenancyManagementCidrRange(v string) *ModifyAccountInput {
6132	s.DedicatedTenancyManagementCidrRange = &v
6133	return s
6134}
6135
6136// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
6137func (s *ModifyAccountInput) SetDedicatedTenancySupport(v string) *ModifyAccountInput {
6138	s.DedicatedTenancySupport = &v
6139	return s
6140}
6141
6142type ModifyAccountOutput struct {
6143	_ struct{} `type:"structure"`
6144}
6145
6146// String returns the string representation
6147func (s ModifyAccountOutput) String() string {
6148	return awsutil.Prettify(s)
6149}
6150
6151// GoString returns the string representation
6152func (s ModifyAccountOutput) GoString() string {
6153	return s.String()
6154}
6155
6156type ModifyClientPropertiesInput struct {
6157	_ struct{} `type:"structure"`
6158
6159	// Information about the Amazon WorkSpaces client.
6160	//
6161	// ClientProperties is a required field
6162	ClientProperties *ClientProperties `type:"structure" required:"true"`
6163
6164	// The resource identifiers, in the form of directory IDs.
6165	//
6166	// ResourceId is a required field
6167	ResourceId *string `min:"1" type:"string" required:"true"`
6168}
6169
6170// String returns the string representation
6171func (s ModifyClientPropertiesInput) String() string {
6172	return awsutil.Prettify(s)
6173}
6174
6175// GoString returns the string representation
6176func (s ModifyClientPropertiesInput) GoString() string {
6177	return s.String()
6178}
6179
6180// Validate inspects the fields of the type to determine if they are valid.
6181func (s *ModifyClientPropertiesInput) Validate() error {
6182	invalidParams := request.ErrInvalidParams{Context: "ModifyClientPropertiesInput"}
6183	if s.ClientProperties == nil {
6184		invalidParams.Add(request.NewErrParamRequired("ClientProperties"))
6185	}
6186	if s.ResourceId == nil {
6187		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6188	}
6189	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
6190		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
6191	}
6192
6193	if invalidParams.Len() > 0 {
6194		return invalidParams
6195	}
6196	return nil
6197}
6198
6199// SetClientProperties sets the ClientProperties field's value.
6200func (s *ModifyClientPropertiesInput) SetClientProperties(v *ClientProperties) *ModifyClientPropertiesInput {
6201	s.ClientProperties = v
6202	return s
6203}
6204
6205// SetResourceId sets the ResourceId field's value.
6206func (s *ModifyClientPropertiesInput) SetResourceId(v string) *ModifyClientPropertiesInput {
6207	s.ResourceId = &v
6208	return s
6209}
6210
6211type ModifyClientPropertiesOutput struct {
6212	_ struct{} `type:"structure"`
6213}
6214
6215// String returns the string representation
6216func (s ModifyClientPropertiesOutput) String() string {
6217	return awsutil.Prettify(s)
6218}
6219
6220// GoString returns the string representation
6221func (s ModifyClientPropertiesOutput) GoString() string {
6222	return s.String()
6223}
6224
6225type ModifySelfservicePermissionsInput struct {
6226	_ struct{} `type:"structure"`
6227
6228	// The identifier of the directory.
6229	//
6230	// ResourceId is a required field
6231	ResourceId *string `min:"10" type:"string" required:"true"`
6232
6233	// The permissions to enable or disable self-service capabilities.
6234	//
6235	// SelfservicePermissions is a required field
6236	SelfservicePermissions *SelfservicePermissions `type:"structure" required:"true"`
6237}
6238
6239// String returns the string representation
6240func (s ModifySelfservicePermissionsInput) String() string {
6241	return awsutil.Prettify(s)
6242}
6243
6244// GoString returns the string representation
6245func (s ModifySelfservicePermissionsInput) GoString() string {
6246	return s.String()
6247}
6248
6249// Validate inspects the fields of the type to determine if they are valid.
6250func (s *ModifySelfservicePermissionsInput) Validate() error {
6251	invalidParams := request.ErrInvalidParams{Context: "ModifySelfservicePermissionsInput"}
6252	if s.ResourceId == nil {
6253		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6254	}
6255	if s.ResourceId != nil && len(*s.ResourceId) < 10 {
6256		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10))
6257	}
6258	if s.SelfservicePermissions == nil {
6259		invalidParams.Add(request.NewErrParamRequired("SelfservicePermissions"))
6260	}
6261
6262	if invalidParams.Len() > 0 {
6263		return invalidParams
6264	}
6265	return nil
6266}
6267
6268// SetResourceId sets the ResourceId field's value.
6269func (s *ModifySelfservicePermissionsInput) SetResourceId(v string) *ModifySelfservicePermissionsInput {
6270	s.ResourceId = &v
6271	return s
6272}
6273
6274// SetSelfservicePermissions sets the SelfservicePermissions field's value.
6275func (s *ModifySelfservicePermissionsInput) SetSelfservicePermissions(v *SelfservicePermissions) *ModifySelfservicePermissionsInput {
6276	s.SelfservicePermissions = v
6277	return s
6278}
6279
6280type ModifySelfservicePermissionsOutput struct {
6281	_ struct{} `type:"structure"`
6282}
6283
6284// String returns the string representation
6285func (s ModifySelfservicePermissionsOutput) String() string {
6286	return awsutil.Prettify(s)
6287}
6288
6289// GoString returns the string representation
6290func (s ModifySelfservicePermissionsOutput) GoString() string {
6291	return s.String()
6292}
6293
6294type ModifyWorkspaceAccessPropertiesInput struct {
6295	_ struct{} `type:"structure"`
6296
6297	// The identifier of the directory.
6298	//
6299	// ResourceId is a required field
6300	ResourceId *string `min:"10" type:"string" required:"true"`
6301
6302	// The device types and operating systems to enable or disable for access.
6303	//
6304	// WorkspaceAccessProperties is a required field
6305	WorkspaceAccessProperties *WorkspaceAccessProperties `type:"structure" required:"true"`
6306}
6307
6308// String returns the string representation
6309func (s ModifyWorkspaceAccessPropertiesInput) String() string {
6310	return awsutil.Prettify(s)
6311}
6312
6313// GoString returns the string representation
6314func (s ModifyWorkspaceAccessPropertiesInput) GoString() string {
6315	return s.String()
6316}
6317
6318// Validate inspects the fields of the type to determine if they are valid.
6319func (s *ModifyWorkspaceAccessPropertiesInput) Validate() error {
6320	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceAccessPropertiesInput"}
6321	if s.ResourceId == nil {
6322		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6323	}
6324	if s.ResourceId != nil && len(*s.ResourceId) < 10 {
6325		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10))
6326	}
6327	if s.WorkspaceAccessProperties == nil {
6328		invalidParams.Add(request.NewErrParamRequired("WorkspaceAccessProperties"))
6329	}
6330
6331	if invalidParams.Len() > 0 {
6332		return invalidParams
6333	}
6334	return nil
6335}
6336
6337// SetResourceId sets the ResourceId field's value.
6338func (s *ModifyWorkspaceAccessPropertiesInput) SetResourceId(v string) *ModifyWorkspaceAccessPropertiesInput {
6339	s.ResourceId = &v
6340	return s
6341}
6342
6343// SetWorkspaceAccessProperties sets the WorkspaceAccessProperties field's value.
6344func (s *ModifyWorkspaceAccessPropertiesInput) SetWorkspaceAccessProperties(v *WorkspaceAccessProperties) *ModifyWorkspaceAccessPropertiesInput {
6345	s.WorkspaceAccessProperties = v
6346	return s
6347}
6348
6349type ModifyWorkspaceAccessPropertiesOutput struct {
6350	_ struct{} `type:"structure"`
6351}
6352
6353// String returns the string representation
6354func (s ModifyWorkspaceAccessPropertiesOutput) String() string {
6355	return awsutil.Prettify(s)
6356}
6357
6358// GoString returns the string representation
6359func (s ModifyWorkspaceAccessPropertiesOutput) GoString() string {
6360	return s.String()
6361}
6362
6363type ModifyWorkspaceCreationPropertiesInput struct {
6364	_ struct{} `type:"structure"`
6365
6366	// The identifier of the directory.
6367	//
6368	// ResourceId is a required field
6369	ResourceId *string `min:"10" type:"string" required:"true"`
6370
6371	// The default properties for creating WorkSpaces.
6372	//
6373	// WorkspaceCreationProperties is a required field
6374	WorkspaceCreationProperties *WorkspaceCreationProperties `type:"structure" required:"true"`
6375}
6376
6377// String returns the string representation
6378func (s ModifyWorkspaceCreationPropertiesInput) String() string {
6379	return awsutil.Prettify(s)
6380}
6381
6382// GoString returns the string representation
6383func (s ModifyWorkspaceCreationPropertiesInput) GoString() string {
6384	return s.String()
6385}
6386
6387// Validate inspects the fields of the type to determine if they are valid.
6388func (s *ModifyWorkspaceCreationPropertiesInput) Validate() error {
6389	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceCreationPropertiesInput"}
6390	if s.ResourceId == nil {
6391		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
6392	}
6393	if s.ResourceId != nil && len(*s.ResourceId) < 10 {
6394		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 10))
6395	}
6396	if s.WorkspaceCreationProperties == nil {
6397		invalidParams.Add(request.NewErrParamRequired("WorkspaceCreationProperties"))
6398	}
6399	if s.WorkspaceCreationProperties != nil {
6400		if err := s.WorkspaceCreationProperties.Validate(); err != nil {
6401			invalidParams.AddNested("WorkspaceCreationProperties", err.(request.ErrInvalidParams))
6402		}
6403	}
6404
6405	if invalidParams.Len() > 0 {
6406		return invalidParams
6407	}
6408	return nil
6409}
6410
6411// SetResourceId sets the ResourceId field's value.
6412func (s *ModifyWorkspaceCreationPropertiesInput) SetResourceId(v string) *ModifyWorkspaceCreationPropertiesInput {
6413	s.ResourceId = &v
6414	return s
6415}
6416
6417// SetWorkspaceCreationProperties sets the WorkspaceCreationProperties field's value.
6418func (s *ModifyWorkspaceCreationPropertiesInput) SetWorkspaceCreationProperties(v *WorkspaceCreationProperties) *ModifyWorkspaceCreationPropertiesInput {
6419	s.WorkspaceCreationProperties = v
6420	return s
6421}
6422
6423type ModifyWorkspaceCreationPropertiesOutput struct {
6424	_ struct{} `type:"structure"`
6425}
6426
6427// String returns the string representation
6428func (s ModifyWorkspaceCreationPropertiesOutput) String() string {
6429	return awsutil.Prettify(s)
6430}
6431
6432// GoString returns the string representation
6433func (s ModifyWorkspaceCreationPropertiesOutput) GoString() string {
6434	return s.String()
6435}
6436
6437type ModifyWorkspacePropertiesInput struct {
6438	_ struct{} `type:"structure"`
6439
6440	// The identifier of the WorkSpace.
6441	//
6442	// WorkspaceId is a required field
6443	WorkspaceId *string `type:"string" required:"true"`
6444
6445	// The properties of the WorkSpace.
6446	//
6447	// WorkspaceProperties is a required field
6448	WorkspaceProperties *WorkspaceProperties `type:"structure" required:"true"`
6449}
6450
6451// String returns the string representation
6452func (s ModifyWorkspacePropertiesInput) String() string {
6453	return awsutil.Prettify(s)
6454}
6455
6456// GoString returns the string representation
6457func (s ModifyWorkspacePropertiesInput) GoString() string {
6458	return s.String()
6459}
6460
6461// Validate inspects the fields of the type to determine if they are valid.
6462func (s *ModifyWorkspacePropertiesInput) Validate() error {
6463	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspacePropertiesInput"}
6464	if s.WorkspaceId == nil {
6465		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
6466	}
6467	if s.WorkspaceProperties == nil {
6468		invalidParams.Add(request.NewErrParamRequired("WorkspaceProperties"))
6469	}
6470
6471	if invalidParams.Len() > 0 {
6472		return invalidParams
6473	}
6474	return nil
6475}
6476
6477// SetWorkspaceId sets the WorkspaceId field's value.
6478func (s *ModifyWorkspacePropertiesInput) SetWorkspaceId(v string) *ModifyWorkspacePropertiesInput {
6479	s.WorkspaceId = &v
6480	return s
6481}
6482
6483// SetWorkspaceProperties sets the WorkspaceProperties field's value.
6484func (s *ModifyWorkspacePropertiesInput) SetWorkspaceProperties(v *WorkspaceProperties) *ModifyWorkspacePropertiesInput {
6485	s.WorkspaceProperties = v
6486	return s
6487}
6488
6489type ModifyWorkspacePropertiesOutput struct {
6490	_ struct{} `type:"structure"`
6491}
6492
6493// String returns the string representation
6494func (s ModifyWorkspacePropertiesOutput) String() string {
6495	return awsutil.Prettify(s)
6496}
6497
6498// GoString returns the string representation
6499func (s ModifyWorkspacePropertiesOutput) GoString() string {
6500	return s.String()
6501}
6502
6503type ModifyWorkspaceStateInput struct {
6504	_ struct{} `type:"structure"`
6505
6506	// The identifier of the WorkSpace.
6507	//
6508	// WorkspaceId is a required field
6509	WorkspaceId *string `type:"string" required:"true"`
6510
6511	// The WorkSpace state.
6512	//
6513	// WorkspaceState is a required field
6514	WorkspaceState *string `type:"string" required:"true" enum:"TargetWorkspaceState"`
6515}
6516
6517// String returns the string representation
6518func (s ModifyWorkspaceStateInput) String() string {
6519	return awsutil.Prettify(s)
6520}
6521
6522// GoString returns the string representation
6523func (s ModifyWorkspaceStateInput) GoString() string {
6524	return s.String()
6525}
6526
6527// Validate inspects the fields of the type to determine if they are valid.
6528func (s *ModifyWorkspaceStateInput) Validate() error {
6529	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceStateInput"}
6530	if s.WorkspaceId == nil {
6531		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
6532	}
6533	if s.WorkspaceState == nil {
6534		invalidParams.Add(request.NewErrParamRequired("WorkspaceState"))
6535	}
6536
6537	if invalidParams.Len() > 0 {
6538		return invalidParams
6539	}
6540	return nil
6541}
6542
6543// SetWorkspaceId sets the WorkspaceId field's value.
6544func (s *ModifyWorkspaceStateInput) SetWorkspaceId(v string) *ModifyWorkspaceStateInput {
6545	s.WorkspaceId = &v
6546	return s
6547}
6548
6549// SetWorkspaceState sets the WorkspaceState field's value.
6550func (s *ModifyWorkspaceStateInput) SetWorkspaceState(v string) *ModifyWorkspaceStateInput {
6551	s.WorkspaceState = &v
6552	return s
6553}
6554
6555type ModifyWorkspaceStateOutput struct {
6556	_ struct{} `type:"structure"`
6557}
6558
6559// String returns the string representation
6560func (s ModifyWorkspaceStateOutput) String() string {
6561	return awsutil.Prettify(s)
6562}
6563
6564// GoString returns the string representation
6565func (s ModifyWorkspaceStateOutput) GoString() string {
6566	return s.String()
6567}
6568
6569// The operating system that the image is running.
6570type OperatingSystem struct {
6571	_ struct{} `type:"structure"`
6572
6573	// The operating system.
6574	Type *string `type:"string" enum:"OperatingSystemType"`
6575}
6576
6577// String returns the string representation
6578func (s OperatingSystem) String() string {
6579	return awsutil.Prettify(s)
6580}
6581
6582// GoString returns the string representation
6583func (s OperatingSystem) GoString() string {
6584	return s.String()
6585}
6586
6587// SetType sets the Type field's value.
6588func (s *OperatingSystem) SetType(v string) *OperatingSystem {
6589	s.Type = &v
6590	return s
6591}
6592
6593// Describes the information used to reboot a WorkSpace.
6594type RebootRequest struct {
6595	_ struct{} `type:"structure"`
6596
6597	// The identifier of the WorkSpace.
6598	//
6599	// WorkspaceId is a required field
6600	WorkspaceId *string `type:"string" required:"true"`
6601}
6602
6603// String returns the string representation
6604func (s RebootRequest) String() string {
6605	return awsutil.Prettify(s)
6606}
6607
6608// GoString returns the string representation
6609func (s RebootRequest) GoString() string {
6610	return s.String()
6611}
6612
6613// Validate inspects the fields of the type to determine if they are valid.
6614func (s *RebootRequest) Validate() error {
6615	invalidParams := request.ErrInvalidParams{Context: "RebootRequest"}
6616	if s.WorkspaceId == nil {
6617		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
6618	}
6619
6620	if invalidParams.Len() > 0 {
6621		return invalidParams
6622	}
6623	return nil
6624}
6625
6626// SetWorkspaceId sets the WorkspaceId field's value.
6627func (s *RebootRequest) SetWorkspaceId(v string) *RebootRequest {
6628	s.WorkspaceId = &v
6629	return s
6630}
6631
6632type RebootWorkspacesInput struct {
6633	_ struct{} `type:"structure"`
6634
6635	// The WorkSpaces to reboot. You can specify up to 25 WorkSpaces.
6636	//
6637	// RebootWorkspaceRequests is a required field
6638	RebootWorkspaceRequests []*RebootRequest `min:"1" type:"list" required:"true"`
6639}
6640
6641// String returns the string representation
6642func (s RebootWorkspacesInput) String() string {
6643	return awsutil.Prettify(s)
6644}
6645
6646// GoString returns the string representation
6647func (s RebootWorkspacesInput) GoString() string {
6648	return s.String()
6649}
6650
6651// Validate inspects the fields of the type to determine if they are valid.
6652func (s *RebootWorkspacesInput) Validate() error {
6653	invalidParams := request.ErrInvalidParams{Context: "RebootWorkspacesInput"}
6654	if s.RebootWorkspaceRequests == nil {
6655		invalidParams.Add(request.NewErrParamRequired("RebootWorkspaceRequests"))
6656	}
6657	if s.RebootWorkspaceRequests != nil && len(s.RebootWorkspaceRequests) < 1 {
6658		invalidParams.Add(request.NewErrParamMinLen("RebootWorkspaceRequests", 1))
6659	}
6660	if s.RebootWorkspaceRequests != nil {
6661		for i, v := range s.RebootWorkspaceRequests {
6662			if v == nil {
6663				continue
6664			}
6665			if err := v.Validate(); err != nil {
6666				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RebootWorkspaceRequests", i), err.(request.ErrInvalidParams))
6667			}
6668		}
6669	}
6670
6671	if invalidParams.Len() > 0 {
6672		return invalidParams
6673	}
6674	return nil
6675}
6676
6677// SetRebootWorkspaceRequests sets the RebootWorkspaceRequests field's value.
6678func (s *RebootWorkspacesInput) SetRebootWorkspaceRequests(v []*RebootRequest) *RebootWorkspacesInput {
6679	s.RebootWorkspaceRequests = v
6680	return s
6681}
6682
6683type RebootWorkspacesOutput struct {
6684	_ struct{} `type:"structure"`
6685
6686	// Information about the WorkSpaces that could not be rebooted.
6687	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
6688}
6689
6690// String returns the string representation
6691func (s RebootWorkspacesOutput) String() string {
6692	return awsutil.Prettify(s)
6693}
6694
6695// GoString returns the string representation
6696func (s RebootWorkspacesOutput) GoString() string {
6697	return s.String()
6698}
6699
6700// SetFailedRequests sets the FailedRequests field's value.
6701func (s *RebootWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *RebootWorkspacesOutput {
6702	s.FailedRequests = v
6703	return s
6704}
6705
6706// Describes the information used to rebuild a WorkSpace.
6707type RebuildRequest struct {
6708	_ struct{} `type:"structure"`
6709
6710	// The identifier of the WorkSpace.
6711	//
6712	// WorkspaceId is a required field
6713	WorkspaceId *string `type:"string" required:"true"`
6714}
6715
6716// String returns the string representation
6717func (s RebuildRequest) String() string {
6718	return awsutil.Prettify(s)
6719}
6720
6721// GoString returns the string representation
6722func (s RebuildRequest) GoString() string {
6723	return s.String()
6724}
6725
6726// Validate inspects the fields of the type to determine if they are valid.
6727func (s *RebuildRequest) Validate() error {
6728	invalidParams := request.ErrInvalidParams{Context: "RebuildRequest"}
6729	if s.WorkspaceId == nil {
6730		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
6731	}
6732
6733	if invalidParams.Len() > 0 {
6734		return invalidParams
6735	}
6736	return nil
6737}
6738
6739// SetWorkspaceId sets the WorkspaceId field's value.
6740func (s *RebuildRequest) SetWorkspaceId(v string) *RebuildRequest {
6741	s.WorkspaceId = &v
6742	return s
6743}
6744
6745type RebuildWorkspacesInput struct {
6746	_ struct{} `type:"structure"`
6747
6748	// The WorkSpace to rebuild. You can specify a single WorkSpace.
6749	//
6750	// RebuildWorkspaceRequests is a required field
6751	RebuildWorkspaceRequests []*RebuildRequest `min:"1" type:"list" required:"true"`
6752}
6753
6754// String returns the string representation
6755func (s RebuildWorkspacesInput) String() string {
6756	return awsutil.Prettify(s)
6757}
6758
6759// GoString returns the string representation
6760func (s RebuildWorkspacesInput) GoString() string {
6761	return s.String()
6762}
6763
6764// Validate inspects the fields of the type to determine if they are valid.
6765func (s *RebuildWorkspacesInput) Validate() error {
6766	invalidParams := request.ErrInvalidParams{Context: "RebuildWorkspacesInput"}
6767	if s.RebuildWorkspaceRequests == nil {
6768		invalidParams.Add(request.NewErrParamRequired("RebuildWorkspaceRequests"))
6769	}
6770	if s.RebuildWorkspaceRequests != nil && len(s.RebuildWorkspaceRequests) < 1 {
6771		invalidParams.Add(request.NewErrParamMinLen("RebuildWorkspaceRequests", 1))
6772	}
6773	if s.RebuildWorkspaceRequests != nil {
6774		for i, v := range s.RebuildWorkspaceRequests {
6775			if v == nil {
6776				continue
6777			}
6778			if err := v.Validate(); err != nil {
6779				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RebuildWorkspaceRequests", i), err.(request.ErrInvalidParams))
6780			}
6781		}
6782	}
6783
6784	if invalidParams.Len() > 0 {
6785		return invalidParams
6786	}
6787	return nil
6788}
6789
6790// SetRebuildWorkspaceRequests sets the RebuildWorkspaceRequests field's value.
6791func (s *RebuildWorkspacesInput) SetRebuildWorkspaceRequests(v []*RebuildRequest) *RebuildWorkspacesInput {
6792	s.RebuildWorkspaceRequests = v
6793	return s
6794}
6795
6796type RebuildWorkspacesOutput struct {
6797	_ struct{} `type:"structure"`
6798
6799	// Information about the WorkSpace that could not be rebuilt.
6800	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
6801}
6802
6803// String returns the string representation
6804func (s RebuildWorkspacesOutput) String() string {
6805	return awsutil.Prettify(s)
6806}
6807
6808// GoString returns the string representation
6809func (s RebuildWorkspacesOutput) GoString() string {
6810	return s.String()
6811}
6812
6813// SetFailedRequests sets the FailedRequests field's value.
6814func (s *RebuildWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *RebuildWorkspacesOutput {
6815	s.FailedRequests = v
6816	return s
6817}
6818
6819type RegisterWorkspaceDirectoryInput struct {
6820	_ struct{} `type:"structure"`
6821
6822	// The identifier of the directory. You cannot register a directory if it does
6823	// not have a status of Active. If the directory does not have a status of Active,
6824	// you will receive an InvalidResourceStateException error. If you have already
6825	// registered the maximum number of directories that you can register with Amazon
6826	// WorkSpaces, you will receive a ResourceLimitExceededException error. Deregister
6827	// directories that you are not using for WorkSpaces, and try again.
6828	//
6829	// DirectoryId is a required field
6830	DirectoryId *string `min:"10" type:"string" required:"true"`
6831
6832	// Indicates whether self-service capabilities are enabled or disabled.
6833	EnableSelfService *bool `type:"boolean"`
6834
6835	// Indicates whether Amazon WorkDocs is enabled or disabled. If you have enabled
6836	// this parameter and WorkDocs is not available in the Region, you will receive
6837	// an OperationNotSupportedException error. Set EnableWorkDocs to disabled,
6838	// and try again.
6839	//
6840	// EnableWorkDocs is a required field
6841	EnableWorkDocs *bool `type:"boolean" required:"true"`
6842
6843	// The identifiers of the subnets for your virtual private cloud (VPC). Make
6844	// sure that the subnets are in supported Availability Zones. The subnets must
6845	// also be in separate Availability Zones. If these conditions are not met,
6846	// you will receive an OperationNotSupportedException error.
6847	SubnetIds []*string `type:"list"`
6848
6849	// The tags associated with the directory.
6850	Tags []*Tag `type:"list"`
6851
6852	// Indicates whether your WorkSpace directory is dedicated or shared. To use
6853	// Bring Your Own License (BYOL) images, this value must be set to DEDICATED
6854	// and your AWS account must be enabled for BYOL. If your account has not been
6855	// enabled for BYOL, you will receive an InvalidParameterValuesException error.
6856	// For more information about BYOL images, see Bring Your Own Windows Desktop
6857	// Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
6858	Tenancy *string `type:"string" enum:"Tenancy"`
6859}
6860
6861// String returns the string representation
6862func (s RegisterWorkspaceDirectoryInput) String() string {
6863	return awsutil.Prettify(s)
6864}
6865
6866// GoString returns the string representation
6867func (s RegisterWorkspaceDirectoryInput) GoString() string {
6868	return s.String()
6869}
6870
6871// Validate inspects the fields of the type to determine if they are valid.
6872func (s *RegisterWorkspaceDirectoryInput) Validate() error {
6873	invalidParams := request.ErrInvalidParams{Context: "RegisterWorkspaceDirectoryInput"}
6874	if s.DirectoryId == nil {
6875		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6876	}
6877	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
6878		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
6879	}
6880	if s.EnableWorkDocs == nil {
6881		invalidParams.Add(request.NewErrParamRequired("EnableWorkDocs"))
6882	}
6883	if s.Tags != nil {
6884		for i, v := range s.Tags {
6885			if v == nil {
6886				continue
6887			}
6888			if err := v.Validate(); err != nil {
6889				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6890			}
6891		}
6892	}
6893
6894	if invalidParams.Len() > 0 {
6895		return invalidParams
6896	}
6897	return nil
6898}
6899
6900// SetDirectoryId sets the DirectoryId field's value.
6901func (s *RegisterWorkspaceDirectoryInput) SetDirectoryId(v string) *RegisterWorkspaceDirectoryInput {
6902	s.DirectoryId = &v
6903	return s
6904}
6905
6906// SetEnableSelfService sets the EnableSelfService field's value.
6907func (s *RegisterWorkspaceDirectoryInput) SetEnableSelfService(v bool) *RegisterWorkspaceDirectoryInput {
6908	s.EnableSelfService = &v
6909	return s
6910}
6911
6912// SetEnableWorkDocs sets the EnableWorkDocs field's value.
6913func (s *RegisterWorkspaceDirectoryInput) SetEnableWorkDocs(v bool) *RegisterWorkspaceDirectoryInput {
6914	s.EnableWorkDocs = &v
6915	return s
6916}
6917
6918// SetSubnetIds sets the SubnetIds field's value.
6919func (s *RegisterWorkspaceDirectoryInput) SetSubnetIds(v []*string) *RegisterWorkspaceDirectoryInput {
6920	s.SubnetIds = v
6921	return s
6922}
6923
6924// SetTags sets the Tags field's value.
6925func (s *RegisterWorkspaceDirectoryInput) SetTags(v []*Tag) *RegisterWorkspaceDirectoryInput {
6926	s.Tags = v
6927	return s
6928}
6929
6930// SetTenancy sets the Tenancy field's value.
6931func (s *RegisterWorkspaceDirectoryInput) SetTenancy(v string) *RegisterWorkspaceDirectoryInput {
6932	s.Tenancy = &v
6933	return s
6934}
6935
6936type RegisterWorkspaceDirectoryOutput struct {
6937	_ struct{} `type:"structure"`
6938}
6939
6940// String returns the string representation
6941func (s RegisterWorkspaceDirectoryOutput) String() string {
6942	return awsutil.Prettify(s)
6943}
6944
6945// GoString returns the string representation
6946func (s RegisterWorkspaceDirectoryOutput) GoString() string {
6947	return s.String()
6948}
6949
6950type RestoreWorkspaceInput struct {
6951	_ struct{} `type:"structure"`
6952
6953	// The identifier of the WorkSpace.
6954	//
6955	// WorkspaceId is a required field
6956	WorkspaceId *string `type:"string" required:"true"`
6957}
6958
6959// String returns the string representation
6960func (s RestoreWorkspaceInput) String() string {
6961	return awsutil.Prettify(s)
6962}
6963
6964// GoString returns the string representation
6965func (s RestoreWorkspaceInput) GoString() string {
6966	return s.String()
6967}
6968
6969// Validate inspects the fields of the type to determine if they are valid.
6970func (s *RestoreWorkspaceInput) Validate() error {
6971	invalidParams := request.ErrInvalidParams{Context: "RestoreWorkspaceInput"}
6972	if s.WorkspaceId == nil {
6973		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
6974	}
6975
6976	if invalidParams.Len() > 0 {
6977		return invalidParams
6978	}
6979	return nil
6980}
6981
6982// SetWorkspaceId sets the WorkspaceId field's value.
6983func (s *RestoreWorkspaceInput) SetWorkspaceId(v string) *RestoreWorkspaceInput {
6984	s.WorkspaceId = &v
6985	return s
6986}
6987
6988type RestoreWorkspaceOutput struct {
6989	_ struct{} `type:"structure"`
6990}
6991
6992// String returns the string representation
6993func (s RestoreWorkspaceOutput) String() string {
6994	return awsutil.Prettify(s)
6995}
6996
6997// GoString returns the string representation
6998func (s RestoreWorkspaceOutput) GoString() string {
6999	return s.String()
7000}
7001
7002type RevokeIpRulesInput struct {
7003	_ struct{} `type:"structure"`
7004
7005	// The identifier of the group.
7006	//
7007	// GroupId is a required field
7008	GroupId *string `type:"string" required:"true"`
7009
7010	// The rules to remove from the group.
7011	//
7012	// UserRules is a required field
7013	UserRules []*string `type:"list" required:"true"`
7014}
7015
7016// String returns the string representation
7017func (s RevokeIpRulesInput) String() string {
7018	return awsutil.Prettify(s)
7019}
7020
7021// GoString returns the string representation
7022func (s RevokeIpRulesInput) GoString() string {
7023	return s.String()
7024}
7025
7026// Validate inspects the fields of the type to determine if they are valid.
7027func (s *RevokeIpRulesInput) Validate() error {
7028	invalidParams := request.ErrInvalidParams{Context: "RevokeIpRulesInput"}
7029	if s.GroupId == nil {
7030		invalidParams.Add(request.NewErrParamRequired("GroupId"))
7031	}
7032	if s.UserRules == nil {
7033		invalidParams.Add(request.NewErrParamRequired("UserRules"))
7034	}
7035
7036	if invalidParams.Len() > 0 {
7037		return invalidParams
7038	}
7039	return nil
7040}
7041
7042// SetGroupId sets the GroupId field's value.
7043func (s *RevokeIpRulesInput) SetGroupId(v string) *RevokeIpRulesInput {
7044	s.GroupId = &v
7045	return s
7046}
7047
7048// SetUserRules sets the UserRules field's value.
7049func (s *RevokeIpRulesInput) SetUserRules(v []*string) *RevokeIpRulesInput {
7050	s.UserRules = v
7051	return s
7052}
7053
7054type RevokeIpRulesOutput struct {
7055	_ struct{} `type:"structure"`
7056}
7057
7058// String returns the string representation
7059func (s RevokeIpRulesOutput) String() string {
7060	return awsutil.Prettify(s)
7061}
7062
7063// GoString returns the string representation
7064func (s RevokeIpRulesOutput) GoString() string {
7065	return s.String()
7066}
7067
7068// Describes the root volume for a WorkSpace bundle.
7069type RootStorage struct {
7070	_ struct{} `type:"structure"`
7071
7072	// The size of the root volume.
7073	Capacity *string `min:"1" type:"string"`
7074}
7075
7076// String returns the string representation
7077func (s RootStorage) String() string {
7078	return awsutil.Prettify(s)
7079}
7080
7081// GoString returns the string representation
7082func (s RootStorage) GoString() string {
7083	return s.String()
7084}
7085
7086// SetCapacity sets the Capacity field's value.
7087func (s *RootStorage) SetCapacity(v string) *RootStorage {
7088	s.Capacity = &v
7089	return s
7090}
7091
7092// Describes the self-service permissions for a directory. For more information,
7093// see Enable Self-Service WorkSpace Management Capabilities for Your Users
7094// (https://docs.aws.amazon.com/workspaces/latest/adminguide/enable-user-self-service-workspace-management.html).
7095type SelfservicePermissions struct {
7096	_ struct{} `type:"structure"`
7097
7098	// Specifies whether users can change the compute type (bundle) for their WorkSpace.
7099	ChangeComputeType *string `type:"string" enum:"ReconnectEnum"`
7100
7101	// Specifies whether users can increase the volume size of the drives on their
7102	// WorkSpace.
7103	IncreaseVolumeSize *string `type:"string" enum:"ReconnectEnum"`
7104
7105	// Specifies whether users can rebuild the operating system of a WorkSpace to
7106	// its original state.
7107	RebuildWorkspace *string `type:"string" enum:"ReconnectEnum"`
7108
7109	// Specifies whether users can restart their WorkSpace.
7110	RestartWorkspace *string `type:"string" enum:"ReconnectEnum"`
7111
7112	// Specifies whether users can switch the running mode of their WorkSpace.
7113	SwitchRunningMode *string `type:"string" enum:"ReconnectEnum"`
7114}
7115
7116// String returns the string representation
7117func (s SelfservicePermissions) String() string {
7118	return awsutil.Prettify(s)
7119}
7120
7121// GoString returns the string representation
7122func (s SelfservicePermissions) GoString() string {
7123	return s.String()
7124}
7125
7126// SetChangeComputeType sets the ChangeComputeType field's value.
7127func (s *SelfservicePermissions) SetChangeComputeType(v string) *SelfservicePermissions {
7128	s.ChangeComputeType = &v
7129	return s
7130}
7131
7132// SetIncreaseVolumeSize sets the IncreaseVolumeSize field's value.
7133func (s *SelfservicePermissions) SetIncreaseVolumeSize(v string) *SelfservicePermissions {
7134	s.IncreaseVolumeSize = &v
7135	return s
7136}
7137
7138// SetRebuildWorkspace sets the RebuildWorkspace field's value.
7139func (s *SelfservicePermissions) SetRebuildWorkspace(v string) *SelfservicePermissions {
7140	s.RebuildWorkspace = &v
7141	return s
7142}
7143
7144// SetRestartWorkspace sets the RestartWorkspace field's value.
7145func (s *SelfservicePermissions) SetRestartWorkspace(v string) *SelfservicePermissions {
7146	s.RestartWorkspace = &v
7147	return s
7148}
7149
7150// SetSwitchRunningMode sets the SwitchRunningMode field's value.
7151func (s *SelfservicePermissions) SetSwitchRunningMode(v string) *SelfservicePermissions {
7152	s.SwitchRunningMode = &v
7153	return s
7154}
7155
7156// Describes a snapshot.
7157type Snapshot struct {
7158	_ struct{} `type:"structure"`
7159
7160	// The time when the snapshot was created.
7161	SnapshotTime *time.Time `type:"timestamp"`
7162}
7163
7164// String returns the string representation
7165func (s Snapshot) String() string {
7166	return awsutil.Prettify(s)
7167}
7168
7169// GoString returns the string representation
7170func (s Snapshot) GoString() string {
7171	return s.String()
7172}
7173
7174// SetSnapshotTime sets the SnapshotTime field's value.
7175func (s *Snapshot) SetSnapshotTime(v time.Time) *Snapshot {
7176	s.SnapshotTime = &v
7177	return s
7178}
7179
7180// Information used to start a WorkSpace.
7181type StartRequest struct {
7182	_ struct{} `type:"structure"`
7183
7184	// The identifier of the WorkSpace.
7185	WorkspaceId *string `type:"string"`
7186}
7187
7188// String returns the string representation
7189func (s StartRequest) String() string {
7190	return awsutil.Prettify(s)
7191}
7192
7193// GoString returns the string representation
7194func (s StartRequest) GoString() string {
7195	return s.String()
7196}
7197
7198// SetWorkspaceId sets the WorkspaceId field's value.
7199func (s *StartRequest) SetWorkspaceId(v string) *StartRequest {
7200	s.WorkspaceId = &v
7201	return s
7202}
7203
7204type StartWorkspacesInput struct {
7205	_ struct{} `type:"structure"`
7206
7207	// The WorkSpaces to start. You can specify up to 25 WorkSpaces.
7208	//
7209	// StartWorkspaceRequests is a required field
7210	StartWorkspaceRequests []*StartRequest `min:"1" type:"list" required:"true"`
7211}
7212
7213// String returns the string representation
7214func (s StartWorkspacesInput) String() string {
7215	return awsutil.Prettify(s)
7216}
7217
7218// GoString returns the string representation
7219func (s StartWorkspacesInput) GoString() string {
7220	return s.String()
7221}
7222
7223// Validate inspects the fields of the type to determine if they are valid.
7224func (s *StartWorkspacesInput) Validate() error {
7225	invalidParams := request.ErrInvalidParams{Context: "StartWorkspacesInput"}
7226	if s.StartWorkspaceRequests == nil {
7227		invalidParams.Add(request.NewErrParamRequired("StartWorkspaceRequests"))
7228	}
7229	if s.StartWorkspaceRequests != nil && len(s.StartWorkspaceRequests) < 1 {
7230		invalidParams.Add(request.NewErrParamMinLen("StartWorkspaceRequests", 1))
7231	}
7232
7233	if invalidParams.Len() > 0 {
7234		return invalidParams
7235	}
7236	return nil
7237}
7238
7239// SetStartWorkspaceRequests sets the StartWorkspaceRequests field's value.
7240func (s *StartWorkspacesInput) SetStartWorkspaceRequests(v []*StartRequest) *StartWorkspacesInput {
7241	s.StartWorkspaceRequests = v
7242	return s
7243}
7244
7245type StartWorkspacesOutput struct {
7246	_ struct{} `type:"structure"`
7247
7248	// Information about the WorkSpaces that could not be started.
7249	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
7250}
7251
7252// String returns the string representation
7253func (s StartWorkspacesOutput) String() string {
7254	return awsutil.Prettify(s)
7255}
7256
7257// GoString returns the string representation
7258func (s StartWorkspacesOutput) GoString() string {
7259	return s.String()
7260}
7261
7262// SetFailedRequests sets the FailedRequests field's value.
7263func (s *StartWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *StartWorkspacesOutput {
7264	s.FailedRequests = v
7265	return s
7266}
7267
7268// Describes the information used to stop a WorkSpace.
7269type StopRequest struct {
7270	_ struct{} `type:"structure"`
7271
7272	// The identifier of the WorkSpace.
7273	WorkspaceId *string `type:"string"`
7274}
7275
7276// String returns the string representation
7277func (s StopRequest) String() string {
7278	return awsutil.Prettify(s)
7279}
7280
7281// GoString returns the string representation
7282func (s StopRequest) GoString() string {
7283	return s.String()
7284}
7285
7286// SetWorkspaceId sets the WorkspaceId field's value.
7287func (s *StopRequest) SetWorkspaceId(v string) *StopRequest {
7288	s.WorkspaceId = &v
7289	return s
7290}
7291
7292type StopWorkspacesInput struct {
7293	_ struct{} `type:"structure"`
7294
7295	// The WorkSpaces to stop. You can specify up to 25 WorkSpaces.
7296	//
7297	// StopWorkspaceRequests is a required field
7298	StopWorkspaceRequests []*StopRequest `min:"1" type:"list" required:"true"`
7299}
7300
7301// String returns the string representation
7302func (s StopWorkspacesInput) String() string {
7303	return awsutil.Prettify(s)
7304}
7305
7306// GoString returns the string representation
7307func (s StopWorkspacesInput) GoString() string {
7308	return s.String()
7309}
7310
7311// Validate inspects the fields of the type to determine if they are valid.
7312func (s *StopWorkspacesInput) Validate() error {
7313	invalidParams := request.ErrInvalidParams{Context: "StopWorkspacesInput"}
7314	if s.StopWorkspaceRequests == nil {
7315		invalidParams.Add(request.NewErrParamRequired("StopWorkspaceRequests"))
7316	}
7317	if s.StopWorkspaceRequests != nil && len(s.StopWorkspaceRequests) < 1 {
7318		invalidParams.Add(request.NewErrParamMinLen("StopWorkspaceRequests", 1))
7319	}
7320
7321	if invalidParams.Len() > 0 {
7322		return invalidParams
7323	}
7324	return nil
7325}
7326
7327// SetStopWorkspaceRequests sets the StopWorkspaceRequests field's value.
7328func (s *StopWorkspacesInput) SetStopWorkspaceRequests(v []*StopRequest) *StopWorkspacesInput {
7329	s.StopWorkspaceRequests = v
7330	return s
7331}
7332
7333type StopWorkspacesOutput struct {
7334	_ struct{} `type:"structure"`
7335
7336	// Information about the WorkSpaces that could not be stopped.
7337	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
7338}
7339
7340// String returns the string representation
7341func (s StopWorkspacesOutput) String() string {
7342	return awsutil.Prettify(s)
7343}
7344
7345// GoString returns the string representation
7346func (s StopWorkspacesOutput) GoString() string {
7347	return s.String()
7348}
7349
7350// SetFailedRequests sets the FailedRequests field's value.
7351func (s *StopWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *StopWorkspacesOutput {
7352	s.FailedRequests = v
7353	return s
7354}
7355
7356// Describes a tag.
7357type Tag struct {
7358	_ struct{} `type:"structure"`
7359
7360	// The key of the tag.
7361	//
7362	// Key is a required field
7363	Key *string `min:"1" type:"string" required:"true"`
7364
7365	// The value of the tag.
7366	Value *string `type:"string"`
7367}
7368
7369// String returns the string representation
7370func (s Tag) String() string {
7371	return awsutil.Prettify(s)
7372}
7373
7374// GoString returns the string representation
7375func (s Tag) GoString() string {
7376	return s.String()
7377}
7378
7379// Validate inspects the fields of the type to determine if they are valid.
7380func (s *Tag) Validate() error {
7381	invalidParams := request.ErrInvalidParams{Context: "Tag"}
7382	if s.Key == nil {
7383		invalidParams.Add(request.NewErrParamRequired("Key"))
7384	}
7385	if s.Key != nil && len(*s.Key) < 1 {
7386		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
7387	}
7388
7389	if invalidParams.Len() > 0 {
7390		return invalidParams
7391	}
7392	return nil
7393}
7394
7395// SetKey sets the Key field's value.
7396func (s *Tag) SetKey(v string) *Tag {
7397	s.Key = &v
7398	return s
7399}
7400
7401// SetValue sets the Value field's value.
7402func (s *Tag) SetValue(v string) *Tag {
7403	s.Value = &v
7404	return s
7405}
7406
7407// Describes the information used to terminate a WorkSpace.
7408type TerminateRequest struct {
7409	_ struct{} `type:"structure"`
7410
7411	// The identifier of the WorkSpace.
7412	//
7413	// WorkspaceId is a required field
7414	WorkspaceId *string `type:"string" required:"true"`
7415}
7416
7417// String returns the string representation
7418func (s TerminateRequest) String() string {
7419	return awsutil.Prettify(s)
7420}
7421
7422// GoString returns the string representation
7423func (s TerminateRequest) GoString() string {
7424	return s.String()
7425}
7426
7427// Validate inspects the fields of the type to determine if they are valid.
7428func (s *TerminateRequest) Validate() error {
7429	invalidParams := request.ErrInvalidParams{Context: "TerminateRequest"}
7430	if s.WorkspaceId == nil {
7431		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
7432	}
7433
7434	if invalidParams.Len() > 0 {
7435		return invalidParams
7436	}
7437	return nil
7438}
7439
7440// SetWorkspaceId sets the WorkspaceId field's value.
7441func (s *TerminateRequest) SetWorkspaceId(v string) *TerminateRequest {
7442	s.WorkspaceId = &v
7443	return s
7444}
7445
7446type TerminateWorkspacesInput struct {
7447	_ struct{} `type:"structure"`
7448
7449	// The WorkSpaces to terminate. You can specify up to 25 WorkSpaces.
7450	//
7451	// TerminateWorkspaceRequests is a required field
7452	TerminateWorkspaceRequests []*TerminateRequest `min:"1" type:"list" required:"true"`
7453}
7454
7455// String returns the string representation
7456func (s TerminateWorkspacesInput) String() string {
7457	return awsutil.Prettify(s)
7458}
7459
7460// GoString returns the string representation
7461func (s TerminateWorkspacesInput) GoString() string {
7462	return s.String()
7463}
7464
7465// Validate inspects the fields of the type to determine if they are valid.
7466func (s *TerminateWorkspacesInput) Validate() error {
7467	invalidParams := request.ErrInvalidParams{Context: "TerminateWorkspacesInput"}
7468	if s.TerminateWorkspaceRequests == nil {
7469		invalidParams.Add(request.NewErrParamRequired("TerminateWorkspaceRequests"))
7470	}
7471	if s.TerminateWorkspaceRequests != nil && len(s.TerminateWorkspaceRequests) < 1 {
7472		invalidParams.Add(request.NewErrParamMinLen("TerminateWorkspaceRequests", 1))
7473	}
7474	if s.TerminateWorkspaceRequests != nil {
7475		for i, v := range s.TerminateWorkspaceRequests {
7476			if v == nil {
7477				continue
7478			}
7479			if err := v.Validate(); err != nil {
7480				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TerminateWorkspaceRequests", i), err.(request.ErrInvalidParams))
7481			}
7482		}
7483	}
7484
7485	if invalidParams.Len() > 0 {
7486		return invalidParams
7487	}
7488	return nil
7489}
7490
7491// SetTerminateWorkspaceRequests sets the TerminateWorkspaceRequests field's value.
7492func (s *TerminateWorkspacesInput) SetTerminateWorkspaceRequests(v []*TerminateRequest) *TerminateWorkspacesInput {
7493	s.TerminateWorkspaceRequests = v
7494	return s
7495}
7496
7497type TerminateWorkspacesOutput struct {
7498	_ struct{} `type:"structure"`
7499
7500	// Information about the WorkSpaces that could not be terminated.
7501	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
7502}
7503
7504// String returns the string representation
7505func (s TerminateWorkspacesOutput) String() string {
7506	return awsutil.Prettify(s)
7507}
7508
7509// GoString returns the string representation
7510func (s TerminateWorkspacesOutput) GoString() string {
7511	return s.String()
7512}
7513
7514// SetFailedRequests sets the FailedRequests field's value.
7515func (s *TerminateWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *TerminateWorkspacesOutput {
7516	s.FailedRequests = v
7517	return s
7518}
7519
7520type UpdateRulesOfIpGroupInput struct {
7521	_ struct{} `type:"structure"`
7522
7523	// The identifier of the group.
7524	//
7525	// GroupId is a required field
7526	GroupId *string `type:"string" required:"true"`
7527
7528	// One or more rules.
7529	//
7530	// UserRules is a required field
7531	UserRules []*IpRuleItem `type:"list" required:"true"`
7532}
7533
7534// String returns the string representation
7535func (s UpdateRulesOfIpGroupInput) String() string {
7536	return awsutil.Prettify(s)
7537}
7538
7539// GoString returns the string representation
7540func (s UpdateRulesOfIpGroupInput) GoString() string {
7541	return s.String()
7542}
7543
7544// Validate inspects the fields of the type to determine if they are valid.
7545func (s *UpdateRulesOfIpGroupInput) Validate() error {
7546	invalidParams := request.ErrInvalidParams{Context: "UpdateRulesOfIpGroupInput"}
7547	if s.GroupId == nil {
7548		invalidParams.Add(request.NewErrParamRequired("GroupId"))
7549	}
7550	if s.UserRules == nil {
7551		invalidParams.Add(request.NewErrParamRequired("UserRules"))
7552	}
7553
7554	if invalidParams.Len() > 0 {
7555		return invalidParams
7556	}
7557	return nil
7558}
7559
7560// SetGroupId sets the GroupId field's value.
7561func (s *UpdateRulesOfIpGroupInput) SetGroupId(v string) *UpdateRulesOfIpGroupInput {
7562	s.GroupId = &v
7563	return s
7564}
7565
7566// SetUserRules sets the UserRules field's value.
7567func (s *UpdateRulesOfIpGroupInput) SetUserRules(v []*IpRuleItem) *UpdateRulesOfIpGroupInput {
7568	s.UserRules = v
7569	return s
7570}
7571
7572type UpdateRulesOfIpGroupOutput struct {
7573	_ struct{} `type:"structure"`
7574}
7575
7576// String returns the string representation
7577func (s UpdateRulesOfIpGroupOutput) String() string {
7578	return awsutil.Prettify(s)
7579}
7580
7581// GoString returns the string representation
7582func (s UpdateRulesOfIpGroupOutput) GoString() string {
7583	return s.String()
7584}
7585
7586// Describes the user storage for a WorkSpace bundle.
7587type UserStorage struct {
7588	_ struct{} `type:"structure"`
7589
7590	// The size of the user storage.
7591	Capacity *string `min:"1" type:"string"`
7592}
7593
7594// String returns the string representation
7595func (s UserStorage) String() string {
7596	return awsutil.Prettify(s)
7597}
7598
7599// GoString returns the string representation
7600func (s UserStorage) GoString() string {
7601	return s.String()
7602}
7603
7604// SetCapacity sets the Capacity field's value.
7605func (s *UserStorage) SetCapacity(v string) *UserStorage {
7606	s.Capacity = &v
7607	return s
7608}
7609
7610// Describes a WorkSpace.
7611type Workspace struct {
7612	_ struct{} `type:"structure"`
7613
7614	// The identifier of the bundle used to create the WorkSpace.
7615	BundleId *string `type:"string"`
7616
7617	// The name of the WorkSpace, as seen by the operating system.
7618	ComputerName *string `type:"string"`
7619
7620	// The identifier of the AWS Directory Service directory for the WorkSpace.
7621	DirectoryId *string `min:"10" type:"string"`
7622
7623	// The error code that is returned if the WorkSpace cannot be created.
7624	ErrorCode *string `type:"string"`
7625
7626	// The text of the error message that is returned if the WorkSpace cannot be
7627	// created.
7628	ErrorMessage *string `type:"string"`
7629
7630	// The IP address of the WorkSpace.
7631	IpAddress *string `type:"string"`
7632
7633	// The modification states of the WorkSpace.
7634	ModificationStates []*ModificationState `type:"list"`
7635
7636	// Indicates whether the data stored on the root volume is encrypted.
7637	RootVolumeEncryptionEnabled *bool `type:"boolean"`
7638
7639	// The operational state of the WorkSpace.
7640	State *string `type:"string" enum:"WorkspaceState"`
7641
7642	// The identifier of the subnet for the WorkSpace.
7643	SubnetId *string `min:"15" type:"string"`
7644
7645	// The user for the WorkSpace.
7646	UserName *string `min:"1" type:"string"`
7647
7648	// Indicates whether the data stored on the user volume is encrypted.
7649	UserVolumeEncryptionEnabled *bool `type:"boolean"`
7650
7651	// The KMS key used to encrypt data stored on your WorkSpace.
7652	VolumeEncryptionKey *string `type:"string"`
7653
7654	// The identifier of the WorkSpace.
7655	WorkspaceId *string `type:"string"`
7656
7657	// The properties of the WorkSpace.
7658	WorkspaceProperties *WorkspaceProperties `type:"structure"`
7659}
7660
7661// String returns the string representation
7662func (s Workspace) String() string {
7663	return awsutil.Prettify(s)
7664}
7665
7666// GoString returns the string representation
7667func (s Workspace) GoString() string {
7668	return s.String()
7669}
7670
7671// SetBundleId sets the BundleId field's value.
7672func (s *Workspace) SetBundleId(v string) *Workspace {
7673	s.BundleId = &v
7674	return s
7675}
7676
7677// SetComputerName sets the ComputerName field's value.
7678func (s *Workspace) SetComputerName(v string) *Workspace {
7679	s.ComputerName = &v
7680	return s
7681}
7682
7683// SetDirectoryId sets the DirectoryId field's value.
7684func (s *Workspace) SetDirectoryId(v string) *Workspace {
7685	s.DirectoryId = &v
7686	return s
7687}
7688
7689// SetErrorCode sets the ErrorCode field's value.
7690func (s *Workspace) SetErrorCode(v string) *Workspace {
7691	s.ErrorCode = &v
7692	return s
7693}
7694
7695// SetErrorMessage sets the ErrorMessage field's value.
7696func (s *Workspace) SetErrorMessage(v string) *Workspace {
7697	s.ErrorMessage = &v
7698	return s
7699}
7700
7701// SetIpAddress sets the IpAddress field's value.
7702func (s *Workspace) SetIpAddress(v string) *Workspace {
7703	s.IpAddress = &v
7704	return s
7705}
7706
7707// SetModificationStates sets the ModificationStates field's value.
7708func (s *Workspace) SetModificationStates(v []*ModificationState) *Workspace {
7709	s.ModificationStates = v
7710	return s
7711}
7712
7713// SetRootVolumeEncryptionEnabled sets the RootVolumeEncryptionEnabled field's value.
7714func (s *Workspace) SetRootVolumeEncryptionEnabled(v bool) *Workspace {
7715	s.RootVolumeEncryptionEnabled = &v
7716	return s
7717}
7718
7719// SetState sets the State field's value.
7720func (s *Workspace) SetState(v string) *Workspace {
7721	s.State = &v
7722	return s
7723}
7724
7725// SetSubnetId sets the SubnetId field's value.
7726func (s *Workspace) SetSubnetId(v string) *Workspace {
7727	s.SubnetId = &v
7728	return s
7729}
7730
7731// SetUserName sets the UserName field's value.
7732func (s *Workspace) SetUserName(v string) *Workspace {
7733	s.UserName = &v
7734	return s
7735}
7736
7737// SetUserVolumeEncryptionEnabled sets the UserVolumeEncryptionEnabled field's value.
7738func (s *Workspace) SetUserVolumeEncryptionEnabled(v bool) *Workspace {
7739	s.UserVolumeEncryptionEnabled = &v
7740	return s
7741}
7742
7743// SetVolumeEncryptionKey sets the VolumeEncryptionKey field's value.
7744func (s *Workspace) SetVolumeEncryptionKey(v string) *Workspace {
7745	s.VolumeEncryptionKey = &v
7746	return s
7747}
7748
7749// SetWorkspaceId sets the WorkspaceId field's value.
7750func (s *Workspace) SetWorkspaceId(v string) *Workspace {
7751	s.WorkspaceId = &v
7752	return s
7753}
7754
7755// SetWorkspaceProperties sets the WorkspaceProperties field's value.
7756func (s *Workspace) SetWorkspaceProperties(v *WorkspaceProperties) *Workspace {
7757	s.WorkspaceProperties = v
7758	return s
7759}
7760
7761// The device types and operating systems that can be used to access a WorkSpace.
7762// For more information, see Amazon WorkSpaces Client Network Requirements (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspaces-network-requirements.html).
7763type WorkspaceAccessProperties struct {
7764	_ struct{} `type:"structure"`
7765
7766	// Indicates whether users can use Android devices to access their WorkSpaces.
7767	DeviceTypeAndroid *string `type:"string" enum:"AccessPropertyValue"`
7768
7769	// Indicates whether users can use Chromebooks to access their WorkSpaces.
7770	DeviceTypeChromeOs *string `type:"string" enum:"AccessPropertyValue"`
7771
7772	// Indicates whether users can use iOS devices to access their WorkSpaces.
7773	DeviceTypeIos *string `type:"string" enum:"AccessPropertyValue"`
7774
7775	// Indicates whether users can use macOS clients to access their WorkSpaces.
7776	// To restrict WorkSpaces access to trusted devices (also known as managed devices)
7777	// with valid certificates, specify a value of TRUST. For more information,
7778	// see Restrict WorkSpaces Access to Trusted Devices (https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html).
7779	DeviceTypeOsx *string `type:"string" enum:"AccessPropertyValue"`
7780
7781	// Indicates whether users can access their WorkSpaces through a web browser.
7782	DeviceTypeWeb *string `type:"string" enum:"AccessPropertyValue"`
7783
7784	// Indicates whether users can use Windows clients to access their WorkSpaces.
7785	// To restrict WorkSpaces access to trusted devices (also known as managed devices)
7786	// with valid certificates, specify a value of TRUST. For more information,
7787	// see Restrict WorkSpaces Access to Trusted Devices (https://docs.aws.amazon.com/workspaces/latest/adminguide/trusted-devices.html).
7788	DeviceTypeWindows *string `type:"string" enum:"AccessPropertyValue"`
7789
7790	// Indicates whether users can use zero client devices to access their WorkSpaces.
7791	DeviceTypeZeroClient *string `type:"string" enum:"AccessPropertyValue"`
7792}
7793
7794// String returns the string representation
7795func (s WorkspaceAccessProperties) String() string {
7796	return awsutil.Prettify(s)
7797}
7798
7799// GoString returns the string representation
7800func (s WorkspaceAccessProperties) GoString() string {
7801	return s.String()
7802}
7803
7804// SetDeviceTypeAndroid sets the DeviceTypeAndroid field's value.
7805func (s *WorkspaceAccessProperties) SetDeviceTypeAndroid(v string) *WorkspaceAccessProperties {
7806	s.DeviceTypeAndroid = &v
7807	return s
7808}
7809
7810// SetDeviceTypeChromeOs sets the DeviceTypeChromeOs field's value.
7811func (s *WorkspaceAccessProperties) SetDeviceTypeChromeOs(v string) *WorkspaceAccessProperties {
7812	s.DeviceTypeChromeOs = &v
7813	return s
7814}
7815
7816// SetDeviceTypeIos sets the DeviceTypeIos field's value.
7817func (s *WorkspaceAccessProperties) SetDeviceTypeIos(v string) *WorkspaceAccessProperties {
7818	s.DeviceTypeIos = &v
7819	return s
7820}
7821
7822// SetDeviceTypeOsx sets the DeviceTypeOsx field's value.
7823func (s *WorkspaceAccessProperties) SetDeviceTypeOsx(v string) *WorkspaceAccessProperties {
7824	s.DeviceTypeOsx = &v
7825	return s
7826}
7827
7828// SetDeviceTypeWeb sets the DeviceTypeWeb field's value.
7829func (s *WorkspaceAccessProperties) SetDeviceTypeWeb(v string) *WorkspaceAccessProperties {
7830	s.DeviceTypeWeb = &v
7831	return s
7832}
7833
7834// SetDeviceTypeWindows sets the DeviceTypeWindows field's value.
7835func (s *WorkspaceAccessProperties) SetDeviceTypeWindows(v string) *WorkspaceAccessProperties {
7836	s.DeviceTypeWindows = &v
7837	return s
7838}
7839
7840// SetDeviceTypeZeroClient sets the DeviceTypeZeroClient field's value.
7841func (s *WorkspaceAccessProperties) SetDeviceTypeZeroClient(v string) *WorkspaceAccessProperties {
7842	s.DeviceTypeZeroClient = &v
7843	return s
7844}
7845
7846// Describes a WorkSpace bundle.
7847type WorkspaceBundle struct {
7848	_ struct{} `type:"structure"`
7849
7850	// The bundle identifier.
7851	BundleId *string `type:"string"`
7852
7853	// The compute type. For more information, see Amazon WorkSpaces Bundles (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
7854	ComputeType *ComputeType `type:"structure"`
7855
7856	// A description.
7857	Description *string `type:"string"`
7858
7859	// The image identifier of the bundle.
7860	ImageId *string `type:"string"`
7861
7862	// The last time that the bundle was updated.
7863	LastUpdatedTime *time.Time `type:"timestamp"`
7864
7865	// The name of the bundle.
7866	Name *string `min:"1" type:"string"`
7867
7868	// The owner of the bundle. This is the account identifier of the owner, or
7869	// AMAZON if the bundle is provided by AWS.
7870	Owner *string `type:"string"`
7871
7872	// The size of the root volume.
7873	RootStorage *RootStorage `type:"structure"`
7874
7875	// The size of the user storage.
7876	UserStorage *UserStorage `type:"structure"`
7877}
7878
7879// String returns the string representation
7880func (s WorkspaceBundle) String() string {
7881	return awsutil.Prettify(s)
7882}
7883
7884// GoString returns the string representation
7885func (s WorkspaceBundle) GoString() string {
7886	return s.String()
7887}
7888
7889// SetBundleId sets the BundleId field's value.
7890func (s *WorkspaceBundle) SetBundleId(v string) *WorkspaceBundle {
7891	s.BundleId = &v
7892	return s
7893}
7894
7895// SetComputeType sets the ComputeType field's value.
7896func (s *WorkspaceBundle) SetComputeType(v *ComputeType) *WorkspaceBundle {
7897	s.ComputeType = v
7898	return s
7899}
7900
7901// SetDescription sets the Description field's value.
7902func (s *WorkspaceBundle) SetDescription(v string) *WorkspaceBundle {
7903	s.Description = &v
7904	return s
7905}
7906
7907// SetImageId sets the ImageId field's value.
7908func (s *WorkspaceBundle) SetImageId(v string) *WorkspaceBundle {
7909	s.ImageId = &v
7910	return s
7911}
7912
7913// SetLastUpdatedTime sets the LastUpdatedTime field's value.
7914func (s *WorkspaceBundle) SetLastUpdatedTime(v time.Time) *WorkspaceBundle {
7915	s.LastUpdatedTime = &v
7916	return s
7917}
7918
7919// SetName sets the Name field's value.
7920func (s *WorkspaceBundle) SetName(v string) *WorkspaceBundle {
7921	s.Name = &v
7922	return s
7923}
7924
7925// SetOwner sets the Owner field's value.
7926func (s *WorkspaceBundle) SetOwner(v string) *WorkspaceBundle {
7927	s.Owner = &v
7928	return s
7929}
7930
7931// SetRootStorage sets the RootStorage field's value.
7932func (s *WorkspaceBundle) SetRootStorage(v *RootStorage) *WorkspaceBundle {
7933	s.RootStorage = v
7934	return s
7935}
7936
7937// SetUserStorage sets the UserStorage field's value.
7938func (s *WorkspaceBundle) SetUserStorage(v *UserStorage) *WorkspaceBundle {
7939	s.UserStorage = v
7940	return s
7941}
7942
7943// Describes the connection status of a WorkSpace.
7944type WorkspaceConnectionStatus struct {
7945	_ struct{} `type:"structure"`
7946
7947	// The connection state of the WorkSpace. The connection state is unknown if
7948	// the WorkSpace is stopped.
7949	ConnectionState *string `type:"string" enum:"ConnectionState"`
7950
7951	// The timestamp of the connection status check.
7952	ConnectionStateCheckTimestamp *time.Time `type:"timestamp"`
7953
7954	// The timestamp of the last known user connection.
7955	LastKnownUserConnectionTimestamp *time.Time `type:"timestamp"`
7956
7957	// The identifier of the WorkSpace.
7958	WorkspaceId *string `type:"string"`
7959}
7960
7961// String returns the string representation
7962func (s WorkspaceConnectionStatus) String() string {
7963	return awsutil.Prettify(s)
7964}
7965
7966// GoString returns the string representation
7967func (s WorkspaceConnectionStatus) GoString() string {
7968	return s.String()
7969}
7970
7971// SetConnectionState sets the ConnectionState field's value.
7972func (s *WorkspaceConnectionStatus) SetConnectionState(v string) *WorkspaceConnectionStatus {
7973	s.ConnectionState = &v
7974	return s
7975}
7976
7977// SetConnectionStateCheckTimestamp sets the ConnectionStateCheckTimestamp field's value.
7978func (s *WorkspaceConnectionStatus) SetConnectionStateCheckTimestamp(v time.Time) *WorkspaceConnectionStatus {
7979	s.ConnectionStateCheckTimestamp = &v
7980	return s
7981}
7982
7983// SetLastKnownUserConnectionTimestamp sets the LastKnownUserConnectionTimestamp field's value.
7984func (s *WorkspaceConnectionStatus) SetLastKnownUserConnectionTimestamp(v time.Time) *WorkspaceConnectionStatus {
7985	s.LastKnownUserConnectionTimestamp = &v
7986	return s
7987}
7988
7989// SetWorkspaceId sets the WorkspaceId field's value.
7990func (s *WorkspaceConnectionStatus) SetWorkspaceId(v string) *WorkspaceConnectionStatus {
7991	s.WorkspaceId = &v
7992	return s
7993}
7994
7995// Describes the default properties that are used for creating WorkSpaces. For
7996// more information, see Update Directory Details for Your WorkSpaces (https://docs.aws.amazon.com/workspaces/latest/adminguide/update-directory-details.html).
7997type WorkspaceCreationProperties struct {
7998	_ struct{} `type:"structure"`
7999
8000	// The identifier of your custom security group.
8001	CustomSecurityGroupId *string `min:"11" type:"string"`
8002
8003	// The default organizational unit (OU) for your WorkSpace directories.
8004	DefaultOu *string `type:"string"`
8005
8006	// Indicates whether internet access is enabled for your WorkSpaces.
8007	EnableInternetAccess *bool `type:"boolean"`
8008
8009	// Indicates whether maintenance mode is enabled for your WorkSpaces. For more
8010	// information, see WorkSpace Maintenance (https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).
8011	EnableMaintenanceMode *bool `type:"boolean"`
8012
8013	// Indicates whether users are local administrators of their WorkSpaces.
8014	UserEnabledAsLocalAdministrator *bool `type:"boolean"`
8015}
8016
8017// String returns the string representation
8018func (s WorkspaceCreationProperties) String() string {
8019	return awsutil.Prettify(s)
8020}
8021
8022// GoString returns the string representation
8023func (s WorkspaceCreationProperties) GoString() string {
8024	return s.String()
8025}
8026
8027// Validate inspects the fields of the type to determine if they are valid.
8028func (s *WorkspaceCreationProperties) Validate() error {
8029	invalidParams := request.ErrInvalidParams{Context: "WorkspaceCreationProperties"}
8030	if s.CustomSecurityGroupId != nil && len(*s.CustomSecurityGroupId) < 11 {
8031		invalidParams.Add(request.NewErrParamMinLen("CustomSecurityGroupId", 11))
8032	}
8033
8034	if invalidParams.Len() > 0 {
8035		return invalidParams
8036	}
8037	return nil
8038}
8039
8040// SetCustomSecurityGroupId sets the CustomSecurityGroupId field's value.
8041func (s *WorkspaceCreationProperties) SetCustomSecurityGroupId(v string) *WorkspaceCreationProperties {
8042	s.CustomSecurityGroupId = &v
8043	return s
8044}
8045
8046// SetDefaultOu sets the DefaultOu field's value.
8047func (s *WorkspaceCreationProperties) SetDefaultOu(v string) *WorkspaceCreationProperties {
8048	s.DefaultOu = &v
8049	return s
8050}
8051
8052// SetEnableInternetAccess sets the EnableInternetAccess field's value.
8053func (s *WorkspaceCreationProperties) SetEnableInternetAccess(v bool) *WorkspaceCreationProperties {
8054	s.EnableInternetAccess = &v
8055	return s
8056}
8057
8058// SetEnableMaintenanceMode sets the EnableMaintenanceMode field's value.
8059func (s *WorkspaceCreationProperties) SetEnableMaintenanceMode(v bool) *WorkspaceCreationProperties {
8060	s.EnableMaintenanceMode = &v
8061	return s
8062}
8063
8064// SetUserEnabledAsLocalAdministrator sets the UserEnabledAsLocalAdministrator field's value.
8065func (s *WorkspaceCreationProperties) SetUserEnabledAsLocalAdministrator(v bool) *WorkspaceCreationProperties {
8066	s.UserEnabledAsLocalAdministrator = &v
8067	return s
8068}
8069
8070// Describes a directory that is used with Amazon WorkSpaces.
8071type WorkspaceDirectory struct {
8072	_ struct{} `type:"structure"`
8073
8074	// The directory alias.
8075	Alias *string `type:"string"`
8076
8077	// The user name for the service account.
8078	CustomerUserName *string `min:"1" type:"string"`
8079
8080	// The directory identifier.
8081	DirectoryId *string `min:"10" type:"string"`
8082
8083	// The name of the directory.
8084	DirectoryName *string `type:"string"`
8085
8086	// The directory type.
8087	DirectoryType *string `type:"string" enum:"WorkspaceDirectoryType"`
8088
8089	// The IP addresses of the DNS servers for the directory.
8090	DnsIpAddresses []*string `type:"list"`
8091
8092	// The identifier of the IAM role. This is the role that allows Amazon WorkSpaces
8093	// to make calls to other services, such as Amazon EC2, on your behalf.
8094	IamRoleId *string `type:"string"`
8095
8096	// The identifiers of the IP access control groups associated with the directory.
8097	IpGroupIds []*string `locationName:"ipGroupIds" type:"list"`
8098
8099	// The registration code for the directory. This is the code that users enter
8100	// in their Amazon WorkSpaces client application to connect to the directory.
8101	RegistrationCode *string `min:"1" type:"string"`
8102
8103	// The default self-service permissions for WorkSpaces in the directory.
8104	SelfservicePermissions *SelfservicePermissions `type:"structure"`
8105
8106	// The state of the directory's registration with Amazon WorkSpaces.
8107	State *string `type:"string" enum:"WorkspaceDirectoryState"`
8108
8109	// The identifiers of the subnets used with the directory.
8110	SubnetIds []*string `type:"list"`
8111
8112	// Specifies whether the directory is dedicated or shared. To use Bring Your
8113	// Own License (BYOL), this value must be set to DEDICATED. For more information,
8114	// see Bring Your Own Windows Desktop Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
8115	Tenancy *string `type:"string" enum:"Tenancy"`
8116
8117	// The devices and operating systems that users can use to access Workspaces.
8118	WorkspaceAccessProperties *WorkspaceAccessProperties `type:"structure"`
8119
8120	// The default creation properties for all WorkSpaces in the directory.
8121	WorkspaceCreationProperties *DefaultWorkspaceCreationProperties `type:"structure"`
8122
8123	// The identifier of the security group that is assigned to new WorkSpaces.
8124	WorkspaceSecurityGroupId *string `min:"11" type:"string"`
8125}
8126
8127// String returns the string representation
8128func (s WorkspaceDirectory) String() string {
8129	return awsutil.Prettify(s)
8130}
8131
8132// GoString returns the string representation
8133func (s WorkspaceDirectory) GoString() string {
8134	return s.String()
8135}
8136
8137// SetAlias sets the Alias field's value.
8138func (s *WorkspaceDirectory) SetAlias(v string) *WorkspaceDirectory {
8139	s.Alias = &v
8140	return s
8141}
8142
8143// SetCustomerUserName sets the CustomerUserName field's value.
8144func (s *WorkspaceDirectory) SetCustomerUserName(v string) *WorkspaceDirectory {
8145	s.CustomerUserName = &v
8146	return s
8147}
8148
8149// SetDirectoryId sets the DirectoryId field's value.
8150func (s *WorkspaceDirectory) SetDirectoryId(v string) *WorkspaceDirectory {
8151	s.DirectoryId = &v
8152	return s
8153}
8154
8155// SetDirectoryName sets the DirectoryName field's value.
8156func (s *WorkspaceDirectory) SetDirectoryName(v string) *WorkspaceDirectory {
8157	s.DirectoryName = &v
8158	return s
8159}
8160
8161// SetDirectoryType sets the DirectoryType field's value.
8162func (s *WorkspaceDirectory) SetDirectoryType(v string) *WorkspaceDirectory {
8163	s.DirectoryType = &v
8164	return s
8165}
8166
8167// SetDnsIpAddresses sets the DnsIpAddresses field's value.
8168func (s *WorkspaceDirectory) SetDnsIpAddresses(v []*string) *WorkspaceDirectory {
8169	s.DnsIpAddresses = v
8170	return s
8171}
8172
8173// SetIamRoleId sets the IamRoleId field's value.
8174func (s *WorkspaceDirectory) SetIamRoleId(v string) *WorkspaceDirectory {
8175	s.IamRoleId = &v
8176	return s
8177}
8178
8179// SetIpGroupIds sets the IpGroupIds field's value.
8180func (s *WorkspaceDirectory) SetIpGroupIds(v []*string) *WorkspaceDirectory {
8181	s.IpGroupIds = v
8182	return s
8183}
8184
8185// SetRegistrationCode sets the RegistrationCode field's value.
8186func (s *WorkspaceDirectory) SetRegistrationCode(v string) *WorkspaceDirectory {
8187	s.RegistrationCode = &v
8188	return s
8189}
8190
8191// SetSelfservicePermissions sets the SelfservicePermissions field's value.
8192func (s *WorkspaceDirectory) SetSelfservicePermissions(v *SelfservicePermissions) *WorkspaceDirectory {
8193	s.SelfservicePermissions = v
8194	return s
8195}
8196
8197// SetState sets the State field's value.
8198func (s *WorkspaceDirectory) SetState(v string) *WorkspaceDirectory {
8199	s.State = &v
8200	return s
8201}
8202
8203// SetSubnetIds sets the SubnetIds field's value.
8204func (s *WorkspaceDirectory) SetSubnetIds(v []*string) *WorkspaceDirectory {
8205	s.SubnetIds = v
8206	return s
8207}
8208
8209// SetTenancy sets the Tenancy field's value.
8210func (s *WorkspaceDirectory) SetTenancy(v string) *WorkspaceDirectory {
8211	s.Tenancy = &v
8212	return s
8213}
8214
8215// SetWorkspaceAccessProperties sets the WorkspaceAccessProperties field's value.
8216func (s *WorkspaceDirectory) SetWorkspaceAccessProperties(v *WorkspaceAccessProperties) *WorkspaceDirectory {
8217	s.WorkspaceAccessProperties = v
8218	return s
8219}
8220
8221// SetWorkspaceCreationProperties sets the WorkspaceCreationProperties field's value.
8222func (s *WorkspaceDirectory) SetWorkspaceCreationProperties(v *DefaultWorkspaceCreationProperties) *WorkspaceDirectory {
8223	s.WorkspaceCreationProperties = v
8224	return s
8225}
8226
8227// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
8228func (s *WorkspaceDirectory) SetWorkspaceSecurityGroupId(v string) *WorkspaceDirectory {
8229	s.WorkspaceSecurityGroupId = &v
8230	return s
8231}
8232
8233// Describes a WorkSpace image.
8234type WorkspaceImage struct {
8235	_ struct{} `type:"structure"`
8236
8237	// The description of the image.
8238	Description *string `min:"1" type:"string"`
8239
8240	// The error code that is returned for the image.
8241	ErrorCode *string `type:"string"`
8242
8243	// The text of the error message that is returned for the image.
8244	ErrorMessage *string `type:"string"`
8245
8246	// The identifier of the image.
8247	ImageId *string `type:"string"`
8248
8249	// The name of the image.
8250	Name *string `min:"1" type:"string"`
8251
8252	// The operating system that the image is running.
8253	OperatingSystem *OperatingSystem `type:"structure"`
8254
8255	// Specifies whether the image is running on dedicated hardware. When Bring
8256	// Your Own License (BYOL) is enabled, this value is set to DEDICATED. For more
8257	// information, see Bring Your Own Windows Desktop Images (https://docs.aws.amazon.com/workspaces/latest/adminguide/byol-windows-images.html).
8258	RequiredTenancy *string `type:"string" enum:"WorkspaceImageRequiredTenancy"`
8259
8260	// The status of the image.
8261	State *string `type:"string" enum:"WorkspaceImageState"`
8262}
8263
8264// String returns the string representation
8265func (s WorkspaceImage) String() string {
8266	return awsutil.Prettify(s)
8267}
8268
8269// GoString returns the string representation
8270func (s WorkspaceImage) GoString() string {
8271	return s.String()
8272}
8273
8274// SetDescription sets the Description field's value.
8275func (s *WorkspaceImage) SetDescription(v string) *WorkspaceImage {
8276	s.Description = &v
8277	return s
8278}
8279
8280// SetErrorCode sets the ErrorCode field's value.
8281func (s *WorkspaceImage) SetErrorCode(v string) *WorkspaceImage {
8282	s.ErrorCode = &v
8283	return s
8284}
8285
8286// SetErrorMessage sets the ErrorMessage field's value.
8287func (s *WorkspaceImage) SetErrorMessage(v string) *WorkspaceImage {
8288	s.ErrorMessage = &v
8289	return s
8290}
8291
8292// SetImageId sets the ImageId field's value.
8293func (s *WorkspaceImage) SetImageId(v string) *WorkspaceImage {
8294	s.ImageId = &v
8295	return s
8296}
8297
8298// SetName sets the Name field's value.
8299func (s *WorkspaceImage) SetName(v string) *WorkspaceImage {
8300	s.Name = &v
8301	return s
8302}
8303
8304// SetOperatingSystem sets the OperatingSystem field's value.
8305func (s *WorkspaceImage) SetOperatingSystem(v *OperatingSystem) *WorkspaceImage {
8306	s.OperatingSystem = v
8307	return s
8308}
8309
8310// SetRequiredTenancy sets the RequiredTenancy field's value.
8311func (s *WorkspaceImage) SetRequiredTenancy(v string) *WorkspaceImage {
8312	s.RequiredTenancy = &v
8313	return s
8314}
8315
8316// SetState sets the State field's value.
8317func (s *WorkspaceImage) SetState(v string) *WorkspaceImage {
8318	s.State = &v
8319	return s
8320}
8321
8322// Describes a WorkSpace.
8323type WorkspaceProperties struct {
8324	_ struct{} `type:"structure"`
8325
8326	// The compute type. For more information, see Amazon WorkSpaces Bundles (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
8327	ComputeTypeName *string `type:"string" enum:"Compute"`
8328
8329	// The size of the root volume.
8330	RootVolumeSizeGib *int64 `type:"integer"`
8331
8332	// The running mode. For more information, see Manage the WorkSpace Running
8333	// Mode (https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html).
8334	RunningMode *string `type:"string" enum:"RunningMode"`
8335
8336	// The time after a user logs off when WorkSpaces are automatically stopped.
8337	// Configured in 60-minute intervals.
8338	RunningModeAutoStopTimeoutInMinutes *int64 `type:"integer"`
8339
8340	// The size of the user storage.
8341	UserVolumeSizeGib *int64 `type:"integer"`
8342}
8343
8344// String returns the string representation
8345func (s WorkspaceProperties) String() string {
8346	return awsutil.Prettify(s)
8347}
8348
8349// GoString returns the string representation
8350func (s WorkspaceProperties) GoString() string {
8351	return s.String()
8352}
8353
8354// SetComputeTypeName sets the ComputeTypeName field's value.
8355func (s *WorkspaceProperties) SetComputeTypeName(v string) *WorkspaceProperties {
8356	s.ComputeTypeName = &v
8357	return s
8358}
8359
8360// SetRootVolumeSizeGib sets the RootVolumeSizeGib field's value.
8361func (s *WorkspaceProperties) SetRootVolumeSizeGib(v int64) *WorkspaceProperties {
8362	s.RootVolumeSizeGib = &v
8363	return s
8364}
8365
8366// SetRunningMode sets the RunningMode field's value.
8367func (s *WorkspaceProperties) SetRunningMode(v string) *WorkspaceProperties {
8368	s.RunningMode = &v
8369	return s
8370}
8371
8372// SetRunningModeAutoStopTimeoutInMinutes sets the RunningModeAutoStopTimeoutInMinutes field's value.
8373func (s *WorkspaceProperties) SetRunningModeAutoStopTimeoutInMinutes(v int64) *WorkspaceProperties {
8374	s.RunningModeAutoStopTimeoutInMinutes = &v
8375	return s
8376}
8377
8378// SetUserVolumeSizeGib sets the UserVolumeSizeGib field's value.
8379func (s *WorkspaceProperties) SetUserVolumeSizeGib(v int64) *WorkspaceProperties {
8380	s.UserVolumeSizeGib = &v
8381	return s
8382}
8383
8384// Describes the information used to create a WorkSpace.
8385type WorkspaceRequest struct {
8386	_ struct{} `type:"structure"`
8387
8388	// The identifier of the bundle for the WorkSpace. You can use DescribeWorkspaceBundles
8389	// to list the available bundles.
8390	//
8391	// BundleId is a required field
8392	BundleId *string `type:"string" required:"true"`
8393
8394	// The identifier of the AWS Directory Service directory for the WorkSpace.
8395	// You can use DescribeWorkspaceDirectories to list the available directories.
8396	//
8397	// DirectoryId is a required field
8398	DirectoryId *string `min:"10" type:"string" required:"true"`
8399
8400	// Indicates whether the data stored on the root volume is encrypted.
8401	RootVolumeEncryptionEnabled *bool `type:"boolean"`
8402
8403	// The tags for the WorkSpace.
8404	Tags []*Tag `type:"list"`
8405
8406	// The user name of the user for the WorkSpace. This user name must exist in
8407	// the AWS Directory Service directory for the WorkSpace.
8408	//
8409	// UserName is a required field
8410	UserName *string `min:"1" type:"string" required:"true"`
8411
8412	// Indicates whether the data stored on the user volume is encrypted.
8413	UserVolumeEncryptionEnabled *bool `type:"boolean"`
8414
8415	// The KMS key used to encrypt data stored on your WorkSpace.
8416	VolumeEncryptionKey *string `type:"string"`
8417
8418	// The WorkSpace properties.
8419	WorkspaceProperties *WorkspaceProperties `type:"structure"`
8420}
8421
8422// String returns the string representation
8423func (s WorkspaceRequest) String() string {
8424	return awsutil.Prettify(s)
8425}
8426
8427// GoString returns the string representation
8428func (s WorkspaceRequest) GoString() string {
8429	return s.String()
8430}
8431
8432// Validate inspects the fields of the type to determine if they are valid.
8433func (s *WorkspaceRequest) Validate() error {
8434	invalidParams := request.ErrInvalidParams{Context: "WorkspaceRequest"}
8435	if s.BundleId == nil {
8436		invalidParams.Add(request.NewErrParamRequired("BundleId"))
8437	}
8438	if s.DirectoryId == nil {
8439		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
8440	}
8441	if s.DirectoryId != nil && len(*s.DirectoryId) < 10 {
8442		invalidParams.Add(request.NewErrParamMinLen("DirectoryId", 10))
8443	}
8444	if s.UserName == nil {
8445		invalidParams.Add(request.NewErrParamRequired("UserName"))
8446	}
8447	if s.UserName != nil && len(*s.UserName) < 1 {
8448		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
8449	}
8450	if s.Tags != nil {
8451		for i, v := range s.Tags {
8452			if v == nil {
8453				continue
8454			}
8455			if err := v.Validate(); err != nil {
8456				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
8457			}
8458		}
8459	}
8460
8461	if invalidParams.Len() > 0 {
8462		return invalidParams
8463	}
8464	return nil
8465}
8466
8467// SetBundleId sets the BundleId field's value.
8468func (s *WorkspaceRequest) SetBundleId(v string) *WorkspaceRequest {
8469	s.BundleId = &v
8470	return s
8471}
8472
8473// SetDirectoryId sets the DirectoryId field's value.
8474func (s *WorkspaceRequest) SetDirectoryId(v string) *WorkspaceRequest {
8475	s.DirectoryId = &v
8476	return s
8477}
8478
8479// SetRootVolumeEncryptionEnabled sets the RootVolumeEncryptionEnabled field's value.
8480func (s *WorkspaceRequest) SetRootVolumeEncryptionEnabled(v bool) *WorkspaceRequest {
8481	s.RootVolumeEncryptionEnabled = &v
8482	return s
8483}
8484
8485// SetTags sets the Tags field's value.
8486func (s *WorkspaceRequest) SetTags(v []*Tag) *WorkspaceRequest {
8487	s.Tags = v
8488	return s
8489}
8490
8491// SetUserName sets the UserName field's value.
8492func (s *WorkspaceRequest) SetUserName(v string) *WorkspaceRequest {
8493	s.UserName = &v
8494	return s
8495}
8496
8497// SetUserVolumeEncryptionEnabled sets the UserVolumeEncryptionEnabled field's value.
8498func (s *WorkspaceRequest) SetUserVolumeEncryptionEnabled(v bool) *WorkspaceRequest {
8499	s.UserVolumeEncryptionEnabled = &v
8500	return s
8501}
8502
8503// SetVolumeEncryptionKey sets the VolumeEncryptionKey field's value.
8504func (s *WorkspaceRequest) SetVolumeEncryptionKey(v string) *WorkspaceRequest {
8505	s.VolumeEncryptionKey = &v
8506	return s
8507}
8508
8509// SetWorkspaceProperties sets the WorkspaceProperties field's value.
8510func (s *WorkspaceRequest) SetWorkspaceProperties(v *WorkspaceProperties) *WorkspaceRequest {
8511	s.WorkspaceProperties = v
8512	return s
8513}
8514
8515const (
8516	// AccessPropertyValueAllow is a AccessPropertyValue enum value
8517	AccessPropertyValueAllow = "ALLOW"
8518
8519	// AccessPropertyValueDeny is a AccessPropertyValue enum value
8520	AccessPropertyValueDeny = "DENY"
8521)
8522
8523const (
8524	// ComputeValue is a Compute enum value
8525	ComputeValue = "VALUE"
8526
8527	// ComputeStandard is a Compute enum value
8528	ComputeStandard = "STANDARD"
8529
8530	// ComputePerformance is a Compute enum value
8531	ComputePerformance = "PERFORMANCE"
8532
8533	// ComputePower is a Compute enum value
8534	ComputePower = "POWER"
8535
8536	// ComputeGraphics is a Compute enum value
8537	ComputeGraphics = "GRAPHICS"
8538
8539	// ComputePowerpro is a Compute enum value
8540	ComputePowerpro = "POWERPRO"
8541
8542	// ComputeGraphicspro is a Compute enum value
8543	ComputeGraphicspro = "GRAPHICSPRO"
8544)
8545
8546const (
8547	// ConnectionStateConnected is a ConnectionState enum value
8548	ConnectionStateConnected = "CONNECTED"
8549
8550	// ConnectionStateDisconnected is a ConnectionState enum value
8551	ConnectionStateDisconnected = "DISCONNECTED"
8552
8553	// ConnectionStateUnknown is a ConnectionState enum value
8554	ConnectionStateUnknown = "UNKNOWN"
8555)
8556
8557const (
8558	// DedicatedTenancyModificationStateEnumPending is a DedicatedTenancyModificationStateEnum enum value
8559	DedicatedTenancyModificationStateEnumPending = "PENDING"
8560
8561	// DedicatedTenancyModificationStateEnumCompleted is a DedicatedTenancyModificationStateEnum enum value
8562	DedicatedTenancyModificationStateEnumCompleted = "COMPLETED"
8563
8564	// DedicatedTenancyModificationStateEnumFailed is a DedicatedTenancyModificationStateEnum enum value
8565	DedicatedTenancyModificationStateEnumFailed = "FAILED"
8566)
8567
8568const (
8569	// DedicatedTenancySupportEnumEnabled is a DedicatedTenancySupportEnum enum value
8570	DedicatedTenancySupportEnumEnabled = "ENABLED"
8571)
8572
8573const (
8574	// DedicatedTenancySupportResultEnumEnabled is a DedicatedTenancySupportResultEnum enum value
8575	DedicatedTenancySupportResultEnumEnabled = "ENABLED"
8576
8577	// DedicatedTenancySupportResultEnumDisabled is a DedicatedTenancySupportResultEnum enum value
8578	DedicatedTenancySupportResultEnumDisabled = "DISABLED"
8579)
8580
8581const (
8582	// ModificationResourceEnumRootVolume is a ModificationResourceEnum enum value
8583	ModificationResourceEnumRootVolume = "ROOT_VOLUME"
8584
8585	// ModificationResourceEnumUserVolume is a ModificationResourceEnum enum value
8586	ModificationResourceEnumUserVolume = "USER_VOLUME"
8587
8588	// ModificationResourceEnumComputeType is a ModificationResourceEnum enum value
8589	ModificationResourceEnumComputeType = "COMPUTE_TYPE"
8590)
8591
8592const (
8593	// ModificationStateEnumUpdateInitiated is a ModificationStateEnum enum value
8594	ModificationStateEnumUpdateInitiated = "UPDATE_INITIATED"
8595
8596	// ModificationStateEnumUpdateInProgress is a ModificationStateEnum enum value
8597	ModificationStateEnumUpdateInProgress = "UPDATE_IN_PROGRESS"
8598)
8599
8600const (
8601	// OperatingSystemTypeWindows is a OperatingSystemType enum value
8602	OperatingSystemTypeWindows = "WINDOWS"
8603
8604	// OperatingSystemTypeLinux is a OperatingSystemType enum value
8605	OperatingSystemTypeLinux = "LINUX"
8606)
8607
8608const (
8609	// ReconnectEnumEnabled is a ReconnectEnum enum value
8610	ReconnectEnumEnabled = "ENABLED"
8611
8612	// ReconnectEnumDisabled is a ReconnectEnum enum value
8613	ReconnectEnumDisabled = "DISABLED"
8614)
8615
8616const (
8617	// RunningModeAutoStop is a RunningMode enum value
8618	RunningModeAutoStop = "AUTO_STOP"
8619
8620	// RunningModeAlwaysOn is a RunningMode enum value
8621	RunningModeAlwaysOn = "ALWAYS_ON"
8622)
8623
8624const (
8625	// TargetWorkspaceStateAvailable is a TargetWorkspaceState enum value
8626	TargetWorkspaceStateAvailable = "AVAILABLE"
8627
8628	// TargetWorkspaceStateAdminMaintenance is a TargetWorkspaceState enum value
8629	TargetWorkspaceStateAdminMaintenance = "ADMIN_MAINTENANCE"
8630)
8631
8632const (
8633	// TenancyDedicated is a Tenancy enum value
8634	TenancyDedicated = "DEDICATED"
8635
8636	// TenancyShared is a Tenancy enum value
8637	TenancyShared = "SHARED"
8638)
8639
8640const (
8641	// WorkspaceDirectoryStateRegistering is a WorkspaceDirectoryState enum value
8642	WorkspaceDirectoryStateRegistering = "REGISTERING"
8643
8644	// WorkspaceDirectoryStateRegistered is a WorkspaceDirectoryState enum value
8645	WorkspaceDirectoryStateRegistered = "REGISTERED"
8646
8647	// WorkspaceDirectoryStateDeregistering is a WorkspaceDirectoryState enum value
8648	WorkspaceDirectoryStateDeregistering = "DEREGISTERING"
8649
8650	// WorkspaceDirectoryStateDeregistered is a WorkspaceDirectoryState enum value
8651	WorkspaceDirectoryStateDeregistered = "DEREGISTERED"
8652
8653	// WorkspaceDirectoryStateError is a WorkspaceDirectoryState enum value
8654	WorkspaceDirectoryStateError = "ERROR"
8655)
8656
8657const (
8658	// WorkspaceDirectoryTypeSimpleAd is a WorkspaceDirectoryType enum value
8659	WorkspaceDirectoryTypeSimpleAd = "SIMPLE_AD"
8660
8661	// WorkspaceDirectoryTypeAdConnector is a WorkspaceDirectoryType enum value
8662	WorkspaceDirectoryTypeAdConnector = "AD_CONNECTOR"
8663)
8664
8665const (
8666	// WorkspaceImageIngestionProcessByolRegular is a WorkspaceImageIngestionProcess enum value
8667	WorkspaceImageIngestionProcessByolRegular = "BYOL_REGULAR"
8668
8669	// WorkspaceImageIngestionProcessByolGraphics is a WorkspaceImageIngestionProcess enum value
8670	WorkspaceImageIngestionProcessByolGraphics = "BYOL_GRAPHICS"
8671
8672	// WorkspaceImageIngestionProcessByolGraphicspro is a WorkspaceImageIngestionProcess enum value
8673	WorkspaceImageIngestionProcessByolGraphicspro = "BYOL_GRAPHICSPRO"
8674)
8675
8676const (
8677	// WorkspaceImageRequiredTenancyDefault is a WorkspaceImageRequiredTenancy enum value
8678	WorkspaceImageRequiredTenancyDefault = "DEFAULT"
8679
8680	// WorkspaceImageRequiredTenancyDedicated is a WorkspaceImageRequiredTenancy enum value
8681	WorkspaceImageRequiredTenancyDedicated = "DEDICATED"
8682)
8683
8684const (
8685	// WorkspaceImageStateAvailable is a WorkspaceImageState enum value
8686	WorkspaceImageStateAvailable = "AVAILABLE"
8687
8688	// WorkspaceImageStatePending is a WorkspaceImageState enum value
8689	WorkspaceImageStatePending = "PENDING"
8690
8691	// WorkspaceImageStateError is a WorkspaceImageState enum value
8692	WorkspaceImageStateError = "ERROR"
8693)
8694
8695const (
8696	// WorkspaceStatePending is a WorkspaceState enum value
8697	WorkspaceStatePending = "PENDING"
8698
8699	// WorkspaceStateAvailable is a WorkspaceState enum value
8700	WorkspaceStateAvailable = "AVAILABLE"
8701
8702	// WorkspaceStateImpaired is a WorkspaceState enum value
8703	WorkspaceStateImpaired = "IMPAIRED"
8704
8705	// WorkspaceStateUnhealthy is a WorkspaceState enum value
8706	WorkspaceStateUnhealthy = "UNHEALTHY"
8707
8708	// WorkspaceStateRebooting is a WorkspaceState enum value
8709	WorkspaceStateRebooting = "REBOOTING"
8710
8711	// WorkspaceStateStarting is a WorkspaceState enum value
8712	WorkspaceStateStarting = "STARTING"
8713
8714	// WorkspaceStateRebuilding is a WorkspaceState enum value
8715	WorkspaceStateRebuilding = "REBUILDING"
8716
8717	// WorkspaceStateRestoring is a WorkspaceState enum value
8718	WorkspaceStateRestoring = "RESTORING"
8719
8720	// WorkspaceStateMaintenance is a WorkspaceState enum value
8721	WorkspaceStateMaintenance = "MAINTENANCE"
8722
8723	// WorkspaceStateAdminMaintenance is a WorkspaceState enum value
8724	WorkspaceStateAdminMaintenance = "ADMIN_MAINTENANCE"
8725
8726	// WorkspaceStateTerminating is a WorkspaceState enum value
8727	WorkspaceStateTerminating = "TERMINATING"
8728
8729	// WorkspaceStateTerminated is a WorkspaceState enum value
8730	WorkspaceStateTerminated = "TERMINATED"
8731
8732	// WorkspaceStateSuspended is a WorkspaceState enum value
8733	WorkspaceStateSuspended = "SUSPENDED"
8734
8735	// WorkspaceStateUpdating is a WorkspaceState enum value
8736	WorkspaceStateUpdating = "UPDATING"
8737
8738	// WorkspaceStateStopping is a WorkspaceState enum value
8739	WorkspaceStateStopping = "STOPPING"
8740
8741	// WorkspaceStateStopped is a WorkspaceState enum value
8742	WorkspaceStateStopped = "STOPPED"
8743
8744	// WorkspaceStateError is a WorkspaceState enum value
8745	WorkspaceStateError = "ERROR"
8746)
8747