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)
13
14const opAssociateIpGroups = "AssociateIpGroups"
15
16// AssociateIpGroupsRequest generates a "aws/request.Request" representing the
17// client's request for the AssociateIpGroups operation. The "output" return
18// value will be populated with the request's response once the request completes
19// successfuly.
20//
21// Use "Send" method on the returned Request to send the API call to the service.
22// the "output" return value is not valid until after Send returns without error.
23//
24// See AssociateIpGroups for more information on using the AssociateIpGroups
25// API call, and error handling.
26//
27// This method is useful when you want to inject custom logic or configuration
28// into the SDK's request lifecycle. Such as custom headers, or retry logic.
29//
30//
31//    // Example sending a request using the AssociateIpGroupsRequest method.
32//    req, resp := client.AssociateIpGroupsRequest(params)
33//
34//    err := req.Send()
35//    if err == nil { // resp is now filled
36//        fmt.Println(resp)
37//    }
38//
39// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AssociateIpGroups
40func (c *WorkSpaces) AssociateIpGroupsRequest(input *AssociateIpGroupsInput) (req *request.Request, output *AssociateIpGroupsOutput) {
41	op := &request.Operation{
42		Name:       opAssociateIpGroups,
43		HTTPMethod: "POST",
44		HTTPPath:   "/",
45	}
46
47	if input == nil {
48		input = &AssociateIpGroupsInput{}
49	}
50
51	output = &AssociateIpGroupsOutput{}
52	req = c.newRequest(op, input, output)
53	return
54}
55
56// AssociateIpGroups API operation for Amazon WorkSpaces.
57//
58// Associates the specified IP access control group with the specified directory.
59//
60// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
61// with awserr.Error's Code and Message methods to get detailed information about
62// the error.
63//
64// See the AWS API reference guide for Amazon WorkSpaces's
65// API operation AssociateIpGroups for usage and error information.
66//
67// Returned Error Codes:
68//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
69//   One or more parameter values are not valid.
70//
71//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
72//   The resource could not be found.
73//
74//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
75//   Your resource limits have been exceeded.
76//
77//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
78//   The state of the resource is not valid for this operation.
79//
80//   * ErrCodeAccessDeniedException "AccessDeniedException"
81//   The user is not authorized to access a resource.
82//
83//   * ErrCodeOperationNotSupportedException "OperationNotSupportedException"
84//   This operation is not supported.
85//
86// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AssociateIpGroups
87func (c *WorkSpaces) AssociateIpGroups(input *AssociateIpGroupsInput) (*AssociateIpGroupsOutput, error) {
88	req, out := c.AssociateIpGroupsRequest(input)
89	return out, req.Send()
90}
91
92// AssociateIpGroupsWithContext is the same as AssociateIpGroups with the addition of
93// the ability to pass a context and additional request options.
94//
95// See AssociateIpGroups for details on how to use this API operation.
96//
97// The context must be non-nil and will be used for request cancellation. If
98// the context is nil a panic will occur. In the future the SDK may create
99// sub-contexts for http.Requests. See https://golang.org/pkg/context/
100// for more information on using Contexts.
101func (c *WorkSpaces) AssociateIpGroupsWithContext(ctx aws.Context, input *AssociateIpGroupsInput, opts ...request.Option) (*AssociateIpGroupsOutput, error) {
102	req, out := c.AssociateIpGroupsRequest(input)
103	req.SetContext(ctx)
104	req.ApplyOptions(opts...)
105	return out, req.Send()
106}
107
108const opAuthorizeIpRules = "AuthorizeIpRules"
109
110// AuthorizeIpRulesRequest generates a "aws/request.Request" representing the
111// client's request for the AuthorizeIpRules operation. The "output" return
112// value will be populated with the request's response once the request completes
113// successfuly.
114//
115// Use "Send" method on the returned Request to send the API call to the service.
116// the "output" return value is not valid until after Send returns without error.
117//
118// See AuthorizeIpRules for more information on using the AuthorizeIpRules
119// API call, and error handling.
120//
121// This method is useful when you want to inject custom logic or configuration
122// into the SDK's request lifecycle. Such as custom headers, or retry logic.
123//
124//
125//    // Example sending a request using the AuthorizeIpRulesRequest method.
126//    req, resp := client.AuthorizeIpRulesRequest(params)
127//
128//    err := req.Send()
129//    if err == nil { // resp is now filled
130//        fmt.Println(resp)
131//    }
132//
133// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AuthorizeIpRules
134func (c *WorkSpaces) AuthorizeIpRulesRequest(input *AuthorizeIpRulesInput) (req *request.Request, output *AuthorizeIpRulesOutput) {
135	op := &request.Operation{
136		Name:       opAuthorizeIpRules,
137		HTTPMethod: "POST",
138		HTTPPath:   "/",
139	}
140
141	if input == nil {
142		input = &AuthorizeIpRulesInput{}
143	}
144
145	output = &AuthorizeIpRulesOutput{}
146	req = c.newRequest(op, input, output)
147	return
148}
149
150// AuthorizeIpRules API operation for Amazon WorkSpaces.
151//
152// Adds one or more rules to the specified IP access control group.
153//
154// This action gives users permission to access their WorkSpaces from the CIDR
155// address ranges specified in the rules.
156//
157// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
158// with awserr.Error's Code and Message methods to get detailed information about
159// the error.
160//
161// See the AWS API reference guide for Amazon WorkSpaces's
162// API operation AuthorizeIpRules for usage and error information.
163//
164// Returned Error Codes:
165//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
166//   One or more parameter values are not valid.
167//
168//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
169//   The resource could not be found.
170//
171//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
172//   Your resource limits have been exceeded.
173//
174//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
175//   The state of the resource is not valid for this operation.
176//
177//   * ErrCodeAccessDeniedException "AccessDeniedException"
178//   The user is not authorized to access a resource.
179//
180// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/AuthorizeIpRules
181func (c *WorkSpaces) AuthorizeIpRules(input *AuthorizeIpRulesInput) (*AuthorizeIpRulesOutput, error) {
182	req, out := c.AuthorizeIpRulesRequest(input)
183	return out, req.Send()
184}
185
186// AuthorizeIpRulesWithContext is the same as AuthorizeIpRules with the addition of
187// the ability to pass a context and additional request options.
188//
189// See AuthorizeIpRules for details on how to use this API operation.
190//
191// The context must be non-nil and will be used for request cancellation. If
192// the context is nil a panic will occur. In the future the SDK may create
193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
194// for more information on using Contexts.
195func (c *WorkSpaces) AuthorizeIpRulesWithContext(ctx aws.Context, input *AuthorizeIpRulesInput, opts ...request.Option) (*AuthorizeIpRulesOutput, error) {
196	req, out := c.AuthorizeIpRulesRequest(input)
197	req.SetContext(ctx)
198	req.ApplyOptions(opts...)
199	return out, req.Send()
200}
201
202const opCreateIpGroup = "CreateIpGroup"
203
204// CreateIpGroupRequest generates a "aws/request.Request" representing the
205// client's request for the CreateIpGroup operation. The "output" return
206// value will be populated with the request's response once the request completes
207// successfuly.
208//
209// Use "Send" method on the returned Request to send the API call to the service.
210// the "output" return value is not valid until after Send returns without error.
211//
212// See CreateIpGroup for more information on using the CreateIpGroup
213// API call, and error handling.
214//
215// This method is useful when you want to inject custom logic or configuration
216// into the SDK's request lifecycle. Such as custom headers, or retry logic.
217//
218//
219//    // Example sending a request using the CreateIpGroupRequest method.
220//    req, resp := client.CreateIpGroupRequest(params)
221//
222//    err := req.Send()
223//    if err == nil { // resp is now filled
224//        fmt.Println(resp)
225//    }
226//
227// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateIpGroup
228func (c *WorkSpaces) CreateIpGroupRequest(input *CreateIpGroupInput) (req *request.Request, output *CreateIpGroupOutput) {
229	op := &request.Operation{
230		Name:       opCreateIpGroup,
231		HTTPMethod: "POST",
232		HTTPPath:   "/",
233	}
234
235	if input == nil {
236		input = &CreateIpGroupInput{}
237	}
238
239	output = &CreateIpGroupOutput{}
240	req = c.newRequest(op, input, output)
241	return
242}
243
244// CreateIpGroup API operation for Amazon WorkSpaces.
245//
246// Creates an IP access control group.
247//
248// An IP access control group provides you with the ability to control the IP
249// addresses from which users are allowed to access their WorkSpaces. To specify
250// the CIDR address ranges, add rules to your IP access control group and then
251// associate the group with your directory. You can add rules when you create
252// the group or at any time using AuthorizeIpRules.
253//
254// There is a default IP access control group associated with your directory.
255// If you don't associate an IP access control group with your directory, the
256// default group is used. The default group includes a default rule that allows
257// users to access their WorkSpaces from anywhere. You cannot modify the default
258// IP access control group for your directory.
259//
260// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
261// with awserr.Error's Code and Message methods to get detailed information about
262// the error.
263//
264// See the AWS API reference guide for Amazon WorkSpaces's
265// API operation CreateIpGroup for usage and error information.
266//
267// Returned Error Codes:
268//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
269//   One or more parameter values are not valid.
270//
271//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
272//   Your resource limits have been exceeded.
273//
274//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
275//   The specified resource already exists.
276//
277//   * ErrCodeResourceCreationFailedException "ResourceCreationFailedException"
278//   The resource could not be created.
279//
280//   * ErrCodeAccessDeniedException "AccessDeniedException"
281//   The user is not authorized to access a resource.
282//
283// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateIpGroup
284func (c *WorkSpaces) CreateIpGroup(input *CreateIpGroupInput) (*CreateIpGroupOutput, error) {
285	req, out := c.CreateIpGroupRequest(input)
286	return out, req.Send()
287}
288
289// CreateIpGroupWithContext is the same as CreateIpGroup with the addition of
290// the ability to pass a context and additional request options.
291//
292// See CreateIpGroup for details on how to use this API operation.
293//
294// The context must be non-nil and will be used for request cancellation. If
295// the context is nil a panic will occur. In the future the SDK may create
296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
297// for more information on using Contexts.
298func (c *WorkSpaces) CreateIpGroupWithContext(ctx aws.Context, input *CreateIpGroupInput, opts ...request.Option) (*CreateIpGroupOutput, error) {
299	req, out := c.CreateIpGroupRequest(input)
300	req.SetContext(ctx)
301	req.ApplyOptions(opts...)
302	return out, req.Send()
303}
304
305const opCreateTags = "CreateTags"
306
307// CreateTagsRequest generates a "aws/request.Request" representing the
308// client's request for the CreateTags operation. The "output" return
309// value will be populated with the request's response once the request completes
310// successfuly.
311//
312// Use "Send" method on the returned Request to send the API call to the service.
313// the "output" return value is not valid until after Send returns without error.
314//
315// See CreateTags for more information on using the CreateTags
316// API call, and error handling.
317//
318// This method is useful when you want to inject custom logic or configuration
319// into the SDK's request lifecycle. Such as custom headers, or retry logic.
320//
321//
322//    // Example sending a request using the CreateTagsRequest method.
323//    req, resp := client.CreateTagsRequest(params)
324//
325//    err := req.Send()
326//    if err == nil { // resp is now filled
327//        fmt.Println(resp)
328//    }
329//
330// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateTags
331func (c *WorkSpaces) CreateTagsRequest(input *CreateTagsInput) (req *request.Request, output *CreateTagsOutput) {
332	op := &request.Operation{
333		Name:       opCreateTags,
334		HTTPMethod: "POST",
335		HTTPPath:   "/",
336	}
337
338	if input == nil {
339		input = &CreateTagsInput{}
340	}
341
342	output = &CreateTagsOutput{}
343	req = c.newRequest(op, input, output)
344	return
345}
346
347// CreateTags API operation for Amazon WorkSpaces.
348//
349// Creates the specified tags for the specified WorkSpace.
350//
351// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
352// with awserr.Error's Code and Message methods to get detailed information about
353// the error.
354//
355// See the AWS API reference guide for Amazon WorkSpaces's
356// API operation CreateTags for usage and error information.
357//
358// Returned Error Codes:
359//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
360//   The resource could not be found.
361//
362//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
363//   One or more parameter values are not valid.
364//
365//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
366//   Your resource limits have been exceeded.
367//
368// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateTags
369func (c *WorkSpaces) CreateTags(input *CreateTagsInput) (*CreateTagsOutput, error) {
370	req, out := c.CreateTagsRequest(input)
371	return out, req.Send()
372}
373
374// CreateTagsWithContext is the same as CreateTags with the addition of
375// the ability to pass a context and additional request options.
376//
377// See CreateTags for details on how to use this API operation.
378//
379// The context must be non-nil and will be used for request cancellation. If
380// the context is nil a panic will occur. In the future the SDK may create
381// sub-contexts for http.Requests. See https://golang.org/pkg/context/
382// for more information on using Contexts.
383func (c *WorkSpaces) CreateTagsWithContext(ctx aws.Context, input *CreateTagsInput, opts ...request.Option) (*CreateTagsOutput, error) {
384	req, out := c.CreateTagsRequest(input)
385	req.SetContext(ctx)
386	req.ApplyOptions(opts...)
387	return out, req.Send()
388}
389
390const opCreateWorkspaces = "CreateWorkspaces"
391
392// CreateWorkspacesRequest generates a "aws/request.Request" representing the
393// client's request for the CreateWorkspaces operation. The "output" return
394// value will be populated with the request's response once the request completes
395// successfuly.
396//
397// Use "Send" method on the returned Request to send the API call to the service.
398// the "output" return value is not valid until after Send returns without error.
399//
400// See CreateWorkspaces for more information on using the CreateWorkspaces
401// API call, and error handling.
402//
403// This method is useful when you want to inject custom logic or configuration
404// into the SDK's request lifecycle. Such as custom headers, or retry logic.
405//
406//
407//    // Example sending a request using the CreateWorkspacesRequest method.
408//    req, resp := client.CreateWorkspacesRequest(params)
409//
410//    err := req.Send()
411//    if err == nil { // resp is now filled
412//        fmt.Println(resp)
413//    }
414//
415// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateWorkspaces
416func (c *WorkSpaces) CreateWorkspacesRequest(input *CreateWorkspacesInput) (req *request.Request, output *CreateWorkspacesOutput) {
417	op := &request.Operation{
418		Name:       opCreateWorkspaces,
419		HTTPMethod: "POST",
420		HTTPPath:   "/",
421	}
422
423	if input == nil {
424		input = &CreateWorkspacesInput{}
425	}
426
427	output = &CreateWorkspacesOutput{}
428	req = c.newRequest(op, input, output)
429	return
430}
431
432// CreateWorkspaces API operation for Amazon WorkSpaces.
433//
434// Creates one or more WorkSpaces.
435//
436// This operation is asynchronous and returns before the WorkSpaces are created.
437//
438// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
439// with awserr.Error's Code and Message methods to get detailed information about
440// the error.
441//
442// See the AWS API reference guide for Amazon WorkSpaces's
443// API operation CreateWorkspaces for usage and error information.
444//
445// Returned Error Codes:
446//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
447//   Your resource limits have been exceeded.
448//
449//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
450//   One or more parameter values are not valid.
451//
452// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/CreateWorkspaces
453func (c *WorkSpaces) CreateWorkspaces(input *CreateWorkspacesInput) (*CreateWorkspacesOutput, error) {
454	req, out := c.CreateWorkspacesRequest(input)
455	return out, req.Send()
456}
457
458// CreateWorkspacesWithContext is the same as CreateWorkspaces with the addition of
459// the ability to pass a context and additional request options.
460//
461// See CreateWorkspaces for details on how to use this API operation.
462//
463// The context must be non-nil and will be used for request cancellation. If
464// the context is nil a panic will occur. In the future the SDK may create
465// sub-contexts for http.Requests. See https://golang.org/pkg/context/
466// for more information on using Contexts.
467func (c *WorkSpaces) CreateWorkspacesWithContext(ctx aws.Context, input *CreateWorkspacesInput, opts ...request.Option) (*CreateWorkspacesOutput, error) {
468	req, out := c.CreateWorkspacesRequest(input)
469	req.SetContext(ctx)
470	req.ApplyOptions(opts...)
471	return out, req.Send()
472}
473
474const opDeleteIpGroup = "DeleteIpGroup"
475
476// DeleteIpGroupRequest generates a "aws/request.Request" representing the
477// client's request for the DeleteIpGroup operation. The "output" return
478// value will be populated with the request's response once the request completes
479// successfuly.
480//
481// Use "Send" method on the returned Request to send the API call to the service.
482// the "output" return value is not valid until after Send returns without error.
483//
484// See DeleteIpGroup for more information on using the DeleteIpGroup
485// API call, and error handling.
486//
487// This method is useful when you want to inject custom logic or configuration
488// into the SDK's request lifecycle. Such as custom headers, or retry logic.
489//
490//
491//    // Example sending a request using the DeleteIpGroupRequest method.
492//    req, resp := client.DeleteIpGroupRequest(params)
493//
494//    err := req.Send()
495//    if err == nil { // resp is now filled
496//        fmt.Println(resp)
497//    }
498//
499// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteIpGroup
500func (c *WorkSpaces) DeleteIpGroupRequest(input *DeleteIpGroupInput) (req *request.Request, output *DeleteIpGroupOutput) {
501	op := &request.Operation{
502		Name:       opDeleteIpGroup,
503		HTTPMethod: "POST",
504		HTTPPath:   "/",
505	}
506
507	if input == nil {
508		input = &DeleteIpGroupInput{}
509	}
510
511	output = &DeleteIpGroupOutput{}
512	req = c.newRequest(op, input, output)
513	return
514}
515
516// DeleteIpGroup API operation for Amazon WorkSpaces.
517//
518// Deletes the specified IP access control group.
519//
520// You cannot delete an IP access control group that is associated with a directory.
521//
522// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
523// with awserr.Error's Code and Message methods to get detailed information about
524// the error.
525//
526// See the AWS API reference guide for Amazon WorkSpaces's
527// API operation DeleteIpGroup for usage and error information.
528//
529// Returned Error Codes:
530//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
531//   One or more parameter values are not valid.
532//
533//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
534//   The resource could not be found.
535//
536//   * ErrCodeResourceAssociatedException "ResourceAssociatedException"
537//   The resource is associated with a directory.
538//
539//   * ErrCodeAccessDeniedException "AccessDeniedException"
540//   The user is not authorized to access a resource.
541//
542// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteIpGroup
543func (c *WorkSpaces) DeleteIpGroup(input *DeleteIpGroupInput) (*DeleteIpGroupOutput, error) {
544	req, out := c.DeleteIpGroupRequest(input)
545	return out, req.Send()
546}
547
548// DeleteIpGroupWithContext is the same as DeleteIpGroup with the addition of
549// the ability to pass a context and additional request options.
550//
551// See DeleteIpGroup for details on how to use this API operation.
552//
553// The context must be non-nil and will be used for request cancellation. If
554// the context is nil a panic will occur. In the future the SDK may create
555// sub-contexts for http.Requests. See https://golang.org/pkg/context/
556// for more information on using Contexts.
557func (c *WorkSpaces) DeleteIpGroupWithContext(ctx aws.Context, input *DeleteIpGroupInput, opts ...request.Option) (*DeleteIpGroupOutput, error) {
558	req, out := c.DeleteIpGroupRequest(input)
559	req.SetContext(ctx)
560	req.ApplyOptions(opts...)
561	return out, req.Send()
562}
563
564const opDeleteTags = "DeleteTags"
565
566// DeleteTagsRequest generates a "aws/request.Request" representing the
567// client's request for the DeleteTags operation. The "output" return
568// value will be populated with the request's response once the request completes
569// successfuly.
570//
571// Use "Send" method on the returned Request to send the API call to the service.
572// the "output" return value is not valid until after Send returns without error.
573//
574// See DeleteTags for more information on using the DeleteTags
575// API call, and error handling.
576//
577// This method is useful when you want to inject custom logic or configuration
578// into the SDK's request lifecycle. Such as custom headers, or retry logic.
579//
580//
581//    // Example sending a request using the DeleteTagsRequest method.
582//    req, resp := client.DeleteTagsRequest(params)
583//
584//    err := req.Send()
585//    if err == nil { // resp is now filled
586//        fmt.Println(resp)
587//    }
588//
589// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteTags
590func (c *WorkSpaces) DeleteTagsRequest(input *DeleteTagsInput) (req *request.Request, output *DeleteTagsOutput) {
591	op := &request.Operation{
592		Name:       opDeleteTags,
593		HTTPMethod: "POST",
594		HTTPPath:   "/",
595	}
596
597	if input == nil {
598		input = &DeleteTagsInput{}
599	}
600
601	output = &DeleteTagsOutput{}
602	req = c.newRequest(op, input, output)
603	return
604}
605
606// DeleteTags API operation for Amazon WorkSpaces.
607//
608// Deletes the specified tags from the specified WorkSpace.
609//
610// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
611// with awserr.Error's Code and Message methods to get detailed information about
612// the error.
613//
614// See the AWS API reference guide for Amazon WorkSpaces's
615// API operation DeleteTags for usage and error information.
616//
617// Returned Error Codes:
618//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
619//   The resource could not be found.
620//
621//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
622//   One or more parameter values are not valid.
623//
624// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DeleteTags
625func (c *WorkSpaces) DeleteTags(input *DeleteTagsInput) (*DeleteTagsOutput, error) {
626	req, out := c.DeleteTagsRequest(input)
627	return out, req.Send()
628}
629
630// DeleteTagsWithContext is the same as DeleteTags with the addition of
631// the ability to pass a context and additional request options.
632//
633// See DeleteTags for details on how to use this API operation.
634//
635// The context must be non-nil and will be used for request cancellation. If
636// the context is nil a panic will occur. In the future the SDK may create
637// sub-contexts for http.Requests. See https://golang.org/pkg/context/
638// for more information on using Contexts.
639func (c *WorkSpaces) DeleteTagsWithContext(ctx aws.Context, input *DeleteTagsInput, opts ...request.Option) (*DeleteTagsOutput, error) {
640	req, out := c.DeleteTagsRequest(input)
641	req.SetContext(ctx)
642	req.ApplyOptions(opts...)
643	return out, req.Send()
644}
645
646const opDescribeIpGroups = "DescribeIpGroups"
647
648// DescribeIpGroupsRequest generates a "aws/request.Request" representing the
649// client's request for the DescribeIpGroups operation. The "output" return
650// value will be populated with the request's response once the request completes
651// successfuly.
652//
653// Use "Send" method on the returned Request to send the API call to the service.
654// the "output" return value is not valid until after Send returns without error.
655//
656// See DescribeIpGroups for more information on using the DescribeIpGroups
657// API call, and error handling.
658//
659// This method is useful when you want to inject custom logic or configuration
660// into the SDK's request lifecycle. Such as custom headers, or retry logic.
661//
662//
663//    // Example sending a request using the DescribeIpGroupsRequest method.
664//    req, resp := client.DescribeIpGroupsRequest(params)
665//
666//    err := req.Send()
667//    if err == nil { // resp is now filled
668//        fmt.Println(resp)
669//    }
670//
671// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeIpGroups
672func (c *WorkSpaces) DescribeIpGroupsRequest(input *DescribeIpGroupsInput) (req *request.Request, output *DescribeIpGroupsOutput) {
673	op := &request.Operation{
674		Name:       opDescribeIpGroups,
675		HTTPMethod: "POST",
676		HTTPPath:   "/",
677	}
678
679	if input == nil {
680		input = &DescribeIpGroupsInput{}
681	}
682
683	output = &DescribeIpGroupsOutput{}
684	req = c.newRequest(op, input, output)
685	return
686}
687
688// DescribeIpGroups API operation for Amazon WorkSpaces.
689//
690// Describes one or more of your IP access control groups.
691//
692// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
693// with awserr.Error's Code and Message methods to get detailed information about
694// the error.
695//
696// See the AWS API reference guide for Amazon WorkSpaces's
697// API operation DescribeIpGroups for usage and error information.
698//
699// Returned Error Codes:
700//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
701//   One or more parameter values are not valid.
702//
703//   * ErrCodeAccessDeniedException "AccessDeniedException"
704//   The user is not authorized to access a resource.
705//
706// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeIpGroups
707func (c *WorkSpaces) DescribeIpGroups(input *DescribeIpGroupsInput) (*DescribeIpGroupsOutput, error) {
708	req, out := c.DescribeIpGroupsRequest(input)
709	return out, req.Send()
710}
711
712// DescribeIpGroupsWithContext is the same as DescribeIpGroups with the addition of
713// the ability to pass a context and additional request options.
714//
715// See DescribeIpGroups for details on how to use this API operation.
716//
717// The context must be non-nil and will be used for request cancellation. If
718// the context is nil a panic will occur. In the future the SDK may create
719// sub-contexts for http.Requests. See https://golang.org/pkg/context/
720// for more information on using Contexts.
721func (c *WorkSpaces) DescribeIpGroupsWithContext(ctx aws.Context, input *DescribeIpGroupsInput, opts ...request.Option) (*DescribeIpGroupsOutput, error) {
722	req, out := c.DescribeIpGroupsRequest(input)
723	req.SetContext(ctx)
724	req.ApplyOptions(opts...)
725	return out, req.Send()
726}
727
728const opDescribeTags = "DescribeTags"
729
730// DescribeTagsRequest generates a "aws/request.Request" representing the
731// client's request for the DescribeTags operation. The "output" return
732// value will be populated with the request's response once the request completes
733// successfuly.
734//
735// Use "Send" method on the returned Request to send the API call to the service.
736// the "output" return value is not valid until after Send returns without error.
737//
738// See DescribeTags for more information on using the DescribeTags
739// API call, and error handling.
740//
741// This method is useful when you want to inject custom logic or configuration
742// into the SDK's request lifecycle. Such as custom headers, or retry logic.
743//
744//
745//    // Example sending a request using the DescribeTagsRequest method.
746//    req, resp := client.DescribeTagsRequest(params)
747//
748//    err := req.Send()
749//    if err == nil { // resp is now filled
750//        fmt.Println(resp)
751//    }
752//
753// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeTags
754func (c *WorkSpaces) DescribeTagsRequest(input *DescribeTagsInput) (req *request.Request, output *DescribeTagsOutput) {
755	op := &request.Operation{
756		Name:       opDescribeTags,
757		HTTPMethod: "POST",
758		HTTPPath:   "/",
759	}
760
761	if input == nil {
762		input = &DescribeTagsInput{}
763	}
764
765	output = &DescribeTagsOutput{}
766	req = c.newRequest(op, input, output)
767	return
768}
769
770// DescribeTags API operation for Amazon WorkSpaces.
771//
772// Describes the specified tags for the specified WorkSpace.
773//
774// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
775// with awserr.Error's Code and Message methods to get detailed information about
776// the error.
777//
778// See the AWS API reference guide for Amazon WorkSpaces's
779// API operation DescribeTags for usage and error information.
780//
781// Returned Error Codes:
782//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
783//   The resource could not be found.
784//
785// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeTags
786func (c *WorkSpaces) DescribeTags(input *DescribeTagsInput) (*DescribeTagsOutput, error) {
787	req, out := c.DescribeTagsRequest(input)
788	return out, req.Send()
789}
790
791// DescribeTagsWithContext is the same as DescribeTags with the addition of
792// the ability to pass a context and additional request options.
793//
794// See DescribeTags for details on how to use this API operation.
795//
796// The context must be non-nil and will be used for request cancellation. If
797// the context is nil a panic will occur. In the future the SDK may create
798// sub-contexts for http.Requests. See https://golang.org/pkg/context/
799// for more information on using Contexts.
800func (c *WorkSpaces) DescribeTagsWithContext(ctx aws.Context, input *DescribeTagsInput, opts ...request.Option) (*DescribeTagsOutput, error) {
801	req, out := c.DescribeTagsRequest(input)
802	req.SetContext(ctx)
803	req.ApplyOptions(opts...)
804	return out, req.Send()
805}
806
807const opDescribeWorkspaceBundles = "DescribeWorkspaceBundles"
808
809// DescribeWorkspaceBundlesRequest generates a "aws/request.Request" representing the
810// client's request for the DescribeWorkspaceBundles operation. The "output" return
811// value will be populated with the request's response once the request completes
812// successfuly.
813//
814// Use "Send" method on the returned Request to send the API call to the service.
815// the "output" return value is not valid until after Send returns without error.
816//
817// See DescribeWorkspaceBundles for more information on using the DescribeWorkspaceBundles
818// API call, and error handling.
819//
820// This method is useful when you want to inject custom logic or configuration
821// into the SDK's request lifecycle. Such as custom headers, or retry logic.
822//
823//
824//    // Example sending a request using the DescribeWorkspaceBundlesRequest method.
825//    req, resp := client.DescribeWorkspaceBundlesRequest(params)
826//
827//    err := req.Send()
828//    if err == nil { // resp is now filled
829//        fmt.Println(resp)
830//    }
831//
832// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceBundles
833func (c *WorkSpaces) DescribeWorkspaceBundlesRequest(input *DescribeWorkspaceBundlesInput) (req *request.Request, output *DescribeWorkspaceBundlesOutput) {
834	op := &request.Operation{
835		Name:       opDescribeWorkspaceBundles,
836		HTTPMethod: "POST",
837		HTTPPath:   "/",
838		Paginator: &request.Paginator{
839			InputTokens:     []string{"NextToken"},
840			OutputTokens:    []string{"NextToken"},
841			LimitToken:      "",
842			TruncationToken: "",
843		},
844	}
845
846	if input == nil {
847		input = &DescribeWorkspaceBundlesInput{}
848	}
849
850	output = &DescribeWorkspaceBundlesOutput{}
851	req = c.newRequest(op, input, output)
852	return
853}
854
855// DescribeWorkspaceBundles API operation for Amazon WorkSpaces.
856//
857// Describes the available WorkSpace bundles.
858//
859// You can filter the results using either bundle ID or owner, but not both.
860//
861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
862// with awserr.Error's Code and Message methods to get detailed information about
863// the error.
864//
865// See the AWS API reference guide for Amazon WorkSpaces's
866// API operation DescribeWorkspaceBundles for usage and error information.
867//
868// Returned Error Codes:
869//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
870//   One or more parameter values are not valid.
871//
872// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceBundles
873func (c *WorkSpaces) DescribeWorkspaceBundles(input *DescribeWorkspaceBundlesInput) (*DescribeWorkspaceBundlesOutput, error) {
874	req, out := c.DescribeWorkspaceBundlesRequest(input)
875	return out, req.Send()
876}
877
878// DescribeWorkspaceBundlesWithContext is the same as DescribeWorkspaceBundles with the addition of
879// the ability to pass a context and additional request options.
880//
881// See DescribeWorkspaceBundles for details on how to use this API operation.
882//
883// The context must be non-nil and will be used for request cancellation. If
884// the context is nil a panic will occur. In the future the SDK may create
885// sub-contexts for http.Requests. See https://golang.org/pkg/context/
886// for more information on using Contexts.
887func (c *WorkSpaces) DescribeWorkspaceBundlesWithContext(ctx aws.Context, input *DescribeWorkspaceBundlesInput, opts ...request.Option) (*DescribeWorkspaceBundlesOutput, error) {
888	req, out := c.DescribeWorkspaceBundlesRequest(input)
889	req.SetContext(ctx)
890	req.ApplyOptions(opts...)
891	return out, req.Send()
892}
893
894// DescribeWorkspaceBundlesPages iterates over the pages of a DescribeWorkspaceBundles operation,
895// calling the "fn" function with the response data for each page. To stop
896// iterating, return false from the fn function.
897//
898// See DescribeWorkspaceBundles method for more information on how to use this operation.
899//
900// Note: This operation can generate multiple requests to a service.
901//
902//    // Example iterating over at most 3 pages of a DescribeWorkspaceBundles operation.
903//    pageNum := 0
904//    err := client.DescribeWorkspaceBundlesPages(params,
905//        func(page *DescribeWorkspaceBundlesOutput, lastPage bool) bool {
906//            pageNum++
907//            fmt.Println(page)
908//            return pageNum <= 3
909//        })
910//
911func (c *WorkSpaces) DescribeWorkspaceBundlesPages(input *DescribeWorkspaceBundlesInput, fn func(*DescribeWorkspaceBundlesOutput, bool) bool) error {
912	return c.DescribeWorkspaceBundlesPagesWithContext(aws.BackgroundContext(), input, fn)
913}
914
915// DescribeWorkspaceBundlesPagesWithContext same as DescribeWorkspaceBundlesPages except
916// it takes a Context and allows setting request options on the pages.
917//
918// The context must be non-nil and will be used for request cancellation. If
919// the context is nil a panic will occur. In the future the SDK may create
920// sub-contexts for http.Requests. See https://golang.org/pkg/context/
921// for more information on using Contexts.
922func (c *WorkSpaces) DescribeWorkspaceBundlesPagesWithContext(ctx aws.Context, input *DescribeWorkspaceBundlesInput, fn func(*DescribeWorkspaceBundlesOutput, bool) bool, opts ...request.Option) error {
923	p := request.Pagination{
924		NewRequest: func() (*request.Request, error) {
925			var inCpy *DescribeWorkspaceBundlesInput
926			if input != nil {
927				tmp := *input
928				inCpy = &tmp
929			}
930			req, _ := c.DescribeWorkspaceBundlesRequest(inCpy)
931			req.SetContext(ctx)
932			req.ApplyOptions(opts...)
933			return req, nil
934		},
935	}
936
937	cont := true
938	for p.Next() && cont {
939		cont = fn(p.Page().(*DescribeWorkspaceBundlesOutput), !p.HasNextPage())
940	}
941	return p.Err()
942}
943
944const opDescribeWorkspaceDirectories = "DescribeWorkspaceDirectories"
945
946// DescribeWorkspaceDirectoriesRequest generates a "aws/request.Request" representing the
947// client's request for the DescribeWorkspaceDirectories operation. The "output" return
948// value will be populated with the request's response once the request completes
949// successfuly.
950//
951// Use "Send" method on the returned Request to send the API call to the service.
952// the "output" return value is not valid until after Send returns without error.
953//
954// See DescribeWorkspaceDirectories for more information on using the DescribeWorkspaceDirectories
955// API call, and error handling.
956//
957// This method is useful when you want to inject custom logic or configuration
958// into the SDK's request lifecycle. Such as custom headers, or retry logic.
959//
960//
961//    // Example sending a request using the DescribeWorkspaceDirectoriesRequest method.
962//    req, resp := client.DescribeWorkspaceDirectoriesRequest(params)
963//
964//    err := req.Send()
965//    if err == nil { // resp is now filled
966//        fmt.Println(resp)
967//    }
968//
969// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceDirectories
970func (c *WorkSpaces) DescribeWorkspaceDirectoriesRequest(input *DescribeWorkspaceDirectoriesInput) (req *request.Request, output *DescribeWorkspaceDirectoriesOutput) {
971	op := &request.Operation{
972		Name:       opDescribeWorkspaceDirectories,
973		HTTPMethod: "POST",
974		HTTPPath:   "/",
975		Paginator: &request.Paginator{
976			InputTokens:     []string{"NextToken"},
977			OutputTokens:    []string{"NextToken"},
978			LimitToken:      "",
979			TruncationToken: "",
980		},
981	}
982
983	if input == nil {
984		input = &DescribeWorkspaceDirectoriesInput{}
985	}
986
987	output = &DescribeWorkspaceDirectoriesOutput{}
988	req = c.newRequest(op, input, output)
989	return
990}
991
992// DescribeWorkspaceDirectories API operation for Amazon WorkSpaces.
993//
994// Describes the available AWS Directory Service directories that are registered
995// with Amazon WorkSpaces.
996//
997// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
998// with awserr.Error's Code and Message methods to get detailed information about
999// the error.
1000//
1001// See the AWS API reference guide for Amazon WorkSpaces's
1002// API operation DescribeWorkspaceDirectories for usage and error information.
1003//
1004// Returned Error Codes:
1005//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1006//   One or more parameter values are not valid.
1007//
1008// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaceDirectories
1009func (c *WorkSpaces) DescribeWorkspaceDirectories(input *DescribeWorkspaceDirectoriesInput) (*DescribeWorkspaceDirectoriesOutput, error) {
1010	req, out := c.DescribeWorkspaceDirectoriesRequest(input)
1011	return out, req.Send()
1012}
1013
1014// DescribeWorkspaceDirectoriesWithContext is the same as DescribeWorkspaceDirectories with the addition of
1015// the ability to pass a context and additional request options.
1016//
1017// See DescribeWorkspaceDirectories for details on how to use this API operation.
1018//
1019// The context must be non-nil and will be used for request cancellation. If
1020// the context is nil a panic will occur. In the future the SDK may create
1021// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1022// for more information on using Contexts.
1023func (c *WorkSpaces) DescribeWorkspaceDirectoriesWithContext(ctx aws.Context, input *DescribeWorkspaceDirectoriesInput, opts ...request.Option) (*DescribeWorkspaceDirectoriesOutput, error) {
1024	req, out := c.DescribeWorkspaceDirectoriesRequest(input)
1025	req.SetContext(ctx)
1026	req.ApplyOptions(opts...)
1027	return out, req.Send()
1028}
1029
1030// DescribeWorkspaceDirectoriesPages iterates over the pages of a DescribeWorkspaceDirectories operation,
1031// calling the "fn" function with the response data for each page. To stop
1032// iterating, return false from the fn function.
1033//
1034// See DescribeWorkspaceDirectories method for more information on how to use this operation.
1035//
1036// Note: This operation can generate multiple requests to a service.
1037//
1038//    // Example iterating over at most 3 pages of a DescribeWorkspaceDirectories operation.
1039//    pageNum := 0
1040//    err := client.DescribeWorkspaceDirectoriesPages(params,
1041//        func(page *DescribeWorkspaceDirectoriesOutput, lastPage bool) bool {
1042//            pageNum++
1043//            fmt.Println(page)
1044//            return pageNum <= 3
1045//        })
1046//
1047func (c *WorkSpaces) DescribeWorkspaceDirectoriesPages(input *DescribeWorkspaceDirectoriesInput, fn func(*DescribeWorkspaceDirectoriesOutput, bool) bool) error {
1048	return c.DescribeWorkspaceDirectoriesPagesWithContext(aws.BackgroundContext(), input, fn)
1049}
1050
1051// DescribeWorkspaceDirectoriesPagesWithContext same as DescribeWorkspaceDirectoriesPages except
1052// it takes a Context and allows setting request options on the pages.
1053//
1054// The context must be non-nil and will be used for request cancellation. If
1055// the context is nil a panic will occur. In the future the SDK may create
1056// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1057// for more information on using Contexts.
1058func (c *WorkSpaces) DescribeWorkspaceDirectoriesPagesWithContext(ctx aws.Context, input *DescribeWorkspaceDirectoriesInput, fn func(*DescribeWorkspaceDirectoriesOutput, bool) bool, opts ...request.Option) error {
1059	p := request.Pagination{
1060		NewRequest: func() (*request.Request, error) {
1061			var inCpy *DescribeWorkspaceDirectoriesInput
1062			if input != nil {
1063				tmp := *input
1064				inCpy = &tmp
1065			}
1066			req, _ := c.DescribeWorkspaceDirectoriesRequest(inCpy)
1067			req.SetContext(ctx)
1068			req.ApplyOptions(opts...)
1069			return req, nil
1070		},
1071	}
1072
1073	cont := true
1074	for p.Next() && cont {
1075		cont = fn(p.Page().(*DescribeWorkspaceDirectoriesOutput), !p.HasNextPage())
1076	}
1077	return p.Err()
1078}
1079
1080const opDescribeWorkspaces = "DescribeWorkspaces"
1081
1082// DescribeWorkspacesRequest generates a "aws/request.Request" representing the
1083// client's request for the DescribeWorkspaces operation. The "output" return
1084// value will be populated with the request's response once the request completes
1085// successfuly.
1086//
1087// Use "Send" method on the returned Request to send the API call to the service.
1088// the "output" return value is not valid until after Send returns without error.
1089//
1090// See DescribeWorkspaces for more information on using the DescribeWorkspaces
1091// API call, and error handling.
1092//
1093// This method is useful when you want to inject custom logic or configuration
1094// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1095//
1096//
1097//    // Example sending a request using the DescribeWorkspacesRequest method.
1098//    req, resp := client.DescribeWorkspacesRequest(params)
1099//
1100//    err := req.Send()
1101//    if err == nil { // resp is now filled
1102//        fmt.Println(resp)
1103//    }
1104//
1105// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaces
1106func (c *WorkSpaces) DescribeWorkspacesRequest(input *DescribeWorkspacesInput) (req *request.Request, output *DescribeWorkspacesOutput) {
1107	op := &request.Operation{
1108		Name:       opDescribeWorkspaces,
1109		HTTPMethod: "POST",
1110		HTTPPath:   "/",
1111		Paginator: &request.Paginator{
1112			InputTokens:     []string{"NextToken"},
1113			OutputTokens:    []string{"NextToken"},
1114			LimitToken:      "Limit",
1115			TruncationToken: "",
1116		},
1117	}
1118
1119	if input == nil {
1120		input = &DescribeWorkspacesInput{}
1121	}
1122
1123	output = &DescribeWorkspacesOutput{}
1124	req = c.newRequest(op, input, output)
1125	return
1126}
1127
1128// DescribeWorkspaces API operation for Amazon WorkSpaces.
1129//
1130// Describes the specified WorkSpaces.
1131//
1132// You can filter the results using bundle ID, directory ID, or owner, but you
1133// can specify only one filter at a time.
1134//
1135// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1136// with awserr.Error's Code and Message methods to get detailed information about
1137// the error.
1138//
1139// See the AWS API reference guide for Amazon WorkSpaces's
1140// API operation DescribeWorkspaces for usage and error information.
1141//
1142// Returned Error Codes:
1143//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1144//   One or more parameter values are not valid.
1145//
1146//   * ErrCodeResourceUnavailableException "ResourceUnavailableException"
1147//   The specified resource is not available.
1148//
1149// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspaces
1150func (c *WorkSpaces) DescribeWorkspaces(input *DescribeWorkspacesInput) (*DescribeWorkspacesOutput, error) {
1151	req, out := c.DescribeWorkspacesRequest(input)
1152	return out, req.Send()
1153}
1154
1155// DescribeWorkspacesWithContext is the same as DescribeWorkspaces with the addition of
1156// the ability to pass a context and additional request options.
1157//
1158// See DescribeWorkspaces for details on how to use this API operation.
1159//
1160// The context must be non-nil and will be used for request cancellation. If
1161// the context is nil a panic will occur. In the future the SDK may create
1162// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1163// for more information on using Contexts.
1164func (c *WorkSpaces) DescribeWorkspacesWithContext(ctx aws.Context, input *DescribeWorkspacesInput, opts ...request.Option) (*DescribeWorkspacesOutput, error) {
1165	req, out := c.DescribeWorkspacesRequest(input)
1166	req.SetContext(ctx)
1167	req.ApplyOptions(opts...)
1168	return out, req.Send()
1169}
1170
1171// DescribeWorkspacesPages iterates over the pages of a DescribeWorkspaces operation,
1172// calling the "fn" function with the response data for each page. To stop
1173// iterating, return false from the fn function.
1174//
1175// See DescribeWorkspaces method for more information on how to use this operation.
1176//
1177// Note: This operation can generate multiple requests to a service.
1178//
1179//    // Example iterating over at most 3 pages of a DescribeWorkspaces operation.
1180//    pageNum := 0
1181//    err := client.DescribeWorkspacesPages(params,
1182//        func(page *DescribeWorkspacesOutput, lastPage bool) bool {
1183//            pageNum++
1184//            fmt.Println(page)
1185//            return pageNum <= 3
1186//        })
1187//
1188func (c *WorkSpaces) DescribeWorkspacesPages(input *DescribeWorkspacesInput, fn func(*DescribeWorkspacesOutput, bool) bool) error {
1189	return c.DescribeWorkspacesPagesWithContext(aws.BackgroundContext(), input, fn)
1190}
1191
1192// DescribeWorkspacesPagesWithContext same as DescribeWorkspacesPages except
1193// it takes a Context and allows setting request options on the pages.
1194//
1195// The context must be non-nil and will be used for request cancellation. If
1196// the context is nil a panic will occur. In the future the SDK may create
1197// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1198// for more information on using Contexts.
1199func (c *WorkSpaces) DescribeWorkspacesPagesWithContext(ctx aws.Context, input *DescribeWorkspacesInput, fn func(*DescribeWorkspacesOutput, bool) bool, opts ...request.Option) error {
1200	p := request.Pagination{
1201		NewRequest: func() (*request.Request, error) {
1202			var inCpy *DescribeWorkspacesInput
1203			if input != nil {
1204				tmp := *input
1205				inCpy = &tmp
1206			}
1207			req, _ := c.DescribeWorkspacesRequest(inCpy)
1208			req.SetContext(ctx)
1209			req.ApplyOptions(opts...)
1210			return req, nil
1211		},
1212	}
1213
1214	cont := true
1215	for p.Next() && cont {
1216		cont = fn(p.Page().(*DescribeWorkspacesOutput), !p.HasNextPage())
1217	}
1218	return p.Err()
1219}
1220
1221const opDescribeWorkspacesConnectionStatus = "DescribeWorkspacesConnectionStatus"
1222
1223// DescribeWorkspacesConnectionStatusRequest generates a "aws/request.Request" representing the
1224// client's request for the DescribeWorkspacesConnectionStatus operation. The "output" return
1225// value will be populated with the request's response once the request completes
1226// successfuly.
1227//
1228// Use "Send" method on the returned Request to send the API call to the service.
1229// the "output" return value is not valid until after Send returns without error.
1230//
1231// See DescribeWorkspacesConnectionStatus for more information on using the DescribeWorkspacesConnectionStatus
1232// API call, and error handling.
1233//
1234// This method is useful when you want to inject custom logic or configuration
1235// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1236//
1237//
1238//    // Example sending a request using the DescribeWorkspacesConnectionStatusRequest method.
1239//    req, resp := client.DescribeWorkspacesConnectionStatusRequest(params)
1240//
1241//    err := req.Send()
1242//    if err == nil { // resp is now filled
1243//        fmt.Println(resp)
1244//    }
1245//
1246// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspacesConnectionStatus
1247func (c *WorkSpaces) DescribeWorkspacesConnectionStatusRequest(input *DescribeWorkspacesConnectionStatusInput) (req *request.Request, output *DescribeWorkspacesConnectionStatusOutput) {
1248	op := &request.Operation{
1249		Name:       opDescribeWorkspacesConnectionStatus,
1250		HTTPMethod: "POST",
1251		HTTPPath:   "/",
1252	}
1253
1254	if input == nil {
1255		input = &DescribeWorkspacesConnectionStatusInput{}
1256	}
1257
1258	output = &DescribeWorkspacesConnectionStatusOutput{}
1259	req = c.newRequest(op, input, output)
1260	return
1261}
1262
1263// DescribeWorkspacesConnectionStatus API operation for Amazon WorkSpaces.
1264//
1265// Describes the connection status of the specified WorkSpaces.
1266//
1267// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1268// with awserr.Error's Code and Message methods to get detailed information about
1269// the error.
1270//
1271// See the AWS API reference guide for Amazon WorkSpaces's
1272// API operation DescribeWorkspacesConnectionStatus for usage and error information.
1273//
1274// Returned Error Codes:
1275//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1276//   One or more parameter values are not valid.
1277//
1278// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DescribeWorkspacesConnectionStatus
1279func (c *WorkSpaces) DescribeWorkspacesConnectionStatus(input *DescribeWorkspacesConnectionStatusInput) (*DescribeWorkspacesConnectionStatusOutput, error) {
1280	req, out := c.DescribeWorkspacesConnectionStatusRequest(input)
1281	return out, req.Send()
1282}
1283
1284// DescribeWorkspacesConnectionStatusWithContext is the same as DescribeWorkspacesConnectionStatus with the addition of
1285// the ability to pass a context and additional request options.
1286//
1287// See DescribeWorkspacesConnectionStatus for details on how to use this API operation.
1288//
1289// The context must be non-nil and will be used for request cancellation. If
1290// the context is nil a panic will occur. In the future the SDK may create
1291// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1292// for more information on using Contexts.
1293func (c *WorkSpaces) DescribeWorkspacesConnectionStatusWithContext(ctx aws.Context, input *DescribeWorkspacesConnectionStatusInput, opts ...request.Option) (*DescribeWorkspacesConnectionStatusOutput, error) {
1294	req, out := c.DescribeWorkspacesConnectionStatusRequest(input)
1295	req.SetContext(ctx)
1296	req.ApplyOptions(opts...)
1297	return out, req.Send()
1298}
1299
1300const opDisassociateIpGroups = "DisassociateIpGroups"
1301
1302// DisassociateIpGroupsRequest generates a "aws/request.Request" representing the
1303// client's request for the DisassociateIpGroups operation. The "output" return
1304// value will be populated with the request's response once the request completes
1305// successfuly.
1306//
1307// Use "Send" method on the returned Request to send the API call to the service.
1308// the "output" return value is not valid until after Send returns without error.
1309//
1310// See DisassociateIpGroups for more information on using the DisassociateIpGroups
1311// API call, and error handling.
1312//
1313// This method is useful when you want to inject custom logic or configuration
1314// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1315//
1316//
1317//    // Example sending a request using the DisassociateIpGroupsRequest method.
1318//    req, resp := client.DisassociateIpGroupsRequest(params)
1319//
1320//    err := req.Send()
1321//    if err == nil { // resp is now filled
1322//        fmt.Println(resp)
1323//    }
1324//
1325// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateIpGroups
1326func (c *WorkSpaces) DisassociateIpGroupsRequest(input *DisassociateIpGroupsInput) (req *request.Request, output *DisassociateIpGroupsOutput) {
1327	op := &request.Operation{
1328		Name:       opDisassociateIpGroups,
1329		HTTPMethod: "POST",
1330		HTTPPath:   "/",
1331	}
1332
1333	if input == nil {
1334		input = &DisassociateIpGroupsInput{}
1335	}
1336
1337	output = &DisassociateIpGroupsOutput{}
1338	req = c.newRequest(op, input, output)
1339	return
1340}
1341
1342// DisassociateIpGroups API operation for Amazon WorkSpaces.
1343//
1344// Disassociates the specified IP access control group from the specified directory.
1345//
1346// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1347// with awserr.Error's Code and Message methods to get detailed information about
1348// the error.
1349//
1350// See the AWS API reference guide for Amazon WorkSpaces's
1351// API operation DisassociateIpGroups for usage and error information.
1352//
1353// Returned Error Codes:
1354//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1355//   One or more parameter values are not valid.
1356//
1357//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1358//   The resource could not be found.
1359//
1360//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
1361//   The state of the resource is not valid for this operation.
1362//
1363//   * ErrCodeAccessDeniedException "AccessDeniedException"
1364//   The user is not authorized to access a resource.
1365//
1366// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/DisassociateIpGroups
1367func (c *WorkSpaces) DisassociateIpGroups(input *DisassociateIpGroupsInput) (*DisassociateIpGroupsOutput, error) {
1368	req, out := c.DisassociateIpGroupsRequest(input)
1369	return out, req.Send()
1370}
1371
1372// DisassociateIpGroupsWithContext is the same as DisassociateIpGroups with the addition of
1373// the ability to pass a context and additional request options.
1374//
1375// See DisassociateIpGroups for details on how to use this API operation.
1376//
1377// The context must be non-nil and will be used for request cancellation. If
1378// the context is nil a panic will occur. In the future the SDK may create
1379// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1380// for more information on using Contexts.
1381func (c *WorkSpaces) DisassociateIpGroupsWithContext(ctx aws.Context, input *DisassociateIpGroupsInput, opts ...request.Option) (*DisassociateIpGroupsOutput, error) {
1382	req, out := c.DisassociateIpGroupsRequest(input)
1383	req.SetContext(ctx)
1384	req.ApplyOptions(opts...)
1385	return out, req.Send()
1386}
1387
1388const opModifyWorkspaceProperties = "ModifyWorkspaceProperties"
1389
1390// ModifyWorkspacePropertiesRequest generates a "aws/request.Request" representing the
1391// client's request for the ModifyWorkspaceProperties operation. The "output" return
1392// value will be populated with the request's response once the request completes
1393// successfuly.
1394//
1395// Use "Send" method on the returned Request to send the API call to the service.
1396// the "output" return value is not valid until after Send returns without error.
1397//
1398// See ModifyWorkspaceProperties for more information on using the ModifyWorkspaceProperties
1399// API call, and error handling.
1400//
1401// This method is useful when you want to inject custom logic or configuration
1402// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1403//
1404//
1405//    // Example sending a request using the ModifyWorkspacePropertiesRequest method.
1406//    req, resp := client.ModifyWorkspacePropertiesRequest(params)
1407//
1408//    err := req.Send()
1409//    if err == nil { // resp is now filled
1410//        fmt.Println(resp)
1411//    }
1412//
1413// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceProperties
1414func (c *WorkSpaces) ModifyWorkspacePropertiesRequest(input *ModifyWorkspacePropertiesInput) (req *request.Request, output *ModifyWorkspacePropertiesOutput) {
1415	op := &request.Operation{
1416		Name:       opModifyWorkspaceProperties,
1417		HTTPMethod: "POST",
1418		HTTPPath:   "/",
1419	}
1420
1421	if input == nil {
1422		input = &ModifyWorkspacePropertiesInput{}
1423	}
1424
1425	output = &ModifyWorkspacePropertiesOutput{}
1426	req = c.newRequest(op, input, output)
1427	return
1428}
1429
1430// ModifyWorkspaceProperties API operation for Amazon WorkSpaces.
1431//
1432// Modifies the specified WorkSpace properties.
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 ModifyWorkspaceProperties for usage and error information.
1440//
1441// Returned Error Codes:
1442//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1443//   One or more parameter values are not valid.
1444//
1445//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
1446//   The state of the resource is not valid for this operation.
1447//
1448//   * ErrCodeOperationInProgressException "OperationInProgressException"
1449//   The properties of this WorkSpace are currently being modified. Try again
1450//   in a moment.
1451//
1452//   * ErrCodeUnsupportedWorkspaceConfigurationException "UnsupportedWorkspaceConfigurationException"
1453//   The configuration of this WorkSpace is not supported for this operation.
1454//   For more information, see the Amazon WorkSpaces Administration Guide (http://docs.aws.amazon.com/workspaces/latest/adminguide/).
1455//
1456//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1457//   The resource could not be found.
1458//
1459//   * ErrCodeAccessDeniedException "AccessDeniedException"
1460//   The user is not authorized to access a resource.
1461//
1462//   * ErrCodeResourceUnavailableException "ResourceUnavailableException"
1463//   The specified resource is not available.
1464//
1465// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceProperties
1466func (c *WorkSpaces) ModifyWorkspaceProperties(input *ModifyWorkspacePropertiesInput) (*ModifyWorkspacePropertiesOutput, error) {
1467	req, out := c.ModifyWorkspacePropertiesRequest(input)
1468	return out, req.Send()
1469}
1470
1471// ModifyWorkspacePropertiesWithContext is the same as ModifyWorkspaceProperties with the addition of
1472// the ability to pass a context and additional request options.
1473//
1474// See ModifyWorkspaceProperties for details on how to use this API operation.
1475//
1476// The context must be non-nil and will be used for request cancellation. If
1477// the context is nil a panic will occur. In the future the SDK may create
1478// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1479// for more information on using Contexts.
1480func (c *WorkSpaces) ModifyWorkspacePropertiesWithContext(ctx aws.Context, input *ModifyWorkspacePropertiesInput, opts ...request.Option) (*ModifyWorkspacePropertiesOutput, error) {
1481	req, out := c.ModifyWorkspacePropertiesRequest(input)
1482	req.SetContext(ctx)
1483	req.ApplyOptions(opts...)
1484	return out, req.Send()
1485}
1486
1487const opModifyWorkspaceState = "ModifyWorkspaceState"
1488
1489// ModifyWorkspaceStateRequest generates a "aws/request.Request" representing the
1490// client's request for the ModifyWorkspaceState operation. The "output" return
1491// value will be populated with the request's response once the request completes
1492// successfuly.
1493//
1494// Use "Send" method on the returned Request to send the API call to the service.
1495// the "output" return value is not valid until after Send returns without error.
1496//
1497// See ModifyWorkspaceState for more information on using the ModifyWorkspaceState
1498// API call, and error handling.
1499//
1500// This method is useful when you want to inject custom logic or configuration
1501// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1502//
1503//
1504//    // Example sending a request using the ModifyWorkspaceStateRequest method.
1505//    req, resp := client.ModifyWorkspaceStateRequest(params)
1506//
1507//    err := req.Send()
1508//    if err == nil { // resp is now filled
1509//        fmt.Println(resp)
1510//    }
1511//
1512// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceState
1513func (c *WorkSpaces) ModifyWorkspaceStateRequest(input *ModifyWorkspaceStateInput) (req *request.Request, output *ModifyWorkspaceStateOutput) {
1514	op := &request.Operation{
1515		Name:       opModifyWorkspaceState,
1516		HTTPMethod: "POST",
1517		HTTPPath:   "/",
1518	}
1519
1520	if input == nil {
1521		input = &ModifyWorkspaceStateInput{}
1522	}
1523
1524	output = &ModifyWorkspaceStateOutput{}
1525	req = c.newRequest(op, input, output)
1526	return
1527}
1528
1529// ModifyWorkspaceState API operation for Amazon WorkSpaces.
1530//
1531// Sets the state of the specified WorkSpace.
1532//
1533// To maintain a WorkSpace without being interrupted, set the WorkSpace state
1534// to ADMIN_MAINTENANCE. WorkSpaces in this state do not respond to requests
1535// to reboot, stop, start, or rebuild. An AutoStop WorkSpace in this state is
1536// not stopped. Users can log into a WorkSpace in the ADMIN_MAINTENANCE state.
1537//
1538// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1539// with awserr.Error's Code and Message methods to get detailed information about
1540// the error.
1541//
1542// See the AWS API reference guide for Amazon WorkSpaces's
1543// API operation ModifyWorkspaceState for usage and error information.
1544//
1545// Returned Error Codes:
1546//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1547//   One or more parameter values are not valid.
1548//
1549//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
1550//   The state of the resource is not valid for this operation.
1551//
1552//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1553//   The resource could not be found.
1554//
1555// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/ModifyWorkspaceState
1556func (c *WorkSpaces) ModifyWorkspaceState(input *ModifyWorkspaceStateInput) (*ModifyWorkspaceStateOutput, error) {
1557	req, out := c.ModifyWorkspaceStateRequest(input)
1558	return out, req.Send()
1559}
1560
1561// ModifyWorkspaceStateWithContext is the same as ModifyWorkspaceState with the addition of
1562// the ability to pass a context and additional request options.
1563//
1564// See ModifyWorkspaceState for details on how to use this API operation.
1565//
1566// The context must be non-nil and will be used for request cancellation. If
1567// the context is nil a panic will occur. In the future the SDK may create
1568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1569// for more information on using Contexts.
1570func (c *WorkSpaces) ModifyWorkspaceStateWithContext(ctx aws.Context, input *ModifyWorkspaceStateInput, opts ...request.Option) (*ModifyWorkspaceStateOutput, error) {
1571	req, out := c.ModifyWorkspaceStateRequest(input)
1572	req.SetContext(ctx)
1573	req.ApplyOptions(opts...)
1574	return out, req.Send()
1575}
1576
1577const opRebootWorkspaces = "RebootWorkspaces"
1578
1579// RebootWorkspacesRequest generates a "aws/request.Request" representing the
1580// client's request for the RebootWorkspaces operation. The "output" return
1581// value will be populated with the request's response once the request completes
1582// successfuly.
1583//
1584// Use "Send" method on the returned Request to send the API call to the service.
1585// the "output" return value is not valid until after Send returns without error.
1586//
1587// See RebootWorkspaces for more information on using the RebootWorkspaces
1588// API call, and error handling.
1589//
1590// This method is useful when you want to inject custom logic or configuration
1591// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1592//
1593//
1594//    // Example sending a request using the RebootWorkspacesRequest method.
1595//    req, resp := client.RebootWorkspacesRequest(params)
1596//
1597//    err := req.Send()
1598//    if err == nil { // resp is now filled
1599//        fmt.Println(resp)
1600//    }
1601//
1602// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebootWorkspaces
1603func (c *WorkSpaces) RebootWorkspacesRequest(input *RebootWorkspacesInput) (req *request.Request, output *RebootWorkspacesOutput) {
1604	op := &request.Operation{
1605		Name:       opRebootWorkspaces,
1606		HTTPMethod: "POST",
1607		HTTPPath:   "/",
1608	}
1609
1610	if input == nil {
1611		input = &RebootWorkspacesInput{}
1612	}
1613
1614	output = &RebootWorkspacesOutput{}
1615	req = c.newRequest(op, input, output)
1616	return
1617}
1618
1619// RebootWorkspaces API operation for Amazon WorkSpaces.
1620//
1621// Reboots the specified WorkSpaces.
1622//
1623// You cannot reboot a WorkSpace unless its state is AVAILABLE or UNHEALTHY.
1624//
1625// This operation is asynchronous and returns before the WorkSpaces have rebooted.
1626//
1627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1628// with awserr.Error's Code and Message methods to get detailed information about
1629// the error.
1630//
1631// See the AWS API reference guide for Amazon WorkSpaces's
1632// API operation RebootWorkspaces for usage and error information.
1633// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebootWorkspaces
1634func (c *WorkSpaces) RebootWorkspaces(input *RebootWorkspacesInput) (*RebootWorkspacesOutput, error) {
1635	req, out := c.RebootWorkspacesRequest(input)
1636	return out, req.Send()
1637}
1638
1639// RebootWorkspacesWithContext is the same as RebootWorkspaces with the addition of
1640// the ability to pass a context and additional request options.
1641//
1642// See RebootWorkspaces for details on how to use this API operation.
1643//
1644// The context must be non-nil and will be used for request cancellation. If
1645// the context is nil a panic will occur. In the future the SDK may create
1646// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1647// for more information on using Contexts.
1648func (c *WorkSpaces) RebootWorkspacesWithContext(ctx aws.Context, input *RebootWorkspacesInput, opts ...request.Option) (*RebootWorkspacesOutput, error) {
1649	req, out := c.RebootWorkspacesRequest(input)
1650	req.SetContext(ctx)
1651	req.ApplyOptions(opts...)
1652	return out, req.Send()
1653}
1654
1655const opRebuildWorkspaces = "RebuildWorkspaces"
1656
1657// RebuildWorkspacesRequest generates a "aws/request.Request" representing the
1658// client's request for the RebuildWorkspaces operation. The "output" return
1659// value will be populated with the request's response once the request completes
1660// successfuly.
1661//
1662// Use "Send" method on the returned Request to send the API call to the service.
1663// the "output" return value is not valid until after Send returns without error.
1664//
1665// See RebuildWorkspaces for more information on using the RebuildWorkspaces
1666// API call, and error handling.
1667//
1668// This method is useful when you want to inject custom logic or configuration
1669// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1670//
1671//
1672//    // Example sending a request using the RebuildWorkspacesRequest method.
1673//    req, resp := client.RebuildWorkspacesRequest(params)
1674//
1675//    err := req.Send()
1676//    if err == nil { // resp is now filled
1677//        fmt.Println(resp)
1678//    }
1679//
1680// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces
1681func (c *WorkSpaces) RebuildWorkspacesRequest(input *RebuildWorkspacesInput) (req *request.Request, output *RebuildWorkspacesOutput) {
1682	op := &request.Operation{
1683		Name:       opRebuildWorkspaces,
1684		HTTPMethod: "POST",
1685		HTTPPath:   "/",
1686	}
1687
1688	if input == nil {
1689		input = &RebuildWorkspacesInput{}
1690	}
1691
1692	output = &RebuildWorkspacesOutput{}
1693	req = c.newRequest(op, input, output)
1694	return
1695}
1696
1697// RebuildWorkspaces API operation for Amazon WorkSpaces.
1698//
1699// Rebuilds the specified WorkSpace.
1700//
1701// You cannot rebuild a WorkSpace unless its state is AVAILABLE, ERROR, or UNHEALTHY.
1702//
1703// Rebuilding a WorkSpace is a potentially destructive action that can result
1704// in the loss of data. For more information, see Rebuild a WorkSpace (http://docs.aws.amazon.com/workspaces/latest/adminguide/reset-workspace.html).
1705//
1706// This operation is asynchronous and returns before the WorkSpaces have been
1707// completely rebuilt.
1708//
1709// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1710// with awserr.Error's Code and Message methods to get detailed information about
1711// the error.
1712//
1713// See the AWS API reference guide for Amazon WorkSpaces's
1714// API operation RebuildWorkspaces for usage and error information.
1715// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RebuildWorkspaces
1716func (c *WorkSpaces) RebuildWorkspaces(input *RebuildWorkspacesInput) (*RebuildWorkspacesOutput, error) {
1717	req, out := c.RebuildWorkspacesRequest(input)
1718	return out, req.Send()
1719}
1720
1721// RebuildWorkspacesWithContext is the same as RebuildWorkspaces with the addition of
1722// the ability to pass a context and additional request options.
1723//
1724// See RebuildWorkspaces for details on how to use this API operation.
1725//
1726// The context must be non-nil and will be used for request cancellation. If
1727// the context is nil a panic will occur. In the future the SDK may create
1728// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1729// for more information on using Contexts.
1730func (c *WorkSpaces) RebuildWorkspacesWithContext(ctx aws.Context, input *RebuildWorkspacesInput, opts ...request.Option) (*RebuildWorkspacesOutput, error) {
1731	req, out := c.RebuildWorkspacesRequest(input)
1732	req.SetContext(ctx)
1733	req.ApplyOptions(opts...)
1734	return out, req.Send()
1735}
1736
1737const opRevokeIpRules = "RevokeIpRules"
1738
1739// RevokeIpRulesRequest generates a "aws/request.Request" representing the
1740// client's request for the RevokeIpRules operation. The "output" return
1741// value will be populated with the request's response once the request completes
1742// successfuly.
1743//
1744// Use "Send" method on the returned Request to send the API call to the service.
1745// the "output" return value is not valid until after Send returns without error.
1746//
1747// See RevokeIpRules for more information on using the RevokeIpRules
1748// API call, and error handling.
1749//
1750// This method is useful when you want to inject custom logic or configuration
1751// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1752//
1753//
1754//    // Example sending a request using the RevokeIpRulesRequest method.
1755//    req, resp := client.RevokeIpRulesRequest(params)
1756//
1757//    err := req.Send()
1758//    if err == nil { // resp is now filled
1759//        fmt.Println(resp)
1760//    }
1761//
1762// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RevokeIpRules
1763func (c *WorkSpaces) RevokeIpRulesRequest(input *RevokeIpRulesInput) (req *request.Request, output *RevokeIpRulesOutput) {
1764	op := &request.Operation{
1765		Name:       opRevokeIpRules,
1766		HTTPMethod: "POST",
1767		HTTPPath:   "/",
1768	}
1769
1770	if input == nil {
1771		input = &RevokeIpRulesInput{}
1772	}
1773
1774	output = &RevokeIpRulesOutput{}
1775	req = c.newRequest(op, input, output)
1776	return
1777}
1778
1779// RevokeIpRules API operation for Amazon WorkSpaces.
1780//
1781// Removes one or more rules from the specified IP access control group.
1782//
1783// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1784// with awserr.Error's Code and Message methods to get detailed information about
1785// the error.
1786//
1787// See the AWS API reference guide for Amazon WorkSpaces's
1788// API operation RevokeIpRules for usage and error information.
1789//
1790// Returned Error Codes:
1791//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
1792//   One or more parameter values are not valid.
1793//
1794//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1795//   The resource could not be found.
1796//
1797//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
1798//   The state of the resource is not valid for this operation.
1799//
1800//   * ErrCodeAccessDeniedException "AccessDeniedException"
1801//   The user is not authorized to access a resource.
1802//
1803// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/RevokeIpRules
1804func (c *WorkSpaces) RevokeIpRules(input *RevokeIpRulesInput) (*RevokeIpRulesOutput, error) {
1805	req, out := c.RevokeIpRulesRequest(input)
1806	return out, req.Send()
1807}
1808
1809// RevokeIpRulesWithContext is the same as RevokeIpRules with the addition of
1810// the ability to pass a context and additional request options.
1811//
1812// See RevokeIpRules for details on how to use this API operation.
1813//
1814// The context must be non-nil and will be used for request cancellation. If
1815// the context is nil a panic will occur. In the future the SDK may create
1816// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1817// for more information on using Contexts.
1818func (c *WorkSpaces) RevokeIpRulesWithContext(ctx aws.Context, input *RevokeIpRulesInput, opts ...request.Option) (*RevokeIpRulesOutput, error) {
1819	req, out := c.RevokeIpRulesRequest(input)
1820	req.SetContext(ctx)
1821	req.ApplyOptions(opts...)
1822	return out, req.Send()
1823}
1824
1825const opStartWorkspaces = "StartWorkspaces"
1826
1827// StartWorkspacesRequest generates a "aws/request.Request" representing the
1828// client's request for the StartWorkspaces operation. The "output" return
1829// value will be populated with the request's response once the request completes
1830// successfuly.
1831//
1832// Use "Send" method on the returned Request to send the API call to the service.
1833// the "output" return value is not valid until after Send returns without error.
1834//
1835// See StartWorkspaces for more information on using the StartWorkspaces
1836// API call, and error handling.
1837//
1838// This method is useful when you want to inject custom logic or configuration
1839// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1840//
1841//
1842//    // Example sending a request using the StartWorkspacesRequest method.
1843//    req, resp := client.StartWorkspacesRequest(params)
1844//
1845//    err := req.Send()
1846//    if err == nil { // resp is now filled
1847//        fmt.Println(resp)
1848//    }
1849//
1850// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StartWorkspaces
1851func (c *WorkSpaces) StartWorkspacesRequest(input *StartWorkspacesInput) (req *request.Request, output *StartWorkspacesOutput) {
1852	op := &request.Operation{
1853		Name:       opStartWorkspaces,
1854		HTTPMethod: "POST",
1855		HTTPPath:   "/",
1856	}
1857
1858	if input == nil {
1859		input = &StartWorkspacesInput{}
1860	}
1861
1862	output = &StartWorkspacesOutput{}
1863	req = c.newRequest(op, input, output)
1864	return
1865}
1866
1867// StartWorkspaces API operation for Amazon WorkSpaces.
1868//
1869// Starts the specified WorkSpaces.
1870//
1871// You cannot start a WorkSpace unless it has a running mode of AutoStop and
1872// a state of STOPPED.
1873//
1874// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1875// with awserr.Error's Code and Message methods to get detailed information about
1876// the error.
1877//
1878// See the AWS API reference guide for Amazon WorkSpaces's
1879// API operation StartWorkspaces for usage and error information.
1880// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StartWorkspaces
1881func (c *WorkSpaces) StartWorkspaces(input *StartWorkspacesInput) (*StartWorkspacesOutput, error) {
1882	req, out := c.StartWorkspacesRequest(input)
1883	return out, req.Send()
1884}
1885
1886// StartWorkspacesWithContext is the same as StartWorkspaces with the addition of
1887// the ability to pass a context and additional request options.
1888//
1889// See StartWorkspaces for details on how to use this API operation.
1890//
1891// The context must be non-nil and will be used for request cancellation. If
1892// the context is nil a panic will occur. In the future the SDK may create
1893// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1894// for more information on using Contexts.
1895func (c *WorkSpaces) StartWorkspacesWithContext(ctx aws.Context, input *StartWorkspacesInput, opts ...request.Option) (*StartWorkspacesOutput, error) {
1896	req, out := c.StartWorkspacesRequest(input)
1897	req.SetContext(ctx)
1898	req.ApplyOptions(opts...)
1899	return out, req.Send()
1900}
1901
1902const opStopWorkspaces = "StopWorkspaces"
1903
1904// StopWorkspacesRequest generates a "aws/request.Request" representing the
1905// client's request for the StopWorkspaces operation. The "output" return
1906// value will be populated with the request's response once the request completes
1907// successfuly.
1908//
1909// Use "Send" method on the returned Request to send the API call to the service.
1910// the "output" return value is not valid until after Send returns without error.
1911//
1912// See StopWorkspaces for more information on using the StopWorkspaces
1913// API call, and error handling.
1914//
1915// This method is useful when you want to inject custom logic or configuration
1916// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1917//
1918//
1919//    // Example sending a request using the StopWorkspacesRequest method.
1920//    req, resp := client.StopWorkspacesRequest(params)
1921//
1922//    err := req.Send()
1923//    if err == nil { // resp is now filled
1924//        fmt.Println(resp)
1925//    }
1926//
1927// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StopWorkspaces
1928func (c *WorkSpaces) StopWorkspacesRequest(input *StopWorkspacesInput) (req *request.Request, output *StopWorkspacesOutput) {
1929	op := &request.Operation{
1930		Name:       opStopWorkspaces,
1931		HTTPMethod: "POST",
1932		HTTPPath:   "/",
1933	}
1934
1935	if input == nil {
1936		input = &StopWorkspacesInput{}
1937	}
1938
1939	output = &StopWorkspacesOutput{}
1940	req = c.newRequest(op, input, output)
1941	return
1942}
1943
1944// StopWorkspaces API operation for Amazon WorkSpaces.
1945//
1946// Stops the specified WorkSpaces.
1947//
1948// You cannot stop a WorkSpace unless it has a running mode of AutoStop and
1949// a state of AVAILABLE, IMPAIRED, UNHEALTHY, or ERROR.
1950//
1951// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1952// with awserr.Error's Code and Message methods to get detailed information about
1953// the error.
1954//
1955// See the AWS API reference guide for Amazon WorkSpaces's
1956// API operation StopWorkspaces for usage and error information.
1957// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/StopWorkspaces
1958func (c *WorkSpaces) StopWorkspaces(input *StopWorkspacesInput) (*StopWorkspacesOutput, error) {
1959	req, out := c.StopWorkspacesRequest(input)
1960	return out, req.Send()
1961}
1962
1963// StopWorkspacesWithContext is the same as StopWorkspaces with the addition of
1964// the ability to pass a context and additional request options.
1965//
1966// See StopWorkspaces for details on how to use this API operation.
1967//
1968// The context must be non-nil and will be used for request cancellation. If
1969// the context is nil a panic will occur. In the future the SDK may create
1970// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1971// for more information on using Contexts.
1972func (c *WorkSpaces) StopWorkspacesWithContext(ctx aws.Context, input *StopWorkspacesInput, opts ...request.Option) (*StopWorkspacesOutput, error) {
1973	req, out := c.StopWorkspacesRequest(input)
1974	req.SetContext(ctx)
1975	req.ApplyOptions(opts...)
1976	return out, req.Send()
1977}
1978
1979const opTerminateWorkspaces = "TerminateWorkspaces"
1980
1981// TerminateWorkspacesRequest generates a "aws/request.Request" representing the
1982// client's request for the TerminateWorkspaces operation. The "output" return
1983// value will be populated with the request's response once the request completes
1984// successfuly.
1985//
1986// Use "Send" method on the returned Request to send the API call to the service.
1987// the "output" return value is not valid until after Send returns without error.
1988//
1989// See TerminateWorkspaces for more information on using the TerminateWorkspaces
1990// API call, and error handling.
1991//
1992// This method is useful when you want to inject custom logic or configuration
1993// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1994//
1995//
1996//    // Example sending a request using the TerminateWorkspacesRequest method.
1997//    req, resp := client.TerminateWorkspacesRequest(params)
1998//
1999//    err := req.Send()
2000//    if err == nil { // resp is now filled
2001//        fmt.Println(resp)
2002//    }
2003//
2004// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/TerminateWorkspaces
2005func (c *WorkSpaces) TerminateWorkspacesRequest(input *TerminateWorkspacesInput) (req *request.Request, output *TerminateWorkspacesOutput) {
2006	op := &request.Operation{
2007		Name:       opTerminateWorkspaces,
2008		HTTPMethod: "POST",
2009		HTTPPath:   "/",
2010	}
2011
2012	if input == nil {
2013		input = &TerminateWorkspacesInput{}
2014	}
2015
2016	output = &TerminateWorkspacesOutput{}
2017	req = c.newRequest(op, input, output)
2018	return
2019}
2020
2021// TerminateWorkspaces API operation for Amazon WorkSpaces.
2022//
2023// Terminates the specified WorkSpaces.
2024//
2025// Terminating a WorkSpace is a permanent action and cannot be undone. The user's
2026// data is destroyed. If you need to archive any user data, contact Amazon Web
2027// Services before terminating the WorkSpace.
2028//
2029// You can terminate a WorkSpace that is in any state except SUSPENDED.
2030//
2031// This operation is asynchronous and returns before the WorkSpaces have been
2032// completely terminated.
2033//
2034// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2035// with awserr.Error's Code and Message methods to get detailed information about
2036// the error.
2037//
2038// See the AWS API reference guide for Amazon WorkSpaces's
2039// API operation TerminateWorkspaces for usage and error information.
2040// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/TerminateWorkspaces
2041func (c *WorkSpaces) TerminateWorkspaces(input *TerminateWorkspacesInput) (*TerminateWorkspacesOutput, error) {
2042	req, out := c.TerminateWorkspacesRequest(input)
2043	return out, req.Send()
2044}
2045
2046// TerminateWorkspacesWithContext is the same as TerminateWorkspaces with the addition of
2047// the ability to pass a context and additional request options.
2048//
2049// See TerminateWorkspaces for details on how to use this API operation.
2050//
2051// The context must be non-nil and will be used for request cancellation. If
2052// the context is nil a panic will occur. In the future the SDK may create
2053// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2054// for more information on using Contexts.
2055func (c *WorkSpaces) TerminateWorkspacesWithContext(ctx aws.Context, input *TerminateWorkspacesInput, opts ...request.Option) (*TerminateWorkspacesOutput, error) {
2056	req, out := c.TerminateWorkspacesRequest(input)
2057	req.SetContext(ctx)
2058	req.ApplyOptions(opts...)
2059	return out, req.Send()
2060}
2061
2062const opUpdateRulesOfIpGroup = "UpdateRulesOfIpGroup"
2063
2064// UpdateRulesOfIpGroupRequest generates a "aws/request.Request" representing the
2065// client's request for the UpdateRulesOfIpGroup operation. The "output" return
2066// value will be populated with the request's response once the request completes
2067// successfuly.
2068//
2069// Use "Send" method on the returned Request to send the API call to the service.
2070// the "output" return value is not valid until after Send returns without error.
2071//
2072// See UpdateRulesOfIpGroup for more information on using the UpdateRulesOfIpGroup
2073// API call, and error handling.
2074//
2075// This method is useful when you want to inject custom logic or configuration
2076// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2077//
2078//
2079//    // Example sending a request using the UpdateRulesOfIpGroupRequest method.
2080//    req, resp := client.UpdateRulesOfIpGroupRequest(params)
2081//
2082//    err := req.Send()
2083//    if err == nil { // resp is now filled
2084//        fmt.Println(resp)
2085//    }
2086//
2087// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateRulesOfIpGroup
2088func (c *WorkSpaces) UpdateRulesOfIpGroupRequest(input *UpdateRulesOfIpGroupInput) (req *request.Request, output *UpdateRulesOfIpGroupOutput) {
2089	op := &request.Operation{
2090		Name:       opUpdateRulesOfIpGroup,
2091		HTTPMethod: "POST",
2092		HTTPPath:   "/",
2093	}
2094
2095	if input == nil {
2096		input = &UpdateRulesOfIpGroupInput{}
2097	}
2098
2099	output = &UpdateRulesOfIpGroupOutput{}
2100	req = c.newRequest(op, input, output)
2101	return
2102}
2103
2104// UpdateRulesOfIpGroup API operation for Amazon WorkSpaces.
2105//
2106// Replaces the current rules of the specified IP access control group with
2107// the specified rules.
2108//
2109// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2110// with awserr.Error's Code and Message methods to get detailed information about
2111// the error.
2112//
2113// See the AWS API reference guide for Amazon WorkSpaces's
2114// API operation UpdateRulesOfIpGroup for usage and error information.
2115//
2116// Returned Error Codes:
2117//   * ErrCodeInvalidParameterValuesException "InvalidParameterValuesException"
2118//   One or more parameter values are not valid.
2119//
2120//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2121//   The resource could not be found.
2122//
2123//   * ErrCodeResourceLimitExceededException "ResourceLimitExceededException"
2124//   Your resource limits have been exceeded.
2125//
2126//   * ErrCodeInvalidResourceStateException "InvalidResourceStateException"
2127//   The state of the resource is not valid for this operation.
2128//
2129//   * ErrCodeAccessDeniedException "AccessDeniedException"
2130//   The user is not authorized to access a resource.
2131//
2132// See also, https://docs.aws.amazon.com/goto/WebAPI/workspaces-2015-04-08/UpdateRulesOfIpGroup
2133func (c *WorkSpaces) UpdateRulesOfIpGroup(input *UpdateRulesOfIpGroupInput) (*UpdateRulesOfIpGroupOutput, error) {
2134	req, out := c.UpdateRulesOfIpGroupRequest(input)
2135	return out, req.Send()
2136}
2137
2138// UpdateRulesOfIpGroupWithContext is the same as UpdateRulesOfIpGroup with the addition of
2139// the ability to pass a context and additional request options.
2140//
2141// See UpdateRulesOfIpGroup for details on how to use this API operation.
2142//
2143// The context must be non-nil and will be used for request cancellation. If
2144// the context is nil a panic will occur. In the future the SDK may create
2145// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2146// for more information on using Contexts.
2147func (c *WorkSpaces) UpdateRulesOfIpGroupWithContext(ctx aws.Context, input *UpdateRulesOfIpGroupInput, opts ...request.Option) (*UpdateRulesOfIpGroupOutput, error) {
2148	req, out := c.UpdateRulesOfIpGroupRequest(input)
2149	req.SetContext(ctx)
2150	req.ApplyOptions(opts...)
2151	return out, req.Send()
2152}
2153
2154type AssociateIpGroupsInput struct {
2155	_ struct{} `type:"structure"`
2156
2157	// The ID of the directory.
2158	//
2159	// DirectoryId is a required field
2160	DirectoryId *string `type:"string" required:"true"`
2161
2162	// The IDs of one or more IP access control groups.
2163	//
2164	// GroupIds is a required field
2165	GroupIds []*string `type:"list" required:"true"`
2166}
2167
2168// String returns the string representation
2169func (s AssociateIpGroupsInput) String() string {
2170	return awsutil.Prettify(s)
2171}
2172
2173// GoString returns the string representation
2174func (s AssociateIpGroupsInput) GoString() string {
2175	return s.String()
2176}
2177
2178// Validate inspects the fields of the type to determine if they are valid.
2179func (s *AssociateIpGroupsInput) Validate() error {
2180	invalidParams := request.ErrInvalidParams{Context: "AssociateIpGroupsInput"}
2181	if s.DirectoryId == nil {
2182		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
2183	}
2184	if s.GroupIds == nil {
2185		invalidParams.Add(request.NewErrParamRequired("GroupIds"))
2186	}
2187
2188	if invalidParams.Len() > 0 {
2189		return invalidParams
2190	}
2191	return nil
2192}
2193
2194// SetDirectoryId sets the DirectoryId field's value.
2195func (s *AssociateIpGroupsInput) SetDirectoryId(v string) *AssociateIpGroupsInput {
2196	s.DirectoryId = &v
2197	return s
2198}
2199
2200// SetGroupIds sets the GroupIds field's value.
2201func (s *AssociateIpGroupsInput) SetGroupIds(v []*string) *AssociateIpGroupsInput {
2202	s.GroupIds = v
2203	return s
2204}
2205
2206type AssociateIpGroupsOutput struct {
2207	_ struct{} `type:"structure"`
2208}
2209
2210// String returns the string representation
2211func (s AssociateIpGroupsOutput) String() string {
2212	return awsutil.Prettify(s)
2213}
2214
2215// GoString returns the string representation
2216func (s AssociateIpGroupsOutput) GoString() string {
2217	return s.String()
2218}
2219
2220type AuthorizeIpRulesInput struct {
2221	_ struct{} `type:"structure"`
2222
2223	// The ID of the group.
2224	//
2225	// GroupId is a required field
2226	GroupId *string `type:"string" required:"true"`
2227
2228	// The rules to add to the group.
2229	//
2230	// UserRules is a required field
2231	UserRules []*IpRuleItem `type:"list" required:"true"`
2232}
2233
2234// String returns the string representation
2235func (s AuthorizeIpRulesInput) String() string {
2236	return awsutil.Prettify(s)
2237}
2238
2239// GoString returns the string representation
2240func (s AuthorizeIpRulesInput) GoString() string {
2241	return s.String()
2242}
2243
2244// Validate inspects the fields of the type to determine if they are valid.
2245func (s *AuthorizeIpRulesInput) Validate() error {
2246	invalidParams := request.ErrInvalidParams{Context: "AuthorizeIpRulesInput"}
2247	if s.GroupId == nil {
2248		invalidParams.Add(request.NewErrParamRequired("GroupId"))
2249	}
2250	if s.UserRules == nil {
2251		invalidParams.Add(request.NewErrParamRequired("UserRules"))
2252	}
2253
2254	if invalidParams.Len() > 0 {
2255		return invalidParams
2256	}
2257	return nil
2258}
2259
2260// SetGroupId sets the GroupId field's value.
2261func (s *AuthorizeIpRulesInput) SetGroupId(v string) *AuthorizeIpRulesInput {
2262	s.GroupId = &v
2263	return s
2264}
2265
2266// SetUserRules sets the UserRules field's value.
2267func (s *AuthorizeIpRulesInput) SetUserRules(v []*IpRuleItem) *AuthorizeIpRulesInput {
2268	s.UserRules = v
2269	return s
2270}
2271
2272type AuthorizeIpRulesOutput struct {
2273	_ struct{} `type:"structure"`
2274}
2275
2276// String returns the string representation
2277func (s AuthorizeIpRulesOutput) String() string {
2278	return awsutil.Prettify(s)
2279}
2280
2281// GoString returns the string representation
2282func (s AuthorizeIpRulesOutput) GoString() string {
2283	return s.String()
2284}
2285
2286// Information about the compute type.
2287type ComputeType struct {
2288	_ struct{} `type:"structure"`
2289
2290	// The compute type.
2291	Name *string `type:"string" enum:"Compute"`
2292}
2293
2294// String returns the string representation
2295func (s ComputeType) String() string {
2296	return awsutil.Prettify(s)
2297}
2298
2299// GoString returns the string representation
2300func (s ComputeType) GoString() string {
2301	return s.String()
2302}
2303
2304// SetName sets the Name field's value.
2305func (s *ComputeType) SetName(v string) *ComputeType {
2306	s.Name = &v
2307	return s
2308}
2309
2310type CreateIpGroupInput struct {
2311	_ struct{} `type:"structure"`
2312
2313	// The description of the group.
2314	GroupDesc *string `type:"string"`
2315
2316	// The name of the group.
2317	//
2318	// GroupName is a required field
2319	GroupName *string `type:"string" required:"true"`
2320
2321	// The rules to add to the group.
2322	UserRules []*IpRuleItem `type:"list"`
2323}
2324
2325// String returns the string representation
2326func (s CreateIpGroupInput) String() string {
2327	return awsutil.Prettify(s)
2328}
2329
2330// GoString returns the string representation
2331func (s CreateIpGroupInput) GoString() string {
2332	return s.String()
2333}
2334
2335// Validate inspects the fields of the type to determine if they are valid.
2336func (s *CreateIpGroupInput) Validate() error {
2337	invalidParams := request.ErrInvalidParams{Context: "CreateIpGroupInput"}
2338	if s.GroupName == nil {
2339		invalidParams.Add(request.NewErrParamRequired("GroupName"))
2340	}
2341
2342	if invalidParams.Len() > 0 {
2343		return invalidParams
2344	}
2345	return nil
2346}
2347
2348// SetGroupDesc sets the GroupDesc field's value.
2349func (s *CreateIpGroupInput) SetGroupDesc(v string) *CreateIpGroupInput {
2350	s.GroupDesc = &v
2351	return s
2352}
2353
2354// SetGroupName sets the GroupName field's value.
2355func (s *CreateIpGroupInput) SetGroupName(v string) *CreateIpGroupInput {
2356	s.GroupName = &v
2357	return s
2358}
2359
2360// SetUserRules sets the UserRules field's value.
2361func (s *CreateIpGroupInput) SetUserRules(v []*IpRuleItem) *CreateIpGroupInput {
2362	s.UserRules = v
2363	return s
2364}
2365
2366type CreateIpGroupOutput struct {
2367	_ struct{} `type:"structure"`
2368
2369	// The ID of the group.
2370	GroupId *string `type:"string"`
2371}
2372
2373// String returns the string representation
2374func (s CreateIpGroupOutput) String() string {
2375	return awsutil.Prettify(s)
2376}
2377
2378// GoString returns the string representation
2379func (s CreateIpGroupOutput) GoString() string {
2380	return s.String()
2381}
2382
2383// SetGroupId sets the GroupId field's value.
2384func (s *CreateIpGroupOutput) SetGroupId(v string) *CreateIpGroupOutput {
2385	s.GroupId = &v
2386	return s
2387}
2388
2389type CreateTagsInput struct {
2390	_ struct{} `type:"structure"`
2391
2392	// The ID of the WorkSpace. To find this ID, use DescribeWorkspaces.
2393	//
2394	// ResourceId is a required field
2395	ResourceId *string `min:"1" type:"string" required:"true"`
2396
2397	// The tags. Each WorkSpace can have a maximum of 50 tags.
2398	//
2399	// Tags is a required field
2400	Tags []*Tag `type:"list" required:"true"`
2401}
2402
2403// String returns the string representation
2404func (s CreateTagsInput) String() string {
2405	return awsutil.Prettify(s)
2406}
2407
2408// GoString returns the string representation
2409func (s CreateTagsInput) GoString() string {
2410	return s.String()
2411}
2412
2413// Validate inspects the fields of the type to determine if they are valid.
2414func (s *CreateTagsInput) Validate() error {
2415	invalidParams := request.ErrInvalidParams{Context: "CreateTagsInput"}
2416	if s.ResourceId == nil {
2417		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
2418	}
2419	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
2420		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
2421	}
2422	if s.Tags == nil {
2423		invalidParams.Add(request.NewErrParamRequired("Tags"))
2424	}
2425	if s.Tags != nil {
2426		for i, v := range s.Tags {
2427			if v == nil {
2428				continue
2429			}
2430			if err := v.Validate(); err != nil {
2431				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
2432			}
2433		}
2434	}
2435
2436	if invalidParams.Len() > 0 {
2437		return invalidParams
2438	}
2439	return nil
2440}
2441
2442// SetResourceId sets the ResourceId field's value.
2443func (s *CreateTagsInput) SetResourceId(v string) *CreateTagsInput {
2444	s.ResourceId = &v
2445	return s
2446}
2447
2448// SetTags sets the Tags field's value.
2449func (s *CreateTagsInput) SetTags(v []*Tag) *CreateTagsInput {
2450	s.Tags = v
2451	return s
2452}
2453
2454type CreateTagsOutput struct {
2455	_ struct{} `type:"structure"`
2456}
2457
2458// String returns the string representation
2459func (s CreateTagsOutput) String() string {
2460	return awsutil.Prettify(s)
2461}
2462
2463// GoString returns the string representation
2464func (s CreateTagsOutput) GoString() string {
2465	return s.String()
2466}
2467
2468type CreateWorkspacesInput struct {
2469	_ struct{} `type:"structure"`
2470
2471	// The WorkSpaces to create. You can specify up to 25 WorkSpaces.
2472	//
2473	// Workspaces is a required field
2474	Workspaces []*WorkspaceRequest `min:"1" type:"list" required:"true"`
2475}
2476
2477// String returns the string representation
2478func (s CreateWorkspacesInput) String() string {
2479	return awsutil.Prettify(s)
2480}
2481
2482// GoString returns the string representation
2483func (s CreateWorkspacesInput) GoString() string {
2484	return s.String()
2485}
2486
2487// Validate inspects the fields of the type to determine if they are valid.
2488func (s *CreateWorkspacesInput) Validate() error {
2489	invalidParams := request.ErrInvalidParams{Context: "CreateWorkspacesInput"}
2490	if s.Workspaces == nil {
2491		invalidParams.Add(request.NewErrParamRequired("Workspaces"))
2492	}
2493	if s.Workspaces != nil && len(s.Workspaces) < 1 {
2494		invalidParams.Add(request.NewErrParamMinLen("Workspaces", 1))
2495	}
2496	if s.Workspaces != nil {
2497		for i, v := range s.Workspaces {
2498			if v == nil {
2499				continue
2500			}
2501			if err := v.Validate(); err != nil {
2502				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Workspaces", i), err.(request.ErrInvalidParams))
2503			}
2504		}
2505	}
2506
2507	if invalidParams.Len() > 0 {
2508		return invalidParams
2509	}
2510	return nil
2511}
2512
2513// SetWorkspaces sets the Workspaces field's value.
2514func (s *CreateWorkspacesInput) SetWorkspaces(v []*WorkspaceRequest) *CreateWorkspacesInput {
2515	s.Workspaces = v
2516	return s
2517}
2518
2519type CreateWorkspacesOutput struct {
2520	_ struct{} `type:"structure"`
2521
2522	// Information about the WorkSpaces that could not be created.
2523	FailedRequests []*FailedCreateWorkspaceRequest `type:"list"`
2524
2525	// Information about the WorkSpaces that were created.
2526	//
2527	// Because this operation is asynchronous, the identifier returned is not immediately
2528	// available for use with other operations. For example, if you call DescribeWorkspaces
2529	// before the WorkSpace is created, the information returned can be incomplete.
2530	PendingRequests []*Workspace `type:"list"`
2531}
2532
2533// String returns the string representation
2534func (s CreateWorkspacesOutput) String() string {
2535	return awsutil.Prettify(s)
2536}
2537
2538// GoString returns the string representation
2539func (s CreateWorkspacesOutput) GoString() string {
2540	return s.String()
2541}
2542
2543// SetFailedRequests sets the FailedRequests field's value.
2544func (s *CreateWorkspacesOutput) SetFailedRequests(v []*FailedCreateWorkspaceRequest) *CreateWorkspacesOutput {
2545	s.FailedRequests = v
2546	return s
2547}
2548
2549// SetPendingRequests sets the PendingRequests field's value.
2550func (s *CreateWorkspacesOutput) SetPendingRequests(v []*Workspace) *CreateWorkspacesOutput {
2551	s.PendingRequests = v
2552	return s
2553}
2554
2555// Information about defaults used to create a WorkSpace.
2556type DefaultWorkspaceCreationProperties struct {
2557	_ struct{} `type:"structure"`
2558
2559	// The identifier of any security groups to apply to WorkSpaces when they are
2560	// created.
2561	CustomSecurityGroupId *string `type:"string"`
2562
2563	// The organizational unit (OU) in the directory for the WorkSpace machine accounts.
2564	DefaultOu *string `type:"string"`
2565
2566	// The public IP address to attach to all WorkSpaces that are created or rebuilt.
2567	EnableInternetAccess *bool `type:"boolean"`
2568
2569	// Indicates whether the directory is enabled for Amazon WorkDocs.
2570	EnableWorkDocs *bool `type:"boolean"`
2571
2572	// Indicates whether the WorkSpace user is an administrator on the WorkSpace.
2573	UserEnabledAsLocalAdministrator *bool `type:"boolean"`
2574}
2575
2576// String returns the string representation
2577func (s DefaultWorkspaceCreationProperties) String() string {
2578	return awsutil.Prettify(s)
2579}
2580
2581// GoString returns the string representation
2582func (s DefaultWorkspaceCreationProperties) GoString() string {
2583	return s.String()
2584}
2585
2586// SetCustomSecurityGroupId sets the CustomSecurityGroupId field's value.
2587func (s *DefaultWorkspaceCreationProperties) SetCustomSecurityGroupId(v string) *DefaultWorkspaceCreationProperties {
2588	s.CustomSecurityGroupId = &v
2589	return s
2590}
2591
2592// SetDefaultOu sets the DefaultOu field's value.
2593func (s *DefaultWorkspaceCreationProperties) SetDefaultOu(v string) *DefaultWorkspaceCreationProperties {
2594	s.DefaultOu = &v
2595	return s
2596}
2597
2598// SetEnableInternetAccess sets the EnableInternetAccess field's value.
2599func (s *DefaultWorkspaceCreationProperties) SetEnableInternetAccess(v bool) *DefaultWorkspaceCreationProperties {
2600	s.EnableInternetAccess = &v
2601	return s
2602}
2603
2604// SetEnableWorkDocs sets the EnableWorkDocs field's value.
2605func (s *DefaultWorkspaceCreationProperties) SetEnableWorkDocs(v bool) *DefaultWorkspaceCreationProperties {
2606	s.EnableWorkDocs = &v
2607	return s
2608}
2609
2610// SetUserEnabledAsLocalAdministrator sets the UserEnabledAsLocalAdministrator field's value.
2611func (s *DefaultWorkspaceCreationProperties) SetUserEnabledAsLocalAdministrator(v bool) *DefaultWorkspaceCreationProperties {
2612	s.UserEnabledAsLocalAdministrator = &v
2613	return s
2614}
2615
2616type DeleteIpGroupInput struct {
2617	_ struct{} `type:"structure"`
2618
2619	// The ID of the IP access control group.
2620	//
2621	// GroupId is a required field
2622	GroupId *string `type:"string" required:"true"`
2623}
2624
2625// String returns the string representation
2626func (s DeleteIpGroupInput) String() string {
2627	return awsutil.Prettify(s)
2628}
2629
2630// GoString returns the string representation
2631func (s DeleteIpGroupInput) GoString() string {
2632	return s.String()
2633}
2634
2635// Validate inspects the fields of the type to determine if they are valid.
2636func (s *DeleteIpGroupInput) Validate() error {
2637	invalidParams := request.ErrInvalidParams{Context: "DeleteIpGroupInput"}
2638	if s.GroupId == nil {
2639		invalidParams.Add(request.NewErrParamRequired("GroupId"))
2640	}
2641
2642	if invalidParams.Len() > 0 {
2643		return invalidParams
2644	}
2645	return nil
2646}
2647
2648// SetGroupId sets the GroupId field's value.
2649func (s *DeleteIpGroupInput) SetGroupId(v string) *DeleteIpGroupInput {
2650	s.GroupId = &v
2651	return s
2652}
2653
2654type DeleteIpGroupOutput struct {
2655	_ struct{} `type:"structure"`
2656}
2657
2658// String returns the string representation
2659func (s DeleteIpGroupOutput) String() string {
2660	return awsutil.Prettify(s)
2661}
2662
2663// GoString returns the string representation
2664func (s DeleteIpGroupOutput) GoString() string {
2665	return s.String()
2666}
2667
2668type DeleteTagsInput struct {
2669	_ struct{} `type:"structure"`
2670
2671	// The ID of the WorkSpace. To find this ID, use DescribeWorkspaces.
2672	//
2673	// ResourceId is a required field
2674	ResourceId *string `min:"1" type:"string" required:"true"`
2675
2676	// The tag keys.
2677	//
2678	// TagKeys is a required field
2679	TagKeys []*string `type:"list" required:"true"`
2680}
2681
2682// String returns the string representation
2683func (s DeleteTagsInput) String() string {
2684	return awsutil.Prettify(s)
2685}
2686
2687// GoString returns the string representation
2688func (s DeleteTagsInput) GoString() string {
2689	return s.String()
2690}
2691
2692// Validate inspects the fields of the type to determine if they are valid.
2693func (s *DeleteTagsInput) Validate() error {
2694	invalidParams := request.ErrInvalidParams{Context: "DeleteTagsInput"}
2695	if s.ResourceId == nil {
2696		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
2697	}
2698	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
2699		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
2700	}
2701	if s.TagKeys == nil {
2702		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
2703	}
2704
2705	if invalidParams.Len() > 0 {
2706		return invalidParams
2707	}
2708	return nil
2709}
2710
2711// SetResourceId sets the ResourceId field's value.
2712func (s *DeleteTagsInput) SetResourceId(v string) *DeleteTagsInput {
2713	s.ResourceId = &v
2714	return s
2715}
2716
2717// SetTagKeys sets the TagKeys field's value.
2718func (s *DeleteTagsInput) SetTagKeys(v []*string) *DeleteTagsInput {
2719	s.TagKeys = v
2720	return s
2721}
2722
2723type DeleteTagsOutput struct {
2724	_ struct{} `type:"structure"`
2725}
2726
2727// String returns the string representation
2728func (s DeleteTagsOutput) String() string {
2729	return awsutil.Prettify(s)
2730}
2731
2732// GoString returns the string representation
2733func (s DeleteTagsOutput) GoString() string {
2734	return s.String()
2735}
2736
2737type DescribeIpGroupsInput struct {
2738	_ struct{} `type:"structure"`
2739
2740	// The IDs of one or more IP access control groups.
2741	GroupIds []*string `type:"list"`
2742
2743	// The maximum number of items to return.
2744	MaxResults *int64 `min:"1" type:"integer"`
2745
2746	// The token for the next set of results. (You received this token from a previous
2747	// call.)
2748	NextToken *string `min:"1" type:"string"`
2749}
2750
2751// String returns the string representation
2752func (s DescribeIpGroupsInput) String() string {
2753	return awsutil.Prettify(s)
2754}
2755
2756// GoString returns the string representation
2757func (s DescribeIpGroupsInput) GoString() string {
2758	return s.String()
2759}
2760
2761// Validate inspects the fields of the type to determine if they are valid.
2762func (s *DescribeIpGroupsInput) Validate() error {
2763	invalidParams := request.ErrInvalidParams{Context: "DescribeIpGroupsInput"}
2764	if s.MaxResults != nil && *s.MaxResults < 1 {
2765		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
2766	}
2767	if s.NextToken != nil && len(*s.NextToken) < 1 {
2768		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
2769	}
2770
2771	if invalidParams.Len() > 0 {
2772		return invalidParams
2773	}
2774	return nil
2775}
2776
2777// SetGroupIds sets the GroupIds field's value.
2778func (s *DescribeIpGroupsInput) SetGroupIds(v []*string) *DescribeIpGroupsInput {
2779	s.GroupIds = v
2780	return s
2781}
2782
2783// SetMaxResults sets the MaxResults field's value.
2784func (s *DescribeIpGroupsInput) SetMaxResults(v int64) *DescribeIpGroupsInput {
2785	s.MaxResults = &v
2786	return s
2787}
2788
2789// SetNextToken sets the NextToken field's value.
2790func (s *DescribeIpGroupsInput) SetNextToken(v string) *DescribeIpGroupsInput {
2791	s.NextToken = &v
2792	return s
2793}
2794
2795type DescribeIpGroupsOutput struct {
2796	_ struct{} `type:"structure"`
2797
2798	// The token to use to retrieve the next set of results, or null if there are
2799	// no more results available. This token is valid for one day and must be used
2800	// within that time frame.
2801	NextToken *string `min:"1" type:"string"`
2802
2803	// Information about the IP access control groups.
2804	Result []*IpGroup `type:"list"`
2805}
2806
2807// String returns the string representation
2808func (s DescribeIpGroupsOutput) String() string {
2809	return awsutil.Prettify(s)
2810}
2811
2812// GoString returns the string representation
2813func (s DescribeIpGroupsOutput) GoString() string {
2814	return s.String()
2815}
2816
2817// SetNextToken sets the NextToken field's value.
2818func (s *DescribeIpGroupsOutput) SetNextToken(v string) *DescribeIpGroupsOutput {
2819	s.NextToken = &v
2820	return s
2821}
2822
2823// SetResult sets the Result field's value.
2824func (s *DescribeIpGroupsOutput) SetResult(v []*IpGroup) *DescribeIpGroupsOutput {
2825	s.Result = v
2826	return s
2827}
2828
2829type DescribeTagsInput struct {
2830	_ struct{} `type:"structure"`
2831
2832	// The ID of the WorkSpace. To find this ID, use DescribeWorkspaces.
2833	//
2834	// ResourceId is a required field
2835	ResourceId *string `min:"1" type:"string" required:"true"`
2836}
2837
2838// String returns the string representation
2839func (s DescribeTagsInput) String() string {
2840	return awsutil.Prettify(s)
2841}
2842
2843// GoString returns the string representation
2844func (s DescribeTagsInput) GoString() string {
2845	return s.String()
2846}
2847
2848// Validate inspects the fields of the type to determine if they are valid.
2849func (s *DescribeTagsInput) Validate() error {
2850	invalidParams := request.ErrInvalidParams{Context: "DescribeTagsInput"}
2851	if s.ResourceId == nil {
2852		invalidParams.Add(request.NewErrParamRequired("ResourceId"))
2853	}
2854	if s.ResourceId != nil && len(*s.ResourceId) < 1 {
2855		invalidParams.Add(request.NewErrParamMinLen("ResourceId", 1))
2856	}
2857
2858	if invalidParams.Len() > 0 {
2859		return invalidParams
2860	}
2861	return nil
2862}
2863
2864// SetResourceId sets the ResourceId field's value.
2865func (s *DescribeTagsInput) SetResourceId(v string) *DescribeTagsInput {
2866	s.ResourceId = &v
2867	return s
2868}
2869
2870type DescribeTagsOutput struct {
2871	_ struct{} `type:"structure"`
2872
2873	// The tags.
2874	TagList []*Tag `type:"list"`
2875}
2876
2877// String returns the string representation
2878func (s DescribeTagsOutput) String() string {
2879	return awsutil.Prettify(s)
2880}
2881
2882// GoString returns the string representation
2883func (s DescribeTagsOutput) GoString() string {
2884	return s.String()
2885}
2886
2887// SetTagList sets the TagList field's value.
2888func (s *DescribeTagsOutput) SetTagList(v []*Tag) *DescribeTagsOutput {
2889	s.TagList = v
2890	return s
2891}
2892
2893type DescribeWorkspaceBundlesInput struct {
2894	_ struct{} `type:"structure"`
2895
2896	// The IDs of the bundles. This parameter cannot be combined with any other
2897	// filter.
2898	BundleIds []*string `min:"1" type:"list"`
2899
2900	// The token for the next set of results. (You received this token from a previous
2901	// call.)
2902	NextToken *string `min:"1" type:"string"`
2903
2904	// The owner of the bundles. This parameter cannot be combined with any other
2905	// filter.
2906	//
2907	// Specify AMAZON to describe the bundles provided by AWS or null to describe
2908	// the bundles that belong to your account.
2909	Owner *string `type:"string"`
2910}
2911
2912// String returns the string representation
2913func (s DescribeWorkspaceBundlesInput) String() string {
2914	return awsutil.Prettify(s)
2915}
2916
2917// GoString returns the string representation
2918func (s DescribeWorkspaceBundlesInput) GoString() string {
2919	return s.String()
2920}
2921
2922// Validate inspects the fields of the type to determine if they are valid.
2923func (s *DescribeWorkspaceBundlesInput) Validate() error {
2924	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceBundlesInput"}
2925	if s.BundleIds != nil && len(s.BundleIds) < 1 {
2926		invalidParams.Add(request.NewErrParamMinLen("BundleIds", 1))
2927	}
2928	if s.NextToken != nil && len(*s.NextToken) < 1 {
2929		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
2930	}
2931
2932	if invalidParams.Len() > 0 {
2933		return invalidParams
2934	}
2935	return nil
2936}
2937
2938// SetBundleIds sets the BundleIds field's value.
2939func (s *DescribeWorkspaceBundlesInput) SetBundleIds(v []*string) *DescribeWorkspaceBundlesInput {
2940	s.BundleIds = v
2941	return s
2942}
2943
2944// SetNextToken sets the NextToken field's value.
2945func (s *DescribeWorkspaceBundlesInput) SetNextToken(v string) *DescribeWorkspaceBundlesInput {
2946	s.NextToken = &v
2947	return s
2948}
2949
2950// SetOwner sets the Owner field's value.
2951func (s *DescribeWorkspaceBundlesInput) SetOwner(v string) *DescribeWorkspaceBundlesInput {
2952	s.Owner = &v
2953	return s
2954}
2955
2956type DescribeWorkspaceBundlesOutput struct {
2957	_ struct{} `type:"structure"`
2958
2959	// Information about the bundles.
2960	Bundles []*WorkspaceBundle `type:"list"`
2961
2962	// The token to use to retrieve the next set of results, or null if there are
2963	// no more results available. This token is valid for one day and must be used
2964	// within that time frame.
2965	NextToken *string `min:"1" type:"string"`
2966}
2967
2968// String returns the string representation
2969func (s DescribeWorkspaceBundlesOutput) String() string {
2970	return awsutil.Prettify(s)
2971}
2972
2973// GoString returns the string representation
2974func (s DescribeWorkspaceBundlesOutput) GoString() string {
2975	return s.String()
2976}
2977
2978// SetBundles sets the Bundles field's value.
2979func (s *DescribeWorkspaceBundlesOutput) SetBundles(v []*WorkspaceBundle) *DescribeWorkspaceBundlesOutput {
2980	s.Bundles = v
2981	return s
2982}
2983
2984// SetNextToken sets the NextToken field's value.
2985func (s *DescribeWorkspaceBundlesOutput) SetNextToken(v string) *DescribeWorkspaceBundlesOutput {
2986	s.NextToken = &v
2987	return s
2988}
2989
2990type DescribeWorkspaceDirectoriesInput struct {
2991	_ struct{} `type:"structure"`
2992
2993	// The identifiers of the directories. If the value is null, all directories
2994	// are retrieved.
2995	DirectoryIds []*string `min:"1" type:"list"`
2996
2997	// The token for the next set of results. (You received this token from a previous
2998	// call.)
2999	NextToken *string `min:"1" type:"string"`
3000}
3001
3002// String returns the string representation
3003func (s DescribeWorkspaceDirectoriesInput) String() string {
3004	return awsutil.Prettify(s)
3005}
3006
3007// GoString returns the string representation
3008func (s DescribeWorkspaceDirectoriesInput) GoString() string {
3009	return s.String()
3010}
3011
3012// Validate inspects the fields of the type to determine if they are valid.
3013func (s *DescribeWorkspaceDirectoriesInput) Validate() error {
3014	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspaceDirectoriesInput"}
3015	if s.DirectoryIds != nil && len(s.DirectoryIds) < 1 {
3016		invalidParams.Add(request.NewErrParamMinLen("DirectoryIds", 1))
3017	}
3018	if s.NextToken != nil && len(*s.NextToken) < 1 {
3019		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3020	}
3021
3022	if invalidParams.Len() > 0 {
3023		return invalidParams
3024	}
3025	return nil
3026}
3027
3028// SetDirectoryIds sets the DirectoryIds field's value.
3029func (s *DescribeWorkspaceDirectoriesInput) SetDirectoryIds(v []*string) *DescribeWorkspaceDirectoriesInput {
3030	s.DirectoryIds = v
3031	return s
3032}
3033
3034// SetNextToken sets the NextToken field's value.
3035func (s *DescribeWorkspaceDirectoriesInput) SetNextToken(v string) *DescribeWorkspaceDirectoriesInput {
3036	s.NextToken = &v
3037	return s
3038}
3039
3040type DescribeWorkspaceDirectoriesOutput struct {
3041	_ struct{} `type:"structure"`
3042
3043	// Information about the directories.
3044	Directories []*WorkspaceDirectory `type:"list"`
3045
3046	// The token to use to retrieve the next set of results, or null if there are
3047	// no more results available. This token is valid for one day and must be used
3048	// within that time frame.
3049	NextToken *string `min:"1" type:"string"`
3050}
3051
3052// String returns the string representation
3053func (s DescribeWorkspaceDirectoriesOutput) String() string {
3054	return awsutil.Prettify(s)
3055}
3056
3057// GoString returns the string representation
3058func (s DescribeWorkspaceDirectoriesOutput) GoString() string {
3059	return s.String()
3060}
3061
3062// SetDirectories sets the Directories field's value.
3063func (s *DescribeWorkspaceDirectoriesOutput) SetDirectories(v []*WorkspaceDirectory) *DescribeWorkspaceDirectoriesOutput {
3064	s.Directories = v
3065	return s
3066}
3067
3068// SetNextToken sets the NextToken field's value.
3069func (s *DescribeWorkspaceDirectoriesOutput) SetNextToken(v string) *DescribeWorkspaceDirectoriesOutput {
3070	s.NextToken = &v
3071	return s
3072}
3073
3074type DescribeWorkspacesConnectionStatusInput struct {
3075	_ struct{} `type:"structure"`
3076
3077	// The token for the next set of results. (You received this token from a previous
3078	// call.)
3079	NextToken *string `min:"1" type:"string"`
3080
3081	// The identifiers of the WorkSpaces. You can specify up to 25 WorkSpaces.
3082	WorkspaceIds []*string `min:"1" type:"list"`
3083}
3084
3085// String returns the string representation
3086func (s DescribeWorkspacesConnectionStatusInput) String() string {
3087	return awsutil.Prettify(s)
3088}
3089
3090// GoString returns the string representation
3091func (s DescribeWorkspacesConnectionStatusInput) GoString() string {
3092	return s.String()
3093}
3094
3095// Validate inspects the fields of the type to determine if they are valid.
3096func (s *DescribeWorkspacesConnectionStatusInput) Validate() error {
3097	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspacesConnectionStatusInput"}
3098	if s.NextToken != nil && len(*s.NextToken) < 1 {
3099		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3100	}
3101	if s.WorkspaceIds != nil && len(s.WorkspaceIds) < 1 {
3102		invalidParams.Add(request.NewErrParamMinLen("WorkspaceIds", 1))
3103	}
3104
3105	if invalidParams.Len() > 0 {
3106		return invalidParams
3107	}
3108	return nil
3109}
3110
3111// SetNextToken sets the NextToken field's value.
3112func (s *DescribeWorkspacesConnectionStatusInput) SetNextToken(v string) *DescribeWorkspacesConnectionStatusInput {
3113	s.NextToken = &v
3114	return s
3115}
3116
3117// SetWorkspaceIds sets the WorkspaceIds field's value.
3118func (s *DescribeWorkspacesConnectionStatusInput) SetWorkspaceIds(v []*string) *DescribeWorkspacesConnectionStatusInput {
3119	s.WorkspaceIds = v
3120	return s
3121}
3122
3123type DescribeWorkspacesConnectionStatusOutput struct {
3124	_ struct{} `type:"structure"`
3125
3126	// The token to use to retrieve the next set of results, or null if there are
3127	// no more results available.
3128	NextToken *string `min:"1" type:"string"`
3129
3130	// Information about the connection status of the WorkSpace.
3131	WorkspacesConnectionStatus []*WorkspaceConnectionStatus `type:"list"`
3132}
3133
3134// String returns the string representation
3135func (s DescribeWorkspacesConnectionStatusOutput) String() string {
3136	return awsutil.Prettify(s)
3137}
3138
3139// GoString returns the string representation
3140func (s DescribeWorkspacesConnectionStatusOutput) GoString() string {
3141	return s.String()
3142}
3143
3144// SetNextToken sets the NextToken field's value.
3145func (s *DescribeWorkspacesConnectionStatusOutput) SetNextToken(v string) *DescribeWorkspacesConnectionStatusOutput {
3146	s.NextToken = &v
3147	return s
3148}
3149
3150// SetWorkspacesConnectionStatus sets the WorkspacesConnectionStatus field's value.
3151func (s *DescribeWorkspacesConnectionStatusOutput) SetWorkspacesConnectionStatus(v []*WorkspaceConnectionStatus) *DescribeWorkspacesConnectionStatusOutput {
3152	s.WorkspacesConnectionStatus = v
3153	return s
3154}
3155
3156type DescribeWorkspacesInput struct {
3157	_ struct{} `type:"structure"`
3158
3159	// The ID of the bundle. All WorkSpaces that are created from this bundle are
3160	// retrieved. This parameter cannot be combined with any other filter.
3161	BundleId *string `type:"string"`
3162
3163	// The ID of the directory. In addition, you can optionally specify a specific
3164	// directory user (see UserName). This parameter cannot be combined with any
3165	// other filter.
3166	DirectoryId *string `type:"string"`
3167
3168	// The maximum number of items to return.
3169	Limit *int64 `min:"1" type:"integer"`
3170
3171	// The token for the next set of results. (You received this token from a previous
3172	// call.)
3173	NextToken *string `min:"1" type:"string"`
3174
3175	// The name of the directory user. You must specify this parameter with DirectoryId.
3176	UserName *string `min:"1" type:"string"`
3177
3178	// The IDs of the WorkSpaces. This parameter cannot be combined with any other
3179	// filter.
3180	//
3181	// Because the CreateWorkspaces operation is asynchronous, the identifier it
3182	// returns is not immediately available. If you immediately call DescribeWorkspaces
3183	// with this identifier, no information is returned.
3184	WorkspaceIds []*string `min:"1" type:"list"`
3185}
3186
3187// String returns the string representation
3188func (s DescribeWorkspacesInput) String() string {
3189	return awsutil.Prettify(s)
3190}
3191
3192// GoString returns the string representation
3193func (s DescribeWorkspacesInput) GoString() string {
3194	return s.String()
3195}
3196
3197// Validate inspects the fields of the type to determine if they are valid.
3198func (s *DescribeWorkspacesInput) Validate() error {
3199	invalidParams := request.ErrInvalidParams{Context: "DescribeWorkspacesInput"}
3200	if s.Limit != nil && *s.Limit < 1 {
3201		invalidParams.Add(request.NewErrParamMinValue("Limit", 1))
3202	}
3203	if s.NextToken != nil && len(*s.NextToken) < 1 {
3204		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
3205	}
3206	if s.UserName != nil && len(*s.UserName) < 1 {
3207		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
3208	}
3209	if s.WorkspaceIds != nil && len(s.WorkspaceIds) < 1 {
3210		invalidParams.Add(request.NewErrParamMinLen("WorkspaceIds", 1))
3211	}
3212
3213	if invalidParams.Len() > 0 {
3214		return invalidParams
3215	}
3216	return nil
3217}
3218
3219// SetBundleId sets the BundleId field's value.
3220func (s *DescribeWorkspacesInput) SetBundleId(v string) *DescribeWorkspacesInput {
3221	s.BundleId = &v
3222	return s
3223}
3224
3225// SetDirectoryId sets the DirectoryId field's value.
3226func (s *DescribeWorkspacesInput) SetDirectoryId(v string) *DescribeWorkspacesInput {
3227	s.DirectoryId = &v
3228	return s
3229}
3230
3231// SetLimit sets the Limit field's value.
3232func (s *DescribeWorkspacesInput) SetLimit(v int64) *DescribeWorkspacesInput {
3233	s.Limit = &v
3234	return s
3235}
3236
3237// SetNextToken sets the NextToken field's value.
3238func (s *DescribeWorkspacesInput) SetNextToken(v string) *DescribeWorkspacesInput {
3239	s.NextToken = &v
3240	return s
3241}
3242
3243// SetUserName sets the UserName field's value.
3244func (s *DescribeWorkspacesInput) SetUserName(v string) *DescribeWorkspacesInput {
3245	s.UserName = &v
3246	return s
3247}
3248
3249// SetWorkspaceIds sets the WorkspaceIds field's value.
3250func (s *DescribeWorkspacesInput) SetWorkspaceIds(v []*string) *DescribeWorkspacesInput {
3251	s.WorkspaceIds = v
3252	return s
3253}
3254
3255type DescribeWorkspacesOutput struct {
3256	_ struct{} `type:"structure"`
3257
3258	// The token to use to retrieve the next set of results, or null if there are
3259	// no more results available. This token is valid for one day and must be used
3260	// within that time frame.
3261	NextToken *string `min:"1" type:"string"`
3262
3263	// Information about the WorkSpaces.
3264	//
3265	// Because CreateWorkspaces is an asynchronous operation, some of the returned
3266	// information could be incomplete.
3267	Workspaces []*Workspace `type:"list"`
3268}
3269
3270// String returns the string representation
3271func (s DescribeWorkspacesOutput) String() string {
3272	return awsutil.Prettify(s)
3273}
3274
3275// GoString returns the string representation
3276func (s DescribeWorkspacesOutput) GoString() string {
3277	return s.String()
3278}
3279
3280// SetNextToken sets the NextToken field's value.
3281func (s *DescribeWorkspacesOutput) SetNextToken(v string) *DescribeWorkspacesOutput {
3282	s.NextToken = &v
3283	return s
3284}
3285
3286// SetWorkspaces sets the Workspaces field's value.
3287func (s *DescribeWorkspacesOutput) SetWorkspaces(v []*Workspace) *DescribeWorkspacesOutput {
3288	s.Workspaces = v
3289	return s
3290}
3291
3292type DisassociateIpGroupsInput struct {
3293	_ struct{} `type:"structure"`
3294
3295	// The ID of the directory.
3296	//
3297	// DirectoryId is a required field
3298	DirectoryId *string `type:"string" required:"true"`
3299
3300	// The IDs of one or more IP access control groups.
3301	//
3302	// GroupIds is a required field
3303	GroupIds []*string `type:"list" required:"true"`
3304}
3305
3306// String returns the string representation
3307func (s DisassociateIpGroupsInput) String() string {
3308	return awsutil.Prettify(s)
3309}
3310
3311// GoString returns the string representation
3312func (s DisassociateIpGroupsInput) GoString() string {
3313	return s.String()
3314}
3315
3316// Validate inspects the fields of the type to determine if they are valid.
3317func (s *DisassociateIpGroupsInput) Validate() error {
3318	invalidParams := request.ErrInvalidParams{Context: "DisassociateIpGroupsInput"}
3319	if s.DirectoryId == nil {
3320		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
3321	}
3322	if s.GroupIds == nil {
3323		invalidParams.Add(request.NewErrParamRequired("GroupIds"))
3324	}
3325
3326	if invalidParams.Len() > 0 {
3327		return invalidParams
3328	}
3329	return nil
3330}
3331
3332// SetDirectoryId sets the DirectoryId field's value.
3333func (s *DisassociateIpGroupsInput) SetDirectoryId(v string) *DisassociateIpGroupsInput {
3334	s.DirectoryId = &v
3335	return s
3336}
3337
3338// SetGroupIds sets the GroupIds field's value.
3339func (s *DisassociateIpGroupsInput) SetGroupIds(v []*string) *DisassociateIpGroupsInput {
3340	s.GroupIds = v
3341	return s
3342}
3343
3344type DisassociateIpGroupsOutput struct {
3345	_ struct{} `type:"structure"`
3346}
3347
3348// String returns the string representation
3349func (s DisassociateIpGroupsOutput) String() string {
3350	return awsutil.Prettify(s)
3351}
3352
3353// GoString returns the string representation
3354func (s DisassociateIpGroupsOutput) GoString() string {
3355	return s.String()
3356}
3357
3358// Information about a WorkSpace that could not be created.
3359type FailedCreateWorkspaceRequest struct {
3360	_ struct{} `type:"structure"`
3361
3362	// The error code.
3363	ErrorCode *string `type:"string"`
3364
3365	// The textual error message.
3366	ErrorMessage *string `type:"string"`
3367
3368	// Information about the WorkSpace.
3369	WorkspaceRequest *WorkspaceRequest `type:"structure"`
3370}
3371
3372// String returns the string representation
3373func (s FailedCreateWorkspaceRequest) String() string {
3374	return awsutil.Prettify(s)
3375}
3376
3377// GoString returns the string representation
3378func (s FailedCreateWorkspaceRequest) GoString() string {
3379	return s.String()
3380}
3381
3382// SetErrorCode sets the ErrorCode field's value.
3383func (s *FailedCreateWorkspaceRequest) SetErrorCode(v string) *FailedCreateWorkspaceRequest {
3384	s.ErrorCode = &v
3385	return s
3386}
3387
3388// SetErrorMessage sets the ErrorMessage field's value.
3389func (s *FailedCreateWorkspaceRequest) SetErrorMessage(v string) *FailedCreateWorkspaceRequest {
3390	s.ErrorMessage = &v
3391	return s
3392}
3393
3394// SetWorkspaceRequest sets the WorkspaceRequest field's value.
3395func (s *FailedCreateWorkspaceRequest) SetWorkspaceRequest(v *WorkspaceRequest) *FailedCreateWorkspaceRequest {
3396	s.WorkspaceRequest = v
3397	return s
3398}
3399
3400// Information about a WorkSpace that could not be rebooted (RebootWorkspaces),
3401// rebuilt (RebuildWorkspaces), terminated (TerminateWorkspaces), started (StartWorkspaces),
3402// or stopped (StopWorkspaces).
3403type FailedWorkspaceChangeRequest struct {
3404	_ struct{} `type:"structure"`
3405
3406	// The error code.
3407	ErrorCode *string `type:"string"`
3408
3409	// The textual error message.
3410	ErrorMessage *string `type:"string"`
3411
3412	// The identifier of the WorkSpace.
3413	WorkspaceId *string `type:"string"`
3414}
3415
3416// String returns the string representation
3417func (s FailedWorkspaceChangeRequest) String() string {
3418	return awsutil.Prettify(s)
3419}
3420
3421// GoString returns the string representation
3422func (s FailedWorkspaceChangeRequest) GoString() string {
3423	return s.String()
3424}
3425
3426// SetErrorCode sets the ErrorCode field's value.
3427func (s *FailedWorkspaceChangeRequest) SetErrorCode(v string) *FailedWorkspaceChangeRequest {
3428	s.ErrorCode = &v
3429	return s
3430}
3431
3432// SetErrorMessage sets the ErrorMessage field's value.
3433func (s *FailedWorkspaceChangeRequest) SetErrorMessage(v string) *FailedWorkspaceChangeRequest {
3434	s.ErrorMessage = &v
3435	return s
3436}
3437
3438// SetWorkspaceId sets the WorkspaceId field's value.
3439func (s *FailedWorkspaceChangeRequest) SetWorkspaceId(v string) *FailedWorkspaceChangeRequest {
3440	s.WorkspaceId = &v
3441	return s
3442}
3443
3444// Information about an IP access control group.
3445type IpGroup struct {
3446	_ struct{} `type:"structure"`
3447
3448	// The description of the group.
3449	GroupDesc *string `locationName:"groupDesc" type:"string"`
3450
3451	// The ID of the group.
3452	GroupId *string `locationName:"groupId" type:"string"`
3453
3454	// The name of the group.
3455	GroupName *string `locationName:"groupName" type:"string"`
3456
3457	// The rules.
3458	UserRules []*IpRuleItem `locationName:"userRules" type:"list"`
3459}
3460
3461// String returns the string representation
3462func (s IpGroup) String() string {
3463	return awsutil.Prettify(s)
3464}
3465
3466// GoString returns the string representation
3467func (s IpGroup) GoString() string {
3468	return s.String()
3469}
3470
3471// SetGroupDesc sets the GroupDesc field's value.
3472func (s *IpGroup) SetGroupDesc(v string) *IpGroup {
3473	s.GroupDesc = &v
3474	return s
3475}
3476
3477// SetGroupId sets the GroupId field's value.
3478func (s *IpGroup) SetGroupId(v string) *IpGroup {
3479	s.GroupId = &v
3480	return s
3481}
3482
3483// SetGroupName sets the GroupName field's value.
3484func (s *IpGroup) SetGroupName(v string) *IpGroup {
3485	s.GroupName = &v
3486	return s
3487}
3488
3489// SetUserRules sets the UserRules field's value.
3490func (s *IpGroup) SetUserRules(v []*IpRuleItem) *IpGroup {
3491	s.UserRules = v
3492	return s
3493}
3494
3495// Information about a rule for an IP access control group.
3496type IpRuleItem struct {
3497	_ struct{} `type:"structure"`
3498
3499	// The IP address range, in CIDR notation.
3500	IpRule *string `locationName:"ipRule" type:"string"`
3501
3502	// The description.
3503	RuleDesc *string `locationName:"ruleDesc" type:"string"`
3504}
3505
3506// String returns the string representation
3507func (s IpRuleItem) String() string {
3508	return awsutil.Prettify(s)
3509}
3510
3511// GoString returns the string representation
3512func (s IpRuleItem) GoString() string {
3513	return s.String()
3514}
3515
3516// SetIpRule sets the IpRule field's value.
3517func (s *IpRuleItem) SetIpRule(v string) *IpRuleItem {
3518	s.IpRule = &v
3519	return s
3520}
3521
3522// SetRuleDesc sets the RuleDesc field's value.
3523func (s *IpRuleItem) SetRuleDesc(v string) *IpRuleItem {
3524	s.RuleDesc = &v
3525	return s
3526}
3527
3528// Information about a WorkSpace modification.
3529type ModificationState struct {
3530	_ struct{} `type:"structure"`
3531
3532	// The resource.
3533	Resource *string `type:"string" enum:"ModificationResourceEnum"`
3534
3535	// The modification state.
3536	State *string `type:"string" enum:"ModificationStateEnum"`
3537}
3538
3539// String returns the string representation
3540func (s ModificationState) String() string {
3541	return awsutil.Prettify(s)
3542}
3543
3544// GoString returns the string representation
3545func (s ModificationState) GoString() string {
3546	return s.String()
3547}
3548
3549// SetResource sets the Resource field's value.
3550func (s *ModificationState) SetResource(v string) *ModificationState {
3551	s.Resource = &v
3552	return s
3553}
3554
3555// SetState sets the State field's value.
3556func (s *ModificationState) SetState(v string) *ModificationState {
3557	s.State = &v
3558	return s
3559}
3560
3561type ModifyWorkspacePropertiesInput struct {
3562	_ struct{} `type:"structure"`
3563
3564	// The ID of the WorkSpace.
3565	//
3566	// WorkspaceId is a required field
3567	WorkspaceId *string `type:"string" required:"true"`
3568
3569	// The properties of the WorkSpace.
3570	//
3571	// WorkspaceProperties is a required field
3572	WorkspaceProperties *WorkspaceProperties `type:"structure" required:"true"`
3573}
3574
3575// String returns the string representation
3576func (s ModifyWorkspacePropertiesInput) String() string {
3577	return awsutil.Prettify(s)
3578}
3579
3580// GoString returns the string representation
3581func (s ModifyWorkspacePropertiesInput) GoString() string {
3582	return s.String()
3583}
3584
3585// Validate inspects the fields of the type to determine if they are valid.
3586func (s *ModifyWorkspacePropertiesInput) Validate() error {
3587	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspacePropertiesInput"}
3588	if s.WorkspaceId == nil {
3589		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
3590	}
3591	if s.WorkspaceProperties == nil {
3592		invalidParams.Add(request.NewErrParamRequired("WorkspaceProperties"))
3593	}
3594
3595	if invalidParams.Len() > 0 {
3596		return invalidParams
3597	}
3598	return nil
3599}
3600
3601// SetWorkspaceId sets the WorkspaceId field's value.
3602func (s *ModifyWorkspacePropertiesInput) SetWorkspaceId(v string) *ModifyWorkspacePropertiesInput {
3603	s.WorkspaceId = &v
3604	return s
3605}
3606
3607// SetWorkspaceProperties sets the WorkspaceProperties field's value.
3608func (s *ModifyWorkspacePropertiesInput) SetWorkspaceProperties(v *WorkspaceProperties) *ModifyWorkspacePropertiesInput {
3609	s.WorkspaceProperties = v
3610	return s
3611}
3612
3613type ModifyWorkspacePropertiesOutput struct {
3614	_ struct{} `type:"structure"`
3615}
3616
3617// String returns the string representation
3618func (s ModifyWorkspacePropertiesOutput) String() string {
3619	return awsutil.Prettify(s)
3620}
3621
3622// GoString returns the string representation
3623func (s ModifyWorkspacePropertiesOutput) GoString() string {
3624	return s.String()
3625}
3626
3627type ModifyWorkspaceStateInput struct {
3628	_ struct{} `type:"structure"`
3629
3630	// The ID of the WorkSpace.
3631	//
3632	// WorkspaceId is a required field
3633	WorkspaceId *string `type:"string" required:"true"`
3634
3635	// The WorkSpace state.
3636	//
3637	// WorkspaceState is a required field
3638	WorkspaceState *string `type:"string" required:"true" enum:"TargetWorkspaceState"`
3639}
3640
3641// String returns the string representation
3642func (s ModifyWorkspaceStateInput) String() string {
3643	return awsutil.Prettify(s)
3644}
3645
3646// GoString returns the string representation
3647func (s ModifyWorkspaceStateInput) GoString() string {
3648	return s.String()
3649}
3650
3651// Validate inspects the fields of the type to determine if they are valid.
3652func (s *ModifyWorkspaceStateInput) Validate() error {
3653	invalidParams := request.ErrInvalidParams{Context: "ModifyWorkspaceStateInput"}
3654	if s.WorkspaceId == nil {
3655		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
3656	}
3657	if s.WorkspaceState == nil {
3658		invalidParams.Add(request.NewErrParamRequired("WorkspaceState"))
3659	}
3660
3661	if invalidParams.Len() > 0 {
3662		return invalidParams
3663	}
3664	return nil
3665}
3666
3667// SetWorkspaceId sets the WorkspaceId field's value.
3668func (s *ModifyWorkspaceStateInput) SetWorkspaceId(v string) *ModifyWorkspaceStateInput {
3669	s.WorkspaceId = &v
3670	return s
3671}
3672
3673// SetWorkspaceState sets the WorkspaceState field's value.
3674func (s *ModifyWorkspaceStateInput) SetWorkspaceState(v string) *ModifyWorkspaceStateInput {
3675	s.WorkspaceState = &v
3676	return s
3677}
3678
3679type ModifyWorkspaceStateOutput struct {
3680	_ struct{} `type:"structure"`
3681}
3682
3683// String returns the string representation
3684func (s ModifyWorkspaceStateOutput) String() string {
3685	return awsutil.Prettify(s)
3686}
3687
3688// GoString returns the string representation
3689func (s ModifyWorkspaceStateOutput) GoString() string {
3690	return s.String()
3691}
3692
3693// Information used to reboot a WorkSpace.
3694type RebootRequest struct {
3695	_ struct{} `type:"structure"`
3696
3697	// The ID of the WorkSpace.
3698	//
3699	// WorkspaceId is a required field
3700	WorkspaceId *string `type:"string" required:"true"`
3701}
3702
3703// String returns the string representation
3704func (s RebootRequest) String() string {
3705	return awsutil.Prettify(s)
3706}
3707
3708// GoString returns the string representation
3709func (s RebootRequest) GoString() string {
3710	return s.String()
3711}
3712
3713// Validate inspects the fields of the type to determine if they are valid.
3714func (s *RebootRequest) Validate() error {
3715	invalidParams := request.ErrInvalidParams{Context: "RebootRequest"}
3716	if s.WorkspaceId == nil {
3717		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
3718	}
3719
3720	if invalidParams.Len() > 0 {
3721		return invalidParams
3722	}
3723	return nil
3724}
3725
3726// SetWorkspaceId sets the WorkspaceId field's value.
3727func (s *RebootRequest) SetWorkspaceId(v string) *RebootRequest {
3728	s.WorkspaceId = &v
3729	return s
3730}
3731
3732type RebootWorkspacesInput struct {
3733	_ struct{} `type:"structure"`
3734
3735	// The WorkSpaces to reboot. You can specify up to 25 WorkSpaces.
3736	//
3737	// RebootWorkspaceRequests is a required field
3738	RebootWorkspaceRequests []*RebootRequest `min:"1" type:"list" required:"true"`
3739}
3740
3741// String returns the string representation
3742func (s RebootWorkspacesInput) String() string {
3743	return awsutil.Prettify(s)
3744}
3745
3746// GoString returns the string representation
3747func (s RebootWorkspacesInput) GoString() string {
3748	return s.String()
3749}
3750
3751// Validate inspects the fields of the type to determine if they are valid.
3752func (s *RebootWorkspacesInput) Validate() error {
3753	invalidParams := request.ErrInvalidParams{Context: "RebootWorkspacesInput"}
3754	if s.RebootWorkspaceRequests == nil {
3755		invalidParams.Add(request.NewErrParamRequired("RebootWorkspaceRequests"))
3756	}
3757	if s.RebootWorkspaceRequests != nil && len(s.RebootWorkspaceRequests) < 1 {
3758		invalidParams.Add(request.NewErrParamMinLen("RebootWorkspaceRequests", 1))
3759	}
3760	if s.RebootWorkspaceRequests != nil {
3761		for i, v := range s.RebootWorkspaceRequests {
3762			if v == nil {
3763				continue
3764			}
3765			if err := v.Validate(); err != nil {
3766				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RebootWorkspaceRequests", i), err.(request.ErrInvalidParams))
3767			}
3768		}
3769	}
3770
3771	if invalidParams.Len() > 0 {
3772		return invalidParams
3773	}
3774	return nil
3775}
3776
3777// SetRebootWorkspaceRequests sets the RebootWorkspaceRequests field's value.
3778func (s *RebootWorkspacesInput) SetRebootWorkspaceRequests(v []*RebootRequest) *RebootWorkspacesInput {
3779	s.RebootWorkspaceRequests = v
3780	return s
3781}
3782
3783type RebootWorkspacesOutput struct {
3784	_ struct{} `type:"structure"`
3785
3786	// Information about the WorkSpaces that could not be rebooted.
3787	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
3788}
3789
3790// String returns the string representation
3791func (s RebootWorkspacesOutput) String() string {
3792	return awsutil.Prettify(s)
3793}
3794
3795// GoString returns the string representation
3796func (s RebootWorkspacesOutput) GoString() string {
3797	return s.String()
3798}
3799
3800// SetFailedRequests sets the FailedRequests field's value.
3801func (s *RebootWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *RebootWorkspacesOutput {
3802	s.FailedRequests = v
3803	return s
3804}
3805
3806// Information used to rebuild a WorkSpace.
3807type RebuildRequest struct {
3808	_ struct{} `type:"structure"`
3809
3810	// The ID of the WorkSpace.
3811	//
3812	// WorkspaceId is a required field
3813	WorkspaceId *string `type:"string" required:"true"`
3814}
3815
3816// String returns the string representation
3817func (s RebuildRequest) String() string {
3818	return awsutil.Prettify(s)
3819}
3820
3821// GoString returns the string representation
3822func (s RebuildRequest) GoString() string {
3823	return s.String()
3824}
3825
3826// Validate inspects the fields of the type to determine if they are valid.
3827func (s *RebuildRequest) Validate() error {
3828	invalidParams := request.ErrInvalidParams{Context: "RebuildRequest"}
3829	if s.WorkspaceId == nil {
3830		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
3831	}
3832
3833	if invalidParams.Len() > 0 {
3834		return invalidParams
3835	}
3836	return nil
3837}
3838
3839// SetWorkspaceId sets the WorkspaceId field's value.
3840func (s *RebuildRequest) SetWorkspaceId(v string) *RebuildRequest {
3841	s.WorkspaceId = &v
3842	return s
3843}
3844
3845type RebuildWorkspacesInput struct {
3846	_ struct{} `type:"structure"`
3847
3848	// The WorkSpace to rebuild. You can specify a single WorkSpace.
3849	//
3850	// RebuildWorkspaceRequests is a required field
3851	RebuildWorkspaceRequests []*RebuildRequest `min:"1" type:"list" required:"true"`
3852}
3853
3854// String returns the string representation
3855func (s RebuildWorkspacesInput) String() string {
3856	return awsutil.Prettify(s)
3857}
3858
3859// GoString returns the string representation
3860func (s RebuildWorkspacesInput) GoString() string {
3861	return s.String()
3862}
3863
3864// Validate inspects the fields of the type to determine if they are valid.
3865func (s *RebuildWorkspacesInput) Validate() error {
3866	invalidParams := request.ErrInvalidParams{Context: "RebuildWorkspacesInput"}
3867	if s.RebuildWorkspaceRequests == nil {
3868		invalidParams.Add(request.NewErrParamRequired("RebuildWorkspaceRequests"))
3869	}
3870	if s.RebuildWorkspaceRequests != nil && len(s.RebuildWorkspaceRequests) < 1 {
3871		invalidParams.Add(request.NewErrParamMinLen("RebuildWorkspaceRequests", 1))
3872	}
3873	if s.RebuildWorkspaceRequests != nil {
3874		for i, v := range s.RebuildWorkspaceRequests {
3875			if v == nil {
3876				continue
3877			}
3878			if err := v.Validate(); err != nil {
3879				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RebuildWorkspaceRequests", i), err.(request.ErrInvalidParams))
3880			}
3881		}
3882	}
3883
3884	if invalidParams.Len() > 0 {
3885		return invalidParams
3886	}
3887	return nil
3888}
3889
3890// SetRebuildWorkspaceRequests sets the RebuildWorkspaceRequests field's value.
3891func (s *RebuildWorkspacesInput) SetRebuildWorkspaceRequests(v []*RebuildRequest) *RebuildWorkspacesInput {
3892	s.RebuildWorkspaceRequests = v
3893	return s
3894}
3895
3896type RebuildWorkspacesOutput struct {
3897	_ struct{} `type:"structure"`
3898
3899	// Information about the WorkSpace if it could not be rebuilt.
3900	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
3901}
3902
3903// String returns the string representation
3904func (s RebuildWorkspacesOutput) String() string {
3905	return awsutil.Prettify(s)
3906}
3907
3908// GoString returns the string representation
3909func (s RebuildWorkspacesOutput) GoString() string {
3910	return s.String()
3911}
3912
3913// SetFailedRequests sets the FailedRequests field's value.
3914func (s *RebuildWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *RebuildWorkspacesOutput {
3915	s.FailedRequests = v
3916	return s
3917}
3918
3919type RevokeIpRulesInput struct {
3920	_ struct{} `type:"structure"`
3921
3922	// The ID of the group.
3923	//
3924	// GroupId is a required field
3925	GroupId *string `type:"string" required:"true"`
3926
3927	// The rules to remove from the group.
3928	//
3929	// UserRules is a required field
3930	UserRules []*string `type:"list" required:"true"`
3931}
3932
3933// String returns the string representation
3934func (s RevokeIpRulesInput) String() string {
3935	return awsutil.Prettify(s)
3936}
3937
3938// GoString returns the string representation
3939func (s RevokeIpRulesInput) GoString() string {
3940	return s.String()
3941}
3942
3943// Validate inspects the fields of the type to determine if they are valid.
3944func (s *RevokeIpRulesInput) Validate() error {
3945	invalidParams := request.ErrInvalidParams{Context: "RevokeIpRulesInput"}
3946	if s.GroupId == nil {
3947		invalidParams.Add(request.NewErrParamRequired("GroupId"))
3948	}
3949	if s.UserRules == nil {
3950		invalidParams.Add(request.NewErrParamRequired("UserRules"))
3951	}
3952
3953	if invalidParams.Len() > 0 {
3954		return invalidParams
3955	}
3956	return nil
3957}
3958
3959// SetGroupId sets the GroupId field's value.
3960func (s *RevokeIpRulesInput) SetGroupId(v string) *RevokeIpRulesInput {
3961	s.GroupId = &v
3962	return s
3963}
3964
3965// SetUserRules sets the UserRules field's value.
3966func (s *RevokeIpRulesInput) SetUserRules(v []*string) *RevokeIpRulesInput {
3967	s.UserRules = v
3968	return s
3969}
3970
3971type RevokeIpRulesOutput struct {
3972	_ struct{} `type:"structure"`
3973}
3974
3975// String returns the string representation
3976func (s RevokeIpRulesOutput) String() string {
3977	return awsutil.Prettify(s)
3978}
3979
3980// GoString returns the string representation
3981func (s RevokeIpRulesOutput) GoString() string {
3982	return s.String()
3983}
3984
3985// Information about the root volume for a WorkSpace bundle.
3986type RootStorage struct {
3987	_ struct{} `type:"structure"`
3988
3989	// The size of the root volume.
3990	Capacity *string `min:"1" type:"string"`
3991}
3992
3993// String returns the string representation
3994func (s RootStorage) String() string {
3995	return awsutil.Prettify(s)
3996}
3997
3998// GoString returns the string representation
3999func (s RootStorage) GoString() string {
4000	return s.String()
4001}
4002
4003// SetCapacity sets the Capacity field's value.
4004func (s *RootStorage) SetCapacity(v string) *RootStorage {
4005	s.Capacity = &v
4006	return s
4007}
4008
4009// Information used to start a WorkSpace.
4010type StartRequest struct {
4011	_ struct{} `type:"structure"`
4012
4013	// The ID of the WorkSpace.
4014	WorkspaceId *string `type:"string"`
4015}
4016
4017// String returns the string representation
4018func (s StartRequest) String() string {
4019	return awsutil.Prettify(s)
4020}
4021
4022// GoString returns the string representation
4023func (s StartRequest) GoString() string {
4024	return s.String()
4025}
4026
4027// SetWorkspaceId sets the WorkspaceId field's value.
4028func (s *StartRequest) SetWorkspaceId(v string) *StartRequest {
4029	s.WorkspaceId = &v
4030	return s
4031}
4032
4033type StartWorkspacesInput struct {
4034	_ struct{} `type:"structure"`
4035
4036	// The WorkSpaces to start. You can specify up to 25 WorkSpaces.
4037	//
4038	// StartWorkspaceRequests is a required field
4039	StartWorkspaceRequests []*StartRequest `min:"1" type:"list" required:"true"`
4040}
4041
4042// String returns the string representation
4043func (s StartWorkspacesInput) String() string {
4044	return awsutil.Prettify(s)
4045}
4046
4047// GoString returns the string representation
4048func (s StartWorkspacesInput) GoString() string {
4049	return s.String()
4050}
4051
4052// Validate inspects the fields of the type to determine if they are valid.
4053func (s *StartWorkspacesInput) Validate() error {
4054	invalidParams := request.ErrInvalidParams{Context: "StartWorkspacesInput"}
4055	if s.StartWorkspaceRequests == nil {
4056		invalidParams.Add(request.NewErrParamRequired("StartWorkspaceRequests"))
4057	}
4058	if s.StartWorkspaceRequests != nil && len(s.StartWorkspaceRequests) < 1 {
4059		invalidParams.Add(request.NewErrParamMinLen("StartWorkspaceRequests", 1))
4060	}
4061
4062	if invalidParams.Len() > 0 {
4063		return invalidParams
4064	}
4065	return nil
4066}
4067
4068// SetStartWorkspaceRequests sets the StartWorkspaceRequests field's value.
4069func (s *StartWorkspacesInput) SetStartWorkspaceRequests(v []*StartRequest) *StartWorkspacesInput {
4070	s.StartWorkspaceRequests = v
4071	return s
4072}
4073
4074type StartWorkspacesOutput struct {
4075	_ struct{} `type:"structure"`
4076
4077	// Information about the WorkSpaces that could not be started.
4078	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
4079}
4080
4081// String returns the string representation
4082func (s StartWorkspacesOutput) String() string {
4083	return awsutil.Prettify(s)
4084}
4085
4086// GoString returns the string representation
4087func (s StartWorkspacesOutput) GoString() string {
4088	return s.String()
4089}
4090
4091// SetFailedRequests sets the FailedRequests field's value.
4092func (s *StartWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *StartWorkspacesOutput {
4093	s.FailedRequests = v
4094	return s
4095}
4096
4097// Information used to stop a WorkSpace.
4098type StopRequest struct {
4099	_ struct{} `type:"structure"`
4100
4101	// The ID of the WorkSpace.
4102	WorkspaceId *string `type:"string"`
4103}
4104
4105// String returns the string representation
4106func (s StopRequest) String() string {
4107	return awsutil.Prettify(s)
4108}
4109
4110// GoString returns the string representation
4111func (s StopRequest) GoString() string {
4112	return s.String()
4113}
4114
4115// SetWorkspaceId sets the WorkspaceId field's value.
4116func (s *StopRequest) SetWorkspaceId(v string) *StopRequest {
4117	s.WorkspaceId = &v
4118	return s
4119}
4120
4121type StopWorkspacesInput struct {
4122	_ struct{} `type:"structure"`
4123
4124	// The WorkSpaces to stop. You can specify up to 25 WorkSpaces.
4125	//
4126	// StopWorkspaceRequests is a required field
4127	StopWorkspaceRequests []*StopRequest `min:"1" type:"list" required:"true"`
4128}
4129
4130// String returns the string representation
4131func (s StopWorkspacesInput) String() string {
4132	return awsutil.Prettify(s)
4133}
4134
4135// GoString returns the string representation
4136func (s StopWorkspacesInput) GoString() string {
4137	return s.String()
4138}
4139
4140// Validate inspects the fields of the type to determine if they are valid.
4141func (s *StopWorkspacesInput) Validate() error {
4142	invalidParams := request.ErrInvalidParams{Context: "StopWorkspacesInput"}
4143	if s.StopWorkspaceRequests == nil {
4144		invalidParams.Add(request.NewErrParamRequired("StopWorkspaceRequests"))
4145	}
4146	if s.StopWorkspaceRequests != nil && len(s.StopWorkspaceRequests) < 1 {
4147		invalidParams.Add(request.NewErrParamMinLen("StopWorkspaceRequests", 1))
4148	}
4149
4150	if invalidParams.Len() > 0 {
4151		return invalidParams
4152	}
4153	return nil
4154}
4155
4156// SetStopWorkspaceRequests sets the StopWorkspaceRequests field's value.
4157func (s *StopWorkspacesInput) SetStopWorkspaceRequests(v []*StopRequest) *StopWorkspacesInput {
4158	s.StopWorkspaceRequests = v
4159	return s
4160}
4161
4162type StopWorkspacesOutput struct {
4163	_ struct{} `type:"structure"`
4164
4165	// Information about the WorkSpaces that could not be stopped.
4166	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
4167}
4168
4169// String returns the string representation
4170func (s StopWorkspacesOutput) String() string {
4171	return awsutil.Prettify(s)
4172}
4173
4174// GoString returns the string representation
4175func (s StopWorkspacesOutput) GoString() string {
4176	return s.String()
4177}
4178
4179// SetFailedRequests sets the FailedRequests field's value.
4180func (s *StopWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *StopWorkspacesOutput {
4181	s.FailedRequests = v
4182	return s
4183}
4184
4185// Information about a tag.
4186type Tag struct {
4187	_ struct{} `type:"structure"`
4188
4189	// The key of the tag.
4190	//
4191	// Key is a required field
4192	Key *string `min:"1" type:"string" required:"true"`
4193
4194	// The value of the tag.
4195	Value *string `type:"string"`
4196}
4197
4198// String returns the string representation
4199func (s Tag) String() string {
4200	return awsutil.Prettify(s)
4201}
4202
4203// GoString returns the string representation
4204func (s Tag) GoString() string {
4205	return s.String()
4206}
4207
4208// Validate inspects the fields of the type to determine if they are valid.
4209func (s *Tag) Validate() error {
4210	invalidParams := request.ErrInvalidParams{Context: "Tag"}
4211	if s.Key == nil {
4212		invalidParams.Add(request.NewErrParamRequired("Key"))
4213	}
4214	if s.Key != nil && len(*s.Key) < 1 {
4215		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
4216	}
4217
4218	if invalidParams.Len() > 0 {
4219		return invalidParams
4220	}
4221	return nil
4222}
4223
4224// SetKey sets the Key field's value.
4225func (s *Tag) SetKey(v string) *Tag {
4226	s.Key = &v
4227	return s
4228}
4229
4230// SetValue sets the Value field's value.
4231func (s *Tag) SetValue(v string) *Tag {
4232	s.Value = &v
4233	return s
4234}
4235
4236// Information used to terminate a WorkSpace.
4237type TerminateRequest struct {
4238	_ struct{} `type:"structure"`
4239
4240	// The ID of the WorkSpace.
4241	//
4242	// WorkspaceId is a required field
4243	WorkspaceId *string `type:"string" required:"true"`
4244}
4245
4246// String returns the string representation
4247func (s TerminateRequest) String() string {
4248	return awsutil.Prettify(s)
4249}
4250
4251// GoString returns the string representation
4252func (s TerminateRequest) GoString() string {
4253	return s.String()
4254}
4255
4256// Validate inspects the fields of the type to determine if they are valid.
4257func (s *TerminateRequest) Validate() error {
4258	invalidParams := request.ErrInvalidParams{Context: "TerminateRequest"}
4259	if s.WorkspaceId == nil {
4260		invalidParams.Add(request.NewErrParamRequired("WorkspaceId"))
4261	}
4262
4263	if invalidParams.Len() > 0 {
4264		return invalidParams
4265	}
4266	return nil
4267}
4268
4269// SetWorkspaceId sets the WorkspaceId field's value.
4270func (s *TerminateRequest) SetWorkspaceId(v string) *TerminateRequest {
4271	s.WorkspaceId = &v
4272	return s
4273}
4274
4275type TerminateWorkspacesInput struct {
4276	_ struct{} `type:"structure"`
4277
4278	// The WorkSpaces to terminate. You can specify up to 25 WorkSpaces.
4279	//
4280	// TerminateWorkspaceRequests is a required field
4281	TerminateWorkspaceRequests []*TerminateRequest `min:"1" type:"list" required:"true"`
4282}
4283
4284// String returns the string representation
4285func (s TerminateWorkspacesInput) String() string {
4286	return awsutil.Prettify(s)
4287}
4288
4289// GoString returns the string representation
4290func (s TerminateWorkspacesInput) GoString() string {
4291	return s.String()
4292}
4293
4294// Validate inspects the fields of the type to determine if they are valid.
4295func (s *TerminateWorkspacesInput) Validate() error {
4296	invalidParams := request.ErrInvalidParams{Context: "TerminateWorkspacesInput"}
4297	if s.TerminateWorkspaceRequests == nil {
4298		invalidParams.Add(request.NewErrParamRequired("TerminateWorkspaceRequests"))
4299	}
4300	if s.TerminateWorkspaceRequests != nil && len(s.TerminateWorkspaceRequests) < 1 {
4301		invalidParams.Add(request.NewErrParamMinLen("TerminateWorkspaceRequests", 1))
4302	}
4303	if s.TerminateWorkspaceRequests != nil {
4304		for i, v := range s.TerminateWorkspaceRequests {
4305			if v == nil {
4306				continue
4307			}
4308			if err := v.Validate(); err != nil {
4309				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TerminateWorkspaceRequests", i), err.(request.ErrInvalidParams))
4310			}
4311		}
4312	}
4313
4314	if invalidParams.Len() > 0 {
4315		return invalidParams
4316	}
4317	return nil
4318}
4319
4320// SetTerminateWorkspaceRequests sets the TerminateWorkspaceRequests field's value.
4321func (s *TerminateWorkspacesInput) SetTerminateWorkspaceRequests(v []*TerminateRequest) *TerminateWorkspacesInput {
4322	s.TerminateWorkspaceRequests = v
4323	return s
4324}
4325
4326type TerminateWorkspacesOutput struct {
4327	_ struct{} `type:"structure"`
4328
4329	// Information about the WorkSpaces that could not be terminated.
4330	FailedRequests []*FailedWorkspaceChangeRequest `type:"list"`
4331}
4332
4333// String returns the string representation
4334func (s TerminateWorkspacesOutput) String() string {
4335	return awsutil.Prettify(s)
4336}
4337
4338// GoString returns the string representation
4339func (s TerminateWorkspacesOutput) GoString() string {
4340	return s.String()
4341}
4342
4343// SetFailedRequests sets the FailedRequests field's value.
4344func (s *TerminateWorkspacesOutput) SetFailedRequests(v []*FailedWorkspaceChangeRequest) *TerminateWorkspacesOutput {
4345	s.FailedRequests = v
4346	return s
4347}
4348
4349type UpdateRulesOfIpGroupInput struct {
4350	_ struct{} `type:"structure"`
4351
4352	// The ID of the group.
4353	//
4354	// GroupId is a required field
4355	GroupId *string `type:"string" required:"true"`
4356
4357	// One or more rules.
4358	//
4359	// UserRules is a required field
4360	UserRules []*IpRuleItem `type:"list" required:"true"`
4361}
4362
4363// String returns the string representation
4364func (s UpdateRulesOfIpGroupInput) String() string {
4365	return awsutil.Prettify(s)
4366}
4367
4368// GoString returns the string representation
4369func (s UpdateRulesOfIpGroupInput) GoString() string {
4370	return s.String()
4371}
4372
4373// Validate inspects the fields of the type to determine if they are valid.
4374func (s *UpdateRulesOfIpGroupInput) Validate() error {
4375	invalidParams := request.ErrInvalidParams{Context: "UpdateRulesOfIpGroupInput"}
4376	if s.GroupId == nil {
4377		invalidParams.Add(request.NewErrParamRequired("GroupId"))
4378	}
4379	if s.UserRules == nil {
4380		invalidParams.Add(request.NewErrParamRequired("UserRules"))
4381	}
4382
4383	if invalidParams.Len() > 0 {
4384		return invalidParams
4385	}
4386	return nil
4387}
4388
4389// SetGroupId sets the GroupId field's value.
4390func (s *UpdateRulesOfIpGroupInput) SetGroupId(v string) *UpdateRulesOfIpGroupInput {
4391	s.GroupId = &v
4392	return s
4393}
4394
4395// SetUserRules sets the UserRules field's value.
4396func (s *UpdateRulesOfIpGroupInput) SetUserRules(v []*IpRuleItem) *UpdateRulesOfIpGroupInput {
4397	s.UserRules = v
4398	return s
4399}
4400
4401type UpdateRulesOfIpGroupOutput struct {
4402	_ struct{} `type:"structure"`
4403}
4404
4405// String returns the string representation
4406func (s UpdateRulesOfIpGroupOutput) String() string {
4407	return awsutil.Prettify(s)
4408}
4409
4410// GoString returns the string representation
4411func (s UpdateRulesOfIpGroupOutput) GoString() string {
4412	return s.String()
4413}
4414
4415// Information about the user storage for a WorkSpace bundle.
4416type UserStorage struct {
4417	_ struct{} `type:"structure"`
4418
4419	// The size of the user storage.
4420	Capacity *string `min:"1" type:"string"`
4421}
4422
4423// String returns the string representation
4424func (s UserStorage) String() string {
4425	return awsutil.Prettify(s)
4426}
4427
4428// GoString returns the string representation
4429func (s UserStorage) GoString() string {
4430	return s.String()
4431}
4432
4433// SetCapacity sets the Capacity field's value.
4434func (s *UserStorage) SetCapacity(v string) *UserStorage {
4435	s.Capacity = &v
4436	return s
4437}
4438
4439// Information about a WorkSpace.
4440type Workspace struct {
4441	_ struct{} `type:"structure"`
4442
4443	// The identifier of the bundle used to create the WorkSpace.
4444	BundleId *string `type:"string"`
4445
4446	// The name of the WorkSpace, as seen by the operating system.
4447	ComputerName *string `type:"string"`
4448
4449	// The identifier of the AWS Directory Service directory for the WorkSpace.
4450	DirectoryId *string `type:"string"`
4451
4452	// If the WorkSpace could not be created, contains the error code.
4453	ErrorCode *string `type:"string"`
4454
4455	// If the WorkSpace could not be created, contains a textual error message that
4456	// describes the failure.
4457	ErrorMessage *string `type:"string"`
4458
4459	// The IP address of the WorkSpace.
4460	IpAddress *string `type:"string"`
4461
4462	// The modification states of the WorkSpace.
4463	ModificationStates []*ModificationState `type:"list"`
4464
4465	// Indicates whether the data stored on the root volume is encrypted.
4466	RootVolumeEncryptionEnabled *bool `type:"boolean"`
4467
4468	// The operational state of the WorkSpace.
4469	State *string `type:"string" enum:"WorkspaceState"`
4470
4471	// The identifier of the subnet for the WorkSpace.
4472	SubnetId *string `type:"string"`
4473
4474	// The user for the WorkSpace.
4475	UserName *string `min:"1" type:"string"`
4476
4477	// Indicates whether the data stored on the user volume is encrypted.
4478	UserVolumeEncryptionEnabled *bool `type:"boolean"`
4479
4480	// The KMS key used to encrypt data stored on your WorkSpace.
4481	VolumeEncryptionKey *string `type:"string"`
4482
4483	// The identifier of the WorkSpace.
4484	WorkspaceId *string `type:"string"`
4485
4486	// The properties of the WorkSpace.
4487	WorkspaceProperties *WorkspaceProperties `type:"structure"`
4488}
4489
4490// String returns the string representation
4491func (s Workspace) String() string {
4492	return awsutil.Prettify(s)
4493}
4494
4495// GoString returns the string representation
4496func (s Workspace) GoString() string {
4497	return s.String()
4498}
4499
4500// SetBundleId sets the BundleId field's value.
4501func (s *Workspace) SetBundleId(v string) *Workspace {
4502	s.BundleId = &v
4503	return s
4504}
4505
4506// SetComputerName sets the ComputerName field's value.
4507func (s *Workspace) SetComputerName(v string) *Workspace {
4508	s.ComputerName = &v
4509	return s
4510}
4511
4512// SetDirectoryId sets the DirectoryId field's value.
4513func (s *Workspace) SetDirectoryId(v string) *Workspace {
4514	s.DirectoryId = &v
4515	return s
4516}
4517
4518// SetErrorCode sets the ErrorCode field's value.
4519func (s *Workspace) SetErrorCode(v string) *Workspace {
4520	s.ErrorCode = &v
4521	return s
4522}
4523
4524// SetErrorMessage sets the ErrorMessage field's value.
4525func (s *Workspace) SetErrorMessage(v string) *Workspace {
4526	s.ErrorMessage = &v
4527	return s
4528}
4529
4530// SetIpAddress sets the IpAddress field's value.
4531func (s *Workspace) SetIpAddress(v string) *Workspace {
4532	s.IpAddress = &v
4533	return s
4534}
4535
4536// SetModificationStates sets the ModificationStates field's value.
4537func (s *Workspace) SetModificationStates(v []*ModificationState) *Workspace {
4538	s.ModificationStates = v
4539	return s
4540}
4541
4542// SetRootVolumeEncryptionEnabled sets the RootVolumeEncryptionEnabled field's value.
4543func (s *Workspace) SetRootVolumeEncryptionEnabled(v bool) *Workspace {
4544	s.RootVolumeEncryptionEnabled = &v
4545	return s
4546}
4547
4548// SetState sets the State field's value.
4549func (s *Workspace) SetState(v string) *Workspace {
4550	s.State = &v
4551	return s
4552}
4553
4554// SetSubnetId sets the SubnetId field's value.
4555func (s *Workspace) SetSubnetId(v string) *Workspace {
4556	s.SubnetId = &v
4557	return s
4558}
4559
4560// SetUserName sets the UserName field's value.
4561func (s *Workspace) SetUserName(v string) *Workspace {
4562	s.UserName = &v
4563	return s
4564}
4565
4566// SetUserVolumeEncryptionEnabled sets the UserVolumeEncryptionEnabled field's value.
4567func (s *Workspace) SetUserVolumeEncryptionEnabled(v bool) *Workspace {
4568	s.UserVolumeEncryptionEnabled = &v
4569	return s
4570}
4571
4572// SetVolumeEncryptionKey sets the VolumeEncryptionKey field's value.
4573func (s *Workspace) SetVolumeEncryptionKey(v string) *Workspace {
4574	s.VolumeEncryptionKey = &v
4575	return s
4576}
4577
4578// SetWorkspaceId sets the WorkspaceId field's value.
4579func (s *Workspace) SetWorkspaceId(v string) *Workspace {
4580	s.WorkspaceId = &v
4581	return s
4582}
4583
4584// SetWorkspaceProperties sets the WorkspaceProperties field's value.
4585func (s *Workspace) SetWorkspaceProperties(v *WorkspaceProperties) *Workspace {
4586	s.WorkspaceProperties = v
4587	return s
4588}
4589
4590// Information about a WorkSpace bundle.
4591type WorkspaceBundle struct {
4592	_ struct{} `type:"structure"`
4593
4594	// The bundle identifier.
4595	BundleId *string `type:"string"`
4596
4597	// The compute type. For more information, see Amazon WorkSpaces Bundles (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
4598	ComputeType *ComputeType `type:"structure"`
4599
4600	// A description.
4601	Description *string `type:"string"`
4602
4603	// The name of the bundle.
4604	Name *string `min:"1" type:"string"`
4605
4606	// The owner of the bundle. This is the account identifier of the owner, or
4607	// AMAZON if the bundle is provided by AWS.
4608	Owner *string `type:"string"`
4609
4610	// The size of the root volume.
4611	RootStorage *RootStorage `type:"structure"`
4612
4613	// The size of the user storage.
4614	UserStorage *UserStorage `type:"structure"`
4615}
4616
4617// String returns the string representation
4618func (s WorkspaceBundle) String() string {
4619	return awsutil.Prettify(s)
4620}
4621
4622// GoString returns the string representation
4623func (s WorkspaceBundle) GoString() string {
4624	return s.String()
4625}
4626
4627// SetBundleId sets the BundleId field's value.
4628func (s *WorkspaceBundle) SetBundleId(v string) *WorkspaceBundle {
4629	s.BundleId = &v
4630	return s
4631}
4632
4633// SetComputeType sets the ComputeType field's value.
4634func (s *WorkspaceBundle) SetComputeType(v *ComputeType) *WorkspaceBundle {
4635	s.ComputeType = v
4636	return s
4637}
4638
4639// SetDescription sets the Description field's value.
4640func (s *WorkspaceBundle) SetDescription(v string) *WorkspaceBundle {
4641	s.Description = &v
4642	return s
4643}
4644
4645// SetName sets the Name field's value.
4646func (s *WorkspaceBundle) SetName(v string) *WorkspaceBundle {
4647	s.Name = &v
4648	return s
4649}
4650
4651// SetOwner sets the Owner field's value.
4652func (s *WorkspaceBundle) SetOwner(v string) *WorkspaceBundle {
4653	s.Owner = &v
4654	return s
4655}
4656
4657// SetRootStorage sets the RootStorage field's value.
4658func (s *WorkspaceBundle) SetRootStorage(v *RootStorage) *WorkspaceBundle {
4659	s.RootStorage = v
4660	return s
4661}
4662
4663// SetUserStorage sets the UserStorage field's value.
4664func (s *WorkspaceBundle) SetUserStorage(v *UserStorage) *WorkspaceBundle {
4665	s.UserStorage = v
4666	return s
4667}
4668
4669// Describes the connection status of a WorkSpace.
4670type WorkspaceConnectionStatus struct {
4671	_ struct{} `type:"structure"`
4672
4673	// The connection state of the WorkSpace. The connection state is unknown if
4674	// the WorkSpace is stopped.
4675	ConnectionState *string `type:"string" enum:"ConnectionState"`
4676
4677	// The timestamp of the connection state check.
4678	ConnectionStateCheckTimestamp *time.Time `type:"timestamp"`
4679
4680	// The timestamp of the last known user connection.
4681	LastKnownUserConnectionTimestamp *time.Time `type:"timestamp"`
4682
4683	// The ID of the WorkSpace.
4684	WorkspaceId *string `type:"string"`
4685}
4686
4687// String returns the string representation
4688func (s WorkspaceConnectionStatus) String() string {
4689	return awsutil.Prettify(s)
4690}
4691
4692// GoString returns the string representation
4693func (s WorkspaceConnectionStatus) GoString() string {
4694	return s.String()
4695}
4696
4697// SetConnectionState sets the ConnectionState field's value.
4698func (s *WorkspaceConnectionStatus) SetConnectionState(v string) *WorkspaceConnectionStatus {
4699	s.ConnectionState = &v
4700	return s
4701}
4702
4703// SetConnectionStateCheckTimestamp sets the ConnectionStateCheckTimestamp field's value.
4704func (s *WorkspaceConnectionStatus) SetConnectionStateCheckTimestamp(v time.Time) *WorkspaceConnectionStatus {
4705	s.ConnectionStateCheckTimestamp = &v
4706	return s
4707}
4708
4709// SetLastKnownUserConnectionTimestamp sets the LastKnownUserConnectionTimestamp field's value.
4710func (s *WorkspaceConnectionStatus) SetLastKnownUserConnectionTimestamp(v time.Time) *WorkspaceConnectionStatus {
4711	s.LastKnownUserConnectionTimestamp = &v
4712	return s
4713}
4714
4715// SetWorkspaceId sets the WorkspaceId field's value.
4716func (s *WorkspaceConnectionStatus) SetWorkspaceId(v string) *WorkspaceConnectionStatus {
4717	s.WorkspaceId = &v
4718	return s
4719}
4720
4721// Information about an AWS Directory Service directory for use with Amazon
4722// WorkSpaces.
4723type WorkspaceDirectory struct {
4724	_ struct{} `type:"structure"`
4725
4726	// The directory alias.
4727	Alias *string `type:"string"`
4728
4729	// The user name for the service account.
4730	CustomerUserName *string `min:"1" type:"string"`
4731
4732	// The directory identifier.
4733	DirectoryId *string `type:"string"`
4734
4735	// The name of the directory.
4736	DirectoryName *string `type:"string"`
4737
4738	// The directory type.
4739	DirectoryType *string `type:"string" enum:"WorkspaceDirectoryType"`
4740
4741	// The IP addresses of the DNS servers for the directory.
4742	DnsIpAddresses []*string `type:"list"`
4743
4744	// The identifier of the IAM role. This is the role that allows Amazon WorkSpaces
4745	// to make calls to other services, such as Amazon EC2, on your behalf.
4746	IamRoleId *string `type:"string"`
4747
4748	// The identifiers of the IP access control groups associated with the directory.
4749	IpGroupIds []*string `locationName:"ipGroupIds" type:"list"`
4750
4751	// The registration code for the directory. This is the code that users enter
4752	// in their Amazon WorkSpaces client application to connect to the directory.
4753	RegistrationCode *string `min:"1" type:"string"`
4754
4755	// The state of the directory's registration with Amazon WorkSpaces
4756	State *string `type:"string" enum:"WorkspaceDirectoryState"`
4757
4758	// The identifiers of the subnets used with the directory.
4759	SubnetIds []*string `type:"list"`
4760
4761	// The default creation properties for all WorkSpaces in the directory.
4762	WorkspaceCreationProperties *DefaultWorkspaceCreationProperties `type:"structure"`
4763
4764	// The identifier of the security group that is assigned to new WorkSpaces.
4765	WorkspaceSecurityGroupId *string `type:"string"`
4766}
4767
4768// String returns the string representation
4769func (s WorkspaceDirectory) String() string {
4770	return awsutil.Prettify(s)
4771}
4772
4773// GoString returns the string representation
4774func (s WorkspaceDirectory) GoString() string {
4775	return s.String()
4776}
4777
4778// SetAlias sets the Alias field's value.
4779func (s *WorkspaceDirectory) SetAlias(v string) *WorkspaceDirectory {
4780	s.Alias = &v
4781	return s
4782}
4783
4784// SetCustomerUserName sets the CustomerUserName field's value.
4785func (s *WorkspaceDirectory) SetCustomerUserName(v string) *WorkspaceDirectory {
4786	s.CustomerUserName = &v
4787	return s
4788}
4789
4790// SetDirectoryId sets the DirectoryId field's value.
4791func (s *WorkspaceDirectory) SetDirectoryId(v string) *WorkspaceDirectory {
4792	s.DirectoryId = &v
4793	return s
4794}
4795
4796// SetDirectoryName sets the DirectoryName field's value.
4797func (s *WorkspaceDirectory) SetDirectoryName(v string) *WorkspaceDirectory {
4798	s.DirectoryName = &v
4799	return s
4800}
4801
4802// SetDirectoryType sets the DirectoryType field's value.
4803func (s *WorkspaceDirectory) SetDirectoryType(v string) *WorkspaceDirectory {
4804	s.DirectoryType = &v
4805	return s
4806}
4807
4808// SetDnsIpAddresses sets the DnsIpAddresses field's value.
4809func (s *WorkspaceDirectory) SetDnsIpAddresses(v []*string) *WorkspaceDirectory {
4810	s.DnsIpAddresses = v
4811	return s
4812}
4813
4814// SetIamRoleId sets the IamRoleId field's value.
4815func (s *WorkspaceDirectory) SetIamRoleId(v string) *WorkspaceDirectory {
4816	s.IamRoleId = &v
4817	return s
4818}
4819
4820// SetIpGroupIds sets the IpGroupIds field's value.
4821func (s *WorkspaceDirectory) SetIpGroupIds(v []*string) *WorkspaceDirectory {
4822	s.IpGroupIds = v
4823	return s
4824}
4825
4826// SetRegistrationCode sets the RegistrationCode field's value.
4827func (s *WorkspaceDirectory) SetRegistrationCode(v string) *WorkspaceDirectory {
4828	s.RegistrationCode = &v
4829	return s
4830}
4831
4832// SetState sets the State field's value.
4833func (s *WorkspaceDirectory) SetState(v string) *WorkspaceDirectory {
4834	s.State = &v
4835	return s
4836}
4837
4838// SetSubnetIds sets the SubnetIds field's value.
4839func (s *WorkspaceDirectory) SetSubnetIds(v []*string) *WorkspaceDirectory {
4840	s.SubnetIds = v
4841	return s
4842}
4843
4844// SetWorkspaceCreationProperties sets the WorkspaceCreationProperties field's value.
4845func (s *WorkspaceDirectory) SetWorkspaceCreationProperties(v *DefaultWorkspaceCreationProperties) *WorkspaceDirectory {
4846	s.WorkspaceCreationProperties = v
4847	return s
4848}
4849
4850// SetWorkspaceSecurityGroupId sets the WorkspaceSecurityGroupId field's value.
4851func (s *WorkspaceDirectory) SetWorkspaceSecurityGroupId(v string) *WorkspaceDirectory {
4852	s.WorkspaceSecurityGroupId = &v
4853	return s
4854}
4855
4856// Information about a WorkSpace.
4857type WorkspaceProperties struct {
4858	_ struct{} `type:"structure"`
4859
4860	// The compute type. For more information, see Amazon WorkSpaces Bundles (http://aws.amazon.com/workspaces/details/#Amazon_WorkSpaces_Bundles).
4861	ComputeTypeName *string `type:"string" enum:"Compute"`
4862
4863	// The size of the root volume.
4864	RootVolumeSizeGib *int64 `type:"integer"`
4865
4866	// The running mode. For more information, see Manage the WorkSpace Running
4867	// Mode (http://docs.aws.amazon.com/workspaces/latest/adminguide/running-mode.html).
4868	RunningMode *string `type:"string" enum:"RunningMode"`
4869
4870	// The time after a user logs off when WorkSpaces are automatically stopped.
4871	// Configured in 60 minute intervals.
4872	RunningModeAutoStopTimeoutInMinutes *int64 `type:"integer"`
4873
4874	// The size of the user storage.
4875	UserVolumeSizeGib *int64 `type:"integer"`
4876}
4877
4878// String returns the string representation
4879func (s WorkspaceProperties) String() string {
4880	return awsutil.Prettify(s)
4881}
4882
4883// GoString returns the string representation
4884func (s WorkspaceProperties) GoString() string {
4885	return s.String()
4886}
4887
4888// SetComputeTypeName sets the ComputeTypeName field's value.
4889func (s *WorkspaceProperties) SetComputeTypeName(v string) *WorkspaceProperties {
4890	s.ComputeTypeName = &v
4891	return s
4892}
4893
4894// SetRootVolumeSizeGib sets the RootVolumeSizeGib field's value.
4895func (s *WorkspaceProperties) SetRootVolumeSizeGib(v int64) *WorkspaceProperties {
4896	s.RootVolumeSizeGib = &v
4897	return s
4898}
4899
4900// SetRunningMode sets the RunningMode field's value.
4901func (s *WorkspaceProperties) SetRunningMode(v string) *WorkspaceProperties {
4902	s.RunningMode = &v
4903	return s
4904}
4905
4906// SetRunningModeAutoStopTimeoutInMinutes sets the RunningModeAutoStopTimeoutInMinutes field's value.
4907func (s *WorkspaceProperties) SetRunningModeAutoStopTimeoutInMinutes(v int64) *WorkspaceProperties {
4908	s.RunningModeAutoStopTimeoutInMinutes = &v
4909	return s
4910}
4911
4912// SetUserVolumeSizeGib sets the UserVolumeSizeGib field's value.
4913func (s *WorkspaceProperties) SetUserVolumeSizeGib(v int64) *WorkspaceProperties {
4914	s.UserVolumeSizeGib = &v
4915	return s
4916}
4917
4918// Information used to create a WorkSpace.
4919type WorkspaceRequest struct {
4920	_ struct{} `type:"structure"`
4921
4922	// The identifier of the bundle for the WorkSpace. You can use DescribeWorkspaceBundles
4923	// to list the available bundles.
4924	//
4925	// BundleId is a required field
4926	BundleId *string `type:"string" required:"true"`
4927
4928	// The identifier of the AWS Directory Service directory for the WorkSpace.
4929	// You can use DescribeWorkspaceDirectories to list the available directories.
4930	//
4931	// DirectoryId is a required field
4932	DirectoryId *string `type:"string" required:"true"`
4933
4934	// Indicates whether the data stored on the root volume is encrypted.
4935	RootVolumeEncryptionEnabled *bool `type:"boolean"`
4936
4937	// The tags for the WorkSpace.
4938	Tags []*Tag `type:"list"`
4939
4940	// The username of the user for the WorkSpace. This username must exist in the
4941	// AWS Directory Service directory for the WorkSpace.
4942	//
4943	// UserName is a required field
4944	UserName *string `min:"1" type:"string" required:"true"`
4945
4946	// Indicates whether the data stored on the user volume is encrypted.
4947	UserVolumeEncryptionEnabled *bool `type:"boolean"`
4948
4949	// The KMS key used to encrypt data stored on your WorkSpace.
4950	VolumeEncryptionKey *string `type:"string"`
4951
4952	// The WorkSpace properties.
4953	WorkspaceProperties *WorkspaceProperties `type:"structure"`
4954}
4955
4956// String returns the string representation
4957func (s WorkspaceRequest) String() string {
4958	return awsutil.Prettify(s)
4959}
4960
4961// GoString returns the string representation
4962func (s WorkspaceRequest) GoString() string {
4963	return s.String()
4964}
4965
4966// Validate inspects the fields of the type to determine if they are valid.
4967func (s *WorkspaceRequest) Validate() error {
4968	invalidParams := request.ErrInvalidParams{Context: "WorkspaceRequest"}
4969	if s.BundleId == nil {
4970		invalidParams.Add(request.NewErrParamRequired("BundleId"))
4971	}
4972	if s.DirectoryId == nil {
4973		invalidParams.Add(request.NewErrParamRequired("DirectoryId"))
4974	}
4975	if s.UserName == nil {
4976		invalidParams.Add(request.NewErrParamRequired("UserName"))
4977	}
4978	if s.UserName != nil && len(*s.UserName) < 1 {
4979		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
4980	}
4981	if s.Tags != nil {
4982		for i, v := range s.Tags {
4983			if v == nil {
4984				continue
4985			}
4986			if err := v.Validate(); err != nil {
4987				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
4988			}
4989		}
4990	}
4991
4992	if invalidParams.Len() > 0 {
4993		return invalidParams
4994	}
4995	return nil
4996}
4997
4998// SetBundleId sets the BundleId field's value.
4999func (s *WorkspaceRequest) SetBundleId(v string) *WorkspaceRequest {
5000	s.BundleId = &v
5001	return s
5002}
5003
5004// SetDirectoryId sets the DirectoryId field's value.
5005func (s *WorkspaceRequest) SetDirectoryId(v string) *WorkspaceRequest {
5006	s.DirectoryId = &v
5007	return s
5008}
5009
5010// SetRootVolumeEncryptionEnabled sets the RootVolumeEncryptionEnabled field's value.
5011func (s *WorkspaceRequest) SetRootVolumeEncryptionEnabled(v bool) *WorkspaceRequest {
5012	s.RootVolumeEncryptionEnabled = &v
5013	return s
5014}
5015
5016// SetTags sets the Tags field's value.
5017func (s *WorkspaceRequest) SetTags(v []*Tag) *WorkspaceRequest {
5018	s.Tags = v
5019	return s
5020}
5021
5022// SetUserName sets the UserName field's value.
5023func (s *WorkspaceRequest) SetUserName(v string) *WorkspaceRequest {
5024	s.UserName = &v
5025	return s
5026}
5027
5028// SetUserVolumeEncryptionEnabled sets the UserVolumeEncryptionEnabled field's value.
5029func (s *WorkspaceRequest) SetUserVolumeEncryptionEnabled(v bool) *WorkspaceRequest {
5030	s.UserVolumeEncryptionEnabled = &v
5031	return s
5032}
5033
5034// SetVolumeEncryptionKey sets the VolumeEncryptionKey field's value.
5035func (s *WorkspaceRequest) SetVolumeEncryptionKey(v string) *WorkspaceRequest {
5036	s.VolumeEncryptionKey = &v
5037	return s
5038}
5039
5040// SetWorkspaceProperties sets the WorkspaceProperties field's value.
5041func (s *WorkspaceRequest) SetWorkspaceProperties(v *WorkspaceProperties) *WorkspaceRequest {
5042	s.WorkspaceProperties = v
5043	return s
5044}
5045
5046const (
5047	// ComputeValue is a Compute enum value
5048	ComputeValue = "VALUE"
5049
5050	// ComputeStandard is a Compute enum value
5051	ComputeStandard = "STANDARD"
5052
5053	// ComputePerformance is a Compute enum value
5054	ComputePerformance = "PERFORMANCE"
5055
5056	// ComputePower is a Compute enum value
5057	ComputePower = "POWER"
5058
5059	// ComputeGraphics is a Compute enum value
5060	ComputeGraphics = "GRAPHICS"
5061)
5062
5063const (
5064	// ConnectionStateConnected is a ConnectionState enum value
5065	ConnectionStateConnected = "CONNECTED"
5066
5067	// ConnectionStateDisconnected is a ConnectionState enum value
5068	ConnectionStateDisconnected = "DISCONNECTED"
5069
5070	// ConnectionStateUnknown is a ConnectionState enum value
5071	ConnectionStateUnknown = "UNKNOWN"
5072)
5073
5074const (
5075	// ModificationResourceEnumRootVolume is a ModificationResourceEnum enum value
5076	ModificationResourceEnumRootVolume = "ROOT_VOLUME"
5077
5078	// ModificationResourceEnumUserVolume is a ModificationResourceEnum enum value
5079	ModificationResourceEnumUserVolume = "USER_VOLUME"
5080
5081	// ModificationResourceEnumComputeType is a ModificationResourceEnum enum value
5082	ModificationResourceEnumComputeType = "COMPUTE_TYPE"
5083)
5084
5085const (
5086	// ModificationStateEnumUpdateInitiated is a ModificationStateEnum enum value
5087	ModificationStateEnumUpdateInitiated = "UPDATE_INITIATED"
5088
5089	// ModificationStateEnumUpdateInProgress is a ModificationStateEnum enum value
5090	ModificationStateEnumUpdateInProgress = "UPDATE_IN_PROGRESS"
5091)
5092
5093const (
5094	// RunningModeAutoStop is a RunningMode enum value
5095	RunningModeAutoStop = "AUTO_STOP"
5096
5097	// RunningModeAlwaysOn is a RunningMode enum value
5098	RunningModeAlwaysOn = "ALWAYS_ON"
5099)
5100
5101const (
5102	// TargetWorkspaceStateAvailable is a TargetWorkspaceState enum value
5103	TargetWorkspaceStateAvailable = "AVAILABLE"
5104
5105	// TargetWorkspaceStateAdminMaintenance is a TargetWorkspaceState enum value
5106	TargetWorkspaceStateAdminMaintenance = "ADMIN_MAINTENANCE"
5107)
5108
5109const (
5110	// WorkspaceDirectoryStateRegistering is a WorkspaceDirectoryState enum value
5111	WorkspaceDirectoryStateRegistering = "REGISTERING"
5112
5113	// WorkspaceDirectoryStateRegistered is a WorkspaceDirectoryState enum value
5114	WorkspaceDirectoryStateRegistered = "REGISTERED"
5115
5116	// WorkspaceDirectoryStateDeregistering is a WorkspaceDirectoryState enum value
5117	WorkspaceDirectoryStateDeregistering = "DEREGISTERING"
5118
5119	// WorkspaceDirectoryStateDeregistered is a WorkspaceDirectoryState enum value
5120	WorkspaceDirectoryStateDeregistered = "DEREGISTERED"
5121
5122	// WorkspaceDirectoryStateError is a WorkspaceDirectoryState enum value
5123	WorkspaceDirectoryStateError = "ERROR"
5124)
5125
5126const (
5127	// WorkspaceDirectoryTypeSimpleAd is a WorkspaceDirectoryType enum value
5128	WorkspaceDirectoryTypeSimpleAd = "SIMPLE_AD"
5129
5130	// WorkspaceDirectoryTypeAdConnector is a WorkspaceDirectoryType enum value
5131	WorkspaceDirectoryTypeAdConnector = "AD_CONNECTOR"
5132)
5133
5134const (
5135	// WorkspaceStatePending is a WorkspaceState enum value
5136	WorkspaceStatePending = "PENDING"
5137
5138	// WorkspaceStateAvailable is a WorkspaceState enum value
5139	WorkspaceStateAvailable = "AVAILABLE"
5140
5141	// WorkspaceStateImpaired is a WorkspaceState enum value
5142	WorkspaceStateImpaired = "IMPAIRED"
5143
5144	// WorkspaceStateUnhealthy is a WorkspaceState enum value
5145	WorkspaceStateUnhealthy = "UNHEALTHY"
5146
5147	// WorkspaceStateRebooting is a WorkspaceState enum value
5148	WorkspaceStateRebooting = "REBOOTING"
5149
5150	// WorkspaceStateStarting is a WorkspaceState enum value
5151	WorkspaceStateStarting = "STARTING"
5152
5153	// WorkspaceStateRebuilding is a WorkspaceState enum value
5154	WorkspaceStateRebuilding = "REBUILDING"
5155
5156	// WorkspaceStateMaintenance is a WorkspaceState enum value
5157	WorkspaceStateMaintenance = "MAINTENANCE"
5158
5159	// WorkspaceStateAdminMaintenance is a WorkspaceState enum value
5160	WorkspaceStateAdminMaintenance = "ADMIN_MAINTENANCE"
5161
5162	// WorkspaceStateTerminating is a WorkspaceState enum value
5163	WorkspaceStateTerminating = "TERMINATING"
5164
5165	// WorkspaceStateTerminated is a WorkspaceState enum value
5166	WorkspaceStateTerminated = "TERMINATED"
5167
5168	// WorkspaceStateSuspended is a WorkspaceState enum value
5169	WorkspaceStateSuspended = "SUSPENDED"
5170
5171	// WorkspaceStateUpdating is a WorkspaceState enum value
5172	WorkspaceStateUpdating = "UPDATING"
5173
5174	// WorkspaceStateStopping is a WorkspaceState enum value
5175	WorkspaceStateStopping = "STOPPING"
5176
5177	// WorkspaceStateStopped is a WorkspaceState enum value
5178	WorkspaceStateStopped = "STOPPED"
5179
5180	// WorkspaceStateError is a WorkspaceState enum value
5181	WorkspaceStateError = "ERROR"
5182)
5183