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 opDescribeAccount = "DescribeAccount"
839
840// DescribeAccountRequest generates a "aws/request.Request" representing the
841// client's request for the DescribeAccount 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 DescribeAccount for more information on using the DescribeAccount
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 DescribeAccountRequest method.
856//    req, resp := client.DescribeAccountRequest(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/DescribeAccount
864func (c *WorkSpaces) DescribeAccountRequest(input *DescribeAccountInput) (req *request.Request, output *DescribeAccountOutput) {
865	op := &request.Operation{
866		Name:       opDescribeAccount,
867		HTTPMethod: "POST",
868		HTTPPath:   "/",
869	}
870
871	if input == nil {
872		input = &DescribeAccountInput{}
873	}
874
875	output = &DescribeAccountOutput{}
876	req = c.newRequest(op, input, output)
877	return
878}
879
880// DescribeAccount API operation for Amazon WorkSpaces.
881//
882// Retrieves a list that describes the configuration of bring your own license
883// (BYOL) for the specified account.
884//
885// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
886// with awserr.Error's Code and Message methods to get detailed information about
887// the error.
888//
889// See the AWS API reference guide for Amazon WorkSpaces's
890// API operation DescribeAccount for usage and error information.
891//
892// Returned Error Codes:
893//   * ErrCodeAccessDeniedException "AccessDeniedException"
894//   The user is not authorized to access a resource.
895//
896// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccount
897func (c *WorkSpaces) DescribeAccount(input *DescribeAccountInput) (*DescribeAccountOutput, error) {
898	req, out := c.DescribeAccountRequest(input)
899	return out, req.Send()
900}
901
902// DescribeAccountWithContext is the same as DescribeAccount with the addition of
903// the ability to pass a context and additional request options.
904//
905// See DescribeAccount for details on how to use this API operation.
906//
907// The context must be non-nil and will be used for request cancellation. If
908// the context is nil a panic will occur. In the future the SDK may create
909// sub-contexts for http.Requests. See https://golang.org/pkg/context/
910// for more information on using Contexts.
911func (c *WorkSpaces) DescribeAccountWithContext(ctx aws.Context, input *DescribeAccountInput, opts ...request.Option) (*DescribeAccountOutput, error) {
912	req, out := c.DescribeAccountRequest(input)
913	req.SetContext(ctx)
914	req.ApplyOptions(opts...)
915	return out, req.Send()
916}
917
918const opDescribeAccountModifications = "DescribeAccountModifications"
919
920// DescribeAccountModificationsRequest generates a "aws/request.Request" representing the
921// client's request for the DescribeAccountModifications operation. The "output" return
922// value will be populated with the request's response once the request completes
923// successfully.
924//
925// Use "Send" method on the returned Request to send the API call to the service.
926// the "output" return value is not valid until after Send returns without error.
927//
928// See DescribeAccountModifications for more information on using the DescribeAccountModifications
929// API call, and error handling.
930//
931// This method is useful when you want to inject custom logic or configuration
932// into the SDK's request lifecycle. Such as custom headers, or retry logic.
933//
934//
935//    // Example sending a request using the DescribeAccountModificationsRequest method.
936//    req, resp := client.DescribeAccountModificationsRequest(params)
937//
938//    err := req.Send()
939//    if err == nil { // resp is now filled
940//        fmt.Println(resp)
941//    }
942//
943// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccountModifications
944func (c *WorkSpaces) DescribeAccountModificationsRequest(input *DescribeAccountModificationsInput) (req *request.Request, output *DescribeAccountModificationsOutput) {
945	op := &request.Operation{
946		Name:       opDescribeAccountModifications,
947		HTTPMethod: "POST",
948		HTTPPath:   "/",
949	}
950
951	if input == nil {
952		input = &DescribeAccountModificationsInput{}
953	}
954
955	output = &DescribeAccountModificationsOutput{}
956	req = c.newRequest(op, input, output)
957	return
958}
959
960// DescribeAccountModifications API operation for Amazon WorkSpaces.
961//
962// Retrieves a list that describes modifications to the configuration of bring
963// your own license (BYOL) for the specified account.
964//
965// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
966// with awserr.Error's Code and Message methods to get detailed information about
967// the error.
968//
969// See the AWS API reference guide for Amazon WorkSpaces's
970// API operation DescribeAccountModifications for usage and error information.
971//
972// Returned Error Codes:
973//   * ErrCodeAccessDeniedException "AccessDeniedException"
974//   The user is not authorized to access a resource.
975//
976// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeAccountModifications
977func (c *WorkSpaces) DescribeAccountModifications(input *DescribeAccountModificationsInput) (*DescribeAccountModificationsOutput, error) {
978	req, out := c.DescribeAccountModificationsRequest(input)
979	return out, req.Send()
980}
981
982// DescribeAccountModificationsWithContext is the same as DescribeAccountModifications with the addition of
983// the ability to pass a context and additional request options.
984//
985// See DescribeAccountModifications for details on how to use this API operation.
986//
987// The context must be non-nil and will be used for request cancellation. If
988// the context is nil a panic will occur. In the future the SDK may create
989// sub-contexts for http.Requests. See https://golang.org/pkg/context/
990// for more information on using Contexts.
991func (c *WorkSpaces) DescribeAccountModificationsWithContext(ctx aws.Context, input *DescribeAccountModificationsInput, opts ...request.Option) (*DescribeAccountModificationsOutput, error) {
992	req, out := c.DescribeAccountModificationsRequest(input)
993	req.SetContext(ctx)
994	req.ApplyOptions(opts...)
995	return out, req.Send()
996}
997
998const opDescribeClientProperties = "DescribeClientProperties"
999
1000// DescribeClientPropertiesRequest generates a "aws/request.Request" representing the
1001// client's request for the DescribeClientProperties operation. The "output" return
1002// value will be populated with the request's response once the request completes
1003// successfully.
1004//
1005// Use "Send" method on the returned Request to send the API call to the service.
1006// the "output" return value is not valid until after Send returns without error.
1007//
1008// See DescribeClientProperties for more information on using the DescribeClientProperties
1009// API call, and error handling.
1010//
1011// This method is useful when you want to inject custom logic or configuration
1012// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1013//
1014//
1015//    // Example sending a request using the DescribeClientPropertiesRequest method.
1016//    req, resp := client.DescribeClientPropertiesRequest(params)
1017//
1018//    err := req.Send()
1019//    if err == nil { // resp is now filled
1020//        fmt.Println(resp)
1021//    }
1022//
1023// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeClientProperties
1024func (c *WorkSpaces) DescribeClientPropertiesRequest(input *DescribeClientPropertiesInput) (req *request.Request, output *DescribeClientPropertiesOutput) {
1025	op := &request.Operation{
1026		Name:       opDescribeClientProperties,
1027		HTTPMethod: "POST",
1028		HTTPPath:   "/",
1029	}
1030
1031	if input == nil {
1032		input = &DescribeClientPropertiesInput{}
1033	}
1034
1035	output = &DescribeClientPropertiesOutput{}
1036	req = c.newRequest(op, input, output)
1037	return
1038}
1039
1040// DescribeClientProperties API operation for Amazon WorkSpaces.
1041//
1042// Retrieves a list that describes one or more specified Amazon WorkSpaces clients.
1043//
1044// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1045// with awserr.Error's Code and Message methods to get detailed information about
1046// the error.
1047//
1048// See the AWS API reference guide for Amazon WorkSpaces's
1049// API operation DescribeClientProperties for usage and error information.
1050//
1051// Returned Error Codes:
1052//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1053//   One or more parameter values are not valid.
1054//
1055//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1056//   The resource could not be found.
1057//
1058//   * ErrCodeAccessDeniedException "AccessDeniedException"
1059//   The user is not authorized to access a resource.
1060//
1061// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeClientProperties
1062func (c *WorkSpaces) DescribeClientProperties(input *DescribeClientPropertiesInput) (*DescribeClientPropertiesOutput, error) {
1063	req, out := c.DescribeClientPropertiesRequest(input)
1064	return out, req.Send()
1065}
1066
1067// DescribeClientPropertiesWithContext is the same as DescribeClientProperties with the addition of
1068// the ability to pass a context and additional request options.
1069//
1070// See DescribeClientProperties for details on how to use this API operation.
1071//
1072// The context must be non-nil and will be used for request cancellation. If
1073// the context is nil a panic will occur. In the future the SDK may create
1074// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1075// for more information on using Contexts.
1076func (c *WorkSpaces) DescribeClientPropertiesWithContext(ctx aws.Context, input *DescribeClientPropertiesInput, opts ...request.Option) (*DescribeClientPropertiesOutput, error) {
1077	req, out := c.DescribeClientPropertiesRequest(input)
1078	req.SetContext(ctx)
1079	req.ApplyOptions(opts...)
1080	return out, req.Send()
1081}
1082
1083const opDescribeIpGroups = "DescribeIpGroups"
1084
1085// DescribeIpGroupsRequest generates a "aws/request.Request" representing the
1086// client's request for the DescribeIpGroups operation. The "output" return
1087// value will be populated with the request's response once the request completes
1088// successfully.
1089//
1090// Use "Send" method on the returned Request to send the API call to the service.
1091// the "output" return value is not valid until after Send returns without error.
1092//
1093// See DescribeIpGroups for more information on using the DescribeIpGroups
1094// API call, and error handling.
1095//
1096// This method is useful when you want to inject custom logic or configuration
1097// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1098//
1099//
1100//    // Example sending a request using the DescribeIpGroupsRequest method.
1101//    req, resp := client.DescribeIpGroupsRequest(params)
1102//
1103//    err := req.Send()
1104//    if err == nil { // resp is now filled
1105//        fmt.Println(resp)
1106//    }
1107//
1108// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeIpGroups
1109func (c *WorkSpaces) DescribeIpGroupsRequest(input *DescribeIpGroupsInput) (req *request.Request, output *DescribeIpGroupsOutput) {
1110	op := &request.Operation{
1111		Name:       opDescribeIpGroups,
1112		HTTPMethod: "POST",
1113		HTTPPath:   "/",
1114	}
1115
1116	if input == nil {
1117		input = &DescribeIpGroupsInput{}
1118	}
1119
1120	output = &DescribeIpGroupsOutput{}
1121	req = c.newRequest(op, input, output)
1122	return
1123}
1124
1125// DescribeIpGroups API operation for Amazon WorkSpaces.
1126//
1127// Describes one or more of your IP access control groups.
1128//
1129// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1130// with awserr.Error's Code and Message methods to get detailed information about
1131// the error.
1132//
1133// See the AWS API reference guide for Amazon WorkSpaces's
1134// API operation DescribeIpGroups for usage and error information.
1135//
1136// Returned Error Codes:
1137//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1138//   One or more parameter values are not valid.
1139//
1140//   * ErrCodeAccessDeniedException "AccessDeniedException"
1141//   The user is not authorized to access a resource.
1142//
1143// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeIpGroups
1144func (c *WorkSpaces) DescribeIpGroups(input *DescribeIpGroupsInput) (*DescribeIpGroupsOutput, error) {
1145	req, out := c.DescribeIpGroupsRequest(input)
1146	return out, req.Send()
1147}
1148
1149// DescribeIpGroupsWithContext is the same as DescribeIpGroups with the addition of
1150// the ability to pass a context and additional request options.
1151//
1152// See DescribeIpGroups for details on how to use this API operation.
1153//
1154// The context must be non-nil and will be used for request cancellation. If
1155// the context is nil a panic will occur. In the future the SDK may create
1156// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1157// for more information on using Contexts.
1158func (c *WorkSpaces) DescribeIpGroupsWithContext(ctx aws.Context, input *DescribeIpGroupsInput, opts ...request.Option) (*DescribeIpGroupsOutput, error) {
1159	req, out := c.DescribeIpGroupsRequest(input)
1160	req.SetContext(ctx)
1161	req.ApplyOptions(opts...)
1162	return out, req.Send()
1163}
1164
1165const opDescribeTags = "DescribeTags"
1166
1167// DescribeTagsRequest generates a "aws/request.Request" representing the
1168// client's request for the DescribeTags operation. The "output" return
1169// value will be populated with the request's response once the request completes
1170// successfully.
1171//
1172// Use "Send" method on the returned Request to send the API call to the service.
1173// the "output" return value is not valid until after Send returns without error.
1174//
1175// See DescribeTags for more information on using the DescribeTags
1176// API call, and error handling.
1177//
1178// This method is useful when you want to inject custom logic or configuration
1179// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1180//
1181//
1182//    // Example sending a request using the DescribeTagsRequest method.
1183//    req, resp := client.DescribeTagsRequest(params)
1184//
1185//    err := req.Send()
1186//    if err == nil { // resp is now filled
1187//        fmt.Println(resp)
1188//    }
1189//
1190// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeTags
1191func (c *WorkSpaces) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Request, output *DescribeTagsOutput) {
1192	op := &request.Operation{
1193		Name:       opDescribeTags,
1194		HTTPMethod: "POST",
1195		HTTPPath:   "/",
1196	}
1197
1198	if input == nil {
1199		input = &DescribeTagsInput{}
1200	}
1201
1202	output = &DescribeTagsOutput{}
1203	req = c.newRequest(op, input, output)
1204	return
1205}
1206
1207// DescribeTags API operation for Amazon WorkSpaces.
1208//
1209// Describes the specified tags for the specified WorkSpaces resource.
1210//
1211// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1212// with awserr.Error's Code and Message methods to get detailed information about
1213// the error.
1214//
1215// See the AWS API reference guide for Amazon WorkSpaces's
1216// API operation DescribeTags for usage and error information.
1217//
1218// Returned Error Codes:
1219//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1220//   The resource could not be found.
1221//
1222// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeTags
1223func (c *WorkSpaces) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) {
1224	req, out := c.DescribeTagsRequest(input)
1225	return out, req.Send()
1226}
1227
1228// DescribeTagsWithContext is the same as DescribeTags with the addition of
1229// the ability to pass a context and additional request options.
1230//
1231// See DescribeTags for details on how to use this API operation.
1232//
1233// The context must be non-nil and will be used for request cancellation. If
1234// the context is nil a panic will occur. In the future the SDK may create
1235// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1236// for more information on using Contexts.
1237func (c *WorkSpaces) DescribeTagsWithContext(ctx aws.Context, input *DescribeTagsInput, opts ...request.Option) (*DescribeTagsOutput, error) {
1238	req, out := c.DescribeTagsRequest(input)
1239	req.SetContext(ctx)
1240	req.ApplyOptions(opts...)
1241	return out, req.Send()
1242}
1243
1244const opDescribeWorkspaceBundles = "DescribeWorkspaceBundles"
1245
1246// DescribeWorkspaceBundlesRequest generates a "aws/request.Request" representing the
1247// client's request for the DescribeWorkspaceBundles operation. The "output" return
1248// value will be populated with the request's response once the request completes
1249// successfully.
1250//
1251// Use "Send" method on the returned Request to send the API call to the service.
1252// the "output" return value is not valid until after Send returns without error.
1253//
1254// See DescribeWorkspaceBundles for more information on using the DescribeWorkspaceBundles
1255// API call, and error handling.
1256//
1257// This method is useful when you want to inject custom logic or configuration
1258// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1259//
1260//
1261//    // Example sending a request using the DescribeWorkspaceBundlesRequest method.
1262//    req, resp := client.DescribeWorkspaceBundlesRequest(params)
1263//
1264//    err := req.Send()
1265//    if err == nil { // resp is now filled
1266//        fmt.Println(resp)
1267//    }
1268//
1269// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceBundles
1270func (c *WorkSpaces) DescribeWorkspaceBundlesRequest(input *DescribeWorkspaceBundlesInput) (req *request.Request, output *DescribeWorkspaceBundlesOutput) {
1271	op := &request.Operation{
1272		Name:       opDescribeWorkspaceBundles,
1273		HTTPMethod: "POST",
1274		HTTPPath:   "/",
1275		Paginator: &request.Paginator{
1276			InputTokens:     []string{"NextToken"},
1277			OutputTokens:    []string{"NextToken"},
1278			LimitToken:      "",
1279			TruncationToken: "",
1280		},
1281	}
1282
1283	if input == nil {
1284		input = &DescribeWorkspaceBundlesInput{}
1285	}
1286
1287	output = &DescribeWorkspaceBundlesOutput{}
1288	req = c.newRequest(op, input, output)
1289	return
1290}
1291
1292// DescribeWorkspaceBundles API operation for Amazon WorkSpaces.
1293//
1294// Retrieves a list that describes the available WorkSpace bundles.
1295//
1296// You can filter the results using either bundle ID or owner, but not both.
1297//
1298// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1299// with awserr.Error's Code and Message methods to get detailed information about
1300// the error.
1301//
1302// See the AWS API reference guide for Amazon WorkSpaces's
1303// API operation DescribeWorkspaceBundles for usage and error information.
1304//
1305// Returned Error Codes:
1306//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1307//   One or more parameter values are not valid.
1308//
1309// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceBundles
1310func (c *WorkSpaces) DescribeWorkspaceBundles(input *DescribeWorkspaceBundlesInput) (*DescribeWorkspaceBundlesOutput, error) {
1311	req, out := c.DescribeWorkspaceBundlesRequest(input)
1312	return out, req.Send()
1313}
1314
1315// DescribeWorkspaceBundlesWithContext is the same as DescribeWorkspaceBundles with the addition of
1316// the ability to pass a context and additional request options.
1317//
1318// See DescribeWorkspaceBundles for details on how to use this API operation.
1319//
1320// The context must be non-nil and will be used for request cancellation. If
1321// the context is nil a panic will occur. In the future the SDK may create
1322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1323// for more information on using Contexts.
1324func (c *WorkSpaces) DescribeWorkspaceBundlesWithContext(ctx aws.Context, input *DescribeWorkspaceBundlesInput, opts ...request.Option) (*DescribeWorkspaceBundlesOutput, error) {
1325	req, out := c.DescribeWorkspaceBundlesRequest(input)
1326	req.SetContext(ctx)
1327	req.ApplyOptions(opts...)
1328	return out, req.Send()
1329}
1330
1331// DescribeWorkspaceBundlesPages iterates over the pages of a DescribeWorkspaceBundles operation,
1332// calling the "fn" function with the response data for each page. To stop
1333// iterating, return false from the fn function.
1334//
1335// See DescribeWorkspaceBundles method for more information on how to use this operation.
1336//
1337// Note: This operation can generate multiple requests to a service.
1338//
1339//    // Example iterating over at most 3 pages of a DescribeWorkspaceBundles operation.
1340//    pageNum := 0
1341//    err := client.DescribeWorkspaceBundlesPages(params,
1342//        func(page *workspaces.DescribeWorkspaceBundlesOutput, lastPage bool) bool {
1343//            pageNum++
1344//            fmt.Println(page)
1345//            return pageNum <= 3
1346//        })
1347//
1348func (c *WorkSpaces) DescribeWorkspaceBundlesPages(input *DescribeWorkspaceBundlesInput, fn func(*DescribeWorkspaceBundlesOutput, bool) bool) error {
1349	return c.DescribeWorkspaceBundlesPagesWithContext(aws.BackgroundContext(), input, fn)
1350}
1351
1352// DescribeWorkspaceBundlesPagesWithContext same as DescribeWorkspaceBundlesPages except
1353// it takes a Context and allows setting request options on the pages.
1354//
1355// The context must be non-nil and will be used for request cancellation. If
1356// the context is nil a panic will occur. In the future the SDK may create
1357// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1358// for more information on using Contexts.
1359func (c *WorkSpaces) DescribeWorkspaceBundlesPagesWithContext(ctx aws.Context, input *DescribeWorkspaceBundlesInput, fn func(*DescribeWorkspaceBundlesOutput, bool) bool, opts ...request.Option) error {
1360	p := request.Pagination{
1361		NewRequest: func() (*request.Request, error) {
1362			var inCpy *DescribeWorkspaceBundlesInput
1363			if input != nil {
1364				tmp := *input
1365				inCpy = &tmp
1366			}
1367			req, _ := c.DescribeWorkspaceBundlesRequest(inCpy)
1368			req.SetContext(ctx)
1369			req.ApplyOptions(opts...)
1370			return req, nil
1371		},
1372	}
1373
1374	cont := true
1375	for p.Next() && cont {
1376		cont = fn(p.Page().(*DescribeWorkspaceBundlesOutput), !p.HasNextPage())
1377	}
1378	return p.Err()
1379}
1380
1381const opDescribeWorkspaceDirectories = "DescribeWorkspaceDirectories"
1382
1383// DescribeWorkspaceDirectoriesRequest generates a "aws/request.Request" representing the
1384// client's request for the DescribeWorkspaceDirectories operation. The "output" return
1385// value will be populated with the request's response once the request completes
1386// successfully.
1387//
1388// Use "Send" method on the returned Request to send the API call to the service.
1389// the "output" return value is not valid until after Send returns without error.
1390//
1391// See DescribeWorkspaceDirectories for more information on using the DescribeWorkspaceDirectories
1392// API call, and error handling.
1393//
1394// This method is useful when you want to inject custom logic or configuration
1395// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1396//
1397//
1398//    // Example sending a request using the DescribeWorkspaceDirectoriesRequest method.
1399//    req, resp := client.DescribeWorkspaceDirectoriesRequest(params)
1400//
1401//    err := req.Send()
1402//    if err == nil { // resp is now filled
1403//        fmt.Println(resp)
1404//    }
1405//
1406// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceDirectories
1407func (c *WorkSpaces) DescribeWorkspaceDirectoriesRequest(input *DescribeWorkspaceDirectoriesInput) (req *request.Request, output *DescribeWorkspaceDirectoriesOutput) {
1408	op := &request.Operation{
1409		Name:       opDescribeWorkspaceDirectories,
1410		HTTPMethod: "POST",
1411		HTTPPath:   "/",
1412		Paginator: &request.Paginator{
1413			InputTokens:     []string{"NextToken"},
1414			OutputTokens:    []string{"NextToken"},
1415			LimitToken:      "",
1416			TruncationToken: "",
1417		},
1418	}
1419
1420	if input == nil {
1421		input = &DescribeWorkspaceDirectoriesInput{}
1422	}
1423
1424	output = &DescribeWorkspaceDirectoriesOutput{}
1425	req = c.newRequest(op, input, output)
1426	return
1427}
1428
1429// DescribeWorkspaceDirectories API operation for Amazon WorkSpaces.
1430//
1431// Describes the available AWS Directory Service directories that are registered
1432// with Amazon WorkSpaces.
1433//
1434// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1435// with awserr.Error's Code and Message methods to get detailed information about
1436// the error.
1437//
1438// See the AWS API reference guide for Amazon WorkSpaces's
1439// API operation DescribeWorkspaceDirectories for usage and error information.
1440//
1441// Returned Error Codes:
1442//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1443//   One or more parameter values are not valid.
1444//
1445// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceDirectories
1446func (c *WorkSpaces) DescribeWorkspaceDirectories(input *DescribeWorkspaceDirectoriesInput) (*DescribeWorkspaceDirectoriesOutput, error) {
1447	req, out := c.DescribeWorkspaceDirectoriesRequest(input)
1448	return out, req.Send()
1449}
1450
1451// DescribeWorkspaceDirectoriesWithContext is the same as DescribeWorkspaceDirectories with the addition of
1452// the ability to pass a context and additional request options.
1453//
1454// See DescribeWorkspaceDirectories for details on how to use this API operation.
1455//
1456// The context must be non-nil and will be used for request cancellation. If
1457// the context is nil a panic will occur. In the future the SDK may create
1458// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1459// for more information on using Contexts.
1460func (c *WorkSpaces) DescribeWorkspaceDirectoriesWithContext(ctx aws.Context, input *DescribeWorkspaceDirectoriesInput, opts ...request.Option) (*DescribeWorkspaceDirectoriesOutput, error) {
1461	req, out := c.DescribeWorkspaceDirectoriesRequest(input)
1462	req.SetContext(ctx)
1463	req.ApplyOptions(opts...)
1464	return out, req.Send()
1465}
1466
1467// DescribeWorkspaceDirectoriesPages iterates over the pages of a DescribeWorkspaceDirectories operation,
1468// calling the "fn" function with the response data for each page. To stop
1469// iterating, return false from the fn function.
1470//
1471// See DescribeWorkspaceDirectories method for more information on how to use this operation.
1472//
1473// Note: This operation can generate multiple requests to a service.
1474//
1475//    // Example iterating over at most 3 pages of a DescribeWorkspaceDirectories operation.
1476//    pageNum := 0
1477//    err := client.DescribeWorkspaceDirectoriesPages(params,
1478//        func(page *workspaces.DescribeWorkspaceDirectoriesOutput, lastPage bool) bool {
1479//            pageNum++
1480//            fmt.Println(page)
1481//            return pageNum <= 3
1482//        })
1483//
1484func (c *WorkSpaces) DescribeWorkspaceDirectoriesPages(input *DescribeWorkspaceDirectoriesInput, fn func(*DescribeWorkspaceDirectoriesOutput, bool) bool) error {
1485	return c.DescribeWorkspaceDirectoriesPagesWithContext(aws.BackgroundContext(), input, fn)
1486}
1487
1488// DescribeWorkspaceDirectoriesPagesWithContext same as DescribeWorkspaceDirectoriesPages except
1489// it takes a Context and allows setting request options on the pages.
1490//
1491// The context must be non-nil and will be used for request cancellation. If
1492// the context is nil a panic will occur. In the future the SDK may create
1493// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1494// for more information on using Contexts.
1495func (c *WorkSpaces) DescribeWorkspaceDirectoriesPagesWithContext(ctx aws.Context, input *DescribeWorkspaceDirectoriesInput, fn func(*DescribeWorkspaceDirectoriesOutput, bool) bool, opts ...request.Option) error {
1496	p := request.Pagination{
1497		NewRequest: func() (*request.Request, error) {
1498			var inCpy *DescribeWorkspaceDirectoriesInput
1499			if input != nil {
1500				tmp := *input
1501				inCpy = &tmp
1502			}
1503			req, _ := c.DescribeWorkspaceDirectoriesRequest(inCpy)
1504			req.SetContext(ctx)
1505			req.ApplyOptions(opts...)
1506			return req, nil
1507		},
1508	}
1509
1510	cont := true
1511	for p.Next() && cont {
1512		cont = fn(p.Page().(*DescribeWorkspaceDirectoriesOutput), !p.HasNextPage())
1513	}
1514	return p.Err()
1515}
1516
1517const opDescribeWorkspaceImages = "DescribeWorkspaceImages"
1518
1519// DescribeWorkspaceImagesRequest generates a "aws/request.Request" representing the
1520// client's request for the DescribeWorkspaceImages operation. The "output" return
1521// value will be populated with the request's response once the request completes
1522// successfully.
1523//
1524// Use "Send" method on the returned Request to send the API call to the service.
1525// the "output" return value is not valid until after Send returns without error.
1526//
1527// See DescribeWorkspaceImages for more information on using the DescribeWorkspaceImages
1528// API call, and error handling.
1529//
1530// This method is useful when you want to inject custom logic or configuration
1531// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1532//
1533//
1534//    // Example sending a request using the DescribeWorkspaceImagesRequest method.
1535//    req, resp := client.DescribeWorkspaceImagesRequest(params)
1536//
1537//    err := req.Send()
1538//    if err == nil { // resp is now filled
1539//        fmt.Println(resp)
1540//    }
1541//
1542// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImages
1543func (c *WorkSpaces) DescribeWorkspaceImagesRequest(input *DescribeWorkspaceImagesInput) (req *request.Request, output *DescribeWorkspaceImagesOutput) {
1544	op := &request.Operation{
1545		Name:       opDescribeWorkspaceImages,
1546		HTTPMethod: "POST",
1547		HTTPPath:   "/",
1548	}
1549
1550	if input == nil {
1551		input = &DescribeWorkspaceImagesInput{}
1552	}
1553
1554	output = &DescribeWorkspaceImagesOutput{}
1555	req = c.newRequest(op, input, output)
1556	return
1557}
1558
1559// DescribeWorkspaceImages API operation for Amazon WorkSpaces.
1560//
1561// Retrieves a list that describes one or more specified images, if the image
1562// identifiers are provided. Otherwise, all images in the account are described.
1563//
1564// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1565// with awserr.Error's Code and Message methods to get detailed information about
1566// the error.
1567//
1568// See the AWS API reference guide for Amazon WorkSpaces's
1569// API operation DescribeWorkspaceImages for usage and error information.
1570//
1571// Returned Error Codes:
1572//   * ErrCodeAccessDeniedException "AccessDeniedException"
1573//   The user is not authorized to access a resource.
1574//
1575// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceImages
1576func (c *WorkSpaces) DescribeWorkspaceImages(input *DescribeWorkspaceImagesInput) (*DescribeWorkspaceImagesOutput, error) {
1577	req, out := c.DescribeWorkspaceImagesRequest(input)
1578	return out, req.Send()
1579}
1580
1581// DescribeWorkspaceImagesWithContext is the same as DescribeWorkspaceImages with the addition of
1582// the ability to pass a context and additional request options.
1583//
1584// See DescribeWorkspaceImages for details on how to use this API operation.
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) DescribeWorkspaceImagesWithContext(ctx aws.Context, input *DescribeWorkspaceImagesInput, opts ...request.Option) (*DescribeWorkspaceImagesOutput, error) {
1591	req, out := c.DescribeWorkspaceImagesRequest(input)
1592	req.SetContext(ctx)
1593	req.ApplyOptions(opts...)
1594	return out, req.Send()
1595}
1596
1597const opDescribeWorkspaces = "DescribeWorkspaces"
1598
1599// DescribeWorkspacesRequest generates a "aws/request.Request" representing the
1600// client's request for the DescribeWorkspaces operation. The "output" return
1601// value will be populated with the request's response once the request completes
1602// successfully.
1603//
1604// Use "Send" method on the returned Request to send the API call to the service.
1605// the "output" return value is not valid until after Send returns without error.
1606//
1607// See DescribeWorkspaces for more information on using the DescribeWorkspaces
1608// API call, and error handling.
1609//
1610// This method is useful when you want to inject custom logic or configuration
1611// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1612//
1613//
1614//    // Example sending a request using the DescribeWorkspacesRequest method.
1615//    req, resp := client.DescribeWorkspacesRequest(params)
1616//
1617//    err := req.Send()
1618//    if err == nil { // resp is now filled
1619//        fmt.Println(resp)
1620//    }
1621//
1622// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaces
1623func (c *WorkSpaces) DescribeWorkspacesRequest(input *DescribeWorkspacesInput) (req *request.Request, output *DescribeWorkspacesOutput) {
1624	op := &request.Operation{
1625		Name:       opDescribeWorkspaces,
1626		HTTPMethod: "POST",
1627		HTTPPath:   "/",
1628		Paginator: &request.Paginator{
1629			InputTokens:     []string{"NextToken"},
1630			OutputTokens:    []string{"NextToken"},
1631			LimitToken:      "Limit",
1632			TruncationToken: "",
1633		},
1634	}
1635
1636	if input == nil {
1637		input = &DescribeWorkspacesInput{}
1638	}
1639
1640	output = &DescribeWorkspacesOutput{}
1641	req = c.newRequest(op, input, output)
1642	return
1643}
1644
1645// DescribeWorkspaces API operation for Amazon WorkSpaces.
1646//
1647// Describes the specified WorkSpaces.
1648//
1649// You can filter the results by using the bundle identifier, directory identifier,
1650// or owner, but you can specify only one filter at a time.
1651//
1652// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1653// with awserr.Error's Code and Message methods to get detailed information about
1654// the error.
1655//
1656// See the AWS API reference guide for Amazon WorkSpaces's
1657// API operation DescribeWorkspaces for usage and error information.
1658//
1659// Returned Error Codes:
1660//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1661//   One or more parameter values are not valid.
1662//
1663//   * ErrCodeResourceUnavailableException "ResourceUnavailableException"
1664//   The specified resource is not available.
1665//
1666// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaces
1667func (c *WorkSpaces) DescribeWorkspaces(input *DescribeWorkspacesInput) (*DescribeWorkspacesOutput, error) {
1668	req, out := c.DescribeWorkspacesRequest(input)
1669	return out, req.Send()
1670}
1671
1672// DescribeWorkspacesWithContext is the same as DescribeWorkspaces with the addition of
1673// the ability to pass a context and additional request options.
1674//
1675// See DescribeWorkspaces for details on how to use this API operation.
1676//
1677// The context must be non-nil and will be used for request cancellation. If
1678// the context is nil a panic will occur. In the future the SDK may create
1679// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1680// for more information on using Contexts.
1681func (c *WorkSpaces) DescribeWorkspacesWithContext(ctx aws.Context, input *DescribeWorkspacesInput, opts ...request.Option) (*DescribeWorkspacesOutput, error) {
1682	req, out := c.DescribeWorkspacesRequest(input)
1683	req.SetContext(ctx)
1684	req.ApplyOptions(opts...)
1685	return out, req.Send()
1686}
1687
1688// DescribeWorkspacesPages iterates over the pages of a DescribeWorkspaces operation,
1689// calling the "fn" function with the response data for each page. To stop
1690// iterating, return false from the fn function.
1691//
1692// See DescribeWorkspaces method for more information on how to use this operation.
1693//
1694// Note: This operation can generate multiple requests to a service.
1695//
1696//    // Example iterating over at most 3 pages of a DescribeWorkspaces operation.
1697//    pageNum := 0
1698//    err := client.DescribeWorkspacesPages(params,
1699//        func(page *workspaces.DescribeWorkspacesOutput, lastPage bool) bool {
1700//            pageNum++
1701//            fmt.Println(page)
1702//            return pageNum <= 3
1703//        })
1704//
1705func (c *WorkSpaces) DescribeWorkspacesPages(input *DescribeWorkspacesInput, fn func(*DescribeWorkspacesOutput, bool) bool) error {
1706	return c.DescribeWorkspacesPagesWithContext(aws.BackgroundContext(), input, fn)
1707}
1708
1709// DescribeWorkspacesPagesWithContext same as DescribeWorkspacesPages except
1710// it takes a Context and allows setting request options on the pages.
1711//
1712// The context must be non-nil and will be used for request cancellation. If
1713// the context is nil a panic will occur. In the future the SDK may create
1714// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1715// for more information on using Contexts.
1716func (c *WorkSpaces) DescribeWorkspacesPagesWithContext(ctx aws.Context, input *DescribeWorkspacesInput, fn func(*DescribeWorkspacesOutput, bool) bool, opts ...request.Option) error {
1717	p := request.Pagination{
1718		NewRequest: func() (*request.Request, error) {
1719			var inCpy *DescribeWorkspacesInput
1720			if input != nil {
1721				tmp := *input
1722				inCpy = &tmp
1723			}
1724			req, _ := c.DescribeWorkspacesRequest(inCpy)
1725			req.SetContext(ctx)
1726			req.ApplyOptions(opts...)
1727			return req, nil
1728		},
1729	}
1730
1731	cont := true
1732	for p.Next() && cont {
1733		cont = fn(p.Page().(*DescribeWorkspacesOutput), !p.HasNextPage())
1734	}
1735	return p.Err()
1736}
1737
1738const opDescribeWorkspacesConnectionStatus = "DescribeWorkspacesConnectionStatus"
1739
1740// DescribeWorkspacesConnectionStatusRequest generates a "aws/request.Request" representing the
1741// client's request for the DescribeWorkspacesConnectionStatus operation. The "output" return
1742// value will be populated with the request's response once the request completes
1743// successfully.
1744//
1745// Use "Send" method on the returned Request to send the API call to the service.
1746// the "output" return value is not valid until after Send returns without error.
1747//
1748// See DescribeWorkspacesConnectionStatus for more information on using the DescribeWorkspacesConnectionStatus
1749// API call, and error handling.
1750//
1751// This method is useful when you want to inject custom logic or configuration
1752// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1753//
1754//
1755//    // Example sending a request using the DescribeWorkspacesConnectionStatusRequest method.
1756//    req, resp := client.DescribeWorkspacesConnectionStatusRequest(params)
1757//
1758//    err := req.Send()
1759//    if err == nil { // resp is now filled
1760//        fmt.Println(resp)
1761//    }
1762//
1763// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspacesConnectionStatus
1764func (c *WorkSpaces) DescribeWorkspacesConnectionStatusRequest(input *DescribeWorkspacesConnectionStatusInput) (req *request.Request, output *DescribeWorkspacesConnectionStatusOutput) {
1765	op := &request.Operation{
1766		Name:       opDescribeWorkspacesConnectionStatus,
1767		HTTPMethod: "POST",
1768		HTTPPath:   "/",
1769	}
1770
1771	if input == nil {
1772		input = &DescribeWorkspacesConnectionStatusInput{}
1773	}
1774
1775	output = &DescribeWorkspacesConnectionStatusOutput{}
1776	req = c.newRequest(op, input, output)
1777	return
1778}
1779
1780// DescribeWorkspacesConnectionStatus API operation for Amazon WorkSpaces.
1781//
1782// Describes the connection status of the specified WorkSpaces.
1783//
1784// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1785// with awserr.Error's Code and Message methods to get detailed information about
1786// the error.
1787//
1788// See the AWS API reference guide for Amazon WorkSpaces's
1789// API operation DescribeWorkspacesConnectionStatus for usage and error information.
1790//
1791// Returned Error Codes:
1792//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1793//   One or more parameter values are not valid.
1794//
1795// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspacesConnectionStatus
1796func (c *WorkSpaces) DescribeWorkspacesConnectionStatus(input *DescribeWorkspacesConnectionStatusInput) (*DescribeWorkspacesConnectionStatusOutput, error) {
1797	req, out := c.DescribeWorkspacesConnectionStatusRequest(input)
1798	return out, req.Send()
1799}
1800
1801// DescribeWorkspacesConnectionStatusWithContext is the same as DescribeWorkspacesConnectionStatus with the addition of
1802// the ability to pass a context and additional request options.
1803//
1804// See DescribeWorkspacesConnectionStatus for details on how to use this API operation.
1805//
1806// The context must be non-nil and will be used for request cancellation. If
1807// the context is nil a panic will occur. In the future the SDK may create
1808// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1809// for more information on using Contexts.
1810func (c *WorkSpaces) DescribeWorkspacesConnectionStatusWithContext(ctx aws.Context, input *DescribeWorkspacesConnectionStatusInput, opts ...request.Option) (*DescribeWorkspacesConnectionStatusOutput, error) {
1811	req, out := c.DescribeWorkspacesConnectionStatusRequest(input)
1812	req.SetContext(ctx)
1813	req.ApplyOptions(opts...)
1814	return out, req.Send()
1815}
1816
1817const opDisassociateIpGroups = "DisassociateIpGroups"
1818
1819// DisassociateIpGroupsRequest generates a "aws/request.Request" representing the
1820// client's request for the DisassociateIpGroups operation. The "output" return
1821// value will be populated with the request's response once the request completes
1822// successfully.
1823//
1824// Use "Send" method on the returned Request to send the API call to the service.
1825// the "output" return value is not valid until after Send returns without error.
1826//
1827// See DisassociateIpGroups for more information on using the DisassociateIpGroups
1828// API call, and error handling.
1829//
1830// This method is useful when you want to inject custom logic or configuration
1831// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1832//
1833//
1834//    // Example sending a request using the DisassociateIpGroupsRequest method.
1835//    req, resp := client.DisassociateIpGroupsRequest(params)
1836//
1837//    err := req.Send()
1838//    if err == nil { // resp is now filled
1839//        fmt.Println(resp)
1840//    }
1841//
1842// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateIpGroups
1843func (c *WorkSpaces) DisassociateIpGroupsRequest(input *DisassociateIpGroupsInput) (req *request.Request, output *DisassociateIpGroupsOutput) {
1844	op := &request.Operation{
1845		Name:       opDisassociateIpGroups,
1846		HTTPMethod: "POST",
1847		HTTPPath:   "/",
1848	}
1849
1850	if input == nil {
1851		input = &DisassociateIpGroupsInput{}
1852	}
1853
1854	output = &DisassociateIpGroupsOutput{}
1855	req = c.newRequest(op, input, output)
1856	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1857	return
1858}
1859
1860// DisassociateIpGroups API operation for Amazon WorkSpaces.
1861//
1862// Disassociates the specified IP access control group from the specified directory.
1863//
1864// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1865// with awserr.Error's Code and Message methods to get detailed information about
1866// the error.
1867//
1868// See the AWS API reference guide for Amazon WorkSpaces's
1869// API operation DisassociateIpGroups for usage and error information.
1870//
1871// Returned Error Codes:
1872//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1873//   One or more parameter values are not valid.
1874//
1875//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1876//   The resource could not be found.
1877//
1878//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
1879//   The state of the resource is not valid for this operation.
1880//
1881//   * ErrCodeAccessDeniedException "AccessDeniedException"
1882//   The user is not authorized to access a resource.
1883//
1884// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateIpGroups
1885func (c *WorkSpaces) DisassociateIpGroups(input *DisassociateIpGroupsInput) (*DisassociateIpGroupsOutput, error) {
1886	req, out := c.DisassociateIpGroupsRequest(input)
1887	return out, req.Send()
1888}
1889
1890// DisassociateIpGroupsWithContext is the same as DisassociateIpGroups with the addition of
1891// the ability to pass a context and additional request options.
1892//
1893// See DisassociateIpGroups for details on how to use this API operation.
1894//
1895// The context must be non-nil and will be used for request cancellation. If
1896// the context is nil a panic will occur. In the future the SDK may create
1897// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1898// for more information on using Contexts.
1899func (c *WorkSpaces) DisassociateIpGroupsWithContext(ctx aws.Context, input *DisassociateIpGroupsInput, opts ...request.Option) (*DisassociateIpGroupsOutput, error) {
1900	req, out := c.DisassociateIpGroupsRequest(input)
1901	req.SetContext(ctx)
1902	req.ApplyOptions(opts...)
1903	return out, req.Send()
1904}
1905
1906const opImportWorkspaceImage = "ImportWorkspaceImage"
1907
1908// ImportWorkspaceImageRequest generates a "aws/request.Request" representing the
1909// client's request for the ImportWorkspaceImage operation. The "output" return
1910// value will be populated with the request's response once the request completes
1911// successfully.
1912//
1913// Use "Send" method on the returned Request to send the API call to the service.
1914// the "output" return value is not valid until after Send returns without error.
1915//
1916// See ImportWorkspaceImage for more information on using the ImportWorkspaceImage
1917// API call, and error handling.
1918//
1919// This method is useful when you want to inject custom logic or configuration
1920// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1921//
1922//
1923//    // Example sending a request using the ImportWorkspaceImageRequest method.
1924//    req, resp := client.ImportWorkspaceImageRequest(params)
1925//
1926//    err := req.Send()
1927//    if err == nil { // resp is now filled
1928//        fmt.Println(resp)
1929//    }
1930//
1931// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ImportWorkspaceImage
1932func (c *WorkSpaces) ImportWorkspaceImageRequest(input *ImportWorkspaceImageInput) (req *request.Request, output *ImportWorkspaceImageOutput) {
1933	op := &request.Operation{
1934		Name:       opImportWorkspaceImage,
1935		HTTPMethod: "POST",
1936		HTTPPath:   "/",
1937	}
1938
1939	if input == nil {
1940		input = &ImportWorkspaceImageInput{}
1941	}
1942
1943	output = &ImportWorkspaceImageOutput{}
1944	req = c.newRequest(op, input, output)
1945	return
1946}
1947
1948// ImportWorkspaceImage API operation for Amazon WorkSpaces.
1949//
1950// Imports the specified Windows 7 or Windows 10 bring your own license (BYOL)
1951// image into Amazon WorkSpaces. The image must be an already licensed EC2 image
1952// that is in your AWS account, and you must own the image.
1953//
1954// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1955// with awserr.Error's Code and Message methods to get detailed information about
1956// the error.
1957//
1958// See the AWS API reference guide for Amazon WorkSpaces's
1959// API operation ImportWorkspaceImage for usage and error information.
1960//
1961// Returned Error Codes:
1962//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
1963//   Your resource limits have been exceeded.
1964//
1965//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
1966//   The specified resource already exists.
1967//
1968//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1969//   The resource could not be found.
1970//
1971//   * ErrCodeOperationNotSupportedException "OperationNotSupportedException"
1972//   This operation is not supported.
1973//
1974//   * ErrCodeAccessDeniedException "AccessDeniedException"
1975//   The user is not authorized to access a resource.
1976//
1977//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1978//   One or more parameter values are not valid.
1979//
1980// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ImportWorkspaceImage
1981func (c *WorkSpaces) ImportWorkspaceImage(input *ImportWorkspaceImageInput) (*ImportWorkspaceImageOutput, error) {
1982	req, out := c.ImportWorkspaceImageRequest(input)
1983	return out, req.Send()
1984}
1985
1986// ImportWorkspaceImageWithContext is the same as ImportWorkspaceImage with the addition of
1987// the ability to pass a context and additional request options.
1988//
1989// See ImportWorkspaceImage for details on how to use this API operation.
1990//
1991// The context must be non-nil and will be used for request cancellation. If
1992// the context is nil a panic will occur. In the future the SDK may create
1993// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1994// for more information on using Contexts.
1995func (c *WorkSpaces) ImportWorkspaceImageWithContext(ctx aws.Context, input *ImportWorkspaceImageInput, opts ...request.Option) (*ImportWorkspaceImageOutput, error) {
1996	req, out := c.ImportWorkspaceImageRequest(input)
1997	req.SetContext(ctx)
1998	req.ApplyOptions(opts...)
1999	return out, req.Send()
2000}
2001
2002const opListAvailableManagementCidrRanges = "ListAvailableManagementCidrRanges"
2003
2004// ListAvailableManagementCidrRangesRequest generates a "aws/request.Request" representing the
2005// client's request for the ListAvailableManagementCidrRanges operation. The "output" return
2006// value will be populated with the request's response once the request completes
2007// successfully.
2008//
2009// Use "Send" method on the returned Request to send the API call to the service.
2010// the "output" return value is not valid until after Send returns without error.
2011//
2012// See ListAvailableManagementCidrRanges for more information on using the ListAvailableManagementCidrRanges
2013// API call, and error handling.
2014//
2015// This method is useful when you want to inject custom logic or configuration
2016// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2017//
2018//
2019//    // Example sending a request using the ListAvailableManagementCidrRangesRequest method.
2020//    req, resp := client.ListAvailableManagementCidrRangesRequest(params)
2021//
2022//    err := req.Send()
2023//    if err == nil { // resp is now filled
2024//        fmt.Println(resp)
2025//    }
2026//
2027// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ListAvailableManagementCidrRanges
2028func (c *WorkSpaces) ListAvailableManagementCidrRangesRequest(input *ListAvailableManagementCidrRangesInput) (req *request.Request, output *ListAvailableManagementCidrRangesOutput) {
2029	op := &request.Operation{
2030		Name:       opListAvailableManagementCidrRanges,
2031		HTTPMethod: "POST",
2032		HTTPPath:   "/",
2033	}
2034
2035	if input == nil {
2036		input = &ListAvailableManagementCidrRangesInput{}
2037	}
2038
2039	output = &ListAvailableManagementCidrRangesOutput{}
2040	req = c.newRequest(op, input, output)
2041	return
2042}
2043
2044// ListAvailableManagementCidrRanges API operation for Amazon WorkSpaces.
2045//
2046// Retrieves a list of IP address ranges, specified as IPv4 CIDR blocks, that
2047// you can use for the network management interface when you enable bring your
2048// own license (BYOL).
2049//
2050// The management network interface is connected to a secure Amazon WorkSpaces
2051// management network. It is used for interactive streaming of the WorkSpace
2052// desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage
2053// the WorkSpace.
2054//
2055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2056// with awserr.Error's Code and Message methods to get detailed information about
2057// the error.
2058//
2059// See the AWS API reference guide for Amazon WorkSpaces's
2060// API operation ListAvailableManagementCidrRanges for usage and error information.
2061//
2062// Returned Error Codes:
2063//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2064//   One or more parameter values are not valid.
2065//
2066//   * ErrCodeAccessDeniedException "AccessDeniedException"
2067//   The user is not authorized to access a resource.
2068//
2069// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ListAvailableManagementCidrRanges
2070func (c *WorkSpaces) ListAvailableManagementCidrRanges(input *ListAvailableManagementCidrRangesInput) (*ListAvailableManagementCidrRangesOutput, error) {
2071	req, out := c.ListAvailableManagementCidrRangesRequest(input)
2072	return out, req.Send()
2073}
2074
2075// ListAvailableManagementCidrRangesWithContext is the same as ListAvailableManagementCidrRanges with the addition of
2076// the ability to pass a context and additional request options.
2077//
2078// See ListAvailableManagementCidrRanges for details on how to use this API operation.
2079//
2080// The context must be non-nil and will be used for request cancellation. If
2081// the context is nil a panic will occur. In the future the SDK may create
2082// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2083// for more information on using Contexts.
2084func (c *WorkSpaces) ListAvailableManagementCidrRangesWithContext(ctx aws.Context, input *ListAvailableManagementCidrRangesInput, opts ...request.Option) (*ListAvailableManagementCidrRangesOutput, error) {
2085	req, out := c.ListAvailableManagementCidrRangesRequest(input)
2086	req.SetContext(ctx)
2087	req.ApplyOptions(opts...)
2088	return out, req.Send()
2089}
2090
2091const opModifyAccount = "ModifyAccount"
2092
2093// ModifyAccountRequest generates a "aws/request.Request" representing the
2094// client's request for the ModifyAccount operation. The "output" return
2095// value will be populated with the request's response once the request completes
2096// successfully.
2097//
2098// Use "Send" method on the returned Request to send the API call to the service.
2099// the "output" return value is not valid until after Send returns without error.
2100//
2101// See ModifyAccount for more information on using the ModifyAccount
2102// API call, and error handling.
2103//
2104// This method is useful when you want to inject custom logic or configuration
2105// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2106//
2107//
2108//    // Example sending a request using the ModifyAccountRequest method.
2109//    req, resp := client.ModifyAccountRequest(params)
2110//
2111//    err := req.Send()
2112//    if err == nil { // resp is now filled
2113//        fmt.Println(resp)
2114//    }
2115//
2116// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyAccount
2117func (c *WorkSpaces) ModifyAccountRequest(input *ModifyAccountInput) (req *request.Request, output *ModifyAccountOutput) {
2118	op := &request.Operation{
2119		Name:       opModifyAccount,
2120		HTTPMethod: "POST",
2121		HTTPPath:   "/",
2122	}
2123
2124	if input == nil {
2125		input = &ModifyAccountInput{}
2126	}
2127
2128	output = &ModifyAccountOutput{}
2129	req = c.newRequest(op, input, output)
2130	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2131	return
2132}
2133
2134// ModifyAccount API operation for Amazon WorkSpaces.
2135//
2136// Modifies the configuration of bring your own license (BYOL) for the specified
2137// account.
2138//
2139// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2140// with awserr.Error's Code and Message methods to get detailed information about
2141// the error.
2142//
2143// See the AWS API reference guide for Amazon WorkSpaces's
2144// API operation ModifyAccount for usage and error information.
2145//
2146// Returned Error Codes:
2147//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2148//   One or more parameter values are not valid.
2149//
2150//   * ErrCodeAccessDeniedException "AccessDeniedException"
2151//   The user is not authorized to access a resource.
2152//
2153//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
2154//   The state of the resource is not valid for this operation.
2155//
2156//   * ErrCodeResourceUnavailableException "ResourceUnavailableException"
2157//   The specified resource is not available.
2158//
2159//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2160//   The resource could not be found.
2161//
2162// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyAccount
2163func (c *WorkSpaces) ModifyAccount(input *ModifyAccountInput) (*ModifyAccountOutput, error) {
2164	req, out := c.ModifyAccountRequest(input)
2165	return out, req.Send()
2166}
2167
2168// ModifyAccountWithContext is the same as ModifyAccount with the addition of
2169// the ability to pass a context and additional request options.
2170//
2171// See ModifyAccount for details on how to use this API operation.
2172//
2173// The context must be non-nil and will be used for request cancellation. If
2174// the context is nil a panic will occur. In the future the SDK may create
2175// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2176// for more information on using Contexts.
2177func (c *WorkSpaces) ModifyAccountWithContext(ctx aws.Context, input *ModifyAccountInput, opts ...request.Option) (*ModifyAccountOutput, error) {
2178	req, out := c.ModifyAccountRequest(input)
2179	req.SetContext(ctx)
2180	req.ApplyOptions(opts...)
2181	return out, req.Send()
2182}
2183
2184const opModifyClientProperties = "ModifyClientProperties"
2185
2186// ModifyClientPropertiesRequest generates a "aws/request.Request" representing the
2187// client's request for the ModifyClientProperties operation. The "output" return
2188// value will be populated with the request's response once the request completes
2189// successfully.
2190//
2191// Use "Send" method on the returned Request to send the API call to the service.
2192// the "output" return value is not valid until after Send returns without error.
2193//
2194// See ModifyClientProperties for more information on using the ModifyClientProperties
2195// API call, and error handling.
2196//
2197// This method is useful when you want to inject custom logic or configuration
2198// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2199//
2200//
2201//    // Example sending a request using the ModifyClientPropertiesRequest method.
2202//    req, resp := client.ModifyClientPropertiesRequest(params)
2203//
2204//    err := req.Send()
2205//    if err == nil { // resp is now filled
2206//        fmt.Println(resp)
2207//    }
2208//
2209// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyClientProperties
2210func (c *WorkSpaces) ModifyClientPropertiesRequest(input *ModifyClientPropertiesInput) (req *request.Request, output *ModifyClientPropertiesOutput) {
2211	op := &request.Operation{
2212		Name:       opModifyClientProperties,
2213		HTTPMethod: "POST",
2214		HTTPPath:   "/",
2215	}
2216
2217	if input == nil {
2218		input = &ModifyClientPropertiesInput{}
2219	}
2220
2221	output = &ModifyClientPropertiesOutput{}
2222	req = c.newRequest(op, input, output)
2223	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2224	return
2225}
2226
2227// ModifyClientProperties API operation for Amazon WorkSpaces.
2228//
2229// Modifies the properties of the specified Amazon WorkSpaces clients.
2230//
2231// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2232// with awserr.Error's Code and Message methods to get detailed information about
2233// the error.
2234//
2235// See the AWS API reference guide for Amazon WorkSpaces's
2236// API operation ModifyClientProperties for usage and error information.
2237//
2238// Returned Error Codes:
2239//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2240//   One or more parameter values are not valid.
2241//
2242//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2243//   The resource could not be found.
2244//
2245//   * ErrCodeAccessDeniedException "AccessDeniedException"
2246//   The user is not authorized to access a resource.
2247//
2248// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyClientProperties
2249func (c *WorkSpaces) ModifyClientProperties(input *ModifyClientPropertiesInput) (*ModifyClientPropertiesOutput, error) {
2250	req, out := c.ModifyClientPropertiesRequest(input)
2251	return out, req.Send()
2252}
2253
2254// ModifyClientPropertiesWithContext is the same as ModifyClientProperties with the addition of
2255// the ability to pass a context and additional request options.
2256//
2257// See ModifyClientProperties for details on how to use this API operation.
2258//
2259// The context must be non-nil and will be used for request cancellation. If
2260// the context is nil a panic will occur. In the future the SDK may create
2261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2262// for more information on using Contexts.
2263func (c *WorkSpaces) ModifyClientPropertiesWithContext(ctx aws.Context, input *ModifyClientPropertiesInput, opts ...request.Option) (*ModifyClientPropertiesOutput, error) {
2264	req, out := c.ModifyClientPropertiesRequest(input)
2265	req.SetContext(ctx)
2266	req.ApplyOptions(opts...)
2267	return out, req.Send()
2268}
2269
2270const opModifyWorkspaceProperties = "ModifyWorkspaceProperties"
2271
2272// ModifyWorkspacePropertiesRequest generates a "aws/request.Request" representing the
2273// client's request for the ModifyWorkspaceProperties operation. The "output" return
2274// value will be populated with the request's response once the request completes
2275// successfully.
2276//
2277// Use "Send" method on the returned Request to send the API call to the service.
2278// the "output" return value is not valid until after Send returns without error.
2279//
2280// See ModifyWorkspaceProperties for more information on using the ModifyWorkspaceProperties
2281// API call, and error handling.
2282//
2283// This method is useful when you want to inject custom logic or configuration
2284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2285//
2286//
2287//    // Example sending a request using the ModifyWorkspacePropertiesRequest method.
2288//    req, resp := client.ModifyWorkspacePropertiesRequest(params)
2289//
2290//    err := req.Send()
2291//    if err == nil { // resp is now filled
2292//        fmt.Println(resp)
2293//    }
2294//
2295// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceProperties
2296func (c *WorkSpaces) ModifyWorkspacePropertiesRequest(input *ModifyWorkspacePropertiesInput) (req *request.Request, output *ModifyWorkspacePropertiesOutput) {
2297	op := &request.Operation{
2298		Name:       opModifyWorkspaceProperties,
2299		HTTPMethod: "POST",
2300		HTTPPath:   "/",
2301	}
2302
2303	if input == nil {
2304		input = &ModifyWorkspacePropertiesInput{}
2305	}
2306
2307	output = &ModifyWorkspacePropertiesOutput{}
2308	req = c.newRequest(op, input, output)
2309	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2310	return
2311}
2312
2313// ModifyWorkspaceProperties API operation for Amazon WorkSpaces.
2314//
2315// Modifies the specified WorkSpace properties.
2316//
2317// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2318// with awserr.Error's Code and Message methods to get detailed information about
2319// the error.
2320//
2321// See the AWS API reference guide for Amazon WorkSpaces's
2322// API operation ModifyWorkspaceProperties for usage and error information.
2323//
2324// Returned Error Codes:
2325//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2326//   One or more parameter values are not valid.
2327//
2328//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
2329//   The state of the resource is not valid for this operation.
2330//
2331//   * ErrCodeOperationInProgressException "OperationInProgressException"
2332//   The properties of this WorkSpace are currently being modified. Try again
2333//   in a moment.
2334//
2335//   * ErrCodeUnsupportedWorkspaceConfigurationException "UnsupportedWorkspaceConfigurationException"
2336//   The configuration of this WorkSpace is not supported for this operation.
2337//   For more information, see the Amazon WorkSpaces Administration Guide (https://docs.aws.amazon.com/workspaces/latest/adminguide/).
2338//
2339//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2340//   The resource could not be found.
2341//
2342//   * ErrCodeAccessDeniedException "AccessDeniedException"
2343//   The user is not authorized to access a resource.
2344//
2345//   * ErrCodeResourceUnavailableException "ResourceUnavailableException"
2346//   The specified resource is not available.
2347//
2348// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceProperties
2349func (c *WorkSpaces) ModifyWorkspaceProperties(input *ModifyWorkspacePropertiesInput) (*ModifyWorkspacePropertiesOutput, error) {
2350	req, out := c.ModifyWorkspacePropertiesRequest(input)
2351	return out, req.Send()
2352}
2353
2354// ModifyWorkspacePropertiesWithContext is the same as ModifyWorkspaceProperties with the addition of
2355// the ability to pass a context and additional request options.
2356//
2357// See ModifyWorkspaceProperties for details on how to use this API operation.
2358//
2359// The context must be non-nil and will be used for request cancellation. If
2360// the context is nil a panic will occur. In the future the SDK may create
2361// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2362// for more information on using Contexts.
2363func (c *WorkSpaces) ModifyWorkspacePropertiesWithContext(ctx aws.Context, input *ModifyWorkspacePropertiesInput, opts ...request.Option) (*ModifyWorkspacePropertiesOutput, error) {
2364	req, out := c.ModifyWorkspacePropertiesRequest(input)
2365	req.SetContext(ctx)
2366	req.ApplyOptions(opts...)
2367	return out, req.Send()
2368}
2369
2370const opModifyWorkspaceState = "ModifyWorkspaceState"
2371
2372// ModifyWorkspaceStateRequest generates a "aws/request.Request" representing the
2373// client's request for the ModifyWorkspaceState operation. The "output" return
2374// value will be populated with the request's response once the request completes
2375// successfully.
2376//
2377// Use "Send" method on the returned Request to send the API call to the service.
2378// the "output" return value is not valid until after Send returns without error.
2379//
2380// See ModifyWorkspaceState for more information on using the ModifyWorkspaceState
2381// API call, and error handling.
2382//
2383// This method is useful when you want to inject custom logic or configuration
2384// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2385//
2386//
2387//    // Example sending a request using the ModifyWorkspaceStateRequest method.
2388//    req, resp := client.ModifyWorkspaceStateRequest(params)
2389//
2390//    err := req.Send()
2391//    if err == nil { // resp is now filled
2392//        fmt.Println(resp)
2393//    }
2394//
2395// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceState
2396func (c *WorkSpaces) ModifyWorkspaceStateRequest(input *ModifyWorkspaceStateInput) (req *request.Request, output *ModifyWorkspaceStateOutput) {
2397	op := &request.Operation{
2398		Name:       opModifyWorkspaceState,
2399		HTTPMethod: "POST",
2400		HTTPPath:   "/",
2401	}
2402
2403	if input == nil {
2404		input = &ModifyWorkspaceStateInput{}
2405	}
2406
2407	output = &ModifyWorkspaceStateOutput{}
2408	req = c.newRequest(op, input, output)
2409	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2410	return
2411}
2412
2413// ModifyWorkspaceState API operation for Amazon WorkSpaces.
2414//
2415// Sets the state of the specified WorkSpace.
2416//
2417// To maintain a WorkSpace without being interrupted, set the WorkSpace state
2418// to ADMIN_MAINTENANCE. WorkSpaces in this state do not respond to requests
2419// to reboot, stop, start, rebuild, or restore. An AutoStop WorkSpace in this
2420// state is not stopped. Users cannot log into a WorkSpace in the ADMIN_MAINTENANCE
2421// state.
2422//
2423// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2424// with awserr.Error's Code and Message methods to get detailed information about
2425// the error.
2426//
2427// See the AWS API reference guide for Amazon WorkSpaces's
2428// API operation ModifyWorkspaceState for usage and error information.
2429//
2430// Returned Error Codes:
2431//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2432//   One or more parameter values are not valid.
2433//
2434//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
2435//   The state of the resource is not valid for this operation.
2436//
2437//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2438//   The resource could not be found.
2439//
2440// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceState
2441func (c *WorkSpaces) ModifyWorkspaceState(input *ModifyWorkspaceStateInput) (*ModifyWorkspaceStateOutput, error) {
2442	req, out := c.ModifyWorkspaceStateRequest(input)
2443	return out, req.Send()
2444}
2445
2446// ModifyWorkspaceStateWithContext is the same as ModifyWorkspaceState with the addition of
2447// the ability to pass a context and additional request options.
2448//
2449// See ModifyWorkspaceState for details on how to use this API operation.
2450//
2451// The context must be non-nil and will be used for request cancellation. If
2452// the context is nil a panic will occur. In the future the SDK may create
2453// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2454// for more information on using Contexts.
2455func (c *WorkSpaces) ModifyWorkspaceStateWithContext(ctx aws.Context, input *ModifyWorkspaceStateInput, opts ...request.Option) (*ModifyWorkspaceStateOutput, error) {
2456	req, out := c.ModifyWorkspaceStateRequest(input)
2457	req.SetContext(ctx)
2458	req.ApplyOptions(opts...)
2459	return out, req.Send()
2460}
2461
2462const opRebootWorkspaces = "RebootWorkspaces"
2463
2464// RebootWorkspacesRequest generates a "aws/request.Request" representing the
2465// client's request for the RebootWorkspaces operation. The "output" return
2466// value will be populated with the request's response once the request completes
2467// successfully.
2468//
2469// Use "Send" method on the returned Request to send the API call to the service.
2470// the "output" return value is not valid until after Send returns without error.
2471//
2472// See RebootWorkspaces for more information on using the RebootWorkspaces
2473// API call, and error handling.
2474//
2475// This method is useful when you want to inject custom logic or configuration
2476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2477//
2478//
2479//    // Example sending a request using the RebootWorkspacesRequest method.
2480//    req, resp := client.RebootWorkspacesRequest(params)
2481//
2482//    err := req.Send()
2483//    if err == nil { // resp is now filled
2484//        fmt.Println(resp)
2485//    }
2486//
2487// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebootWorkspaces
2488func (c *WorkSpaces) RebootWorkspacesRequest(input *RebootWorkspacesInput) (req *request.Request, output *RebootWorkspacesOutput) {
2489	op := &request.Operation{
2490		Name:       opRebootWorkspaces,
2491		HTTPMethod: "POST",
2492		HTTPPath:   "/",
2493	}
2494
2495	if input == nil {
2496		input = &RebootWorkspacesInput{}
2497	}
2498
2499	output = &RebootWorkspacesOutput{}
2500	req = c.newRequest(op, input, output)
2501	return
2502}
2503
2504// RebootWorkspaces API operation for Amazon WorkSpaces.
2505//
2506// Reboots the specified WorkSpaces.
2507//
2508// You cannot reboot a WorkSpace unless its state is AVAILABLE or UNHEALTHY.
2509//
2510// This operation is asynchronous and returns before the WorkSpaces have rebooted.
2511//
2512// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2513// with awserr.Error's Code and Message methods to get detailed information about
2514// the error.
2515//
2516// See the AWS API reference guide for Amazon WorkSpaces's
2517// API operation RebootWorkspaces for usage and error information.
2518// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebootWorkspaces
2519func (c *WorkSpaces) RebootWorkspaces(input *RebootWorkspacesInput) (*RebootWorkspacesOutput, error) {
2520	req, out := c.RebootWorkspacesRequest(input)
2521	return out, req.Send()
2522}
2523
2524// RebootWorkspacesWithContext is the same as RebootWorkspaces with the addition of
2525// the ability to pass a context and additional request options.
2526//
2527// See RebootWorkspaces for details on how to use this API operation.
2528//
2529// The context must be non-nil and will be used for request cancellation. If
2530// the context is nil a panic will occur. In the future the SDK may create
2531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2532// for more information on using Contexts.
2533func (c *WorkSpaces) RebootWorkspacesWithContext(ctx aws.Context, input *RebootWorkspacesInput, opts ...request.Option) (*RebootWorkspacesOutput, error) {
2534	req, out := c.RebootWorkspacesRequest(input)
2535	req.SetContext(ctx)
2536	req.ApplyOptions(opts...)
2537	return out, req.Send()
2538}
2539
2540const opRebuildWorkspaces = "RebuildWorkspaces"
2541
2542// RebuildWorkspacesRequest generates a "aws/request.Request" representing the
2543// client's request for the RebuildWorkspaces operation. The "output" return
2544// value will be populated with the request's response once the request completes
2545// successfully.
2546//
2547// Use "Send" method on the returned Request to send the API call to the service.
2548// the "output" return value is not valid until after Send returns without error.
2549//
2550// See RebuildWorkspaces for more information on using the RebuildWorkspaces
2551// API call, and error handling.
2552//
2553// This method is useful when you want to inject custom logic or configuration
2554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2555//
2556//
2557//    // Example sending a request using the RebuildWorkspacesRequest method.
2558//    req, resp := client.RebuildWorkspacesRequest(params)
2559//
2560//    err := req.Send()
2561//    if err == nil { // resp is now filled
2562//        fmt.Println(resp)
2563//    }
2564//
2565// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces
2566func (c *WorkSpaces) RebuildWorkspacesRequest(input *RebuildWorkspacesInput) (req *request.Request, output *RebuildWorkspacesOutput) {
2567	op := &request.Operation{
2568		Name:       opRebuildWorkspaces,
2569		HTTPMethod: "POST",
2570		HTTPPath:   "/",
2571	}
2572
2573	if input == nil {
2574		input = &RebuildWorkspacesInput{}
2575	}
2576
2577	output = &RebuildWorkspacesOutput{}
2578	req = c.newRequest(op, input, output)
2579	return
2580}
2581
2582// RebuildWorkspaces API operation for Amazon WorkSpaces.
2583//
2584// Rebuilds the specified WorkSpace.
2585//
2586// You cannot rebuild a WorkSpace unless its state is AVAILABLE, ERROR, or UNHEALTHY.
2587//
2588// Rebuilding a WorkSpace is a potentially destructive action that can result
2589// in the loss of data. For more information, see Rebuild a WorkSpace (https://docs.aws.amazon.com/workspaces/latest/adminguide/reset-workspace.html).
2590//
2591// This operation is asynchronous and returns before the WorkSpaces have been
2592// completely rebuilt.
2593//
2594// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2595// with awserr.Error's Code and Message methods to get detailed information about
2596// the error.
2597//
2598// See the AWS API reference guide for Amazon WorkSpaces's
2599// API operation RebuildWorkspaces for usage and error information.
2600// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces
2601func (c *WorkSpaces) RebuildWorkspaces(input *RebuildWorkspacesInput) (*RebuildWorkspacesOutput, error) {
2602	req, out := c.RebuildWorkspacesRequest(input)
2603	return out, req.Send()
2604}
2605
2606// RebuildWorkspacesWithContext is the same as RebuildWorkspaces with the addition of
2607// the ability to pass a context and additional request options.
2608//
2609// See RebuildWorkspaces for details on how to use this API operation.
2610//
2611// The context must be non-nil and will be used for request cancellation. If
2612// the context is nil a panic will occur. In the future the SDK may create
2613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2614// for more information on using Contexts.
2615func (c *WorkSpaces) RebuildWorkspacesWithContext(ctx aws.Context, input *RebuildWorkspacesInput, opts ...request.Option) (*RebuildWorkspacesOutput, error) {
2616	req, out := c.RebuildWorkspacesRequest(input)
2617	req.SetContext(ctx)
2618	req.ApplyOptions(opts...)
2619	return out, req.Send()
2620}
2621
2622const opRevokeIpRules = "RevokeIpRules"
2623
2624// RevokeIpRulesRequest generates a "aws/request.Request" representing the
2625// client's request for the RevokeIpRules operation. The "output" return
2626// value will be populated with the request's response once the request completes
2627// successfully.
2628//
2629// Use "Send" method on the returned Request to send the API call to the service.
2630// the "output" return value is not valid until after Send returns without error.
2631//
2632// See RevokeIpRules for more information on using the RevokeIpRules
2633// API call, and error handling.
2634//
2635// This method is useful when you want to inject custom logic or configuration
2636// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2637//
2638//
2639//    // Example sending a request using the RevokeIpRulesRequest method.
2640//    req, resp := client.RevokeIpRulesRequest(params)
2641//
2642//    err := req.Send()
2643//    if err == nil { // resp is now filled
2644//        fmt.Println(resp)
2645//    }
2646//
2647// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RevokeIpRules
2648func (c *WorkSpaces) RevokeIpRulesRequest(input *RevokeIpRulesInput) (req *request.Request, output *RevokeIpRulesOutput) {
2649	op := &request.Operation{
2650		Name:       opRevokeIpRules,
2651		HTTPMethod: "POST",
2652		HTTPPath:   "/",
2653	}
2654
2655	if input == nil {
2656		input = &RevokeIpRulesInput{}
2657	}
2658
2659	output = &RevokeIpRulesOutput{}
2660	req = c.newRequest(op, input, output)
2661	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2662	return
2663}
2664
2665// RevokeIpRules API operation for Amazon WorkSpaces.
2666//
2667// Removes one or more rules from the specified IP access control group.
2668//
2669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2670// with awserr.Error's Code and Message methods to get detailed information about
2671// the error.
2672//
2673// See the AWS API reference guide for Amazon WorkSpaces's
2674// API operation RevokeIpRules for usage and error information.
2675//
2676// Returned Error Codes:
2677//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2678//   One or more parameter values are not valid.
2679//
2680//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2681//   The resource could not be found.
2682//
2683//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
2684//   The state of the resource is not valid for this operation.
2685//
2686//   * ErrCodeAccessDeniedException "AccessDeniedException"
2687//   The user is not authorized to access a resource.
2688//
2689// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RevokeIpRules
2690func (c *WorkSpaces) RevokeIpRules(input *RevokeIpRulesInput) (*RevokeIpRulesOutput, error) {
2691	req, out := c.RevokeIpRulesRequest(input)
2692	return out, req.Send()
2693}
2694
2695// RevokeIpRulesWithContext is the same as RevokeIpRules with the addition of
2696// the ability to pass a context and additional request options.
2697//
2698// See RevokeIpRules for details on how to use this API operation.
2699//
2700// The context must be non-nil and will be used for request cancellation. If
2701// the context is nil a panic will occur. In the future the SDK may create
2702// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2703// for more information on using Contexts.
2704func (c *WorkSpaces) RevokeIpRulesWithContext(ctx aws.Context, input *RevokeIpRulesInput, opts ...request.Option) (*RevokeIpRulesOutput, error) {
2705	req, out := c.RevokeIpRulesRequest(input)
2706	req.SetContext(ctx)
2707	req.ApplyOptions(opts...)
2708	return out, req.Send()
2709}
2710
2711const opStartWorkspaces = "StartWorkspaces"
2712
2713// StartWorkspacesRequest generates a "aws/request.Request" representing the
2714// client's request for the StartWorkspaces operation. The "output" return
2715// value will be populated with the request's response once the request completes
2716// successfully.
2717//
2718// Use "Send" method on the returned Request to send the API call to the service.
2719// the "output" return value is not valid until after Send returns without error.
2720//
2721// See StartWorkspaces for more information on using the StartWorkspaces
2722// API call, and error handling.
2723//
2724// This method is useful when you want to inject custom logic or configuration
2725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2726//
2727//
2728//    // Example sending a request using the StartWorkspacesRequest method.
2729//    req, resp := client.StartWorkspacesRequest(params)
2730//
2731//    err := req.Send()
2732//    if err == nil { // resp is now filled
2733//        fmt.Println(resp)
2734//    }
2735//
2736// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StartWorkspaces
2737func (c *WorkSpaces) StartWorkspacesRequest(input *StartWorkspacesInput) (req *request.Request, output *StartWorkspacesOutput) {
2738	op := &request.Operation{
2739		Name:       opStartWorkspaces,
2740		HTTPMethod: "POST",
2741		HTTPPath:   "/",
2742	}
2743
2744	if input == nil {
2745		input = &StartWorkspacesInput{}
2746	}
2747
2748	output = &StartWorkspacesOutput{}
2749	req = c.newRequest(op, input, output)
2750	return
2751}
2752
2753// StartWorkspaces API operation for Amazon WorkSpaces.
2754//
2755// Starts the specified WorkSpaces.
2756//
2757// You cannot start a WorkSpace unless it has a running mode of AutoStop and
2758// a state of STOPPED.
2759//
2760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2761// with awserr.Error's Code and Message methods to get detailed information about
2762// the error.
2763//
2764// See the AWS API reference guide for Amazon WorkSpaces's
2765// API operation StartWorkspaces for usage and error information.
2766// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StartWorkspaces
2767func (c *WorkSpaces) StartWorkspaces(input *StartWorkspacesInput) (*StartWorkspacesOutput, error) {
2768	req, out := c.StartWorkspacesRequest(input)
2769	return out, req.Send()
2770}
2771
2772// StartWorkspacesWithContext is the same as StartWorkspaces with the addition of
2773// the ability to pass a context and additional request options.
2774//
2775// See StartWorkspaces for details on how to use this API operation.
2776//
2777// The context must be non-nil and will be used for request cancellation. If
2778// the context is nil a panic will occur. In the future the SDK may create
2779// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2780// for more information on using Contexts.
2781func (c *WorkSpaces) StartWorkspacesWithContext(ctx aws.Context, input *StartWorkspacesInput, opts ...request.Option) (*StartWorkspacesOutput, error) {
2782	req, out := c.StartWorkspacesRequest(input)
2783	req.SetContext(ctx)
2784	req.ApplyOptions(opts...)
2785	return out, req.Send()
2786}
2787
2788const opStopWorkspaces = "StopWorkspaces"
2789
2790// StopWorkspacesRequest generates a "aws/request.Request" representing the
2791// client's request for the StopWorkspaces operation. The "output" return
2792// value will be populated with the request's response once the request completes
2793// successfully.
2794//
2795// Use "Send" method on the returned Request to send the API call to the service.
2796// the "output" return value is not valid until after Send returns without error.
2797//
2798// See StopWorkspaces for more information on using the StopWorkspaces
2799// API call, and error handling.
2800//
2801// This method is useful when you want to inject custom logic or configuration
2802// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2803//
2804//
2805//    // Example sending a request using the StopWorkspacesRequest method.
2806//    req, resp := client.StopWorkspacesRequest(params)
2807//
2808//    err := req.Send()
2809//    if err == nil { // resp is now filled
2810//        fmt.Println(resp)
2811//    }
2812//
2813// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StopWorkspaces
2814func (c *WorkSpaces) StopWorkspacesRequest(input *StopWorkspacesInput) (req *request.Request, output *StopWorkspacesOutput) {
2815	op := &request.Operation{
2816		Name:       opStopWorkspaces,
2817		HTTPMethod: "POST",
2818		HTTPPath:   "/",
2819	}
2820
2821	if input == nil {
2822		input = &StopWorkspacesInput{}
2823	}
2824
2825	output = &StopWorkspacesOutput{}
2826	req = c.newRequest(op, input, output)
2827	return
2828}
2829
2830// StopWorkspaces API operation for Amazon WorkSpaces.
2831//
2832// Stops the specified WorkSpaces.
2833//
2834// You cannot stop a WorkSpace unless it has a running mode of AutoStop and
2835// a state of AVAILABLE, IMPAIRED, UNHEALTHY, or ERROR.
2836//
2837// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2838// with awserr.Error's Code and Message methods to get detailed information about
2839// the error.
2840//
2841// See the AWS API reference guide for Amazon WorkSpaces's
2842// API operation StopWorkspaces for usage and error information.
2843// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StopWorkspaces
2844func (c *WorkSpaces) StopWorkspaces(input *StopWorkspacesInput) (*StopWorkspacesOutput, error) {
2845	req, out := c.StopWorkspacesRequest(input)
2846	return out, req.Send()
2847}
2848
2849// StopWorkspacesWithContext is the same as StopWorkspaces with the addition of
2850// the ability to pass a context and additional request options.
2851//
2852// See StopWorkspaces for details on how to use this API operation.
2853//
2854// The context must be non-nil and will be used for request cancellation. If
2855// the context is nil a panic will occur. In the future the SDK may create
2856// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2857// for more information on using Contexts.
2858func (c *WorkSpaces) StopWorkspacesWithContext(ctx aws.Context, input *StopWorkspacesInput, opts ...request.Option) (*StopWorkspacesOutput, error) {
2859	req, out := c.StopWorkspacesRequest(input)
2860	req.SetContext(ctx)
2861	req.ApplyOptions(opts...)
2862	return out, req.Send()
2863}
2864
2865const opTerminateWorkspaces = "TerminateWorkspaces"
2866
2867// TerminateWorkspacesRequest generates a "aws/request.Request" representing the
2868// client's request for the TerminateWorkspaces operation. The "output" return
2869// value will be populated with the request's response once the request completes
2870// successfully.
2871//
2872// Use "Send" method on the returned Request to send the API call to the service.
2873// the "output" return value is not valid until after Send returns without error.
2874//
2875// See TerminateWorkspaces for more information on using the TerminateWorkspaces
2876// API call, and error handling.
2877//
2878// This method is useful when you want to inject custom logic or configuration
2879// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2880//
2881//
2882//    // Example sending a request using the TerminateWorkspacesRequest method.
2883//    req, resp := client.TerminateWorkspacesRequest(params)
2884//
2885//    err := req.Send()
2886//    if err == nil { // resp is now filled
2887//        fmt.Println(resp)
2888//    }
2889//
2890// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/TerminateWorkspaces
2891func (c *WorkSpaces) TerminateWorkspacesRequest(input *TerminateWorkspacesInput) (req *request.Request, output *TerminateWorkspacesOutput) {
2892	op := &request.Operation{
2893		Name:       opTerminateWorkspaces,
2894		HTTPMethod: "POST",
2895		HTTPPath:   "/",
2896	}
2897
2898	if input == nil {
2899		input = &TerminateWorkspacesInput{}
2900	}
2901
2902	output = &TerminateWorkspacesOutput{}
2903	req = c.newRequest(op, input, output)
2904	return
2905}
2906
2907// TerminateWorkspaces API operation for Amazon WorkSpaces.
2908//
2909// Terminates the specified WorkSpaces.
2910//
2911// Terminating a WorkSpace is a permanent action and cannot be undone. The user's
2912// data is destroyed. If you need to archive any user data, contact Amazon Web
2913// Services before terminating the WorkSpace.
2914//
2915// You can terminate a WorkSpace that is in any state except SUSPENDED.
2916//
2917// This operation is asynchronous and returns before the WorkSpaces have been
2918// completely terminated.
2919//
2920// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2921// with awserr.Error's Code and Message methods to get detailed information about
2922// the error.
2923//
2924// See the AWS API reference guide for Amazon WorkSpaces's
2925// API operation TerminateWorkspaces for usage and error information.
2926// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/TerminateWorkspaces
2927func (c *WorkSpaces) TerminateWorkspaces(input *TerminateWorkspacesInput) (*TerminateWorkspacesOutput, error) {
2928	req, out := c.TerminateWorkspacesRequest(input)
2929	return out, req.Send()
2930}
2931
2932// TerminateWorkspacesWithContext is the same as TerminateWorkspaces with the addition of
2933// the ability to pass a context and additional request options.
2934//
2935// See TerminateWorkspaces for details on how to use this API operation.
2936//
2937// The context must be non-nil and will be used for request cancellation. If
2938// the context is nil a panic will occur. In the future the SDK may create
2939// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2940// for more information on using Contexts.
2941func (c *WorkSpaces) TerminateWorkspacesWithContext(ctx aws.Context, input *TerminateWorkspacesInput, opts ...request.Option) (*TerminateWorkspacesOutput, error) {
2942	req, out := c.TerminateWorkspacesRequest(input)
2943	req.SetContext(ctx)
2944	req.ApplyOptions(opts...)
2945	return out, req.Send()
2946}
2947
2948const opUpdateRulesOfIpGroup = "UpdateRulesOfIpGroup"
2949
2950// UpdateRulesOfIpGroupRequest generates a "aws/request.Request" representing the
2951// client's request for the UpdateRulesOfIpGroup operation. The "output" return
2952// value will be populated with the request's response once the request completes
2953// successfully.
2954//
2955// Use "Send" method on the returned Request to send the API call to the service.
2956// the "output" return value is not valid until after Send returns without error.
2957//
2958// See UpdateRulesOfIpGroup for more information on using the UpdateRulesOfIpGroup
2959// API call, and error handling.
2960//
2961// This method is useful when you want to inject custom logic or configuration
2962// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2963//
2964//
2965//    // Example sending a request using the UpdateRulesOfIpGroupRequest method.
2966//    req, resp := client.UpdateRulesOfIpGroupRequest(params)
2967//
2968//    err := req.Send()
2969//    if err == nil { // resp is now filled
2970//        fmt.Println(resp)
2971//    }
2972//
2973// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateRulesOfIpGroup
2974func (c *WorkSpaces) UpdateRulesOfIpGroupRequest(input *UpdateRulesOfIpGroupInput) (req *request.Request, output *UpdateRulesOfIpGroupOutput) {
2975	op := &request.Operation{
2976		Name:       opUpdateRulesOfIpGroup,
2977		HTTPMethod: "POST",
2978		HTTPPath:   "/",
2979	}
2980
2981	if input == nil {
2982		input = &UpdateRulesOfIpGroupInput{}
2983	}
2984
2985	output = &UpdateRulesOfIpGroupOutput{}
2986	req = c.newRequest(op, input, output)
2987	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2988	return
2989}
2990
2991// UpdateRulesOfIpGroup API operation for Amazon WorkSpaces.
2992//
2993// Replaces the current rules of the specified IP access control group with
2994// the specified rules.
2995//
2996// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2997// with awserr.Error's Code and Message methods to get detailed information about
2998// the error.
2999//
3000// See the AWS API reference guide for Amazon WorkSpaces's
3001// API operation UpdateRulesOfIpGroup for usage and error information.
3002//
3003// Returned Error Codes:
3004//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
3005//   One or more parameter values are not valid.
3006//
3007//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3008//   The resource could not be found.
3009//
3010//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
3011//   Your resource limits have been exceeded.
3012//
3013//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
3014//   The state of the resource is not valid for this operation.
3015//
3016//   * ErrCodeAccessDeniedException "AccessDeniedException"
3017//   The user is not authorized to access a resource.
3018//
3019// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateRulesOfIpGroup
3020func (c *WorkSpaces) UpdateRulesOfIpGroup(input *UpdateRulesOfIpGroupInput) (*UpdateRulesOfIpGroupOutput, error) {
3021	req, out := c.UpdateRulesOfIpGroupRequest(input)
3022	return out, req.Send()
3023}
3024
3025// UpdateRulesOfIpGroupWithContext is the same as UpdateRulesOfIpGroup with the addition of
3026// the ability to pass a context and additional request options.
3027//
3028// See UpdateRulesOfIpGroup for details on how to use this API operation.
3029//
3030// The context must be non-nil and will be used for request cancellation. If
3031// the context is nil a panic will occur. In the future the SDK may create
3032// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3033// for more information on using Contexts.
3034func (c *WorkSpaces) UpdateRulesOfIpGroupWithContext(ctx aws.Context, input *UpdateRulesOfIpGroupInput, opts ...request.Option) (*UpdateRulesOfIpGroupOutput, error) {
3035	req, out := c.UpdateRulesOfIpGroupRequest(input)
3036	req.SetContext(ctx)
3037	req.ApplyOptions(opts...)
3038	return out, req.Send()
3039}
3040
3041// Describes a modification to the configuration of bring your own license (BYOL)
3042// for the specified account.
3043type AccountModification struct {
3044	_ struct{} `type:"structure"`
3045
3046	// The IP address range, specified as an IPv4 CIDR block, for the management
3047	// network interface used for the account.
3048	DedicatedTenancyManagementCidrRange *string `type:"string"`
3049
3050	// The status of BYOL (whether BYOL is being enabled or disabled).
3051	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportResultEnum"`
3052
3053	// The error code that is returned if the configuration of BYOL cannot be modified.
3054	ErrorCode *string `type:"string"`
3055
3056	// The text of the error message that is returned if the configuration of BYOL
3057	// cannot be modified.
3058	ErrorMessage *string `type:"string"`
3059
3060	// The state of the modification to the configuration of BYOL.
3061	ModificationState *string `type:"string" enum:"DedicatedTenancyModificationStateEnum"`
3062
3063	// The timestamp when the modification of the BYOL configuration was started.
3064	StartTime *time.Time `type:"timestamp"`
3065}
3066
3067// String returns the string representation
3068func (s AccountModification) String() string {
3069	return awsutil.Prettify(s)
3070}
3071
3072// GoString returns the string representation
3073func (s AccountModification) GoString() string {
3074	return s.String()
3075}
3076
3077// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
3078func (s *AccountModification) SetDedicatedTenancyManagementCidrRange(v string) *AccountModification {
3079	s.DedicatedTenancyManagementCidrRange = &v
3080	return s
3081}
3082
3083// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
3084func (s *AccountModification) SetDedicatedTenancySupport(v string) *AccountModification {
3085	s.DedicatedTenancySupport = &v
3086	return s
3087}
3088
3089// SetErrorCode sets the ErrorCode field's value.
3090func (s *AccountModification) SetErrorCode(v string) *AccountModification {
3091	s.ErrorCode = &v
3092	return s
3093}
3094
3095// SetErrorMessage sets the ErrorMessage field's value.
3096func (s *AccountModification) SetErrorMessage(v string) *AccountModification {
3097	s.ErrorMessage = &v
3098	return s
3099}
3100
3101// SetModificationState sets the ModificationState field's value.
3102func (s *AccountModification) SetModificationState(v string) *AccountModification {
3103	s.ModificationState = &v
3104	return s
3105}
3106
3107// SetStartTime sets the StartTime field's value.
3108func (s *AccountModification) SetStartTime(v time.Time) *AccountModification {
3109	s.StartTime = &v
3110	return s
3111}
3112
3113type AssociateIpGroupsInput struct {
3114	_ struct{} `type:"structure"`
3115
3116	// The identifier of the directory.
3117	//
3118	// DirectoryId is a required field
3119	DirectoryId *string `type:"string" required:"true"`
3120
3121	// The identifiers of one or more IP access control groups.
3122	//
3123	// GroupIds is a required field
3124	GroupIds []*string `type:"list" required:"true"`
3125}
3126
3127// String returns the string representation
3128func (s AssociateIpGroupsInput) String() string {
3129	return awsutil.Prettify(s)
3130}
3131
3132// GoString returns the string representation
3133func (s AssociateIpGroupsInput) GoString() string {
3134	return s.String()
3135}
3136
3137// Validate inspects the fields of the type to determine if they are valid.
3138func (s *AssociateIpGroupsInput) Validate() error {
3139	invalidParams := request.ErrInvalidParams{Context: "AssociateIpGroupsInput"}
3140	if s.DirectoryId == nil {
3141		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
3142	}
3143	if s.GroupIds == nil {
3144		invalidParams.Add(request.NewErrParamRequired("GroupIds"))
3145	}
3146
3147	if invalidParams.Len() > 0 {
3148		return invalidParams
3149	}
3150	return nil
3151}
3152
3153// SetDirectoryId sets the DirectoryId field's value.
3154func (s *AssociateIpGroupsInput) SetDirectoryId(v string) *AssociateIpGroupsInput {
3155	s.DirectoryId = &v
3156	return s
3157}
3158
3159// SetGroupIds sets the GroupIds field's value.
3160func (s *AssociateIpGroupsInput) SetGroupIds(v []*string) *AssociateIpGroupsInput {
3161	s.GroupIds = v
3162	return s
3163}
3164
3165type AssociateIpGroupsOutput struct {
3166	_ struct{} `type:"structure"`
3167}
3168
3169// String returns the string representation
3170func (s AssociateIpGroupsOutput) String() string {
3171	return awsutil.Prettify(s)
3172}
3173
3174// GoString returns the string representation
3175func (s AssociateIpGroupsOutput) GoString() string {
3176	return s.String()
3177}
3178
3179type AuthorizeIpRulesInput struct {
3180	_ struct{} `type:"structure"`
3181
3182	// The identifier of the group.
3183	//
3184	// GroupId is a required field
3185	GroupId *string `type:"string" required:"true"`
3186
3187	// The rules to add to the group.
3188	//
3189	// UserRules is a required field
3190	UserRules []*IpRuleItem `type:"list" required:"true"`
3191}
3192
3193// String returns the string representation
3194func (s AuthorizeIpRulesInput) String() string {
3195	return awsutil.Prettify(s)
3196}
3197
3198// GoString returns the string representation
3199func (s AuthorizeIpRulesInput) GoString() string {
3200	return s.String()
3201}
3202
3203// Validate inspects the fields of the type to determine if they are valid.
3204func (s *AuthorizeIpRulesInput) Validate() error {
3205	invalidParams := request.ErrInvalidParams{Context: "AuthorizeIpRulesInput"}
3206	if s.GroupId == nil {
3207		invalidParams.Add(request.NewErrParamRequired("GroupId"))
3208	}
3209	if s.UserRules == nil {
3210		invalidParams.Add(request.NewErrParamRequired("UserRules"))
3211	}
3212
3213	if invalidParams.Len() > 0 {
3214		return invalidParams
3215	}
3216	return nil
3217}
3218
3219// SetGroupId sets the GroupId field's value.
3220func (s *AuthorizeIpRulesInput) SetGroupId(v string) *AuthorizeIpRulesInput {
3221	s.GroupId = &v
3222	return s
3223}
3224
3225// SetUserRules sets the UserRules field's value.
3226func (s *AuthorizeIpRulesInput) SetUserRules(v []*IpRuleItem) *AuthorizeIpRulesInput {
3227	s.UserRules = v
3228	return s
3229}
3230
3231type AuthorizeIpRulesOutput struct {
3232	_ struct{} `type:"structure"`
3233}
3234
3235// String returns the string representation
3236func (s AuthorizeIpRulesOutput) String() string {
3237	return awsutil.Prettify(s)
3238}
3239
3240// GoString returns the string representation
3241func (s AuthorizeIpRulesOutput) GoString() string {
3242	return s.String()
3243}
3244
3245// Describes an Amazon WorkSpaces client.
3246type ClientProperties struct {
3247	_ struct{} `type:"structure"`
3248
3249	// Specifies whether users can cache their credentials on the Amazon WorkSpaces
3250	// client. When enabled, users can choose to reconnect to their WorkSpaces without
3251	// re-entering their credentials.
3252	ReconnectEnabled *string `type:"string" enum:"ReconnectEnum"`
3253}
3254
3255// String returns the string representation
3256func (s ClientProperties) String() string {
3257	return awsutil.Prettify(s)
3258}
3259
3260// GoString returns the string representation
3261func (s ClientProperties) GoString() string {
3262	return s.String()
3263}
3264
3265// SetReconnectEnabled sets the ReconnectEnabled field's value.
3266func (s *ClientProperties) SetReconnectEnabled(v string) *ClientProperties {
3267	s.ReconnectEnabled = &v
3268	return s
3269}
3270
3271// Information about the Amazon WorkSpaces client.
3272type ClientPropertiesResult struct {
3273	_ struct{} `type:"structure"`
3274
3275	// Information about the Amazon WorkSpaces client.
3276	ClientProperties *ClientProperties `type:"structure"`
3277
3278	// The resource identifier, in the form of a directory ID.
3279	ResourceId *string `min:"1" type:"string"`
3280}
3281
3282// String returns the string representation
3283func (s ClientPropertiesResult) String() string {
3284	return awsutil.Prettify(s)
3285}
3286
3287// GoString returns the string representation
3288func (s ClientPropertiesResult) GoString() string {
3289	return s.String()
3290}
3291
3292// SetClientProperties sets the ClientProperties field's value.
3293func (s *ClientPropertiesResult) SetClientProperties(v *ClientProperties) *ClientPropertiesResult {
3294	s.ClientProperties = v
3295	return s
3296}
3297
3298// SetResourceId sets the ResourceId field's value.
3299func (s *ClientPropertiesResult) SetResourceId(v string) *ClientPropertiesResult {
3300	s.ResourceId = &v
3301	return s
3302}
3303
3304// Describes the compute type.
3305type ComputeType struct {
3306	_ struct{} `type:"structure"`
3307
3308	// The compute type.
3309	Name *string `type:"string" enum:"Compute"`
3310}
3311
3312// String returns the string representation
3313func (s ComputeType) String() string {
3314	return awsutil.Prettify(s)
3315}
3316
3317// GoString returns the string representation
3318func (s ComputeType) GoString() string {
3319	return s.String()
3320}
3321
3322// SetName sets the Name field's value.
3323func (s *ComputeType) SetName(v string) *ComputeType {
3324	s.Name = &v
3325	return s
3326}
3327
3328type CopyWorkspaceImageInput struct {
3329	_ struct{} `type:"structure"`
3330
3331	// A description of the image.
3332	Description *string `min:"1" type:"string"`
3333
3334	// The name of the image.
3335	//
3336	// Name is a required field
3337	Name *string `min:"1" type:"string" required:"true"`
3338
3339	// The identifier of the source image.
3340	//
3341	// SourceImageId is a required field
3342	SourceImageId *string `type:"string" required:"true"`
3343
3344	// The identifier of the source Region.
3345	//
3346	// SourceRegion is a required field
3347	SourceRegion *string `min:"1" type:"string" required:"true"`
3348
3349	// The tags for the image.
3350	Tags []*Tag `type:"list"`
3351}
3352
3353// String returns the string representation
3354func (s CopyWorkspaceImageInput) String() string {
3355	return awsutil.Prettify(s)
3356}
3357
3358// GoString returns the string representation
3359func (s CopyWorkspaceImageInput) GoString() string {
3360	return s.String()
3361}
3362
3363// Validate inspects the fields of the type to determine if they are valid.
3364func (s *CopyWorkspaceImageInput) Validate() error {
3365	invalidParams := request.ErrInvalidParams{Context: "CopyWorkspaceImageInput"}
3366	if s.Description != nil && len(*s.Description) < 1 {
3367		invalidParams.Add(request.NewErrParamMinLen("Description", 1))
3368	}
3369	if s.Name == nil {
3370		invalidParams.Add(request.NewErrParamRequired("Name"))
3371	}
3372	if s.Name != nil && len(*s.Name) < 1 {
3373		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
3374	}
3375	if s.SourceImageId == nil {
3376		invalidParams.Add(request.NewErrParamRequired("SourceImageId"))
3377	}
3378	if s.SourceRegion == nil {
3379		invalidParams.Add(request.NewErrParamRequired("SourceRegion"))
3380	}
3381	if s.SourceRegion != nil && len(*s.SourceRegion) < 1 {
3382		invalidParams.Add(request.NewErrParamMinLen("SourceRegion", 1))
3383	}
3384	if s.Tags != nil {
3385		for i, v := range s.Tags {
3386			if v == nil {
3387				continue
3388			}
3389			if err := v.Validate(); err != nil {
3390				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3391			}
3392		}
3393	}
3394
3395	if invalidParams.Len() > 0 {
3396		return invalidParams
3397	}
3398	return nil
3399}
3400
3401// SetDescription sets the Description field's value.
3402func (s *CopyWorkspaceImageInput) SetDescription(v string) *CopyWorkspaceImageInput {
3403	s.Description = &v
3404	return s
3405}
3406
3407// SetName sets the Name field's value.
3408func (s *CopyWorkspaceImageInput) SetName(v string) *CopyWorkspaceImageInput {
3409	s.Name = &v
3410	return s
3411}
3412
3413// SetSourceImageId sets the SourceImageId field's value.
3414func (s *CopyWorkspaceImageInput) SetSourceImageId(v string) *CopyWorkspaceImageInput {
3415	s.SourceImageId = &v
3416	return s
3417}
3418
3419// SetSourceRegion sets the SourceRegion field's value.
3420func (s *CopyWorkspaceImageInput) SetSourceRegion(v string) *CopyWorkspaceImageInput {
3421	s.SourceRegion = &v
3422	return s
3423}
3424
3425// SetTags sets the Tags field's value.
3426func (s *CopyWorkspaceImageInput) SetTags(v []*Tag) *CopyWorkspaceImageInput {
3427	s.Tags = v
3428	return s
3429}
3430
3431type CopyWorkspaceImageOutput struct {
3432	_ struct{} `type:"structure"`
3433
3434	// The identifier of the image.
3435	ImageId *string `type:"string"`
3436}
3437
3438// String returns the string representation
3439func (s CopyWorkspaceImageOutput) String() string {
3440	return awsutil.Prettify(s)
3441}
3442
3443// GoString returns the string representation
3444func (s CopyWorkspaceImageOutput) GoString() string {
3445	return s.String()
3446}
3447
3448// SetImageId sets the ImageId field's value.
3449func (s *CopyWorkspaceImageOutput) SetImageId(v string) *CopyWorkspaceImageOutput {
3450	s.ImageId = &v
3451	return s
3452}
3453
3454type CreateIpGroupInput struct {
3455	_ struct{} `type:"structure"`
3456
3457	// The description of the group.
3458	GroupDesc *string `type:"string"`
3459
3460	// The name of the group.
3461	//
3462	// GroupName is a required field
3463	GroupName *string `type:"string" required:"true"`
3464
3465	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
3466	Tags []*Tag `type:"list"`
3467
3468	// The rules to add to the group.
3469	UserRules []*IpRuleItem `type:"list"`
3470}
3471
3472// String returns the string representation
3473func (s CreateIpGroupInput) String() string {
3474	return awsutil.Prettify(s)
3475}
3476
3477// GoString returns the string representation
3478func (s CreateIpGroupInput) GoString() string {
3479	return s.String()
3480}
3481
3482// Validate inspects the fields of the type to determine if they are valid.
3483func (s *CreateIpGroupInput) Validate() error {
3484	invalidParams := request.ErrInvalidParams{Context: "CreateIpGroupInput"}
3485	if s.GroupName == nil {
3486		invalidParams.Add(request.NewErrParamRequired("GroupName"))
3487	}
3488	if s.Tags != nil {
3489		for i, v := range s.Tags {
3490			if v == nil {
3491				continue
3492			}
3493			if err := v.Validate(); err != nil {
3494				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3495			}
3496		}
3497	}
3498
3499	if invalidParams.Len() > 0 {
3500		return invalidParams
3501	}
3502	return nil
3503}
3504
3505// SetGroupDesc sets the GroupDesc field's value.
3506func (s *CreateIpGroupInput) SetGroupDesc(v string) *CreateIpGroupInput {
3507	s.GroupDesc = &v
3508	return s
3509}
3510
3511// SetGroupName sets the GroupName field's value.
3512func (s *CreateIpGroupInput) SetGroupName(v string) *CreateIpGroupInput {
3513	s.GroupName = &v
3514	return s
3515}
3516
3517// SetTags sets the Tags field's value.
3518func (s *CreateIpGroupInput) SetTags(v []*Tag) *CreateIpGroupInput {
3519	s.Tags = v
3520	return s
3521}
3522
3523// SetUserRules sets the UserRules field's value.
3524func (s *CreateIpGroupInput) SetUserRules(v []*IpRuleItem) *CreateIpGroupInput {
3525	s.UserRules = v
3526	return s
3527}
3528
3529type CreateIpGroupOutput struct {
3530	_ struct{} `type:"structure"`
3531
3532	// The identifier of the group.
3533	GroupId *string `type:"string"`
3534}
3535
3536// String returns the string representation
3537func (s CreateIpGroupOutput) String() string {
3538	return awsutil.Prettify(s)
3539}
3540
3541// GoString returns the string representation
3542func (s CreateIpGroupOutput) GoString() string {
3543	return s.String()
3544}
3545
3546// SetGroupId sets the GroupId field's value.
3547func (s *CreateIpGroupOutput) SetGroupId(v string) *CreateIpGroupOutput {
3548	s.GroupId = &v
3549	return s
3550}
3551
3552type CreateTagsInput struct {
3553	_ struct{} `type:"structure"`
3554
3555	// The identifier of the WorkSpaces resource. The supported resource types are
3556	// WorkSpaces, registered directories, images, custom bundles, and IP access
3557	// control groups.
3558	//
3559	// ResourceId is a required field
3560	ResourceId *string `min:"1" type:"string" required:"true"`
3561
3562	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
3563	//
3564	// Tags is a required field
3565	Tags []*Tag `type:"list" required:"true"`
3566}
3567
3568// String returns the string representation
3569func (s CreateTagsInput) String() string {
3570	return awsutil.Prettify(s)
3571}
3572
3573// GoString returns the string representation
3574func (s CreateTagsInput) GoString() string {
3575	return s.String()
3576}
3577
3578// Validate inspects the fields of the type to determine if they are valid.
3579func (s *CreateTagsInput) Validate() error {
3580	invalidParams := request.ErrInvalidParams{Context: "CreateTagsInput"}
3581	if s.ResourceId == nil {
3582		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
3583	}
3584	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
3585		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
3586	}
3587	if s.Tags == nil {
3588		invalidParams.Add(request.NewErrParamRequired("Tags"))
3589	}
3590	if s.Tags != nil {
3591		for i, v := range s.Tags {
3592			if v == nil {
3593				continue
3594			}
3595			if err := v.Validate(); err != nil {
3596				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
3597			}
3598		}
3599	}
3600
3601	if invalidParams.Len() > 0 {
3602		return invalidParams
3603	}
3604	return nil
3605}
3606
3607// SetResourceId sets the ResourceId field's value.
3608func (s *CreateTagsInput) SetResourceId(v string) *CreateTagsInput {
3609	s.ResourceId = &v
3610	return s
3611}
3612
3613// SetTags sets the Tags field's value.
3614func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput {
3615	s.Tags = v
3616	return s
3617}
3618
3619type CreateTagsOutput struct {
3620	_ struct{} `type:"structure"`
3621}
3622
3623// String returns the string representation
3624func (s CreateTagsOutput) String() string {
3625	return awsutil.Prettify(s)
3626}
3627
3628// GoString returns the string representation
3629func (s CreateTagsOutput) GoString() string {
3630	return s.String()
3631}
3632
3633type CreateWorkspacesInput struct {
3634	_ struct{} `type:"structure"`
3635
3636	// The WorkSpaces to create. You can specify up to 25 WorkSpaces.
3637	//
3638	// Workspaces is a required field
3639	Workspaces []*WorkspaceRequest `min:"1" type:"list" required:"true"`
3640}
3641
3642// String returns the string representation
3643func (s CreateWorkspacesInput) String() string {
3644	return awsutil.Prettify(s)
3645}
3646
3647// GoString returns the string representation
3648func (s CreateWorkspacesInput) GoString() string {
3649	return s.String()
3650}
3651
3652// Validate inspects the fields of the type to determine if they are valid.
3653func (s *CreateWorkspacesInput) Validate() error {
3654	invalidParams := request.ErrInvalidParams{Context: "CreateWorkspacesInput"}
3655	if s.Workspaces == nil {
3656		invalidParams.Add(request.NewErrParamRequired("Workspaces"))
3657	}
3658	if s.Workspaces != nil && len(s.Workspaces) < 1 {
3659		invalidParams.Add(request.NewErrParamMinLen("Workspaces", 1))
3660	}
3661	if s.Workspaces != nil {
3662		for i, v := range s.Workspaces {
3663			if v == nil {
3664				continue
3665			}
3666			if err := v.Validate(); err != nil {
3667				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Workspaces", i), err.(request.ErrInvalidParams))
3668			}
3669		}
3670	}
3671
3672	if invalidParams.Len() > 0 {
3673		return invalidParams
3674	}
3675	return nil
3676}
3677
3678// SetWorkspaces sets the Workspaces field's value.
3679func (s *CreateWorkspacesInput) SetWorkspaces(v []*WorkspaceRequest) *CreateWorkspacesInput {
3680	s.Workspaces = v
3681	return s
3682}
3683
3684type CreateWorkspacesOutput struct {
3685	_ struct{} `type:"structure"`
3686
3687	// Information about the WorkSpaces that could not be created.
3688	FailedRequests []*FailedCreateWorkspaceRequest `type:"list"`
3689
3690	// Information about the WorkSpaces that were created.
3691	//
3692	// Because this operation is asynchronous, the identifier returned is not immediately
3693	// available for use with other operations. For example, if you call DescribeWorkspaces
3694	// before the WorkSpace is created, the information returned can be incomplete.
3695	PendingRequests []*Workspace `type:"list"`
3696}
3697
3698// String returns the string representation
3699func (s CreateWorkspacesOutput) String() string {
3700	return awsutil.Prettify(s)
3701}
3702
3703// GoString returns the string representation
3704func (s CreateWorkspacesOutput) GoString() string {
3705	return s.String()
3706}
3707
3708// SetFailedRequests sets the FailedRequests field's value.
3709func (s *CreateWorkspacesOutput) SetFailedRequests(v []*FailedCreateWorkspaceRequest) *CreateWorkspacesOutput {
3710	s.FailedRequests = v
3711	return s
3712}
3713
3714// SetPendingRequests sets the PendingRequests field's value.
3715func (s *CreateWorkspacesOutput) SetPendingRequests(v []*Workspace) *CreateWorkspacesOutput {
3716	s.PendingRequests = v
3717	return s
3718}
3719
3720// Describes the default values used to create a WorkSpace.
3721type DefaultWorkspaceCreationProperties struct {
3722	_ struct{} `type:"structure"`
3723
3724	// The identifier of any security groups to apply to WorkSpaces when they are
3725	// created.
3726	CustomSecurityGroupId *string `type:"string"`
3727
3728	// The organizational unit (OU) in the directory for the WorkSpace machine accounts.
3729	DefaultOu *string `type:"string"`
3730
3731	// The public IP address to attach to all WorkSpaces that are created or rebuilt.
3732	EnableInternetAccess *bool `type:"boolean"`
3733
3734	// Specifies whether the directory is enabled for Amazon WorkDocs.
3735	EnableWorkDocs *bool `type:"boolean"`
3736
3737	// Specifies whether the WorkSpace user is an administrator on the WorkSpace.
3738	UserEnabledAsLocalAdministrator *bool `type:"boolean"`
3739}
3740
3741// String returns the string representation
3742func (s DefaultWorkspaceCreationProperties) String() string {
3743	return awsutil.Prettify(s)
3744}
3745
3746// GoString returns the string representation
3747func (s DefaultWorkspaceCreationProperties) GoString() string {
3748	return s.String()
3749}
3750
3751// SetCustomSecurityGroupId sets the CustomSecurityGroupId field's value.
3752func (s *DefaultWorkspaceCreationProperties) SetCustomSecurityGroupId(v string) *DefaultWorkspaceCreationProperties {
3753	s.CustomSecurityGroupId = &v
3754	return s
3755}
3756
3757// SetDefaultOu sets the DefaultOu field's value.
3758func (s *DefaultWorkspaceCreationProperties) SetDefaultOu(v string) *DefaultWorkspaceCreationProperties {
3759	s.DefaultOu = &v
3760	return s
3761}
3762
3763// SetEnableInternetAccess sets the EnableInternetAccess field's value.
3764func (s *DefaultWorkspaceCreationProperties) SetEnableInternetAccess(v bool) *DefaultWorkspaceCreationProperties {
3765	s.EnableInternetAccess = &v
3766	return s
3767}
3768
3769// SetEnableWorkDocs sets the EnableWorkDocs field's value.
3770func (s *DefaultWorkspaceCreationProperties) SetEnableWorkDocs(v bool) *DefaultWorkspaceCreationProperties {
3771	s.EnableWorkDocs = &v
3772	return s
3773}
3774
3775// SetUserEnabledAsLocalAdministrator sets the UserEnabledAsLocalAdministrator field's value.
3776func (s *DefaultWorkspaceCreationProperties) SetUserEnabledAsLocalAdministrator(v bool) *DefaultWorkspaceCreationProperties {
3777	s.UserEnabledAsLocalAdministrator = &v
3778	return s
3779}
3780
3781type DeleteIpGroupInput struct {
3782	_ struct{} `type:"structure"`
3783
3784	// The identifier of the IP access control group.
3785	//
3786	// GroupId is a required field
3787	GroupId *string `type:"string" required:"true"`
3788}
3789
3790// String returns the string representation
3791func (s DeleteIpGroupInput) String() string {
3792	return awsutil.Prettify(s)
3793}
3794
3795// GoString returns the string representation
3796func (s DeleteIpGroupInput) GoString() string {
3797	return s.String()
3798}
3799
3800// Validate inspects the fields of the type to determine if they are valid.
3801func (s *DeleteIpGroupInput) Validate() error {
3802	invalidParams := request.ErrInvalidParams{Context: "DeleteIpGroupInput"}
3803	if s.GroupId == nil {
3804		invalidParams.Add(request.NewErrParamRequired("GroupId"))
3805	}
3806
3807	if invalidParams.Len() > 0 {
3808		return invalidParams
3809	}
3810	return nil
3811}
3812
3813// SetGroupId sets the GroupId field's value.
3814func (s *DeleteIpGroupInput) SetGroupId(v string) *DeleteIpGroupInput {
3815	s.GroupId = &v
3816	return s
3817}
3818
3819type DeleteIpGroupOutput struct {
3820	_ struct{} `type:"structure"`
3821}
3822
3823// String returns the string representation
3824func (s DeleteIpGroupOutput) String() string {
3825	return awsutil.Prettify(s)
3826}
3827
3828// GoString returns the string representation
3829func (s DeleteIpGroupOutput) GoString() string {
3830	return s.String()
3831}
3832
3833type DeleteTagsInput struct {
3834	_ struct{} `type:"structure"`
3835
3836	// The identifier of the WorkSpaces resource. The supported resource types are
3837	// WorkSpaces, registered directories, images, custom bundles, and IP access
3838	// control groups.
3839	//
3840	// ResourceId is a required field
3841	ResourceId *string `min:"1" type:"string" required:"true"`
3842
3843	// The tag keys.
3844	//
3845	// TagKeys is a required field
3846	TagKeys []*string `type:"list" required:"true"`
3847}
3848
3849// String returns the string representation
3850func (s DeleteTagsInput) String() string {
3851	return awsutil.Prettify(s)
3852}
3853
3854// GoString returns the string representation
3855func (s DeleteTagsInput) GoString() string {
3856	return s.String()
3857}
3858
3859// Validate inspects the fields of the type to determine if they are valid.
3860func (s *DeleteTagsInput) Validate() error {
3861	invalidParams := request.ErrInvalidParams{Context: "DeleteTagsInput"}
3862	if s.ResourceId == nil {
3863		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
3864	}
3865	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
3866		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
3867	}
3868	if s.TagKeys == nil {
3869		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
3870	}
3871
3872	if invalidParams.Len() > 0 {
3873		return invalidParams
3874	}
3875	return nil
3876}
3877
3878// SetResourceId sets the ResourceId field's value.
3879func (s *DeleteTagsInput) SetResourceId(v string) *DeleteTagsInput {
3880	s.ResourceId = &v
3881	return s
3882}
3883
3884// SetTagKeys sets the TagKeys field's value.
3885func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput {
3886	s.TagKeys = v
3887	return s
3888}
3889
3890type DeleteTagsOutput struct {
3891	_ struct{} `type:"structure"`
3892}
3893
3894// String returns the string representation
3895func (s DeleteTagsOutput) String() string {
3896	return awsutil.Prettify(s)
3897}
3898
3899// GoString returns the string representation
3900func (s DeleteTagsOutput) GoString() string {
3901	return s.String()
3902}
3903
3904type DeleteWorkspaceImageInput struct {
3905	_ struct{} `type:"structure"`
3906
3907	// The identifier of the image.
3908	//
3909	// ImageId is a required field
3910	ImageId *string `type:"string" required:"true"`
3911}
3912
3913// String returns the string representation
3914func (s DeleteWorkspaceImageInput) String() string {
3915	return awsutil.Prettify(s)
3916}
3917
3918// GoString returns the string representation
3919func (s DeleteWorkspaceImageInput) GoString() string {
3920	return s.String()
3921}
3922
3923// Validate inspects the fields of the type to determine if they are valid.
3924func (s *DeleteWorkspaceImageInput) Validate() error {
3925	invalidParams := request.ErrInvalidParams{Context: "DeleteWorkspaceImageInput"}
3926	if s.ImageId == nil {
3927		invalidParams.Add(request.NewErrParamRequired("ImageId"))
3928	}
3929
3930	if invalidParams.Len() > 0 {
3931		return invalidParams
3932	}
3933	return nil
3934}
3935
3936// SetImageId sets the ImageId field's value.
3937func (s *DeleteWorkspaceImageInput) SetImageId(v string) *DeleteWorkspaceImageInput {
3938	s.ImageId = &v
3939	return s
3940}
3941
3942type DeleteWorkspaceImageOutput struct {
3943	_ struct{} `type:"structure"`
3944}
3945
3946// String returns the string representation
3947func (s DeleteWorkspaceImageOutput) String() string {
3948	return awsutil.Prettify(s)
3949}
3950
3951// GoString returns the string representation
3952func (s DeleteWorkspaceImageOutput) GoString() string {
3953	return s.String()
3954}
3955
3956type DescribeAccountInput struct {
3957	_ struct{} `type:"structure"`
3958}
3959
3960// String returns the string representation
3961func (s DescribeAccountInput) String() string {
3962	return awsutil.Prettify(s)
3963}
3964
3965// GoString returns the string representation
3966func (s DescribeAccountInput) GoString() string {
3967	return s.String()
3968}
3969
3970type DescribeAccountModificationsInput struct {
3971	_ struct{} `type:"structure"`
3972
3973	// If you received a NextToken from a previous call that was paginated, provide
3974	// this token to receive the next set of results.
3975	NextToken *string `min:"1" type:"string"`
3976}
3977
3978// String returns the string representation
3979func (s DescribeAccountModificationsInput) String() string {
3980	return awsutil.Prettify(s)
3981}
3982
3983// GoString returns the string representation
3984func (s DescribeAccountModificationsInput) GoString() string {
3985	return s.String()
3986}
3987
3988// Validate inspects the fields of the type to determine if they are valid.
3989func (s *DescribeAccountModificationsInput) Validate() error {
3990	invalidParams := request.ErrInvalidParams{Context: "DescribeAccountModificationsInput"}
3991	if s.NextToken != nil && len(*s.NextToken) < 1 {
3992		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3993	}
3994
3995	if invalidParams.Len() > 0 {
3996		return invalidParams
3997	}
3998	return nil
3999}
4000
4001// SetNextToken sets the NextToken field's value.
4002func (s *DescribeAccountModificationsInput) SetNextToken(v string) *DescribeAccountModificationsInput {
4003	s.NextToken = &v
4004	return s
4005}
4006
4007type DescribeAccountModificationsOutput struct {
4008	_ struct{} `type:"structure"`
4009
4010	// The list of modifications to the configuration of BYOL.
4011	AccountModifications []*AccountModification `type:"list"`
4012
4013	// The token to use to retrieve the next set of results, or null if no more
4014	// results are available.
4015	NextToken *string `min:"1" type:"string"`
4016}
4017
4018// String returns the string representation
4019func (s DescribeAccountModificationsOutput) String() string {
4020	return awsutil.Prettify(s)
4021}
4022
4023// GoString returns the string representation
4024func (s DescribeAccountModificationsOutput) GoString() string {
4025	return s.String()
4026}
4027
4028// SetAccountModifications sets the AccountModifications field's value.
4029func (s *DescribeAccountModificationsOutput) SetAccountModifications(v []*AccountModification) *DescribeAccountModificationsOutput {
4030	s.AccountModifications = v
4031	return s
4032}
4033
4034// SetNextToken sets the NextToken field's value.
4035func (s *DescribeAccountModificationsOutput) SetNextToken(v string) *DescribeAccountModificationsOutput {
4036	s.NextToken = &v
4037	return s
4038}
4039
4040type DescribeAccountOutput struct {
4041	_ struct{} `type:"structure"`
4042
4043	// The IP address range, specified as an IPv4 CIDR block, used for the management
4044	// network interface.
4045	//
4046	// The management network interface is connected to a secure Amazon WorkSpaces
4047	// management network. It is used for interactive streaming of the WorkSpace
4048	// desktop to Amazon WorkSpaces clients, and to allow Amazon WorkSpaces to manage
4049	// the WorkSpace.
4050	DedicatedTenancyManagementCidrRange *string `type:"string"`
4051
4052	// The status of BYOL (whether BYOL is enabled or disabled).
4053	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportResultEnum"`
4054}
4055
4056// String returns the string representation
4057func (s DescribeAccountOutput) String() string {
4058	return awsutil.Prettify(s)
4059}
4060
4061// GoString returns the string representation
4062func (s DescribeAccountOutput) GoString() string {
4063	return s.String()
4064}
4065
4066// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
4067func (s *DescribeAccountOutput) SetDedicatedTenancyManagementCidrRange(v string) *DescribeAccountOutput {
4068	s.DedicatedTenancyManagementCidrRange = &v
4069	return s
4070}
4071
4072// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
4073func (s *DescribeAccountOutput) SetDedicatedTenancySupport(v string) *DescribeAccountOutput {
4074	s.DedicatedTenancySupport = &v
4075	return s
4076}
4077
4078type DescribeClientPropertiesInput struct {
4079	_ struct{} `type:"structure"`
4080
4081	// The resource identifier, in the form of directory IDs.
4082	//
4083	// ResourceIds is a required field
4084	ResourceIds []*string `min:"1" type:"list" required:"true"`
4085}
4086
4087// String returns the string representation
4088func (s DescribeClientPropertiesInput) String() string {
4089	return awsutil.Prettify(s)
4090}
4091
4092// GoString returns the string representation
4093func (s DescribeClientPropertiesInput) GoString() string {
4094	return s.String()
4095}
4096
4097// Validate inspects the fields of the type to determine if they are valid.
4098func (s *DescribeClientPropertiesInput) Validate() error {
4099	invalidParams := request.ErrInvalidParams{Context: "DescribeClientPropertiesInput"}
4100	if s.ResourceIds == nil {
4101		invalidParams.Add(request.NewErrParamRequired("ResourceIds"))
4102	}
4103	if s.ResourceIds != nil && len(s.ResourceIds) < 1 {
4104		invalidParams.Add(request.NewErrParamMinLen("ResourceIds", 1))
4105	}
4106
4107	if invalidParams.Len() > 0 {
4108		return invalidParams
4109	}
4110	return nil
4111}
4112
4113// SetResourceIds sets the ResourceIds field's value.
4114func (s *DescribeClientPropertiesInput) SetResourceIds(v []*string) *DescribeClientPropertiesInput {
4115	s.ResourceIds = v
4116	return s
4117}
4118
4119type DescribeClientPropertiesOutput struct {
4120	_ struct{} `type:"structure"`
4121
4122	// Information about the specified Amazon WorkSpaces clients.
4123	ClientPropertiesList []*ClientPropertiesResult `type:"list"`
4124}
4125
4126// String returns the string representation
4127func (s DescribeClientPropertiesOutput) String() string {
4128	return awsutil.Prettify(s)
4129}
4130
4131// GoString returns the string representation
4132func (s DescribeClientPropertiesOutput) GoString() string {
4133	return s.String()
4134}
4135
4136// SetClientPropertiesList sets the ClientPropertiesList field's value.
4137func (s *DescribeClientPropertiesOutput) SetClientPropertiesList(v []*ClientPropertiesResult) *DescribeClientPropertiesOutput {
4138	s.ClientPropertiesList = v
4139	return s
4140}
4141
4142type DescribeIpGroupsInput struct {
4143	_ struct{} `type:"structure"`
4144
4145	// The identifiers of one or more IP access control groups.
4146	GroupIds []*string `type:"list"`
4147
4148	// The maximum number of items to return.
4149	MaxResults *int64 `min:"1" type:"integer"`
4150
4151	// If you received a NextToken from a previous call that was paginated, provide
4152	// this token to receive the next set of results.
4153	NextToken *string `min:"1" type:"string"`
4154}
4155
4156// String returns the string representation
4157func (s DescribeIpGroupsInput) String() string {
4158	return awsutil.Prettify(s)
4159}
4160
4161// GoString returns the string representation
4162func (s DescribeIpGroupsInput) GoString() string {
4163	return s.String()
4164}
4165
4166// Validate inspects the fields of the type to determine if they are valid.
4167func (s *DescribeIpGroupsInput) Validate() error {
4168	invalidParams := request.ErrInvalidParams{Context: "DescribeIpGroupsInput"}
4169	if s.MaxResults != nil && *s.MaxResults < 1 {
4170		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4171	}
4172	if s.NextToken != nil && len(*s.NextToken) < 1 {
4173		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4174	}
4175
4176	if invalidParams.Len() > 0 {
4177		return invalidParams
4178	}
4179	return nil
4180}
4181
4182// SetGroupIds sets the GroupIds field's value.
4183func (s *DescribeIpGroupsInput) SetGroupIds(v []*string) *DescribeIpGroupsInput {
4184	s.GroupIds = v
4185	return s
4186}
4187
4188// SetMaxResults sets the MaxResults field's value.
4189func (s *DescribeIpGroupsInput) SetMaxResults(v int64) *DescribeIpGroupsInput {
4190	s.MaxResults = &v
4191	return s
4192}
4193
4194// SetNextToken sets the NextToken field's value.
4195func (s *DescribeIpGroupsInput) SetNextToken(v string) *DescribeIpGroupsInput {
4196	s.NextToken = &v
4197	return s
4198}
4199
4200type DescribeIpGroupsOutput struct {
4201	_ struct{} `type:"structure"`
4202
4203	// The token to use to retrieve the next set of results, or null if no more
4204	// results are available.
4205	NextToken *string `min:"1" type:"string"`
4206
4207	// Information about the IP access control groups.
4208	Result []*IpGroup `type:"list"`
4209}
4210
4211// String returns the string representation
4212func (s DescribeIpGroupsOutput) String() string {
4213	return awsutil.Prettify(s)
4214}
4215
4216// GoString returns the string representation
4217func (s DescribeIpGroupsOutput) GoString() string {
4218	return s.String()
4219}
4220
4221// SetNextToken sets the NextToken field's value.
4222func (s *DescribeIpGroupsOutput) SetNextToken(v string) *DescribeIpGroupsOutput {
4223	s.NextToken = &v
4224	return s
4225}
4226
4227// SetResult sets the Result field's value.
4228func (s *DescribeIpGroupsOutput) SetResult(v []*IpGroup) *DescribeIpGroupsOutput {
4229	s.Result = v
4230	return s
4231}
4232
4233type DescribeTagsInput struct {
4234	_ struct{} `type:"structure"`
4235
4236	// The identifier of the WorkSpaces resource. The supported resource types are
4237	// WorkSpaces, registered directories, images, custom bundles, and IP access
4238	// control groups.
4239	//
4240	// ResourceId is a required field
4241	ResourceId *string `min:"1" type:"string" required:"true"`
4242}
4243
4244// String returns the string representation
4245func (s DescribeTagsInput) String() string {
4246	return awsutil.Prettify(s)
4247}
4248
4249// GoString returns the string representation
4250func (s DescribeTagsInput) GoString() string {
4251	return s.String()
4252}
4253
4254// Validate inspects the fields of the type to determine if they are valid.
4255func (s *DescribeTagsInput) Validate() error {
4256	invalidParams := request.ErrInvalidParams{Context: "DescribeTagsInput"}
4257	if s.ResourceId == nil {
4258		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
4259	}
4260	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
4261		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
4262	}
4263
4264	if invalidParams.Len() > 0 {
4265		return invalidParams
4266	}
4267	return nil
4268}
4269
4270// SetResourceId sets the ResourceId field's value.
4271func (s *DescribeTagsInput) SetResourceId(v string) *DescribeTagsInput {
4272	s.ResourceId = &v
4273	return s
4274}
4275
4276type DescribeTagsOutput struct {
4277	_ struct{} `type:"structure"`
4278
4279	// The tags.
4280	TagList []*Tag `type:"list"`
4281}
4282
4283// String returns the string representation
4284func (s DescribeTagsOutput) String() string {
4285	return awsutil.Prettify(s)
4286}
4287
4288// GoString returns the string representation
4289func (s DescribeTagsOutput) GoString() string {
4290	return s.String()
4291}
4292
4293// SetTagList sets the TagList field's value.
4294func (s *DescribeTagsOutput) SetTagList(v []*Tag) *DescribeTagsOutput {
4295	s.TagList = v
4296	return s
4297}
4298
4299type DescribeWorkspaceBundlesInput struct {
4300	_ struct{} `type:"structure"`
4301
4302	// The identifiers of the bundles. You cannot combine this parameter with any
4303	// other filter.
4304	BundleIds []*string `min:"1" type:"list"`
4305
4306	// The token for the next set of results. (You received this token from a previous
4307	// call.)
4308	NextToken *string `min:"1" type:"string"`
4309
4310	// The owner of the bundles. You cannot combine this parameter with any other
4311	// filter.
4312	//
4313	// Specify AMAZON to describe the bundles provided by AWS or null to describe
4314	// the bundles that belong to your account.
4315	Owner *string `type:"string"`
4316}
4317
4318// String returns the string representation
4319func (s DescribeWorkspaceBundlesInput) String() string {
4320	return awsutil.Prettify(s)
4321}
4322
4323// GoString returns the string representation
4324func (s DescribeWorkspaceBundlesInput) GoString() string {
4325	return s.String()
4326}
4327
4328// Validate inspects the fields of the type to determine if they are valid.
4329func (s *DescribeWorkspaceBundlesInput) Validate() error {
4330	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceBundlesInput"}
4331	if s.BundleIds != nil && len(s.BundleIds) < 1 {
4332		invalidParams.Add(request.NewErrParamMinLen("BundleIds", 1))
4333	}
4334	if s.NextToken != nil && len(*s.NextToken) < 1 {
4335		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4336	}
4337
4338	if invalidParams.Len() > 0 {
4339		return invalidParams
4340	}
4341	return nil
4342}
4343
4344// SetBundleIds sets the BundleIds field's value.
4345func (s *DescribeWorkspaceBundlesInput) SetBundleIds(v []*string) *DescribeWorkspaceBundlesInput {
4346	s.BundleIds = v
4347	return s
4348}
4349
4350// SetNextToken sets the NextToken field's value.
4351func (s *DescribeWorkspaceBundlesInput) SetNextToken(v string) *DescribeWorkspaceBundlesInput {
4352	s.NextToken = &v
4353	return s
4354}
4355
4356// SetOwner sets the Owner field's value.
4357func (s *DescribeWorkspaceBundlesInput) SetOwner(v string) *DescribeWorkspaceBundlesInput {
4358	s.Owner = &v
4359	return s
4360}
4361
4362type DescribeWorkspaceBundlesOutput struct {
4363	_ struct{} `type:"structure"`
4364
4365	// Information about the bundles.
4366	Bundles []*WorkspaceBundle `type:"list"`
4367
4368	// The token to use to retrieve the next set of results, or null if there are
4369	// no more results available. This token is valid for one day and must be used
4370	// within that time frame.
4371	NextToken *string `min:"1" type:"string"`
4372}
4373
4374// String returns the string representation
4375func (s DescribeWorkspaceBundlesOutput) String() string {
4376	return awsutil.Prettify(s)
4377}
4378
4379// GoString returns the string representation
4380func (s DescribeWorkspaceBundlesOutput) GoString() string {
4381	return s.String()
4382}
4383
4384// SetBundles sets the Bundles field's value.
4385func (s *DescribeWorkspaceBundlesOutput) SetBundles(v []*WorkspaceBundle) *DescribeWorkspaceBundlesOutput {
4386	s.Bundles = v
4387	return s
4388}
4389
4390// SetNextToken sets the NextToken field's value.
4391func (s *DescribeWorkspaceBundlesOutput) SetNextToken(v string) *DescribeWorkspaceBundlesOutput {
4392	s.NextToken = &v
4393	return s
4394}
4395
4396type DescribeWorkspaceDirectoriesInput struct {
4397	_ struct{} `type:"structure"`
4398
4399	// The identifiers of the directories. If the value is null, all directories
4400	// are retrieved.
4401	DirectoryIds []*string `min:"1" type:"list"`
4402
4403	// If you received a NextToken from a previous call that was paginated, provide
4404	// this token to receive the next set of results.
4405	NextToken *string `min:"1" type:"string"`
4406}
4407
4408// String returns the string representation
4409func (s DescribeWorkspaceDirectoriesInput) String() string {
4410	return awsutil.Prettify(s)
4411}
4412
4413// GoString returns the string representation
4414func (s DescribeWorkspaceDirectoriesInput) GoString() string {
4415	return s.String()
4416}
4417
4418// Validate inspects the fields of the type to determine if they are valid.
4419func (s *DescribeWorkspaceDirectoriesInput) Validate() error {
4420	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceDirectoriesInput"}
4421	if s.DirectoryIds != nil && len(s.DirectoryIds) < 1 {
4422		invalidParams.Add(request.NewErrParamMinLen("DirectoryIds", 1))
4423	}
4424	if s.NextToken != nil && len(*s.NextToken) < 1 {
4425		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4426	}
4427
4428	if invalidParams.Len() > 0 {
4429		return invalidParams
4430	}
4431	return nil
4432}
4433
4434// SetDirectoryIds sets the DirectoryIds field's value.
4435func (s *DescribeWorkspaceDirectoriesInput) SetDirectoryIds(v []*string) *DescribeWorkspaceDirectoriesInput {
4436	s.DirectoryIds = v
4437	return s
4438}
4439
4440// SetNextToken sets the NextToken field's value.
4441func (s *DescribeWorkspaceDirectoriesInput) SetNextToken(v string) *DescribeWorkspaceDirectoriesInput {
4442	s.NextToken = &v
4443	return s
4444}
4445
4446type DescribeWorkspaceDirectoriesOutput struct {
4447	_ struct{} `type:"structure"`
4448
4449	// Information about the directories.
4450	Directories []*WorkspaceDirectory `type:"list"`
4451
4452	// The token to use to retrieve the next set of results, or null if no more
4453	// results are available.
4454	NextToken *string `min:"1" type:"string"`
4455}
4456
4457// String returns the string representation
4458func (s DescribeWorkspaceDirectoriesOutput) String() string {
4459	return awsutil.Prettify(s)
4460}
4461
4462// GoString returns the string representation
4463func (s DescribeWorkspaceDirectoriesOutput) GoString() string {
4464	return s.String()
4465}
4466
4467// SetDirectories sets the Directories field's value.
4468func (s *DescribeWorkspaceDirectoriesOutput) SetDirectories(v []*WorkspaceDirectory) *DescribeWorkspaceDirectoriesOutput {
4469	s.Directories = v
4470	return s
4471}
4472
4473// SetNextToken sets the NextToken field's value.
4474func (s *DescribeWorkspaceDirectoriesOutput) SetNextToken(v string) *DescribeWorkspaceDirectoriesOutput {
4475	s.NextToken = &v
4476	return s
4477}
4478
4479type DescribeWorkspaceImagesInput struct {
4480	_ struct{} `type:"structure"`
4481
4482	// The identifier of the image.
4483	ImageIds []*string `min:"1" type:"list"`
4484
4485	// The maximum number of items to return.
4486	MaxResults *int64 `min:"1" type:"integer"`
4487
4488	// If you received a NextToken from a previous call that was paginated, provide
4489	// this token to receive the next set of results.
4490	NextToken *string `min:"1" type:"string"`
4491}
4492
4493// String returns the string representation
4494func (s DescribeWorkspaceImagesInput) String() string {
4495	return awsutil.Prettify(s)
4496}
4497
4498// GoString returns the string representation
4499func (s DescribeWorkspaceImagesInput) GoString() string {
4500	return s.String()
4501}
4502
4503// Validate inspects the fields of the type to determine if they are valid.
4504func (s *DescribeWorkspaceImagesInput) Validate() error {
4505	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceImagesInput"}
4506	if s.ImageIds != nil && len(s.ImageIds) < 1 {
4507		invalidParams.Add(request.NewErrParamMinLen("ImageIds", 1))
4508	}
4509	if s.MaxResults != nil && *s.MaxResults < 1 {
4510		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
4511	}
4512	if s.NextToken != nil && len(*s.NextToken) < 1 {
4513		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4514	}
4515
4516	if invalidParams.Len() > 0 {
4517		return invalidParams
4518	}
4519	return nil
4520}
4521
4522// SetImageIds sets the ImageIds field's value.
4523func (s *DescribeWorkspaceImagesInput) SetImageIds(v []*string) *DescribeWorkspaceImagesInput {
4524	s.ImageIds = v
4525	return s
4526}
4527
4528// SetMaxResults sets the MaxResults field's value.
4529func (s *DescribeWorkspaceImagesInput) SetMaxResults(v int64) *DescribeWorkspaceImagesInput {
4530	s.MaxResults = &v
4531	return s
4532}
4533
4534// SetNextToken sets the NextToken field's value.
4535func (s *DescribeWorkspaceImagesInput) SetNextToken(v string) *DescribeWorkspaceImagesInput {
4536	s.NextToken = &v
4537	return s
4538}
4539
4540type DescribeWorkspaceImagesOutput struct {
4541	_ struct{} `type:"structure"`
4542
4543	// Information about the images.
4544	Images []*WorkspaceImage `type:"list"`
4545
4546	// The token to use to retrieve the next set of results, or null if no more
4547	// results are available.
4548	NextToken *string `min:"1" type:"string"`
4549}
4550
4551// String returns the string representation
4552func (s DescribeWorkspaceImagesOutput) String() string {
4553	return awsutil.Prettify(s)
4554}
4555
4556// GoString returns the string representation
4557func (s DescribeWorkspaceImagesOutput) GoString() string {
4558	return s.String()
4559}
4560
4561// SetImages sets the Images field's value.
4562func (s *DescribeWorkspaceImagesOutput) SetImages(v []*WorkspaceImage) *DescribeWorkspaceImagesOutput {
4563	s.Images = v
4564	return s
4565}
4566
4567// SetNextToken sets the NextToken field's value.
4568func (s *DescribeWorkspaceImagesOutput) SetNextToken(v string) *DescribeWorkspaceImagesOutput {
4569	s.NextToken = &v
4570	return s
4571}
4572
4573type DescribeWorkspacesConnectionStatusInput struct {
4574	_ struct{} `type:"structure"`
4575
4576	// If you received a NextToken from a previous call that was paginated, provide
4577	// this token to receive the next set of results.
4578	NextToken *string `min:"1" type:"string"`
4579
4580	// The identifiers of the WorkSpaces. You can specify up to 25 WorkSpaces.
4581	WorkspaceIds []*string `min:"1" type:"list"`
4582}
4583
4584// String returns the string representation
4585func (s DescribeWorkspacesConnectionStatusInput) String() string {
4586	return awsutil.Prettify(s)
4587}
4588
4589// GoString returns the string representation
4590func (s DescribeWorkspacesConnectionStatusInput) GoString() string {
4591	return s.String()
4592}
4593
4594// Validate inspects the fields of the type to determine if they are valid.
4595func (s *DescribeWorkspacesConnectionStatusInput) Validate() error {
4596	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspacesConnectionStatusInput"}
4597	if s.NextToken != nil && len(*s.NextToken) < 1 {
4598		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4599	}
4600	if s.WorkspaceIds != nil && len(s.WorkspaceIds) < 1 {
4601		invalidParams.Add(request.NewErrParamMinLen("WorkspaceIds", 1))
4602	}
4603
4604	if invalidParams.Len() > 0 {
4605		return invalidParams
4606	}
4607	return nil
4608}
4609
4610// SetNextToken sets the NextToken field's value.
4611func (s *DescribeWorkspacesConnectionStatusInput) SetNextToken(v string) *DescribeWorkspacesConnectionStatusInput {
4612	s.NextToken = &v
4613	return s
4614}
4615
4616// SetWorkspaceIds sets the WorkspaceIds field's value.
4617func (s *DescribeWorkspacesConnectionStatusInput) SetWorkspaceIds(v []*string) *DescribeWorkspacesConnectionStatusInput {
4618	s.WorkspaceIds = v
4619	return s
4620}
4621
4622type DescribeWorkspacesConnectionStatusOutput struct {
4623	_ struct{} `type:"structure"`
4624
4625	// The token to use to retrieve the next set of results, or null if no more
4626	// results are available.
4627	NextToken *string `min:"1" type:"string"`
4628
4629	// Information about the connection status of the WorkSpace.
4630	WorkspacesConnectionStatus []*WorkspaceConnectionStatus `type:"list"`
4631}
4632
4633// String returns the string representation
4634func (s DescribeWorkspacesConnectionStatusOutput) String() string {
4635	return awsutil.Prettify(s)
4636}
4637
4638// GoString returns the string representation
4639func (s DescribeWorkspacesConnectionStatusOutput) GoString() string {
4640	return s.String()
4641}
4642
4643// SetNextToken sets the NextToken field's value.
4644func (s *DescribeWorkspacesConnectionStatusOutput) SetNextToken(v string) *DescribeWorkspacesConnectionStatusOutput {
4645	s.NextToken = &v
4646	return s
4647}
4648
4649// SetWorkspacesConnectionStatus sets the WorkspacesConnectionStatus field's value.
4650func (s *DescribeWorkspacesConnectionStatusOutput) SetWorkspacesConnectionStatus(v []*WorkspaceConnectionStatus) *DescribeWorkspacesConnectionStatusOutput {
4651	s.WorkspacesConnectionStatus = v
4652	return s
4653}
4654
4655type DescribeWorkspacesInput struct {
4656	_ struct{} `type:"structure"`
4657
4658	// The identifier of the bundle. All WorkSpaces that are created from this bundle
4659	// are retrieved. You cannot combine this parameter with any other filter.
4660	BundleId *string `type:"string"`
4661
4662	// The identifier of the directory. In addition, you can optionally specify
4663	// a specific directory user (see UserName). You cannot combine this parameter
4664	// with any other filter.
4665	DirectoryId *string `type:"string"`
4666
4667	// The maximum number of items to return.
4668	Limit *int64 `min:"1" type:"integer"`
4669
4670	// If you received a NextToken from a previous call that was paginated, provide
4671	// this token to receive the next set of results.
4672	NextToken *string `min:"1" type:"string"`
4673
4674	// The name of the directory user. You must specify this parameter with DirectoryId.
4675	UserName *string `min:"1" type:"string"`
4676
4677	// The identifiers of the WorkSpaces. You cannot combine this parameter with
4678	// any other filter.
4679	//
4680	// Because the CreateWorkspaces operation is asynchronous, the identifier it
4681	// returns is not immediately available. If you immediately call DescribeWorkspaces
4682	// with this identifier, no information is returned.
4683	WorkspaceIds []*string `min:"1" type:"list"`
4684}
4685
4686// String returns the string representation
4687func (s DescribeWorkspacesInput) String() string {
4688	return awsutil.Prettify(s)
4689}
4690
4691// GoString returns the string representation
4692func (s DescribeWorkspacesInput) GoString() string {
4693	return s.String()
4694}
4695
4696// Validate inspects the fields of the type to determine if they are valid.
4697func (s *DescribeWorkspacesInput) Validate() error {
4698	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspacesInput"}
4699	if s.Limit != nil && *s.Limit < 1 {
4700		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
4701	}
4702	if s.NextToken != nil && len(*s.NextToken) < 1 {
4703		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
4704	}
4705	if s.UserName != nil && len(*s.UserName) < 1 {
4706		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
4707	}
4708	if s.WorkspaceIds != nil && len(s.WorkspaceIds) < 1 {
4709		invalidParams.Add(request.NewErrParamMinLen("WorkspaceIds", 1))
4710	}
4711
4712	if invalidParams.Len() > 0 {
4713		return invalidParams
4714	}
4715	return nil
4716}
4717
4718// SetBundleId sets the BundleId field's value.
4719func (s *DescribeWorkspacesInput) SetBundleId(v string) *DescribeWorkspacesInput {
4720	s.BundleId = &v
4721	return s
4722}
4723
4724// SetDirectoryId sets the DirectoryId field's value.
4725func (s *DescribeWorkspacesInput) SetDirectoryId(v string) *DescribeWorkspacesInput {
4726	s.DirectoryId = &v
4727	return s
4728}
4729
4730// SetLimit sets the Limit field's value.
4731func (s *DescribeWorkspacesInput) SetLimit(v int64) *DescribeWorkspacesInput {
4732	s.Limit = &v
4733	return s
4734}
4735
4736// SetNextToken sets the NextToken field's value.
4737func (s *DescribeWorkspacesInput) SetNextToken(v string) *DescribeWorkspacesInput {
4738	s.NextToken = &v
4739	return s
4740}
4741
4742// SetUserName sets the UserName field's value.
4743func (s *DescribeWorkspacesInput) SetUserName(v string) *DescribeWorkspacesInput {
4744	s.UserName = &v
4745	return s
4746}
4747
4748// SetWorkspaceIds sets the WorkspaceIds field's value.
4749func (s *DescribeWorkspacesInput) SetWorkspaceIds(v []*string) *DescribeWorkspacesInput {
4750	s.WorkspaceIds = v
4751	return s
4752}
4753
4754type DescribeWorkspacesOutput struct {
4755	_ struct{} `type:"structure"`
4756
4757	// The token to use to retrieve the next set of results, or null if no more
4758	// results are available.
4759	NextToken *string `min:"1" type:"string"`
4760
4761	// Information about the WorkSpaces.
4762	//
4763	// Because CreateWorkspaces is an asynchronous operation, some of the returned
4764	// information could be incomplete.
4765	Workspaces []*Workspace `type:"list"`
4766}
4767
4768// String returns the string representation
4769func (s DescribeWorkspacesOutput) String() string {
4770	return awsutil.Prettify(s)
4771}
4772
4773// GoString returns the string representation
4774func (s DescribeWorkspacesOutput) GoString() string {
4775	return s.String()
4776}
4777
4778// SetNextToken sets the NextToken field's value.
4779func (s *DescribeWorkspacesOutput) SetNextToken(v string) *DescribeWorkspacesOutput {
4780	s.NextToken = &v
4781	return s
4782}
4783
4784// SetWorkspaces sets the Workspaces field's value.
4785func (s *DescribeWorkspacesOutput) SetWorkspaces(v []*Workspace) *DescribeWorkspacesOutput {
4786	s.Workspaces = v
4787	return s
4788}
4789
4790type DisassociateIpGroupsInput struct {
4791	_ struct{} `type:"structure"`
4792
4793	// The identifier of the directory.
4794	//
4795	// DirectoryId is a required field
4796	DirectoryId *string `type:"string" required:"true"`
4797
4798	// The identifiers of one or more IP access control groups.
4799	//
4800	// GroupIds is a required field
4801	GroupIds []*string `type:"list" required:"true"`
4802}
4803
4804// String returns the string representation
4805func (s DisassociateIpGroupsInput) String() string {
4806	return awsutil.Prettify(s)
4807}
4808
4809// GoString returns the string representation
4810func (s DisassociateIpGroupsInput) GoString() string {
4811	return s.String()
4812}
4813
4814// Validate inspects the fields of the type to determine if they are valid.
4815func (s *DisassociateIpGroupsInput) Validate() error {
4816	invalidParams := request.ErrInvalidParams{Context: "DisassociateIpGroupsInput"}
4817	if s.DirectoryId == nil {
4818		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
4819	}
4820	if s.GroupIds == nil {
4821		invalidParams.Add(request.NewErrParamRequired("GroupIds"))
4822	}
4823
4824	if invalidParams.Len() > 0 {
4825		return invalidParams
4826	}
4827	return nil
4828}
4829
4830// SetDirectoryId sets the DirectoryId field's value.
4831func (s *DisassociateIpGroupsInput) SetDirectoryId(v string) *DisassociateIpGroupsInput {
4832	s.DirectoryId = &v
4833	return s
4834}
4835
4836// SetGroupIds sets the GroupIds field's value.
4837func (s *DisassociateIpGroupsInput) SetGroupIds(v []*string) *DisassociateIpGroupsInput {
4838	s.GroupIds = v
4839	return s
4840}
4841
4842type DisassociateIpGroupsOutput struct {
4843	_ struct{} `type:"structure"`
4844}
4845
4846// String returns the string representation
4847func (s DisassociateIpGroupsOutput) String() string {
4848	return awsutil.Prettify(s)
4849}
4850
4851// GoString returns the string representation
4852func (s DisassociateIpGroupsOutput) GoString() string {
4853	return s.String()
4854}
4855
4856// Describes a WorkSpace that cannot be created.
4857type FailedCreateWorkspaceRequest struct {
4858	_ struct{} `type:"structure"`
4859
4860	// The error code that is returned if the WorkSpace cannot be created.
4861	ErrorCode *string `type:"string"`
4862
4863	// The text of the error message that is returned if the WorkSpace cannot be
4864	// created.
4865	ErrorMessage *string `type:"string"`
4866
4867	// Information about the WorkSpace.
4868	WorkspaceRequest *WorkspaceRequest `type:"structure"`
4869}
4870
4871// String returns the string representation
4872func (s FailedCreateWorkspaceRequest) String() string {
4873	return awsutil.Prettify(s)
4874}
4875
4876// GoString returns the string representation
4877func (s FailedCreateWorkspaceRequest) GoString() string {
4878	return s.String()
4879}
4880
4881// SetErrorCode sets the ErrorCode field's value.
4882func (s *FailedCreateWorkspaceRequest) SetErrorCode(v string) *FailedCreateWorkspaceRequest {
4883	s.ErrorCode = &v
4884	return s
4885}
4886
4887// SetErrorMessage sets the ErrorMessage field's value.
4888func (s *FailedCreateWorkspaceRequest) SetErrorMessage(v string) *FailedCreateWorkspaceRequest {
4889	s.ErrorMessage = &v
4890	return s
4891}
4892
4893// SetWorkspaceRequest sets the WorkspaceRequest field's value.
4894func (s *FailedCreateWorkspaceRequest) SetWorkspaceRequest(v *WorkspaceRequest) *FailedCreateWorkspaceRequest {
4895	s.WorkspaceRequest = v
4896	return s
4897}
4898
4899// Describes a WorkSpace that could not be rebooted. (RebootWorkspaces), rebuilt
4900// (RebuildWorkspaces), terminated (TerminateWorkspaces), started (StartWorkspaces),
4901// or stopped (StopWorkspaces).
4902type FailedWorkspaceChangeRequest struct {
4903	_ struct{} `type:"structure"`
4904
4905	// The error code that is returned if the WorkSpace cannot be rebooted.
4906	ErrorCode *string `type:"string"`
4907
4908	// The text of the error message that is returned if the WorkSpace cannot be
4909	// rebooted.
4910	ErrorMessage *string `type:"string"`
4911
4912	// The identifier of the WorkSpace.
4913	WorkspaceId *string `type:"string"`
4914}
4915
4916// String returns the string representation
4917func (s FailedWorkspaceChangeRequest) String() string {
4918	return awsutil.Prettify(s)
4919}
4920
4921// GoString returns the string representation
4922func (s FailedWorkspaceChangeRequest) GoString() string {
4923	return s.String()
4924}
4925
4926// SetErrorCode sets the ErrorCode field's value.
4927func (s *FailedWorkspaceChangeRequest) SetErrorCode(v string) *FailedWorkspaceChangeRequest {
4928	s.ErrorCode = &v
4929	return s
4930}
4931
4932// SetErrorMessage sets the ErrorMessage field's value.
4933func (s *FailedWorkspaceChangeRequest) SetErrorMessage(v string) *FailedWorkspaceChangeRequest {
4934	s.ErrorMessage = &v
4935	return s
4936}
4937
4938// SetWorkspaceId sets the WorkspaceId field's value.
4939func (s *FailedWorkspaceChangeRequest) SetWorkspaceId(v string) *FailedWorkspaceChangeRequest {
4940	s.WorkspaceId = &v
4941	return s
4942}
4943
4944type ImportWorkspaceImageInput struct {
4945	_ struct{} `type:"structure"`
4946
4947	// The identifier of the EC2 image.
4948	//
4949	// Ec2ImageId is a required field
4950	Ec2ImageId *string `type:"string" required:"true"`
4951
4952	// The description of the WorkSpace image.
4953	//
4954	// ImageDescription is a required field
4955	ImageDescription *string `min:"1" type:"string" required:"true"`
4956
4957	// The name of the WorkSpace image.
4958	//
4959	// ImageName is a required field
4960	ImageName *string `min:"1" type:"string" required:"true"`
4961
4962	// The ingestion process to be used when importing the image.
4963	//
4964	// IngestionProcess is a required field
4965	IngestionProcess *string `type:"string" required:"true" enum:"WorkspaceImageIngestionProcess"`
4966
4967	// The tags. Each WorkSpaces resource can have a maximum of 50 tags.
4968	Tags []*Tag `type:"list"`
4969}
4970
4971// String returns the string representation
4972func (s ImportWorkspaceImageInput) String() string {
4973	return awsutil.Prettify(s)
4974}
4975
4976// GoString returns the string representation
4977func (s ImportWorkspaceImageInput) GoString() string {
4978	return s.String()
4979}
4980
4981// Validate inspects the fields of the type to determine if they are valid.
4982func (s *ImportWorkspaceImageInput) Validate() error {
4983	invalidParams := request.ErrInvalidParams{Context: "ImportWorkspaceImageInput"}
4984	if s.Ec2ImageId == nil {
4985		invalidParams.Add(request.NewErrParamRequired("Ec2ImageId"))
4986	}
4987	if s.ImageDescription == nil {
4988		invalidParams.Add(request.NewErrParamRequired("ImageDescription"))
4989	}
4990	if s.ImageDescription != nil && len(*s.ImageDescription) < 1 {
4991		invalidParams.Add(request.NewErrParamMinLen("ImageDescription", 1))
4992	}
4993	if s.ImageName == nil {
4994		invalidParams.Add(request.NewErrParamRequired("ImageName"))
4995	}
4996	if s.ImageName != nil && len(*s.ImageName) < 1 {
4997		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
4998	}
4999	if s.IngestionProcess == nil {
5000		invalidParams.Add(request.NewErrParamRequired("IngestionProcess"))
5001	}
5002	if s.Tags != nil {
5003		for i, v := range s.Tags {
5004			if v == nil {
5005				continue
5006			}
5007			if err := v.Validate(); err != nil {
5008				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
5009			}
5010		}
5011	}
5012
5013	if invalidParams.Len() > 0 {
5014		return invalidParams
5015	}
5016	return nil
5017}
5018
5019// SetEc2ImageId sets the Ec2ImageId field's value.
5020func (s *ImportWorkspaceImageInput) SetEc2ImageId(v string) *ImportWorkspaceImageInput {
5021	s.Ec2ImageId = &v
5022	return s
5023}
5024
5025// SetImageDescription sets the ImageDescription field's value.
5026func (s *ImportWorkspaceImageInput) SetImageDescription(v string) *ImportWorkspaceImageInput {
5027	s.ImageDescription = &v
5028	return s
5029}
5030
5031// SetImageName sets the ImageName field's value.
5032func (s *ImportWorkspaceImageInput) SetImageName(v string) *ImportWorkspaceImageInput {
5033	s.ImageName = &v
5034	return s
5035}
5036
5037// SetIngestionProcess sets the IngestionProcess field's value.
5038func (s *ImportWorkspaceImageInput) SetIngestionProcess(v string) *ImportWorkspaceImageInput {
5039	s.IngestionProcess = &v
5040	return s
5041}
5042
5043// SetTags sets the Tags field's value.
5044func (s *ImportWorkspaceImageInput) SetTags(v []*Tag) *ImportWorkspaceImageInput {
5045	s.Tags = v
5046	return s
5047}
5048
5049type ImportWorkspaceImageOutput struct {
5050	_ struct{} `type:"structure"`
5051
5052	// The identifier of the WorkSpace image.
5053	ImageId *string `type:"string"`
5054}
5055
5056// String returns the string representation
5057func (s ImportWorkspaceImageOutput) String() string {
5058	return awsutil.Prettify(s)
5059}
5060
5061// GoString returns the string representation
5062func (s ImportWorkspaceImageOutput) GoString() string {
5063	return s.String()
5064}
5065
5066// SetImageId sets the ImageId field's value.
5067func (s *ImportWorkspaceImageOutput) SetImageId(v string) *ImportWorkspaceImageOutput {
5068	s.ImageId = &v
5069	return s
5070}
5071
5072// Describes an IP access control group.
5073type IpGroup struct {
5074	_ struct{} `type:"structure"`
5075
5076	// The description of the group.
5077	GroupDesc *string `locationName:"groupDesc" type:"string"`
5078
5079	// The identifier of the group.
5080	GroupId *string `locationName:"groupId" type:"string"`
5081
5082	// The name of the group.
5083	GroupName *string `locationName:"groupName" type:"string"`
5084
5085	// The rules.
5086	UserRules []*IpRuleItem `locationName:"userRules" type:"list"`
5087}
5088
5089// String returns the string representation
5090func (s IpGroup) String() string {
5091	return awsutil.Prettify(s)
5092}
5093
5094// GoString returns the string representation
5095func (s IpGroup) GoString() string {
5096	return s.String()
5097}
5098
5099// SetGroupDesc sets the GroupDesc field's value.
5100func (s *IpGroup) SetGroupDesc(v string) *IpGroup {
5101	s.GroupDesc = &v
5102	return s
5103}
5104
5105// SetGroupId sets the GroupId field's value.
5106func (s *IpGroup) SetGroupId(v string) *IpGroup {
5107	s.GroupId = &v
5108	return s
5109}
5110
5111// SetGroupName sets the GroupName field's value.
5112func (s *IpGroup) SetGroupName(v string) *IpGroup {
5113	s.GroupName = &v
5114	return s
5115}
5116
5117// SetUserRules sets the UserRules field's value.
5118func (s *IpGroup) SetUserRules(v []*IpRuleItem) *IpGroup {
5119	s.UserRules = v
5120	return s
5121}
5122
5123// Describes a rule for an IP access control group.
5124type IpRuleItem struct {
5125	_ struct{} `type:"structure"`
5126
5127	// The IP address range, in CIDR notation.
5128	IpRule *string `locationName:"ipRule" type:"string"`
5129
5130	// The description.
5131	RuleDesc *string `locationName:"ruleDesc" type:"string"`
5132}
5133
5134// String returns the string representation
5135func (s IpRuleItem) String() string {
5136	return awsutil.Prettify(s)
5137}
5138
5139// GoString returns the string representation
5140func (s IpRuleItem) GoString() string {
5141	return s.String()
5142}
5143
5144// SetIpRule sets the IpRule field's value.
5145func (s *IpRuleItem) SetIpRule(v string) *IpRuleItem {
5146	s.IpRule = &v
5147	return s
5148}
5149
5150// SetRuleDesc sets the RuleDesc field's value.
5151func (s *IpRuleItem) SetRuleDesc(v string) *IpRuleItem {
5152	s.RuleDesc = &v
5153	return s
5154}
5155
5156type ListAvailableManagementCidrRangesInput struct {
5157	_ struct{} `type:"structure"`
5158
5159	// The IP address range to search. Specify an IP address range that is compatible
5160	// with your network and in CIDR notation (that is, specify the range as an
5161	// IPv4 CIDR block).
5162	//
5163	// ManagementCidrRangeConstraint is a required field
5164	ManagementCidrRangeConstraint *string `type:"string" required:"true"`
5165
5166	// The maximum number of items to return.
5167	MaxResults *int64 `min:"1" type:"integer"`
5168
5169	// If you received a NextToken from a previous call that was paginated, provide
5170	// this token to receive the next set of results.
5171	NextToken *string `min:"1" type:"string"`
5172}
5173
5174// String returns the string representation
5175func (s ListAvailableManagementCidrRangesInput) String() string {
5176	return awsutil.Prettify(s)
5177}
5178
5179// GoString returns the string representation
5180func (s ListAvailableManagementCidrRangesInput) GoString() string {
5181	return s.String()
5182}
5183
5184// Validate inspects the fields of the type to determine if they are valid.
5185func (s *ListAvailableManagementCidrRangesInput) Validate() error {
5186	invalidParams := request.ErrInvalidParams{Context: "ListAvailableManagementCidrRangesInput"}
5187	if s.ManagementCidrRangeConstraint == nil {
5188		invalidParams.Add(request.NewErrParamRequired("ManagementCidrRangeConstraint"))
5189	}
5190	if s.MaxResults != nil && *s.MaxResults < 1 {
5191		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
5192	}
5193	if s.NextToken != nil && len(*s.NextToken) < 1 {
5194		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
5195	}
5196
5197	if invalidParams.Len() > 0 {
5198		return invalidParams
5199	}
5200	return nil
5201}
5202
5203// SetManagementCidrRangeConstraint sets the ManagementCidrRangeConstraint field's value.
5204func (s *ListAvailableManagementCidrRangesInput) SetManagementCidrRangeConstraint(v string) *ListAvailableManagementCidrRangesInput {
5205	s.ManagementCidrRangeConstraint = &v
5206	return s
5207}
5208
5209// SetMaxResults sets the MaxResults field's value.
5210func (s *ListAvailableManagementCidrRangesInput) SetMaxResults(v int64) *ListAvailableManagementCidrRangesInput {
5211	s.MaxResults = &v
5212	return s
5213}
5214
5215// SetNextToken sets the NextToken field's value.
5216func (s *ListAvailableManagementCidrRangesInput) SetNextToken(v string) *ListAvailableManagementCidrRangesInput {
5217	s.NextToken = &v
5218	return s
5219}
5220
5221type ListAvailableManagementCidrRangesOutput struct {
5222	_ struct{} `type:"structure"`
5223
5224	// The list of available IP address ranges, specified as IPv4 CIDR blocks.
5225	ManagementCidrRanges []*string `type:"list"`
5226
5227	// The token to use to retrieve the next set of results, or null if no more
5228	// results are available.
5229	NextToken *string `min:"1" type:"string"`
5230}
5231
5232// String returns the string representation
5233func (s ListAvailableManagementCidrRangesOutput) String() string {
5234	return awsutil.Prettify(s)
5235}
5236
5237// GoString returns the string representation
5238func (s ListAvailableManagementCidrRangesOutput) GoString() string {
5239	return s.String()
5240}
5241
5242// SetManagementCidrRanges sets the ManagementCidrRanges field's value.
5243func (s *ListAvailableManagementCidrRangesOutput) SetManagementCidrRanges(v []*string) *ListAvailableManagementCidrRangesOutput {
5244	s.ManagementCidrRanges = v
5245	return s
5246}
5247
5248// SetNextToken sets the NextToken field's value.
5249func (s *ListAvailableManagementCidrRangesOutput) SetNextToken(v string) *ListAvailableManagementCidrRangesOutput {
5250	s.NextToken = &v
5251	return s
5252}
5253
5254// Describes a WorkSpace modification.
5255type ModificationState struct {
5256	_ struct{} `type:"structure"`
5257
5258	// The resource.
5259	Resource *string `type:"string" enum:"ModificationResourceEnum"`
5260
5261	// The modification state.
5262	State *string `type:"string" enum:"ModificationStateEnum"`
5263}
5264
5265// String returns the string representation
5266func (s ModificationState) String() string {
5267	return awsutil.Prettify(s)
5268}
5269
5270// GoString returns the string representation
5271func (s ModificationState) GoString() string {
5272	return s.String()
5273}
5274
5275// SetResource sets the Resource field's value.
5276func (s *ModificationState) SetResource(v string) *ModificationState {
5277	s.Resource = &v
5278	return s
5279}
5280
5281// SetState sets the State field's value.
5282func (s *ModificationState) SetState(v string) *ModificationState {
5283	s.State = &v
5284	return s
5285}
5286
5287type ModifyAccountInput struct {
5288	_ struct{} `type:"structure"`
5289
5290	// The IP address range, specified as an IPv4 CIDR block, for the management
5291	// network interface. Specify an IP address range that is compatible with your
5292	// network and in CIDR notation (that is, specify the range as an IPv4 CIDR
5293	// block). The CIDR block size must be /16 (for example, 203.0.113.25/16). It
5294	// must also be specified as available by the ListAvailableManagementCidrRanges
5295	// operation.
5296	DedicatedTenancyManagementCidrRange *string `type:"string"`
5297
5298	// The status of BYOL.
5299	DedicatedTenancySupport *string `type:"string" enum:"DedicatedTenancySupportEnum"`
5300}
5301
5302// String returns the string representation
5303func (s ModifyAccountInput) String() string {
5304	return awsutil.Prettify(s)
5305}
5306
5307// GoString returns the string representation
5308func (s ModifyAccountInput) GoString() string {
5309	return s.String()
5310}
5311
5312// SetDedicatedTenancyManagementCidrRange sets the DedicatedTenancyManagementCidrRange field's value.
5313func (s *ModifyAccountInput) SetDedicatedTenancyManagementCidrRange(v string) *ModifyAccountInput {
5314	s.DedicatedTenancyManagementCidrRange = &v
5315	return s
5316}
5317
5318// SetDedicatedTenancySupport sets the DedicatedTenancySupport field's value.
5319func (s *ModifyAccountInput) SetDedicatedTenancySupport(v string) *ModifyAccountInput {
5320	s.DedicatedTenancySupport = &v
5321	return s
5322}
5323
5324type ModifyAccountOutput struct {
5325	_ struct{} `type:"structure"`
5326}
5327
5328// String returns the string representation
5329func (s ModifyAccountOutput) String() string {
5330	return awsutil.Prettify(s)
5331}
5332
5333// GoString returns the string representation
5334func (s ModifyAccountOutput) GoString() string {
5335	return s.String()
5336}
5337
5338type ModifyClientPropertiesInput struct {
5339	_ struct{} `type:"structure"`
5340
5341	// Information about the Amazon WorkSpaces client.
5342	//
5343	// ClientProperties is a required field
5344	ClientProperties *ClientProperties `type:"structure" required:"true"`
5345
5346	// The resource identifiers, in the form of directory IDs.
5347	//
5348	// ResourceId is a required field
5349	ResourceId *string `min:"1" type:"string" required:"true"`
5350}
5351
5352// String returns the string representation
5353func (s ModifyClientPropertiesInput) String() string {
5354	return awsutil.Prettify(s)
5355}
5356
5357// GoString returns the string representation
5358func (s ModifyClientPropertiesInput) GoString() string {
5359	return s.String()
5360}
5361
5362// Validate inspects the fields of the type to determine if they are valid.
5363func (s *ModifyClientPropertiesInput) Validate() error {
5364	invalidParams := request.ErrInvalidParams{Context: "ModifyClientPropertiesInput"}
5365	if s.ClientProperties == nil {
5366		invalidParams.Add(request.NewErrParamRequired("ClientProperties"))
5367	}
5368	if s.ResourceId == nil {
5369		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
5370	}
5371	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
5372		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
5373	}
5374
5375	if invalidParams.Len() > 0 {
5376		return invalidParams
5377	}
5378	return nil
5379}
5380
5381// SetClientProperties sets the ClientProperties field's value.
5382func (s *ModifyClientPropertiesInput) SetClientProperties(v *ClientProperties) *ModifyClientPropertiesInput {
5383	s.ClientProperties = v
5384	return s
5385}
5386
5387// SetResourceId sets the ResourceId field's value.
5388func (s *ModifyClientPropertiesInput) SetResourceId(v string) *ModifyClientPropertiesInput {
5389	s.ResourceId = &v
5390	return s
5391}
5392
5393type ModifyClientPropertiesOutput struct {
5394	_ struct{} `type:"structure"`
5395}
5396
5397// String returns the string representation
5398func (s ModifyClientPropertiesOutput) String() string {
5399	return awsutil.Prettify(s)
5400}
5401
5402// GoString returns the string representation
5403func (s ModifyClientPropertiesOutput) GoString() string {
5404	return s.String()
5405}
5406
5407type ModifyWorkspacePropertiesInput struct {
5408	_ struct{} `type:"structure"`
5409
5410	// The identifier of the WorkSpace.
5411	//
5412	// WorkspaceId is a required field
5413	WorkspaceId *string `type:"string" required:"true"`
5414
5415	// The properties of the WorkSpace.
5416	//
5417	// WorkspaceProperties is a required field
5418	WorkspaceProperties *WorkspaceProperties `type:"structure" required:"true"`
5419}
5420
5421// String returns the string representation
5422func (s ModifyWorkspacePropertiesInput) String() string {
5423	return awsutil.Prettify(s)
5424}
5425
5426// GoString returns the string representation
5427func (s ModifyWorkspacePropertiesInput) GoString() string {
5428	return s.String()
5429}
5430
5431// Validate inspects the fields of the type to determine if they are valid.
5432func (s *ModifyWorkspacePropertiesInput) Validate() error {
5433	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspacePropertiesInput"}
5434	if s.WorkspaceId == nil {
5435		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
5436	}
5437	if s.WorkspaceProperties == nil {
5438		invalidParams.Add(request.NewErrParamRequired("WorkspaceProperties"))
5439	}
5440
5441	if invalidParams.Len() > 0 {
5442		return invalidParams
5443	}
5444	return nil
5445}
5446
5447// SetWorkspaceId sets the WorkspaceId field's value.
5448func (s *ModifyWorkspacePropertiesInput) SetWorkspaceId(v string) *ModifyWorkspacePropertiesInput {
5449	s.WorkspaceId = &v
5450	return s
5451}
5452
5453// SetWorkspaceProperties sets the WorkspaceProperties field's value.
5454func (s *ModifyWorkspacePropertiesInput) SetWorkspaceProperties(v *WorkspaceProperties) *ModifyWorkspacePropertiesInput {
5455	s.WorkspaceProperties = v
5456	return s
5457}
5458
5459type ModifyWorkspacePropertiesOutput struct {
5460	_ struct{} `type:"structure"`
5461}
5462
5463// String returns the string representation
5464func (s ModifyWorkspacePropertiesOutput) String() string {
5465	return awsutil.Prettify(s)
5466}
5467
5468// GoString returns the string representation
5469func (s ModifyWorkspacePropertiesOutput) GoString() string {
5470	return s.String()
5471}
5472
5473type ModifyWorkspaceStateInput struct {
5474	_ struct{} `type:"structure"`
5475
5476	// The identifier of the WorkSpace.
5477	//
5478	// WorkspaceId is a required field
5479	WorkspaceId *string `type:"string" required:"true"`
5480
5481	// The WorkSpace state.
5482	//
5483	// WorkspaceState is a required field
5484	WorkspaceState *string `type:"string" required:"true" enum:"TargetWorkspaceState"`
5485}
5486
5487// String returns the string representation
5488func (s ModifyWorkspaceStateInput) String() string {
5489	return awsutil.Prettify(s)
5490}
5491
5492// GoString returns the string representation
5493func (s ModifyWorkspaceStateInput) GoString() string {
5494	return s.String()
5495}
5496
5497// Validate inspects the fields of the type to determine if they are valid.
5498func (s *ModifyWorkspaceStateInput) Validate() error {
5499	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceStateInput"}
5500	if s.WorkspaceId == nil {
5501		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
5502	}
5503	if s.WorkspaceState == nil {
5504		invalidParams.Add(request.NewErrParamRequired("WorkspaceState"))
5505	}
5506
5507	if invalidParams.Len() > 0 {
5508		return invalidParams
5509	}
5510	return nil
5511}
5512
5513// SetWorkspaceId sets the WorkspaceId field's value.
5514func (s *ModifyWorkspaceStateInput) SetWorkspaceId(v string) *ModifyWorkspaceStateInput {
5515	s.WorkspaceId = &v
5516	return s
5517}
5518
5519// SetWorkspaceState sets the WorkspaceState field's value.
5520func (s *ModifyWorkspaceStateInput) SetWorkspaceState(v string) *ModifyWorkspaceStateInput {
5521	s.WorkspaceState = &v
5522	return s
5523}
5524
5525type ModifyWorkspaceStateOutput struct {
5526	_ struct{} `type:"structure"`
5527}
5528
5529// String returns the string representation
5530func (s ModifyWorkspaceStateOutput) String() string {
5531	return awsutil.Prettify(s)
5532}
5533
5534// GoString returns the string representation
5535func (s ModifyWorkspaceStateOutput) GoString() string {
5536	return s.String()
5537}
5538
5539// The operating system that the image is running.
5540type OperatingSystem struct {
5541	_ struct{} `type:"structure"`
5542
5543	// The operating system.
5544	Type *string `type:"string" enum:"OperatingSystemType"`
5545}
5546
5547// String returns the string representation
5548func (s OperatingSystem) String() string {
5549	return awsutil.Prettify(s)
5550}
5551
5552// GoString returns the string representation
5553func (s OperatingSystem) GoString() string {
5554	return s.String()
5555}
5556
5557// SetType sets the Type field's value.
5558func (s *OperatingSystem) SetType(v string) *OperatingSystem {
5559	s.Type = &v
5560	return s
5561}
5562
5563// Describes the information used to reboot a WorkSpace.
5564type RebootRequest struct {
5565	_ struct{} `type:"structure"`
5566
5567	// The identifier of the WorkSpace.
5568	//
5569	// WorkspaceId is a required field
5570	WorkspaceId *string `type:"string" required:"true"`
5571}
5572
5573// String returns the string representation
5574func (s RebootRequest) String() string {
5575	return awsutil.Prettify(s)
5576}
5577
5578// GoString returns the string representation
5579func (s RebootRequest) GoString() string {
5580	return s.String()
5581}
5582
5583// Validate inspects the fields of the type to determine if they are valid.
5584func (s *RebootRequest) Validate() error {
5585	invalidParams := request.ErrInvalidParams{Context: "RebootRequest"}
5586	if s.WorkspaceId == nil {
5587		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
5588	}
5589
5590	if invalidParams.Len() > 0 {
5591		return invalidParams
5592	}
5593	return nil
5594}
5595
5596// SetWorkspaceId sets the WorkspaceId field's value.
5597func (s *RebootRequest) SetWorkspaceId(v string) *RebootRequest {
5598	s.WorkspaceId = &v
5599	return s
5600}
5601
5602type RebootWorkspacesInput struct {
5603	_ struct{} `type:"structure"`
5604
5605	// The WorkSpaces to reboot. You can specify up to 25 WorkSpaces.
5606	//
5607	// RebootWorkspaceRequests is a required field
5608	RebootWorkspaceRequests []*RebootRequest `min:"1" type:"list" required:"true"`
5609}
5610
5611// String returns the string representation
5612func (s RebootWorkspacesInput) String() string {
5613	return awsutil.Prettify(s)
5614}
5615
5616// GoString returns the string representation
5617func (s RebootWorkspacesInput) GoString() string {
5618	return s.String()
5619}
5620
5621// Validate inspects the fields of the type to determine if they are valid.
5622func (s *RebootWorkspacesInput) Validate() error {
5623	invalidParams := request.ErrInvalidParams{Context: "RebootWorkspacesInput"}
5624	if s.RebootWorkspaceRequests == nil {
5625		invalidParams.Add(request.NewErrParamRequired("RebootWorkspaceRequests"))
5626	}
5627	if s.RebootWorkspaceRequests != nil && len(s.RebootWorkspaceRequests) < 1 {
5628		invalidParams.Add(request.NewErrParamMinLen("RebootWorkspaceRequests", 1))
5629	}
5630	if s.RebootWorkspaceRequests != nil {
5631		for i, v := range s.RebootWorkspaceRequests {
5632			if v == nil {
5633				continue
5634			}
5635			if err := v.Validate(); err != nil {
5636				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RebootWorkspaceRequests", i), err.(request.ErrInvalidParams))
5637			}
5638		}
5639	}
5640
5641	if invalidParams.Len() > 0 {
5642		return invalidParams
5643	}
5644	return nil
5645}
5646
5647// SetRebootWorkspaceRequests sets the RebootWorkspaceRequests field's value.
5648func (s *RebootWorkspacesInput) SetRebootWorkspaceRequests(v []*RebootRequest) *RebootWorkspacesInput {
5649	s.RebootWorkspaceRequests = v
5650	return s
5651}
5652
5653type RebootWorkspacesOutput struct {
5654	_ struct{} `type:"structure"`
5655
5656	// Information about the WorkSpaces that could not be rebooted.
5657	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
5658}
5659
5660// String returns the string representation
5661func (s RebootWorkspacesOutput) String() string {
5662	return awsutil.Prettify(s)
5663}
5664
5665// GoString returns the string representation
5666func (s RebootWorkspacesOutput) GoString() string {
5667	return s.String()
5668}
5669
5670// SetFailedRequests sets the FailedRequests field's value.
5671func (s *RebootWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *RebootWorkspacesOutput {
5672	s.FailedRequests = v
5673	return s
5674}
5675
5676// Describes the information used to rebuild a WorkSpace.
5677type RebuildRequest struct {
5678	_ struct{} `type:"structure"`
5679
5680	// The identifier of the WorkSpace.
5681	//
5682	// WorkspaceId is a required field
5683	WorkspaceId *string `type:"string" required:"true"`
5684}
5685
5686// String returns the string representation
5687func (s RebuildRequest) String() string {
5688	return awsutil.Prettify(s)
5689}
5690
5691// GoString returns the string representation
5692func (s RebuildRequest) GoString() string {
5693	return s.String()
5694}
5695
5696// Validate inspects the fields of the type to determine if they are valid.
5697func (s *RebuildRequest) Validate() error {
5698	invalidParams := request.ErrInvalidParams{Context: "RebuildRequest"}
5699	if s.WorkspaceId == nil {
5700		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
5701	}
5702
5703	if invalidParams.Len() > 0 {
5704		return invalidParams
5705	}
5706	return nil
5707}
5708
5709// SetWorkspaceId sets the WorkspaceId field's value.
5710func (s *RebuildRequest) SetWorkspaceId(v string) *RebuildRequest {
5711	s.WorkspaceId = &v
5712	return s
5713}
5714
5715type RebuildWorkspacesInput struct {
5716	_ struct{} `type:"structure"`
5717
5718	// The WorkSpace to rebuild. You can specify a single WorkSpace.
5719	//
5720	// RebuildWorkspaceRequests is a required field
5721	RebuildWorkspaceRequests []*RebuildRequest `min:"1" type:"list" required:"true"`
5722}
5723
5724// String returns the string representation
5725func (s RebuildWorkspacesInput) String() string {
5726	return awsutil.Prettify(s)
5727}
5728
5729// GoString returns the string representation
5730func (s RebuildWorkspacesInput) GoString() string {
5731	return s.String()
5732}
5733
5734// Validate inspects the fields of the type to determine if they are valid.
5735func (s *RebuildWorkspacesInput) Validate() error {
5736	invalidParams := request.ErrInvalidParams{Context: "RebuildWorkspacesInput"}
5737	if s.RebuildWorkspaceRequests == nil {
5738		invalidParams.Add(request.NewErrParamRequired("RebuildWorkspaceRequests"))
5739	}
5740	if s.RebuildWorkspaceRequests != nil && len(s.RebuildWorkspaceRequests) < 1 {
5741		invalidParams.Add(request.NewErrParamMinLen("RebuildWorkspaceRequests", 1))
5742	}
5743	if s.RebuildWorkspaceRequests != nil {
5744		for i, v := range s.RebuildWorkspaceRequests {
5745			if v == nil {
5746				continue
5747			}
5748			if err := v.Validate(); err != nil {
5749				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RebuildWorkspaceRequests", i), err.(request.ErrInvalidParams))
5750			}
5751		}
5752	}
5753
5754	if invalidParams.Len() > 0 {
5755		return invalidParams
5756	}
5757	return nil
5758}
5759
5760// SetRebuildWorkspaceRequests sets the RebuildWorkspaceRequests field's value.
5761func (s *RebuildWorkspacesInput) SetRebuildWorkspaceRequests(v []*RebuildRequest) *RebuildWorkspacesInput {
5762	s.RebuildWorkspaceRequests = v
5763	return s
5764}
5765
5766type RebuildWorkspacesOutput struct {
5767	_ struct{} `type:"structure"`
5768
5769	// Information about the WorkSpace that could not be rebuilt.
5770	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
5771}
5772
5773// String returns the string representation
5774func (s RebuildWorkspacesOutput) String() string {
5775	return awsutil.Prettify(s)
5776}
5777
5778// GoString returns the string representation
5779func (s RebuildWorkspacesOutput) GoString() string {
5780	return s.String()
5781}
5782
5783// SetFailedRequests sets the FailedRequests field's value.
5784func (s *RebuildWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *RebuildWorkspacesOutput {
5785	s.FailedRequests = v
5786	return s
5787}
5788
5789type RevokeIpRulesInput struct {
5790	_ struct{} `type:"structure"`
5791
5792	// The identifier of the group.
5793	//
5794	// GroupId is a required field
5795	GroupId *string `type:"string" required:"true"`
5796
5797	// The rules to remove from the group.
5798	//
5799	// UserRules is a required field
5800	UserRules []*string `type:"list" required:"true"`
5801}
5802
5803// String returns the string representation
5804func (s RevokeIpRulesInput) String() string {
5805	return awsutil.Prettify(s)
5806}
5807
5808// GoString returns the string representation
5809func (s RevokeIpRulesInput) GoString() string {
5810	return s.String()
5811}
5812
5813// Validate inspects the fields of the type to determine if they are valid.
5814func (s *RevokeIpRulesInput) Validate() error {
5815	invalidParams := request.ErrInvalidParams{Context: "RevokeIpRulesInput"}
5816	if s.GroupId == nil {
5817		invalidParams.Add(request.NewErrParamRequired("GroupId"))
5818	}
5819	if s.UserRules == nil {
5820		invalidParams.Add(request.NewErrParamRequired("UserRules"))
5821	}
5822
5823	if invalidParams.Len() > 0 {
5824		return invalidParams
5825	}
5826	return nil
5827}
5828
5829// SetGroupId sets the GroupId field's value.
5830func (s *RevokeIpRulesInput) SetGroupId(v string) *RevokeIpRulesInput {
5831	s.GroupId = &v
5832	return s
5833}
5834
5835// SetUserRules sets the UserRules field's value.
5836func (s *RevokeIpRulesInput) SetUserRules(v []*string) *RevokeIpRulesInput {
5837	s.UserRules = v
5838	return s
5839}
5840
5841type RevokeIpRulesOutput struct {
5842	_ struct{} `type:"structure"`
5843}
5844
5845// String returns the string representation
5846func (s RevokeIpRulesOutput) String() string {
5847	return awsutil.Prettify(s)
5848}
5849
5850// GoString returns the string representation
5851func (s RevokeIpRulesOutput) GoString() string {
5852	return s.String()
5853}
5854
5855// Describes the root volume for a WorkSpace bundle.
5856type RootStorage struct {
5857	_ struct{} `type:"structure"`
5858
5859	// The size of the root volume.
5860	Capacity *string `min:"1" type:"string"`
5861}
5862
5863// String returns the string representation
5864func (s RootStorage) String() string {
5865	return awsutil.Prettify(s)
5866}
5867
5868// GoString returns the string representation
5869func (s RootStorage) GoString() string {
5870	return s.String()
5871}
5872
5873// SetCapacity sets the Capacity field's value.
5874func (s *RootStorage) SetCapacity(v string) *RootStorage {
5875	s.Capacity = &v
5876	return s
5877}
5878
5879// Information used to start a WorkSpace.
5880type StartRequest struct {
5881	_ struct{} `type:"structure"`
5882
5883	// The identifier of the WorkSpace.
5884	WorkspaceId *string `type:"string"`
5885}
5886
5887// String returns the string representation
5888func (s StartRequest) String() string {
5889	return awsutil.Prettify(s)
5890}
5891
5892// GoString returns the string representation
5893func (s StartRequest) GoString() string {
5894	return s.String()
5895}
5896
5897// SetWorkspaceId sets the WorkspaceId field's value.
5898func (s *StartRequest) SetWorkspaceId(v string) *StartRequest {
5899	s.WorkspaceId = &v
5900	return s
5901}
5902
5903type StartWorkspacesInput struct {
5904	_ struct{} `type:"structure"`
5905
5906	// The WorkSpaces to start. You can specify up to 25 WorkSpaces.
5907	//
5908	// StartWorkspaceRequests is a required field
5909	StartWorkspaceRequests []*StartRequest `min:"1" type:"list" required:"true"`
5910}
5911
5912// String returns the string representation
5913func (s StartWorkspacesInput) String() string {
5914	return awsutil.Prettify(s)
5915}
5916
5917// GoString returns the string representation
5918func (s StartWorkspacesInput) GoString() string {
5919	return s.String()
5920}
5921
5922// Validate inspects the fields of the type to determine if they are valid.
5923func (s *StartWorkspacesInput) Validate() error {
5924	invalidParams := request.ErrInvalidParams{Context: "StartWorkspacesInput"}
5925	if s.StartWorkspaceRequests == nil {
5926		invalidParams.Add(request.NewErrParamRequired("StartWorkspaceRequests"))
5927	}
5928	if s.StartWorkspaceRequests != nil && len(s.StartWorkspaceRequests) < 1 {
5929		invalidParams.Add(request.NewErrParamMinLen("StartWorkspaceRequests", 1))
5930	}
5931
5932	if invalidParams.Len() > 0 {
5933		return invalidParams
5934	}
5935	return nil
5936}
5937
5938// SetStartWorkspaceRequests sets the StartWorkspaceRequests field's value.
5939func (s *StartWorkspacesInput) SetStartWorkspaceRequests(v []*StartRequest) *StartWorkspacesInput {
5940	s.StartWorkspaceRequests = v
5941	return s
5942}
5943
5944type StartWorkspacesOutput struct {
5945	_ struct{} `type:"structure"`
5946
5947	// Information about the WorkSpaces that could not be started.
5948	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
5949}
5950
5951// String returns the string representation
5952func (s StartWorkspacesOutput) String() string {
5953	return awsutil.Prettify(s)
5954}
5955
5956// GoString returns the string representation
5957func (s StartWorkspacesOutput) GoString() string {
5958	return s.String()
5959}
5960
5961// SetFailedRequests sets the FailedRequests field's value.
5962func (s *StartWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *StartWorkspacesOutput {
5963	s.FailedRequests = v
5964	return s
5965}
5966
5967// Describes the information used to stop a WorkSpace.
5968type StopRequest struct {
5969	_ struct{} `type:"structure"`
5970
5971	// The identifier of the WorkSpace.
5972	WorkspaceId *string `type:"string"`
5973}
5974
5975// String returns the string representation
5976func (s StopRequest) String() string {
5977	return awsutil.Prettify(s)
5978}
5979
5980// GoString returns the string representation
5981func (s StopRequest) GoString() string {
5982	return s.String()
5983}
5984
5985// SetWorkspaceId sets the WorkspaceId field's value.
5986func (s *StopRequest) SetWorkspaceId(v string) *StopRequest {
5987	s.WorkspaceId = &v
5988	return s
5989}
5990
5991type StopWorkspacesInput struct {
5992	_ struct{} `type:"structure"`
5993
5994	// The WorkSpaces to stop. You can specify up to 25 WorkSpaces.
5995	//
5996	// StopWorkspaceRequests is a required field
5997	StopWorkspaceRequests []*StopRequest `min:"1" type:"list" required:"true"`
5998}
5999
6000// String returns the string representation
6001func (s StopWorkspacesInput) String() string {
6002	return awsutil.Prettify(s)
6003}
6004
6005// GoString returns the string representation
6006func (s StopWorkspacesInput) GoString() string {
6007	return s.String()
6008}
6009
6010// Validate inspects the fields of the type to determine if they are valid.
6011func (s *StopWorkspacesInput) Validate() error {
6012	invalidParams := request.ErrInvalidParams{Context: "StopWorkspacesInput"}
6013	if s.StopWorkspaceRequests == nil {
6014		invalidParams.Add(request.NewErrParamRequired("StopWorkspaceRequests"))
6015	}
6016	if s.StopWorkspaceRequests != nil && len(s.StopWorkspaceRequests) < 1 {
6017		invalidParams.Add(request.NewErrParamMinLen("StopWorkspaceRequests", 1))
6018	}
6019
6020	if invalidParams.Len() > 0 {
6021		return invalidParams
6022	}
6023	return nil
6024}
6025
6026// SetStopWorkspaceRequests sets the StopWorkspaceRequests field's value.
6027func (s *StopWorkspacesInput) SetStopWorkspaceRequests(v []*StopRequest) *StopWorkspacesInput {
6028	s.StopWorkspaceRequests = v
6029	return s
6030}
6031
6032type StopWorkspacesOutput struct {
6033	_ struct{} `type:"structure"`
6034
6035	// Information about the WorkSpaces that could not be stopped.
6036	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
6037}
6038
6039// String returns the string representation
6040func (s StopWorkspacesOutput) String() string {
6041	return awsutil.Prettify(s)
6042}
6043
6044// GoString returns the string representation
6045func (s StopWorkspacesOutput) GoString() string {
6046	return s.String()
6047}
6048
6049// SetFailedRequests sets the FailedRequests field's value.
6050func (s *StopWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *StopWorkspacesOutput {
6051	s.FailedRequests = v
6052	return s
6053}
6054
6055// Describes a tag.
6056type Tag struct {
6057	_ struct{} `type:"structure"`
6058
6059	// The key of the tag.
6060	//
6061	// Key is a required field
6062	Key *string `min:"1" type:"string" required:"true"`
6063
6064	// The value of the tag.
6065	Value *string `type:"string"`
6066}
6067
6068// String returns the string representation
6069func (s Tag) String() string {
6070	return awsutil.Prettify(s)
6071}
6072
6073// GoString returns the string representation
6074func (s Tag) GoString() string {
6075	return s.String()
6076}
6077
6078// Validate inspects the fields of the type to determine if they are valid.
6079func (s *Tag) Validate() error {
6080	invalidParams := request.ErrInvalidParams{Context: "Tag"}
6081	if s.Key == nil {
6082		invalidParams.Add(request.NewErrParamRequired("Key"))
6083	}
6084	if s.Key != nil && len(*s.Key) < 1 {
6085		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
6086	}
6087
6088	if invalidParams.Len() > 0 {
6089		return invalidParams
6090	}
6091	return nil
6092}
6093
6094// SetKey sets the Key field's value.
6095func (s *Tag) SetKey(v string) *Tag {
6096	s.Key = &v
6097	return s
6098}
6099
6100// SetValue sets the Value field's value.
6101func (s *Tag) SetValue(v string) *Tag {
6102	s.Value = &v
6103	return s
6104}
6105
6106// Describes the information used to terminate a WorkSpace.
6107type TerminateRequest struct {
6108	_ struct{} `type:"structure"`
6109
6110	// The identifier of the WorkSpace.
6111	//
6112	// WorkspaceId is a required field
6113	WorkspaceId *string `type:"string" required:"true"`
6114}
6115
6116// String returns the string representation
6117func (s TerminateRequest) String() string {
6118	return awsutil.Prettify(s)
6119}
6120
6121// GoString returns the string representation
6122func (s TerminateRequest) GoString() string {
6123	return s.String()
6124}
6125
6126// Validate inspects the fields of the type to determine if they are valid.
6127func (s *TerminateRequest) Validate() error {
6128	invalidParams := request.ErrInvalidParams{Context: "TerminateRequest"}
6129	if s.WorkspaceId == nil {
6130		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
6131	}
6132
6133	if invalidParams.Len() > 0 {
6134		return invalidParams
6135	}
6136	return nil
6137}
6138
6139// SetWorkspaceId sets the WorkspaceId field's value.
6140func (s *TerminateRequest) SetWorkspaceId(v string) *TerminateRequest {
6141	s.WorkspaceId = &v
6142	return s
6143}
6144
6145type TerminateWorkspacesInput struct {
6146	_ struct{} `type:"structure"`
6147
6148	// The WorkSpaces to terminate. You can specify up to 25 WorkSpaces.
6149	//
6150	// TerminateWorkspaceRequests is a required field
6151	TerminateWorkspaceRequests []*TerminateRequest `min:"1" type:"list" required:"true"`
6152}
6153
6154// String returns the string representation
6155func (s TerminateWorkspacesInput) String() string {
6156	return awsutil.Prettify(s)
6157}
6158
6159// GoString returns the string representation
6160func (s TerminateWorkspacesInput) GoString() string {
6161	return s.String()
6162}
6163
6164// Validate inspects the fields of the type to determine if they are valid.
6165func (s *TerminateWorkspacesInput) Validate() error {
6166	invalidParams := request.ErrInvalidParams{Context: "TerminateWorkspacesInput"}
6167	if s.TerminateWorkspaceRequests == nil {
6168		invalidParams.Add(request.NewErrParamRequired("TerminateWorkspaceRequests"))
6169	}
6170	if s.TerminateWorkspaceRequests != nil && len(s.TerminateWorkspaceRequests) < 1 {
6171		invalidParams.Add(request.NewErrParamMinLen("TerminateWorkspaceRequests", 1))
6172	}
6173	if s.TerminateWorkspaceRequests != nil {
6174		for i, v := range s.TerminateWorkspaceRequests {
6175			if v == nil {
6176				continue
6177			}
6178			if err := v.Validate(); err != nil {
6179				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TerminateWorkspaceRequests", i), err.(request.ErrInvalidParams))
6180			}
6181		}
6182	}
6183
6184	if invalidParams.Len() > 0 {
6185		return invalidParams
6186	}
6187	return nil
6188}
6189
6190// SetTerminateWorkspaceRequests sets the TerminateWorkspaceRequests field's value.
6191func (s *TerminateWorkspacesInput) SetTerminateWorkspaceRequests(v []*TerminateRequest) *TerminateWorkspacesInput {
6192	s.TerminateWorkspaceRequests = v
6193	return s
6194}
6195
6196type TerminateWorkspacesOutput struct {
6197	_ struct{} `type:"structure"`
6198
6199	// Information about the WorkSpaces that could not be terminated.
6200	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
6201}
6202
6203// String returns the string representation
6204func (s TerminateWorkspacesOutput) String() string {
6205	return awsutil.Prettify(s)
6206}
6207
6208// GoString returns the string representation
6209func (s TerminateWorkspacesOutput) GoString() string {
6210	return s.String()
6211}
6212
6213// SetFailedRequests sets the FailedRequests field's value.
6214func (s *TerminateWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *TerminateWorkspacesOutput {
6215	s.FailedRequests = v
6216	return s
6217}
6218
6219type UpdateRulesOfIpGroupInput struct {
6220	_ struct{} `type:"structure"`
6221
6222	// The identifier of the group.
6223	//
6224	// GroupId is a required field
6225	GroupId *string `type:"string" required:"true"`
6226
6227	// One or more rules.
6228	//
6229	// UserRules is a required field
6230	UserRules []*IpRuleItem `type:"list" required:"true"`
6231}
6232
6233// String returns the string representation
6234func (s UpdateRulesOfIpGroupInput) String() string {
6235	return awsutil.Prettify(s)
6236}
6237
6238// GoString returns the string representation
6239func (s UpdateRulesOfIpGroupInput) GoString() string {
6240	return s.String()
6241}
6242
6243// Validate inspects the fields of the type to determine if they are valid.
6244func (s *UpdateRulesOfIpGroupInput) Validate() error {
6245	invalidParams := request.ErrInvalidParams{Context: "UpdateRulesOfIpGroupInput"}
6246	if s.GroupId == nil {
6247		invalidParams.Add(request.NewErrParamRequired("GroupId"))
6248	}
6249	if s.UserRules == nil {
6250		invalidParams.Add(request.NewErrParamRequired("UserRules"))
6251	}
6252
6253	if invalidParams.Len() > 0 {
6254		return invalidParams
6255	}
6256	return nil
6257}
6258
6259// SetGroupId sets the GroupId field's value.
6260func (s *UpdateRulesOfIpGroupInput) SetGroupId(v string) *UpdateRulesOfIpGroupInput {
6261	s.GroupId = &v
6262	return s
6263}
6264
6265// SetUserRules sets the UserRules field's value.
6266func (s *UpdateRulesOfIpGroupInput) SetUserRules(v []*IpRuleItem) *UpdateRulesOfIpGroupInput {
6267	s.UserRules = v
6268	return s
6269}
6270
6271type UpdateRulesOfIpGroupOutput struct {
6272	_ struct{} `type:"structure"`
6273}
6274
6275// String returns the string representation
6276func (s UpdateRulesOfIpGroupOutput) String() string {
6277	return awsutil.Prettify(s)
6278}
6279
6280// GoString returns the string representation
6281func (s UpdateRulesOfIpGroupOutput) GoString() string {
6282	return s.String()
6283}
6284
6285// Describes the user storage for a WorkSpace bundle.
6286type UserStorage struct {
6287	_ struct{} `type:"structure"`
6288
6289	// The size of the user storage.
6290	Capacity *string `min:"1" type:"string"`
6291}
6292
6293// String returns the string representation
6294func (s UserStorage) String() string {
6295	return awsutil.Prettify(s)
6296}
6297
6298// GoString returns the string representation
6299func (s UserStorage) GoString() string {
6300	return s.String()
6301}
6302
6303// SetCapacity sets the Capacity field's value.
6304func (s *UserStorage) SetCapacity(v string) *UserStorage {
6305	s.Capacity = &v
6306	return s
6307}
6308
6309// Describes a WorkSpace.
6310type Workspace struct {
6311	_ struct{} `type:"structure"`
6312
6313	// The identifier of the bundle used to create the WorkSpace.
6314	BundleId *string `type:"string"`
6315
6316	// The name of the WorkSpace, as seen by the operating system.
6317	ComputerName *string `type:"string"`
6318
6319	// The identifier of the AWS Directory Service directory for the WorkSpace.
6320	DirectoryId *string `type:"string"`
6321
6322	// The error code that is returned if the WorkSpace cannot be created.
6323	ErrorCode *string `type:"string"`
6324
6325	// The text of the error message that is returned if the WorkSpace cannot be
6326	// created.
6327	ErrorMessage *string `type:"string"`
6328
6329	// The IP address of the WorkSpace.
6330	IpAddress *string `type:"string"`
6331
6332	// The modification states of the WorkSpace.
6333	ModificationStates []*ModificationState `type:"list"`
6334
6335	// Indicates whether the data stored on the root volume is encrypted.
6336	RootVolumeEncryptionEnabled *bool `type:"boolean"`
6337
6338	// The operational state of the WorkSpace.
6339	State *string `type:"string" enum:"WorkspaceState"`
6340
6341	// The identifier of the subnet for the WorkSpace.
6342	SubnetId *string `type:"string"`
6343
6344	// The user for the WorkSpace.
6345	UserName *string `min:"1" type:"string"`
6346
6347	// Indicates whether the data stored on the user volume is encrypted.
6348	UserVolumeEncryptionEnabled *bool `type:"boolean"`
6349
6350	// The KMS key used to encrypt data stored on your WorkSpace.
6351	VolumeEncryptionKey *string `type:"string"`
6352
6353	// The identifier of the WorkSpace.
6354	WorkspaceId *string `type:"string"`
6355
6356	// The properties of the WorkSpace.
6357	WorkspaceProperties *WorkspaceProperties `type:"structure"`
6358}
6359
6360// String returns the string representation
6361func (s Workspace) String() string {
6362	return awsutil.Prettify(s)
6363}
6364
6365// GoString returns the string representation
6366func (s Workspace) GoString() string {
6367	return s.String()
6368}
6369
6370// SetBundleId sets the BundleId field's value.
6371func (s *Workspace) SetBundleId(v string) *Workspace {
6372	s.BundleId = &v
6373	return s
6374}
6375
6376// SetComputerName sets the ComputerName field's value.
6377func (s *Workspace) SetComputerName(v string) *Workspace {
6378	s.ComputerName = &v
6379	return s
6380}
6381
6382// SetDirectoryId sets the DirectoryId field's value.
6383func (s *Workspace) SetDirectoryId(v string) *Workspace {
6384	s.DirectoryId = &v
6385	return s
6386}
6387
6388// SetErrorCode sets the ErrorCode field's value.
6389func (s *Workspace) SetErrorCode(v string) *Workspace {
6390	s.ErrorCode = &v
6391	return s
6392}
6393
6394// SetErrorMessage sets the ErrorMessage field's value.
6395func (s *Workspace) SetErrorMessage(v string) *Workspace {
6396	s.ErrorMessage = &v
6397	return s
6398}
6399
6400// SetIpAddress sets the IpAddress field's value.
6401func (s *Workspace) SetIpAddress(v string) *Workspace {
6402	s.IpAddress = &v
6403	return s
6404}
6405
6406// SetModificationStates sets the ModificationStates field's value.
6407func (s *Workspace) SetModificationStates(v []*ModificationState) *Workspace {
6408	s.ModificationStates = v
6409	return s
6410}
6411
6412// SetRootVolumeEncryptionEnabled sets the RootVolumeEncryptionEnabled field's value.
6413func (s *Workspace) SetRootVolumeEncryptionEnabled(v bool) *Workspace {
6414	s.RootVolumeEncryptionEnabled = &v
6415	return s
6416}
6417
6418// SetState sets the State field's value.
6419func (s *Workspace) SetState(v string) *Workspace {
6420	s.State = &v
6421	return s
6422}
6423
6424// SetSubnetId sets the SubnetId field's value.
6425func (s *Workspace) SetSubnetId(v string) *Workspace {
6426	s.SubnetId = &v
6427	return s
6428}
6429
6430// SetUserName sets the UserName field's value.
6431func (s *Workspace) SetUserName(v string) *Workspace {
6432	s.UserName = &v
6433	return s
6434}
6435
6436// SetUserVolumeEncryptionEnabled sets the UserVolumeEncryptionEnabled field's value.
6437func (s *Workspace) SetUserVolumeEncryptionEnabled(v bool) *Workspace {
6438	s.UserVolumeEncryptionEnabled = &v
6439	return s
6440}
6441
6442// SetVolumeEncryptionKey sets the VolumeEncryptionKey field's value.
6443func (s *Workspace) SetVolumeEncryptionKey(v string) *Workspace {
6444	s.VolumeEncryptionKey = &v
6445	return s
6446}
6447
6448// SetWorkspaceId sets the WorkspaceId field's value.
6449func (s *Workspace) SetWorkspaceId(v string) *Workspace {
6450	s.WorkspaceId = &v
6451	return s
6452}
6453
6454// SetWorkspaceProperties sets the WorkspaceProperties field's value.
6455func (s *Workspace) SetWorkspaceProperties(v *WorkspaceProperties) *Workspace {
6456	s.WorkspaceProperties = v
6457	return s
6458}
6459
6460// Describes a WorkSpace bundle.
6461type WorkspaceBundle struct {
6462	_ struct{} `type:"structure"`
6463
6464	// The bundle identifier.
6465	BundleId *string `type:"string"`
6466
6467	// The compute type. For more information, see Amazon WorkSpaces Bundles (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
6468	ComputeType *ComputeType `type:"structure"`
6469
6470	// A description.
6471	Description *string `type:"string"`
6472
6473	// The name of the bundle.
6474	Name *string `min:"1" type:"string"`
6475
6476	// The owner of the bundle. This is the account identifier of the owner, or
6477	// AMAZON if the bundle is provided by AWS.
6478	Owner *string `type:"string"`
6479
6480	// The size of the root volume.
6481	RootStorage *RootStorage `type:"structure"`
6482
6483	// The size of the user storage.
6484	UserStorage *UserStorage `type:"structure"`
6485}
6486
6487// String returns the string representation
6488func (s WorkspaceBundle) String() string {
6489	return awsutil.Prettify(s)
6490}
6491
6492// GoString returns the string representation
6493func (s WorkspaceBundle) GoString() string {
6494	return s.String()
6495}
6496
6497// SetBundleId sets the BundleId field's value.
6498func (s *WorkspaceBundle) SetBundleId(v string) *WorkspaceBundle {
6499	s.BundleId = &v
6500	return s
6501}
6502
6503// SetComputeType sets the ComputeType field's value.
6504func (s *WorkspaceBundle) SetComputeType(v *ComputeType) *WorkspaceBundle {
6505	s.ComputeType = v
6506	return s
6507}
6508
6509// SetDescription sets the Description field's value.
6510func (s *WorkspaceBundle) SetDescription(v string) *WorkspaceBundle {
6511	s.Description = &v
6512	return s
6513}
6514
6515// SetName sets the Name field's value.
6516func (s *WorkspaceBundle) SetName(v string) *WorkspaceBundle {
6517	s.Name = &v
6518	return s
6519}
6520
6521// SetOwner sets the Owner field's value.
6522func (s *WorkspaceBundle) SetOwner(v string) *WorkspaceBundle {
6523	s.Owner = &v
6524	return s
6525}
6526
6527// SetRootStorage sets the RootStorage field's value.
6528func (s *WorkspaceBundle) SetRootStorage(v *RootStorage) *WorkspaceBundle {
6529	s.RootStorage = v
6530	return s
6531}
6532
6533// SetUserStorage sets the UserStorage field's value.
6534func (s *WorkspaceBundle) SetUserStorage(v *UserStorage) *WorkspaceBundle {
6535	s.UserStorage = v
6536	return s
6537}
6538
6539// Describes the connection status of a WorkSpace.
6540type WorkspaceConnectionStatus struct {
6541	_ struct{} `type:"structure"`
6542
6543	// The connection state of the WorkSpace. The connection state is unknown if
6544	// the WorkSpace is stopped.
6545	ConnectionState *string `type:"string" enum:"ConnectionState"`
6546
6547	// The timestamp of the connection status check.
6548	ConnectionStateCheckTimestamp *time.Time `type:"timestamp"`
6549
6550	// The timestamp of the last known user connection.
6551	LastKnownUserConnectionTimestamp *time.Time `type:"timestamp"`
6552
6553	// The identifier of the WorkSpace.
6554	WorkspaceId *string `type:"string"`
6555}
6556
6557// String returns the string representation
6558func (s WorkspaceConnectionStatus) String() string {
6559	return awsutil.Prettify(s)
6560}
6561
6562// GoString returns the string representation
6563func (s WorkspaceConnectionStatus) GoString() string {
6564	return s.String()
6565}
6566
6567// SetConnectionState sets the ConnectionState field's value.
6568func (s *WorkspaceConnectionStatus) SetConnectionState(v string) *WorkspaceConnectionStatus {
6569	s.ConnectionState = &v
6570	return s
6571}
6572
6573// SetConnectionStateCheckTimestamp sets the ConnectionStateCheckTimestamp field's value.
6574func (s *WorkspaceConnectionStatus) SetConnectionStateCheckTimestamp(v time.Time) *WorkspaceConnectionStatus {
6575	s.ConnectionStateCheckTimestamp = &v
6576	return s
6577}
6578
6579// SetLastKnownUserConnectionTimestamp sets the LastKnownUserConnectionTimestamp field's value.
6580func (s *WorkspaceConnectionStatus) SetLastKnownUserConnectionTimestamp(v time.Time) *WorkspaceConnectionStatus {
6581	s.LastKnownUserConnectionTimestamp = &v
6582	return s
6583}
6584
6585// SetWorkspaceId sets the WorkspaceId field's value.
6586func (s *WorkspaceConnectionStatus) SetWorkspaceId(v string) *WorkspaceConnectionStatus {
6587	s.WorkspaceId = &v
6588	return s
6589}
6590
6591// Describes an AWS Directory Service directory that is used with Amazon WorkSpaces.
6592type WorkspaceDirectory struct {
6593	_ struct{} `type:"structure"`
6594
6595	// The directory alias.
6596	Alias *string `type:"string"`
6597
6598	// The user name for the service account.
6599	CustomerUserName *string `min:"1" type:"string"`
6600
6601	// The directory identifier.
6602	DirectoryId *string `type:"string"`
6603
6604	// The name of the directory.
6605	DirectoryName *string `type:"string"`
6606
6607	// The directory type.
6608	DirectoryType *string `type:"string" enum:"WorkspaceDirectoryType"`
6609
6610	// The IP addresses of the DNS servers for the directory.
6611	DnsIpAddresses []*string `type:"list"`
6612
6613	// The identifier of the IAM role. This is the role that allows Amazon WorkSpaces
6614	// to make calls to other services, such as Amazon EC2, on your behalf.
6615	IamRoleId *string `type:"string"`
6616
6617	// The identifiers of the IP access control groups associated with the directory.
6618	IpGroupIds []*string `locationName:"ipGroupIds" type:"list"`
6619
6620	// The registration code for the directory. This is the code that users enter
6621	// in their Amazon WorkSpaces client application to connect to the directory.
6622	RegistrationCode *string `min:"1" type:"string"`
6623
6624	// The state of the directory's registration with Amazon WorkSpaces
6625	State *string `type:"string" enum:"WorkspaceDirectoryState"`
6626
6627	// The identifiers of the subnets used with the directory.
6628	SubnetIds []*string `type:"list"`
6629
6630	// The default creation properties for all WorkSpaces in the directory.
6631	WorkspaceCreationProperties *DefaultWorkspaceCreationProperties `type:"structure"`
6632
6633	// The identifier of the security group that is assigned to new WorkSpaces.
6634	WorkspaceSecurityGroupId *string `type:"string"`
6635}
6636
6637// String returns the string representation
6638func (s WorkspaceDirectory) String() string {
6639	return awsutil.Prettify(s)
6640}
6641
6642// GoString returns the string representation
6643func (s WorkspaceDirectory) GoString() string {
6644	return s.String()
6645}
6646
6647// SetAlias sets the Alias field's value.
6648func (s *WorkspaceDirectory) SetAlias(v string) *WorkspaceDirectory {
6649	s.Alias = &v
6650	return s
6651}
6652
6653// SetCustomerUserName sets the CustomerUserName field's value.
6654func (s *WorkspaceDirectory) SetCustomerUserName(v string) *WorkspaceDirectory {
6655	s.CustomerUserName = &v
6656	return s
6657}
6658
6659// SetDirectoryId sets the DirectoryId field's value.
6660func (s *WorkspaceDirectory) SetDirectoryId(v string) *WorkspaceDirectory {
6661	s.DirectoryId = &v
6662	return s
6663}
6664
6665// SetDirectoryName sets the DirectoryName field's value.
6666func (s *WorkspaceDirectory) SetDirectoryName(v string) *WorkspaceDirectory {
6667	s.DirectoryName = &v
6668	return s
6669}
6670
6671// SetDirectoryType sets the DirectoryType field's value.
6672func (s *WorkspaceDirectory) SetDirectoryType(v string) *WorkspaceDirectory {
6673	s.DirectoryType = &v
6674	return s
6675}
6676
6677// SetDnsIpAddresses sets the DnsIpAddresses field's value.
6678func (s *WorkspaceDirectory) SetDnsIpAddresses(v []*string) *WorkspaceDirectory {
6679	s.DnsIpAddresses = v
6680	return s
6681}
6682
6683// SetIamRoleId sets the IamRoleId field's value.
6684func (s *WorkspaceDirectory) SetIamRoleId(v string) *WorkspaceDirectory {
6685	s.IamRoleId = &v
6686	return s
6687}
6688
6689// SetIpGroupIds sets the IpGroupIds field's value.
6690func (s *WorkspaceDirectory) SetIpGroupIds(v []*string) *WorkspaceDirectory {
6691	s.IpGroupIds = v
6692	return s
6693}
6694
6695// SetRegistrationCode sets the RegistrationCode field's value.
6696func (s *WorkspaceDirectory) SetRegistrationCode(v string) *WorkspaceDirectory {
6697	s.RegistrationCode = &v
6698	return s
6699}
6700
6701// SetState sets the State field's value.
6702func (s *WorkspaceDirectory) SetState(v string) *WorkspaceDirectory {
6703	s.State = &v
6704	return s
6705}
6706
6707// SetSubnetIds sets the SubnetIds field's value.
6708func (s *WorkspaceDirectory) SetSubnetIds(v []*string) *WorkspaceDirectory {
6709	s.SubnetIds = v
6710	return s
6711}
6712
6713// SetWorkspaceCreationProperties sets the WorkspaceCreationProperties field's value.
6714func (s *WorkspaceDirectory) SetWorkspaceCreationProperties(v *DefaultWorkspaceCreationProperties) *WorkspaceDirectory {
6715	s.WorkspaceCreationProperties = v
6716	return s
6717}
6718
6719// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
6720func (s *WorkspaceDirectory) SetWorkspaceSecurityGroupId(v string) *WorkspaceDirectory {
6721	s.WorkspaceSecurityGroupId = &v
6722	return s
6723}
6724
6725// Describes a WorkSpace image.
6726type WorkspaceImage struct {
6727	_ struct{} `type:"structure"`
6728
6729	// The description of the image.
6730	Description *string `min:"1" type:"string"`
6731
6732	// The error code that is returned for the image.
6733	ErrorCode *string `type:"string"`
6734
6735	// The text of the error message that is returned for the image.
6736	ErrorMessage *string `type:"string"`
6737
6738	// The identifier of the image.
6739	ImageId *string `type:"string"`
6740
6741	// The name of the image.
6742	Name *string `min:"1" type:"string"`
6743
6744	// The operating system that the image is running.
6745	OperatingSystem *OperatingSystem `type:"structure"`
6746
6747	// Specifies whether the image is running on dedicated hardware. When bring
6748	// your own license (BYOL) is enabled, this value is set to DEDICATED.
6749	RequiredTenancy *string `type:"string" enum:"WorkspaceImageRequiredTenancy"`
6750
6751	// The status of the image.
6752	State *string `type:"string" enum:"WorkspaceImageState"`
6753}
6754
6755// String returns the string representation
6756func (s WorkspaceImage) String() string {
6757	return awsutil.Prettify(s)
6758}
6759
6760// GoString returns the string representation
6761func (s WorkspaceImage) GoString() string {
6762	return s.String()
6763}
6764
6765// SetDescription sets the Description field's value.
6766func (s *WorkspaceImage) SetDescription(v string) *WorkspaceImage {
6767	s.Description = &v
6768	return s
6769}
6770
6771// SetErrorCode sets the ErrorCode field's value.
6772func (s *WorkspaceImage) SetErrorCode(v string) *WorkspaceImage {
6773	s.ErrorCode = &v
6774	return s
6775}
6776
6777// SetErrorMessage sets the ErrorMessage field's value.
6778func (s *WorkspaceImage) SetErrorMessage(v string) *WorkspaceImage {
6779	s.ErrorMessage = &v
6780	return s
6781}
6782
6783// SetImageId sets the ImageId field's value.
6784func (s *WorkspaceImage) SetImageId(v string) *WorkspaceImage {
6785	s.ImageId = &v
6786	return s
6787}
6788
6789// SetName sets the Name field's value.
6790func (s *WorkspaceImage) SetName(v string) *WorkspaceImage {
6791	s.Name = &v
6792	return s
6793}
6794
6795// SetOperatingSystem sets the OperatingSystem field's value.
6796func (s *WorkspaceImage) SetOperatingSystem(v *OperatingSystem) *WorkspaceImage {
6797	s.OperatingSystem = v
6798	return s
6799}
6800
6801// SetRequiredTenancy sets the RequiredTenancy field's value.
6802func (s *WorkspaceImage) SetRequiredTenancy(v string) *WorkspaceImage {
6803	s.RequiredTenancy = &v
6804	return s
6805}
6806
6807// SetState sets the State field's value.
6808func (s *WorkspaceImage) SetState(v string) *WorkspaceImage {
6809	s.State = &v
6810	return s
6811}
6812
6813// Describes a WorkSpace.
6814type WorkspaceProperties struct {
6815	_ struct{} `type:"structure"`
6816
6817	// The compute type. For more information, see Amazon WorkSpaces Bundles (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
6818	ComputeTypeName *string `type:"string" enum:"Compute"`
6819
6820	// The size of the root volume.
6821	RootVolumeSizeGib *int64 `type:"integer"`
6822
6823	// The running mode. For more information, see Manage the WorkSpace Running
6824	// Mode (https://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html).
6825	RunningMode *string `type:"string" enum:"RunningMode"`
6826
6827	// The time after a user logs off when WorkSpaces are automatically stopped.
6828	// Configured in 60 minute intervals.
6829	RunningModeAutoStopTimeoutInMinutes *int64 `type:"integer"`
6830
6831	// The size of the user storage.
6832	UserVolumeSizeGib *int64 `type:"integer"`
6833}
6834
6835// String returns the string representation
6836func (s WorkspaceProperties) String() string {
6837	return awsutil.Prettify(s)
6838}
6839
6840// GoString returns the string representation
6841func (s WorkspaceProperties) GoString() string {
6842	return s.String()
6843}
6844
6845// SetComputeTypeName sets the ComputeTypeName field's value.
6846func (s *WorkspaceProperties) SetComputeTypeName(v string) *WorkspaceProperties {
6847	s.ComputeTypeName = &v
6848	return s
6849}
6850
6851// SetRootVolumeSizeGib sets the RootVolumeSizeGib field's value.
6852func (s *WorkspaceProperties) SetRootVolumeSizeGib(v int64) *WorkspaceProperties {
6853	s.RootVolumeSizeGib = &v
6854	return s
6855}
6856
6857// SetRunningMode sets the RunningMode field's value.
6858func (s *WorkspaceProperties) SetRunningMode(v string) *WorkspaceProperties {
6859	s.RunningMode = &v
6860	return s
6861}
6862
6863// SetRunningModeAutoStopTimeoutInMinutes sets the RunningModeAutoStopTimeoutInMinutes field's value.
6864func (s *WorkspaceProperties) SetRunningModeAutoStopTimeoutInMinutes(v int64) *WorkspaceProperties {
6865	s.RunningModeAutoStopTimeoutInMinutes = &v
6866	return s
6867}
6868
6869// SetUserVolumeSizeGib sets the UserVolumeSizeGib field's value.
6870func (s *WorkspaceProperties) SetUserVolumeSizeGib(v int64) *WorkspaceProperties {
6871	s.UserVolumeSizeGib = &v
6872	return s
6873}
6874
6875// Describes the information used to create a WorkSpace.
6876type WorkspaceRequest struct {
6877	_ struct{} `type:"structure"`
6878
6879	// The identifier of the bundle for the WorkSpace. You can use DescribeWorkspaceBundles
6880	// to list the available bundles.
6881	//
6882	// BundleId is a required field
6883	BundleId *string `type:"string" required:"true"`
6884
6885	// The identifier of the AWS Directory Service directory for the WorkSpace.
6886	// You can use DescribeWorkspaceDirectories to list the available directories.
6887	//
6888	// DirectoryId is a required field
6889	DirectoryId *string `type:"string" required:"true"`
6890
6891	// Indicates whether the data stored on the root volume is encrypted.
6892	RootVolumeEncryptionEnabled *bool `type:"boolean"`
6893
6894	// The tags for the WorkSpace.
6895	Tags []*Tag `type:"list"`
6896
6897	// The username of the user for the WorkSpace. This username must exist in the
6898	// AWS Directory Service directory for the WorkSpace.
6899	//
6900	// UserName is a required field
6901	UserName *string `min:"1" type:"string" required:"true"`
6902
6903	// Indicates whether the data stored on the user volume is encrypted.
6904	UserVolumeEncryptionEnabled *bool `type:"boolean"`
6905
6906	// The KMS key used to encrypt data stored on your WorkSpace.
6907	VolumeEncryptionKey *string `type:"string"`
6908
6909	// The WorkSpace properties.
6910	WorkspaceProperties *WorkspaceProperties `type:"structure"`
6911}
6912
6913// String returns the string representation
6914func (s WorkspaceRequest) String() string {
6915	return awsutil.Prettify(s)
6916}
6917
6918// GoString returns the string representation
6919func (s WorkspaceRequest) GoString() string {
6920	return s.String()
6921}
6922
6923// Validate inspects the fields of the type to determine if they are valid.
6924func (s *WorkspaceRequest) Validate() error {
6925	invalidParams := request.ErrInvalidParams{Context: "WorkspaceRequest"}
6926	if s.BundleId == nil {
6927		invalidParams.Add(request.NewErrParamRequired("BundleId"))
6928	}
6929	if s.DirectoryId == nil {
6930		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
6931	}
6932	if s.UserName == nil {
6933		invalidParams.Add(request.NewErrParamRequired("UserName"))
6934	}
6935	if s.UserName != nil && len(*s.UserName) < 1 {
6936		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
6937	}
6938	if s.Tags != nil {
6939		for i, v := range s.Tags {
6940			if v == nil {
6941				continue
6942			}
6943			if err := v.Validate(); err != nil {
6944				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
6945			}
6946		}
6947	}
6948
6949	if invalidParams.Len() > 0 {
6950		return invalidParams
6951	}
6952	return nil
6953}
6954
6955// SetBundleId sets the BundleId field's value.
6956func (s *WorkspaceRequest) SetBundleId(v string) *WorkspaceRequest {
6957	s.BundleId = &v
6958	return s
6959}
6960
6961// SetDirectoryId sets the DirectoryId field's value.
6962func (s *WorkspaceRequest) SetDirectoryId(v string) *WorkspaceRequest {
6963	s.DirectoryId = &v
6964	return s
6965}
6966
6967// SetRootVolumeEncryptionEnabled sets the RootVolumeEncryptionEnabled field's value.
6968func (s *WorkspaceRequest) SetRootVolumeEncryptionEnabled(v bool) *WorkspaceRequest {
6969	s.RootVolumeEncryptionEnabled = &v
6970	return s
6971}
6972
6973// SetTags sets the Tags field's value.
6974func (s *WorkspaceRequest) SetTags(v []*Tag) *WorkspaceRequest {
6975	s.Tags = v
6976	return s
6977}
6978
6979// SetUserName sets the UserName field's value.
6980func (s *WorkspaceRequest) SetUserName(v string) *WorkspaceRequest {
6981	s.UserName = &v
6982	return s
6983}
6984
6985// SetUserVolumeEncryptionEnabled sets the UserVolumeEncryptionEnabled field's value.
6986func (s *WorkspaceRequest) SetUserVolumeEncryptionEnabled(v bool) *WorkspaceRequest {
6987	s.UserVolumeEncryptionEnabled = &v
6988	return s
6989}
6990
6991// SetVolumeEncryptionKey sets the VolumeEncryptionKey field's value.
6992func (s *WorkspaceRequest) SetVolumeEncryptionKey(v string) *WorkspaceRequest {
6993	s.VolumeEncryptionKey = &v
6994	return s
6995}
6996
6997// SetWorkspaceProperties sets the WorkspaceProperties field's value.
6998func (s *WorkspaceRequest) SetWorkspaceProperties(v *WorkspaceProperties) *WorkspaceRequest {
6999	s.WorkspaceProperties = v
7000	return s
7001}
7002
7003const (
7004	// ComputeValue is a Compute enum value
7005	ComputeValue = "VALUE"
7006
7007	// ComputeStandard is a Compute enum value
7008	ComputeStandard = "STANDARD"
7009
7010	// ComputePerformance is a Compute enum value
7011	ComputePerformance = "PERFORMANCE"
7012
7013	// ComputePower is a Compute enum value
7014	ComputePower = "POWER"
7015
7016	// ComputeGraphics is a Compute enum value
7017	ComputeGraphics = "GRAPHICS"
7018
7019	// ComputePowerpro is a Compute enum value
7020	ComputePowerpro = "POWERPRO"
7021
7022	// ComputeGraphicspro is a Compute enum value
7023	ComputeGraphicspro = "GRAPHICSPRO"
7024)
7025
7026const (
7027	// ConnectionStateConnected is a ConnectionState enum value
7028	ConnectionStateConnected = "CONNECTED"
7029
7030	// ConnectionStateDisconnected is a ConnectionState enum value
7031	ConnectionStateDisconnected = "DISCONNECTED"
7032
7033	// ConnectionStateUnknown is a ConnectionState enum value
7034	ConnectionStateUnknown = "UNKNOWN"
7035)
7036
7037const (
7038	// DedicatedTenancyModificationStateEnumPending is a DedicatedTenancyModificationStateEnum enum value
7039	DedicatedTenancyModificationStateEnumPending = "PENDING"
7040
7041	// DedicatedTenancyModificationStateEnumCompleted is a DedicatedTenancyModificationStateEnum enum value
7042	DedicatedTenancyModificationStateEnumCompleted = "COMPLETED"
7043
7044	// DedicatedTenancyModificationStateEnumFailed is a DedicatedTenancyModificationStateEnum enum value
7045	DedicatedTenancyModificationStateEnumFailed = "FAILED"
7046)
7047
7048const (
7049	// DedicatedTenancySupportEnumEnabled is a DedicatedTenancySupportEnum enum value
7050	DedicatedTenancySupportEnumEnabled = "ENABLED"
7051)
7052
7053const (
7054	// DedicatedTenancySupportResultEnumEnabled is a DedicatedTenancySupportResultEnum enum value
7055	DedicatedTenancySupportResultEnumEnabled = "ENABLED"
7056
7057	// DedicatedTenancySupportResultEnumDisabled is a DedicatedTenancySupportResultEnum enum value
7058	DedicatedTenancySupportResultEnumDisabled = "DISABLED"
7059)
7060
7061const (
7062	// ModificationResourceEnumRootVolume is a ModificationResourceEnum enum value
7063	ModificationResourceEnumRootVolume = "ROOT_VOLUME"
7064
7065	// ModificationResourceEnumUserVolume is a ModificationResourceEnum enum value
7066	ModificationResourceEnumUserVolume = "USER_VOLUME"
7067
7068	// ModificationResourceEnumComputeType is a ModificationResourceEnum enum value
7069	ModificationResourceEnumComputeType = "COMPUTE_TYPE"
7070)
7071
7072const (
7073	// ModificationStateEnumUpdateInitiated is a ModificationStateEnum enum value
7074	ModificationStateEnumUpdateInitiated = "UPDATE_INITIATED"
7075
7076	// ModificationStateEnumUpdateInProgress is a ModificationStateEnum enum value
7077	ModificationStateEnumUpdateInProgress = "UPDATE_IN_PROGRESS"
7078)
7079
7080const (
7081	// OperatingSystemTypeWindows is a OperatingSystemType enum value
7082	OperatingSystemTypeWindows = "WINDOWS"
7083
7084	// OperatingSystemTypeLinux is a OperatingSystemType enum value
7085	OperatingSystemTypeLinux = "LINUX"
7086)
7087
7088const (
7089	// ReconnectEnumEnabled is a ReconnectEnum enum value
7090	ReconnectEnumEnabled = "ENABLED"
7091
7092	// ReconnectEnumDisabled is a ReconnectEnum enum value
7093	ReconnectEnumDisabled = "DISABLED"
7094)
7095
7096const (
7097	// RunningModeAutoStop is a RunningMode enum value
7098	RunningModeAutoStop = "AUTO_STOP"
7099
7100	// RunningModeAlwaysOn is a RunningMode enum value
7101	RunningModeAlwaysOn = "ALWAYS_ON"
7102)
7103
7104const (
7105	// TargetWorkspaceStateAvailable is a TargetWorkspaceState enum value
7106	TargetWorkspaceStateAvailable = "AVAILABLE"
7107
7108	// TargetWorkspaceStateAdminMaintenance is a TargetWorkspaceState enum value
7109	TargetWorkspaceStateAdminMaintenance = "ADMIN_MAINTENANCE"
7110)
7111
7112const (
7113	// WorkspaceDirectoryStateRegistering is a WorkspaceDirectoryState enum value
7114	WorkspaceDirectoryStateRegistering = "REGISTERING"
7115
7116	// WorkspaceDirectoryStateRegistered is a WorkspaceDirectoryState enum value
7117	WorkspaceDirectoryStateRegistered = "REGISTERED"
7118
7119	// WorkspaceDirectoryStateDeregistering is a WorkspaceDirectoryState enum value
7120	WorkspaceDirectoryStateDeregistering = "DEREGISTERING"
7121
7122	// WorkspaceDirectoryStateDeregistered is a WorkspaceDirectoryState enum value
7123	WorkspaceDirectoryStateDeregistered = "DEREGISTERED"
7124
7125	// WorkspaceDirectoryStateError is a WorkspaceDirectoryState enum value
7126	WorkspaceDirectoryStateError = "ERROR"
7127)
7128
7129const (
7130	// WorkspaceDirectoryTypeSimpleAd is a WorkspaceDirectoryType enum value
7131	WorkspaceDirectoryTypeSimpleAd = "SIMPLE_AD"
7132
7133	// WorkspaceDirectoryTypeAdConnector is a WorkspaceDirectoryType enum value
7134	WorkspaceDirectoryTypeAdConnector = "AD_CONNECTOR"
7135)
7136
7137const (
7138	// WorkspaceImageIngestionProcessByolRegular is a WorkspaceImageIngestionProcess enum value
7139	WorkspaceImageIngestionProcessByolRegular = "BYOL_REGULAR"
7140
7141	// WorkspaceImageIngestionProcessByolGraphics is a WorkspaceImageIngestionProcess enum value
7142	WorkspaceImageIngestionProcessByolGraphics = "BYOL_GRAPHICS"
7143
7144	// WorkspaceImageIngestionProcessByolGraphicspro is a WorkspaceImageIngestionProcess enum value
7145	WorkspaceImageIngestionProcessByolGraphicspro = "BYOL_GRAPHICSPRO"
7146)
7147
7148const (
7149	// WorkspaceImageRequiredTenancyDefault is a WorkspaceImageRequiredTenancy enum value
7150	WorkspaceImageRequiredTenancyDefault = "DEFAULT"
7151
7152	// WorkspaceImageRequiredTenancyDedicated is a WorkspaceImageRequiredTenancy enum value
7153	WorkspaceImageRequiredTenancyDedicated = "DEDICATED"
7154)
7155
7156const (
7157	// WorkspaceImageStateAvailable is a WorkspaceImageState enum value
7158	WorkspaceImageStateAvailable = "AVAILABLE"
7159
7160	// WorkspaceImageStatePending is a WorkspaceImageState enum value
7161	WorkspaceImageStatePending = "PENDING"
7162
7163	// WorkspaceImageStateError is a WorkspaceImageState enum value
7164	WorkspaceImageStateError = "ERROR"
7165)
7166
7167const (
7168	// WorkspaceStatePending is a WorkspaceState enum value
7169	WorkspaceStatePending = "PENDING"
7170
7171	// WorkspaceStateAvailable is a WorkspaceState enum value
7172	WorkspaceStateAvailable = "AVAILABLE"
7173
7174	// WorkspaceStateImpaired is a WorkspaceState enum value
7175	WorkspaceStateImpaired = "IMPAIRED"
7176
7177	// WorkspaceStateUnhealthy is a WorkspaceState enum value
7178	WorkspaceStateUnhealthy = "UNHEALTHY"
7179
7180	// WorkspaceStateRebooting is a WorkspaceState enum value
7181	WorkspaceStateRebooting = "REBOOTING"
7182
7183	// WorkspaceStateStarting is a WorkspaceState enum value
7184	WorkspaceStateStarting = "STARTING"
7185
7186	// WorkspaceStateRebuilding is a WorkspaceState enum value
7187	WorkspaceStateRebuilding = "REBUILDING"
7188
7189	// WorkspaceStateMaintenance is a WorkspaceState enum value
7190	WorkspaceStateMaintenance = "MAINTENANCE"
7191
7192	// WorkspaceStateAdminMaintenance is a WorkspaceState enum value
7193	WorkspaceStateAdminMaintenance = "ADMIN_MAINTENANCE"
7194
7195	// WorkspaceStateTerminating is a WorkspaceState enum value
7196	WorkspaceStateTerminating = "TERMINATING"
7197
7198	// WorkspaceStateTerminated is a WorkspaceState enum value
7199	WorkspaceStateTerminated = "TERMINATED"
7200
7201	// WorkspaceStateSuspended is a WorkspaceState enum value
7202	WorkspaceStateSuspended = "SUSPENDED"
7203
7204	// WorkspaceStateUpdating is a WorkspaceState enum value
7205	WorkspaceStateUpdating = "UPDATING"
7206
7207	// WorkspaceStateStopping is a WorkspaceState enum value
7208	WorkspaceStateStopping = "STOPPING"
7209
7210	// WorkspaceStateStopped is a WorkspaceState enum value
7211	WorkspaceStateStopped = "STOPPED"
7212
7213	// WorkspaceStateError is a WorkspaceState enum value
7214	WorkspaceStateError = "ERROR"
7215)
7216