1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package appstream
4
5import (
6	"fmt"
7	"time"
8
9	"github.com/aws/aws-sdk-go/aws"
10	"github.com/aws/aws-sdk-go/aws/awsutil"
11	"github.com/aws/aws-sdk-go/aws/request"
12	"github.com/aws/aws-sdk-go/private/protocol"
13	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
14)
15
16const opAssociateFleet = "AssociateFleet"
17
18// AssociateFleetRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateFleet operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See AssociateFleet for more information on using the AssociateFleet
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the AssociateFleetRequest method.
34//    req, resp := client.AssociateFleetRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/AssociateFleet
42func (c *AppStream) AssociateFleetRequest(input *AssociateFleetInput) (req *request.Request, output *AssociateFleetOutput) {
43	op := &request.Operation{
44		Name:       opAssociateFleet,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AssociateFleetInput{}
51	}
52
53	output = &AssociateFleetOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AssociateFleet API operation for Amazon AppStream.
60//
61// Associates the specified fleet with the specified stack.
62//
63// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
64// with awserr.Error's Code and Message methods to get detailed information about
65// the error.
66//
67// See the AWS API reference guide for Amazon AppStream's
68// API operation AssociateFleet for usage and error information.
69//
70// Returned Error Codes:
71//   * ErrCodeLimitExceededException "LimitExceededException"
72//   The requested limit exceeds the permitted limit for an account.
73//
74//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
75//   The resource cannot be created because your AWS account is suspended. For
76//   assistance, contact AWS Support.
77//
78//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
79//   The specified resource was not found.
80//
81//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
82//   An API error occurred. Wait a few minutes and try again.
83//
84//   * ErrCodeIncompatibleImageException "IncompatibleImageException"
85//   The image does not support storage connectors.
86//
87//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
88//   The attempted operation is not permitted.
89//
90// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/AssociateFleet
91func (c *AppStream) AssociateFleet(input *AssociateFleetInput) (*AssociateFleetOutput, error) {
92	req, out := c.AssociateFleetRequest(input)
93	return out, req.Send()
94}
95
96// AssociateFleetWithContext is the same as AssociateFleet with the addition of
97// the ability to pass a context and additional request options.
98//
99// See AssociateFleet for details on how to use this API operation.
100//
101// The context must be non-nil and will be used for request cancellation. If
102// the context is nil a panic will occur. In the future the SDK may create
103// sub-contexts for http.Requests. See https://golang.org/pkg/context/
104// for more information on using Contexts.
105func (c *AppStream) AssociateFleetWithContext(ctx aws.Context, input *AssociateFleetInput, opts ...request.Option) (*AssociateFleetOutput, error) {
106	req, out := c.AssociateFleetRequest(input)
107	req.SetContext(ctx)
108	req.ApplyOptions(opts...)
109	return out, req.Send()
110}
111
112const opBatchAssociateUserStack = "BatchAssociateUserStack"
113
114// BatchAssociateUserStackRequest generates a "aws/request.Request" representing the
115// client's request for the BatchAssociateUserStack operation. The "output" return
116// value will be populated with the request's response once the request completes
117// successfully.
118//
119// Use "Send" method on the returned Request to send the API call to the service.
120// the "output" return value is not valid until after Send returns without error.
121//
122// See BatchAssociateUserStack for more information on using the BatchAssociateUserStack
123// API call, and error handling.
124//
125// This method is useful when you want to inject custom logic or configuration
126// into the SDK's request lifecycle. Such as custom headers, or retry logic.
127//
128//
129//    // Example sending a request using the BatchAssociateUserStackRequest method.
130//    req, resp := client.BatchAssociateUserStackRequest(params)
131//
132//    err := req.Send()
133//    if err == nil { // resp is now filled
134//        fmt.Println(resp)
135//    }
136//
137// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/BatchAssociateUserStack
138func (c *AppStream) BatchAssociateUserStackRequest(input *BatchAssociateUserStackInput) (req *request.Request, output *BatchAssociateUserStackOutput) {
139	op := &request.Operation{
140		Name:       opBatchAssociateUserStack,
141		HTTPMethod: "POST",
142		HTTPPath:   "/",
143	}
144
145	if input == nil {
146		input = &BatchAssociateUserStackInput{}
147	}
148
149	output = &BatchAssociateUserStackOutput{}
150	req = c.newRequest(op, input, output)
151	return
152}
153
154// BatchAssociateUserStack API operation for Amazon AppStream.
155//
156// Associates the specified users with the specified stacks. Users in a user
157// pool cannot be assigned to stacks with fleets that are joined to an Active
158// Directory domain.
159//
160// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
161// with awserr.Error's Code and Message methods to get detailed information about
162// the error.
163//
164// See the AWS API reference guide for Amazon AppStream's
165// API operation BatchAssociateUserStack for usage and error information.
166//
167// Returned Error Codes:
168//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
169//   The attempted operation is not permitted.
170//
171// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/BatchAssociateUserStack
172func (c *AppStream) BatchAssociateUserStack(input *BatchAssociateUserStackInput) (*BatchAssociateUserStackOutput, error) {
173	req, out := c.BatchAssociateUserStackRequest(input)
174	return out, req.Send()
175}
176
177// BatchAssociateUserStackWithContext is the same as BatchAssociateUserStack with the addition of
178// the ability to pass a context and additional request options.
179//
180// See BatchAssociateUserStack for details on how to use this API operation.
181//
182// The context must be non-nil and will be used for request cancellation. If
183// the context is nil a panic will occur. In the future the SDK may create
184// sub-contexts for http.Requests. See https://golang.org/pkg/context/
185// for more information on using Contexts.
186func (c *AppStream) BatchAssociateUserStackWithContext(ctx aws.Context, input *BatchAssociateUserStackInput, opts ...request.Option) (*BatchAssociateUserStackOutput, error) {
187	req, out := c.BatchAssociateUserStackRequest(input)
188	req.SetContext(ctx)
189	req.ApplyOptions(opts...)
190	return out, req.Send()
191}
192
193const opBatchDisassociateUserStack = "BatchDisassociateUserStack"
194
195// BatchDisassociateUserStackRequest generates a "aws/request.Request" representing the
196// client's request for the BatchDisassociateUserStack operation. The "output" return
197// value will be populated with the request's response once the request completes
198// successfully.
199//
200// Use "Send" method on the returned Request to send the API call to the service.
201// the "output" return value is not valid until after Send returns without error.
202//
203// See BatchDisassociateUserStack for more information on using the BatchDisassociateUserStack
204// API call, and error handling.
205//
206// This method is useful when you want to inject custom logic or configuration
207// into the SDK's request lifecycle. Such as custom headers, or retry logic.
208//
209//
210//    // Example sending a request using the BatchDisassociateUserStackRequest method.
211//    req, resp := client.BatchDisassociateUserStackRequest(params)
212//
213//    err := req.Send()
214//    if err == nil { // resp is now filled
215//        fmt.Println(resp)
216//    }
217//
218// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/BatchDisassociateUserStack
219func (c *AppStream) BatchDisassociateUserStackRequest(input *BatchDisassociateUserStackInput) (req *request.Request, output *BatchDisassociateUserStackOutput) {
220	op := &request.Operation{
221		Name:       opBatchDisassociateUserStack,
222		HTTPMethod: "POST",
223		HTTPPath:   "/",
224	}
225
226	if input == nil {
227		input = &BatchDisassociateUserStackInput{}
228	}
229
230	output = &BatchDisassociateUserStackOutput{}
231	req = c.newRequest(op, input, output)
232	return
233}
234
235// BatchDisassociateUserStack API operation for Amazon AppStream.
236//
237// Disassociates the specified users from the specified stacks.
238//
239// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
240// with awserr.Error's Code and Message methods to get detailed information about
241// the error.
242//
243// See the AWS API reference guide for Amazon AppStream's
244// API operation BatchDisassociateUserStack for usage and error information.
245// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/BatchDisassociateUserStack
246func (c *AppStream) BatchDisassociateUserStack(input *BatchDisassociateUserStackInput) (*BatchDisassociateUserStackOutput, error) {
247	req, out := c.BatchDisassociateUserStackRequest(input)
248	return out, req.Send()
249}
250
251// BatchDisassociateUserStackWithContext is the same as BatchDisassociateUserStack with the addition of
252// the ability to pass a context and additional request options.
253//
254// See BatchDisassociateUserStack for details on how to use this API operation.
255//
256// The context must be non-nil and will be used for request cancellation. If
257// the context is nil a panic will occur. In the future the SDK may create
258// sub-contexts for http.Requests. See https://golang.org/pkg/context/
259// for more information on using Contexts.
260func (c *AppStream) BatchDisassociateUserStackWithContext(ctx aws.Context, input *BatchDisassociateUserStackInput, opts ...request.Option) (*BatchDisassociateUserStackOutput, error) {
261	req, out := c.BatchDisassociateUserStackRequest(input)
262	req.SetContext(ctx)
263	req.ApplyOptions(opts...)
264	return out, req.Send()
265}
266
267const opCopyImage = "CopyImage"
268
269// CopyImageRequest generates a "aws/request.Request" representing the
270// client's request for the CopyImage operation. The "output" return
271// value will be populated with the request's response once the request completes
272// successfully.
273//
274// Use "Send" method on the returned Request to send the API call to the service.
275// the "output" return value is not valid until after Send returns without error.
276//
277// See CopyImage for more information on using the CopyImage
278// API call, and error handling.
279//
280// This method is useful when you want to inject custom logic or configuration
281// into the SDK's request lifecycle. Such as custom headers, or retry logic.
282//
283//
284//    // Example sending a request using the CopyImageRequest method.
285//    req, resp := client.CopyImageRequest(params)
286//
287//    err := req.Send()
288//    if err == nil { // resp is now filled
289//        fmt.Println(resp)
290//    }
291//
292// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CopyImage
293func (c *AppStream) CopyImageRequest(input *CopyImageInput) (req *request.Request, output *CopyImageOutput) {
294	op := &request.Operation{
295		Name:       opCopyImage,
296		HTTPMethod: "POST",
297		HTTPPath:   "/",
298	}
299
300	if input == nil {
301		input = &CopyImageInput{}
302	}
303
304	output = &CopyImageOutput{}
305	req = c.newRequest(op, input, output)
306	return
307}
308
309// CopyImage API operation for Amazon AppStream.
310//
311// Copies the image within the same region or to a new region within the same
312// AWS account. Note that any tags you added to the image will not be copied.
313//
314// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
315// with awserr.Error's Code and Message methods to get detailed information about
316// the error.
317//
318// See the AWS API reference guide for Amazon AppStream's
319// API operation CopyImage for usage and error information.
320//
321// Returned Error Codes:
322//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
323//   The specified resource already exists.
324//
325//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
326//   The specified resource was not found.
327//
328//   * ErrCodeResourceNotAvailableException "ResourceNotAvailableException"
329//   The specified resource exists and is not in use, but isn't available.
330//
331//   * ErrCodeLimitExceededException "LimitExceededException"
332//   The requested limit exceeds the permitted limit for an account.
333//
334//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
335//   The resource cannot be created because your AWS account is suspended. For
336//   assistance, contact AWS Support.
337//
338//   * ErrCodeIncompatibleImageException "IncompatibleImageException"
339//   The image does not support storage connectors.
340//
341// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CopyImage
342func (c *AppStream) CopyImage(input *CopyImageInput) (*CopyImageOutput, error) {
343	req, out := c.CopyImageRequest(input)
344	return out, req.Send()
345}
346
347// CopyImageWithContext is the same as CopyImage with the addition of
348// the ability to pass a context and additional request options.
349//
350// See CopyImage for details on how to use this API operation.
351//
352// The context must be non-nil and will be used for request cancellation. If
353// the context is nil a panic will occur. In the future the SDK may create
354// sub-contexts for http.Requests. See https://golang.org/pkg/context/
355// for more information on using Contexts.
356func (c *AppStream) CopyImageWithContext(ctx aws.Context, input *CopyImageInput, opts ...request.Option) (*CopyImageOutput, error) {
357	req, out := c.CopyImageRequest(input)
358	req.SetContext(ctx)
359	req.ApplyOptions(opts...)
360	return out, req.Send()
361}
362
363const opCreateDirectoryConfig = "CreateDirectoryConfig"
364
365// CreateDirectoryConfigRequest generates a "aws/request.Request" representing the
366// client's request for the CreateDirectoryConfig operation. The "output" return
367// value will be populated with the request's response once the request completes
368// successfully.
369//
370// Use "Send" method on the returned Request to send the API call to the service.
371// the "output" return value is not valid until after Send returns without error.
372//
373// See CreateDirectoryConfig for more information on using the CreateDirectoryConfig
374// API call, and error handling.
375//
376// This method is useful when you want to inject custom logic or configuration
377// into the SDK's request lifecycle. Such as custom headers, or retry logic.
378//
379//
380//    // Example sending a request using the CreateDirectoryConfigRequest method.
381//    req, resp := client.CreateDirectoryConfigRequest(params)
382//
383//    err := req.Send()
384//    if err == nil { // resp is now filled
385//        fmt.Println(resp)
386//    }
387//
388// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateDirectoryConfig
389func (c *AppStream) CreateDirectoryConfigRequest(input *CreateDirectoryConfigInput) (req *request.Request, output *CreateDirectoryConfigOutput) {
390	op := &request.Operation{
391		Name:       opCreateDirectoryConfig,
392		HTTPMethod: "POST",
393		HTTPPath:   "/",
394	}
395
396	if input == nil {
397		input = &CreateDirectoryConfigInput{}
398	}
399
400	output = &CreateDirectoryConfigOutput{}
401	req = c.newRequest(op, input, output)
402	return
403}
404
405// CreateDirectoryConfig API operation for Amazon AppStream.
406//
407// Creates a Directory Config object in AppStream 2.0. This object includes
408// the configuration information required to join fleets and image builders
409// to Microsoft Active Directory domains.
410//
411// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
412// with awserr.Error's Code and Message methods to get detailed information about
413// the error.
414//
415// See the AWS API reference guide for Amazon AppStream's
416// API operation CreateDirectoryConfig for usage and error information.
417//
418// Returned Error Codes:
419//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
420//   The specified resource already exists.
421//
422//   * ErrCodeLimitExceededException "LimitExceededException"
423//   The requested limit exceeds the permitted limit for an account.
424//
425//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
426//   The resource cannot be created because your AWS account is suspended. For
427//   assistance, contact AWS Support.
428//
429// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateDirectoryConfig
430func (c *AppStream) CreateDirectoryConfig(input *CreateDirectoryConfigInput) (*CreateDirectoryConfigOutput, error) {
431	req, out := c.CreateDirectoryConfigRequest(input)
432	return out, req.Send()
433}
434
435// CreateDirectoryConfigWithContext is the same as CreateDirectoryConfig with the addition of
436// the ability to pass a context and additional request options.
437//
438// See CreateDirectoryConfig for details on how to use this API operation.
439//
440// The context must be non-nil and will be used for request cancellation. If
441// the context is nil a panic will occur. In the future the SDK may create
442// sub-contexts for http.Requests. See https://golang.org/pkg/context/
443// for more information on using Contexts.
444func (c *AppStream) CreateDirectoryConfigWithContext(ctx aws.Context, input *CreateDirectoryConfigInput, opts ...request.Option) (*CreateDirectoryConfigOutput, error) {
445	req, out := c.CreateDirectoryConfigRequest(input)
446	req.SetContext(ctx)
447	req.ApplyOptions(opts...)
448	return out, req.Send()
449}
450
451const opCreateFleet = "CreateFleet"
452
453// CreateFleetRequest generates a "aws/request.Request" representing the
454// client's request for the CreateFleet operation. The "output" return
455// value will be populated with the request's response once the request completes
456// successfully.
457//
458// Use "Send" method on the returned Request to send the API call to the service.
459// the "output" return value is not valid until after Send returns without error.
460//
461// See CreateFleet for more information on using the CreateFleet
462// API call, and error handling.
463//
464// This method is useful when you want to inject custom logic or configuration
465// into the SDK's request lifecycle. Such as custom headers, or retry logic.
466//
467//
468//    // Example sending a request using the CreateFleetRequest method.
469//    req, resp := client.CreateFleetRequest(params)
470//
471//    err := req.Send()
472//    if err == nil { // resp is now filled
473//        fmt.Println(resp)
474//    }
475//
476// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateFleet
477func (c *AppStream) CreateFleetRequest(input *CreateFleetInput) (req *request.Request, output *CreateFleetOutput) {
478	op := &request.Operation{
479		Name:       opCreateFleet,
480		HTTPMethod: "POST",
481		HTTPPath:   "/",
482	}
483
484	if input == nil {
485		input = &CreateFleetInput{}
486	}
487
488	output = &CreateFleetOutput{}
489	req = c.newRequest(op, input, output)
490	return
491}
492
493// CreateFleet API operation for Amazon AppStream.
494//
495// Creates a fleet. A fleet consists of streaming instances that run a specified
496// image.
497//
498// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
499// with awserr.Error's Code and Message methods to get detailed information about
500// the error.
501//
502// See the AWS API reference guide for Amazon AppStream's
503// API operation CreateFleet for usage and error information.
504//
505// Returned Error Codes:
506//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
507//   The specified resource already exists.
508//
509//   * ErrCodeResourceNotAvailableException "ResourceNotAvailableException"
510//   The specified resource exists and is not in use, but isn't available.
511//
512//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
513//   The specified resource was not found.
514//
515//   * ErrCodeLimitExceededException "LimitExceededException"
516//   The requested limit exceeds the permitted limit for an account.
517//
518//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
519//   The resource cannot be created because your AWS account is suspended. For
520//   assistance, contact AWS Support.
521//
522//   * ErrCodeInvalidRoleException "InvalidRoleException"
523//   The specified role is invalid.
524//
525//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
526//   An API error occurred. Wait a few minutes and try again.
527//
528//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
529//   Indicates an incorrect combination of parameters, or a missing parameter.
530//
531//   * ErrCodeIncompatibleImageException "IncompatibleImageException"
532//   The image does not support storage connectors.
533//
534//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
535//   The attempted operation is not permitted.
536//
537// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateFleet
538func (c *AppStream) CreateFleet(input *CreateFleetInput) (*CreateFleetOutput, error) {
539	req, out := c.CreateFleetRequest(input)
540	return out, req.Send()
541}
542
543// CreateFleetWithContext is the same as CreateFleet with the addition of
544// the ability to pass a context and additional request options.
545//
546// See CreateFleet for details on how to use this API operation.
547//
548// The context must be non-nil and will be used for request cancellation. If
549// the context is nil a panic will occur. In the future the SDK may create
550// sub-contexts for http.Requests. See https://golang.org/pkg/context/
551// for more information on using Contexts.
552func (c *AppStream) CreateFleetWithContext(ctx aws.Context, input *CreateFleetInput, opts ...request.Option) (*CreateFleetOutput, error) {
553	req, out := c.CreateFleetRequest(input)
554	req.SetContext(ctx)
555	req.ApplyOptions(opts...)
556	return out, req.Send()
557}
558
559const opCreateImageBuilder = "CreateImageBuilder"
560
561// CreateImageBuilderRequest generates a "aws/request.Request" representing the
562// client's request for the CreateImageBuilder operation. The "output" return
563// value will be populated with the request's response once the request completes
564// successfully.
565//
566// Use "Send" method on the returned Request to send the API call to the service.
567// the "output" return value is not valid until after Send returns without error.
568//
569// See CreateImageBuilder for more information on using the CreateImageBuilder
570// API call, and error handling.
571//
572// This method is useful when you want to inject custom logic or configuration
573// into the SDK's request lifecycle. Such as custom headers, or retry logic.
574//
575//
576//    // Example sending a request using the CreateImageBuilderRequest method.
577//    req, resp := client.CreateImageBuilderRequest(params)
578//
579//    err := req.Send()
580//    if err == nil { // resp is now filled
581//        fmt.Println(resp)
582//    }
583//
584// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilder
585func (c *AppStream) CreateImageBuilderRequest(input *CreateImageBuilderInput) (req *request.Request, output *CreateImageBuilderOutput) {
586	op := &request.Operation{
587		Name:       opCreateImageBuilder,
588		HTTPMethod: "POST",
589		HTTPPath:   "/",
590	}
591
592	if input == nil {
593		input = &CreateImageBuilderInput{}
594	}
595
596	output = &CreateImageBuilderOutput{}
597	req = c.newRequest(op, input, output)
598	return
599}
600
601// CreateImageBuilder API operation for Amazon AppStream.
602//
603// Creates an image builder. An image builder is a virtual machine that is used
604// to create an image.
605//
606// The initial state of the builder is PENDING. When it is ready, the state
607// is RUNNING.
608//
609// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
610// with awserr.Error's Code and Message methods to get detailed information about
611// the error.
612//
613// See the AWS API reference guide for Amazon AppStream's
614// API operation CreateImageBuilder for usage and error information.
615//
616// Returned Error Codes:
617//   * ErrCodeLimitExceededException "LimitExceededException"
618//   The requested limit exceeds the permitted limit for an account.
619//
620//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
621//   The resource cannot be created because your AWS account is suspended. For
622//   assistance, contact AWS Support.
623//
624//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
625//   The specified resource already exists.
626//
627//   * ErrCodeResourceNotAvailableException "ResourceNotAvailableException"
628//   The specified resource exists and is not in use, but isn't available.
629//
630//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
631//   The specified resource was not found.
632//
633//   * ErrCodeInvalidRoleException "InvalidRoleException"
634//   The specified role is invalid.
635//
636//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
637//   An API error occurred. Wait a few minutes and try again.
638//
639//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
640//   Indicates an incorrect combination of parameters, or a missing parameter.
641//
642//   * ErrCodeIncompatibleImageException "IncompatibleImageException"
643//   The image does not support storage connectors.
644//
645//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
646//   The attempted operation is not permitted.
647//
648// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilder
649func (c *AppStream) CreateImageBuilder(input *CreateImageBuilderInput) (*CreateImageBuilderOutput, error) {
650	req, out := c.CreateImageBuilderRequest(input)
651	return out, req.Send()
652}
653
654// CreateImageBuilderWithContext is the same as CreateImageBuilder with the addition of
655// the ability to pass a context and additional request options.
656//
657// See CreateImageBuilder for details on how to use this API operation.
658//
659// The context must be non-nil and will be used for request cancellation. If
660// the context is nil a panic will occur. In the future the SDK may create
661// sub-contexts for http.Requests. See https://golang.org/pkg/context/
662// for more information on using Contexts.
663func (c *AppStream) CreateImageBuilderWithContext(ctx aws.Context, input *CreateImageBuilderInput, opts ...request.Option) (*CreateImageBuilderOutput, error) {
664	req, out := c.CreateImageBuilderRequest(input)
665	req.SetContext(ctx)
666	req.ApplyOptions(opts...)
667	return out, req.Send()
668}
669
670const opCreateImageBuilderStreamingURL = "CreateImageBuilderStreamingURL"
671
672// CreateImageBuilderStreamingURLRequest generates a "aws/request.Request" representing the
673// client's request for the CreateImageBuilderStreamingURL operation. The "output" return
674// value will be populated with the request's response once the request completes
675// successfully.
676//
677// Use "Send" method on the returned Request to send the API call to the service.
678// the "output" return value is not valid until after Send returns without error.
679//
680// See CreateImageBuilderStreamingURL for more information on using the CreateImageBuilderStreamingURL
681// API call, and error handling.
682//
683// This method is useful when you want to inject custom logic or configuration
684// into the SDK's request lifecycle. Such as custom headers, or retry logic.
685//
686//
687//    // Example sending a request using the CreateImageBuilderStreamingURLRequest method.
688//    req, resp := client.CreateImageBuilderStreamingURLRequest(params)
689//
690//    err := req.Send()
691//    if err == nil { // resp is now filled
692//        fmt.Println(resp)
693//    }
694//
695// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilderStreamingURL
696func (c *AppStream) CreateImageBuilderStreamingURLRequest(input *CreateImageBuilderStreamingURLInput) (req *request.Request, output *CreateImageBuilderStreamingURLOutput) {
697	op := &request.Operation{
698		Name:       opCreateImageBuilderStreamingURL,
699		HTTPMethod: "POST",
700		HTTPPath:   "/",
701	}
702
703	if input == nil {
704		input = &CreateImageBuilderStreamingURLInput{}
705	}
706
707	output = &CreateImageBuilderStreamingURLOutput{}
708	req = c.newRequest(op, input, output)
709	return
710}
711
712// CreateImageBuilderStreamingURL API operation for Amazon AppStream.
713//
714// Creates a URL to start an image builder streaming session.
715//
716// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
717// with awserr.Error's Code and Message methods to get detailed information about
718// the error.
719//
720// See the AWS API reference guide for Amazon AppStream's
721// API operation CreateImageBuilderStreamingURL for usage and error information.
722//
723// Returned Error Codes:
724//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
725//   The attempted operation is not permitted.
726//
727//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
728//   The specified resource was not found.
729//
730// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateImageBuilderStreamingURL
731func (c *AppStream) CreateImageBuilderStreamingURL(input *CreateImageBuilderStreamingURLInput) (*CreateImageBuilderStreamingURLOutput, error) {
732	req, out := c.CreateImageBuilderStreamingURLRequest(input)
733	return out, req.Send()
734}
735
736// CreateImageBuilderStreamingURLWithContext is the same as CreateImageBuilderStreamingURL with the addition of
737// the ability to pass a context and additional request options.
738//
739// See CreateImageBuilderStreamingURL for details on how to use this API operation.
740//
741// The context must be non-nil and will be used for request cancellation. If
742// the context is nil a panic will occur. In the future the SDK may create
743// sub-contexts for http.Requests. See https://golang.org/pkg/context/
744// for more information on using Contexts.
745func (c *AppStream) CreateImageBuilderStreamingURLWithContext(ctx aws.Context, input *CreateImageBuilderStreamingURLInput, opts ...request.Option) (*CreateImageBuilderStreamingURLOutput, error) {
746	req, out := c.CreateImageBuilderStreamingURLRequest(input)
747	req.SetContext(ctx)
748	req.ApplyOptions(opts...)
749	return out, req.Send()
750}
751
752const opCreateStack = "CreateStack"
753
754// CreateStackRequest generates a "aws/request.Request" representing the
755// client's request for the CreateStack operation. The "output" return
756// value will be populated with the request's response once the request completes
757// successfully.
758//
759// Use "Send" method on the returned Request to send the API call to the service.
760// the "output" return value is not valid until after Send returns without error.
761//
762// See CreateStack for more information on using the CreateStack
763// API call, and error handling.
764//
765// This method is useful when you want to inject custom logic or configuration
766// into the SDK's request lifecycle. Such as custom headers, or retry logic.
767//
768//
769//    // Example sending a request using the CreateStackRequest method.
770//    req, resp := client.CreateStackRequest(params)
771//
772//    err := req.Send()
773//    if err == nil { // resp is now filled
774//        fmt.Println(resp)
775//    }
776//
777// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateStack
778func (c *AppStream) CreateStackRequest(input *CreateStackInput) (req *request.Request, output *CreateStackOutput) {
779	op := &request.Operation{
780		Name:       opCreateStack,
781		HTTPMethod: "POST",
782		HTTPPath:   "/",
783	}
784
785	if input == nil {
786		input = &CreateStackInput{}
787	}
788
789	output = &CreateStackOutput{}
790	req = c.newRequest(op, input, output)
791	return
792}
793
794// CreateStack API operation for Amazon AppStream.
795//
796// Creates a stack to start streaming applications to users. A stack consists
797// of an associated fleet, user access policies, and storage configurations.
798//
799// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
800// with awserr.Error's Code and Message methods to get detailed information about
801// the error.
802//
803// See the AWS API reference guide for Amazon AppStream's
804// API operation CreateStack for usage and error information.
805//
806// Returned Error Codes:
807//   * ErrCodeLimitExceededException "LimitExceededException"
808//   The requested limit exceeds the permitted limit for an account.
809//
810//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
811//   The resource cannot be created because your AWS account is suspended. For
812//   assistance, contact AWS Support.
813//
814//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
815//   The specified resource already exists.
816//
817//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
818//   An API error occurred. Wait a few minutes and try again.
819//
820//   * ErrCodeInvalidRoleException "InvalidRoleException"
821//   The specified role is invalid.
822//
823//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
824//   The specified resource was not found.
825//
826//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
827//   Indicates an incorrect combination of parameters, or a missing parameter.
828//
829// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateStack
830func (c *AppStream) CreateStack(input *CreateStackInput) (*CreateStackOutput, error) {
831	req, out := c.CreateStackRequest(input)
832	return out, req.Send()
833}
834
835// CreateStackWithContext is the same as CreateStack with the addition of
836// the ability to pass a context and additional request options.
837//
838// See CreateStack for details on how to use this API operation.
839//
840// The context must be non-nil and will be used for request cancellation. If
841// the context is nil a panic will occur. In the future the SDK may create
842// sub-contexts for http.Requests. See https://golang.org/pkg/context/
843// for more information on using Contexts.
844func (c *AppStream) CreateStackWithContext(ctx aws.Context, input *CreateStackInput, opts ...request.Option) (*CreateStackOutput, error) {
845	req, out := c.CreateStackRequest(input)
846	req.SetContext(ctx)
847	req.ApplyOptions(opts...)
848	return out, req.Send()
849}
850
851const opCreateStreamingURL = "CreateStreamingURL"
852
853// CreateStreamingURLRequest generates a "aws/request.Request" representing the
854// client's request for the CreateStreamingURL operation. The "output" return
855// value will be populated with the request's response once the request completes
856// successfully.
857//
858// Use "Send" method on the returned Request to send the API call to the service.
859// the "output" return value is not valid until after Send returns without error.
860//
861// See CreateStreamingURL for more information on using the CreateStreamingURL
862// API call, and error handling.
863//
864// This method is useful when you want to inject custom logic or configuration
865// into the SDK's request lifecycle. Such as custom headers, or retry logic.
866//
867//
868//    // Example sending a request using the CreateStreamingURLRequest method.
869//    req, resp := client.CreateStreamingURLRequest(params)
870//
871//    err := req.Send()
872//    if err == nil { // resp is now filled
873//        fmt.Println(resp)
874//    }
875//
876// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateStreamingURL
877func (c *AppStream) CreateStreamingURLRequest(input *CreateStreamingURLInput) (req *request.Request, output *CreateStreamingURLOutput) {
878	op := &request.Operation{
879		Name:       opCreateStreamingURL,
880		HTTPMethod: "POST",
881		HTTPPath:   "/",
882	}
883
884	if input == nil {
885		input = &CreateStreamingURLInput{}
886	}
887
888	output = &CreateStreamingURLOutput{}
889	req = c.newRequest(op, input, output)
890	return
891}
892
893// CreateStreamingURL API operation for Amazon AppStream.
894//
895// Creates a temporary URL to start an AppStream 2.0 streaming session for the
896// specified user. A streaming URL enables application streaming to be tested
897// without user setup.
898//
899// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
900// with awserr.Error's Code and Message methods to get detailed information about
901// the error.
902//
903// See the AWS API reference guide for Amazon AppStream's
904// API operation CreateStreamingURL for usage and error information.
905//
906// Returned Error Codes:
907//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
908//   The specified resource was not found.
909//
910//   * ErrCodeResourceNotAvailableException "ResourceNotAvailableException"
911//   The specified resource exists and is not in use, but isn't available.
912//
913//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
914//   The attempted operation is not permitted.
915//
916//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
917//   Indicates an incorrect combination of parameters, or a missing parameter.
918//
919// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateStreamingURL
920func (c *AppStream) CreateStreamingURL(input *CreateStreamingURLInput) (*CreateStreamingURLOutput, error) {
921	req, out := c.CreateStreamingURLRequest(input)
922	return out, req.Send()
923}
924
925// CreateStreamingURLWithContext is the same as CreateStreamingURL with the addition of
926// the ability to pass a context and additional request options.
927//
928// See CreateStreamingURL for details on how to use this API operation.
929//
930// The context must be non-nil and will be used for request cancellation. If
931// the context is nil a panic will occur. In the future the SDK may create
932// sub-contexts for http.Requests. See https://golang.org/pkg/context/
933// for more information on using Contexts.
934func (c *AppStream) CreateStreamingURLWithContext(ctx aws.Context, input *CreateStreamingURLInput, opts ...request.Option) (*CreateStreamingURLOutput, error) {
935	req, out := c.CreateStreamingURLRequest(input)
936	req.SetContext(ctx)
937	req.ApplyOptions(opts...)
938	return out, req.Send()
939}
940
941const opCreateUsageReportSubscription = "CreateUsageReportSubscription"
942
943// CreateUsageReportSubscriptionRequest generates a "aws/request.Request" representing the
944// client's request for the CreateUsageReportSubscription operation. The "output" return
945// value will be populated with the request's response once the request completes
946// successfully.
947//
948// Use "Send" method on the returned Request to send the API call to the service.
949// the "output" return value is not valid until after Send returns without error.
950//
951// See CreateUsageReportSubscription for more information on using the CreateUsageReportSubscription
952// API call, and error handling.
953//
954// This method is useful when you want to inject custom logic or configuration
955// into the SDK's request lifecycle. Such as custom headers, or retry logic.
956//
957//
958//    // Example sending a request using the CreateUsageReportSubscriptionRequest method.
959//    req, resp := client.CreateUsageReportSubscriptionRequest(params)
960//
961//    err := req.Send()
962//    if err == nil { // resp is now filled
963//        fmt.Println(resp)
964//    }
965//
966// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateUsageReportSubscription
967func (c *AppStream) CreateUsageReportSubscriptionRequest(input *CreateUsageReportSubscriptionInput) (req *request.Request, output *CreateUsageReportSubscriptionOutput) {
968	op := &request.Operation{
969		Name:       opCreateUsageReportSubscription,
970		HTTPMethod: "POST",
971		HTTPPath:   "/",
972	}
973
974	if input == nil {
975		input = &CreateUsageReportSubscriptionInput{}
976	}
977
978	output = &CreateUsageReportSubscriptionOutput{}
979	req = c.newRequest(op, input, output)
980	return
981}
982
983// CreateUsageReportSubscription API operation for Amazon AppStream.
984//
985// Creates a usage report subscription. Usage reports are generated daily.
986//
987// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
988// with awserr.Error's Code and Message methods to get detailed information about
989// the error.
990//
991// See the AWS API reference guide for Amazon AppStream's
992// API operation CreateUsageReportSubscription for usage and error information.
993//
994// Returned Error Codes:
995//   * ErrCodeInvalidRoleException "InvalidRoleException"
996//   The specified role is invalid.
997//
998//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
999//   The resource cannot be created because your AWS account is suspended. For
1000//   assistance, contact AWS Support.
1001//
1002//   * ErrCodeLimitExceededException "LimitExceededException"
1003//   The requested limit exceeds the permitted limit for an account.
1004//
1005// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateUsageReportSubscription
1006func (c *AppStream) CreateUsageReportSubscription(input *CreateUsageReportSubscriptionInput) (*CreateUsageReportSubscriptionOutput, error) {
1007	req, out := c.CreateUsageReportSubscriptionRequest(input)
1008	return out, req.Send()
1009}
1010
1011// CreateUsageReportSubscriptionWithContext is the same as CreateUsageReportSubscription with the addition of
1012// the ability to pass a context and additional request options.
1013//
1014// See CreateUsageReportSubscription for details on how to use this API operation.
1015//
1016// The context must be non-nil and will be used for request cancellation. If
1017// the context is nil a panic will occur. In the future the SDK may create
1018// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1019// for more information on using Contexts.
1020func (c *AppStream) CreateUsageReportSubscriptionWithContext(ctx aws.Context, input *CreateUsageReportSubscriptionInput, opts ...request.Option) (*CreateUsageReportSubscriptionOutput, error) {
1021	req, out := c.CreateUsageReportSubscriptionRequest(input)
1022	req.SetContext(ctx)
1023	req.ApplyOptions(opts...)
1024	return out, req.Send()
1025}
1026
1027const opCreateUser = "CreateUser"
1028
1029// CreateUserRequest generates a "aws/request.Request" representing the
1030// client's request for the CreateUser operation. The "output" return
1031// value will be populated with the request's response once the request completes
1032// successfully.
1033//
1034// Use "Send" method on the returned Request to send the API call to the service.
1035// the "output" return value is not valid until after Send returns without error.
1036//
1037// See CreateUser for more information on using the CreateUser
1038// API call, and error handling.
1039//
1040// This method is useful when you want to inject custom logic or configuration
1041// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1042//
1043//
1044//    // Example sending a request using the CreateUserRequest method.
1045//    req, resp := client.CreateUserRequest(params)
1046//
1047//    err := req.Send()
1048//    if err == nil { // resp is now filled
1049//        fmt.Println(resp)
1050//    }
1051//
1052// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateUser
1053func (c *AppStream) CreateUserRequest(input *CreateUserInput) (req *request.Request, output *CreateUserOutput) {
1054	op := &request.Operation{
1055		Name:       opCreateUser,
1056		HTTPMethod: "POST",
1057		HTTPPath:   "/",
1058	}
1059
1060	if input == nil {
1061		input = &CreateUserInput{}
1062	}
1063
1064	output = &CreateUserOutput{}
1065	req = c.newRequest(op, input, output)
1066	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1067	return
1068}
1069
1070// CreateUser API operation for Amazon AppStream.
1071//
1072// Creates a new user in the user pool.
1073//
1074// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1075// with awserr.Error's Code and Message methods to get detailed information about
1076// the error.
1077//
1078// See the AWS API reference guide for Amazon AppStream's
1079// API operation CreateUser for usage and error information.
1080//
1081// Returned Error Codes:
1082//   * ErrCodeResourceAlreadyExistsException "ResourceAlreadyExistsException"
1083//   The specified resource already exists.
1084//
1085//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
1086//   The resource cannot be created because your AWS account is suspended. For
1087//   assistance, contact AWS Support.
1088//
1089//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
1090//   Indicates an incorrect combination of parameters, or a missing parameter.
1091//
1092//   * ErrCodeLimitExceededException "LimitExceededException"
1093//   The requested limit exceeds the permitted limit for an account.
1094//
1095//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
1096//   The attempted operation is not permitted.
1097//
1098// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateUser
1099func (c *AppStream) CreateUser(input *CreateUserInput) (*CreateUserOutput, error) {
1100	req, out := c.CreateUserRequest(input)
1101	return out, req.Send()
1102}
1103
1104// CreateUserWithContext is the same as CreateUser with the addition of
1105// the ability to pass a context and additional request options.
1106//
1107// See CreateUser for details on how to use this API operation.
1108//
1109// The context must be non-nil and will be used for request cancellation. If
1110// the context is nil a panic will occur. In the future the SDK may create
1111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1112// for more information on using Contexts.
1113func (c *AppStream) CreateUserWithContext(ctx aws.Context, input *CreateUserInput, opts ...request.Option) (*CreateUserOutput, error) {
1114	req, out := c.CreateUserRequest(input)
1115	req.SetContext(ctx)
1116	req.ApplyOptions(opts...)
1117	return out, req.Send()
1118}
1119
1120const opDeleteDirectoryConfig = "DeleteDirectoryConfig"
1121
1122// DeleteDirectoryConfigRequest generates a "aws/request.Request" representing the
1123// client's request for the DeleteDirectoryConfig operation. The "output" return
1124// value will be populated with the request's response once the request completes
1125// successfully.
1126//
1127// Use "Send" method on the returned Request to send the API call to the service.
1128// the "output" return value is not valid until after Send returns without error.
1129//
1130// See DeleteDirectoryConfig for more information on using the DeleteDirectoryConfig
1131// API call, and error handling.
1132//
1133// This method is useful when you want to inject custom logic or configuration
1134// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1135//
1136//
1137//    // Example sending a request using the DeleteDirectoryConfigRequest method.
1138//    req, resp := client.DeleteDirectoryConfigRequest(params)
1139//
1140//    err := req.Send()
1141//    if err == nil { // resp is now filled
1142//        fmt.Println(resp)
1143//    }
1144//
1145// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteDirectoryConfig
1146func (c *AppStream) DeleteDirectoryConfigRequest(input *DeleteDirectoryConfigInput) (req *request.Request, output *DeleteDirectoryConfigOutput) {
1147	op := &request.Operation{
1148		Name:       opDeleteDirectoryConfig,
1149		HTTPMethod: "POST",
1150		HTTPPath:   "/",
1151	}
1152
1153	if input == nil {
1154		input = &DeleteDirectoryConfigInput{}
1155	}
1156
1157	output = &DeleteDirectoryConfigOutput{}
1158	req = c.newRequest(op, input, output)
1159	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1160	return
1161}
1162
1163// DeleteDirectoryConfig API operation for Amazon AppStream.
1164//
1165// Deletes the specified Directory Config object from AppStream 2.0. This object
1166// includes the information required to join streaming instances to an Active
1167// Directory domain.
1168//
1169// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1170// with awserr.Error's Code and Message methods to get detailed information about
1171// the error.
1172//
1173// See the AWS API reference guide for Amazon AppStream's
1174// API operation DeleteDirectoryConfig for usage and error information.
1175//
1176// Returned Error Codes:
1177//   * ErrCodeResourceInUseException "ResourceInUseException"
1178//   The specified resource is in use.
1179//
1180//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1181//   The specified resource was not found.
1182//
1183// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteDirectoryConfig
1184func (c *AppStream) DeleteDirectoryConfig(input *DeleteDirectoryConfigInput) (*DeleteDirectoryConfigOutput, error) {
1185	req, out := c.DeleteDirectoryConfigRequest(input)
1186	return out, req.Send()
1187}
1188
1189// DeleteDirectoryConfigWithContext is the same as DeleteDirectoryConfig with the addition of
1190// the ability to pass a context and additional request options.
1191//
1192// See DeleteDirectoryConfig for details on how to use this API operation.
1193//
1194// The context must be non-nil and will be used for request cancellation. If
1195// the context is nil a panic will occur. In the future the SDK may create
1196// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1197// for more information on using Contexts.
1198func (c *AppStream) DeleteDirectoryConfigWithContext(ctx aws.Context, input *DeleteDirectoryConfigInput, opts ...request.Option) (*DeleteDirectoryConfigOutput, error) {
1199	req, out := c.DeleteDirectoryConfigRequest(input)
1200	req.SetContext(ctx)
1201	req.ApplyOptions(opts...)
1202	return out, req.Send()
1203}
1204
1205const opDeleteFleet = "DeleteFleet"
1206
1207// DeleteFleetRequest generates a "aws/request.Request" representing the
1208// client's request for the DeleteFleet operation. The "output" return
1209// value will be populated with the request's response once the request completes
1210// successfully.
1211//
1212// Use "Send" method on the returned Request to send the API call to the service.
1213// the "output" return value is not valid until after Send returns without error.
1214//
1215// See DeleteFleet for more information on using the DeleteFleet
1216// API call, and error handling.
1217//
1218// This method is useful when you want to inject custom logic or configuration
1219// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1220//
1221//
1222//    // Example sending a request using the DeleteFleetRequest method.
1223//    req, resp := client.DeleteFleetRequest(params)
1224//
1225//    err := req.Send()
1226//    if err == nil { // resp is now filled
1227//        fmt.Println(resp)
1228//    }
1229//
1230// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteFleet
1231func (c *AppStream) DeleteFleetRequest(input *DeleteFleetInput) (req *request.Request, output *DeleteFleetOutput) {
1232	op := &request.Operation{
1233		Name:       opDeleteFleet,
1234		HTTPMethod: "POST",
1235		HTTPPath:   "/",
1236	}
1237
1238	if input == nil {
1239		input = &DeleteFleetInput{}
1240	}
1241
1242	output = &DeleteFleetOutput{}
1243	req = c.newRequest(op, input, output)
1244	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1245	return
1246}
1247
1248// DeleteFleet API operation for Amazon AppStream.
1249//
1250// Deletes the specified fleet.
1251//
1252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1253// with awserr.Error's Code and Message methods to get detailed information about
1254// the error.
1255//
1256// See the AWS API reference guide for Amazon AppStream's
1257// API operation DeleteFleet for usage and error information.
1258//
1259// Returned Error Codes:
1260//   * ErrCodeResourceInUseException "ResourceInUseException"
1261//   The specified resource is in use.
1262//
1263//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1264//   The specified resource was not found.
1265//
1266//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
1267//   An API error occurred. Wait a few minutes and try again.
1268//
1269// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteFleet
1270func (c *AppStream) DeleteFleet(input *DeleteFleetInput) (*DeleteFleetOutput, error) {
1271	req, out := c.DeleteFleetRequest(input)
1272	return out, req.Send()
1273}
1274
1275// DeleteFleetWithContext is the same as DeleteFleet with the addition of
1276// the ability to pass a context and additional request options.
1277//
1278// See DeleteFleet for details on how to use this API operation.
1279//
1280// The context must be non-nil and will be used for request cancellation. If
1281// the context is nil a panic will occur. In the future the SDK may create
1282// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1283// for more information on using Contexts.
1284func (c *AppStream) DeleteFleetWithContext(ctx aws.Context, input *DeleteFleetInput, opts ...request.Option) (*DeleteFleetOutput, error) {
1285	req, out := c.DeleteFleetRequest(input)
1286	req.SetContext(ctx)
1287	req.ApplyOptions(opts...)
1288	return out, req.Send()
1289}
1290
1291const opDeleteImage = "DeleteImage"
1292
1293// DeleteImageRequest generates a "aws/request.Request" representing the
1294// client's request for the DeleteImage operation. The "output" return
1295// value will be populated with the request's response once the request completes
1296// successfully.
1297//
1298// Use "Send" method on the returned Request to send the API call to the service.
1299// the "output" return value is not valid until after Send returns without error.
1300//
1301// See DeleteImage for more information on using the DeleteImage
1302// API call, and error handling.
1303//
1304// This method is useful when you want to inject custom logic or configuration
1305// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1306//
1307//
1308//    // Example sending a request using the DeleteImageRequest method.
1309//    req, resp := client.DeleteImageRequest(params)
1310//
1311//    err := req.Send()
1312//    if err == nil { // resp is now filled
1313//        fmt.Println(resp)
1314//    }
1315//
1316// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImage
1317func (c *AppStream) DeleteImageRequest(input *DeleteImageInput) (req *request.Request, output *DeleteImageOutput) {
1318	op := &request.Operation{
1319		Name:       opDeleteImage,
1320		HTTPMethod: "POST",
1321		HTTPPath:   "/",
1322	}
1323
1324	if input == nil {
1325		input = &DeleteImageInput{}
1326	}
1327
1328	output = &DeleteImageOutput{}
1329	req = c.newRequest(op, input, output)
1330	return
1331}
1332
1333// DeleteImage API operation for Amazon AppStream.
1334//
1335// Deletes the specified image. You cannot delete an image when it is in use.
1336// After you delete an image, you cannot provision new capacity using the image.
1337//
1338// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1339// with awserr.Error's Code and Message methods to get detailed information about
1340// the error.
1341//
1342// See the AWS API reference guide for Amazon AppStream's
1343// API operation DeleteImage for usage and error information.
1344//
1345// Returned Error Codes:
1346//   * ErrCodeResourceInUseException "ResourceInUseException"
1347//   The specified resource is in use.
1348//
1349//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1350//   The specified resource was not found.
1351//
1352//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
1353//   The attempted operation is not permitted.
1354//
1355//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
1356//   An API error occurred. Wait a few minutes and try again.
1357//
1358// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImage
1359func (c *AppStream) DeleteImage(input *DeleteImageInput) (*DeleteImageOutput, error) {
1360	req, out := c.DeleteImageRequest(input)
1361	return out, req.Send()
1362}
1363
1364// DeleteImageWithContext is the same as DeleteImage with the addition of
1365// the ability to pass a context and additional request options.
1366//
1367// See DeleteImage for details on how to use this API operation.
1368//
1369// The context must be non-nil and will be used for request cancellation. If
1370// the context is nil a panic will occur. In the future the SDK may create
1371// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1372// for more information on using Contexts.
1373func (c *AppStream) DeleteImageWithContext(ctx aws.Context, input *DeleteImageInput, opts ...request.Option) (*DeleteImageOutput, error) {
1374	req, out := c.DeleteImageRequest(input)
1375	req.SetContext(ctx)
1376	req.ApplyOptions(opts...)
1377	return out, req.Send()
1378}
1379
1380const opDeleteImageBuilder = "DeleteImageBuilder"
1381
1382// DeleteImageBuilderRequest generates a "aws/request.Request" representing the
1383// client's request for the DeleteImageBuilder operation. The "output" return
1384// value will be populated with the request's response once the request completes
1385// successfully.
1386//
1387// Use "Send" method on the returned Request to send the API call to the service.
1388// the "output" return value is not valid until after Send returns without error.
1389//
1390// See DeleteImageBuilder for more information on using the DeleteImageBuilder
1391// API call, and error handling.
1392//
1393// This method is useful when you want to inject custom logic or configuration
1394// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1395//
1396//
1397//    // Example sending a request using the DeleteImageBuilderRequest method.
1398//    req, resp := client.DeleteImageBuilderRequest(params)
1399//
1400//    err := req.Send()
1401//    if err == nil { // resp is now filled
1402//        fmt.Println(resp)
1403//    }
1404//
1405// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImageBuilder
1406func (c *AppStream) DeleteImageBuilderRequest(input *DeleteImageBuilderInput) (req *request.Request, output *DeleteImageBuilderOutput) {
1407	op := &request.Operation{
1408		Name:       opDeleteImageBuilder,
1409		HTTPMethod: "POST",
1410		HTTPPath:   "/",
1411	}
1412
1413	if input == nil {
1414		input = &DeleteImageBuilderInput{}
1415	}
1416
1417	output = &DeleteImageBuilderOutput{}
1418	req = c.newRequest(op, input, output)
1419	return
1420}
1421
1422// DeleteImageBuilder API operation for Amazon AppStream.
1423//
1424// Deletes the specified image builder and releases the capacity.
1425//
1426// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1427// with awserr.Error's Code and Message methods to get detailed information about
1428// the error.
1429//
1430// See the AWS API reference guide for Amazon AppStream's
1431// API operation DeleteImageBuilder for usage and error information.
1432//
1433// Returned Error Codes:
1434//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1435//   The specified resource was not found.
1436//
1437//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
1438//   The attempted operation is not permitted.
1439//
1440//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
1441//   An API error occurred. Wait a few minutes and try again.
1442//
1443// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImageBuilder
1444func (c *AppStream) DeleteImageBuilder(input *DeleteImageBuilderInput) (*DeleteImageBuilderOutput, error) {
1445	req, out := c.DeleteImageBuilderRequest(input)
1446	return out, req.Send()
1447}
1448
1449// DeleteImageBuilderWithContext is the same as DeleteImageBuilder with the addition of
1450// the ability to pass a context and additional request options.
1451//
1452// See DeleteImageBuilder for details on how to use this API operation.
1453//
1454// The context must be non-nil and will be used for request cancellation. If
1455// the context is nil a panic will occur. In the future the SDK may create
1456// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1457// for more information on using Contexts.
1458func (c *AppStream) DeleteImageBuilderWithContext(ctx aws.Context, input *DeleteImageBuilderInput, opts ...request.Option) (*DeleteImageBuilderOutput, error) {
1459	req, out := c.DeleteImageBuilderRequest(input)
1460	req.SetContext(ctx)
1461	req.ApplyOptions(opts...)
1462	return out, req.Send()
1463}
1464
1465const opDeleteImagePermissions = "DeleteImagePermissions"
1466
1467// DeleteImagePermissionsRequest generates a "aws/request.Request" representing the
1468// client's request for the DeleteImagePermissions operation. The "output" return
1469// value will be populated with the request's response once the request completes
1470// successfully.
1471//
1472// Use "Send" method on the returned Request to send the API call to the service.
1473// the "output" return value is not valid until after Send returns without error.
1474//
1475// See DeleteImagePermissions for more information on using the DeleteImagePermissions
1476// API call, and error handling.
1477//
1478// This method is useful when you want to inject custom logic or configuration
1479// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1480//
1481//
1482//    // Example sending a request using the DeleteImagePermissionsRequest method.
1483//    req, resp := client.DeleteImagePermissionsRequest(params)
1484//
1485//    err := req.Send()
1486//    if err == nil { // resp is now filled
1487//        fmt.Println(resp)
1488//    }
1489//
1490// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImagePermissions
1491func (c *AppStream) DeleteImagePermissionsRequest(input *DeleteImagePermissionsInput) (req *request.Request, output *DeleteImagePermissionsOutput) {
1492	op := &request.Operation{
1493		Name:       opDeleteImagePermissions,
1494		HTTPMethod: "POST",
1495		HTTPPath:   "/",
1496	}
1497
1498	if input == nil {
1499		input = &DeleteImagePermissionsInput{}
1500	}
1501
1502	output = &DeleteImagePermissionsOutput{}
1503	req = c.newRequest(op, input, output)
1504	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1505	return
1506}
1507
1508// DeleteImagePermissions API operation for Amazon AppStream.
1509//
1510// Deletes permissions for the specified private image. After you delete permissions
1511// for an image, AWS accounts to which you previously granted these permissions
1512// can no longer use the image.
1513//
1514// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1515// with awserr.Error's Code and Message methods to get detailed information about
1516// the error.
1517//
1518// See the AWS API reference guide for Amazon AppStream's
1519// API operation DeleteImagePermissions for usage and error information.
1520//
1521// Returned Error Codes:
1522//   * ErrCodeResourceNotAvailableException "ResourceNotAvailableException"
1523//   The specified resource exists and is not in use, but isn't available.
1524//
1525//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1526//   The specified resource was not found.
1527//
1528// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteImagePermissions
1529func (c *AppStream) DeleteImagePermissions(input *DeleteImagePermissionsInput) (*DeleteImagePermissionsOutput, error) {
1530	req, out := c.DeleteImagePermissionsRequest(input)
1531	return out, req.Send()
1532}
1533
1534// DeleteImagePermissionsWithContext is the same as DeleteImagePermissions with the addition of
1535// the ability to pass a context and additional request options.
1536//
1537// See DeleteImagePermissions for details on how to use this API operation.
1538//
1539// The context must be non-nil and will be used for request cancellation. If
1540// the context is nil a panic will occur. In the future the SDK may create
1541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1542// for more information on using Contexts.
1543func (c *AppStream) DeleteImagePermissionsWithContext(ctx aws.Context, input *DeleteImagePermissionsInput, opts ...request.Option) (*DeleteImagePermissionsOutput, error) {
1544	req, out := c.DeleteImagePermissionsRequest(input)
1545	req.SetContext(ctx)
1546	req.ApplyOptions(opts...)
1547	return out, req.Send()
1548}
1549
1550const opDeleteStack = "DeleteStack"
1551
1552// DeleteStackRequest generates a "aws/request.Request" representing the
1553// client's request for the DeleteStack operation. The "output" return
1554// value will be populated with the request's response once the request completes
1555// successfully.
1556//
1557// Use "Send" method on the returned Request to send the API call to the service.
1558// the "output" return value is not valid until after Send returns without error.
1559//
1560// See DeleteStack for more information on using the DeleteStack
1561// API call, and error handling.
1562//
1563// This method is useful when you want to inject custom logic or configuration
1564// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1565//
1566//
1567//    // Example sending a request using the DeleteStackRequest method.
1568//    req, resp := client.DeleteStackRequest(params)
1569//
1570//    err := req.Send()
1571//    if err == nil { // resp is now filled
1572//        fmt.Println(resp)
1573//    }
1574//
1575// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteStack
1576func (c *AppStream) DeleteStackRequest(input *DeleteStackInput) (req *request.Request, output *DeleteStackOutput) {
1577	op := &request.Operation{
1578		Name:       opDeleteStack,
1579		HTTPMethod: "POST",
1580		HTTPPath:   "/",
1581	}
1582
1583	if input == nil {
1584		input = &DeleteStackInput{}
1585	}
1586
1587	output = &DeleteStackOutput{}
1588	req = c.newRequest(op, input, output)
1589	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1590	return
1591}
1592
1593// DeleteStack API operation for Amazon AppStream.
1594//
1595// Deletes the specified stack. After the stack is deleted, the application
1596// streaming environment provided by the stack is no longer available to users.
1597// Also, any reservations made for application streaming sessions for the stack
1598// are released.
1599//
1600// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1601// with awserr.Error's Code and Message methods to get detailed information about
1602// the error.
1603//
1604// See the AWS API reference guide for Amazon AppStream's
1605// API operation DeleteStack for usage and error information.
1606//
1607// Returned Error Codes:
1608//   * ErrCodeResourceInUseException "ResourceInUseException"
1609//   The specified resource is in use.
1610//
1611//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1612//   The specified resource was not found.
1613//
1614//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
1615//   An API error occurred. Wait a few minutes and try again.
1616//
1617// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteStack
1618func (c *AppStream) DeleteStack(input *DeleteStackInput) (*DeleteStackOutput, error) {
1619	req, out := c.DeleteStackRequest(input)
1620	return out, req.Send()
1621}
1622
1623// DeleteStackWithContext is the same as DeleteStack with the addition of
1624// the ability to pass a context and additional request options.
1625//
1626// See DeleteStack for details on how to use this API operation.
1627//
1628// The context must be non-nil and will be used for request cancellation. If
1629// the context is nil a panic will occur. In the future the SDK may create
1630// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1631// for more information on using Contexts.
1632func (c *AppStream) DeleteStackWithContext(ctx aws.Context, input *DeleteStackInput, opts ...request.Option) (*DeleteStackOutput, error) {
1633	req, out := c.DeleteStackRequest(input)
1634	req.SetContext(ctx)
1635	req.ApplyOptions(opts...)
1636	return out, req.Send()
1637}
1638
1639const opDeleteUsageReportSubscription = "DeleteUsageReportSubscription"
1640
1641// DeleteUsageReportSubscriptionRequest generates a "aws/request.Request" representing the
1642// client's request for the DeleteUsageReportSubscription operation. The "output" return
1643// value will be populated with the request's response once the request completes
1644// successfully.
1645//
1646// Use "Send" method on the returned Request to send the API call to the service.
1647// the "output" return value is not valid until after Send returns without error.
1648//
1649// See DeleteUsageReportSubscription for more information on using the DeleteUsageReportSubscription
1650// API call, and error handling.
1651//
1652// This method is useful when you want to inject custom logic or configuration
1653// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1654//
1655//
1656//    // Example sending a request using the DeleteUsageReportSubscriptionRequest method.
1657//    req, resp := client.DeleteUsageReportSubscriptionRequest(params)
1658//
1659//    err := req.Send()
1660//    if err == nil { // resp is now filled
1661//        fmt.Println(resp)
1662//    }
1663//
1664// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteUsageReportSubscription
1665func (c *AppStream) DeleteUsageReportSubscriptionRequest(input *DeleteUsageReportSubscriptionInput) (req *request.Request, output *DeleteUsageReportSubscriptionOutput) {
1666	op := &request.Operation{
1667		Name:       opDeleteUsageReportSubscription,
1668		HTTPMethod: "POST",
1669		HTTPPath:   "/",
1670	}
1671
1672	if input == nil {
1673		input = &DeleteUsageReportSubscriptionInput{}
1674	}
1675
1676	output = &DeleteUsageReportSubscriptionOutput{}
1677	req = c.newRequest(op, input, output)
1678	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1679	return
1680}
1681
1682// DeleteUsageReportSubscription API operation for Amazon AppStream.
1683//
1684// Disables usage report generation.
1685//
1686// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1687// with awserr.Error's Code and Message methods to get detailed information about
1688// the error.
1689//
1690// See the AWS API reference guide for Amazon AppStream's
1691// API operation DeleteUsageReportSubscription for usage and error information.
1692//
1693// Returned Error Codes:
1694//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
1695//   The resource cannot be created because your AWS account is suspended. For
1696//   assistance, contact AWS Support.
1697//
1698//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1699//   The specified resource was not found.
1700//
1701// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteUsageReportSubscription
1702func (c *AppStream) DeleteUsageReportSubscription(input *DeleteUsageReportSubscriptionInput) (*DeleteUsageReportSubscriptionOutput, error) {
1703	req, out := c.DeleteUsageReportSubscriptionRequest(input)
1704	return out, req.Send()
1705}
1706
1707// DeleteUsageReportSubscriptionWithContext is the same as DeleteUsageReportSubscription with the addition of
1708// the ability to pass a context and additional request options.
1709//
1710// See DeleteUsageReportSubscription for details on how to use this API operation.
1711//
1712// The context must be non-nil and will be used for request cancellation. If
1713// the context is nil a panic will occur. In the future the SDK may create
1714// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1715// for more information on using Contexts.
1716func (c *AppStream) DeleteUsageReportSubscriptionWithContext(ctx aws.Context, input *DeleteUsageReportSubscriptionInput, opts ...request.Option) (*DeleteUsageReportSubscriptionOutput, error) {
1717	req, out := c.DeleteUsageReportSubscriptionRequest(input)
1718	req.SetContext(ctx)
1719	req.ApplyOptions(opts...)
1720	return out, req.Send()
1721}
1722
1723const opDeleteUser = "DeleteUser"
1724
1725// DeleteUserRequest generates a "aws/request.Request" representing the
1726// client's request for the DeleteUser operation. The "output" return
1727// value will be populated with the request's response once the request completes
1728// successfully.
1729//
1730// Use "Send" method on the returned Request to send the API call to the service.
1731// the "output" return value is not valid until after Send returns without error.
1732//
1733// See DeleteUser for more information on using the DeleteUser
1734// API call, and error handling.
1735//
1736// This method is useful when you want to inject custom logic or configuration
1737// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1738//
1739//
1740//    // Example sending a request using the DeleteUserRequest method.
1741//    req, resp := client.DeleteUserRequest(params)
1742//
1743//    err := req.Send()
1744//    if err == nil { // resp is now filled
1745//        fmt.Println(resp)
1746//    }
1747//
1748// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteUser
1749func (c *AppStream) DeleteUserRequest(input *DeleteUserInput) (req *request.Request, output *DeleteUserOutput) {
1750	op := &request.Operation{
1751		Name:       opDeleteUser,
1752		HTTPMethod: "POST",
1753		HTTPPath:   "/",
1754	}
1755
1756	if input == nil {
1757		input = &DeleteUserInput{}
1758	}
1759
1760	output = &DeleteUserOutput{}
1761	req = c.newRequest(op, input, output)
1762	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1763	return
1764}
1765
1766// DeleteUser API operation for Amazon AppStream.
1767//
1768// Deletes a user from the user pool.
1769//
1770// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1771// with awserr.Error's Code and Message methods to get detailed information about
1772// the error.
1773//
1774// See the AWS API reference guide for Amazon AppStream's
1775// API operation DeleteUser for usage and error information.
1776//
1777// Returned Error Codes:
1778//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1779//   The specified resource was not found.
1780//
1781// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteUser
1782func (c *AppStream) DeleteUser(input *DeleteUserInput) (*DeleteUserOutput, error) {
1783	req, out := c.DeleteUserRequest(input)
1784	return out, req.Send()
1785}
1786
1787// DeleteUserWithContext is the same as DeleteUser with the addition of
1788// the ability to pass a context and additional request options.
1789//
1790// See DeleteUser for details on how to use this API operation.
1791//
1792// The context must be non-nil and will be used for request cancellation. If
1793// the context is nil a panic will occur. In the future the SDK may create
1794// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1795// for more information on using Contexts.
1796func (c *AppStream) DeleteUserWithContext(ctx aws.Context, input *DeleteUserInput, opts ...request.Option) (*DeleteUserOutput, error) {
1797	req, out := c.DeleteUserRequest(input)
1798	req.SetContext(ctx)
1799	req.ApplyOptions(opts...)
1800	return out, req.Send()
1801}
1802
1803const opDescribeDirectoryConfigs = "DescribeDirectoryConfigs"
1804
1805// DescribeDirectoryConfigsRequest generates a "aws/request.Request" representing the
1806// client's request for the DescribeDirectoryConfigs operation. The "output" return
1807// value will be populated with the request's response once the request completes
1808// successfully.
1809//
1810// Use "Send" method on the returned Request to send the API call to the service.
1811// the "output" return value is not valid until after Send returns without error.
1812//
1813// See DescribeDirectoryConfigs for more information on using the DescribeDirectoryConfigs
1814// API call, and error handling.
1815//
1816// This method is useful when you want to inject custom logic or configuration
1817// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1818//
1819//
1820//    // Example sending a request using the DescribeDirectoryConfigsRequest method.
1821//    req, resp := client.DescribeDirectoryConfigsRequest(params)
1822//
1823//    err := req.Send()
1824//    if err == nil { // resp is now filled
1825//        fmt.Println(resp)
1826//    }
1827//
1828// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeDirectoryConfigs
1829func (c *AppStream) DescribeDirectoryConfigsRequest(input *DescribeDirectoryConfigsInput) (req *request.Request, output *DescribeDirectoryConfigsOutput) {
1830	op := &request.Operation{
1831		Name:       opDescribeDirectoryConfigs,
1832		HTTPMethod: "POST",
1833		HTTPPath:   "/",
1834	}
1835
1836	if input == nil {
1837		input = &DescribeDirectoryConfigsInput{}
1838	}
1839
1840	output = &DescribeDirectoryConfigsOutput{}
1841	req = c.newRequest(op, input, output)
1842	return
1843}
1844
1845// DescribeDirectoryConfigs API operation for Amazon AppStream.
1846//
1847// Retrieves a list that describes one or more specified Directory Config objects
1848// for AppStream 2.0, if the names for these objects are provided. Otherwise,
1849// all Directory Config objects in the account are described. These objects
1850// include the configuration information required to join fleets and image builders
1851// to Microsoft Active Directory domains.
1852//
1853// Although the response syntax in this topic includes the account password,
1854// this password is not returned in the actual response.
1855//
1856// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1857// with awserr.Error's Code and Message methods to get detailed information about
1858// the error.
1859//
1860// See the AWS API reference guide for Amazon AppStream's
1861// API operation DescribeDirectoryConfigs for usage and error information.
1862//
1863// Returned Error Codes:
1864//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1865//   The specified resource was not found.
1866//
1867// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeDirectoryConfigs
1868func (c *AppStream) DescribeDirectoryConfigs(input *DescribeDirectoryConfigsInput) (*DescribeDirectoryConfigsOutput, error) {
1869	req, out := c.DescribeDirectoryConfigsRequest(input)
1870	return out, req.Send()
1871}
1872
1873// DescribeDirectoryConfigsWithContext is the same as DescribeDirectoryConfigs with the addition of
1874// the ability to pass a context and additional request options.
1875//
1876// See DescribeDirectoryConfigs for details on how to use this API operation.
1877//
1878// The context must be non-nil and will be used for request cancellation. If
1879// the context is nil a panic will occur. In the future the SDK may create
1880// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1881// for more information on using Contexts.
1882func (c *AppStream) DescribeDirectoryConfigsWithContext(ctx aws.Context, input *DescribeDirectoryConfigsInput, opts ...request.Option) (*DescribeDirectoryConfigsOutput, error) {
1883	req, out := c.DescribeDirectoryConfigsRequest(input)
1884	req.SetContext(ctx)
1885	req.ApplyOptions(opts...)
1886	return out, req.Send()
1887}
1888
1889const opDescribeFleets = "DescribeFleets"
1890
1891// DescribeFleetsRequest generates a "aws/request.Request" representing the
1892// client's request for the DescribeFleets operation. The "output" return
1893// value will be populated with the request's response once the request completes
1894// successfully.
1895//
1896// Use "Send" method on the returned Request to send the API call to the service.
1897// the "output" return value is not valid until after Send returns without error.
1898//
1899// See DescribeFleets for more information on using the DescribeFleets
1900// API call, and error handling.
1901//
1902// This method is useful when you want to inject custom logic or configuration
1903// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1904//
1905//
1906//    // Example sending a request using the DescribeFleetsRequest method.
1907//    req, resp := client.DescribeFleetsRequest(params)
1908//
1909//    err := req.Send()
1910//    if err == nil { // resp is now filled
1911//        fmt.Println(resp)
1912//    }
1913//
1914// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeFleets
1915func (c *AppStream) DescribeFleetsRequest(input *DescribeFleetsInput) (req *request.Request, output *DescribeFleetsOutput) {
1916	op := &request.Operation{
1917		Name:       opDescribeFleets,
1918		HTTPMethod: "POST",
1919		HTTPPath:   "/",
1920	}
1921
1922	if input == nil {
1923		input = &DescribeFleetsInput{}
1924	}
1925
1926	output = &DescribeFleetsOutput{}
1927	req = c.newRequest(op, input, output)
1928	return
1929}
1930
1931// DescribeFleets API operation for Amazon AppStream.
1932//
1933// Retrieves a list that describes one or more specified fleets, if the fleet
1934// names are provided. Otherwise, all fleets in the account are described.
1935//
1936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1937// with awserr.Error's Code and Message methods to get detailed information about
1938// the error.
1939//
1940// See the AWS API reference guide for Amazon AppStream's
1941// API operation DescribeFleets for usage and error information.
1942//
1943// Returned Error Codes:
1944//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
1945//   The specified resource was not found.
1946//
1947// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeFleets
1948func (c *AppStream) DescribeFleets(input *DescribeFleetsInput) (*DescribeFleetsOutput, error) {
1949	req, out := c.DescribeFleetsRequest(input)
1950	return out, req.Send()
1951}
1952
1953// DescribeFleetsWithContext is the same as DescribeFleets with the addition of
1954// the ability to pass a context and additional request options.
1955//
1956// See DescribeFleets for details on how to use this API operation.
1957//
1958// The context must be non-nil and will be used for request cancellation. If
1959// the context is nil a panic will occur. In the future the SDK may create
1960// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1961// for more information on using Contexts.
1962func (c *AppStream) DescribeFleetsWithContext(ctx aws.Context, input *DescribeFleetsInput, opts ...request.Option) (*DescribeFleetsOutput, error) {
1963	req, out := c.DescribeFleetsRequest(input)
1964	req.SetContext(ctx)
1965	req.ApplyOptions(opts...)
1966	return out, req.Send()
1967}
1968
1969const opDescribeImageBuilders = "DescribeImageBuilders"
1970
1971// DescribeImageBuildersRequest generates a "aws/request.Request" representing the
1972// client's request for the DescribeImageBuilders operation. The "output" return
1973// value will be populated with the request's response once the request completes
1974// successfully.
1975//
1976// Use "Send" method on the returned Request to send the API call to the service.
1977// the "output" return value is not valid until after Send returns without error.
1978//
1979// See DescribeImageBuilders for more information on using the DescribeImageBuilders
1980// API call, and error handling.
1981//
1982// This method is useful when you want to inject custom logic or configuration
1983// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1984//
1985//
1986//    // Example sending a request using the DescribeImageBuildersRequest method.
1987//    req, resp := client.DescribeImageBuildersRequest(params)
1988//
1989//    err := req.Send()
1990//    if err == nil { // resp is now filled
1991//        fmt.Println(resp)
1992//    }
1993//
1994// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImageBuilders
1995func (c *AppStream) DescribeImageBuildersRequest(input *DescribeImageBuildersInput) (req *request.Request, output *DescribeImageBuildersOutput) {
1996	op := &request.Operation{
1997		Name:       opDescribeImageBuilders,
1998		HTTPMethod: "POST",
1999		HTTPPath:   "/",
2000	}
2001
2002	if input == nil {
2003		input = &DescribeImageBuildersInput{}
2004	}
2005
2006	output = &DescribeImageBuildersOutput{}
2007	req = c.newRequest(op, input, output)
2008	return
2009}
2010
2011// DescribeImageBuilders API operation for Amazon AppStream.
2012//
2013// Retrieves a list that describes one or more specified image builders, if
2014// the image builder names are provided. Otherwise, all image builders in the
2015// account are described.
2016//
2017// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2018// with awserr.Error's Code and Message methods to get detailed information about
2019// the error.
2020//
2021// See the AWS API reference guide for Amazon AppStream's
2022// API operation DescribeImageBuilders for usage and error information.
2023//
2024// Returned Error Codes:
2025//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2026//   The specified resource was not found.
2027//
2028// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImageBuilders
2029func (c *AppStream) DescribeImageBuilders(input *DescribeImageBuildersInput) (*DescribeImageBuildersOutput, error) {
2030	req, out := c.DescribeImageBuildersRequest(input)
2031	return out, req.Send()
2032}
2033
2034// DescribeImageBuildersWithContext is the same as DescribeImageBuilders with the addition of
2035// the ability to pass a context and additional request options.
2036//
2037// See DescribeImageBuilders for details on how to use this API operation.
2038//
2039// The context must be non-nil and will be used for request cancellation. If
2040// the context is nil a panic will occur. In the future the SDK may create
2041// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2042// for more information on using Contexts.
2043func (c *AppStream) DescribeImageBuildersWithContext(ctx aws.Context, input *DescribeImageBuildersInput, opts ...request.Option) (*DescribeImageBuildersOutput, error) {
2044	req, out := c.DescribeImageBuildersRequest(input)
2045	req.SetContext(ctx)
2046	req.ApplyOptions(opts...)
2047	return out, req.Send()
2048}
2049
2050const opDescribeImagePermissions = "DescribeImagePermissions"
2051
2052// DescribeImagePermissionsRequest generates a "aws/request.Request" representing the
2053// client's request for the DescribeImagePermissions operation. The "output" return
2054// value will be populated with the request's response once the request completes
2055// successfully.
2056//
2057// Use "Send" method on the returned Request to send the API call to the service.
2058// the "output" return value is not valid until after Send returns without error.
2059//
2060// See DescribeImagePermissions for more information on using the DescribeImagePermissions
2061// API call, and error handling.
2062//
2063// This method is useful when you want to inject custom logic or configuration
2064// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2065//
2066//
2067//    // Example sending a request using the DescribeImagePermissionsRequest method.
2068//    req, resp := client.DescribeImagePermissionsRequest(params)
2069//
2070//    err := req.Send()
2071//    if err == nil { // resp is now filled
2072//        fmt.Println(resp)
2073//    }
2074//
2075// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImagePermissions
2076func (c *AppStream) DescribeImagePermissionsRequest(input *DescribeImagePermissionsInput) (req *request.Request, output *DescribeImagePermissionsOutput) {
2077	op := &request.Operation{
2078		Name:       opDescribeImagePermissions,
2079		HTTPMethod: "POST",
2080		HTTPPath:   "/",
2081		Paginator: &request.Paginator{
2082			InputTokens:     []string{"NextToken"},
2083			OutputTokens:    []string{"NextToken"},
2084			LimitToken:      "MaxResults",
2085			TruncationToken: "",
2086		},
2087	}
2088
2089	if input == nil {
2090		input = &DescribeImagePermissionsInput{}
2091	}
2092
2093	output = &DescribeImagePermissionsOutput{}
2094	req = c.newRequest(op, input, output)
2095	return
2096}
2097
2098// DescribeImagePermissions API operation for Amazon AppStream.
2099//
2100// Retrieves a list that describes the permissions for shared AWS account IDs
2101// on a private image that you own.
2102//
2103// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2104// with awserr.Error's Code and Message methods to get detailed information about
2105// the error.
2106//
2107// See the AWS API reference guide for Amazon AppStream's
2108// API operation DescribeImagePermissions for usage and error information.
2109//
2110// Returned Error Codes:
2111//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2112//   The specified resource was not found.
2113//
2114// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImagePermissions
2115func (c *AppStream) DescribeImagePermissions(input *DescribeImagePermissionsInput) (*DescribeImagePermissionsOutput, error) {
2116	req, out := c.DescribeImagePermissionsRequest(input)
2117	return out, req.Send()
2118}
2119
2120// DescribeImagePermissionsWithContext is the same as DescribeImagePermissions with the addition of
2121// the ability to pass a context and additional request options.
2122//
2123// See DescribeImagePermissions for details on how to use this API operation.
2124//
2125// The context must be non-nil and will be used for request cancellation. If
2126// the context is nil a panic will occur. In the future the SDK may create
2127// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2128// for more information on using Contexts.
2129func (c *AppStream) DescribeImagePermissionsWithContext(ctx aws.Context, input *DescribeImagePermissionsInput, opts ...request.Option) (*DescribeImagePermissionsOutput, error) {
2130	req, out := c.DescribeImagePermissionsRequest(input)
2131	req.SetContext(ctx)
2132	req.ApplyOptions(opts...)
2133	return out, req.Send()
2134}
2135
2136// DescribeImagePermissionsPages iterates over the pages of a DescribeImagePermissions operation,
2137// calling the "fn" function with the response data for each page. To stop
2138// iterating, return false from the fn function.
2139//
2140// See DescribeImagePermissions method for more information on how to use this operation.
2141//
2142// Note: This operation can generate multiple requests to a service.
2143//
2144//    // Example iterating over at most 3 pages of a DescribeImagePermissions operation.
2145//    pageNum := 0
2146//    err := client.DescribeImagePermissionsPages(params,
2147//        func(page *appstream.DescribeImagePermissionsOutput, lastPage bool) bool {
2148//            pageNum++
2149//            fmt.Println(page)
2150//            return pageNum <= 3
2151//        })
2152//
2153func (c *AppStream) DescribeImagePermissionsPages(input *DescribeImagePermissionsInput, fn func(*DescribeImagePermissionsOutput, bool) bool) error {
2154	return c.DescribeImagePermissionsPagesWithContext(aws.BackgroundContext(), input, fn)
2155}
2156
2157// DescribeImagePermissionsPagesWithContext same as DescribeImagePermissionsPages except
2158// it takes a Context and allows setting request options on the pages.
2159//
2160// The context must be non-nil and will be used for request cancellation. If
2161// the context is nil a panic will occur. In the future the SDK may create
2162// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2163// for more information on using Contexts.
2164func (c *AppStream) DescribeImagePermissionsPagesWithContext(ctx aws.Context, input *DescribeImagePermissionsInput, fn func(*DescribeImagePermissionsOutput, bool) bool, opts ...request.Option) error {
2165	p := request.Pagination{
2166		NewRequest: func() (*request.Request, error) {
2167			var inCpy *DescribeImagePermissionsInput
2168			if input != nil {
2169				tmp := *input
2170				inCpy = &tmp
2171			}
2172			req, _ := c.DescribeImagePermissionsRequest(inCpy)
2173			req.SetContext(ctx)
2174			req.ApplyOptions(opts...)
2175			return req, nil
2176		},
2177	}
2178
2179	for p.Next() {
2180		if !fn(p.Page().(*DescribeImagePermissionsOutput), !p.HasNextPage()) {
2181			break
2182		}
2183	}
2184
2185	return p.Err()
2186}
2187
2188const opDescribeImages = "DescribeImages"
2189
2190// DescribeImagesRequest generates a "aws/request.Request" representing the
2191// client's request for the DescribeImages operation. The "output" return
2192// value will be populated with the request's response once the request completes
2193// successfully.
2194//
2195// Use "Send" method on the returned Request to send the API call to the service.
2196// the "output" return value is not valid until after Send returns without error.
2197//
2198// See DescribeImages for more information on using the DescribeImages
2199// API call, and error handling.
2200//
2201// This method is useful when you want to inject custom logic or configuration
2202// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2203//
2204//
2205//    // Example sending a request using the DescribeImagesRequest method.
2206//    req, resp := client.DescribeImagesRequest(params)
2207//
2208//    err := req.Send()
2209//    if err == nil { // resp is now filled
2210//        fmt.Println(resp)
2211//    }
2212//
2213// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImages
2214func (c *AppStream) DescribeImagesRequest(input *DescribeImagesInput) (req *request.Request, output *DescribeImagesOutput) {
2215	op := &request.Operation{
2216		Name:       opDescribeImages,
2217		HTTPMethod: "POST",
2218		HTTPPath:   "/",
2219		Paginator: &request.Paginator{
2220			InputTokens:     []string{"NextToken"},
2221			OutputTokens:    []string{"NextToken"},
2222			LimitToken:      "MaxResults",
2223			TruncationToken: "",
2224		},
2225	}
2226
2227	if input == nil {
2228		input = &DescribeImagesInput{}
2229	}
2230
2231	output = &DescribeImagesOutput{}
2232	req = c.newRequest(op, input, output)
2233	return
2234}
2235
2236// DescribeImages API operation for Amazon AppStream.
2237//
2238// Retrieves a list that describes one or more specified images, if the image
2239// names or image ARNs are provided. Otherwise, all images in the account are
2240// described.
2241//
2242// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2243// with awserr.Error's Code and Message methods to get detailed information about
2244// the error.
2245//
2246// See the AWS API reference guide for Amazon AppStream's
2247// API operation DescribeImages for usage and error information.
2248//
2249// Returned Error Codes:
2250//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
2251//   Indicates an incorrect combination of parameters, or a missing parameter.
2252//
2253//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2254//   The specified resource was not found.
2255//
2256// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImages
2257func (c *AppStream) DescribeImages(input *DescribeImagesInput) (*DescribeImagesOutput, error) {
2258	req, out := c.DescribeImagesRequest(input)
2259	return out, req.Send()
2260}
2261
2262// DescribeImagesWithContext is the same as DescribeImages with the addition of
2263// the ability to pass a context and additional request options.
2264//
2265// See DescribeImages for details on how to use this API operation.
2266//
2267// The context must be non-nil and will be used for request cancellation. If
2268// the context is nil a panic will occur. In the future the SDK may create
2269// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2270// for more information on using Contexts.
2271func (c *AppStream) DescribeImagesWithContext(ctx aws.Context, input *DescribeImagesInput, opts ...request.Option) (*DescribeImagesOutput, error) {
2272	req, out := c.DescribeImagesRequest(input)
2273	req.SetContext(ctx)
2274	req.ApplyOptions(opts...)
2275	return out, req.Send()
2276}
2277
2278// DescribeImagesPages iterates over the pages of a DescribeImages operation,
2279// calling the "fn" function with the response data for each page. To stop
2280// iterating, return false from the fn function.
2281//
2282// See DescribeImages method for more information on how to use this operation.
2283//
2284// Note: This operation can generate multiple requests to a service.
2285//
2286//    // Example iterating over at most 3 pages of a DescribeImages operation.
2287//    pageNum := 0
2288//    err := client.DescribeImagesPages(params,
2289//        func(page *appstream.DescribeImagesOutput, lastPage bool) bool {
2290//            pageNum++
2291//            fmt.Println(page)
2292//            return pageNum <= 3
2293//        })
2294//
2295func (c *AppStream) DescribeImagesPages(input *DescribeImagesInput, fn func(*DescribeImagesOutput, bool) bool) error {
2296	return c.DescribeImagesPagesWithContext(aws.BackgroundContext(), input, fn)
2297}
2298
2299// DescribeImagesPagesWithContext same as DescribeImagesPages except
2300// it takes a Context and allows setting request options on the pages.
2301//
2302// The context must be non-nil and will be used for request cancellation. If
2303// the context is nil a panic will occur. In the future the SDK may create
2304// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2305// for more information on using Contexts.
2306func (c *AppStream) DescribeImagesPagesWithContext(ctx aws.Context, input *DescribeImagesInput, fn func(*DescribeImagesOutput, bool) bool, opts ...request.Option) error {
2307	p := request.Pagination{
2308		NewRequest: func() (*request.Request, error) {
2309			var inCpy *DescribeImagesInput
2310			if input != nil {
2311				tmp := *input
2312				inCpy = &tmp
2313			}
2314			req, _ := c.DescribeImagesRequest(inCpy)
2315			req.SetContext(ctx)
2316			req.ApplyOptions(opts...)
2317			return req, nil
2318		},
2319	}
2320
2321	for p.Next() {
2322		if !fn(p.Page().(*DescribeImagesOutput), !p.HasNextPage()) {
2323			break
2324		}
2325	}
2326
2327	return p.Err()
2328}
2329
2330const opDescribeSessions = "DescribeSessions"
2331
2332// DescribeSessionsRequest generates a "aws/request.Request" representing the
2333// client's request for the DescribeSessions operation. The "output" return
2334// value will be populated with the request's response once the request completes
2335// successfully.
2336//
2337// Use "Send" method on the returned Request to send the API call to the service.
2338// the "output" return value is not valid until after Send returns without error.
2339//
2340// See DescribeSessions for more information on using the DescribeSessions
2341// API call, and error handling.
2342//
2343// This method is useful when you want to inject custom logic or configuration
2344// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2345//
2346//
2347//    // Example sending a request using the DescribeSessionsRequest method.
2348//    req, resp := client.DescribeSessionsRequest(params)
2349//
2350//    err := req.Send()
2351//    if err == nil { // resp is now filled
2352//        fmt.Println(resp)
2353//    }
2354//
2355// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeSessions
2356func (c *AppStream) DescribeSessionsRequest(input *DescribeSessionsInput) (req *request.Request, output *DescribeSessionsOutput) {
2357	op := &request.Operation{
2358		Name:       opDescribeSessions,
2359		HTTPMethod: "POST",
2360		HTTPPath:   "/",
2361	}
2362
2363	if input == nil {
2364		input = &DescribeSessionsInput{}
2365	}
2366
2367	output = &DescribeSessionsOutput{}
2368	req = c.newRequest(op, input, output)
2369	return
2370}
2371
2372// DescribeSessions API operation for Amazon AppStream.
2373//
2374// Retrieves a list that describes the streaming sessions for a specified stack
2375// and fleet. If a UserId is provided for the stack and fleet, only streaming
2376// sessions for that user are described. If an authentication type is not provided,
2377// the default is to authenticate users using a streaming URL.
2378//
2379// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2380// with awserr.Error's Code and Message methods to get detailed information about
2381// the error.
2382//
2383// See the AWS API reference guide for Amazon AppStream's
2384// API operation DescribeSessions for usage and error information.
2385//
2386// Returned Error Codes:
2387//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
2388//   Indicates an incorrect combination of parameters, or a missing parameter.
2389//
2390// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeSessions
2391func (c *AppStream) DescribeSessions(input *DescribeSessionsInput) (*DescribeSessionsOutput, error) {
2392	req, out := c.DescribeSessionsRequest(input)
2393	return out, req.Send()
2394}
2395
2396// DescribeSessionsWithContext is the same as DescribeSessions with the addition of
2397// the ability to pass a context and additional request options.
2398//
2399// See DescribeSessions for details on how to use this API operation.
2400//
2401// The context must be non-nil and will be used for request cancellation. If
2402// the context is nil a panic will occur. In the future the SDK may create
2403// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2404// for more information on using Contexts.
2405func (c *AppStream) DescribeSessionsWithContext(ctx aws.Context, input *DescribeSessionsInput, opts ...request.Option) (*DescribeSessionsOutput, error) {
2406	req, out := c.DescribeSessionsRequest(input)
2407	req.SetContext(ctx)
2408	req.ApplyOptions(opts...)
2409	return out, req.Send()
2410}
2411
2412const opDescribeStacks = "DescribeStacks"
2413
2414// DescribeStacksRequest generates a "aws/request.Request" representing the
2415// client's request for the DescribeStacks operation. The "output" return
2416// value will be populated with the request's response once the request completes
2417// successfully.
2418//
2419// Use "Send" method on the returned Request to send the API call to the service.
2420// the "output" return value is not valid until after Send returns without error.
2421//
2422// See DescribeStacks for more information on using the DescribeStacks
2423// API call, and error handling.
2424//
2425// This method is useful when you want to inject custom logic or configuration
2426// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2427//
2428//
2429//    // Example sending a request using the DescribeStacksRequest method.
2430//    req, resp := client.DescribeStacksRequest(params)
2431//
2432//    err := req.Send()
2433//    if err == nil { // resp is now filled
2434//        fmt.Println(resp)
2435//    }
2436//
2437// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeStacks
2438func (c *AppStream) DescribeStacksRequest(input *DescribeStacksInput) (req *request.Request, output *DescribeStacksOutput) {
2439	op := &request.Operation{
2440		Name:       opDescribeStacks,
2441		HTTPMethod: "POST",
2442		HTTPPath:   "/",
2443	}
2444
2445	if input == nil {
2446		input = &DescribeStacksInput{}
2447	}
2448
2449	output = &DescribeStacksOutput{}
2450	req = c.newRequest(op, input, output)
2451	return
2452}
2453
2454// DescribeStacks API operation for Amazon AppStream.
2455//
2456// Retrieves a list that describes one or more specified stacks, if the stack
2457// names are provided. Otherwise, all stacks in the account are described.
2458//
2459// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2460// with awserr.Error's Code and Message methods to get detailed information about
2461// the error.
2462//
2463// See the AWS API reference guide for Amazon AppStream's
2464// API operation DescribeStacks for usage and error information.
2465//
2466// Returned Error Codes:
2467//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2468//   The specified resource was not found.
2469//
2470// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeStacks
2471func (c *AppStream) DescribeStacks(input *DescribeStacksInput) (*DescribeStacksOutput, error) {
2472	req, out := c.DescribeStacksRequest(input)
2473	return out, req.Send()
2474}
2475
2476// DescribeStacksWithContext is the same as DescribeStacks with the addition of
2477// the ability to pass a context and additional request options.
2478//
2479// See DescribeStacks for details on how to use this API operation.
2480//
2481// The context must be non-nil and will be used for request cancellation. If
2482// the context is nil a panic will occur. In the future the SDK may create
2483// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2484// for more information on using Contexts.
2485func (c *AppStream) DescribeStacksWithContext(ctx aws.Context, input *DescribeStacksInput, opts ...request.Option) (*DescribeStacksOutput, error) {
2486	req, out := c.DescribeStacksRequest(input)
2487	req.SetContext(ctx)
2488	req.ApplyOptions(opts...)
2489	return out, req.Send()
2490}
2491
2492const opDescribeUsageReportSubscriptions = "DescribeUsageReportSubscriptions"
2493
2494// DescribeUsageReportSubscriptionsRequest generates a "aws/request.Request" representing the
2495// client's request for the DescribeUsageReportSubscriptions operation. The "output" return
2496// value will be populated with the request's response once the request completes
2497// successfully.
2498//
2499// Use "Send" method on the returned Request to send the API call to the service.
2500// the "output" return value is not valid until after Send returns without error.
2501//
2502// See DescribeUsageReportSubscriptions for more information on using the DescribeUsageReportSubscriptions
2503// API call, and error handling.
2504//
2505// This method is useful when you want to inject custom logic or configuration
2506// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2507//
2508//
2509//    // Example sending a request using the DescribeUsageReportSubscriptionsRequest method.
2510//    req, resp := client.DescribeUsageReportSubscriptionsRequest(params)
2511//
2512//    err := req.Send()
2513//    if err == nil { // resp is now filled
2514//        fmt.Println(resp)
2515//    }
2516//
2517// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeUsageReportSubscriptions
2518func (c *AppStream) DescribeUsageReportSubscriptionsRequest(input *DescribeUsageReportSubscriptionsInput) (req *request.Request, output *DescribeUsageReportSubscriptionsOutput) {
2519	op := &request.Operation{
2520		Name:       opDescribeUsageReportSubscriptions,
2521		HTTPMethod: "POST",
2522		HTTPPath:   "/",
2523	}
2524
2525	if input == nil {
2526		input = &DescribeUsageReportSubscriptionsInput{}
2527	}
2528
2529	output = &DescribeUsageReportSubscriptionsOutput{}
2530	req = c.newRequest(op, input, output)
2531	return
2532}
2533
2534// DescribeUsageReportSubscriptions API operation for Amazon AppStream.
2535//
2536// Retrieves a list that describes one or more usage report subscriptions.
2537//
2538// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2539// with awserr.Error's Code and Message methods to get detailed information about
2540// the error.
2541//
2542// See the AWS API reference guide for Amazon AppStream's
2543// API operation DescribeUsageReportSubscriptions for usage and error information.
2544//
2545// Returned Error Codes:
2546//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2547//   The specified resource was not found.
2548//
2549//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
2550//   The resource cannot be created because your AWS account is suspended. For
2551//   assistance, contact AWS Support.
2552//
2553// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeUsageReportSubscriptions
2554func (c *AppStream) DescribeUsageReportSubscriptions(input *DescribeUsageReportSubscriptionsInput) (*DescribeUsageReportSubscriptionsOutput, error) {
2555	req, out := c.DescribeUsageReportSubscriptionsRequest(input)
2556	return out, req.Send()
2557}
2558
2559// DescribeUsageReportSubscriptionsWithContext is the same as DescribeUsageReportSubscriptions with the addition of
2560// the ability to pass a context and additional request options.
2561//
2562// See DescribeUsageReportSubscriptions for details on how to use this API operation.
2563//
2564// The context must be non-nil and will be used for request cancellation. If
2565// the context is nil a panic will occur. In the future the SDK may create
2566// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2567// for more information on using Contexts.
2568func (c *AppStream) DescribeUsageReportSubscriptionsWithContext(ctx aws.Context, input *DescribeUsageReportSubscriptionsInput, opts ...request.Option) (*DescribeUsageReportSubscriptionsOutput, error) {
2569	req, out := c.DescribeUsageReportSubscriptionsRequest(input)
2570	req.SetContext(ctx)
2571	req.ApplyOptions(opts...)
2572	return out, req.Send()
2573}
2574
2575const opDescribeUserStackAssociations = "DescribeUserStackAssociations"
2576
2577// DescribeUserStackAssociationsRequest generates a "aws/request.Request" representing the
2578// client's request for the DescribeUserStackAssociations operation. The "output" return
2579// value will be populated with the request's response once the request completes
2580// successfully.
2581//
2582// Use "Send" method on the returned Request to send the API call to the service.
2583// the "output" return value is not valid until after Send returns without error.
2584//
2585// See DescribeUserStackAssociations for more information on using the DescribeUserStackAssociations
2586// API call, and error handling.
2587//
2588// This method is useful when you want to inject custom logic or configuration
2589// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2590//
2591//
2592//    // Example sending a request using the DescribeUserStackAssociationsRequest method.
2593//    req, resp := client.DescribeUserStackAssociationsRequest(params)
2594//
2595//    err := req.Send()
2596//    if err == nil { // resp is now filled
2597//        fmt.Println(resp)
2598//    }
2599//
2600// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeUserStackAssociations
2601func (c *AppStream) DescribeUserStackAssociationsRequest(input *DescribeUserStackAssociationsInput) (req *request.Request, output *DescribeUserStackAssociationsOutput) {
2602	op := &request.Operation{
2603		Name:       opDescribeUserStackAssociations,
2604		HTTPMethod: "POST",
2605		HTTPPath:   "/",
2606	}
2607
2608	if input == nil {
2609		input = &DescribeUserStackAssociationsInput{}
2610	}
2611
2612	output = &DescribeUserStackAssociationsOutput{}
2613	req = c.newRequest(op, input, output)
2614	return
2615}
2616
2617// DescribeUserStackAssociations API operation for Amazon AppStream.
2618//
2619// Retrieves a list that describes the UserStackAssociation objects. You must
2620// specify either or both of the following:
2621//
2622//    * The stack name
2623//
2624//    * The user name (email address of the user associated with the stack)
2625//    and the authentication type for the user
2626//
2627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2628// with awserr.Error's Code and Message methods to get detailed information about
2629// the error.
2630//
2631// See the AWS API reference guide for Amazon AppStream's
2632// API operation DescribeUserStackAssociations for usage and error information.
2633//
2634// Returned Error Codes:
2635//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
2636//   Indicates an incorrect combination of parameters, or a missing parameter.
2637//
2638// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeUserStackAssociations
2639func (c *AppStream) DescribeUserStackAssociations(input *DescribeUserStackAssociationsInput) (*DescribeUserStackAssociationsOutput, error) {
2640	req, out := c.DescribeUserStackAssociationsRequest(input)
2641	return out, req.Send()
2642}
2643
2644// DescribeUserStackAssociationsWithContext is the same as DescribeUserStackAssociations with the addition of
2645// the ability to pass a context and additional request options.
2646//
2647// See DescribeUserStackAssociations for details on how to use this API operation.
2648//
2649// The context must be non-nil and will be used for request cancellation. If
2650// the context is nil a panic will occur. In the future the SDK may create
2651// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2652// for more information on using Contexts.
2653func (c *AppStream) DescribeUserStackAssociationsWithContext(ctx aws.Context, input *DescribeUserStackAssociationsInput, opts ...request.Option) (*DescribeUserStackAssociationsOutput, error) {
2654	req, out := c.DescribeUserStackAssociationsRequest(input)
2655	req.SetContext(ctx)
2656	req.ApplyOptions(opts...)
2657	return out, req.Send()
2658}
2659
2660const opDescribeUsers = "DescribeUsers"
2661
2662// DescribeUsersRequest generates a "aws/request.Request" representing the
2663// client's request for the DescribeUsers operation. The "output" return
2664// value will be populated with the request's response once the request completes
2665// successfully.
2666//
2667// Use "Send" method on the returned Request to send the API call to the service.
2668// the "output" return value is not valid until after Send returns without error.
2669//
2670// See DescribeUsers for more information on using the DescribeUsers
2671// API call, and error handling.
2672//
2673// This method is useful when you want to inject custom logic or configuration
2674// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2675//
2676//
2677//    // Example sending a request using the DescribeUsersRequest method.
2678//    req, resp := client.DescribeUsersRequest(params)
2679//
2680//    err := req.Send()
2681//    if err == nil { // resp is now filled
2682//        fmt.Println(resp)
2683//    }
2684//
2685// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeUsers
2686func (c *AppStream) DescribeUsersRequest(input *DescribeUsersInput) (req *request.Request, output *DescribeUsersOutput) {
2687	op := &request.Operation{
2688		Name:       opDescribeUsers,
2689		HTTPMethod: "POST",
2690		HTTPPath:   "/",
2691	}
2692
2693	if input == nil {
2694		input = &DescribeUsersInput{}
2695	}
2696
2697	output = &DescribeUsersOutput{}
2698	req = c.newRequest(op, input, output)
2699	return
2700}
2701
2702// DescribeUsers API operation for Amazon AppStream.
2703//
2704// Retrieves a list that describes one or more specified users in the user pool.
2705//
2706// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2707// with awserr.Error's Code and Message methods to get detailed information about
2708// the error.
2709//
2710// See the AWS API reference guide for Amazon AppStream's
2711// API operation DescribeUsers for usage and error information.
2712//
2713// Returned Error Codes:
2714//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2715//   The specified resource was not found.
2716//
2717//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
2718//   Indicates an incorrect combination of parameters, or a missing parameter.
2719//
2720// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeUsers
2721func (c *AppStream) DescribeUsers(input *DescribeUsersInput) (*DescribeUsersOutput, error) {
2722	req, out := c.DescribeUsersRequest(input)
2723	return out, req.Send()
2724}
2725
2726// DescribeUsersWithContext is the same as DescribeUsers with the addition of
2727// the ability to pass a context and additional request options.
2728//
2729// See DescribeUsers for details on how to use this API operation.
2730//
2731// The context must be non-nil and will be used for request cancellation. If
2732// the context is nil a panic will occur. In the future the SDK may create
2733// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2734// for more information on using Contexts.
2735func (c *AppStream) DescribeUsersWithContext(ctx aws.Context, input *DescribeUsersInput, opts ...request.Option) (*DescribeUsersOutput, error) {
2736	req, out := c.DescribeUsersRequest(input)
2737	req.SetContext(ctx)
2738	req.ApplyOptions(opts...)
2739	return out, req.Send()
2740}
2741
2742const opDisableUser = "DisableUser"
2743
2744// DisableUserRequest generates a "aws/request.Request" representing the
2745// client's request for the DisableUser operation. The "output" return
2746// value will be populated with the request's response once the request completes
2747// successfully.
2748//
2749// Use "Send" method on the returned Request to send the API call to the service.
2750// the "output" return value is not valid until after Send returns without error.
2751//
2752// See DisableUser for more information on using the DisableUser
2753// API call, and error handling.
2754//
2755// This method is useful when you want to inject custom logic or configuration
2756// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2757//
2758//
2759//    // Example sending a request using the DisableUserRequest method.
2760//    req, resp := client.DisableUserRequest(params)
2761//
2762//    err := req.Send()
2763//    if err == nil { // resp is now filled
2764//        fmt.Println(resp)
2765//    }
2766//
2767// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DisableUser
2768func (c *AppStream) DisableUserRequest(input *DisableUserInput) (req *request.Request, output *DisableUserOutput) {
2769	op := &request.Operation{
2770		Name:       opDisableUser,
2771		HTTPMethod: "POST",
2772		HTTPPath:   "/",
2773	}
2774
2775	if input == nil {
2776		input = &DisableUserInput{}
2777	}
2778
2779	output = &DisableUserOutput{}
2780	req = c.newRequest(op, input, output)
2781	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2782	return
2783}
2784
2785// DisableUser API operation for Amazon AppStream.
2786//
2787// Disables the specified user in the user pool. Users can't sign in to AppStream
2788// 2.0 until they are re-enabled. This action does not delete the user.
2789//
2790// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2791// with awserr.Error's Code and Message methods to get detailed information about
2792// the error.
2793//
2794// See the AWS API reference guide for Amazon AppStream's
2795// API operation DisableUser for usage and error information.
2796//
2797// Returned Error Codes:
2798//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2799//   The specified resource was not found.
2800//
2801// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DisableUser
2802func (c *AppStream) DisableUser(input *DisableUserInput) (*DisableUserOutput, error) {
2803	req, out := c.DisableUserRequest(input)
2804	return out, req.Send()
2805}
2806
2807// DisableUserWithContext is the same as DisableUser with the addition of
2808// the ability to pass a context and additional request options.
2809//
2810// See DisableUser for details on how to use this API operation.
2811//
2812// The context must be non-nil and will be used for request cancellation. If
2813// the context is nil a panic will occur. In the future the SDK may create
2814// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2815// for more information on using Contexts.
2816func (c *AppStream) DisableUserWithContext(ctx aws.Context, input *DisableUserInput, opts ...request.Option) (*DisableUserOutput, error) {
2817	req, out := c.DisableUserRequest(input)
2818	req.SetContext(ctx)
2819	req.ApplyOptions(opts...)
2820	return out, req.Send()
2821}
2822
2823const opDisassociateFleet = "DisassociateFleet"
2824
2825// DisassociateFleetRequest generates a "aws/request.Request" representing the
2826// client's request for the DisassociateFleet operation. The "output" return
2827// value will be populated with the request's response once the request completes
2828// successfully.
2829//
2830// Use "Send" method on the returned Request to send the API call to the service.
2831// the "output" return value is not valid until after Send returns without error.
2832//
2833// See DisassociateFleet for more information on using the DisassociateFleet
2834// API call, and error handling.
2835//
2836// This method is useful when you want to inject custom logic or configuration
2837// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2838//
2839//
2840//    // Example sending a request using the DisassociateFleetRequest method.
2841//    req, resp := client.DisassociateFleetRequest(params)
2842//
2843//    err := req.Send()
2844//    if err == nil { // resp is now filled
2845//        fmt.Println(resp)
2846//    }
2847//
2848// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DisassociateFleet
2849func (c *AppStream) DisassociateFleetRequest(input *DisassociateFleetInput) (req *request.Request, output *DisassociateFleetOutput) {
2850	op := &request.Operation{
2851		Name:       opDisassociateFleet,
2852		HTTPMethod: "POST",
2853		HTTPPath:   "/",
2854	}
2855
2856	if input == nil {
2857		input = &DisassociateFleetInput{}
2858	}
2859
2860	output = &DisassociateFleetOutput{}
2861	req = c.newRequest(op, input, output)
2862	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2863	return
2864}
2865
2866// DisassociateFleet API operation for Amazon AppStream.
2867//
2868// Disassociates the specified fleet from the specified stack.
2869//
2870// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2871// with awserr.Error's Code and Message methods to get detailed information about
2872// the error.
2873//
2874// See the AWS API reference guide for Amazon AppStream's
2875// API operation DisassociateFleet for usage and error information.
2876//
2877// Returned Error Codes:
2878//   * ErrCodeResourceInUseException "ResourceInUseException"
2879//   The specified resource is in use.
2880//
2881//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2882//   The specified resource was not found.
2883//
2884//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
2885//   An API error occurred. Wait a few minutes and try again.
2886//
2887// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DisassociateFleet
2888func (c *AppStream) DisassociateFleet(input *DisassociateFleetInput) (*DisassociateFleetOutput, error) {
2889	req, out := c.DisassociateFleetRequest(input)
2890	return out, req.Send()
2891}
2892
2893// DisassociateFleetWithContext is the same as DisassociateFleet with the addition of
2894// the ability to pass a context and additional request options.
2895//
2896// See DisassociateFleet for details on how to use this API operation.
2897//
2898// The context must be non-nil and will be used for request cancellation. If
2899// the context is nil a panic will occur. In the future the SDK may create
2900// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2901// for more information on using Contexts.
2902func (c *AppStream) DisassociateFleetWithContext(ctx aws.Context, input *DisassociateFleetInput, opts ...request.Option) (*DisassociateFleetOutput, error) {
2903	req, out := c.DisassociateFleetRequest(input)
2904	req.SetContext(ctx)
2905	req.ApplyOptions(opts...)
2906	return out, req.Send()
2907}
2908
2909const opEnableUser = "EnableUser"
2910
2911// EnableUserRequest generates a "aws/request.Request" representing the
2912// client's request for the EnableUser operation. The "output" return
2913// value will be populated with the request's response once the request completes
2914// successfully.
2915//
2916// Use "Send" method on the returned Request to send the API call to the service.
2917// the "output" return value is not valid until after Send returns without error.
2918//
2919// See EnableUser for more information on using the EnableUser
2920// API call, and error handling.
2921//
2922// This method is useful when you want to inject custom logic or configuration
2923// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2924//
2925//
2926//    // Example sending a request using the EnableUserRequest method.
2927//    req, resp := client.EnableUserRequest(params)
2928//
2929//    err := req.Send()
2930//    if err == nil { // resp is now filled
2931//        fmt.Println(resp)
2932//    }
2933//
2934// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/EnableUser
2935func (c *AppStream) EnableUserRequest(input *EnableUserInput) (req *request.Request, output *EnableUserOutput) {
2936	op := &request.Operation{
2937		Name:       opEnableUser,
2938		HTTPMethod: "POST",
2939		HTTPPath:   "/",
2940	}
2941
2942	if input == nil {
2943		input = &EnableUserInput{}
2944	}
2945
2946	output = &EnableUserOutput{}
2947	req = c.newRequest(op, input, output)
2948	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2949	return
2950}
2951
2952// EnableUser API operation for Amazon AppStream.
2953//
2954// Enables a user in the user pool. After being enabled, users can sign in to
2955// AppStream 2.0 and open applications from the stacks to which they are assigned.
2956//
2957// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2958// with awserr.Error's Code and Message methods to get detailed information about
2959// the error.
2960//
2961// See the AWS API reference guide for Amazon AppStream's
2962// API operation EnableUser for usage and error information.
2963//
2964// Returned Error Codes:
2965//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
2966//   The specified resource was not found.
2967//
2968//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
2969//   The resource cannot be created because your AWS account is suspended. For
2970//   assistance, contact AWS Support.
2971//
2972// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/EnableUser
2973func (c *AppStream) EnableUser(input *EnableUserInput) (*EnableUserOutput, error) {
2974	req, out := c.EnableUserRequest(input)
2975	return out, req.Send()
2976}
2977
2978// EnableUserWithContext is the same as EnableUser with the addition of
2979// the ability to pass a context and additional request options.
2980//
2981// See EnableUser for details on how to use this API operation.
2982//
2983// The context must be non-nil and will be used for request cancellation. If
2984// the context is nil a panic will occur. In the future the SDK may create
2985// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2986// for more information on using Contexts.
2987func (c *AppStream) EnableUserWithContext(ctx aws.Context, input *EnableUserInput, opts ...request.Option) (*EnableUserOutput, error) {
2988	req, out := c.EnableUserRequest(input)
2989	req.SetContext(ctx)
2990	req.ApplyOptions(opts...)
2991	return out, req.Send()
2992}
2993
2994const opExpireSession = "ExpireSession"
2995
2996// ExpireSessionRequest generates a "aws/request.Request" representing the
2997// client's request for the ExpireSession operation. The "output" return
2998// value will be populated with the request's response once the request completes
2999// successfully.
3000//
3001// Use "Send" method on the returned Request to send the API call to the service.
3002// the "output" return value is not valid until after Send returns without error.
3003//
3004// See ExpireSession for more information on using the ExpireSession
3005// API call, and error handling.
3006//
3007// This method is useful when you want to inject custom logic or configuration
3008// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3009//
3010//
3011//    // Example sending a request using the ExpireSessionRequest method.
3012//    req, resp := client.ExpireSessionRequest(params)
3013//
3014//    err := req.Send()
3015//    if err == nil { // resp is now filled
3016//        fmt.Println(resp)
3017//    }
3018//
3019// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ExpireSession
3020func (c *AppStream) ExpireSessionRequest(input *ExpireSessionInput) (req *request.Request, output *ExpireSessionOutput) {
3021	op := &request.Operation{
3022		Name:       opExpireSession,
3023		HTTPMethod: "POST",
3024		HTTPPath:   "/",
3025	}
3026
3027	if input == nil {
3028		input = &ExpireSessionInput{}
3029	}
3030
3031	output = &ExpireSessionOutput{}
3032	req = c.newRequest(op, input, output)
3033	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3034	return
3035}
3036
3037// ExpireSession API operation for Amazon AppStream.
3038//
3039// Immediately stops the specified streaming session.
3040//
3041// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3042// with awserr.Error's Code and Message methods to get detailed information about
3043// the error.
3044//
3045// See the AWS API reference guide for Amazon AppStream's
3046// API operation ExpireSession for usage and error information.
3047// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ExpireSession
3048func (c *AppStream) ExpireSession(input *ExpireSessionInput) (*ExpireSessionOutput, error) {
3049	req, out := c.ExpireSessionRequest(input)
3050	return out, req.Send()
3051}
3052
3053// ExpireSessionWithContext is the same as ExpireSession with the addition of
3054// the ability to pass a context and additional request options.
3055//
3056// See ExpireSession for details on how to use this API operation.
3057//
3058// The context must be non-nil and will be used for request cancellation. If
3059// the context is nil a panic will occur. In the future the SDK may create
3060// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3061// for more information on using Contexts.
3062func (c *AppStream) ExpireSessionWithContext(ctx aws.Context, input *ExpireSessionInput, opts ...request.Option) (*ExpireSessionOutput, error) {
3063	req, out := c.ExpireSessionRequest(input)
3064	req.SetContext(ctx)
3065	req.ApplyOptions(opts...)
3066	return out, req.Send()
3067}
3068
3069const opListAssociatedFleets = "ListAssociatedFleets"
3070
3071// ListAssociatedFleetsRequest generates a "aws/request.Request" representing the
3072// client's request for the ListAssociatedFleets operation. The "output" return
3073// value will be populated with the request's response once the request completes
3074// successfully.
3075//
3076// Use "Send" method on the returned Request to send the API call to the service.
3077// the "output" return value is not valid until after Send returns without error.
3078//
3079// See ListAssociatedFleets for more information on using the ListAssociatedFleets
3080// API call, and error handling.
3081//
3082// This method is useful when you want to inject custom logic or configuration
3083// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3084//
3085//
3086//    // Example sending a request using the ListAssociatedFleetsRequest method.
3087//    req, resp := client.ListAssociatedFleetsRequest(params)
3088//
3089//    err := req.Send()
3090//    if err == nil { // resp is now filled
3091//        fmt.Println(resp)
3092//    }
3093//
3094// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListAssociatedFleets
3095func (c *AppStream) ListAssociatedFleetsRequest(input *ListAssociatedFleetsInput) (req *request.Request, output *ListAssociatedFleetsOutput) {
3096	op := &request.Operation{
3097		Name:       opListAssociatedFleets,
3098		HTTPMethod: "POST",
3099		HTTPPath:   "/",
3100	}
3101
3102	if input == nil {
3103		input = &ListAssociatedFleetsInput{}
3104	}
3105
3106	output = &ListAssociatedFleetsOutput{}
3107	req = c.newRequest(op, input, output)
3108	return
3109}
3110
3111// ListAssociatedFleets API operation for Amazon AppStream.
3112//
3113// Retrieves the name of the fleet that is associated with the specified stack.
3114//
3115// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3116// with awserr.Error's Code and Message methods to get detailed information about
3117// the error.
3118//
3119// See the AWS API reference guide for Amazon AppStream's
3120// API operation ListAssociatedFleets for usage and error information.
3121// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListAssociatedFleets
3122func (c *AppStream) ListAssociatedFleets(input *ListAssociatedFleetsInput) (*ListAssociatedFleetsOutput, error) {
3123	req, out := c.ListAssociatedFleetsRequest(input)
3124	return out, req.Send()
3125}
3126
3127// ListAssociatedFleetsWithContext is the same as ListAssociatedFleets with the addition of
3128// the ability to pass a context and additional request options.
3129//
3130// See ListAssociatedFleets for details on how to use this API operation.
3131//
3132// The context must be non-nil and will be used for request cancellation. If
3133// the context is nil a panic will occur. In the future the SDK may create
3134// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3135// for more information on using Contexts.
3136func (c *AppStream) ListAssociatedFleetsWithContext(ctx aws.Context, input *ListAssociatedFleetsInput, opts ...request.Option) (*ListAssociatedFleetsOutput, error) {
3137	req, out := c.ListAssociatedFleetsRequest(input)
3138	req.SetContext(ctx)
3139	req.ApplyOptions(opts...)
3140	return out, req.Send()
3141}
3142
3143const opListAssociatedStacks = "ListAssociatedStacks"
3144
3145// ListAssociatedStacksRequest generates a "aws/request.Request" representing the
3146// client's request for the ListAssociatedStacks operation. The "output" return
3147// value will be populated with the request's response once the request completes
3148// successfully.
3149//
3150// Use "Send" method on the returned Request to send the API call to the service.
3151// the "output" return value is not valid until after Send returns without error.
3152//
3153// See ListAssociatedStacks for more information on using the ListAssociatedStacks
3154// API call, and error handling.
3155//
3156// This method is useful when you want to inject custom logic or configuration
3157// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3158//
3159//
3160//    // Example sending a request using the ListAssociatedStacksRequest method.
3161//    req, resp := client.ListAssociatedStacksRequest(params)
3162//
3163//    err := req.Send()
3164//    if err == nil { // resp is now filled
3165//        fmt.Println(resp)
3166//    }
3167//
3168// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListAssociatedStacks
3169func (c *AppStream) ListAssociatedStacksRequest(input *ListAssociatedStacksInput) (req *request.Request, output *ListAssociatedStacksOutput) {
3170	op := &request.Operation{
3171		Name:       opListAssociatedStacks,
3172		HTTPMethod: "POST",
3173		HTTPPath:   "/",
3174	}
3175
3176	if input == nil {
3177		input = &ListAssociatedStacksInput{}
3178	}
3179
3180	output = &ListAssociatedStacksOutput{}
3181	req = c.newRequest(op, input, output)
3182	return
3183}
3184
3185// ListAssociatedStacks API operation for Amazon AppStream.
3186//
3187// Retrieves the name of the stack with which the specified fleet is associated.
3188//
3189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3190// with awserr.Error's Code and Message methods to get detailed information about
3191// the error.
3192//
3193// See the AWS API reference guide for Amazon AppStream's
3194// API operation ListAssociatedStacks for usage and error information.
3195// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListAssociatedStacks
3196func (c *AppStream) ListAssociatedStacks(input *ListAssociatedStacksInput) (*ListAssociatedStacksOutput, error) {
3197	req, out := c.ListAssociatedStacksRequest(input)
3198	return out, req.Send()
3199}
3200
3201// ListAssociatedStacksWithContext is the same as ListAssociatedStacks with the addition of
3202// the ability to pass a context and additional request options.
3203//
3204// See ListAssociatedStacks for details on how to use this API operation.
3205//
3206// The context must be non-nil and will be used for request cancellation. If
3207// the context is nil a panic will occur. In the future the SDK may create
3208// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3209// for more information on using Contexts.
3210func (c *AppStream) ListAssociatedStacksWithContext(ctx aws.Context, input *ListAssociatedStacksInput, opts ...request.Option) (*ListAssociatedStacksOutput, error) {
3211	req, out := c.ListAssociatedStacksRequest(input)
3212	req.SetContext(ctx)
3213	req.ApplyOptions(opts...)
3214	return out, req.Send()
3215}
3216
3217const opListTagsForResource = "ListTagsForResource"
3218
3219// ListTagsForResourceRequest generates a "aws/request.Request" representing the
3220// client's request for the ListTagsForResource operation. The "output" return
3221// value will be populated with the request's response once the request completes
3222// successfully.
3223//
3224// Use "Send" method on the returned Request to send the API call to the service.
3225// the "output" return value is not valid until after Send returns without error.
3226//
3227// See ListTagsForResource for more information on using the ListTagsForResource
3228// API call, and error handling.
3229//
3230// This method is useful when you want to inject custom logic or configuration
3231// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3232//
3233//
3234//    // Example sending a request using the ListTagsForResourceRequest method.
3235//    req, resp := client.ListTagsForResourceRequest(params)
3236//
3237//    err := req.Send()
3238//    if err == nil { // resp is now filled
3239//        fmt.Println(resp)
3240//    }
3241//
3242// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListTagsForResource
3243func (c *AppStream) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
3244	op := &request.Operation{
3245		Name:       opListTagsForResource,
3246		HTTPMethod: "POST",
3247		HTTPPath:   "/",
3248	}
3249
3250	if input == nil {
3251		input = &ListTagsForResourceInput{}
3252	}
3253
3254	output = &ListTagsForResourceOutput{}
3255	req = c.newRequest(op, input, output)
3256	return
3257}
3258
3259// ListTagsForResource API operation for Amazon AppStream.
3260//
3261// Retrieves a list of all tags for the specified AppStream 2.0 resource. You
3262// can tag AppStream 2.0 image builders, images, fleets, and stacks.
3263//
3264// For more information about tags, see Tagging Your Resources (https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html)
3265// in the Amazon AppStream 2.0 Administration Guide.
3266//
3267// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3268// with awserr.Error's Code and Message methods to get detailed information about
3269// the error.
3270//
3271// See the AWS API reference guide for Amazon AppStream's
3272// API operation ListTagsForResource for usage and error information.
3273//
3274// Returned Error Codes:
3275//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3276//   The specified resource was not found.
3277//
3278// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListTagsForResource
3279func (c *AppStream) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
3280	req, out := c.ListTagsForResourceRequest(input)
3281	return out, req.Send()
3282}
3283
3284// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
3285// the ability to pass a context and additional request options.
3286//
3287// See ListTagsForResource for details on how to use this API operation.
3288//
3289// The context must be non-nil and will be used for request cancellation. If
3290// the context is nil a panic will occur. In the future the SDK may create
3291// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3292// for more information on using Contexts.
3293func (c *AppStream) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
3294	req, out := c.ListTagsForResourceRequest(input)
3295	req.SetContext(ctx)
3296	req.ApplyOptions(opts...)
3297	return out, req.Send()
3298}
3299
3300const opStartFleet = "StartFleet"
3301
3302// StartFleetRequest generates a "aws/request.Request" representing the
3303// client's request for the StartFleet operation. The "output" return
3304// value will be populated with the request's response once the request completes
3305// successfully.
3306//
3307// Use "Send" method on the returned Request to send the API call to the service.
3308// the "output" return value is not valid until after Send returns without error.
3309//
3310// See StartFleet for more information on using the StartFleet
3311// API call, and error handling.
3312//
3313// This method is useful when you want to inject custom logic or configuration
3314// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3315//
3316//
3317//    // Example sending a request using the StartFleetRequest method.
3318//    req, resp := client.StartFleetRequest(params)
3319//
3320//    err := req.Send()
3321//    if err == nil { // resp is now filled
3322//        fmt.Println(resp)
3323//    }
3324//
3325// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StartFleet
3326func (c *AppStream) StartFleetRequest(input *StartFleetInput) (req *request.Request, output *StartFleetOutput) {
3327	op := &request.Operation{
3328		Name:       opStartFleet,
3329		HTTPMethod: "POST",
3330		HTTPPath:   "/",
3331	}
3332
3333	if input == nil {
3334		input = &StartFleetInput{}
3335	}
3336
3337	output = &StartFleetOutput{}
3338	req = c.newRequest(op, input, output)
3339	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3340	return
3341}
3342
3343// StartFleet API operation for Amazon AppStream.
3344//
3345// Starts the specified fleet.
3346//
3347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3348// with awserr.Error's Code and Message methods to get detailed information about
3349// the error.
3350//
3351// See the AWS API reference guide for Amazon AppStream's
3352// API operation StartFleet for usage and error information.
3353//
3354// Returned Error Codes:
3355//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3356//   The specified resource was not found.
3357//
3358//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
3359//   The attempted operation is not permitted.
3360//
3361//   * ErrCodeLimitExceededException "LimitExceededException"
3362//   The requested limit exceeds the permitted limit for an account.
3363//
3364//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
3365//   The resource cannot be created because your AWS account is suspended. For
3366//   assistance, contact AWS Support.
3367//
3368//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
3369//   An API error occurred. Wait a few minutes and try again.
3370//
3371//   * ErrCodeResourceNotAvailableException "ResourceNotAvailableException"
3372//   The specified resource exists and is not in use, but isn't available.
3373//
3374//   * ErrCodeInvalidRoleException "InvalidRoleException"
3375//   The specified role is invalid.
3376//
3377// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StartFleet
3378func (c *AppStream) StartFleet(input *StartFleetInput) (*StartFleetOutput, error) {
3379	req, out := c.StartFleetRequest(input)
3380	return out, req.Send()
3381}
3382
3383// StartFleetWithContext is the same as StartFleet with the addition of
3384// the ability to pass a context and additional request options.
3385//
3386// See StartFleet for details on how to use this API operation.
3387//
3388// The context must be non-nil and will be used for request cancellation. If
3389// the context is nil a panic will occur. In the future the SDK may create
3390// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3391// for more information on using Contexts.
3392func (c *AppStream) StartFleetWithContext(ctx aws.Context, input *StartFleetInput, opts ...request.Option) (*StartFleetOutput, error) {
3393	req, out := c.StartFleetRequest(input)
3394	req.SetContext(ctx)
3395	req.ApplyOptions(opts...)
3396	return out, req.Send()
3397}
3398
3399const opStartImageBuilder = "StartImageBuilder"
3400
3401// StartImageBuilderRequest generates a "aws/request.Request" representing the
3402// client's request for the StartImageBuilder operation. The "output" return
3403// value will be populated with the request's response once the request completes
3404// successfully.
3405//
3406// Use "Send" method on the returned Request to send the API call to the service.
3407// the "output" return value is not valid until after Send returns without error.
3408//
3409// See StartImageBuilder for more information on using the StartImageBuilder
3410// API call, and error handling.
3411//
3412// This method is useful when you want to inject custom logic or configuration
3413// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3414//
3415//
3416//    // Example sending a request using the StartImageBuilderRequest method.
3417//    req, resp := client.StartImageBuilderRequest(params)
3418//
3419//    err := req.Send()
3420//    if err == nil { // resp is now filled
3421//        fmt.Println(resp)
3422//    }
3423//
3424// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StartImageBuilder
3425func (c *AppStream) StartImageBuilderRequest(input *StartImageBuilderInput) (req *request.Request, output *StartImageBuilderOutput) {
3426	op := &request.Operation{
3427		Name:       opStartImageBuilder,
3428		HTTPMethod: "POST",
3429		HTTPPath:   "/",
3430	}
3431
3432	if input == nil {
3433		input = &StartImageBuilderInput{}
3434	}
3435
3436	output = &StartImageBuilderOutput{}
3437	req = c.newRequest(op, input, output)
3438	return
3439}
3440
3441// StartImageBuilder API operation for Amazon AppStream.
3442//
3443// Starts the specified image builder.
3444//
3445// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3446// with awserr.Error's Code and Message methods to get detailed information about
3447// the error.
3448//
3449// See the AWS API reference guide for Amazon AppStream's
3450// API operation StartImageBuilder for usage and error information.
3451//
3452// Returned Error Codes:
3453//   * ErrCodeResourceNotAvailableException "ResourceNotAvailableException"
3454//   The specified resource exists and is not in use, but isn't available.
3455//
3456//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3457//   The specified resource was not found.
3458//
3459//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
3460//   An API error occurred. Wait a few minutes and try again.
3461//
3462//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
3463//   The resource cannot be created because your AWS account is suspended. For
3464//   assistance, contact AWS Support.
3465//
3466//   * ErrCodeIncompatibleImageException "IncompatibleImageException"
3467//   The image does not support storage connectors.
3468//
3469// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StartImageBuilder
3470func (c *AppStream) StartImageBuilder(input *StartImageBuilderInput) (*StartImageBuilderOutput, error) {
3471	req, out := c.StartImageBuilderRequest(input)
3472	return out, req.Send()
3473}
3474
3475// StartImageBuilderWithContext is the same as StartImageBuilder with the addition of
3476// the ability to pass a context and additional request options.
3477//
3478// See StartImageBuilder for details on how to use this API operation.
3479//
3480// The context must be non-nil and will be used for request cancellation. If
3481// the context is nil a panic will occur. In the future the SDK may create
3482// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3483// for more information on using Contexts.
3484func (c *AppStream) StartImageBuilderWithContext(ctx aws.Context, input *StartImageBuilderInput, opts ...request.Option) (*StartImageBuilderOutput, error) {
3485	req, out := c.StartImageBuilderRequest(input)
3486	req.SetContext(ctx)
3487	req.ApplyOptions(opts...)
3488	return out, req.Send()
3489}
3490
3491const opStopFleet = "StopFleet"
3492
3493// StopFleetRequest generates a "aws/request.Request" representing the
3494// client's request for the StopFleet operation. The "output" return
3495// value will be populated with the request's response once the request completes
3496// successfully.
3497//
3498// Use "Send" method on the returned Request to send the API call to the service.
3499// the "output" return value is not valid until after Send returns without error.
3500//
3501// See StopFleet for more information on using the StopFleet
3502// API call, and error handling.
3503//
3504// This method is useful when you want to inject custom logic or configuration
3505// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3506//
3507//
3508//    // Example sending a request using the StopFleetRequest method.
3509//    req, resp := client.StopFleetRequest(params)
3510//
3511//    err := req.Send()
3512//    if err == nil { // resp is now filled
3513//        fmt.Println(resp)
3514//    }
3515//
3516// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StopFleet
3517func (c *AppStream) StopFleetRequest(input *StopFleetInput) (req *request.Request, output *StopFleetOutput) {
3518	op := &request.Operation{
3519		Name:       opStopFleet,
3520		HTTPMethod: "POST",
3521		HTTPPath:   "/",
3522	}
3523
3524	if input == nil {
3525		input = &StopFleetInput{}
3526	}
3527
3528	output = &StopFleetOutput{}
3529	req = c.newRequest(op, input, output)
3530	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3531	return
3532}
3533
3534// StopFleet API operation for Amazon AppStream.
3535//
3536// Stops the specified fleet.
3537//
3538// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3539// with awserr.Error's Code and Message methods to get detailed information about
3540// the error.
3541//
3542// See the AWS API reference guide for Amazon AppStream's
3543// API operation StopFleet for usage and error information.
3544//
3545// Returned Error Codes:
3546//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3547//   The specified resource was not found.
3548//
3549//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
3550//   An API error occurred. Wait a few minutes and try again.
3551//
3552// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StopFleet
3553func (c *AppStream) StopFleet(input *StopFleetInput) (*StopFleetOutput, error) {
3554	req, out := c.StopFleetRequest(input)
3555	return out, req.Send()
3556}
3557
3558// StopFleetWithContext is the same as StopFleet with the addition of
3559// the ability to pass a context and additional request options.
3560//
3561// See StopFleet for details on how to use this API operation.
3562//
3563// The context must be non-nil and will be used for request cancellation. If
3564// the context is nil a panic will occur. In the future the SDK may create
3565// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3566// for more information on using Contexts.
3567func (c *AppStream) StopFleetWithContext(ctx aws.Context, input *StopFleetInput, opts ...request.Option) (*StopFleetOutput, error) {
3568	req, out := c.StopFleetRequest(input)
3569	req.SetContext(ctx)
3570	req.ApplyOptions(opts...)
3571	return out, req.Send()
3572}
3573
3574const opStopImageBuilder = "StopImageBuilder"
3575
3576// StopImageBuilderRequest generates a "aws/request.Request" representing the
3577// client's request for the StopImageBuilder operation. The "output" return
3578// value will be populated with the request's response once the request completes
3579// successfully.
3580//
3581// Use "Send" method on the returned Request to send the API call to the service.
3582// the "output" return value is not valid until after Send returns without error.
3583//
3584// See StopImageBuilder for more information on using the StopImageBuilder
3585// API call, and error handling.
3586//
3587// This method is useful when you want to inject custom logic or configuration
3588// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3589//
3590//
3591//    // Example sending a request using the StopImageBuilderRequest method.
3592//    req, resp := client.StopImageBuilderRequest(params)
3593//
3594//    err := req.Send()
3595//    if err == nil { // resp is now filled
3596//        fmt.Println(resp)
3597//    }
3598//
3599// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StopImageBuilder
3600func (c *AppStream) StopImageBuilderRequest(input *StopImageBuilderInput) (req *request.Request, output *StopImageBuilderOutput) {
3601	op := &request.Operation{
3602		Name:       opStopImageBuilder,
3603		HTTPMethod: "POST",
3604		HTTPPath:   "/",
3605	}
3606
3607	if input == nil {
3608		input = &StopImageBuilderInput{}
3609	}
3610
3611	output = &StopImageBuilderOutput{}
3612	req = c.newRequest(op, input, output)
3613	return
3614}
3615
3616// StopImageBuilder API operation for Amazon AppStream.
3617//
3618// Stops the specified image builder.
3619//
3620// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3621// with awserr.Error's Code and Message methods to get detailed information about
3622// the error.
3623//
3624// See the AWS API reference guide for Amazon AppStream's
3625// API operation StopImageBuilder for usage and error information.
3626//
3627// Returned Error Codes:
3628//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3629//   The specified resource was not found.
3630//
3631//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
3632//   The attempted operation is not permitted.
3633//
3634//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
3635//   An API error occurred. Wait a few minutes and try again.
3636//
3637// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StopImageBuilder
3638func (c *AppStream) StopImageBuilder(input *StopImageBuilderInput) (*StopImageBuilderOutput, error) {
3639	req, out := c.StopImageBuilderRequest(input)
3640	return out, req.Send()
3641}
3642
3643// StopImageBuilderWithContext is the same as StopImageBuilder with the addition of
3644// the ability to pass a context and additional request options.
3645//
3646// See StopImageBuilder for details on how to use this API operation.
3647//
3648// The context must be non-nil and will be used for request cancellation. If
3649// the context is nil a panic will occur. In the future the SDK may create
3650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3651// for more information on using Contexts.
3652func (c *AppStream) StopImageBuilderWithContext(ctx aws.Context, input *StopImageBuilderInput, opts ...request.Option) (*StopImageBuilderOutput, error) {
3653	req, out := c.StopImageBuilderRequest(input)
3654	req.SetContext(ctx)
3655	req.ApplyOptions(opts...)
3656	return out, req.Send()
3657}
3658
3659const opTagResource = "TagResource"
3660
3661// TagResourceRequest generates a "aws/request.Request" representing the
3662// client's request for the TagResource operation. The "output" return
3663// value will be populated with the request's response once the request completes
3664// successfully.
3665//
3666// Use "Send" method on the returned Request to send the API call to the service.
3667// the "output" return value is not valid until after Send returns without error.
3668//
3669// See TagResource for more information on using the TagResource
3670// API call, and error handling.
3671//
3672// This method is useful when you want to inject custom logic or configuration
3673// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3674//
3675//
3676//    // Example sending a request using the TagResourceRequest method.
3677//    req, resp := client.TagResourceRequest(params)
3678//
3679//    err := req.Send()
3680//    if err == nil { // resp is now filled
3681//        fmt.Println(resp)
3682//    }
3683//
3684// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/TagResource
3685func (c *AppStream) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
3686	op := &request.Operation{
3687		Name:       opTagResource,
3688		HTTPMethod: "POST",
3689		HTTPPath:   "/",
3690	}
3691
3692	if input == nil {
3693		input = &TagResourceInput{}
3694	}
3695
3696	output = &TagResourceOutput{}
3697	req = c.newRequest(op, input, output)
3698	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3699	return
3700}
3701
3702// TagResource API operation for Amazon AppStream.
3703//
3704// Adds or overwrites one or more tags for the specified AppStream 2.0 resource.
3705// You can tag AppStream 2.0 image builders, images, fleets, and stacks.
3706//
3707// Each tag consists of a key and an optional value. If a resource already has
3708// a tag with the same key, this operation updates its value.
3709//
3710// To list the current tags for your resources, use ListTagsForResource. To
3711// disassociate tags from your resources, use UntagResource.
3712//
3713// For more information about tags, see Tagging Your Resources (https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html)
3714// in the Amazon AppStream 2.0 Administration Guide.
3715//
3716// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3717// with awserr.Error's Code and Message methods to get detailed information about
3718// the error.
3719//
3720// See the AWS API reference guide for Amazon AppStream's
3721// API operation TagResource for usage and error information.
3722//
3723// Returned Error Codes:
3724//   * ErrCodeLimitExceededException "LimitExceededException"
3725//   The requested limit exceeds the permitted limit for an account.
3726//
3727//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
3728//   The resource cannot be created because your AWS account is suspended. For
3729//   assistance, contact AWS Support.
3730//
3731//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3732//   The specified resource was not found.
3733//
3734// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/TagResource
3735func (c *AppStream) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
3736	req, out := c.TagResourceRequest(input)
3737	return out, req.Send()
3738}
3739
3740// TagResourceWithContext is the same as TagResource with the addition of
3741// the ability to pass a context and additional request options.
3742//
3743// See TagResource for details on how to use this API operation.
3744//
3745// The context must be non-nil and will be used for request cancellation. If
3746// the context is nil a panic will occur. In the future the SDK may create
3747// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3748// for more information on using Contexts.
3749func (c *AppStream) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
3750	req, out := c.TagResourceRequest(input)
3751	req.SetContext(ctx)
3752	req.ApplyOptions(opts...)
3753	return out, req.Send()
3754}
3755
3756const opUntagResource = "UntagResource"
3757
3758// UntagResourceRequest generates a "aws/request.Request" representing the
3759// client's request for the UntagResource operation. The "output" return
3760// value will be populated with the request's response once the request completes
3761// successfully.
3762//
3763// Use "Send" method on the returned Request to send the API call to the service.
3764// the "output" return value is not valid until after Send returns without error.
3765//
3766// See UntagResource for more information on using the UntagResource
3767// API call, and error handling.
3768//
3769// This method is useful when you want to inject custom logic or configuration
3770// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3771//
3772//
3773//    // Example sending a request using the UntagResourceRequest method.
3774//    req, resp := client.UntagResourceRequest(params)
3775//
3776//    err := req.Send()
3777//    if err == nil { // resp is now filled
3778//        fmt.Println(resp)
3779//    }
3780//
3781// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UntagResource
3782func (c *AppStream) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
3783	op := &request.Operation{
3784		Name:       opUntagResource,
3785		HTTPMethod: "POST",
3786		HTTPPath:   "/",
3787	}
3788
3789	if input == nil {
3790		input = &UntagResourceInput{}
3791	}
3792
3793	output = &UntagResourceOutput{}
3794	req = c.newRequest(op, input, output)
3795	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3796	return
3797}
3798
3799// UntagResource API operation for Amazon AppStream.
3800//
3801// Disassociates one or more specified tags from the specified AppStream 2.0
3802// resource.
3803//
3804// To list the current tags for your resources, use ListTagsForResource.
3805//
3806// For more information about tags, see Tagging Your Resources (https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html)
3807// in the Amazon AppStream 2.0 Administration Guide.
3808//
3809// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3810// with awserr.Error's Code and Message methods to get detailed information about
3811// the error.
3812//
3813// See the AWS API reference guide for Amazon AppStream's
3814// API operation UntagResource for usage and error information.
3815//
3816// Returned Error Codes:
3817//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3818//   The specified resource was not found.
3819//
3820// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UntagResource
3821func (c *AppStream) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
3822	req, out := c.UntagResourceRequest(input)
3823	return out, req.Send()
3824}
3825
3826// UntagResourceWithContext is the same as UntagResource with the addition of
3827// the ability to pass a context and additional request options.
3828//
3829// See UntagResource for details on how to use this API operation.
3830//
3831// The context must be non-nil and will be used for request cancellation. If
3832// the context is nil a panic will occur. In the future the SDK may create
3833// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3834// for more information on using Contexts.
3835func (c *AppStream) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
3836	req, out := c.UntagResourceRequest(input)
3837	req.SetContext(ctx)
3838	req.ApplyOptions(opts...)
3839	return out, req.Send()
3840}
3841
3842const opUpdateDirectoryConfig = "UpdateDirectoryConfig"
3843
3844// UpdateDirectoryConfigRequest generates a "aws/request.Request" representing the
3845// client's request for the UpdateDirectoryConfig operation. The "output" return
3846// value will be populated with the request's response once the request completes
3847// successfully.
3848//
3849// Use "Send" method on the returned Request to send the API call to the service.
3850// the "output" return value is not valid until after Send returns without error.
3851//
3852// See UpdateDirectoryConfig for more information on using the UpdateDirectoryConfig
3853// API call, and error handling.
3854//
3855// This method is useful when you want to inject custom logic or configuration
3856// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3857//
3858//
3859//    // Example sending a request using the UpdateDirectoryConfigRequest method.
3860//    req, resp := client.UpdateDirectoryConfigRequest(params)
3861//
3862//    err := req.Send()
3863//    if err == nil { // resp is now filled
3864//        fmt.Println(resp)
3865//    }
3866//
3867// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateDirectoryConfig
3868func (c *AppStream) UpdateDirectoryConfigRequest(input *UpdateDirectoryConfigInput) (req *request.Request, output *UpdateDirectoryConfigOutput) {
3869	op := &request.Operation{
3870		Name:       opUpdateDirectoryConfig,
3871		HTTPMethod: "POST",
3872		HTTPPath:   "/",
3873	}
3874
3875	if input == nil {
3876		input = &UpdateDirectoryConfigInput{}
3877	}
3878
3879	output = &UpdateDirectoryConfigOutput{}
3880	req = c.newRequest(op, input, output)
3881	return
3882}
3883
3884// UpdateDirectoryConfig API operation for Amazon AppStream.
3885//
3886// Updates the specified Directory Config object in AppStream 2.0. This object
3887// includes the configuration information required to join fleets and image
3888// builders to Microsoft Active Directory domains.
3889//
3890// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3891// with awserr.Error's Code and Message methods to get detailed information about
3892// the error.
3893//
3894// See the AWS API reference guide for Amazon AppStream's
3895// API operation UpdateDirectoryConfig for usage and error information.
3896//
3897// Returned Error Codes:
3898//   * ErrCodeResourceInUseException "ResourceInUseException"
3899//   The specified resource is in use.
3900//
3901//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
3902//   The specified resource was not found.
3903//
3904//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
3905//   An API error occurred. Wait a few minutes and try again.
3906//
3907// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateDirectoryConfig
3908func (c *AppStream) UpdateDirectoryConfig(input *UpdateDirectoryConfigInput) (*UpdateDirectoryConfigOutput, error) {
3909	req, out := c.UpdateDirectoryConfigRequest(input)
3910	return out, req.Send()
3911}
3912
3913// UpdateDirectoryConfigWithContext is the same as UpdateDirectoryConfig with the addition of
3914// the ability to pass a context and additional request options.
3915//
3916// See UpdateDirectoryConfig for details on how to use this API operation.
3917//
3918// The context must be non-nil and will be used for request cancellation. If
3919// the context is nil a panic will occur. In the future the SDK may create
3920// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3921// for more information on using Contexts.
3922func (c *AppStream) UpdateDirectoryConfigWithContext(ctx aws.Context, input *UpdateDirectoryConfigInput, opts ...request.Option) (*UpdateDirectoryConfigOutput, error) {
3923	req, out := c.UpdateDirectoryConfigRequest(input)
3924	req.SetContext(ctx)
3925	req.ApplyOptions(opts...)
3926	return out, req.Send()
3927}
3928
3929const opUpdateFleet = "UpdateFleet"
3930
3931// UpdateFleetRequest generates a "aws/request.Request" representing the
3932// client's request for the UpdateFleet operation. The "output" return
3933// value will be populated with the request's response once the request completes
3934// successfully.
3935//
3936// Use "Send" method on the returned Request to send the API call to the service.
3937// the "output" return value is not valid until after Send returns without error.
3938//
3939// See UpdateFleet for more information on using the UpdateFleet
3940// API call, and error handling.
3941//
3942// This method is useful when you want to inject custom logic or configuration
3943// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3944//
3945//
3946//    // Example sending a request using the UpdateFleetRequest method.
3947//    req, resp := client.UpdateFleetRequest(params)
3948//
3949//    err := req.Send()
3950//    if err == nil { // resp is now filled
3951//        fmt.Println(resp)
3952//    }
3953//
3954// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateFleet
3955func (c *AppStream) UpdateFleetRequest(input *UpdateFleetInput) (req *request.Request, output *UpdateFleetOutput) {
3956	op := &request.Operation{
3957		Name:       opUpdateFleet,
3958		HTTPMethod: "POST",
3959		HTTPPath:   "/",
3960	}
3961
3962	if input == nil {
3963		input = &UpdateFleetInput{}
3964	}
3965
3966	output = &UpdateFleetOutput{}
3967	req = c.newRequest(op, input, output)
3968	return
3969}
3970
3971// UpdateFleet API operation for Amazon AppStream.
3972//
3973// Updates the specified fleet.
3974//
3975// If the fleet is in the STOPPED state, you can update any attribute except
3976// the fleet name. If the fleet is in the RUNNING state, you can update the
3977// DisplayName, ComputeCapacity, ImageARN, ImageName, IdleDisconnectTimeoutInSeconds,
3978// and DisconnectTimeoutInSeconds attributes. If the fleet is in the STARTING
3979// or STOPPING state, you can't update it.
3980//
3981// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3982// with awserr.Error's Code and Message methods to get detailed information about
3983// the error.
3984//
3985// See the AWS API reference guide for Amazon AppStream's
3986// API operation UpdateFleet for usage and error information.
3987//
3988// Returned Error Codes:
3989//   * ErrCodeResourceInUseException "ResourceInUseException"
3990//   The specified resource is in use.
3991//
3992//   * ErrCodeLimitExceededException "LimitExceededException"
3993//   The requested limit exceeds the permitted limit for an account.
3994//
3995//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
3996//   The resource cannot be created because your AWS account is suspended. For
3997//   assistance, contact AWS Support.
3998//
3999//   * ErrCodeInvalidRoleException "InvalidRoleException"
4000//   The specified role is invalid.
4001//
4002//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4003//   The specified resource was not found.
4004//
4005//   * ErrCodeResourceNotAvailableException "ResourceNotAvailableException"
4006//   The specified resource exists and is not in use, but isn't available.
4007//
4008//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
4009//   Indicates an incorrect combination of parameters, or a missing parameter.
4010//
4011//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
4012//   An API error occurred. Wait a few minutes and try again.
4013//
4014//   * ErrCodeIncompatibleImageException "IncompatibleImageException"
4015//   The image does not support storage connectors.
4016//
4017//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
4018//   The attempted operation is not permitted.
4019//
4020// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateFleet
4021func (c *AppStream) UpdateFleet(input *UpdateFleetInput) (*UpdateFleetOutput, error) {
4022	req, out := c.UpdateFleetRequest(input)
4023	return out, req.Send()
4024}
4025
4026// UpdateFleetWithContext is the same as UpdateFleet with the addition of
4027// the ability to pass a context and additional request options.
4028//
4029// See UpdateFleet for details on how to use this API operation.
4030//
4031// The context must be non-nil and will be used for request cancellation. If
4032// the context is nil a panic will occur. In the future the SDK may create
4033// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4034// for more information on using Contexts.
4035func (c *AppStream) UpdateFleetWithContext(ctx aws.Context, input *UpdateFleetInput, opts ...request.Option) (*UpdateFleetOutput, error) {
4036	req, out := c.UpdateFleetRequest(input)
4037	req.SetContext(ctx)
4038	req.ApplyOptions(opts...)
4039	return out, req.Send()
4040}
4041
4042const opUpdateImagePermissions = "UpdateImagePermissions"
4043
4044// UpdateImagePermissionsRequest generates a "aws/request.Request" representing the
4045// client's request for the UpdateImagePermissions operation. The "output" return
4046// value will be populated with the request's response once the request completes
4047// successfully.
4048//
4049// Use "Send" method on the returned Request to send the API call to the service.
4050// the "output" return value is not valid until after Send returns without error.
4051//
4052// See UpdateImagePermissions for more information on using the UpdateImagePermissions
4053// API call, and error handling.
4054//
4055// This method is useful when you want to inject custom logic or configuration
4056// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4057//
4058//
4059//    // Example sending a request using the UpdateImagePermissionsRequest method.
4060//    req, resp := client.UpdateImagePermissionsRequest(params)
4061//
4062//    err := req.Send()
4063//    if err == nil { // resp is now filled
4064//        fmt.Println(resp)
4065//    }
4066//
4067// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateImagePermissions
4068func (c *AppStream) UpdateImagePermissionsRequest(input *UpdateImagePermissionsInput) (req *request.Request, output *UpdateImagePermissionsOutput) {
4069	op := &request.Operation{
4070		Name:       opUpdateImagePermissions,
4071		HTTPMethod: "POST",
4072		HTTPPath:   "/",
4073	}
4074
4075	if input == nil {
4076		input = &UpdateImagePermissionsInput{}
4077	}
4078
4079	output = &UpdateImagePermissionsOutput{}
4080	req = c.newRequest(op, input, output)
4081	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4082	return
4083}
4084
4085// UpdateImagePermissions API operation for Amazon AppStream.
4086//
4087// Adds or updates permissions for the specified private image.
4088//
4089// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4090// with awserr.Error's Code and Message methods to get detailed information about
4091// the error.
4092//
4093// See the AWS API reference guide for Amazon AppStream's
4094// API operation UpdateImagePermissions for usage and error information.
4095//
4096// Returned Error Codes:
4097//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4098//   The specified resource was not found.
4099//
4100//   * ErrCodeResourceNotAvailableException "ResourceNotAvailableException"
4101//   The specified resource exists and is not in use, but isn't available.
4102//
4103//   * ErrCodeLimitExceededException "LimitExceededException"
4104//   The requested limit exceeds the permitted limit for an account.
4105//
4106// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateImagePermissions
4107func (c *AppStream) UpdateImagePermissions(input *UpdateImagePermissionsInput) (*UpdateImagePermissionsOutput, error) {
4108	req, out := c.UpdateImagePermissionsRequest(input)
4109	return out, req.Send()
4110}
4111
4112// UpdateImagePermissionsWithContext is the same as UpdateImagePermissions with the addition of
4113// the ability to pass a context and additional request options.
4114//
4115// See UpdateImagePermissions for details on how to use this API operation.
4116//
4117// The context must be non-nil and will be used for request cancellation. If
4118// the context is nil a panic will occur. In the future the SDK may create
4119// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4120// for more information on using Contexts.
4121func (c *AppStream) UpdateImagePermissionsWithContext(ctx aws.Context, input *UpdateImagePermissionsInput, opts ...request.Option) (*UpdateImagePermissionsOutput, error) {
4122	req, out := c.UpdateImagePermissionsRequest(input)
4123	req.SetContext(ctx)
4124	req.ApplyOptions(opts...)
4125	return out, req.Send()
4126}
4127
4128const opUpdateStack = "UpdateStack"
4129
4130// UpdateStackRequest generates a "aws/request.Request" representing the
4131// client's request for the UpdateStack operation. The "output" return
4132// value will be populated with the request's response once the request completes
4133// successfully.
4134//
4135// Use "Send" method on the returned Request to send the API call to the service.
4136// the "output" return value is not valid until after Send returns without error.
4137//
4138// See UpdateStack for more information on using the UpdateStack
4139// API call, and error handling.
4140//
4141// This method is useful when you want to inject custom logic or configuration
4142// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4143//
4144//
4145//    // Example sending a request using the UpdateStackRequest method.
4146//    req, resp := client.UpdateStackRequest(params)
4147//
4148//    err := req.Send()
4149//    if err == nil { // resp is now filled
4150//        fmt.Println(resp)
4151//    }
4152//
4153// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateStack
4154func (c *AppStream) UpdateStackRequest(input *UpdateStackInput) (req *request.Request, output *UpdateStackOutput) {
4155	op := &request.Operation{
4156		Name:       opUpdateStack,
4157		HTTPMethod: "POST",
4158		HTTPPath:   "/",
4159	}
4160
4161	if input == nil {
4162		input = &UpdateStackInput{}
4163	}
4164
4165	output = &UpdateStackOutput{}
4166	req = c.newRequest(op, input, output)
4167	return
4168}
4169
4170// UpdateStack API operation for Amazon AppStream.
4171//
4172// Updates the specified fields for the specified stack.
4173//
4174// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4175// with awserr.Error's Code and Message methods to get detailed information about
4176// the error.
4177//
4178// See the AWS API reference guide for Amazon AppStream's
4179// API operation UpdateStack for usage and error information.
4180//
4181// Returned Error Codes:
4182//   * ErrCodeResourceNotFoundException "ResourceNotFoundException"
4183//   The specified resource was not found.
4184//
4185//   * ErrCodeResourceInUseException "ResourceInUseException"
4186//   The specified resource is in use.
4187//
4188//   * ErrCodeInvalidRoleException "InvalidRoleException"
4189//   The specified role is invalid.
4190//
4191//   * ErrCodeInvalidParameterCombinationException "InvalidParameterCombinationException"
4192//   Indicates an incorrect combination of parameters, or a missing parameter.
4193//
4194//   * ErrCodeLimitExceededException "LimitExceededException"
4195//   The requested limit exceeds the permitted limit for an account.
4196//
4197//   * ErrCodeInvalidAccountStatusException "InvalidAccountStatusException"
4198//   The resource cannot be created because your AWS account is suspended. For
4199//   assistance, contact AWS Support.
4200//
4201//   * ErrCodeIncompatibleImageException "IncompatibleImageException"
4202//   The image does not support storage connectors.
4203//
4204//   * ErrCodeOperationNotPermittedException "OperationNotPermittedException"
4205//   The attempted operation is not permitted.
4206//
4207//   * ErrCodeConcurrentModificationException "ConcurrentModificationException"
4208//   An API error occurred. Wait a few minutes and try again.
4209//
4210// See also, https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateStack
4211func (c *AppStream) UpdateStack(input *UpdateStackInput) (*UpdateStackOutput, error) {
4212	req, out := c.UpdateStackRequest(input)
4213	return out, req.Send()
4214}
4215
4216// UpdateStackWithContext is the same as UpdateStack with the addition of
4217// the ability to pass a context and additional request options.
4218//
4219// See UpdateStack for details on how to use this API operation.
4220//
4221// The context must be non-nil and will be used for request cancellation. If
4222// the context is nil a panic will occur. In the future the SDK may create
4223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4224// for more information on using Contexts.
4225func (c *AppStream) UpdateStackWithContext(ctx aws.Context, input *UpdateStackInput, opts ...request.Option) (*UpdateStackOutput, error) {
4226	req, out := c.UpdateStackRequest(input)
4227	req.SetContext(ctx)
4228	req.ApplyOptions(opts...)
4229	return out, req.Send()
4230}
4231
4232// Describes an interface VPC endpoint (interface endpoint) that lets you create
4233// a private connection between the virtual private cloud (VPC) that you specify
4234// and AppStream 2.0. When you specify an interface endpoint for a stack, users
4235// of the stack can connect to AppStream 2.0 only through that endpoint. When
4236// you specify an interface endpoint for an image builder, administrators can
4237// connect to the image builder only through that endpoint.
4238type AccessEndpoint struct {
4239	_ struct{} `type:"structure"`
4240
4241	// The type of interface endpoint.
4242	//
4243	// EndpointType is a required field
4244	EndpointType *string `type:"string" required:"true" enum:"AccessEndpointType"`
4245
4246	// The identifier (ID) of the VPC in which the interface endpoint is used.
4247	VpceId *string `min:"1" type:"string"`
4248}
4249
4250// String returns the string representation
4251func (s AccessEndpoint) String() string {
4252	return awsutil.Prettify(s)
4253}
4254
4255// GoString returns the string representation
4256func (s AccessEndpoint) GoString() string {
4257	return s.String()
4258}
4259
4260// Validate inspects the fields of the type to determine if they are valid.
4261func (s *AccessEndpoint) Validate() error {
4262	invalidParams := request.ErrInvalidParams{Context: "AccessEndpoint"}
4263	if s.EndpointType == nil {
4264		invalidParams.Add(request.NewErrParamRequired("EndpointType"))
4265	}
4266	if s.VpceId != nil && len(*s.VpceId) < 1 {
4267		invalidParams.Add(request.NewErrParamMinLen("VpceId", 1))
4268	}
4269
4270	if invalidParams.Len() > 0 {
4271		return invalidParams
4272	}
4273	return nil
4274}
4275
4276// SetEndpointType sets the EndpointType field's value.
4277func (s *AccessEndpoint) SetEndpointType(v string) *AccessEndpoint {
4278	s.EndpointType = &v
4279	return s
4280}
4281
4282// SetVpceId sets the VpceId field's value.
4283func (s *AccessEndpoint) SetVpceId(v string) *AccessEndpoint {
4284	s.VpceId = &v
4285	return s
4286}
4287
4288// Describes an application in the application catalog.
4289type Application struct {
4290	_ struct{} `type:"structure"`
4291
4292	// The application name to display.
4293	DisplayName *string `min:"1" type:"string"`
4294
4295	// If there is a problem, the application can be disabled after image creation.
4296	Enabled *bool `type:"boolean"`
4297
4298	// The URL for the application icon. This URL might be time-limited.
4299	IconURL *string `min:"1" type:"string"`
4300
4301	// The arguments that are passed to the application at launch.
4302	LaunchParameters *string `min:"1" type:"string"`
4303
4304	// The path to the application executable in the instance.
4305	LaunchPath *string `min:"1" type:"string"`
4306
4307	// Additional attributes that describe the application.
4308	Metadata map[string]*string `type:"map"`
4309
4310	// The name of the application.
4311	Name *string `min:"1" type:"string"`
4312}
4313
4314// String returns the string representation
4315func (s Application) String() string {
4316	return awsutil.Prettify(s)
4317}
4318
4319// GoString returns the string representation
4320func (s Application) GoString() string {
4321	return s.String()
4322}
4323
4324// SetDisplayName sets the DisplayName field's value.
4325func (s *Application) SetDisplayName(v string) *Application {
4326	s.DisplayName = &v
4327	return s
4328}
4329
4330// SetEnabled sets the Enabled field's value.
4331func (s *Application) SetEnabled(v bool) *Application {
4332	s.Enabled = &v
4333	return s
4334}
4335
4336// SetIconURL sets the IconURL field's value.
4337func (s *Application) SetIconURL(v string) *Application {
4338	s.IconURL = &v
4339	return s
4340}
4341
4342// SetLaunchParameters sets the LaunchParameters field's value.
4343func (s *Application) SetLaunchParameters(v string) *Application {
4344	s.LaunchParameters = &v
4345	return s
4346}
4347
4348// SetLaunchPath sets the LaunchPath field's value.
4349func (s *Application) SetLaunchPath(v string) *Application {
4350	s.LaunchPath = &v
4351	return s
4352}
4353
4354// SetMetadata sets the Metadata field's value.
4355func (s *Application) SetMetadata(v map[string]*string) *Application {
4356	s.Metadata = v
4357	return s
4358}
4359
4360// SetName sets the Name field's value.
4361func (s *Application) SetName(v string) *Application {
4362	s.Name = &v
4363	return s
4364}
4365
4366// The persistent application settings for users of a stack.
4367type ApplicationSettings struct {
4368	_ struct{} `type:"structure"`
4369
4370	// Enables or disables persistent application settings for users during their
4371	// streaming sessions.
4372	//
4373	// Enabled is a required field
4374	Enabled *bool `type:"boolean" required:"true"`
4375
4376	// The path prefix for the S3 bucket where users’ persistent application settings
4377	// are stored. You can allow the same persistent application settings to be
4378	// used across multiple stacks by specifying the same settings group for each
4379	// stack.
4380	SettingsGroup *string `type:"string"`
4381}
4382
4383// String returns the string representation
4384func (s ApplicationSettings) String() string {
4385	return awsutil.Prettify(s)
4386}
4387
4388// GoString returns the string representation
4389func (s ApplicationSettings) GoString() string {
4390	return s.String()
4391}
4392
4393// Validate inspects the fields of the type to determine if they are valid.
4394func (s *ApplicationSettings) Validate() error {
4395	invalidParams := request.ErrInvalidParams{Context: "ApplicationSettings"}
4396	if s.Enabled == nil {
4397		invalidParams.Add(request.NewErrParamRequired("Enabled"))
4398	}
4399
4400	if invalidParams.Len() > 0 {
4401		return invalidParams
4402	}
4403	return nil
4404}
4405
4406// SetEnabled sets the Enabled field's value.
4407func (s *ApplicationSettings) SetEnabled(v bool) *ApplicationSettings {
4408	s.Enabled = &v
4409	return s
4410}
4411
4412// SetSettingsGroup sets the SettingsGroup field's value.
4413func (s *ApplicationSettings) SetSettingsGroup(v string) *ApplicationSettings {
4414	s.SettingsGroup = &v
4415	return s
4416}
4417
4418// Describes the persistent application settings for users of a stack.
4419type ApplicationSettingsResponse struct {
4420	_ struct{} `type:"structure"`
4421
4422	// Specifies whether persistent application settings are enabled for users during
4423	// their streaming sessions.
4424	Enabled *bool `type:"boolean"`
4425
4426	// The S3 bucket where users’ persistent application settings are stored.
4427	// When persistent application settings are enabled for the first time for an
4428	// account in an AWS Region, an S3 bucket is created. The bucket is unique to
4429	// the AWS account and the Region.
4430	S3BucketName *string `min:"1" type:"string"`
4431
4432	// The path prefix for the S3 bucket where users’ persistent application settings
4433	// are stored.
4434	SettingsGroup *string `type:"string"`
4435}
4436
4437// String returns the string representation
4438func (s ApplicationSettingsResponse) String() string {
4439	return awsutil.Prettify(s)
4440}
4441
4442// GoString returns the string representation
4443func (s ApplicationSettingsResponse) GoString() string {
4444	return s.String()
4445}
4446
4447// SetEnabled sets the Enabled field's value.
4448func (s *ApplicationSettingsResponse) SetEnabled(v bool) *ApplicationSettingsResponse {
4449	s.Enabled = &v
4450	return s
4451}
4452
4453// SetS3BucketName sets the S3BucketName field's value.
4454func (s *ApplicationSettingsResponse) SetS3BucketName(v string) *ApplicationSettingsResponse {
4455	s.S3BucketName = &v
4456	return s
4457}
4458
4459// SetSettingsGroup sets the SettingsGroup field's value.
4460func (s *ApplicationSettingsResponse) SetSettingsGroup(v string) *ApplicationSettingsResponse {
4461	s.SettingsGroup = &v
4462	return s
4463}
4464
4465type AssociateFleetInput struct {
4466	_ struct{} `type:"structure"`
4467
4468	// The name of the fleet.
4469	//
4470	// FleetName is a required field
4471	FleetName *string `min:"1" type:"string" required:"true"`
4472
4473	// The name of the stack.
4474	//
4475	// StackName is a required field
4476	StackName *string `min:"1" type:"string" required:"true"`
4477}
4478
4479// String returns the string representation
4480func (s AssociateFleetInput) String() string {
4481	return awsutil.Prettify(s)
4482}
4483
4484// GoString returns the string representation
4485func (s AssociateFleetInput) GoString() string {
4486	return s.String()
4487}
4488
4489// Validate inspects the fields of the type to determine if they are valid.
4490func (s *AssociateFleetInput) Validate() error {
4491	invalidParams := request.ErrInvalidParams{Context: "AssociateFleetInput"}
4492	if s.FleetName == nil {
4493		invalidParams.Add(request.NewErrParamRequired("FleetName"))
4494	}
4495	if s.FleetName != nil && len(*s.FleetName) < 1 {
4496		invalidParams.Add(request.NewErrParamMinLen("FleetName", 1))
4497	}
4498	if s.StackName == nil {
4499		invalidParams.Add(request.NewErrParamRequired("StackName"))
4500	}
4501	if s.StackName != nil && len(*s.StackName) < 1 {
4502		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
4503	}
4504
4505	if invalidParams.Len() > 0 {
4506		return invalidParams
4507	}
4508	return nil
4509}
4510
4511// SetFleetName sets the FleetName field's value.
4512func (s *AssociateFleetInput) SetFleetName(v string) *AssociateFleetInput {
4513	s.FleetName = &v
4514	return s
4515}
4516
4517// SetStackName sets the StackName field's value.
4518func (s *AssociateFleetInput) SetStackName(v string) *AssociateFleetInput {
4519	s.StackName = &v
4520	return s
4521}
4522
4523type AssociateFleetOutput struct {
4524	_ struct{} `type:"structure"`
4525}
4526
4527// String returns the string representation
4528func (s AssociateFleetOutput) String() string {
4529	return awsutil.Prettify(s)
4530}
4531
4532// GoString returns the string representation
4533func (s AssociateFleetOutput) GoString() string {
4534	return s.String()
4535}
4536
4537type BatchAssociateUserStackInput struct {
4538	_ struct{} `type:"structure"`
4539
4540	// The list of UserStackAssociation objects.
4541	//
4542	// UserStackAssociations is a required field
4543	UserStackAssociations []*UserStackAssociation `min:"1" type:"list" required:"true"`
4544}
4545
4546// String returns the string representation
4547func (s BatchAssociateUserStackInput) String() string {
4548	return awsutil.Prettify(s)
4549}
4550
4551// GoString returns the string representation
4552func (s BatchAssociateUserStackInput) GoString() string {
4553	return s.String()
4554}
4555
4556// Validate inspects the fields of the type to determine if they are valid.
4557func (s *BatchAssociateUserStackInput) Validate() error {
4558	invalidParams := request.ErrInvalidParams{Context: "BatchAssociateUserStackInput"}
4559	if s.UserStackAssociations == nil {
4560		invalidParams.Add(request.NewErrParamRequired("UserStackAssociations"))
4561	}
4562	if s.UserStackAssociations != nil && len(s.UserStackAssociations) < 1 {
4563		invalidParams.Add(request.NewErrParamMinLen("UserStackAssociations", 1))
4564	}
4565	if s.UserStackAssociations != nil {
4566		for i, v := range s.UserStackAssociations {
4567			if v == nil {
4568				continue
4569			}
4570			if err := v.Validate(); err != nil {
4571				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UserStackAssociations", i), err.(request.ErrInvalidParams))
4572			}
4573		}
4574	}
4575
4576	if invalidParams.Len() > 0 {
4577		return invalidParams
4578	}
4579	return nil
4580}
4581
4582// SetUserStackAssociations sets the UserStackAssociations field's value.
4583func (s *BatchAssociateUserStackInput) SetUserStackAssociations(v []*UserStackAssociation) *BatchAssociateUserStackInput {
4584	s.UserStackAssociations = v
4585	return s
4586}
4587
4588type BatchAssociateUserStackOutput struct {
4589	_ struct{} `type:"structure"`
4590
4591	// The list of UserStackAssociationError objects.
4592	Errors []*UserStackAssociationError `locationName:"errors" type:"list"`
4593}
4594
4595// String returns the string representation
4596func (s BatchAssociateUserStackOutput) String() string {
4597	return awsutil.Prettify(s)
4598}
4599
4600// GoString returns the string representation
4601func (s BatchAssociateUserStackOutput) GoString() string {
4602	return s.String()
4603}
4604
4605// SetErrors sets the Errors field's value.
4606func (s *BatchAssociateUserStackOutput) SetErrors(v []*UserStackAssociationError) *BatchAssociateUserStackOutput {
4607	s.Errors = v
4608	return s
4609}
4610
4611type BatchDisassociateUserStackInput struct {
4612	_ struct{} `type:"structure"`
4613
4614	// The list of UserStackAssociation objects.
4615	//
4616	// UserStackAssociations is a required field
4617	UserStackAssociations []*UserStackAssociation `min:"1" type:"list" required:"true"`
4618}
4619
4620// String returns the string representation
4621func (s BatchDisassociateUserStackInput) String() string {
4622	return awsutil.Prettify(s)
4623}
4624
4625// GoString returns the string representation
4626func (s BatchDisassociateUserStackInput) GoString() string {
4627	return s.String()
4628}
4629
4630// Validate inspects the fields of the type to determine if they are valid.
4631func (s *BatchDisassociateUserStackInput) Validate() error {
4632	invalidParams := request.ErrInvalidParams{Context: "BatchDisassociateUserStackInput"}
4633	if s.UserStackAssociations == nil {
4634		invalidParams.Add(request.NewErrParamRequired("UserStackAssociations"))
4635	}
4636	if s.UserStackAssociations != nil && len(s.UserStackAssociations) < 1 {
4637		invalidParams.Add(request.NewErrParamMinLen("UserStackAssociations", 1))
4638	}
4639	if s.UserStackAssociations != nil {
4640		for i, v := range s.UserStackAssociations {
4641			if v == nil {
4642				continue
4643			}
4644			if err := v.Validate(); err != nil {
4645				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UserStackAssociations", i), err.(request.ErrInvalidParams))
4646			}
4647		}
4648	}
4649
4650	if invalidParams.Len() > 0 {
4651		return invalidParams
4652	}
4653	return nil
4654}
4655
4656// SetUserStackAssociations sets the UserStackAssociations field's value.
4657func (s *BatchDisassociateUserStackInput) SetUserStackAssociations(v []*UserStackAssociation) *BatchDisassociateUserStackInput {
4658	s.UserStackAssociations = v
4659	return s
4660}
4661
4662type BatchDisassociateUserStackOutput struct {
4663	_ struct{} `type:"structure"`
4664
4665	// The list of UserStackAssociationError objects.
4666	Errors []*UserStackAssociationError `locationName:"errors" type:"list"`
4667}
4668
4669// String returns the string representation
4670func (s BatchDisassociateUserStackOutput) String() string {
4671	return awsutil.Prettify(s)
4672}
4673
4674// GoString returns the string representation
4675func (s BatchDisassociateUserStackOutput) GoString() string {
4676	return s.String()
4677}
4678
4679// SetErrors sets the Errors field's value.
4680func (s *BatchDisassociateUserStackOutput) SetErrors(v []*UserStackAssociationError) *BatchDisassociateUserStackOutput {
4681	s.Errors = v
4682	return s
4683}
4684
4685// Describes the capacity for a fleet.
4686type ComputeCapacity struct {
4687	_ struct{} `type:"structure"`
4688
4689	// The desired number of streaming instances.
4690	//
4691	// DesiredInstances is a required field
4692	DesiredInstances *int64 `type:"integer" required:"true"`
4693}
4694
4695// String returns the string representation
4696func (s ComputeCapacity) String() string {
4697	return awsutil.Prettify(s)
4698}
4699
4700// GoString returns the string representation
4701func (s ComputeCapacity) GoString() string {
4702	return s.String()
4703}
4704
4705// Validate inspects the fields of the type to determine if they are valid.
4706func (s *ComputeCapacity) Validate() error {
4707	invalidParams := request.ErrInvalidParams{Context: "ComputeCapacity"}
4708	if s.DesiredInstances == nil {
4709		invalidParams.Add(request.NewErrParamRequired("DesiredInstances"))
4710	}
4711
4712	if invalidParams.Len() > 0 {
4713		return invalidParams
4714	}
4715	return nil
4716}
4717
4718// SetDesiredInstances sets the DesiredInstances field's value.
4719func (s *ComputeCapacity) SetDesiredInstances(v int64) *ComputeCapacity {
4720	s.DesiredInstances = &v
4721	return s
4722}
4723
4724// Describes the capacity status for a fleet.
4725type ComputeCapacityStatus struct {
4726	_ struct{} `type:"structure"`
4727
4728	// The number of currently available instances that can be used to stream sessions.
4729	Available *int64 `type:"integer"`
4730
4731	// The desired number of streaming instances.
4732	//
4733	// Desired is a required field
4734	Desired *int64 `type:"integer" required:"true"`
4735
4736	// The number of instances in use for streaming.
4737	InUse *int64 `type:"integer"`
4738
4739	// The total number of simultaneous streaming instances that are running.
4740	Running *int64 `type:"integer"`
4741}
4742
4743// String returns the string representation
4744func (s ComputeCapacityStatus) String() string {
4745	return awsutil.Prettify(s)
4746}
4747
4748// GoString returns the string representation
4749func (s ComputeCapacityStatus) GoString() string {
4750	return s.String()
4751}
4752
4753// SetAvailable sets the Available field's value.
4754func (s *ComputeCapacityStatus) SetAvailable(v int64) *ComputeCapacityStatus {
4755	s.Available = &v
4756	return s
4757}
4758
4759// SetDesired sets the Desired field's value.
4760func (s *ComputeCapacityStatus) SetDesired(v int64) *ComputeCapacityStatus {
4761	s.Desired = &v
4762	return s
4763}
4764
4765// SetInUse sets the InUse field's value.
4766func (s *ComputeCapacityStatus) SetInUse(v int64) *ComputeCapacityStatus {
4767	s.InUse = &v
4768	return s
4769}
4770
4771// SetRunning sets the Running field's value.
4772func (s *ComputeCapacityStatus) SetRunning(v int64) *ComputeCapacityStatus {
4773	s.Running = &v
4774	return s
4775}
4776
4777type CopyImageInput struct {
4778	_ struct{} `type:"structure"`
4779
4780	// The description that the image will have when it is copied to the destination.
4781	DestinationImageDescription *string `type:"string"`
4782
4783	// The name that the image will have when it is copied to the destination.
4784	//
4785	// DestinationImageName is a required field
4786	DestinationImageName *string `type:"string" required:"true"`
4787
4788	// The destination region to which the image will be copied. This parameter
4789	// is required, even if you are copying an image within the same region.
4790	//
4791	// DestinationRegion is a required field
4792	DestinationRegion *string `min:"1" type:"string" required:"true"`
4793
4794	// The name of the image to copy.
4795	//
4796	// SourceImageName is a required field
4797	SourceImageName *string `type:"string" required:"true"`
4798}
4799
4800// String returns the string representation
4801func (s CopyImageInput) String() string {
4802	return awsutil.Prettify(s)
4803}
4804
4805// GoString returns the string representation
4806func (s CopyImageInput) GoString() string {
4807	return s.String()
4808}
4809
4810// Validate inspects the fields of the type to determine if they are valid.
4811func (s *CopyImageInput) Validate() error {
4812	invalidParams := request.ErrInvalidParams{Context: "CopyImageInput"}
4813	if s.DestinationImageName == nil {
4814		invalidParams.Add(request.NewErrParamRequired("DestinationImageName"))
4815	}
4816	if s.DestinationRegion == nil {
4817		invalidParams.Add(request.NewErrParamRequired("DestinationRegion"))
4818	}
4819	if s.DestinationRegion != nil && len(*s.DestinationRegion) < 1 {
4820		invalidParams.Add(request.NewErrParamMinLen("DestinationRegion", 1))
4821	}
4822	if s.SourceImageName == nil {
4823		invalidParams.Add(request.NewErrParamRequired("SourceImageName"))
4824	}
4825
4826	if invalidParams.Len() > 0 {
4827		return invalidParams
4828	}
4829	return nil
4830}
4831
4832// SetDestinationImageDescription sets the DestinationImageDescription field's value.
4833func (s *CopyImageInput) SetDestinationImageDescription(v string) *CopyImageInput {
4834	s.DestinationImageDescription = &v
4835	return s
4836}
4837
4838// SetDestinationImageName sets the DestinationImageName field's value.
4839func (s *CopyImageInput) SetDestinationImageName(v string) *CopyImageInput {
4840	s.DestinationImageName = &v
4841	return s
4842}
4843
4844// SetDestinationRegion sets the DestinationRegion field's value.
4845func (s *CopyImageInput) SetDestinationRegion(v string) *CopyImageInput {
4846	s.DestinationRegion = &v
4847	return s
4848}
4849
4850// SetSourceImageName sets the SourceImageName field's value.
4851func (s *CopyImageInput) SetSourceImageName(v string) *CopyImageInput {
4852	s.SourceImageName = &v
4853	return s
4854}
4855
4856type CopyImageOutput struct {
4857	_ struct{} `type:"structure"`
4858
4859	// The name of the destination image.
4860	DestinationImageName *string `type:"string"`
4861}
4862
4863// String returns the string representation
4864func (s CopyImageOutput) String() string {
4865	return awsutil.Prettify(s)
4866}
4867
4868// GoString returns the string representation
4869func (s CopyImageOutput) GoString() string {
4870	return s.String()
4871}
4872
4873// SetDestinationImageName sets the DestinationImageName field's value.
4874func (s *CopyImageOutput) SetDestinationImageName(v string) *CopyImageOutput {
4875	s.DestinationImageName = &v
4876	return s
4877}
4878
4879type CreateDirectoryConfigInput struct {
4880	_ struct{} `type:"structure"`
4881
4882	// The fully qualified name of the directory (for example, corp.example.com).
4883	//
4884	// DirectoryName is a required field
4885	DirectoryName *string `type:"string" required:"true"`
4886
4887	// The distinguished names of the organizational units for computer accounts.
4888	//
4889	// OrganizationalUnitDistinguishedNames is a required field
4890	OrganizationalUnitDistinguishedNames []*string `type:"list" required:"true"`
4891
4892	// The credentials for the service account used by the fleet or image builder
4893	// to connect to the directory.
4894	//
4895	// ServiceAccountCredentials is a required field
4896	ServiceAccountCredentials *ServiceAccountCredentials `type:"structure" required:"true"`
4897}
4898
4899// String returns the string representation
4900func (s CreateDirectoryConfigInput) String() string {
4901	return awsutil.Prettify(s)
4902}
4903
4904// GoString returns the string representation
4905func (s CreateDirectoryConfigInput) GoString() string {
4906	return s.String()
4907}
4908
4909// Validate inspects the fields of the type to determine if they are valid.
4910func (s *CreateDirectoryConfigInput) Validate() error {
4911	invalidParams := request.ErrInvalidParams{Context: "CreateDirectoryConfigInput"}
4912	if s.DirectoryName == nil {
4913		invalidParams.Add(request.NewErrParamRequired("DirectoryName"))
4914	}
4915	if s.OrganizationalUnitDistinguishedNames == nil {
4916		invalidParams.Add(request.NewErrParamRequired("OrganizationalUnitDistinguishedNames"))
4917	}
4918	if s.ServiceAccountCredentials == nil {
4919		invalidParams.Add(request.NewErrParamRequired("ServiceAccountCredentials"))
4920	}
4921	if s.ServiceAccountCredentials != nil {
4922		if err := s.ServiceAccountCredentials.Validate(); err != nil {
4923			invalidParams.AddNested("ServiceAccountCredentials", err.(request.ErrInvalidParams))
4924		}
4925	}
4926
4927	if invalidParams.Len() > 0 {
4928		return invalidParams
4929	}
4930	return nil
4931}
4932
4933// SetDirectoryName sets the DirectoryName field's value.
4934func (s *CreateDirectoryConfigInput) SetDirectoryName(v string) *CreateDirectoryConfigInput {
4935	s.DirectoryName = &v
4936	return s
4937}
4938
4939// SetOrganizationalUnitDistinguishedNames sets the OrganizationalUnitDistinguishedNames field's value.
4940func (s *CreateDirectoryConfigInput) SetOrganizationalUnitDistinguishedNames(v []*string) *CreateDirectoryConfigInput {
4941	s.OrganizationalUnitDistinguishedNames = v
4942	return s
4943}
4944
4945// SetServiceAccountCredentials sets the ServiceAccountCredentials field's value.
4946func (s *CreateDirectoryConfigInput) SetServiceAccountCredentials(v *ServiceAccountCredentials) *CreateDirectoryConfigInput {
4947	s.ServiceAccountCredentials = v
4948	return s
4949}
4950
4951type CreateDirectoryConfigOutput struct {
4952	_ struct{} `type:"structure"`
4953
4954	// Information about the directory configuration.
4955	DirectoryConfig *DirectoryConfig `type:"structure"`
4956}
4957
4958// String returns the string representation
4959func (s CreateDirectoryConfigOutput) String() string {
4960	return awsutil.Prettify(s)
4961}
4962
4963// GoString returns the string representation
4964func (s CreateDirectoryConfigOutput) GoString() string {
4965	return s.String()
4966}
4967
4968// SetDirectoryConfig sets the DirectoryConfig field's value.
4969func (s *CreateDirectoryConfigOutput) SetDirectoryConfig(v *DirectoryConfig) *CreateDirectoryConfigOutput {
4970	s.DirectoryConfig = v
4971	return s
4972}
4973
4974type CreateFleetInput struct {
4975	_ struct{} `type:"structure"`
4976
4977	// The desired capacity for the fleet.
4978	//
4979	// ComputeCapacity is a required field
4980	ComputeCapacity *ComputeCapacity `type:"structure" required:"true"`
4981
4982	// The description to display.
4983	Description *string `type:"string"`
4984
4985	// The amount of time that a streaming session remains active after users disconnect.
4986	// If users try to reconnect to the streaming session after a disconnection
4987	// or network interruption within this time interval, they are connected to
4988	// their previous session. Otherwise, they are connected to a new session with
4989	// a new streaming instance.
4990	//
4991	// Specify a value between 60 and 360000.
4992	DisconnectTimeoutInSeconds *int64 `type:"integer"`
4993
4994	// The fleet name to display.
4995	DisplayName *string `type:"string"`
4996
4997	// The name of the directory and organizational unit (OU) to use to join the
4998	// fleet to a Microsoft Active Directory domain.
4999	DomainJoinInfo *DomainJoinInfo `type:"structure"`
5000
5001	// Enables or disables default internet access for the fleet.
5002	EnableDefaultInternetAccess *bool `type:"boolean"`
5003
5004	// The fleet type.
5005	//
5006	// ALWAYS_ON
5007	//
5008	// Provides users with instant-on access to their apps. You are charged for
5009	// all running instances in your fleet, even if no users are streaming apps.
5010	//
5011	// ON_DEMAND
5012	//
5013	// Provide users with access to applications after they connect, which takes
5014	// one to two minutes. You are charged for instance streaming when users are
5015	// connected and a small hourly fee for instances that are not streaming apps.
5016	FleetType *string `type:"string" enum:"FleetType"`
5017
5018	// The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To
5019	// assume a role, a fleet instance calls the AWS Security Token Service (STS)
5020	// AssumeRole API operation and passes the ARN of the role to use. The operation
5021	// creates a new session with temporary credentials. AppStream 2.0 retrieves
5022	// the temporary credentials and creates the AppStream_Machine_Role credential
5023	// profile on the instance.
5024	//
5025	// For more information, see Using an IAM Role to Grant Permissions to Applications
5026	// and Scripts Running on AppStream 2.0 Streaming Instances (https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html)
5027	// in the Amazon AppStream 2.0 Administration Guide.
5028	IamRoleArn *string `type:"string"`
5029
5030	// The amount of time that users can be idle (inactive) before they are disconnected
5031	// from their streaming session and the DisconnectTimeoutInSeconds time interval
5032	// begins. Users are notified before they are disconnected due to inactivity.
5033	// If they try to reconnect to the streaming session before the time interval
5034	// specified in DisconnectTimeoutInSeconds elapses, they are connected to their
5035	// previous session. Users are considered idle when they stop providing keyboard
5036	// or mouse input during their streaming session. File uploads and downloads,
5037	// audio in, audio out, and pixels changing do not qualify as user activity.
5038	// If users continue to be idle after the time interval in IdleDisconnectTimeoutInSeconds
5039	// elapses, they are disconnected.
5040	//
5041	// To prevent users from being disconnected due to inactivity, specify a value
5042	// of 0. Otherwise, specify a value between 60 and 3600. The default value is
5043	// 0.
5044	//
5045	// If you enable this feature, we recommend that you specify a value that corresponds
5046	// exactly to a whole number of minutes (for example, 60, 120, and 180). If
5047	// you don't do this, the value is rounded to the nearest minute. For example,
5048	// if you specify a value of 70, users are disconnected after 1 minute of inactivity.
5049	// If you specify a value that is at the midpoint between two different minutes,
5050	// the value is rounded up. For example, if you specify a value of 90, users
5051	// are disconnected after 2 minutes of inactivity.
5052	IdleDisconnectTimeoutInSeconds *int64 `type:"integer"`
5053
5054	// The ARN of the public, private, or shared image to use.
5055	ImageArn *string `type:"string"`
5056
5057	// The name of the image used to create the fleet.
5058	ImageName *string `min:"1" type:"string"`
5059
5060	// The instance type to use when launching fleet instances. The following instance
5061	// types are available:
5062	//
5063	//    * stream.standard.medium
5064	//
5065	//    * stream.standard.large
5066	//
5067	//    * stream.compute.large
5068	//
5069	//    * stream.compute.xlarge
5070	//
5071	//    * stream.compute.2xlarge
5072	//
5073	//    * stream.compute.4xlarge
5074	//
5075	//    * stream.compute.8xlarge
5076	//
5077	//    * stream.memory.large
5078	//
5079	//    * stream.memory.xlarge
5080	//
5081	//    * stream.memory.2xlarge
5082	//
5083	//    * stream.memory.4xlarge
5084	//
5085	//    * stream.memory.8xlarge
5086	//
5087	//    * stream.graphics-design.large
5088	//
5089	//    * stream.graphics-design.xlarge
5090	//
5091	//    * stream.graphics-design.2xlarge
5092	//
5093	//    * stream.graphics-design.4xlarge
5094	//
5095	//    * stream.graphics-desktop.2xlarge
5096	//
5097	//    * stream.graphics-pro.4xlarge
5098	//
5099	//    * stream.graphics-pro.8xlarge
5100	//
5101	//    * stream.graphics-pro.16xlarge
5102	//
5103	// InstanceType is a required field
5104	InstanceType *string `min:"1" type:"string" required:"true"`
5105
5106	// The maximum amount of time that a streaming session can remain active, in
5107	// seconds. If users are still connected to a streaming instance five minutes
5108	// before this limit is reached, they are prompted to save any open documents
5109	// before being disconnected. After this time elapses, the instance is terminated
5110	// and replaced by a new instance.
5111	//
5112	// Specify a value between 600 and 360000.
5113	MaxUserDurationInSeconds *int64 `type:"integer"`
5114
5115	// A unique name for the fleet.
5116	//
5117	// Name is a required field
5118	Name *string `type:"string" required:"true"`
5119
5120	// The tags to associate with the fleet. A tag is a key-value pair, and the
5121	// value is optional. For example, Environment=Test. If you do not specify a
5122	// value, Environment=.
5123	//
5124	// If you do not specify a value, the value is set to an empty string.
5125	//
5126	// Generally allowed characters are: letters, numbers, and spaces representable
5127	// in UTF-8, and the following special characters:
5128	//
5129	// _ . : / = + \ - @
5130	//
5131	// For more information, see Tagging Your Resources (https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html)
5132	// in the Amazon AppStream 2.0 Administration Guide.
5133	Tags map[string]*string `min:"1" type:"map"`
5134
5135	// The VPC configuration for the fleet.
5136	VpcConfig *VpcConfig `type:"structure"`
5137}
5138
5139// String returns the string representation
5140func (s CreateFleetInput) String() string {
5141	return awsutil.Prettify(s)
5142}
5143
5144// GoString returns the string representation
5145func (s CreateFleetInput) GoString() string {
5146	return s.String()
5147}
5148
5149// Validate inspects the fields of the type to determine if they are valid.
5150func (s *CreateFleetInput) Validate() error {
5151	invalidParams := request.ErrInvalidParams{Context: "CreateFleetInput"}
5152	if s.ComputeCapacity == nil {
5153		invalidParams.Add(request.NewErrParamRequired("ComputeCapacity"))
5154	}
5155	if s.ImageName != nil && len(*s.ImageName) < 1 {
5156		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
5157	}
5158	if s.InstanceType == nil {
5159		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
5160	}
5161	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
5162		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
5163	}
5164	if s.Name == nil {
5165		invalidParams.Add(request.NewErrParamRequired("Name"))
5166	}
5167	if s.Tags != nil && len(s.Tags) < 1 {
5168		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
5169	}
5170	if s.ComputeCapacity != nil {
5171		if err := s.ComputeCapacity.Validate(); err != nil {
5172			invalidParams.AddNested("ComputeCapacity", err.(request.ErrInvalidParams))
5173		}
5174	}
5175
5176	if invalidParams.Len() > 0 {
5177		return invalidParams
5178	}
5179	return nil
5180}
5181
5182// SetComputeCapacity sets the ComputeCapacity field's value.
5183func (s *CreateFleetInput) SetComputeCapacity(v *ComputeCapacity) *CreateFleetInput {
5184	s.ComputeCapacity = v
5185	return s
5186}
5187
5188// SetDescription sets the Description field's value.
5189func (s *CreateFleetInput) SetDescription(v string) *CreateFleetInput {
5190	s.Description = &v
5191	return s
5192}
5193
5194// SetDisconnectTimeoutInSeconds sets the DisconnectTimeoutInSeconds field's value.
5195func (s *CreateFleetInput) SetDisconnectTimeoutInSeconds(v int64) *CreateFleetInput {
5196	s.DisconnectTimeoutInSeconds = &v
5197	return s
5198}
5199
5200// SetDisplayName sets the DisplayName field's value.
5201func (s *CreateFleetInput) SetDisplayName(v string) *CreateFleetInput {
5202	s.DisplayName = &v
5203	return s
5204}
5205
5206// SetDomainJoinInfo sets the DomainJoinInfo field's value.
5207func (s *CreateFleetInput) SetDomainJoinInfo(v *DomainJoinInfo) *CreateFleetInput {
5208	s.DomainJoinInfo = v
5209	return s
5210}
5211
5212// SetEnableDefaultInternetAccess sets the EnableDefaultInternetAccess field's value.
5213func (s *CreateFleetInput) SetEnableDefaultInternetAccess(v bool) *CreateFleetInput {
5214	s.EnableDefaultInternetAccess = &v
5215	return s
5216}
5217
5218// SetFleetType sets the FleetType field's value.
5219func (s *CreateFleetInput) SetFleetType(v string) *CreateFleetInput {
5220	s.FleetType = &v
5221	return s
5222}
5223
5224// SetIamRoleArn sets the IamRoleArn field's value.
5225func (s *CreateFleetInput) SetIamRoleArn(v string) *CreateFleetInput {
5226	s.IamRoleArn = &v
5227	return s
5228}
5229
5230// SetIdleDisconnectTimeoutInSeconds sets the IdleDisconnectTimeoutInSeconds field's value.
5231func (s *CreateFleetInput) SetIdleDisconnectTimeoutInSeconds(v int64) *CreateFleetInput {
5232	s.IdleDisconnectTimeoutInSeconds = &v
5233	return s
5234}
5235
5236// SetImageArn sets the ImageArn field's value.
5237func (s *CreateFleetInput) SetImageArn(v string) *CreateFleetInput {
5238	s.ImageArn = &v
5239	return s
5240}
5241
5242// SetImageName sets the ImageName field's value.
5243func (s *CreateFleetInput) SetImageName(v string) *CreateFleetInput {
5244	s.ImageName = &v
5245	return s
5246}
5247
5248// SetInstanceType sets the InstanceType field's value.
5249func (s *CreateFleetInput) SetInstanceType(v string) *CreateFleetInput {
5250	s.InstanceType = &v
5251	return s
5252}
5253
5254// SetMaxUserDurationInSeconds sets the MaxUserDurationInSeconds field's value.
5255func (s *CreateFleetInput) SetMaxUserDurationInSeconds(v int64) *CreateFleetInput {
5256	s.MaxUserDurationInSeconds = &v
5257	return s
5258}
5259
5260// SetName sets the Name field's value.
5261func (s *CreateFleetInput) SetName(v string) *CreateFleetInput {
5262	s.Name = &v
5263	return s
5264}
5265
5266// SetTags sets the Tags field's value.
5267func (s *CreateFleetInput) SetTags(v map[string]*string) *CreateFleetInput {
5268	s.Tags = v
5269	return s
5270}
5271
5272// SetVpcConfig sets the VpcConfig field's value.
5273func (s *CreateFleetInput) SetVpcConfig(v *VpcConfig) *CreateFleetInput {
5274	s.VpcConfig = v
5275	return s
5276}
5277
5278type CreateFleetOutput struct {
5279	_ struct{} `type:"structure"`
5280
5281	// Information about the fleet.
5282	Fleet *Fleet `type:"structure"`
5283}
5284
5285// String returns the string representation
5286func (s CreateFleetOutput) String() string {
5287	return awsutil.Prettify(s)
5288}
5289
5290// GoString returns the string representation
5291func (s CreateFleetOutput) GoString() string {
5292	return s.String()
5293}
5294
5295// SetFleet sets the Fleet field's value.
5296func (s *CreateFleetOutput) SetFleet(v *Fleet) *CreateFleetOutput {
5297	s.Fleet = v
5298	return s
5299}
5300
5301type CreateImageBuilderInput struct {
5302	_ struct{} `type:"structure"`
5303
5304	// The list of interface VPC endpoint (interface endpoint) objects. Administrators
5305	// can connect to the image builder only through the specified endpoints.
5306	AccessEndpoints []*AccessEndpoint `min:"1" type:"list"`
5307
5308	// The version of the AppStream 2.0 agent to use for this image builder. To
5309	// use the latest version of the AppStream 2.0 agent, specify [LATEST].
5310	AppstreamAgentVersion *string `min:"1" type:"string"`
5311
5312	// The description to display.
5313	Description *string `type:"string"`
5314
5315	// The image builder name to display.
5316	DisplayName *string `type:"string"`
5317
5318	// The name of the directory and organizational unit (OU) to use to join the
5319	// image builder to a Microsoft Active Directory domain.
5320	DomainJoinInfo *DomainJoinInfo `type:"structure"`
5321
5322	// Enables or disables default internet access for the image builder.
5323	EnableDefaultInternetAccess *bool `type:"boolean"`
5324
5325	// The Amazon Resource Name (ARN) of the IAM role to apply to the image builder.
5326	// To assume a role, the image builder calls the AWS Security Token Service
5327	// (STS) AssumeRole API operation and passes the ARN of the role to use. The
5328	// operation creates a new session with temporary credentials. AppStream 2.0
5329	// retrieves the temporary credentials and creates the AppStream_Machine_Role
5330	// credential profile on the instance.
5331	//
5332	// For more information, see Using an IAM Role to Grant Permissions to Applications
5333	// and Scripts Running on AppStream 2.0 Streaming Instances (https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html)
5334	// in the Amazon AppStream 2.0 Administration Guide.
5335	IamRoleArn *string `type:"string"`
5336
5337	// The ARN of the public, private, or shared image to use.
5338	ImageArn *string `type:"string"`
5339
5340	// The name of the image used to create the image builder.
5341	ImageName *string `min:"1" type:"string"`
5342
5343	// The instance type to use when launching the image builder. The following
5344	// instance types are available:
5345	//
5346	//    * stream.standard.medium
5347	//
5348	//    * stream.standard.large
5349	//
5350	//    * stream.compute.large
5351	//
5352	//    * stream.compute.xlarge
5353	//
5354	//    * stream.compute.2xlarge
5355	//
5356	//    * stream.compute.4xlarge
5357	//
5358	//    * stream.compute.8xlarge
5359	//
5360	//    * stream.memory.large
5361	//
5362	//    * stream.memory.xlarge
5363	//
5364	//    * stream.memory.2xlarge
5365	//
5366	//    * stream.memory.4xlarge
5367	//
5368	//    * stream.memory.8xlarge
5369	//
5370	//    * stream.graphics-design.large
5371	//
5372	//    * stream.graphics-design.xlarge
5373	//
5374	//    * stream.graphics-design.2xlarge
5375	//
5376	//    * stream.graphics-design.4xlarge
5377	//
5378	//    * stream.graphics-desktop.2xlarge
5379	//
5380	//    * stream.graphics-pro.4xlarge
5381	//
5382	//    * stream.graphics-pro.8xlarge
5383	//
5384	//    * stream.graphics-pro.16xlarge
5385	//
5386	// InstanceType is a required field
5387	InstanceType *string `min:"1" type:"string" required:"true"`
5388
5389	// A unique name for the image builder.
5390	//
5391	// Name is a required field
5392	Name *string `type:"string" required:"true"`
5393
5394	// The tags to associate with the image builder. A tag is a key-value pair,
5395	// and the value is optional. For example, Environment=Test. If you do not specify
5396	// a value, Environment=.
5397	//
5398	// Generally allowed characters are: letters, numbers, and spaces representable
5399	// in UTF-8, and the following special characters:
5400	//
5401	// _ . : / = + \ - @
5402	//
5403	// If you do not specify a value, the value is set to an empty string.
5404	//
5405	// For more information about tags, see Tagging Your Resources (https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html)
5406	// in the Amazon AppStream 2.0 Administration Guide.
5407	Tags map[string]*string `min:"1" type:"map"`
5408
5409	// The VPC configuration for the image builder. You can specify only one subnet.
5410	VpcConfig *VpcConfig `type:"structure"`
5411}
5412
5413// String returns the string representation
5414func (s CreateImageBuilderInput) String() string {
5415	return awsutil.Prettify(s)
5416}
5417
5418// GoString returns the string representation
5419func (s CreateImageBuilderInput) GoString() string {
5420	return s.String()
5421}
5422
5423// Validate inspects the fields of the type to determine if they are valid.
5424func (s *CreateImageBuilderInput) Validate() error {
5425	invalidParams := request.ErrInvalidParams{Context: "CreateImageBuilderInput"}
5426	if s.AccessEndpoints != nil && len(s.AccessEndpoints) < 1 {
5427		invalidParams.Add(request.NewErrParamMinLen("AccessEndpoints", 1))
5428	}
5429	if s.AppstreamAgentVersion != nil && len(*s.AppstreamAgentVersion) < 1 {
5430		invalidParams.Add(request.NewErrParamMinLen("AppstreamAgentVersion", 1))
5431	}
5432	if s.ImageName != nil && len(*s.ImageName) < 1 {
5433		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
5434	}
5435	if s.InstanceType == nil {
5436		invalidParams.Add(request.NewErrParamRequired("InstanceType"))
5437	}
5438	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
5439		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
5440	}
5441	if s.Name == nil {
5442		invalidParams.Add(request.NewErrParamRequired("Name"))
5443	}
5444	if s.Tags != nil && len(s.Tags) < 1 {
5445		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
5446	}
5447	if s.AccessEndpoints != nil {
5448		for i, v := range s.AccessEndpoints {
5449			if v == nil {
5450				continue
5451			}
5452			if err := v.Validate(); err != nil {
5453				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessEndpoints", i), err.(request.ErrInvalidParams))
5454			}
5455		}
5456	}
5457
5458	if invalidParams.Len() > 0 {
5459		return invalidParams
5460	}
5461	return nil
5462}
5463
5464// SetAccessEndpoints sets the AccessEndpoints field's value.
5465func (s *CreateImageBuilderInput) SetAccessEndpoints(v []*AccessEndpoint) *CreateImageBuilderInput {
5466	s.AccessEndpoints = v
5467	return s
5468}
5469
5470// SetAppstreamAgentVersion sets the AppstreamAgentVersion field's value.
5471func (s *CreateImageBuilderInput) SetAppstreamAgentVersion(v string) *CreateImageBuilderInput {
5472	s.AppstreamAgentVersion = &v
5473	return s
5474}
5475
5476// SetDescription sets the Description field's value.
5477func (s *CreateImageBuilderInput) SetDescription(v string) *CreateImageBuilderInput {
5478	s.Description = &v
5479	return s
5480}
5481
5482// SetDisplayName sets the DisplayName field's value.
5483func (s *CreateImageBuilderInput) SetDisplayName(v string) *CreateImageBuilderInput {
5484	s.DisplayName = &v
5485	return s
5486}
5487
5488// SetDomainJoinInfo sets the DomainJoinInfo field's value.
5489func (s *CreateImageBuilderInput) SetDomainJoinInfo(v *DomainJoinInfo) *CreateImageBuilderInput {
5490	s.DomainJoinInfo = v
5491	return s
5492}
5493
5494// SetEnableDefaultInternetAccess sets the EnableDefaultInternetAccess field's value.
5495func (s *CreateImageBuilderInput) SetEnableDefaultInternetAccess(v bool) *CreateImageBuilderInput {
5496	s.EnableDefaultInternetAccess = &v
5497	return s
5498}
5499
5500// SetIamRoleArn sets the IamRoleArn field's value.
5501func (s *CreateImageBuilderInput) SetIamRoleArn(v string) *CreateImageBuilderInput {
5502	s.IamRoleArn = &v
5503	return s
5504}
5505
5506// SetImageArn sets the ImageArn field's value.
5507func (s *CreateImageBuilderInput) SetImageArn(v string) *CreateImageBuilderInput {
5508	s.ImageArn = &v
5509	return s
5510}
5511
5512// SetImageName sets the ImageName field's value.
5513func (s *CreateImageBuilderInput) SetImageName(v string) *CreateImageBuilderInput {
5514	s.ImageName = &v
5515	return s
5516}
5517
5518// SetInstanceType sets the InstanceType field's value.
5519func (s *CreateImageBuilderInput) SetInstanceType(v string) *CreateImageBuilderInput {
5520	s.InstanceType = &v
5521	return s
5522}
5523
5524// SetName sets the Name field's value.
5525func (s *CreateImageBuilderInput) SetName(v string) *CreateImageBuilderInput {
5526	s.Name = &v
5527	return s
5528}
5529
5530// SetTags sets the Tags field's value.
5531func (s *CreateImageBuilderInput) SetTags(v map[string]*string) *CreateImageBuilderInput {
5532	s.Tags = v
5533	return s
5534}
5535
5536// SetVpcConfig sets the VpcConfig field's value.
5537func (s *CreateImageBuilderInput) SetVpcConfig(v *VpcConfig) *CreateImageBuilderInput {
5538	s.VpcConfig = v
5539	return s
5540}
5541
5542type CreateImageBuilderOutput struct {
5543	_ struct{} `type:"structure"`
5544
5545	// Information about the image builder.
5546	ImageBuilder *ImageBuilder `type:"structure"`
5547}
5548
5549// String returns the string representation
5550func (s CreateImageBuilderOutput) String() string {
5551	return awsutil.Prettify(s)
5552}
5553
5554// GoString returns the string representation
5555func (s CreateImageBuilderOutput) GoString() string {
5556	return s.String()
5557}
5558
5559// SetImageBuilder sets the ImageBuilder field's value.
5560func (s *CreateImageBuilderOutput) SetImageBuilder(v *ImageBuilder) *CreateImageBuilderOutput {
5561	s.ImageBuilder = v
5562	return s
5563}
5564
5565type CreateImageBuilderStreamingURLInput struct {
5566	_ struct{} `type:"structure"`
5567
5568	// The name of the image builder.
5569	//
5570	// Name is a required field
5571	Name *string `min:"1" type:"string" required:"true"`
5572
5573	// The time that the streaming URL will be valid, in seconds. Specify a value
5574	// between 1 and 604800 seconds. The default is 3600 seconds.
5575	Validity *int64 `type:"long"`
5576}
5577
5578// String returns the string representation
5579func (s CreateImageBuilderStreamingURLInput) String() string {
5580	return awsutil.Prettify(s)
5581}
5582
5583// GoString returns the string representation
5584func (s CreateImageBuilderStreamingURLInput) GoString() string {
5585	return s.String()
5586}
5587
5588// Validate inspects the fields of the type to determine if they are valid.
5589func (s *CreateImageBuilderStreamingURLInput) Validate() error {
5590	invalidParams := request.ErrInvalidParams{Context: "CreateImageBuilderStreamingURLInput"}
5591	if s.Name == nil {
5592		invalidParams.Add(request.NewErrParamRequired("Name"))
5593	}
5594	if s.Name != nil && len(*s.Name) < 1 {
5595		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
5596	}
5597
5598	if invalidParams.Len() > 0 {
5599		return invalidParams
5600	}
5601	return nil
5602}
5603
5604// SetName sets the Name field's value.
5605func (s *CreateImageBuilderStreamingURLInput) SetName(v string) *CreateImageBuilderStreamingURLInput {
5606	s.Name = &v
5607	return s
5608}
5609
5610// SetValidity sets the Validity field's value.
5611func (s *CreateImageBuilderStreamingURLInput) SetValidity(v int64) *CreateImageBuilderStreamingURLInput {
5612	s.Validity = &v
5613	return s
5614}
5615
5616type CreateImageBuilderStreamingURLOutput struct {
5617	_ struct{} `type:"structure"`
5618
5619	// The elapsed time, in seconds after the Unix epoch, when this URL expires.
5620	Expires *time.Time `type:"timestamp"`
5621
5622	// The URL to start the AppStream 2.0 streaming session.
5623	StreamingURL *string `min:"1" type:"string"`
5624}
5625
5626// String returns the string representation
5627func (s CreateImageBuilderStreamingURLOutput) String() string {
5628	return awsutil.Prettify(s)
5629}
5630
5631// GoString returns the string representation
5632func (s CreateImageBuilderStreamingURLOutput) GoString() string {
5633	return s.String()
5634}
5635
5636// SetExpires sets the Expires field's value.
5637func (s *CreateImageBuilderStreamingURLOutput) SetExpires(v time.Time) *CreateImageBuilderStreamingURLOutput {
5638	s.Expires = &v
5639	return s
5640}
5641
5642// SetStreamingURL sets the StreamingURL field's value.
5643func (s *CreateImageBuilderStreamingURLOutput) SetStreamingURL(v string) *CreateImageBuilderStreamingURLOutput {
5644	s.StreamingURL = &v
5645	return s
5646}
5647
5648type CreateStackInput struct {
5649	_ struct{} `type:"structure"`
5650
5651	// The list of interface VPC endpoint (interface endpoint) objects. Users of
5652	// the stack can connect to AppStream 2.0 only through the specified endpoints.
5653	AccessEndpoints []*AccessEndpoint `min:"1" type:"list"`
5654
5655	// The persistent application settings for users of a stack. When these settings
5656	// are enabled, changes that users make to applications and Windows settings
5657	// are automatically saved after each session and applied to the next session.
5658	ApplicationSettings *ApplicationSettings `type:"structure"`
5659
5660	// The description to display.
5661	Description *string `type:"string"`
5662
5663	// The stack name to display.
5664	DisplayName *string `type:"string"`
5665
5666	// The domains where AppStream 2.0 streaming sessions can be embedded in an
5667	// iframe. You must approve the domains that you want to host embedded AppStream
5668	// 2.0 streaming sessions.
5669	EmbedHostDomains []*string `min:"1" type:"list"`
5670
5671	// The URL that users are redirected to after they click the Send Feedback link.
5672	// If no URL is specified, no Send Feedback link is displayed.
5673	FeedbackURL *string `type:"string"`
5674
5675	// The name of the stack.
5676	//
5677	// Name is a required field
5678	Name *string `type:"string" required:"true"`
5679
5680	// The URL that users are redirected to after their streaming session ends.
5681	RedirectURL *string `type:"string"`
5682
5683	// The storage connectors to enable.
5684	StorageConnectors []*StorageConnector `type:"list"`
5685
5686	// The tags to associate with the stack. A tag is a key-value pair, and the
5687	// value is optional. For example, Environment=Test. If you do not specify a
5688	// value, Environment=.
5689	//
5690	// If you do not specify a value, the value is set to an empty string.
5691	//
5692	// Generally allowed characters are: letters, numbers, and spaces representable
5693	// in UTF-8, and the following special characters:
5694	//
5695	// _ . : / = + \ - @
5696	//
5697	// For more information about tags, see Tagging Your Resources (https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html)
5698	// in the Amazon AppStream 2.0 Administration Guide.
5699	Tags map[string]*string `min:"1" type:"map"`
5700
5701	// The actions that are enabled or disabled for users during their streaming
5702	// sessions. By default, these actions are enabled.
5703	UserSettings []*UserSetting `min:"1" type:"list"`
5704}
5705
5706// String returns the string representation
5707func (s CreateStackInput) String() string {
5708	return awsutil.Prettify(s)
5709}
5710
5711// GoString returns the string representation
5712func (s CreateStackInput) GoString() string {
5713	return s.String()
5714}
5715
5716// Validate inspects the fields of the type to determine if they are valid.
5717func (s *CreateStackInput) Validate() error {
5718	invalidParams := request.ErrInvalidParams{Context: "CreateStackInput"}
5719	if s.AccessEndpoints != nil && len(s.AccessEndpoints) < 1 {
5720		invalidParams.Add(request.NewErrParamMinLen("AccessEndpoints", 1))
5721	}
5722	if s.EmbedHostDomains != nil && len(s.EmbedHostDomains) < 1 {
5723		invalidParams.Add(request.NewErrParamMinLen("EmbedHostDomains", 1))
5724	}
5725	if s.Name == nil {
5726		invalidParams.Add(request.NewErrParamRequired("Name"))
5727	}
5728	if s.Tags != nil && len(s.Tags) < 1 {
5729		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
5730	}
5731	if s.UserSettings != nil && len(s.UserSettings) < 1 {
5732		invalidParams.Add(request.NewErrParamMinLen("UserSettings", 1))
5733	}
5734	if s.AccessEndpoints != nil {
5735		for i, v := range s.AccessEndpoints {
5736			if v == nil {
5737				continue
5738			}
5739			if err := v.Validate(); err != nil {
5740				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessEndpoints", i), err.(request.ErrInvalidParams))
5741			}
5742		}
5743	}
5744	if s.ApplicationSettings != nil {
5745		if err := s.ApplicationSettings.Validate(); err != nil {
5746			invalidParams.AddNested("ApplicationSettings", err.(request.ErrInvalidParams))
5747		}
5748	}
5749	if s.StorageConnectors != nil {
5750		for i, v := range s.StorageConnectors {
5751			if v == nil {
5752				continue
5753			}
5754			if err := v.Validate(); err != nil {
5755				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StorageConnectors", i), err.(request.ErrInvalidParams))
5756			}
5757		}
5758	}
5759	if s.UserSettings != nil {
5760		for i, v := range s.UserSettings {
5761			if v == nil {
5762				continue
5763			}
5764			if err := v.Validate(); err != nil {
5765				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UserSettings", i), err.(request.ErrInvalidParams))
5766			}
5767		}
5768	}
5769
5770	if invalidParams.Len() > 0 {
5771		return invalidParams
5772	}
5773	return nil
5774}
5775
5776// SetAccessEndpoints sets the AccessEndpoints field's value.
5777func (s *CreateStackInput) SetAccessEndpoints(v []*AccessEndpoint) *CreateStackInput {
5778	s.AccessEndpoints = v
5779	return s
5780}
5781
5782// SetApplicationSettings sets the ApplicationSettings field's value.
5783func (s *CreateStackInput) SetApplicationSettings(v *ApplicationSettings) *CreateStackInput {
5784	s.ApplicationSettings = v
5785	return s
5786}
5787
5788// SetDescription sets the Description field's value.
5789func (s *CreateStackInput) SetDescription(v string) *CreateStackInput {
5790	s.Description = &v
5791	return s
5792}
5793
5794// SetDisplayName sets the DisplayName field's value.
5795func (s *CreateStackInput) SetDisplayName(v string) *CreateStackInput {
5796	s.DisplayName = &v
5797	return s
5798}
5799
5800// SetEmbedHostDomains sets the EmbedHostDomains field's value.
5801func (s *CreateStackInput) SetEmbedHostDomains(v []*string) *CreateStackInput {
5802	s.EmbedHostDomains = v
5803	return s
5804}
5805
5806// SetFeedbackURL sets the FeedbackURL field's value.
5807func (s *CreateStackInput) SetFeedbackURL(v string) *CreateStackInput {
5808	s.FeedbackURL = &v
5809	return s
5810}
5811
5812// SetName sets the Name field's value.
5813func (s *CreateStackInput) SetName(v string) *CreateStackInput {
5814	s.Name = &v
5815	return s
5816}
5817
5818// SetRedirectURL sets the RedirectURL field's value.
5819func (s *CreateStackInput) SetRedirectURL(v string) *CreateStackInput {
5820	s.RedirectURL = &v
5821	return s
5822}
5823
5824// SetStorageConnectors sets the StorageConnectors field's value.
5825func (s *CreateStackInput) SetStorageConnectors(v []*StorageConnector) *CreateStackInput {
5826	s.StorageConnectors = v
5827	return s
5828}
5829
5830// SetTags sets the Tags field's value.
5831func (s *CreateStackInput) SetTags(v map[string]*string) *CreateStackInput {
5832	s.Tags = v
5833	return s
5834}
5835
5836// SetUserSettings sets the UserSettings field's value.
5837func (s *CreateStackInput) SetUserSettings(v []*UserSetting) *CreateStackInput {
5838	s.UserSettings = v
5839	return s
5840}
5841
5842type CreateStackOutput struct {
5843	_ struct{} `type:"structure"`
5844
5845	// Information about the stack.
5846	Stack *Stack `type:"structure"`
5847}
5848
5849// String returns the string representation
5850func (s CreateStackOutput) String() string {
5851	return awsutil.Prettify(s)
5852}
5853
5854// GoString returns the string representation
5855func (s CreateStackOutput) GoString() string {
5856	return s.String()
5857}
5858
5859// SetStack sets the Stack field's value.
5860func (s *CreateStackOutput) SetStack(v *Stack) *CreateStackOutput {
5861	s.Stack = v
5862	return s
5863}
5864
5865type CreateStreamingURLInput struct {
5866	_ struct{} `type:"structure"`
5867
5868	// The name of the application to launch after the session starts. This is the
5869	// name that you specified as Name in the Image Assistant.
5870	ApplicationId *string `min:"1" type:"string"`
5871
5872	// The name of the fleet.
5873	//
5874	// FleetName is a required field
5875	FleetName *string `min:"1" type:"string" required:"true"`
5876
5877	// The session context. For more information, see Session Context (https://docs.aws.amazon.com/appstream2/latest/developerguide/managing-stacks-fleets.html#managing-stacks-fleets-parameters)
5878	// in the Amazon AppStream 2.0 Administration Guide.
5879	SessionContext *string `min:"1" type:"string"`
5880
5881	// The name of the stack.
5882	//
5883	// StackName is a required field
5884	StackName *string `min:"1" type:"string" required:"true"`
5885
5886	// The identifier of the user.
5887	//
5888	// UserId is a required field
5889	UserId *string `min:"2" type:"string" required:"true"`
5890
5891	// The time that the streaming URL will be valid, in seconds. Specify a value
5892	// between 1 and 604800 seconds. The default is 60 seconds.
5893	Validity *int64 `type:"long"`
5894}
5895
5896// String returns the string representation
5897func (s CreateStreamingURLInput) String() string {
5898	return awsutil.Prettify(s)
5899}
5900
5901// GoString returns the string representation
5902func (s CreateStreamingURLInput) GoString() string {
5903	return s.String()
5904}
5905
5906// Validate inspects the fields of the type to determine if they are valid.
5907func (s *CreateStreamingURLInput) Validate() error {
5908	invalidParams := request.ErrInvalidParams{Context: "CreateStreamingURLInput"}
5909	if s.ApplicationId != nil && len(*s.ApplicationId) < 1 {
5910		invalidParams.Add(request.NewErrParamMinLen("ApplicationId", 1))
5911	}
5912	if s.FleetName == nil {
5913		invalidParams.Add(request.NewErrParamRequired("FleetName"))
5914	}
5915	if s.FleetName != nil && len(*s.FleetName) < 1 {
5916		invalidParams.Add(request.NewErrParamMinLen("FleetName", 1))
5917	}
5918	if s.SessionContext != nil && len(*s.SessionContext) < 1 {
5919		invalidParams.Add(request.NewErrParamMinLen("SessionContext", 1))
5920	}
5921	if s.StackName == nil {
5922		invalidParams.Add(request.NewErrParamRequired("StackName"))
5923	}
5924	if s.StackName != nil && len(*s.StackName) < 1 {
5925		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
5926	}
5927	if s.UserId == nil {
5928		invalidParams.Add(request.NewErrParamRequired("UserId"))
5929	}
5930	if s.UserId != nil && len(*s.UserId) < 2 {
5931		invalidParams.Add(request.NewErrParamMinLen("UserId", 2))
5932	}
5933
5934	if invalidParams.Len() > 0 {
5935		return invalidParams
5936	}
5937	return nil
5938}
5939
5940// SetApplicationId sets the ApplicationId field's value.
5941func (s *CreateStreamingURLInput) SetApplicationId(v string) *CreateStreamingURLInput {
5942	s.ApplicationId = &v
5943	return s
5944}
5945
5946// SetFleetName sets the FleetName field's value.
5947func (s *CreateStreamingURLInput) SetFleetName(v string) *CreateStreamingURLInput {
5948	s.FleetName = &v
5949	return s
5950}
5951
5952// SetSessionContext sets the SessionContext field's value.
5953func (s *CreateStreamingURLInput) SetSessionContext(v string) *CreateStreamingURLInput {
5954	s.SessionContext = &v
5955	return s
5956}
5957
5958// SetStackName sets the StackName field's value.
5959func (s *CreateStreamingURLInput) SetStackName(v string) *CreateStreamingURLInput {
5960	s.StackName = &v
5961	return s
5962}
5963
5964// SetUserId sets the UserId field's value.
5965func (s *CreateStreamingURLInput) SetUserId(v string) *CreateStreamingURLInput {
5966	s.UserId = &v
5967	return s
5968}
5969
5970// SetValidity sets the Validity field's value.
5971func (s *CreateStreamingURLInput) SetValidity(v int64) *CreateStreamingURLInput {
5972	s.Validity = &v
5973	return s
5974}
5975
5976type CreateStreamingURLOutput struct {
5977	_ struct{} `type:"structure"`
5978
5979	// The elapsed time, in seconds after the Unix epoch, when this URL expires.
5980	Expires *time.Time `type:"timestamp"`
5981
5982	// The URL to start the AppStream 2.0 streaming session.
5983	StreamingURL *string `min:"1" type:"string"`
5984}
5985
5986// String returns the string representation
5987func (s CreateStreamingURLOutput) String() string {
5988	return awsutil.Prettify(s)
5989}
5990
5991// GoString returns the string representation
5992func (s CreateStreamingURLOutput) GoString() string {
5993	return s.String()
5994}
5995
5996// SetExpires sets the Expires field's value.
5997func (s *CreateStreamingURLOutput) SetExpires(v time.Time) *CreateStreamingURLOutput {
5998	s.Expires = &v
5999	return s
6000}
6001
6002// SetStreamingURL sets the StreamingURL field's value.
6003func (s *CreateStreamingURLOutput) SetStreamingURL(v string) *CreateStreamingURLOutput {
6004	s.StreamingURL = &v
6005	return s
6006}
6007
6008type CreateUsageReportSubscriptionInput struct {
6009	_ struct{} `type:"structure"`
6010}
6011
6012// String returns the string representation
6013func (s CreateUsageReportSubscriptionInput) String() string {
6014	return awsutil.Prettify(s)
6015}
6016
6017// GoString returns the string representation
6018func (s CreateUsageReportSubscriptionInput) GoString() string {
6019	return s.String()
6020}
6021
6022type CreateUsageReportSubscriptionOutput struct {
6023	_ struct{} `type:"structure"`
6024
6025	// The Amazon S3 bucket where generated reports are stored.
6026	//
6027	// If you enabled on-instance session scripts and Amazon S3 logging for your
6028	// session script configuration, AppStream 2.0 created an S3 bucket to store
6029	// the script output. The bucket is unique to your account and Region. When
6030	// you enable usage reporting in this case, AppStream 2.0 uses the same bucket
6031	// to store your usage reports. If you haven't already enabled on-instance session
6032	// scripts, when you enable usage reports, AppStream 2.0 creates a new S3 bucket.
6033	S3BucketName *string `min:"1" type:"string"`
6034
6035	// The schedule for generating usage reports.
6036	Schedule *string `type:"string" enum:"UsageReportSchedule"`
6037}
6038
6039// String returns the string representation
6040func (s CreateUsageReportSubscriptionOutput) String() string {
6041	return awsutil.Prettify(s)
6042}
6043
6044// GoString returns the string representation
6045func (s CreateUsageReportSubscriptionOutput) GoString() string {
6046	return s.String()
6047}
6048
6049// SetS3BucketName sets the S3BucketName field's value.
6050func (s *CreateUsageReportSubscriptionOutput) SetS3BucketName(v string) *CreateUsageReportSubscriptionOutput {
6051	s.S3BucketName = &v
6052	return s
6053}
6054
6055// SetSchedule sets the Schedule field's value.
6056func (s *CreateUsageReportSubscriptionOutput) SetSchedule(v string) *CreateUsageReportSubscriptionOutput {
6057	s.Schedule = &v
6058	return s
6059}
6060
6061type CreateUserInput struct {
6062	_ struct{} `type:"structure"`
6063
6064	// The authentication type for the user. You must specify USERPOOL.
6065	//
6066	// AuthenticationType is a required field
6067	AuthenticationType *string `type:"string" required:"true" enum:"AuthenticationType"`
6068
6069	// The first name, or given name, of the user.
6070	FirstName *string `type:"string" sensitive:"true"`
6071
6072	// The last name, or surname, of the user.
6073	LastName *string `type:"string" sensitive:"true"`
6074
6075	// The action to take for the welcome email that is sent to a user after the
6076	// user is created in the user pool. If you specify SUPPRESS, no email is sent.
6077	// If you specify RESEND, do not specify the first name or last name of the
6078	// user. If the value is null, the email is sent.
6079	//
6080	// The temporary password in the welcome email is valid for only 7 days. If
6081	// users don’t set their passwords within 7 days, you must send them a new
6082	// welcome email.
6083	MessageAction *string `type:"string" enum:"MessageAction"`
6084
6085	// The email address of the user.
6086	//
6087	// Users' email addresses are case-sensitive. During login, if they specify
6088	// an email address that doesn't use the same capitalization as the email address
6089	// specified when their user pool account was created, a "user does not exist"
6090	// error message displays.
6091	//
6092	// UserName is a required field
6093	UserName *string `min:"1" type:"string" required:"true" sensitive:"true"`
6094}
6095
6096// String returns the string representation
6097func (s CreateUserInput) String() string {
6098	return awsutil.Prettify(s)
6099}
6100
6101// GoString returns the string representation
6102func (s CreateUserInput) GoString() string {
6103	return s.String()
6104}
6105
6106// Validate inspects the fields of the type to determine if they are valid.
6107func (s *CreateUserInput) Validate() error {
6108	invalidParams := request.ErrInvalidParams{Context: "CreateUserInput"}
6109	if s.AuthenticationType == nil {
6110		invalidParams.Add(request.NewErrParamRequired("AuthenticationType"))
6111	}
6112	if s.UserName == nil {
6113		invalidParams.Add(request.NewErrParamRequired("UserName"))
6114	}
6115	if s.UserName != nil && len(*s.UserName) < 1 {
6116		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
6117	}
6118
6119	if invalidParams.Len() > 0 {
6120		return invalidParams
6121	}
6122	return nil
6123}
6124
6125// SetAuthenticationType sets the AuthenticationType field's value.
6126func (s *CreateUserInput) SetAuthenticationType(v string) *CreateUserInput {
6127	s.AuthenticationType = &v
6128	return s
6129}
6130
6131// SetFirstName sets the FirstName field's value.
6132func (s *CreateUserInput) SetFirstName(v string) *CreateUserInput {
6133	s.FirstName = &v
6134	return s
6135}
6136
6137// SetLastName sets the LastName field's value.
6138func (s *CreateUserInput) SetLastName(v string) *CreateUserInput {
6139	s.LastName = &v
6140	return s
6141}
6142
6143// SetMessageAction sets the MessageAction field's value.
6144func (s *CreateUserInput) SetMessageAction(v string) *CreateUserInput {
6145	s.MessageAction = &v
6146	return s
6147}
6148
6149// SetUserName sets the UserName field's value.
6150func (s *CreateUserInput) SetUserName(v string) *CreateUserInput {
6151	s.UserName = &v
6152	return s
6153}
6154
6155type CreateUserOutput struct {
6156	_ struct{} `type:"structure"`
6157}
6158
6159// String returns the string representation
6160func (s CreateUserOutput) String() string {
6161	return awsutil.Prettify(s)
6162}
6163
6164// GoString returns the string representation
6165func (s CreateUserOutput) GoString() string {
6166	return s.String()
6167}
6168
6169type DeleteDirectoryConfigInput struct {
6170	_ struct{} `type:"structure"`
6171
6172	// The name of the directory configuration.
6173	//
6174	// DirectoryName is a required field
6175	DirectoryName *string `type:"string" required:"true"`
6176}
6177
6178// String returns the string representation
6179func (s DeleteDirectoryConfigInput) String() string {
6180	return awsutil.Prettify(s)
6181}
6182
6183// GoString returns the string representation
6184func (s DeleteDirectoryConfigInput) GoString() string {
6185	return s.String()
6186}
6187
6188// Validate inspects the fields of the type to determine if they are valid.
6189func (s *DeleteDirectoryConfigInput) Validate() error {
6190	invalidParams := request.ErrInvalidParams{Context: "DeleteDirectoryConfigInput"}
6191	if s.DirectoryName == nil {
6192		invalidParams.Add(request.NewErrParamRequired("DirectoryName"))
6193	}
6194
6195	if invalidParams.Len() > 0 {
6196		return invalidParams
6197	}
6198	return nil
6199}
6200
6201// SetDirectoryName sets the DirectoryName field's value.
6202func (s *DeleteDirectoryConfigInput) SetDirectoryName(v string) *DeleteDirectoryConfigInput {
6203	s.DirectoryName = &v
6204	return s
6205}
6206
6207type DeleteDirectoryConfigOutput struct {
6208	_ struct{} `type:"structure"`
6209}
6210
6211// String returns the string representation
6212func (s DeleteDirectoryConfigOutput) String() string {
6213	return awsutil.Prettify(s)
6214}
6215
6216// GoString returns the string representation
6217func (s DeleteDirectoryConfigOutput) GoString() string {
6218	return s.String()
6219}
6220
6221type DeleteFleetInput struct {
6222	_ struct{} `type:"structure"`
6223
6224	// The name of the fleet.
6225	//
6226	// Name is a required field
6227	Name *string `min:"1" type:"string" required:"true"`
6228}
6229
6230// String returns the string representation
6231func (s DeleteFleetInput) String() string {
6232	return awsutil.Prettify(s)
6233}
6234
6235// GoString returns the string representation
6236func (s DeleteFleetInput) GoString() string {
6237	return s.String()
6238}
6239
6240// Validate inspects the fields of the type to determine if they are valid.
6241func (s *DeleteFleetInput) Validate() error {
6242	invalidParams := request.ErrInvalidParams{Context: "DeleteFleetInput"}
6243	if s.Name == nil {
6244		invalidParams.Add(request.NewErrParamRequired("Name"))
6245	}
6246	if s.Name != nil && len(*s.Name) < 1 {
6247		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6248	}
6249
6250	if invalidParams.Len() > 0 {
6251		return invalidParams
6252	}
6253	return nil
6254}
6255
6256// SetName sets the Name field's value.
6257func (s *DeleteFleetInput) SetName(v string) *DeleteFleetInput {
6258	s.Name = &v
6259	return s
6260}
6261
6262type DeleteFleetOutput struct {
6263	_ struct{} `type:"structure"`
6264}
6265
6266// String returns the string representation
6267func (s DeleteFleetOutput) String() string {
6268	return awsutil.Prettify(s)
6269}
6270
6271// GoString returns the string representation
6272func (s DeleteFleetOutput) GoString() string {
6273	return s.String()
6274}
6275
6276type DeleteImageBuilderInput struct {
6277	_ struct{} `type:"structure"`
6278
6279	// The name of the image builder.
6280	//
6281	// Name is a required field
6282	Name *string `type:"string" required:"true"`
6283}
6284
6285// String returns the string representation
6286func (s DeleteImageBuilderInput) String() string {
6287	return awsutil.Prettify(s)
6288}
6289
6290// GoString returns the string representation
6291func (s DeleteImageBuilderInput) GoString() string {
6292	return s.String()
6293}
6294
6295// Validate inspects the fields of the type to determine if they are valid.
6296func (s *DeleteImageBuilderInput) Validate() error {
6297	invalidParams := request.ErrInvalidParams{Context: "DeleteImageBuilderInput"}
6298	if s.Name == nil {
6299		invalidParams.Add(request.NewErrParamRequired("Name"))
6300	}
6301
6302	if invalidParams.Len() > 0 {
6303		return invalidParams
6304	}
6305	return nil
6306}
6307
6308// SetName sets the Name field's value.
6309func (s *DeleteImageBuilderInput) SetName(v string) *DeleteImageBuilderInput {
6310	s.Name = &v
6311	return s
6312}
6313
6314type DeleteImageBuilderOutput struct {
6315	_ struct{} `type:"structure"`
6316
6317	// Information about the image builder.
6318	ImageBuilder *ImageBuilder `type:"structure"`
6319}
6320
6321// String returns the string representation
6322func (s DeleteImageBuilderOutput) String() string {
6323	return awsutil.Prettify(s)
6324}
6325
6326// GoString returns the string representation
6327func (s DeleteImageBuilderOutput) GoString() string {
6328	return s.String()
6329}
6330
6331// SetImageBuilder sets the ImageBuilder field's value.
6332func (s *DeleteImageBuilderOutput) SetImageBuilder(v *ImageBuilder) *DeleteImageBuilderOutput {
6333	s.ImageBuilder = v
6334	return s
6335}
6336
6337type DeleteImageInput struct {
6338	_ struct{} `type:"structure"`
6339
6340	// The name of the image.
6341	//
6342	// Name is a required field
6343	Name *string `type:"string" required:"true"`
6344}
6345
6346// String returns the string representation
6347func (s DeleteImageInput) String() string {
6348	return awsutil.Prettify(s)
6349}
6350
6351// GoString returns the string representation
6352func (s DeleteImageInput) GoString() string {
6353	return s.String()
6354}
6355
6356// Validate inspects the fields of the type to determine if they are valid.
6357func (s *DeleteImageInput) Validate() error {
6358	invalidParams := request.ErrInvalidParams{Context: "DeleteImageInput"}
6359	if s.Name == nil {
6360		invalidParams.Add(request.NewErrParamRequired("Name"))
6361	}
6362
6363	if invalidParams.Len() > 0 {
6364		return invalidParams
6365	}
6366	return nil
6367}
6368
6369// SetName sets the Name field's value.
6370func (s *DeleteImageInput) SetName(v string) *DeleteImageInput {
6371	s.Name = &v
6372	return s
6373}
6374
6375type DeleteImageOutput struct {
6376	_ struct{} `type:"structure"`
6377
6378	// Information about the image.
6379	Image *Image `type:"structure"`
6380}
6381
6382// String returns the string representation
6383func (s DeleteImageOutput) String() string {
6384	return awsutil.Prettify(s)
6385}
6386
6387// GoString returns the string representation
6388func (s DeleteImageOutput) GoString() string {
6389	return s.String()
6390}
6391
6392// SetImage sets the Image field's value.
6393func (s *DeleteImageOutput) SetImage(v *Image) *DeleteImageOutput {
6394	s.Image = v
6395	return s
6396}
6397
6398type DeleteImagePermissionsInput struct {
6399	_ struct{} `type:"structure"`
6400
6401	// The name of the private image.
6402	//
6403	// Name is a required field
6404	Name *string `type:"string" required:"true"`
6405
6406	// The 12-digit identifier of the AWS account for which to delete image permissions.
6407	//
6408	// SharedAccountId is a required field
6409	SharedAccountId *string `type:"string" required:"true"`
6410}
6411
6412// String returns the string representation
6413func (s DeleteImagePermissionsInput) String() string {
6414	return awsutil.Prettify(s)
6415}
6416
6417// GoString returns the string representation
6418func (s DeleteImagePermissionsInput) GoString() string {
6419	return s.String()
6420}
6421
6422// Validate inspects the fields of the type to determine if they are valid.
6423func (s *DeleteImagePermissionsInput) Validate() error {
6424	invalidParams := request.ErrInvalidParams{Context: "DeleteImagePermissionsInput"}
6425	if s.Name == nil {
6426		invalidParams.Add(request.NewErrParamRequired("Name"))
6427	}
6428	if s.SharedAccountId == nil {
6429		invalidParams.Add(request.NewErrParamRequired("SharedAccountId"))
6430	}
6431
6432	if invalidParams.Len() > 0 {
6433		return invalidParams
6434	}
6435	return nil
6436}
6437
6438// SetName sets the Name field's value.
6439func (s *DeleteImagePermissionsInput) SetName(v string) *DeleteImagePermissionsInput {
6440	s.Name = &v
6441	return s
6442}
6443
6444// SetSharedAccountId sets the SharedAccountId field's value.
6445func (s *DeleteImagePermissionsInput) SetSharedAccountId(v string) *DeleteImagePermissionsInput {
6446	s.SharedAccountId = &v
6447	return s
6448}
6449
6450type DeleteImagePermissionsOutput struct {
6451	_ struct{} `type:"structure"`
6452}
6453
6454// String returns the string representation
6455func (s DeleteImagePermissionsOutput) String() string {
6456	return awsutil.Prettify(s)
6457}
6458
6459// GoString returns the string representation
6460func (s DeleteImagePermissionsOutput) GoString() string {
6461	return s.String()
6462}
6463
6464type DeleteStackInput struct {
6465	_ struct{} `type:"structure"`
6466
6467	// The name of the stack.
6468	//
6469	// Name is a required field
6470	Name *string `min:"1" type:"string" required:"true"`
6471}
6472
6473// String returns the string representation
6474func (s DeleteStackInput) String() string {
6475	return awsutil.Prettify(s)
6476}
6477
6478// GoString returns the string representation
6479func (s DeleteStackInput) GoString() string {
6480	return s.String()
6481}
6482
6483// Validate inspects the fields of the type to determine if they are valid.
6484func (s *DeleteStackInput) Validate() error {
6485	invalidParams := request.ErrInvalidParams{Context: "DeleteStackInput"}
6486	if s.Name == nil {
6487		invalidParams.Add(request.NewErrParamRequired("Name"))
6488	}
6489	if s.Name != nil && len(*s.Name) < 1 {
6490		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
6491	}
6492
6493	if invalidParams.Len() > 0 {
6494		return invalidParams
6495	}
6496	return nil
6497}
6498
6499// SetName sets the Name field's value.
6500func (s *DeleteStackInput) SetName(v string) *DeleteStackInput {
6501	s.Name = &v
6502	return s
6503}
6504
6505type DeleteStackOutput struct {
6506	_ struct{} `type:"structure"`
6507}
6508
6509// String returns the string representation
6510func (s DeleteStackOutput) String() string {
6511	return awsutil.Prettify(s)
6512}
6513
6514// GoString returns the string representation
6515func (s DeleteStackOutput) GoString() string {
6516	return s.String()
6517}
6518
6519type DeleteUsageReportSubscriptionInput struct {
6520	_ struct{} `type:"structure"`
6521}
6522
6523// String returns the string representation
6524func (s DeleteUsageReportSubscriptionInput) String() string {
6525	return awsutil.Prettify(s)
6526}
6527
6528// GoString returns the string representation
6529func (s DeleteUsageReportSubscriptionInput) GoString() string {
6530	return s.String()
6531}
6532
6533type DeleteUsageReportSubscriptionOutput struct {
6534	_ struct{} `type:"structure"`
6535}
6536
6537// String returns the string representation
6538func (s DeleteUsageReportSubscriptionOutput) String() string {
6539	return awsutil.Prettify(s)
6540}
6541
6542// GoString returns the string representation
6543func (s DeleteUsageReportSubscriptionOutput) GoString() string {
6544	return s.String()
6545}
6546
6547type DeleteUserInput struct {
6548	_ struct{} `type:"structure"`
6549
6550	// The authentication type for the user. You must specify USERPOOL.
6551	//
6552	// AuthenticationType is a required field
6553	AuthenticationType *string `type:"string" required:"true" enum:"AuthenticationType"`
6554
6555	// The email address of the user.
6556	//
6557	// Users' email addresses are case-sensitive.
6558	//
6559	// UserName is a required field
6560	UserName *string `min:"1" type:"string" required:"true" sensitive:"true"`
6561}
6562
6563// String returns the string representation
6564func (s DeleteUserInput) String() string {
6565	return awsutil.Prettify(s)
6566}
6567
6568// GoString returns the string representation
6569func (s DeleteUserInput) GoString() string {
6570	return s.String()
6571}
6572
6573// Validate inspects the fields of the type to determine if they are valid.
6574func (s *DeleteUserInput) Validate() error {
6575	invalidParams := request.ErrInvalidParams{Context: "DeleteUserInput"}
6576	if s.AuthenticationType == nil {
6577		invalidParams.Add(request.NewErrParamRequired("AuthenticationType"))
6578	}
6579	if s.UserName == nil {
6580		invalidParams.Add(request.NewErrParamRequired("UserName"))
6581	}
6582	if s.UserName != nil && len(*s.UserName) < 1 {
6583		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
6584	}
6585
6586	if invalidParams.Len() > 0 {
6587		return invalidParams
6588	}
6589	return nil
6590}
6591
6592// SetAuthenticationType sets the AuthenticationType field's value.
6593func (s *DeleteUserInput) SetAuthenticationType(v string) *DeleteUserInput {
6594	s.AuthenticationType = &v
6595	return s
6596}
6597
6598// SetUserName sets the UserName field's value.
6599func (s *DeleteUserInput) SetUserName(v string) *DeleteUserInput {
6600	s.UserName = &v
6601	return s
6602}
6603
6604type DeleteUserOutput struct {
6605	_ struct{} `type:"structure"`
6606}
6607
6608// String returns the string representation
6609func (s DeleteUserOutput) String() string {
6610	return awsutil.Prettify(s)
6611}
6612
6613// GoString returns the string representation
6614func (s DeleteUserOutput) GoString() string {
6615	return s.String()
6616}
6617
6618type DescribeDirectoryConfigsInput struct {
6619	_ struct{} `type:"structure"`
6620
6621	// The directory names.
6622	DirectoryNames []*string `type:"list"`
6623
6624	// The maximum size of each page of results.
6625	MaxResults *int64 `type:"integer"`
6626
6627	// The pagination token to use to retrieve the next page of results for this
6628	// operation. If this value is null, it retrieves the first page.
6629	NextToken *string `min:"1" type:"string"`
6630}
6631
6632// String returns the string representation
6633func (s DescribeDirectoryConfigsInput) String() string {
6634	return awsutil.Prettify(s)
6635}
6636
6637// GoString returns the string representation
6638func (s DescribeDirectoryConfigsInput) GoString() string {
6639	return s.String()
6640}
6641
6642// Validate inspects the fields of the type to determine if they are valid.
6643func (s *DescribeDirectoryConfigsInput) Validate() error {
6644	invalidParams := request.ErrInvalidParams{Context: "DescribeDirectoryConfigsInput"}
6645	if s.NextToken != nil && len(*s.NextToken) < 1 {
6646		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6647	}
6648
6649	if invalidParams.Len() > 0 {
6650		return invalidParams
6651	}
6652	return nil
6653}
6654
6655// SetDirectoryNames sets the DirectoryNames field's value.
6656func (s *DescribeDirectoryConfigsInput) SetDirectoryNames(v []*string) *DescribeDirectoryConfigsInput {
6657	s.DirectoryNames = v
6658	return s
6659}
6660
6661// SetMaxResults sets the MaxResults field's value.
6662func (s *DescribeDirectoryConfigsInput) SetMaxResults(v int64) *DescribeDirectoryConfigsInput {
6663	s.MaxResults = &v
6664	return s
6665}
6666
6667// SetNextToken sets the NextToken field's value.
6668func (s *DescribeDirectoryConfigsInput) SetNextToken(v string) *DescribeDirectoryConfigsInput {
6669	s.NextToken = &v
6670	return s
6671}
6672
6673type DescribeDirectoryConfigsOutput struct {
6674	_ struct{} `type:"structure"`
6675
6676	// Information about the directory configurations. Note that although the response
6677	// syntax in this topic includes the account password, this password is not
6678	// returned in the actual response.
6679	DirectoryConfigs []*DirectoryConfig `type:"list"`
6680
6681	// The pagination token to use to retrieve the next page of results for this
6682	// operation. If there are no more pages, this value is null.
6683	NextToken *string `min:"1" type:"string"`
6684}
6685
6686// String returns the string representation
6687func (s DescribeDirectoryConfigsOutput) String() string {
6688	return awsutil.Prettify(s)
6689}
6690
6691// GoString returns the string representation
6692func (s DescribeDirectoryConfigsOutput) GoString() string {
6693	return s.String()
6694}
6695
6696// SetDirectoryConfigs sets the DirectoryConfigs field's value.
6697func (s *DescribeDirectoryConfigsOutput) SetDirectoryConfigs(v []*DirectoryConfig) *DescribeDirectoryConfigsOutput {
6698	s.DirectoryConfigs = v
6699	return s
6700}
6701
6702// SetNextToken sets the NextToken field's value.
6703func (s *DescribeDirectoryConfigsOutput) SetNextToken(v string) *DescribeDirectoryConfigsOutput {
6704	s.NextToken = &v
6705	return s
6706}
6707
6708type DescribeFleetsInput struct {
6709	_ struct{} `type:"structure"`
6710
6711	// The names of the fleets to describe.
6712	Names []*string `type:"list"`
6713
6714	// The pagination token to use to retrieve the next page of results for this
6715	// operation. If this value is null, it retrieves the first page.
6716	NextToken *string `min:"1" type:"string"`
6717}
6718
6719// String returns the string representation
6720func (s DescribeFleetsInput) String() string {
6721	return awsutil.Prettify(s)
6722}
6723
6724// GoString returns the string representation
6725func (s DescribeFleetsInput) GoString() string {
6726	return s.String()
6727}
6728
6729// Validate inspects the fields of the type to determine if they are valid.
6730func (s *DescribeFleetsInput) Validate() error {
6731	invalidParams := request.ErrInvalidParams{Context: "DescribeFleetsInput"}
6732	if s.NextToken != nil && len(*s.NextToken) < 1 {
6733		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6734	}
6735
6736	if invalidParams.Len() > 0 {
6737		return invalidParams
6738	}
6739	return nil
6740}
6741
6742// SetNames sets the Names field's value.
6743func (s *DescribeFleetsInput) SetNames(v []*string) *DescribeFleetsInput {
6744	s.Names = v
6745	return s
6746}
6747
6748// SetNextToken sets the NextToken field's value.
6749func (s *DescribeFleetsInput) SetNextToken(v string) *DescribeFleetsInput {
6750	s.NextToken = &v
6751	return s
6752}
6753
6754type DescribeFleetsOutput struct {
6755	_ struct{} `type:"structure"`
6756
6757	// Information about the fleets.
6758	Fleets []*Fleet `type:"list"`
6759
6760	// The pagination token to use to retrieve the next page of results for this
6761	// operation. If there are no more pages, this value is null.
6762	NextToken *string `min:"1" type:"string"`
6763}
6764
6765// String returns the string representation
6766func (s DescribeFleetsOutput) String() string {
6767	return awsutil.Prettify(s)
6768}
6769
6770// GoString returns the string representation
6771func (s DescribeFleetsOutput) GoString() string {
6772	return s.String()
6773}
6774
6775// SetFleets sets the Fleets field's value.
6776func (s *DescribeFleetsOutput) SetFleets(v []*Fleet) *DescribeFleetsOutput {
6777	s.Fleets = v
6778	return s
6779}
6780
6781// SetNextToken sets the NextToken field's value.
6782func (s *DescribeFleetsOutput) SetNextToken(v string) *DescribeFleetsOutput {
6783	s.NextToken = &v
6784	return s
6785}
6786
6787type DescribeImageBuildersInput struct {
6788	_ struct{} `type:"structure"`
6789
6790	// The maximum size of each page of results.
6791	MaxResults *int64 `type:"integer"`
6792
6793	// The names of the image builders to describe.
6794	Names []*string `type:"list"`
6795
6796	// The pagination token to use to retrieve the next page of results for this
6797	// operation. If this value is null, it retrieves the first page.
6798	NextToken *string `min:"1" type:"string"`
6799}
6800
6801// String returns the string representation
6802func (s DescribeImageBuildersInput) String() string {
6803	return awsutil.Prettify(s)
6804}
6805
6806// GoString returns the string representation
6807func (s DescribeImageBuildersInput) GoString() string {
6808	return s.String()
6809}
6810
6811// Validate inspects the fields of the type to determine if they are valid.
6812func (s *DescribeImageBuildersInput) Validate() error {
6813	invalidParams := request.ErrInvalidParams{Context: "DescribeImageBuildersInput"}
6814	if s.NextToken != nil && len(*s.NextToken) < 1 {
6815		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6816	}
6817
6818	if invalidParams.Len() > 0 {
6819		return invalidParams
6820	}
6821	return nil
6822}
6823
6824// SetMaxResults sets the MaxResults field's value.
6825func (s *DescribeImageBuildersInput) SetMaxResults(v int64) *DescribeImageBuildersInput {
6826	s.MaxResults = &v
6827	return s
6828}
6829
6830// SetNames sets the Names field's value.
6831func (s *DescribeImageBuildersInput) SetNames(v []*string) *DescribeImageBuildersInput {
6832	s.Names = v
6833	return s
6834}
6835
6836// SetNextToken sets the NextToken field's value.
6837func (s *DescribeImageBuildersInput) SetNextToken(v string) *DescribeImageBuildersInput {
6838	s.NextToken = &v
6839	return s
6840}
6841
6842type DescribeImageBuildersOutput struct {
6843	_ struct{} `type:"structure"`
6844
6845	// Information about the image builders.
6846	ImageBuilders []*ImageBuilder `type:"list"`
6847
6848	// The pagination token to use to retrieve the next page of results for this
6849	// operation. If there are no more pages, this value is null.
6850	NextToken *string `min:"1" type:"string"`
6851}
6852
6853// String returns the string representation
6854func (s DescribeImageBuildersOutput) String() string {
6855	return awsutil.Prettify(s)
6856}
6857
6858// GoString returns the string representation
6859func (s DescribeImageBuildersOutput) GoString() string {
6860	return s.String()
6861}
6862
6863// SetImageBuilders sets the ImageBuilders field's value.
6864func (s *DescribeImageBuildersOutput) SetImageBuilders(v []*ImageBuilder) *DescribeImageBuildersOutput {
6865	s.ImageBuilders = v
6866	return s
6867}
6868
6869// SetNextToken sets the NextToken field's value.
6870func (s *DescribeImageBuildersOutput) SetNextToken(v string) *DescribeImageBuildersOutput {
6871	s.NextToken = &v
6872	return s
6873}
6874
6875type DescribeImagePermissionsInput struct {
6876	_ struct{} `type:"structure"`
6877
6878	// The maximum size of each page of results.
6879	MaxResults *int64 `type:"integer"`
6880
6881	// The name of the private image for which to describe permissions. The image
6882	// must be one that you own.
6883	//
6884	// Name is a required field
6885	Name *string `type:"string" required:"true"`
6886
6887	// The pagination token to use to retrieve the next page of results for this
6888	// operation. If this value is null, it retrieves the first page.
6889	NextToken *string `min:"1" type:"string"`
6890
6891	// The 12-digit identifier of one or more AWS accounts with which the image
6892	// is shared.
6893	SharedAwsAccountIds []*string `min:"1" type:"list"`
6894}
6895
6896// String returns the string representation
6897func (s DescribeImagePermissionsInput) String() string {
6898	return awsutil.Prettify(s)
6899}
6900
6901// GoString returns the string representation
6902func (s DescribeImagePermissionsInput) GoString() string {
6903	return s.String()
6904}
6905
6906// Validate inspects the fields of the type to determine if they are valid.
6907func (s *DescribeImagePermissionsInput) Validate() error {
6908	invalidParams := request.ErrInvalidParams{Context: "DescribeImagePermissionsInput"}
6909	if s.Name == nil {
6910		invalidParams.Add(request.NewErrParamRequired("Name"))
6911	}
6912	if s.NextToken != nil && len(*s.NextToken) < 1 {
6913		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
6914	}
6915	if s.SharedAwsAccountIds != nil && len(s.SharedAwsAccountIds) < 1 {
6916		invalidParams.Add(request.NewErrParamMinLen("SharedAwsAccountIds", 1))
6917	}
6918
6919	if invalidParams.Len() > 0 {
6920		return invalidParams
6921	}
6922	return nil
6923}
6924
6925// SetMaxResults sets the MaxResults field's value.
6926func (s *DescribeImagePermissionsInput) SetMaxResults(v int64) *DescribeImagePermissionsInput {
6927	s.MaxResults = &v
6928	return s
6929}
6930
6931// SetName sets the Name field's value.
6932func (s *DescribeImagePermissionsInput) SetName(v string) *DescribeImagePermissionsInput {
6933	s.Name = &v
6934	return s
6935}
6936
6937// SetNextToken sets the NextToken field's value.
6938func (s *DescribeImagePermissionsInput) SetNextToken(v string) *DescribeImagePermissionsInput {
6939	s.NextToken = &v
6940	return s
6941}
6942
6943// SetSharedAwsAccountIds sets the SharedAwsAccountIds field's value.
6944func (s *DescribeImagePermissionsInput) SetSharedAwsAccountIds(v []*string) *DescribeImagePermissionsInput {
6945	s.SharedAwsAccountIds = v
6946	return s
6947}
6948
6949type DescribeImagePermissionsOutput struct {
6950	_ struct{} `type:"structure"`
6951
6952	// The name of the private image.
6953	Name *string `type:"string"`
6954
6955	// The pagination token to use to retrieve the next page of results for this
6956	// operation. If there are no more pages, this value is null.
6957	NextToken *string `min:"1" type:"string"`
6958
6959	// The permissions for a private image that you own.
6960	SharedImagePermissionsList []*SharedImagePermissions `type:"list"`
6961}
6962
6963// String returns the string representation
6964func (s DescribeImagePermissionsOutput) String() string {
6965	return awsutil.Prettify(s)
6966}
6967
6968// GoString returns the string representation
6969func (s DescribeImagePermissionsOutput) GoString() string {
6970	return s.String()
6971}
6972
6973// SetName sets the Name field's value.
6974func (s *DescribeImagePermissionsOutput) SetName(v string) *DescribeImagePermissionsOutput {
6975	s.Name = &v
6976	return s
6977}
6978
6979// SetNextToken sets the NextToken field's value.
6980func (s *DescribeImagePermissionsOutput) SetNextToken(v string) *DescribeImagePermissionsOutput {
6981	s.NextToken = &v
6982	return s
6983}
6984
6985// SetSharedImagePermissionsList sets the SharedImagePermissionsList field's value.
6986func (s *DescribeImagePermissionsOutput) SetSharedImagePermissionsList(v []*SharedImagePermissions) *DescribeImagePermissionsOutput {
6987	s.SharedImagePermissionsList = v
6988	return s
6989}
6990
6991type DescribeImagesInput struct {
6992	_ struct{} `type:"structure"`
6993
6994	// The ARNs of the public, private, and shared images to describe.
6995	Arns []*string `type:"list"`
6996
6997	// The maximum size of each page of results.
6998	MaxResults *int64 `type:"integer"`
6999
7000	// The names of the public or private images to describe.
7001	Names []*string `type:"list"`
7002
7003	// The pagination token to use to retrieve the next page of results for this
7004	// operation. If this value is null, it retrieves the first page.
7005	NextToken *string `min:"1" type:"string"`
7006
7007	// The type of image (public, private, or shared) to describe.
7008	Type *string `type:"string" enum:"VisibilityType"`
7009}
7010
7011// String returns the string representation
7012func (s DescribeImagesInput) String() string {
7013	return awsutil.Prettify(s)
7014}
7015
7016// GoString returns the string representation
7017func (s DescribeImagesInput) GoString() string {
7018	return s.String()
7019}
7020
7021// Validate inspects the fields of the type to determine if they are valid.
7022func (s *DescribeImagesInput) Validate() error {
7023	invalidParams := request.ErrInvalidParams{Context: "DescribeImagesInput"}
7024	if s.NextToken != nil && len(*s.NextToken) < 1 {
7025		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7026	}
7027
7028	if invalidParams.Len() > 0 {
7029		return invalidParams
7030	}
7031	return nil
7032}
7033
7034// SetArns sets the Arns field's value.
7035func (s *DescribeImagesInput) SetArns(v []*string) *DescribeImagesInput {
7036	s.Arns = v
7037	return s
7038}
7039
7040// SetMaxResults sets the MaxResults field's value.
7041func (s *DescribeImagesInput) SetMaxResults(v int64) *DescribeImagesInput {
7042	s.MaxResults = &v
7043	return s
7044}
7045
7046// SetNames sets the Names field's value.
7047func (s *DescribeImagesInput) SetNames(v []*string) *DescribeImagesInput {
7048	s.Names = v
7049	return s
7050}
7051
7052// SetNextToken sets the NextToken field's value.
7053func (s *DescribeImagesInput) SetNextToken(v string) *DescribeImagesInput {
7054	s.NextToken = &v
7055	return s
7056}
7057
7058// SetType sets the Type field's value.
7059func (s *DescribeImagesInput) SetType(v string) *DescribeImagesInput {
7060	s.Type = &v
7061	return s
7062}
7063
7064type DescribeImagesOutput struct {
7065	_ struct{} `type:"structure"`
7066
7067	// Information about the images.
7068	Images []*Image `type:"list"`
7069
7070	// The pagination token to use to retrieve the next page of results for this
7071	// operation. If there are no more pages, this value is null.
7072	NextToken *string `min:"1" type:"string"`
7073}
7074
7075// String returns the string representation
7076func (s DescribeImagesOutput) String() string {
7077	return awsutil.Prettify(s)
7078}
7079
7080// GoString returns the string representation
7081func (s DescribeImagesOutput) GoString() string {
7082	return s.String()
7083}
7084
7085// SetImages sets the Images field's value.
7086func (s *DescribeImagesOutput) SetImages(v []*Image) *DescribeImagesOutput {
7087	s.Images = v
7088	return s
7089}
7090
7091// SetNextToken sets the NextToken field's value.
7092func (s *DescribeImagesOutput) SetNextToken(v string) *DescribeImagesOutput {
7093	s.NextToken = &v
7094	return s
7095}
7096
7097type DescribeSessionsInput struct {
7098	_ struct{} `type:"structure"`
7099
7100	// The authentication method. Specify API for a user authenticated using a streaming
7101	// URL or SAML for a SAML federated user. The default is to authenticate users
7102	// using a streaming URL.
7103	AuthenticationType *string `type:"string" enum:"AuthenticationType"`
7104
7105	// The name of the fleet. This value is case-sensitive.
7106	//
7107	// FleetName is a required field
7108	FleetName *string `min:"1" type:"string" required:"true"`
7109
7110	// The size of each page of results. The default value is 20 and the maximum
7111	// value is 50.
7112	Limit *int64 `type:"integer"`
7113
7114	// The pagination token to use to retrieve the next page of results for this
7115	// operation. If this value is null, it retrieves the first page.
7116	NextToken *string `min:"1" type:"string"`
7117
7118	// The name of the stack. This value is case-sensitive.
7119	//
7120	// StackName is a required field
7121	StackName *string `min:"1" type:"string" required:"true"`
7122
7123	// The user identifier.
7124	UserId *string `min:"2" type:"string"`
7125}
7126
7127// String returns the string representation
7128func (s DescribeSessionsInput) String() string {
7129	return awsutil.Prettify(s)
7130}
7131
7132// GoString returns the string representation
7133func (s DescribeSessionsInput) GoString() string {
7134	return s.String()
7135}
7136
7137// Validate inspects the fields of the type to determine if they are valid.
7138func (s *DescribeSessionsInput) Validate() error {
7139	invalidParams := request.ErrInvalidParams{Context: "DescribeSessionsInput"}
7140	if s.FleetName == nil {
7141		invalidParams.Add(request.NewErrParamRequired("FleetName"))
7142	}
7143	if s.FleetName != nil && len(*s.FleetName) < 1 {
7144		invalidParams.Add(request.NewErrParamMinLen("FleetName", 1))
7145	}
7146	if s.NextToken != nil && len(*s.NextToken) < 1 {
7147		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7148	}
7149	if s.StackName == nil {
7150		invalidParams.Add(request.NewErrParamRequired("StackName"))
7151	}
7152	if s.StackName != nil && len(*s.StackName) < 1 {
7153		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7154	}
7155	if s.UserId != nil && len(*s.UserId) < 2 {
7156		invalidParams.Add(request.NewErrParamMinLen("UserId", 2))
7157	}
7158
7159	if invalidParams.Len() > 0 {
7160		return invalidParams
7161	}
7162	return nil
7163}
7164
7165// SetAuthenticationType sets the AuthenticationType field's value.
7166func (s *DescribeSessionsInput) SetAuthenticationType(v string) *DescribeSessionsInput {
7167	s.AuthenticationType = &v
7168	return s
7169}
7170
7171// SetFleetName sets the FleetName field's value.
7172func (s *DescribeSessionsInput) SetFleetName(v string) *DescribeSessionsInput {
7173	s.FleetName = &v
7174	return s
7175}
7176
7177// SetLimit sets the Limit field's value.
7178func (s *DescribeSessionsInput) SetLimit(v int64) *DescribeSessionsInput {
7179	s.Limit = &v
7180	return s
7181}
7182
7183// SetNextToken sets the NextToken field's value.
7184func (s *DescribeSessionsInput) SetNextToken(v string) *DescribeSessionsInput {
7185	s.NextToken = &v
7186	return s
7187}
7188
7189// SetStackName sets the StackName field's value.
7190func (s *DescribeSessionsInput) SetStackName(v string) *DescribeSessionsInput {
7191	s.StackName = &v
7192	return s
7193}
7194
7195// SetUserId sets the UserId field's value.
7196func (s *DescribeSessionsInput) SetUserId(v string) *DescribeSessionsInput {
7197	s.UserId = &v
7198	return s
7199}
7200
7201type DescribeSessionsOutput struct {
7202	_ struct{} `type:"structure"`
7203
7204	// The pagination token to use to retrieve the next page of results for this
7205	// operation. If there are no more pages, this value is null.
7206	NextToken *string `min:"1" type:"string"`
7207
7208	// Information about the streaming sessions.
7209	Sessions []*Session `type:"list"`
7210}
7211
7212// String returns the string representation
7213func (s DescribeSessionsOutput) String() string {
7214	return awsutil.Prettify(s)
7215}
7216
7217// GoString returns the string representation
7218func (s DescribeSessionsOutput) GoString() string {
7219	return s.String()
7220}
7221
7222// SetNextToken sets the NextToken field's value.
7223func (s *DescribeSessionsOutput) SetNextToken(v string) *DescribeSessionsOutput {
7224	s.NextToken = &v
7225	return s
7226}
7227
7228// SetSessions sets the Sessions field's value.
7229func (s *DescribeSessionsOutput) SetSessions(v []*Session) *DescribeSessionsOutput {
7230	s.Sessions = v
7231	return s
7232}
7233
7234type DescribeStacksInput struct {
7235	_ struct{} `type:"structure"`
7236
7237	// The names of the stacks to describe.
7238	Names []*string `type:"list"`
7239
7240	// The pagination token to use to retrieve the next page of results for this
7241	// operation. If this value is null, it retrieves the first page.
7242	NextToken *string `min:"1" type:"string"`
7243}
7244
7245// String returns the string representation
7246func (s DescribeStacksInput) String() string {
7247	return awsutil.Prettify(s)
7248}
7249
7250// GoString returns the string representation
7251func (s DescribeStacksInput) GoString() string {
7252	return s.String()
7253}
7254
7255// Validate inspects the fields of the type to determine if they are valid.
7256func (s *DescribeStacksInput) Validate() error {
7257	invalidParams := request.ErrInvalidParams{Context: "DescribeStacksInput"}
7258	if s.NextToken != nil && len(*s.NextToken) < 1 {
7259		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7260	}
7261
7262	if invalidParams.Len() > 0 {
7263		return invalidParams
7264	}
7265	return nil
7266}
7267
7268// SetNames sets the Names field's value.
7269func (s *DescribeStacksInput) SetNames(v []*string) *DescribeStacksInput {
7270	s.Names = v
7271	return s
7272}
7273
7274// SetNextToken sets the NextToken field's value.
7275func (s *DescribeStacksInput) SetNextToken(v string) *DescribeStacksInput {
7276	s.NextToken = &v
7277	return s
7278}
7279
7280type DescribeStacksOutput struct {
7281	_ struct{} `type:"structure"`
7282
7283	// The pagination token to use to retrieve the next page of results for this
7284	// operation. If there are no more pages, this value is null.
7285	NextToken *string `min:"1" type:"string"`
7286
7287	// Information about the stacks.
7288	Stacks []*Stack `type:"list"`
7289}
7290
7291// String returns the string representation
7292func (s DescribeStacksOutput) String() string {
7293	return awsutil.Prettify(s)
7294}
7295
7296// GoString returns the string representation
7297func (s DescribeStacksOutput) GoString() string {
7298	return s.String()
7299}
7300
7301// SetNextToken sets the NextToken field's value.
7302func (s *DescribeStacksOutput) SetNextToken(v string) *DescribeStacksOutput {
7303	s.NextToken = &v
7304	return s
7305}
7306
7307// SetStacks sets the Stacks field's value.
7308func (s *DescribeStacksOutput) SetStacks(v []*Stack) *DescribeStacksOutput {
7309	s.Stacks = v
7310	return s
7311}
7312
7313type DescribeUsageReportSubscriptionsInput struct {
7314	_ struct{} `type:"structure"`
7315
7316	// The maximum size of each page of results.
7317	MaxResults *int64 `type:"integer"`
7318
7319	// The pagination token to use to retrieve the next page of results for this
7320	// operation. If this value is null, it retrieves the first page.
7321	NextToken *string `min:"1" type:"string"`
7322}
7323
7324// String returns the string representation
7325func (s DescribeUsageReportSubscriptionsInput) String() string {
7326	return awsutil.Prettify(s)
7327}
7328
7329// GoString returns the string representation
7330func (s DescribeUsageReportSubscriptionsInput) GoString() string {
7331	return s.String()
7332}
7333
7334// Validate inspects the fields of the type to determine if they are valid.
7335func (s *DescribeUsageReportSubscriptionsInput) Validate() error {
7336	invalidParams := request.ErrInvalidParams{Context: "DescribeUsageReportSubscriptionsInput"}
7337	if s.NextToken != nil && len(*s.NextToken) < 1 {
7338		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7339	}
7340
7341	if invalidParams.Len() > 0 {
7342		return invalidParams
7343	}
7344	return nil
7345}
7346
7347// SetMaxResults sets the MaxResults field's value.
7348func (s *DescribeUsageReportSubscriptionsInput) SetMaxResults(v int64) *DescribeUsageReportSubscriptionsInput {
7349	s.MaxResults = &v
7350	return s
7351}
7352
7353// SetNextToken sets the NextToken field's value.
7354func (s *DescribeUsageReportSubscriptionsInput) SetNextToken(v string) *DescribeUsageReportSubscriptionsInput {
7355	s.NextToken = &v
7356	return s
7357}
7358
7359type DescribeUsageReportSubscriptionsOutput struct {
7360	_ struct{} `type:"structure"`
7361
7362	// The pagination token to use to retrieve the next page of results for this
7363	// operation. If there are no more pages, this value is null.
7364	NextToken *string `min:"1" type:"string"`
7365
7366	// Information about the usage report subscription.
7367	UsageReportSubscriptions []*UsageReportSubscription `type:"list"`
7368}
7369
7370// String returns the string representation
7371func (s DescribeUsageReportSubscriptionsOutput) String() string {
7372	return awsutil.Prettify(s)
7373}
7374
7375// GoString returns the string representation
7376func (s DescribeUsageReportSubscriptionsOutput) GoString() string {
7377	return s.String()
7378}
7379
7380// SetNextToken sets the NextToken field's value.
7381func (s *DescribeUsageReportSubscriptionsOutput) SetNextToken(v string) *DescribeUsageReportSubscriptionsOutput {
7382	s.NextToken = &v
7383	return s
7384}
7385
7386// SetUsageReportSubscriptions sets the UsageReportSubscriptions field's value.
7387func (s *DescribeUsageReportSubscriptionsOutput) SetUsageReportSubscriptions(v []*UsageReportSubscription) *DescribeUsageReportSubscriptionsOutput {
7388	s.UsageReportSubscriptions = v
7389	return s
7390}
7391
7392type DescribeUserStackAssociationsInput struct {
7393	_ struct{} `type:"structure"`
7394
7395	// The authentication type for the user who is associated with the stack. You
7396	// must specify USERPOOL.
7397	AuthenticationType *string `type:"string" enum:"AuthenticationType"`
7398
7399	// The maximum size of each page of results.
7400	MaxResults *int64 `type:"integer"`
7401
7402	// The pagination token to use to retrieve the next page of results for this
7403	// operation. If this value is null, it retrieves the first page.
7404	NextToken *string `min:"1" type:"string"`
7405
7406	// The name of the stack that is associated with the user.
7407	StackName *string `min:"1" type:"string"`
7408
7409	// The email address of the user who is associated with the stack.
7410	//
7411	// Users' email addresses are case-sensitive.
7412	UserName *string `min:"1" type:"string" sensitive:"true"`
7413}
7414
7415// String returns the string representation
7416func (s DescribeUserStackAssociationsInput) String() string {
7417	return awsutil.Prettify(s)
7418}
7419
7420// GoString returns the string representation
7421func (s DescribeUserStackAssociationsInput) GoString() string {
7422	return s.String()
7423}
7424
7425// Validate inspects the fields of the type to determine if they are valid.
7426func (s *DescribeUserStackAssociationsInput) Validate() error {
7427	invalidParams := request.ErrInvalidParams{Context: "DescribeUserStackAssociationsInput"}
7428	if s.NextToken != nil && len(*s.NextToken) < 1 {
7429		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7430	}
7431	if s.StackName != nil && len(*s.StackName) < 1 {
7432		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7433	}
7434	if s.UserName != nil && len(*s.UserName) < 1 {
7435		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
7436	}
7437
7438	if invalidParams.Len() > 0 {
7439		return invalidParams
7440	}
7441	return nil
7442}
7443
7444// SetAuthenticationType sets the AuthenticationType field's value.
7445func (s *DescribeUserStackAssociationsInput) SetAuthenticationType(v string) *DescribeUserStackAssociationsInput {
7446	s.AuthenticationType = &v
7447	return s
7448}
7449
7450// SetMaxResults sets the MaxResults field's value.
7451func (s *DescribeUserStackAssociationsInput) SetMaxResults(v int64) *DescribeUserStackAssociationsInput {
7452	s.MaxResults = &v
7453	return s
7454}
7455
7456// SetNextToken sets the NextToken field's value.
7457func (s *DescribeUserStackAssociationsInput) SetNextToken(v string) *DescribeUserStackAssociationsInput {
7458	s.NextToken = &v
7459	return s
7460}
7461
7462// SetStackName sets the StackName field's value.
7463func (s *DescribeUserStackAssociationsInput) SetStackName(v string) *DescribeUserStackAssociationsInput {
7464	s.StackName = &v
7465	return s
7466}
7467
7468// SetUserName sets the UserName field's value.
7469func (s *DescribeUserStackAssociationsInput) SetUserName(v string) *DescribeUserStackAssociationsInput {
7470	s.UserName = &v
7471	return s
7472}
7473
7474type DescribeUserStackAssociationsOutput struct {
7475	_ struct{} `type:"structure"`
7476
7477	// The pagination token to use to retrieve the next page of results for this
7478	// operation. If there are no more pages, this value is null.
7479	NextToken *string `min:"1" type:"string"`
7480
7481	// The UserStackAssociation objects.
7482	UserStackAssociations []*UserStackAssociation `min:"1" type:"list"`
7483}
7484
7485// String returns the string representation
7486func (s DescribeUserStackAssociationsOutput) String() string {
7487	return awsutil.Prettify(s)
7488}
7489
7490// GoString returns the string representation
7491func (s DescribeUserStackAssociationsOutput) GoString() string {
7492	return s.String()
7493}
7494
7495// SetNextToken sets the NextToken field's value.
7496func (s *DescribeUserStackAssociationsOutput) SetNextToken(v string) *DescribeUserStackAssociationsOutput {
7497	s.NextToken = &v
7498	return s
7499}
7500
7501// SetUserStackAssociations sets the UserStackAssociations field's value.
7502func (s *DescribeUserStackAssociationsOutput) SetUserStackAssociations(v []*UserStackAssociation) *DescribeUserStackAssociationsOutput {
7503	s.UserStackAssociations = v
7504	return s
7505}
7506
7507type DescribeUsersInput struct {
7508	_ struct{} `type:"structure"`
7509
7510	// The authentication type for the users in the user pool to describe. You must
7511	// specify USERPOOL.
7512	//
7513	// AuthenticationType is a required field
7514	AuthenticationType *string `type:"string" required:"true" enum:"AuthenticationType"`
7515
7516	// The maximum size of each page of results.
7517	MaxResults *int64 `type:"integer"`
7518
7519	// The pagination token to use to retrieve the next page of results for this
7520	// operation. If this value is null, it retrieves the first page.
7521	NextToken *string `min:"1" type:"string"`
7522}
7523
7524// String returns the string representation
7525func (s DescribeUsersInput) String() string {
7526	return awsutil.Prettify(s)
7527}
7528
7529// GoString returns the string representation
7530func (s DescribeUsersInput) GoString() string {
7531	return s.String()
7532}
7533
7534// Validate inspects the fields of the type to determine if they are valid.
7535func (s *DescribeUsersInput) Validate() error {
7536	invalidParams := request.ErrInvalidParams{Context: "DescribeUsersInput"}
7537	if s.AuthenticationType == nil {
7538		invalidParams.Add(request.NewErrParamRequired("AuthenticationType"))
7539	}
7540	if s.NextToken != nil && len(*s.NextToken) < 1 {
7541		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
7542	}
7543
7544	if invalidParams.Len() > 0 {
7545		return invalidParams
7546	}
7547	return nil
7548}
7549
7550// SetAuthenticationType sets the AuthenticationType field's value.
7551func (s *DescribeUsersInput) SetAuthenticationType(v string) *DescribeUsersInput {
7552	s.AuthenticationType = &v
7553	return s
7554}
7555
7556// SetMaxResults sets the MaxResults field's value.
7557func (s *DescribeUsersInput) SetMaxResults(v int64) *DescribeUsersInput {
7558	s.MaxResults = &v
7559	return s
7560}
7561
7562// SetNextToken sets the NextToken field's value.
7563func (s *DescribeUsersInput) SetNextToken(v string) *DescribeUsersInput {
7564	s.NextToken = &v
7565	return s
7566}
7567
7568type DescribeUsersOutput struct {
7569	_ struct{} `type:"structure"`
7570
7571	// The pagination token to use to retrieve the next page of results for this
7572	// operation. If there are no more pages, this value is null.
7573	NextToken *string `min:"1" type:"string"`
7574
7575	// Information about users in the user pool.
7576	Users []*User `type:"list"`
7577}
7578
7579// String returns the string representation
7580func (s DescribeUsersOutput) String() string {
7581	return awsutil.Prettify(s)
7582}
7583
7584// GoString returns the string representation
7585func (s DescribeUsersOutput) GoString() string {
7586	return s.String()
7587}
7588
7589// SetNextToken sets the NextToken field's value.
7590func (s *DescribeUsersOutput) SetNextToken(v string) *DescribeUsersOutput {
7591	s.NextToken = &v
7592	return s
7593}
7594
7595// SetUsers sets the Users field's value.
7596func (s *DescribeUsersOutput) SetUsers(v []*User) *DescribeUsersOutput {
7597	s.Users = v
7598	return s
7599}
7600
7601// Describes the configuration information required to join fleets and image
7602// builders to Microsoft Active Directory domains.
7603type DirectoryConfig struct {
7604	_ struct{} `type:"structure"`
7605
7606	// The time the directory configuration was created.
7607	CreatedTime *time.Time `type:"timestamp"`
7608
7609	// The fully qualified name of the directory (for example, corp.example.com).
7610	//
7611	// DirectoryName is a required field
7612	DirectoryName *string `type:"string" required:"true"`
7613
7614	// The distinguished names of the organizational units for computer accounts.
7615	OrganizationalUnitDistinguishedNames []*string `type:"list"`
7616
7617	// The credentials for the service account used by the fleet or image builder
7618	// to connect to the directory.
7619	ServiceAccountCredentials *ServiceAccountCredentials `type:"structure"`
7620}
7621
7622// String returns the string representation
7623func (s DirectoryConfig) String() string {
7624	return awsutil.Prettify(s)
7625}
7626
7627// GoString returns the string representation
7628func (s DirectoryConfig) GoString() string {
7629	return s.String()
7630}
7631
7632// SetCreatedTime sets the CreatedTime field's value.
7633func (s *DirectoryConfig) SetCreatedTime(v time.Time) *DirectoryConfig {
7634	s.CreatedTime = &v
7635	return s
7636}
7637
7638// SetDirectoryName sets the DirectoryName field's value.
7639func (s *DirectoryConfig) SetDirectoryName(v string) *DirectoryConfig {
7640	s.DirectoryName = &v
7641	return s
7642}
7643
7644// SetOrganizationalUnitDistinguishedNames sets the OrganizationalUnitDistinguishedNames field's value.
7645func (s *DirectoryConfig) SetOrganizationalUnitDistinguishedNames(v []*string) *DirectoryConfig {
7646	s.OrganizationalUnitDistinguishedNames = v
7647	return s
7648}
7649
7650// SetServiceAccountCredentials sets the ServiceAccountCredentials field's value.
7651func (s *DirectoryConfig) SetServiceAccountCredentials(v *ServiceAccountCredentials) *DirectoryConfig {
7652	s.ServiceAccountCredentials = v
7653	return s
7654}
7655
7656type DisableUserInput struct {
7657	_ struct{} `type:"structure"`
7658
7659	// The authentication type for the user. You must specify USERPOOL.
7660	//
7661	// AuthenticationType is a required field
7662	AuthenticationType *string `type:"string" required:"true" enum:"AuthenticationType"`
7663
7664	// The email address of the user.
7665	//
7666	// Users' email addresses are case-sensitive.
7667	//
7668	// UserName is a required field
7669	UserName *string `min:"1" type:"string" required:"true" sensitive:"true"`
7670}
7671
7672// String returns the string representation
7673func (s DisableUserInput) String() string {
7674	return awsutil.Prettify(s)
7675}
7676
7677// GoString returns the string representation
7678func (s DisableUserInput) GoString() string {
7679	return s.String()
7680}
7681
7682// Validate inspects the fields of the type to determine if they are valid.
7683func (s *DisableUserInput) Validate() error {
7684	invalidParams := request.ErrInvalidParams{Context: "DisableUserInput"}
7685	if s.AuthenticationType == nil {
7686		invalidParams.Add(request.NewErrParamRequired("AuthenticationType"))
7687	}
7688	if s.UserName == nil {
7689		invalidParams.Add(request.NewErrParamRequired("UserName"))
7690	}
7691	if s.UserName != nil && len(*s.UserName) < 1 {
7692		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
7693	}
7694
7695	if invalidParams.Len() > 0 {
7696		return invalidParams
7697	}
7698	return nil
7699}
7700
7701// SetAuthenticationType sets the AuthenticationType field's value.
7702func (s *DisableUserInput) SetAuthenticationType(v string) *DisableUserInput {
7703	s.AuthenticationType = &v
7704	return s
7705}
7706
7707// SetUserName sets the UserName field's value.
7708func (s *DisableUserInput) SetUserName(v string) *DisableUserInput {
7709	s.UserName = &v
7710	return s
7711}
7712
7713type DisableUserOutput struct {
7714	_ struct{} `type:"structure"`
7715}
7716
7717// String returns the string representation
7718func (s DisableUserOutput) String() string {
7719	return awsutil.Prettify(s)
7720}
7721
7722// GoString returns the string representation
7723func (s DisableUserOutput) GoString() string {
7724	return s.String()
7725}
7726
7727type DisassociateFleetInput struct {
7728	_ struct{} `type:"structure"`
7729
7730	// The name of the fleet.
7731	//
7732	// FleetName is a required field
7733	FleetName *string `min:"1" type:"string" required:"true"`
7734
7735	// The name of the stack.
7736	//
7737	// StackName is a required field
7738	StackName *string `min:"1" type:"string" required:"true"`
7739}
7740
7741// String returns the string representation
7742func (s DisassociateFleetInput) String() string {
7743	return awsutil.Prettify(s)
7744}
7745
7746// GoString returns the string representation
7747func (s DisassociateFleetInput) GoString() string {
7748	return s.String()
7749}
7750
7751// Validate inspects the fields of the type to determine if they are valid.
7752func (s *DisassociateFleetInput) Validate() error {
7753	invalidParams := request.ErrInvalidParams{Context: "DisassociateFleetInput"}
7754	if s.FleetName == nil {
7755		invalidParams.Add(request.NewErrParamRequired("FleetName"))
7756	}
7757	if s.FleetName != nil && len(*s.FleetName) < 1 {
7758		invalidParams.Add(request.NewErrParamMinLen("FleetName", 1))
7759	}
7760	if s.StackName == nil {
7761		invalidParams.Add(request.NewErrParamRequired("StackName"))
7762	}
7763	if s.StackName != nil && len(*s.StackName) < 1 {
7764		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
7765	}
7766
7767	if invalidParams.Len() > 0 {
7768		return invalidParams
7769	}
7770	return nil
7771}
7772
7773// SetFleetName sets the FleetName field's value.
7774func (s *DisassociateFleetInput) SetFleetName(v string) *DisassociateFleetInput {
7775	s.FleetName = &v
7776	return s
7777}
7778
7779// SetStackName sets the StackName field's value.
7780func (s *DisassociateFleetInput) SetStackName(v string) *DisassociateFleetInput {
7781	s.StackName = &v
7782	return s
7783}
7784
7785type DisassociateFleetOutput struct {
7786	_ struct{} `type:"structure"`
7787}
7788
7789// String returns the string representation
7790func (s DisassociateFleetOutput) String() string {
7791	return awsutil.Prettify(s)
7792}
7793
7794// GoString returns the string representation
7795func (s DisassociateFleetOutput) GoString() string {
7796	return s.String()
7797}
7798
7799// Describes the configuration information required to join fleets and image
7800// builders to Microsoft Active Directory domains.
7801type DomainJoinInfo struct {
7802	_ struct{} `type:"structure"`
7803
7804	// The fully qualified name of the directory (for example, corp.example.com).
7805	DirectoryName *string `type:"string"`
7806
7807	// The distinguished name of the organizational unit for computer accounts.
7808	OrganizationalUnitDistinguishedName *string `type:"string"`
7809}
7810
7811// String returns the string representation
7812func (s DomainJoinInfo) String() string {
7813	return awsutil.Prettify(s)
7814}
7815
7816// GoString returns the string representation
7817func (s DomainJoinInfo) GoString() string {
7818	return s.String()
7819}
7820
7821// SetDirectoryName sets the DirectoryName field's value.
7822func (s *DomainJoinInfo) SetDirectoryName(v string) *DomainJoinInfo {
7823	s.DirectoryName = &v
7824	return s
7825}
7826
7827// SetOrganizationalUnitDistinguishedName sets the OrganizationalUnitDistinguishedName field's value.
7828func (s *DomainJoinInfo) SetOrganizationalUnitDistinguishedName(v string) *DomainJoinInfo {
7829	s.OrganizationalUnitDistinguishedName = &v
7830	return s
7831}
7832
7833type EnableUserInput struct {
7834	_ struct{} `type:"structure"`
7835
7836	// The authentication type for the user. You must specify USERPOOL.
7837	//
7838	// AuthenticationType is a required field
7839	AuthenticationType *string `type:"string" required:"true" enum:"AuthenticationType"`
7840
7841	// The email address of the user.
7842	//
7843	// Users' email addresses are case-sensitive. During login, if they specify
7844	// an email address that doesn't use the same capitalization as the email address
7845	// specified when their user pool account was created, a "user does not exist"
7846	// error message displays.
7847	//
7848	// UserName is a required field
7849	UserName *string `min:"1" type:"string" required:"true" sensitive:"true"`
7850}
7851
7852// String returns the string representation
7853func (s EnableUserInput) String() string {
7854	return awsutil.Prettify(s)
7855}
7856
7857// GoString returns the string representation
7858func (s EnableUserInput) GoString() string {
7859	return s.String()
7860}
7861
7862// Validate inspects the fields of the type to determine if they are valid.
7863func (s *EnableUserInput) Validate() error {
7864	invalidParams := request.ErrInvalidParams{Context: "EnableUserInput"}
7865	if s.AuthenticationType == nil {
7866		invalidParams.Add(request.NewErrParamRequired("AuthenticationType"))
7867	}
7868	if s.UserName == nil {
7869		invalidParams.Add(request.NewErrParamRequired("UserName"))
7870	}
7871	if s.UserName != nil && len(*s.UserName) < 1 {
7872		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
7873	}
7874
7875	if invalidParams.Len() > 0 {
7876		return invalidParams
7877	}
7878	return nil
7879}
7880
7881// SetAuthenticationType sets the AuthenticationType field's value.
7882func (s *EnableUserInput) SetAuthenticationType(v string) *EnableUserInput {
7883	s.AuthenticationType = &v
7884	return s
7885}
7886
7887// SetUserName sets the UserName field's value.
7888func (s *EnableUserInput) SetUserName(v string) *EnableUserInput {
7889	s.UserName = &v
7890	return s
7891}
7892
7893type EnableUserOutput struct {
7894	_ struct{} `type:"structure"`
7895}
7896
7897// String returns the string representation
7898func (s EnableUserOutput) String() string {
7899	return awsutil.Prettify(s)
7900}
7901
7902// GoString returns the string representation
7903func (s EnableUserOutput) GoString() string {
7904	return s.String()
7905}
7906
7907type ExpireSessionInput struct {
7908	_ struct{} `type:"structure"`
7909
7910	// The identifier of the streaming session.
7911	//
7912	// SessionId is a required field
7913	SessionId *string `min:"1" type:"string" required:"true"`
7914}
7915
7916// String returns the string representation
7917func (s ExpireSessionInput) String() string {
7918	return awsutil.Prettify(s)
7919}
7920
7921// GoString returns the string representation
7922func (s ExpireSessionInput) GoString() string {
7923	return s.String()
7924}
7925
7926// Validate inspects the fields of the type to determine if they are valid.
7927func (s *ExpireSessionInput) Validate() error {
7928	invalidParams := request.ErrInvalidParams{Context: "ExpireSessionInput"}
7929	if s.SessionId == nil {
7930		invalidParams.Add(request.NewErrParamRequired("SessionId"))
7931	}
7932	if s.SessionId != nil && len(*s.SessionId) < 1 {
7933		invalidParams.Add(request.NewErrParamMinLen("SessionId", 1))
7934	}
7935
7936	if invalidParams.Len() > 0 {
7937		return invalidParams
7938	}
7939	return nil
7940}
7941
7942// SetSessionId sets the SessionId field's value.
7943func (s *ExpireSessionInput) SetSessionId(v string) *ExpireSessionInput {
7944	s.SessionId = &v
7945	return s
7946}
7947
7948type ExpireSessionOutput struct {
7949	_ struct{} `type:"structure"`
7950}
7951
7952// String returns the string representation
7953func (s ExpireSessionOutput) String() string {
7954	return awsutil.Prettify(s)
7955}
7956
7957// GoString returns the string representation
7958func (s ExpireSessionOutput) GoString() string {
7959	return s.String()
7960}
7961
7962// Describes a fleet.
7963type Fleet struct {
7964	_ struct{} `type:"structure"`
7965
7966	// The Amazon Resource Name (ARN) for the fleet.
7967	//
7968	// Arn is a required field
7969	Arn *string `type:"string" required:"true"`
7970
7971	// The capacity status for the fleet.
7972	//
7973	// ComputeCapacityStatus is a required field
7974	ComputeCapacityStatus *ComputeCapacityStatus `type:"structure" required:"true"`
7975
7976	// The time the fleet was created.
7977	CreatedTime *time.Time `type:"timestamp"`
7978
7979	// The description to display.
7980	Description *string `min:"1" type:"string"`
7981
7982	// The amount of time that a streaming session remains active after users disconnect.
7983	// If they try to reconnect to the streaming session after a disconnection or
7984	// network interruption within this time interval, they are connected to their
7985	// previous session. Otherwise, they are connected to a new session with a new
7986	// streaming instance.
7987	//
7988	// Specify a value between 60 and 360000.
7989	DisconnectTimeoutInSeconds *int64 `type:"integer"`
7990
7991	// The fleet name to display.
7992	DisplayName *string `min:"1" type:"string"`
7993
7994	// The name of the directory and organizational unit (OU) to use to join the
7995	// fleet to a Microsoft Active Directory domain.
7996	DomainJoinInfo *DomainJoinInfo `type:"structure"`
7997
7998	// Indicates whether default internet access is enabled for the fleet.
7999	EnableDefaultInternetAccess *bool `type:"boolean"`
8000
8001	// The fleet errors.
8002	FleetErrors []*FleetError `type:"list"`
8003
8004	// The fleet type.
8005	//
8006	// ALWAYS_ON
8007	//
8008	// Provides users with instant-on access to their apps. You are charged for
8009	// all running instances in your fleet, even if no users are streaming apps.
8010	//
8011	// ON_DEMAND
8012	//
8013	// Provide users with access to applications after they connect, which takes
8014	// one to two minutes. You are charged for instance streaming when users are
8015	// connected and a small hourly fee for instances that are not streaming apps.
8016	FleetType *string `type:"string" enum:"FleetType"`
8017
8018	// The ARN of the IAM role that is applied to the fleet. To assume a role, the
8019	// fleet instance calls the AWS Security Token Service (STS) AssumeRole API
8020	// operation and passes the ARN of the role to use. The operation creates a
8021	// new session with temporary credentials. AppStream 2.0 retrieves the temporary
8022	// credentials and creates the AppStream_Machine_Role credential profile on
8023	// the instance.
8024	//
8025	// For more information, see Using an IAM Role to Grant Permissions to Applications
8026	// and Scripts Running on AppStream 2.0 Streaming Instances (https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html)
8027	// in the Amazon AppStream 2.0 Administration Guide.
8028	IamRoleArn *string `type:"string"`
8029
8030	// The amount of time that users can be idle (inactive) before they are disconnected
8031	// from their streaming session and the DisconnectTimeoutInSeconds time interval
8032	// begins. Users are notified before they are disconnected due to inactivity.
8033	// If users try to reconnect to the streaming session before the time interval
8034	// specified in DisconnectTimeoutInSeconds elapses, they are connected to their
8035	// previous session. Users are considered idle when they stop providing keyboard
8036	// or mouse input during their streaming session. File uploads and downloads,
8037	// audio in, audio out, and pixels changing do not qualify as user activity.
8038	// If users continue to be idle after the time interval in IdleDisconnectTimeoutInSeconds
8039	// elapses, they are disconnected.
8040	//
8041	// To prevent users from being disconnected due to inactivity, specify a value
8042	// of 0. Otherwise, specify a value between 60 and 3600. The default value is
8043	// 0.
8044	//
8045	// If you enable this feature, we recommend that you specify a value that corresponds
8046	// exactly to a whole number of minutes (for example, 60, 120, and 180). If
8047	// you don't do this, the value is rounded to the nearest minute. For example,
8048	// if you specify a value of 70, users are disconnected after 1 minute of inactivity.
8049	// If you specify a value that is at the midpoint between two different minutes,
8050	// the value is rounded up. For example, if you specify a value of 90, users
8051	// are disconnected after 2 minutes of inactivity.
8052	IdleDisconnectTimeoutInSeconds *int64 `type:"integer"`
8053
8054	// The ARN for the public, private, or shared image.
8055	ImageArn *string `type:"string"`
8056
8057	// The name of the image used to create the fleet.
8058	ImageName *string `min:"1" type:"string"`
8059
8060	// The instance type to use when launching fleet instances. The following instance
8061	// types are available:
8062	//
8063	//    * stream.standard.medium
8064	//
8065	//    * stream.standard.large
8066	//
8067	//    * stream.compute.large
8068	//
8069	//    * stream.compute.xlarge
8070	//
8071	//    * stream.compute.2xlarge
8072	//
8073	//    * stream.compute.4xlarge
8074	//
8075	//    * stream.compute.8xlarge
8076	//
8077	//    * stream.memory.large
8078	//
8079	//    * stream.memory.xlarge
8080	//
8081	//    * stream.memory.2xlarge
8082	//
8083	//    * stream.memory.4xlarge
8084	//
8085	//    * stream.memory.8xlarge
8086	//
8087	//    * stream.graphics-design.large
8088	//
8089	//    * stream.graphics-design.xlarge
8090	//
8091	//    * stream.graphics-design.2xlarge
8092	//
8093	//    * stream.graphics-design.4xlarge
8094	//
8095	//    * stream.graphics-desktop.2xlarge
8096	//
8097	//    * stream.graphics-pro.4xlarge
8098	//
8099	//    * stream.graphics-pro.8xlarge
8100	//
8101	//    * stream.graphics-pro.16xlarge
8102	//
8103	// InstanceType is a required field
8104	InstanceType *string `min:"1" type:"string" required:"true"`
8105
8106	// The maximum amount of time that a streaming session can remain active, in
8107	// seconds. If users are still connected to a streaming instance five minutes
8108	// before this limit is reached, they are prompted to save any open documents
8109	// before being disconnected. After this time elapses, the instance is terminated
8110	// and replaced by a new instance.
8111	//
8112	// Specify a value between 600 and 360000.
8113	MaxUserDurationInSeconds *int64 `type:"integer"`
8114
8115	// The name of the fleet.
8116	//
8117	// Name is a required field
8118	Name *string `min:"1" type:"string" required:"true"`
8119
8120	// The current state for the fleet.
8121	//
8122	// State is a required field
8123	State *string `type:"string" required:"true" enum:"FleetState"`
8124
8125	// The VPC configuration for the fleet.
8126	VpcConfig *VpcConfig `type:"structure"`
8127}
8128
8129// String returns the string representation
8130func (s Fleet) String() string {
8131	return awsutil.Prettify(s)
8132}
8133
8134// GoString returns the string representation
8135func (s Fleet) GoString() string {
8136	return s.String()
8137}
8138
8139// SetArn sets the Arn field's value.
8140func (s *Fleet) SetArn(v string) *Fleet {
8141	s.Arn = &v
8142	return s
8143}
8144
8145// SetComputeCapacityStatus sets the ComputeCapacityStatus field's value.
8146func (s *Fleet) SetComputeCapacityStatus(v *ComputeCapacityStatus) *Fleet {
8147	s.ComputeCapacityStatus = v
8148	return s
8149}
8150
8151// SetCreatedTime sets the CreatedTime field's value.
8152func (s *Fleet) SetCreatedTime(v time.Time) *Fleet {
8153	s.CreatedTime = &v
8154	return s
8155}
8156
8157// SetDescription sets the Description field's value.
8158func (s *Fleet) SetDescription(v string) *Fleet {
8159	s.Description = &v
8160	return s
8161}
8162
8163// SetDisconnectTimeoutInSeconds sets the DisconnectTimeoutInSeconds field's value.
8164func (s *Fleet) SetDisconnectTimeoutInSeconds(v int64) *Fleet {
8165	s.DisconnectTimeoutInSeconds = &v
8166	return s
8167}
8168
8169// SetDisplayName sets the DisplayName field's value.
8170func (s *Fleet) SetDisplayName(v string) *Fleet {
8171	s.DisplayName = &v
8172	return s
8173}
8174
8175// SetDomainJoinInfo sets the DomainJoinInfo field's value.
8176func (s *Fleet) SetDomainJoinInfo(v *DomainJoinInfo) *Fleet {
8177	s.DomainJoinInfo = v
8178	return s
8179}
8180
8181// SetEnableDefaultInternetAccess sets the EnableDefaultInternetAccess field's value.
8182func (s *Fleet) SetEnableDefaultInternetAccess(v bool) *Fleet {
8183	s.EnableDefaultInternetAccess = &v
8184	return s
8185}
8186
8187// SetFleetErrors sets the FleetErrors field's value.
8188func (s *Fleet) SetFleetErrors(v []*FleetError) *Fleet {
8189	s.FleetErrors = v
8190	return s
8191}
8192
8193// SetFleetType sets the FleetType field's value.
8194func (s *Fleet) SetFleetType(v string) *Fleet {
8195	s.FleetType = &v
8196	return s
8197}
8198
8199// SetIamRoleArn sets the IamRoleArn field's value.
8200func (s *Fleet) SetIamRoleArn(v string) *Fleet {
8201	s.IamRoleArn = &v
8202	return s
8203}
8204
8205// SetIdleDisconnectTimeoutInSeconds sets the IdleDisconnectTimeoutInSeconds field's value.
8206func (s *Fleet) SetIdleDisconnectTimeoutInSeconds(v int64) *Fleet {
8207	s.IdleDisconnectTimeoutInSeconds = &v
8208	return s
8209}
8210
8211// SetImageArn sets the ImageArn field's value.
8212func (s *Fleet) SetImageArn(v string) *Fleet {
8213	s.ImageArn = &v
8214	return s
8215}
8216
8217// SetImageName sets the ImageName field's value.
8218func (s *Fleet) SetImageName(v string) *Fleet {
8219	s.ImageName = &v
8220	return s
8221}
8222
8223// SetInstanceType sets the InstanceType field's value.
8224func (s *Fleet) SetInstanceType(v string) *Fleet {
8225	s.InstanceType = &v
8226	return s
8227}
8228
8229// SetMaxUserDurationInSeconds sets the MaxUserDurationInSeconds field's value.
8230func (s *Fleet) SetMaxUserDurationInSeconds(v int64) *Fleet {
8231	s.MaxUserDurationInSeconds = &v
8232	return s
8233}
8234
8235// SetName sets the Name field's value.
8236func (s *Fleet) SetName(v string) *Fleet {
8237	s.Name = &v
8238	return s
8239}
8240
8241// SetState sets the State field's value.
8242func (s *Fleet) SetState(v string) *Fleet {
8243	s.State = &v
8244	return s
8245}
8246
8247// SetVpcConfig sets the VpcConfig field's value.
8248func (s *Fleet) SetVpcConfig(v *VpcConfig) *Fleet {
8249	s.VpcConfig = v
8250	return s
8251}
8252
8253// Describes a fleet error.
8254type FleetError struct {
8255	_ struct{} `type:"structure"`
8256
8257	// The error code.
8258	ErrorCode *string `type:"string" enum:"FleetErrorCode"`
8259
8260	// The error message.
8261	ErrorMessage *string `min:"1" type:"string"`
8262}
8263
8264// String returns the string representation
8265func (s FleetError) String() string {
8266	return awsutil.Prettify(s)
8267}
8268
8269// GoString returns the string representation
8270func (s FleetError) GoString() string {
8271	return s.String()
8272}
8273
8274// SetErrorCode sets the ErrorCode field's value.
8275func (s *FleetError) SetErrorCode(v string) *FleetError {
8276	s.ErrorCode = &v
8277	return s
8278}
8279
8280// SetErrorMessage sets the ErrorMessage field's value.
8281func (s *FleetError) SetErrorMessage(v string) *FleetError {
8282	s.ErrorMessage = &v
8283	return s
8284}
8285
8286// Describes an image.
8287type Image struct {
8288	_ struct{} `type:"structure"`
8289
8290	// The applications associated with the image.
8291	Applications []*Application `type:"list"`
8292
8293	// The version of the AppStream 2.0 agent to use for instances that are launched
8294	// from this image.
8295	AppstreamAgentVersion *string `min:"1" type:"string"`
8296
8297	// The ARN of the image.
8298	Arn *string `type:"string"`
8299
8300	// The ARN of the image from which this image was created.
8301	BaseImageArn *string `type:"string"`
8302
8303	// The time the image was created.
8304	CreatedTime *time.Time `type:"timestamp"`
8305
8306	// The description to display.
8307	Description *string `min:"1" type:"string"`
8308
8309	// The image name to display.
8310	DisplayName *string `min:"1" type:"string"`
8311
8312	// The name of the image builder that was used to create the private image.
8313	// If the image is shared, this value is null.
8314	ImageBuilderName *string `min:"1" type:"string"`
8315
8316	// Indicates whether an image builder can be launched from this image.
8317	ImageBuilderSupported *bool `type:"boolean"`
8318
8319	// The permissions to provide to the destination AWS account for the specified
8320	// image.
8321	ImagePermissions *ImagePermissions `type:"structure"`
8322
8323	// The name of the image.
8324	//
8325	// Name is a required field
8326	Name *string `min:"1" type:"string" required:"true"`
8327
8328	// The operating system platform of the image.
8329	Platform *string `type:"string" enum:"PlatformType"`
8330
8331	// The release date of the public base image. For private images, this date
8332	// is the release date of the base image from which the image was created.
8333	PublicBaseImageReleasedDate *time.Time `type:"timestamp"`
8334
8335	// The image starts in the PENDING state. If image creation succeeds, the state
8336	// is AVAILABLE. If image creation fails, the state is FAILED.
8337	State *string `type:"string" enum:"ImageState"`
8338
8339	// The reason why the last state change occurred.
8340	StateChangeReason *ImageStateChangeReason `type:"structure"`
8341
8342	// Indicates whether the image is public or private.
8343	Visibility *string `type:"string" enum:"VisibilityType"`
8344}
8345
8346// String returns the string representation
8347func (s Image) String() string {
8348	return awsutil.Prettify(s)
8349}
8350
8351// GoString returns the string representation
8352func (s Image) GoString() string {
8353	return s.String()
8354}
8355
8356// SetApplications sets the Applications field's value.
8357func (s *Image) SetApplications(v []*Application) *Image {
8358	s.Applications = v
8359	return s
8360}
8361
8362// SetAppstreamAgentVersion sets the AppstreamAgentVersion field's value.
8363func (s *Image) SetAppstreamAgentVersion(v string) *Image {
8364	s.AppstreamAgentVersion = &v
8365	return s
8366}
8367
8368// SetArn sets the Arn field's value.
8369func (s *Image) SetArn(v string) *Image {
8370	s.Arn = &v
8371	return s
8372}
8373
8374// SetBaseImageArn sets the BaseImageArn field's value.
8375func (s *Image) SetBaseImageArn(v string) *Image {
8376	s.BaseImageArn = &v
8377	return s
8378}
8379
8380// SetCreatedTime sets the CreatedTime field's value.
8381func (s *Image) SetCreatedTime(v time.Time) *Image {
8382	s.CreatedTime = &v
8383	return s
8384}
8385
8386// SetDescription sets the Description field's value.
8387func (s *Image) SetDescription(v string) *Image {
8388	s.Description = &v
8389	return s
8390}
8391
8392// SetDisplayName sets the DisplayName field's value.
8393func (s *Image) SetDisplayName(v string) *Image {
8394	s.DisplayName = &v
8395	return s
8396}
8397
8398// SetImageBuilderName sets the ImageBuilderName field's value.
8399func (s *Image) SetImageBuilderName(v string) *Image {
8400	s.ImageBuilderName = &v
8401	return s
8402}
8403
8404// SetImageBuilderSupported sets the ImageBuilderSupported field's value.
8405func (s *Image) SetImageBuilderSupported(v bool) *Image {
8406	s.ImageBuilderSupported = &v
8407	return s
8408}
8409
8410// SetImagePermissions sets the ImagePermissions field's value.
8411func (s *Image) SetImagePermissions(v *ImagePermissions) *Image {
8412	s.ImagePermissions = v
8413	return s
8414}
8415
8416// SetName sets the Name field's value.
8417func (s *Image) SetName(v string) *Image {
8418	s.Name = &v
8419	return s
8420}
8421
8422// SetPlatform sets the Platform field's value.
8423func (s *Image) SetPlatform(v string) *Image {
8424	s.Platform = &v
8425	return s
8426}
8427
8428// SetPublicBaseImageReleasedDate sets the PublicBaseImageReleasedDate field's value.
8429func (s *Image) SetPublicBaseImageReleasedDate(v time.Time) *Image {
8430	s.PublicBaseImageReleasedDate = &v
8431	return s
8432}
8433
8434// SetState sets the State field's value.
8435func (s *Image) SetState(v string) *Image {
8436	s.State = &v
8437	return s
8438}
8439
8440// SetStateChangeReason sets the StateChangeReason field's value.
8441func (s *Image) SetStateChangeReason(v *ImageStateChangeReason) *Image {
8442	s.StateChangeReason = v
8443	return s
8444}
8445
8446// SetVisibility sets the Visibility field's value.
8447func (s *Image) SetVisibility(v string) *Image {
8448	s.Visibility = &v
8449	return s
8450}
8451
8452// Describes a virtual machine that is used to create an image.
8453type ImageBuilder struct {
8454	_ struct{} `type:"structure"`
8455
8456	// The list of virtual private cloud (VPC) interface endpoint objects. Administrators
8457	// can connect to the image builder only through the specified endpoints.
8458	AccessEndpoints []*AccessEndpoint `min:"1" type:"list"`
8459
8460	// The version of the AppStream 2.0 agent that is currently being used by the
8461	// image builder.
8462	AppstreamAgentVersion *string `min:"1" type:"string"`
8463
8464	// The ARN for the image builder.
8465	Arn *string `type:"string"`
8466
8467	// The time stamp when the image builder was created.
8468	CreatedTime *time.Time `type:"timestamp"`
8469
8470	// The description to display.
8471	Description *string `min:"1" type:"string"`
8472
8473	// The image builder name to display.
8474	DisplayName *string `min:"1" type:"string"`
8475
8476	// The name of the directory and organizational unit (OU) to use to join the
8477	// image builder to a Microsoft Active Directory domain.
8478	DomainJoinInfo *DomainJoinInfo `type:"structure"`
8479
8480	// Enables or disables default internet access for the image builder.
8481	EnableDefaultInternetAccess *bool `type:"boolean"`
8482
8483	// The ARN of the IAM role that is applied to the image builder. To assume a
8484	// role, the image builder calls the AWS Security Token Service (STS) AssumeRole
8485	// API operation and passes the ARN of the role to use. The operation creates
8486	// a new session with temporary credentials. AppStream 2.0 retrieves the temporary
8487	// credentials and creates the AppStream_Machine_Role credential profile on
8488	// the instance.
8489	//
8490	// For more information, see Using an IAM Role to Grant Permissions to Applications
8491	// and Scripts Running on AppStream 2.0 Streaming Instances (https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html)
8492	// in the Amazon AppStream 2.0 Administration Guide.
8493	IamRoleArn *string `type:"string"`
8494
8495	// The ARN of the image from which this builder was created.
8496	ImageArn *string `type:"string"`
8497
8498	// The image builder errors.
8499	ImageBuilderErrors []*ResourceError `type:"list"`
8500
8501	// The instance type for the image builder. The following instance types are
8502	// available:
8503	//
8504	//    * stream.standard.medium
8505	//
8506	//    * stream.standard.large
8507	//
8508	//    * stream.compute.large
8509	//
8510	//    * stream.compute.xlarge
8511	//
8512	//    * stream.compute.2xlarge
8513	//
8514	//    * stream.compute.4xlarge
8515	//
8516	//    * stream.compute.8xlarge
8517	//
8518	//    * stream.memory.large
8519	//
8520	//    * stream.memory.xlarge
8521	//
8522	//    * stream.memory.2xlarge
8523	//
8524	//    * stream.memory.4xlarge
8525	//
8526	//    * stream.memory.8xlarge
8527	//
8528	//    * stream.graphics-design.large
8529	//
8530	//    * stream.graphics-design.xlarge
8531	//
8532	//    * stream.graphics-design.2xlarge
8533	//
8534	//    * stream.graphics-design.4xlarge
8535	//
8536	//    * stream.graphics-desktop.2xlarge
8537	//
8538	//    * stream.graphics-pro.4xlarge
8539	//
8540	//    * stream.graphics-pro.8xlarge
8541	//
8542	//    * stream.graphics-pro.16xlarge
8543	InstanceType *string `min:"1" type:"string"`
8544
8545	// The name of the image builder.
8546	//
8547	// Name is a required field
8548	Name *string `min:"1" type:"string" required:"true"`
8549
8550	// Describes the network details of the fleet or image builder instance.
8551	NetworkAccessConfiguration *NetworkAccessConfiguration `type:"structure"`
8552
8553	// The operating system platform of the image builder.
8554	Platform *string `type:"string" enum:"PlatformType"`
8555
8556	// The state of the image builder.
8557	State *string `type:"string" enum:"ImageBuilderState"`
8558
8559	// The reason why the last state change occurred.
8560	StateChangeReason *ImageBuilderStateChangeReason `type:"structure"`
8561
8562	// The VPC configuration of the image builder.
8563	VpcConfig *VpcConfig `type:"structure"`
8564}
8565
8566// String returns the string representation
8567func (s ImageBuilder) String() string {
8568	return awsutil.Prettify(s)
8569}
8570
8571// GoString returns the string representation
8572func (s ImageBuilder) GoString() string {
8573	return s.String()
8574}
8575
8576// SetAccessEndpoints sets the AccessEndpoints field's value.
8577func (s *ImageBuilder) SetAccessEndpoints(v []*AccessEndpoint) *ImageBuilder {
8578	s.AccessEndpoints = v
8579	return s
8580}
8581
8582// SetAppstreamAgentVersion sets the AppstreamAgentVersion field's value.
8583func (s *ImageBuilder) SetAppstreamAgentVersion(v string) *ImageBuilder {
8584	s.AppstreamAgentVersion = &v
8585	return s
8586}
8587
8588// SetArn sets the Arn field's value.
8589func (s *ImageBuilder) SetArn(v string) *ImageBuilder {
8590	s.Arn = &v
8591	return s
8592}
8593
8594// SetCreatedTime sets the CreatedTime field's value.
8595func (s *ImageBuilder) SetCreatedTime(v time.Time) *ImageBuilder {
8596	s.CreatedTime = &v
8597	return s
8598}
8599
8600// SetDescription sets the Description field's value.
8601func (s *ImageBuilder) SetDescription(v string) *ImageBuilder {
8602	s.Description = &v
8603	return s
8604}
8605
8606// SetDisplayName sets the DisplayName field's value.
8607func (s *ImageBuilder) SetDisplayName(v string) *ImageBuilder {
8608	s.DisplayName = &v
8609	return s
8610}
8611
8612// SetDomainJoinInfo sets the DomainJoinInfo field's value.
8613func (s *ImageBuilder) SetDomainJoinInfo(v *DomainJoinInfo) *ImageBuilder {
8614	s.DomainJoinInfo = v
8615	return s
8616}
8617
8618// SetEnableDefaultInternetAccess sets the EnableDefaultInternetAccess field's value.
8619func (s *ImageBuilder) SetEnableDefaultInternetAccess(v bool) *ImageBuilder {
8620	s.EnableDefaultInternetAccess = &v
8621	return s
8622}
8623
8624// SetIamRoleArn sets the IamRoleArn field's value.
8625func (s *ImageBuilder) SetIamRoleArn(v string) *ImageBuilder {
8626	s.IamRoleArn = &v
8627	return s
8628}
8629
8630// SetImageArn sets the ImageArn field's value.
8631func (s *ImageBuilder) SetImageArn(v string) *ImageBuilder {
8632	s.ImageArn = &v
8633	return s
8634}
8635
8636// SetImageBuilderErrors sets the ImageBuilderErrors field's value.
8637func (s *ImageBuilder) SetImageBuilderErrors(v []*ResourceError) *ImageBuilder {
8638	s.ImageBuilderErrors = v
8639	return s
8640}
8641
8642// SetInstanceType sets the InstanceType field's value.
8643func (s *ImageBuilder) SetInstanceType(v string) *ImageBuilder {
8644	s.InstanceType = &v
8645	return s
8646}
8647
8648// SetName sets the Name field's value.
8649func (s *ImageBuilder) SetName(v string) *ImageBuilder {
8650	s.Name = &v
8651	return s
8652}
8653
8654// SetNetworkAccessConfiguration sets the NetworkAccessConfiguration field's value.
8655func (s *ImageBuilder) SetNetworkAccessConfiguration(v *NetworkAccessConfiguration) *ImageBuilder {
8656	s.NetworkAccessConfiguration = v
8657	return s
8658}
8659
8660// SetPlatform sets the Platform field's value.
8661func (s *ImageBuilder) SetPlatform(v string) *ImageBuilder {
8662	s.Platform = &v
8663	return s
8664}
8665
8666// SetState sets the State field's value.
8667func (s *ImageBuilder) SetState(v string) *ImageBuilder {
8668	s.State = &v
8669	return s
8670}
8671
8672// SetStateChangeReason sets the StateChangeReason field's value.
8673func (s *ImageBuilder) SetStateChangeReason(v *ImageBuilderStateChangeReason) *ImageBuilder {
8674	s.StateChangeReason = v
8675	return s
8676}
8677
8678// SetVpcConfig sets the VpcConfig field's value.
8679func (s *ImageBuilder) SetVpcConfig(v *VpcConfig) *ImageBuilder {
8680	s.VpcConfig = v
8681	return s
8682}
8683
8684// Describes the reason why the last image builder state change occurred.
8685type ImageBuilderStateChangeReason struct {
8686	_ struct{} `type:"structure"`
8687
8688	// The state change reason code.
8689	Code *string `type:"string" enum:"ImageBuilderStateChangeReasonCode"`
8690
8691	// The state change reason message.
8692	Message *string `min:"1" type:"string"`
8693}
8694
8695// String returns the string representation
8696func (s ImageBuilderStateChangeReason) String() string {
8697	return awsutil.Prettify(s)
8698}
8699
8700// GoString returns the string representation
8701func (s ImageBuilderStateChangeReason) GoString() string {
8702	return s.String()
8703}
8704
8705// SetCode sets the Code field's value.
8706func (s *ImageBuilderStateChangeReason) SetCode(v string) *ImageBuilderStateChangeReason {
8707	s.Code = &v
8708	return s
8709}
8710
8711// SetMessage sets the Message field's value.
8712func (s *ImageBuilderStateChangeReason) SetMessage(v string) *ImageBuilderStateChangeReason {
8713	s.Message = &v
8714	return s
8715}
8716
8717// Describes the permissions for an image.
8718type ImagePermissions struct {
8719	_ struct{} `type:"structure"`
8720
8721	// Indicates whether the image can be used for a fleet.
8722	AllowFleet *bool `locationName:"allowFleet" type:"boolean"`
8723
8724	// Indicates whether the image can be used for an image builder.
8725	AllowImageBuilder *bool `locationName:"allowImageBuilder" type:"boolean"`
8726}
8727
8728// String returns the string representation
8729func (s ImagePermissions) String() string {
8730	return awsutil.Prettify(s)
8731}
8732
8733// GoString returns the string representation
8734func (s ImagePermissions) GoString() string {
8735	return s.String()
8736}
8737
8738// SetAllowFleet sets the AllowFleet field's value.
8739func (s *ImagePermissions) SetAllowFleet(v bool) *ImagePermissions {
8740	s.AllowFleet = &v
8741	return s
8742}
8743
8744// SetAllowImageBuilder sets the AllowImageBuilder field's value.
8745func (s *ImagePermissions) SetAllowImageBuilder(v bool) *ImagePermissions {
8746	s.AllowImageBuilder = &v
8747	return s
8748}
8749
8750// Describes the reason why the last image state change occurred.
8751type ImageStateChangeReason struct {
8752	_ struct{} `type:"structure"`
8753
8754	// The state change reason code.
8755	Code *string `type:"string" enum:"ImageStateChangeReasonCode"`
8756
8757	// The state change reason message.
8758	Message *string `min:"1" type:"string"`
8759}
8760
8761// String returns the string representation
8762func (s ImageStateChangeReason) String() string {
8763	return awsutil.Prettify(s)
8764}
8765
8766// GoString returns the string representation
8767func (s ImageStateChangeReason) GoString() string {
8768	return s.String()
8769}
8770
8771// SetCode sets the Code field's value.
8772func (s *ImageStateChangeReason) SetCode(v string) *ImageStateChangeReason {
8773	s.Code = &v
8774	return s
8775}
8776
8777// SetMessage sets the Message field's value.
8778func (s *ImageStateChangeReason) SetMessage(v string) *ImageStateChangeReason {
8779	s.Message = &v
8780	return s
8781}
8782
8783// Describes the error that is returned when a usage report can't be generated.
8784type LastReportGenerationExecutionError struct {
8785	_ struct{} `type:"structure"`
8786
8787	// The error code for the error that is returned when a usage report can't be
8788	// generated.
8789	ErrorCode *string `type:"string" enum:"UsageReportExecutionErrorCode"`
8790
8791	// The error message for the error that is returned when a usage report can't
8792	// be generated.
8793	ErrorMessage *string `min:"1" type:"string"`
8794}
8795
8796// String returns the string representation
8797func (s LastReportGenerationExecutionError) String() string {
8798	return awsutil.Prettify(s)
8799}
8800
8801// GoString returns the string representation
8802func (s LastReportGenerationExecutionError) GoString() string {
8803	return s.String()
8804}
8805
8806// SetErrorCode sets the ErrorCode field's value.
8807func (s *LastReportGenerationExecutionError) SetErrorCode(v string) *LastReportGenerationExecutionError {
8808	s.ErrorCode = &v
8809	return s
8810}
8811
8812// SetErrorMessage sets the ErrorMessage field's value.
8813func (s *LastReportGenerationExecutionError) SetErrorMessage(v string) *LastReportGenerationExecutionError {
8814	s.ErrorMessage = &v
8815	return s
8816}
8817
8818type ListAssociatedFleetsInput struct {
8819	_ struct{} `type:"structure"`
8820
8821	// The pagination token to use to retrieve the next page of results for this
8822	// operation. If this value is null, it retrieves the first page.
8823	NextToken *string `min:"1" type:"string"`
8824
8825	// The name of the stack.
8826	//
8827	// StackName is a required field
8828	StackName *string `min:"1" type:"string" required:"true"`
8829}
8830
8831// String returns the string representation
8832func (s ListAssociatedFleetsInput) String() string {
8833	return awsutil.Prettify(s)
8834}
8835
8836// GoString returns the string representation
8837func (s ListAssociatedFleetsInput) GoString() string {
8838	return s.String()
8839}
8840
8841// Validate inspects the fields of the type to determine if they are valid.
8842func (s *ListAssociatedFleetsInput) Validate() error {
8843	invalidParams := request.ErrInvalidParams{Context: "ListAssociatedFleetsInput"}
8844	if s.NextToken != nil && len(*s.NextToken) < 1 {
8845		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8846	}
8847	if s.StackName == nil {
8848		invalidParams.Add(request.NewErrParamRequired("StackName"))
8849	}
8850	if s.StackName != nil && len(*s.StackName) < 1 {
8851		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
8852	}
8853
8854	if invalidParams.Len() > 0 {
8855		return invalidParams
8856	}
8857	return nil
8858}
8859
8860// SetNextToken sets the NextToken field's value.
8861func (s *ListAssociatedFleetsInput) SetNextToken(v string) *ListAssociatedFleetsInput {
8862	s.NextToken = &v
8863	return s
8864}
8865
8866// SetStackName sets the StackName field's value.
8867func (s *ListAssociatedFleetsInput) SetStackName(v string) *ListAssociatedFleetsInput {
8868	s.StackName = &v
8869	return s
8870}
8871
8872type ListAssociatedFleetsOutput struct {
8873	_ struct{} `type:"structure"`
8874
8875	// The name of the fleet.
8876	Names []*string `type:"list"`
8877
8878	// The pagination token to use to retrieve the next page of results for this
8879	// operation. If there are no more pages, this value is null.
8880	NextToken *string `min:"1" type:"string"`
8881}
8882
8883// String returns the string representation
8884func (s ListAssociatedFleetsOutput) String() string {
8885	return awsutil.Prettify(s)
8886}
8887
8888// GoString returns the string representation
8889func (s ListAssociatedFleetsOutput) GoString() string {
8890	return s.String()
8891}
8892
8893// SetNames sets the Names field's value.
8894func (s *ListAssociatedFleetsOutput) SetNames(v []*string) *ListAssociatedFleetsOutput {
8895	s.Names = v
8896	return s
8897}
8898
8899// SetNextToken sets the NextToken field's value.
8900func (s *ListAssociatedFleetsOutput) SetNextToken(v string) *ListAssociatedFleetsOutput {
8901	s.NextToken = &v
8902	return s
8903}
8904
8905type ListAssociatedStacksInput struct {
8906	_ struct{} `type:"structure"`
8907
8908	// The name of the fleet.
8909	//
8910	// FleetName is a required field
8911	FleetName *string `min:"1" type:"string" required:"true"`
8912
8913	// The pagination token to use to retrieve the next page of results for this
8914	// operation. If this value is null, it retrieves the first page.
8915	NextToken *string `min:"1" type:"string"`
8916}
8917
8918// String returns the string representation
8919func (s ListAssociatedStacksInput) String() string {
8920	return awsutil.Prettify(s)
8921}
8922
8923// GoString returns the string representation
8924func (s ListAssociatedStacksInput) GoString() string {
8925	return s.String()
8926}
8927
8928// Validate inspects the fields of the type to determine if they are valid.
8929func (s *ListAssociatedStacksInput) Validate() error {
8930	invalidParams := request.ErrInvalidParams{Context: "ListAssociatedStacksInput"}
8931	if s.FleetName == nil {
8932		invalidParams.Add(request.NewErrParamRequired("FleetName"))
8933	}
8934	if s.FleetName != nil && len(*s.FleetName) < 1 {
8935		invalidParams.Add(request.NewErrParamMinLen("FleetName", 1))
8936	}
8937	if s.NextToken != nil && len(*s.NextToken) < 1 {
8938		invalidParams.Add(request.NewErrParamMinLen("NextToken", 1))
8939	}
8940
8941	if invalidParams.Len() > 0 {
8942		return invalidParams
8943	}
8944	return nil
8945}
8946
8947// SetFleetName sets the FleetName field's value.
8948func (s *ListAssociatedStacksInput) SetFleetName(v string) *ListAssociatedStacksInput {
8949	s.FleetName = &v
8950	return s
8951}
8952
8953// SetNextToken sets the NextToken field's value.
8954func (s *ListAssociatedStacksInput) SetNextToken(v string) *ListAssociatedStacksInput {
8955	s.NextToken = &v
8956	return s
8957}
8958
8959type ListAssociatedStacksOutput struct {
8960	_ struct{} `type:"structure"`
8961
8962	// The name of the stack.
8963	Names []*string `type:"list"`
8964
8965	// The pagination token to use to retrieve the next page of results for this
8966	// operation. If there are no more pages, this value is null.
8967	NextToken *string `min:"1" type:"string"`
8968}
8969
8970// String returns the string representation
8971func (s ListAssociatedStacksOutput) String() string {
8972	return awsutil.Prettify(s)
8973}
8974
8975// GoString returns the string representation
8976func (s ListAssociatedStacksOutput) GoString() string {
8977	return s.String()
8978}
8979
8980// SetNames sets the Names field's value.
8981func (s *ListAssociatedStacksOutput) SetNames(v []*string) *ListAssociatedStacksOutput {
8982	s.Names = v
8983	return s
8984}
8985
8986// SetNextToken sets the NextToken field's value.
8987func (s *ListAssociatedStacksOutput) SetNextToken(v string) *ListAssociatedStacksOutput {
8988	s.NextToken = &v
8989	return s
8990}
8991
8992type ListTagsForResourceInput struct {
8993	_ struct{} `type:"structure"`
8994
8995	// The Amazon Resource Name (ARN) of the resource.
8996	//
8997	// ResourceArn is a required field
8998	ResourceArn *string `type:"string" required:"true"`
8999}
9000
9001// String returns the string representation
9002func (s ListTagsForResourceInput) String() string {
9003	return awsutil.Prettify(s)
9004}
9005
9006// GoString returns the string representation
9007func (s ListTagsForResourceInput) GoString() string {
9008	return s.String()
9009}
9010
9011// Validate inspects the fields of the type to determine if they are valid.
9012func (s *ListTagsForResourceInput) Validate() error {
9013	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
9014	if s.ResourceArn == nil {
9015		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9016	}
9017
9018	if invalidParams.Len() > 0 {
9019		return invalidParams
9020	}
9021	return nil
9022}
9023
9024// SetResourceArn sets the ResourceArn field's value.
9025func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
9026	s.ResourceArn = &v
9027	return s
9028}
9029
9030type ListTagsForResourceOutput struct {
9031	_ struct{} `type:"structure"`
9032
9033	// The information about the tags.
9034	Tags map[string]*string `min:"1" type:"map"`
9035}
9036
9037// String returns the string representation
9038func (s ListTagsForResourceOutput) String() string {
9039	return awsutil.Prettify(s)
9040}
9041
9042// GoString returns the string representation
9043func (s ListTagsForResourceOutput) GoString() string {
9044	return s.String()
9045}
9046
9047// SetTags sets the Tags field's value.
9048func (s *ListTagsForResourceOutput) SetTags(v map[string]*string) *ListTagsForResourceOutput {
9049	s.Tags = v
9050	return s
9051}
9052
9053// Describes the network details of the fleet or image builder instance.
9054type NetworkAccessConfiguration struct {
9055	_ struct{} `type:"structure"`
9056
9057	// The resource identifier of the elastic network interface that is attached
9058	// to instances in your VPC. All network interfaces have the eni-xxxxxxxx resource
9059	// identifier.
9060	EniId *string `min:"1" type:"string"`
9061
9062	// The private IP address of the elastic network interface that is attached
9063	// to instances in your VPC.
9064	EniPrivateIpAddress *string `min:"1" type:"string"`
9065}
9066
9067// String returns the string representation
9068func (s NetworkAccessConfiguration) String() string {
9069	return awsutil.Prettify(s)
9070}
9071
9072// GoString returns the string representation
9073func (s NetworkAccessConfiguration) GoString() string {
9074	return s.String()
9075}
9076
9077// SetEniId sets the EniId field's value.
9078func (s *NetworkAccessConfiguration) SetEniId(v string) *NetworkAccessConfiguration {
9079	s.EniId = &v
9080	return s
9081}
9082
9083// SetEniPrivateIpAddress sets the EniPrivateIpAddress field's value.
9084func (s *NetworkAccessConfiguration) SetEniPrivateIpAddress(v string) *NetworkAccessConfiguration {
9085	s.EniPrivateIpAddress = &v
9086	return s
9087}
9088
9089// Describes a resource error.
9090type ResourceError struct {
9091	_ struct{} `type:"structure"`
9092
9093	// The error code.
9094	ErrorCode *string `type:"string" enum:"FleetErrorCode"`
9095
9096	// The error message.
9097	ErrorMessage *string `min:"1" type:"string"`
9098
9099	// The time the error occurred.
9100	ErrorTimestamp *time.Time `type:"timestamp"`
9101}
9102
9103// String returns the string representation
9104func (s ResourceError) String() string {
9105	return awsutil.Prettify(s)
9106}
9107
9108// GoString returns the string representation
9109func (s ResourceError) GoString() string {
9110	return s.String()
9111}
9112
9113// SetErrorCode sets the ErrorCode field's value.
9114func (s *ResourceError) SetErrorCode(v string) *ResourceError {
9115	s.ErrorCode = &v
9116	return s
9117}
9118
9119// SetErrorMessage sets the ErrorMessage field's value.
9120func (s *ResourceError) SetErrorMessage(v string) *ResourceError {
9121	s.ErrorMessage = &v
9122	return s
9123}
9124
9125// SetErrorTimestamp sets the ErrorTimestamp field's value.
9126func (s *ResourceError) SetErrorTimestamp(v time.Time) *ResourceError {
9127	s.ErrorTimestamp = &v
9128	return s
9129}
9130
9131// Describes the credentials for the service account used by the fleet or image
9132// builder to connect to the directory.
9133type ServiceAccountCredentials struct {
9134	_ struct{} `type:"structure"`
9135
9136	// The user name of the account. This account must have the following privileges:
9137	// create computer objects, join computers to the domain, and change/reset the
9138	// password on descendant computer objects for the organizational units specified.
9139	//
9140	// AccountName is a required field
9141	AccountName *string `min:"1" type:"string" required:"true" sensitive:"true"`
9142
9143	// The password for the account.
9144	//
9145	// AccountPassword is a required field
9146	AccountPassword *string `min:"1" type:"string" required:"true" sensitive:"true"`
9147}
9148
9149// String returns the string representation
9150func (s ServiceAccountCredentials) String() string {
9151	return awsutil.Prettify(s)
9152}
9153
9154// GoString returns the string representation
9155func (s ServiceAccountCredentials) GoString() string {
9156	return s.String()
9157}
9158
9159// Validate inspects the fields of the type to determine if they are valid.
9160func (s *ServiceAccountCredentials) Validate() error {
9161	invalidParams := request.ErrInvalidParams{Context: "ServiceAccountCredentials"}
9162	if s.AccountName == nil {
9163		invalidParams.Add(request.NewErrParamRequired("AccountName"))
9164	}
9165	if s.AccountName != nil && len(*s.AccountName) < 1 {
9166		invalidParams.Add(request.NewErrParamMinLen("AccountName", 1))
9167	}
9168	if s.AccountPassword == nil {
9169		invalidParams.Add(request.NewErrParamRequired("AccountPassword"))
9170	}
9171	if s.AccountPassword != nil && len(*s.AccountPassword) < 1 {
9172		invalidParams.Add(request.NewErrParamMinLen("AccountPassword", 1))
9173	}
9174
9175	if invalidParams.Len() > 0 {
9176		return invalidParams
9177	}
9178	return nil
9179}
9180
9181// SetAccountName sets the AccountName field's value.
9182func (s *ServiceAccountCredentials) SetAccountName(v string) *ServiceAccountCredentials {
9183	s.AccountName = &v
9184	return s
9185}
9186
9187// SetAccountPassword sets the AccountPassword field's value.
9188func (s *ServiceAccountCredentials) SetAccountPassword(v string) *ServiceAccountCredentials {
9189	s.AccountPassword = &v
9190	return s
9191}
9192
9193// Describes a streaming session.
9194type Session struct {
9195	_ struct{} `type:"structure"`
9196
9197	// The authentication method. The user is authenticated using a streaming URL
9198	// (API) or SAML 2.0 federation (SAML).
9199	AuthenticationType *string `type:"string" enum:"AuthenticationType"`
9200
9201	// Specifies whether a user is connected to the streaming session.
9202	ConnectionState *string `type:"string" enum:"SessionConnectionState"`
9203
9204	// The name of the fleet for the streaming session.
9205	//
9206	// FleetName is a required field
9207	FleetName *string `min:"1" type:"string" required:"true"`
9208
9209	// The identifier of the streaming session.
9210	//
9211	// Id is a required field
9212	Id *string `min:"1" type:"string" required:"true"`
9213
9214	// The time when the streaming session is set to expire. This time is based
9215	// on the MaxUserDurationinSeconds value, which determines the maximum length
9216	// of time that a streaming session can run. A streaming session might end earlier
9217	// than the time specified in SessionMaxExpirationTime, when the DisconnectTimeOutInSeconds
9218	// elapses or the user chooses to end his or her session. If the DisconnectTimeOutInSeconds
9219	// elapses, or the user chooses to end his or her session, the streaming instance
9220	// is terminated and the streaming session ends.
9221	MaxExpirationTime *time.Time `type:"timestamp"`
9222
9223	// The network details for the streaming session.
9224	NetworkAccessConfiguration *NetworkAccessConfiguration `type:"structure"`
9225
9226	// The name of the stack for the streaming session.
9227	//
9228	// StackName is a required field
9229	StackName *string `min:"1" type:"string" required:"true"`
9230
9231	// The time when a streaming instance is dedicated for the user.
9232	StartTime *time.Time `type:"timestamp"`
9233
9234	// The current state of the streaming session.
9235	//
9236	// State is a required field
9237	State *string `type:"string" required:"true" enum:"SessionState"`
9238
9239	// The identifier of the user for whom the session was created.
9240	//
9241	// UserId is a required field
9242	UserId *string `min:"2" type:"string" required:"true"`
9243}
9244
9245// String returns the string representation
9246func (s Session) String() string {
9247	return awsutil.Prettify(s)
9248}
9249
9250// GoString returns the string representation
9251func (s Session) GoString() string {
9252	return s.String()
9253}
9254
9255// SetAuthenticationType sets the AuthenticationType field's value.
9256func (s *Session) SetAuthenticationType(v string) *Session {
9257	s.AuthenticationType = &v
9258	return s
9259}
9260
9261// SetConnectionState sets the ConnectionState field's value.
9262func (s *Session) SetConnectionState(v string) *Session {
9263	s.ConnectionState = &v
9264	return s
9265}
9266
9267// SetFleetName sets the FleetName field's value.
9268func (s *Session) SetFleetName(v string) *Session {
9269	s.FleetName = &v
9270	return s
9271}
9272
9273// SetId sets the Id field's value.
9274func (s *Session) SetId(v string) *Session {
9275	s.Id = &v
9276	return s
9277}
9278
9279// SetMaxExpirationTime sets the MaxExpirationTime field's value.
9280func (s *Session) SetMaxExpirationTime(v time.Time) *Session {
9281	s.MaxExpirationTime = &v
9282	return s
9283}
9284
9285// SetNetworkAccessConfiguration sets the NetworkAccessConfiguration field's value.
9286func (s *Session) SetNetworkAccessConfiguration(v *NetworkAccessConfiguration) *Session {
9287	s.NetworkAccessConfiguration = v
9288	return s
9289}
9290
9291// SetStackName sets the StackName field's value.
9292func (s *Session) SetStackName(v string) *Session {
9293	s.StackName = &v
9294	return s
9295}
9296
9297// SetStartTime sets the StartTime field's value.
9298func (s *Session) SetStartTime(v time.Time) *Session {
9299	s.StartTime = &v
9300	return s
9301}
9302
9303// SetState sets the State field's value.
9304func (s *Session) SetState(v string) *Session {
9305	s.State = &v
9306	return s
9307}
9308
9309// SetUserId sets the UserId field's value.
9310func (s *Session) SetUserId(v string) *Session {
9311	s.UserId = &v
9312	return s
9313}
9314
9315// Describes the permissions that are available to the specified AWS account
9316// for a shared image.
9317type SharedImagePermissions struct {
9318	_ struct{} `type:"structure"`
9319
9320	// Describes the permissions for a shared image.
9321	//
9322	// ImagePermissions is a required field
9323	ImagePermissions *ImagePermissions `locationName:"imagePermissions" type:"structure" required:"true"`
9324
9325	// The 12-digit identifier of the AWS account with which the image is shared.
9326	//
9327	// SharedAccountId is a required field
9328	SharedAccountId *string `locationName:"sharedAccountId" type:"string" required:"true"`
9329}
9330
9331// String returns the string representation
9332func (s SharedImagePermissions) String() string {
9333	return awsutil.Prettify(s)
9334}
9335
9336// GoString returns the string representation
9337func (s SharedImagePermissions) GoString() string {
9338	return s.String()
9339}
9340
9341// SetImagePermissions sets the ImagePermissions field's value.
9342func (s *SharedImagePermissions) SetImagePermissions(v *ImagePermissions) *SharedImagePermissions {
9343	s.ImagePermissions = v
9344	return s
9345}
9346
9347// SetSharedAccountId sets the SharedAccountId field's value.
9348func (s *SharedImagePermissions) SetSharedAccountId(v string) *SharedImagePermissions {
9349	s.SharedAccountId = &v
9350	return s
9351}
9352
9353// Describes a stack.
9354type Stack struct {
9355	_ struct{} `type:"structure"`
9356
9357	// The list of virtual private cloud (VPC) interface endpoint objects. Users
9358	// of the stack can connect to AppStream 2.0 only through the specified endpoints.
9359	AccessEndpoints []*AccessEndpoint `min:"1" type:"list"`
9360
9361	// The persistent application settings for users of the stack.
9362	ApplicationSettings *ApplicationSettingsResponse `type:"structure"`
9363
9364	// The ARN of the stack.
9365	Arn *string `type:"string"`
9366
9367	// The time the stack was created.
9368	CreatedTime *time.Time `type:"timestamp"`
9369
9370	// The description to display.
9371	Description *string `min:"1" type:"string"`
9372
9373	// The stack name to display.
9374	DisplayName *string `min:"1" type:"string"`
9375
9376	// The domains where AppStream 2.0 streaming sessions can be embedded in an
9377	// iframe. You must approve the domains that you want to host embedded AppStream
9378	// 2.0 streaming sessions.
9379	EmbedHostDomains []*string `min:"1" type:"list"`
9380
9381	// The URL that users are redirected to after they click the Send Feedback link.
9382	// If no URL is specified, no Send Feedback link is displayed.
9383	FeedbackURL *string `type:"string"`
9384
9385	// The name of the stack.
9386	//
9387	// Name is a required field
9388	Name *string `min:"1" type:"string" required:"true"`
9389
9390	// The URL that users are redirected to after their streaming session ends.
9391	RedirectURL *string `type:"string"`
9392
9393	// The errors for the stack.
9394	StackErrors []*StackError `type:"list"`
9395
9396	// The storage connectors to enable.
9397	StorageConnectors []*StorageConnector `type:"list"`
9398
9399	// The actions that are enabled or disabled for users during their streaming
9400	// sessions. By default these actions are enabled.
9401	UserSettings []*UserSetting `min:"1" type:"list"`
9402}
9403
9404// String returns the string representation
9405func (s Stack) String() string {
9406	return awsutil.Prettify(s)
9407}
9408
9409// GoString returns the string representation
9410func (s Stack) GoString() string {
9411	return s.String()
9412}
9413
9414// SetAccessEndpoints sets the AccessEndpoints field's value.
9415func (s *Stack) SetAccessEndpoints(v []*AccessEndpoint) *Stack {
9416	s.AccessEndpoints = v
9417	return s
9418}
9419
9420// SetApplicationSettings sets the ApplicationSettings field's value.
9421func (s *Stack) SetApplicationSettings(v *ApplicationSettingsResponse) *Stack {
9422	s.ApplicationSettings = v
9423	return s
9424}
9425
9426// SetArn sets the Arn field's value.
9427func (s *Stack) SetArn(v string) *Stack {
9428	s.Arn = &v
9429	return s
9430}
9431
9432// SetCreatedTime sets the CreatedTime field's value.
9433func (s *Stack) SetCreatedTime(v time.Time) *Stack {
9434	s.CreatedTime = &v
9435	return s
9436}
9437
9438// SetDescription sets the Description field's value.
9439func (s *Stack) SetDescription(v string) *Stack {
9440	s.Description = &v
9441	return s
9442}
9443
9444// SetDisplayName sets the DisplayName field's value.
9445func (s *Stack) SetDisplayName(v string) *Stack {
9446	s.DisplayName = &v
9447	return s
9448}
9449
9450// SetEmbedHostDomains sets the EmbedHostDomains field's value.
9451func (s *Stack) SetEmbedHostDomains(v []*string) *Stack {
9452	s.EmbedHostDomains = v
9453	return s
9454}
9455
9456// SetFeedbackURL sets the FeedbackURL field's value.
9457func (s *Stack) SetFeedbackURL(v string) *Stack {
9458	s.FeedbackURL = &v
9459	return s
9460}
9461
9462// SetName sets the Name field's value.
9463func (s *Stack) SetName(v string) *Stack {
9464	s.Name = &v
9465	return s
9466}
9467
9468// SetRedirectURL sets the RedirectURL field's value.
9469func (s *Stack) SetRedirectURL(v string) *Stack {
9470	s.RedirectURL = &v
9471	return s
9472}
9473
9474// SetStackErrors sets the StackErrors field's value.
9475func (s *Stack) SetStackErrors(v []*StackError) *Stack {
9476	s.StackErrors = v
9477	return s
9478}
9479
9480// SetStorageConnectors sets the StorageConnectors field's value.
9481func (s *Stack) SetStorageConnectors(v []*StorageConnector) *Stack {
9482	s.StorageConnectors = v
9483	return s
9484}
9485
9486// SetUserSettings sets the UserSettings field's value.
9487func (s *Stack) SetUserSettings(v []*UserSetting) *Stack {
9488	s.UserSettings = v
9489	return s
9490}
9491
9492// Describes a stack error.
9493type StackError struct {
9494	_ struct{} `type:"structure"`
9495
9496	// The error code.
9497	ErrorCode *string `type:"string" enum:"StackErrorCode"`
9498
9499	// The error message.
9500	ErrorMessage *string `min:"1" type:"string"`
9501}
9502
9503// String returns the string representation
9504func (s StackError) String() string {
9505	return awsutil.Prettify(s)
9506}
9507
9508// GoString returns the string representation
9509func (s StackError) GoString() string {
9510	return s.String()
9511}
9512
9513// SetErrorCode sets the ErrorCode field's value.
9514func (s *StackError) SetErrorCode(v string) *StackError {
9515	s.ErrorCode = &v
9516	return s
9517}
9518
9519// SetErrorMessage sets the ErrorMessage field's value.
9520func (s *StackError) SetErrorMessage(v string) *StackError {
9521	s.ErrorMessage = &v
9522	return s
9523}
9524
9525type StartFleetInput struct {
9526	_ struct{} `type:"structure"`
9527
9528	// The name of the fleet.
9529	//
9530	// Name is a required field
9531	Name *string `min:"1" type:"string" required:"true"`
9532}
9533
9534// String returns the string representation
9535func (s StartFleetInput) String() string {
9536	return awsutil.Prettify(s)
9537}
9538
9539// GoString returns the string representation
9540func (s StartFleetInput) GoString() string {
9541	return s.String()
9542}
9543
9544// Validate inspects the fields of the type to determine if they are valid.
9545func (s *StartFleetInput) Validate() error {
9546	invalidParams := request.ErrInvalidParams{Context: "StartFleetInput"}
9547	if s.Name == nil {
9548		invalidParams.Add(request.NewErrParamRequired("Name"))
9549	}
9550	if s.Name != nil && len(*s.Name) < 1 {
9551		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9552	}
9553
9554	if invalidParams.Len() > 0 {
9555		return invalidParams
9556	}
9557	return nil
9558}
9559
9560// SetName sets the Name field's value.
9561func (s *StartFleetInput) SetName(v string) *StartFleetInput {
9562	s.Name = &v
9563	return s
9564}
9565
9566type StartFleetOutput struct {
9567	_ struct{} `type:"structure"`
9568}
9569
9570// String returns the string representation
9571func (s StartFleetOutput) String() string {
9572	return awsutil.Prettify(s)
9573}
9574
9575// GoString returns the string representation
9576func (s StartFleetOutput) GoString() string {
9577	return s.String()
9578}
9579
9580type StartImageBuilderInput struct {
9581	_ struct{} `type:"structure"`
9582
9583	// The version of the AppStream 2.0 agent to use for this image builder. To
9584	// use the latest version of the AppStream 2.0 agent, specify [LATEST].
9585	AppstreamAgentVersion *string `min:"1" type:"string"`
9586
9587	// The name of the image builder.
9588	//
9589	// Name is a required field
9590	Name *string `min:"1" type:"string" required:"true"`
9591}
9592
9593// String returns the string representation
9594func (s StartImageBuilderInput) String() string {
9595	return awsutil.Prettify(s)
9596}
9597
9598// GoString returns the string representation
9599func (s StartImageBuilderInput) GoString() string {
9600	return s.String()
9601}
9602
9603// Validate inspects the fields of the type to determine if they are valid.
9604func (s *StartImageBuilderInput) Validate() error {
9605	invalidParams := request.ErrInvalidParams{Context: "StartImageBuilderInput"}
9606	if s.AppstreamAgentVersion != nil && len(*s.AppstreamAgentVersion) < 1 {
9607		invalidParams.Add(request.NewErrParamMinLen("AppstreamAgentVersion", 1))
9608	}
9609	if s.Name == nil {
9610		invalidParams.Add(request.NewErrParamRequired("Name"))
9611	}
9612	if s.Name != nil && len(*s.Name) < 1 {
9613		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9614	}
9615
9616	if invalidParams.Len() > 0 {
9617		return invalidParams
9618	}
9619	return nil
9620}
9621
9622// SetAppstreamAgentVersion sets the AppstreamAgentVersion field's value.
9623func (s *StartImageBuilderInput) SetAppstreamAgentVersion(v string) *StartImageBuilderInput {
9624	s.AppstreamAgentVersion = &v
9625	return s
9626}
9627
9628// SetName sets the Name field's value.
9629func (s *StartImageBuilderInput) SetName(v string) *StartImageBuilderInput {
9630	s.Name = &v
9631	return s
9632}
9633
9634type StartImageBuilderOutput struct {
9635	_ struct{} `type:"structure"`
9636
9637	// Information about the image builder.
9638	ImageBuilder *ImageBuilder `type:"structure"`
9639}
9640
9641// String returns the string representation
9642func (s StartImageBuilderOutput) String() string {
9643	return awsutil.Prettify(s)
9644}
9645
9646// GoString returns the string representation
9647func (s StartImageBuilderOutput) GoString() string {
9648	return s.String()
9649}
9650
9651// SetImageBuilder sets the ImageBuilder field's value.
9652func (s *StartImageBuilderOutput) SetImageBuilder(v *ImageBuilder) *StartImageBuilderOutput {
9653	s.ImageBuilder = v
9654	return s
9655}
9656
9657type StopFleetInput struct {
9658	_ struct{} `type:"structure"`
9659
9660	// The name of the fleet.
9661	//
9662	// Name is a required field
9663	Name *string `min:"1" type:"string" required:"true"`
9664}
9665
9666// String returns the string representation
9667func (s StopFleetInput) String() string {
9668	return awsutil.Prettify(s)
9669}
9670
9671// GoString returns the string representation
9672func (s StopFleetInput) GoString() string {
9673	return s.String()
9674}
9675
9676// Validate inspects the fields of the type to determine if they are valid.
9677func (s *StopFleetInput) Validate() error {
9678	invalidParams := request.ErrInvalidParams{Context: "StopFleetInput"}
9679	if s.Name == nil {
9680		invalidParams.Add(request.NewErrParamRequired("Name"))
9681	}
9682	if s.Name != nil && len(*s.Name) < 1 {
9683		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9684	}
9685
9686	if invalidParams.Len() > 0 {
9687		return invalidParams
9688	}
9689	return nil
9690}
9691
9692// SetName sets the Name field's value.
9693func (s *StopFleetInput) SetName(v string) *StopFleetInput {
9694	s.Name = &v
9695	return s
9696}
9697
9698type StopFleetOutput struct {
9699	_ struct{} `type:"structure"`
9700}
9701
9702// String returns the string representation
9703func (s StopFleetOutput) String() string {
9704	return awsutil.Prettify(s)
9705}
9706
9707// GoString returns the string representation
9708func (s StopFleetOutput) GoString() string {
9709	return s.String()
9710}
9711
9712type StopImageBuilderInput struct {
9713	_ struct{} `type:"structure"`
9714
9715	// The name of the image builder.
9716	//
9717	// Name is a required field
9718	Name *string `min:"1" type:"string" required:"true"`
9719}
9720
9721// String returns the string representation
9722func (s StopImageBuilderInput) String() string {
9723	return awsutil.Prettify(s)
9724}
9725
9726// GoString returns the string representation
9727func (s StopImageBuilderInput) GoString() string {
9728	return s.String()
9729}
9730
9731// Validate inspects the fields of the type to determine if they are valid.
9732func (s *StopImageBuilderInput) Validate() error {
9733	invalidParams := request.ErrInvalidParams{Context: "StopImageBuilderInput"}
9734	if s.Name == nil {
9735		invalidParams.Add(request.NewErrParamRequired("Name"))
9736	}
9737	if s.Name != nil && len(*s.Name) < 1 {
9738		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
9739	}
9740
9741	if invalidParams.Len() > 0 {
9742		return invalidParams
9743	}
9744	return nil
9745}
9746
9747// SetName sets the Name field's value.
9748func (s *StopImageBuilderInput) SetName(v string) *StopImageBuilderInput {
9749	s.Name = &v
9750	return s
9751}
9752
9753type StopImageBuilderOutput struct {
9754	_ struct{} `type:"structure"`
9755
9756	// Information about the image builder.
9757	ImageBuilder *ImageBuilder `type:"structure"`
9758}
9759
9760// String returns the string representation
9761func (s StopImageBuilderOutput) String() string {
9762	return awsutil.Prettify(s)
9763}
9764
9765// GoString returns the string representation
9766func (s StopImageBuilderOutput) GoString() string {
9767	return s.String()
9768}
9769
9770// SetImageBuilder sets the ImageBuilder field's value.
9771func (s *StopImageBuilderOutput) SetImageBuilder(v *ImageBuilder) *StopImageBuilderOutput {
9772	s.ImageBuilder = v
9773	return s
9774}
9775
9776// Describes a connector that enables persistent storage for users.
9777type StorageConnector struct {
9778	_ struct{} `type:"structure"`
9779
9780	// The type of storage connector.
9781	//
9782	// ConnectorType is a required field
9783	ConnectorType *string `type:"string" required:"true" enum:"StorageConnectorType"`
9784
9785	// The names of the domains for the account.
9786	Domains []*string `type:"list"`
9787
9788	// The ARN of the storage connector.
9789	ResourceIdentifier *string `min:"1" type:"string"`
9790}
9791
9792// String returns the string representation
9793func (s StorageConnector) String() string {
9794	return awsutil.Prettify(s)
9795}
9796
9797// GoString returns the string representation
9798func (s StorageConnector) GoString() string {
9799	return s.String()
9800}
9801
9802// Validate inspects the fields of the type to determine if they are valid.
9803func (s *StorageConnector) Validate() error {
9804	invalidParams := request.ErrInvalidParams{Context: "StorageConnector"}
9805	if s.ConnectorType == nil {
9806		invalidParams.Add(request.NewErrParamRequired("ConnectorType"))
9807	}
9808	if s.ResourceIdentifier != nil && len(*s.ResourceIdentifier) < 1 {
9809		invalidParams.Add(request.NewErrParamMinLen("ResourceIdentifier", 1))
9810	}
9811
9812	if invalidParams.Len() > 0 {
9813		return invalidParams
9814	}
9815	return nil
9816}
9817
9818// SetConnectorType sets the ConnectorType field's value.
9819func (s *StorageConnector) SetConnectorType(v string) *StorageConnector {
9820	s.ConnectorType = &v
9821	return s
9822}
9823
9824// SetDomains sets the Domains field's value.
9825func (s *StorageConnector) SetDomains(v []*string) *StorageConnector {
9826	s.Domains = v
9827	return s
9828}
9829
9830// SetResourceIdentifier sets the ResourceIdentifier field's value.
9831func (s *StorageConnector) SetResourceIdentifier(v string) *StorageConnector {
9832	s.ResourceIdentifier = &v
9833	return s
9834}
9835
9836type TagResourceInput struct {
9837	_ struct{} `type:"structure"`
9838
9839	// The Amazon Resource Name (ARN) of the resource.
9840	//
9841	// ResourceArn is a required field
9842	ResourceArn *string `type:"string" required:"true"`
9843
9844	// The tags to associate. A tag is a key-value pair, and the value is optional.
9845	// For example, Environment=Test. If you do not specify a value, Environment=.
9846	//
9847	// If you do not specify a value, the value is set to an empty string.
9848	//
9849	// Generally allowed characters are: letters, numbers, and spaces representable
9850	// in UTF-8, and the following special characters:
9851	//
9852	// _ . : / = + \ - @
9853	//
9854	// Tags is a required field
9855	Tags map[string]*string `min:"1" type:"map" required:"true"`
9856}
9857
9858// String returns the string representation
9859func (s TagResourceInput) String() string {
9860	return awsutil.Prettify(s)
9861}
9862
9863// GoString returns the string representation
9864func (s TagResourceInput) GoString() string {
9865	return s.String()
9866}
9867
9868// Validate inspects the fields of the type to determine if they are valid.
9869func (s *TagResourceInput) Validate() error {
9870	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
9871	if s.ResourceArn == nil {
9872		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9873	}
9874	if s.Tags == nil {
9875		invalidParams.Add(request.NewErrParamRequired("Tags"))
9876	}
9877	if s.Tags != nil && len(s.Tags) < 1 {
9878		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
9879	}
9880
9881	if invalidParams.Len() > 0 {
9882		return invalidParams
9883	}
9884	return nil
9885}
9886
9887// SetResourceArn sets the ResourceArn field's value.
9888func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
9889	s.ResourceArn = &v
9890	return s
9891}
9892
9893// SetTags sets the Tags field's value.
9894func (s *TagResourceInput) SetTags(v map[string]*string) *TagResourceInput {
9895	s.Tags = v
9896	return s
9897}
9898
9899type TagResourceOutput struct {
9900	_ struct{} `type:"structure"`
9901}
9902
9903// String returns the string representation
9904func (s TagResourceOutput) String() string {
9905	return awsutil.Prettify(s)
9906}
9907
9908// GoString returns the string representation
9909func (s TagResourceOutput) GoString() string {
9910	return s.String()
9911}
9912
9913type UntagResourceInput struct {
9914	_ struct{} `type:"structure"`
9915
9916	// The Amazon Resource Name (ARN) of the resource.
9917	//
9918	// ResourceArn is a required field
9919	ResourceArn *string `type:"string" required:"true"`
9920
9921	// The tag keys for the tags to disassociate.
9922	//
9923	// TagKeys is a required field
9924	TagKeys []*string `min:"1" type:"list" required:"true"`
9925}
9926
9927// String returns the string representation
9928func (s UntagResourceInput) String() string {
9929	return awsutil.Prettify(s)
9930}
9931
9932// GoString returns the string representation
9933func (s UntagResourceInput) GoString() string {
9934	return s.String()
9935}
9936
9937// Validate inspects the fields of the type to determine if they are valid.
9938func (s *UntagResourceInput) Validate() error {
9939	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
9940	if s.ResourceArn == nil {
9941		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9942	}
9943	if s.TagKeys == nil {
9944		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
9945	}
9946	if s.TagKeys != nil && len(s.TagKeys) < 1 {
9947		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
9948	}
9949
9950	if invalidParams.Len() > 0 {
9951		return invalidParams
9952	}
9953	return nil
9954}
9955
9956// SetResourceArn sets the ResourceArn field's value.
9957func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
9958	s.ResourceArn = &v
9959	return s
9960}
9961
9962// SetTagKeys sets the TagKeys field's value.
9963func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
9964	s.TagKeys = v
9965	return s
9966}
9967
9968type UntagResourceOutput struct {
9969	_ struct{} `type:"structure"`
9970}
9971
9972// String returns the string representation
9973func (s UntagResourceOutput) String() string {
9974	return awsutil.Prettify(s)
9975}
9976
9977// GoString returns the string representation
9978func (s UntagResourceOutput) GoString() string {
9979	return s.String()
9980}
9981
9982type UpdateDirectoryConfigInput struct {
9983	_ struct{} `type:"structure"`
9984
9985	// The name of the Directory Config object.
9986	//
9987	// DirectoryName is a required field
9988	DirectoryName *string `type:"string" required:"true"`
9989
9990	// The distinguished names of the organizational units for computer accounts.
9991	OrganizationalUnitDistinguishedNames []*string `type:"list"`
9992
9993	// The credentials for the service account used by the fleet or image builder
9994	// to connect to the directory.
9995	ServiceAccountCredentials *ServiceAccountCredentials `type:"structure"`
9996}
9997
9998// String returns the string representation
9999func (s UpdateDirectoryConfigInput) String() string {
10000	return awsutil.Prettify(s)
10001}
10002
10003// GoString returns the string representation
10004func (s UpdateDirectoryConfigInput) GoString() string {
10005	return s.String()
10006}
10007
10008// Validate inspects the fields of the type to determine if they are valid.
10009func (s *UpdateDirectoryConfigInput) Validate() error {
10010	invalidParams := request.ErrInvalidParams{Context: "UpdateDirectoryConfigInput"}
10011	if s.DirectoryName == nil {
10012		invalidParams.Add(request.NewErrParamRequired("DirectoryName"))
10013	}
10014	if s.ServiceAccountCredentials != nil {
10015		if err := s.ServiceAccountCredentials.Validate(); err != nil {
10016			invalidParams.AddNested("ServiceAccountCredentials", err.(request.ErrInvalidParams))
10017		}
10018	}
10019
10020	if invalidParams.Len() > 0 {
10021		return invalidParams
10022	}
10023	return nil
10024}
10025
10026// SetDirectoryName sets the DirectoryName field's value.
10027func (s *UpdateDirectoryConfigInput) SetDirectoryName(v string) *UpdateDirectoryConfigInput {
10028	s.DirectoryName = &v
10029	return s
10030}
10031
10032// SetOrganizationalUnitDistinguishedNames sets the OrganizationalUnitDistinguishedNames field's value.
10033func (s *UpdateDirectoryConfigInput) SetOrganizationalUnitDistinguishedNames(v []*string) *UpdateDirectoryConfigInput {
10034	s.OrganizationalUnitDistinguishedNames = v
10035	return s
10036}
10037
10038// SetServiceAccountCredentials sets the ServiceAccountCredentials field's value.
10039func (s *UpdateDirectoryConfigInput) SetServiceAccountCredentials(v *ServiceAccountCredentials) *UpdateDirectoryConfigInput {
10040	s.ServiceAccountCredentials = v
10041	return s
10042}
10043
10044type UpdateDirectoryConfigOutput struct {
10045	_ struct{} `type:"structure"`
10046
10047	// Information about the Directory Config object.
10048	DirectoryConfig *DirectoryConfig `type:"structure"`
10049}
10050
10051// String returns the string representation
10052func (s UpdateDirectoryConfigOutput) String() string {
10053	return awsutil.Prettify(s)
10054}
10055
10056// GoString returns the string representation
10057func (s UpdateDirectoryConfigOutput) GoString() string {
10058	return s.String()
10059}
10060
10061// SetDirectoryConfig sets the DirectoryConfig field's value.
10062func (s *UpdateDirectoryConfigOutput) SetDirectoryConfig(v *DirectoryConfig) *UpdateDirectoryConfigOutput {
10063	s.DirectoryConfig = v
10064	return s
10065}
10066
10067type UpdateFleetInput struct {
10068	_ struct{} `type:"structure"`
10069
10070	// The fleet attributes to delete.
10071	AttributesToDelete []*string `type:"list"`
10072
10073	// The desired capacity for the fleet.
10074	ComputeCapacity *ComputeCapacity `type:"structure"`
10075
10076	// Deletes the VPC association for the specified fleet.
10077	//
10078	// Deprecated: DeleteVpcConfig has been deprecated
10079	DeleteVpcConfig *bool `deprecated:"true" type:"boolean"`
10080
10081	// The description to display.
10082	Description *string `type:"string"`
10083
10084	// The amount of time that a streaming session remains active after users disconnect.
10085	// If users try to reconnect to the streaming session after a disconnection
10086	// or network interruption within this time interval, they are connected to
10087	// their previous session. Otherwise, they are connected to a new session with
10088	// a new streaming instance.
10089	//
10090	// Specify a value between 60 and 360000.
10091	DisconnectTimeoutInSeconds *int64 `type:"integer"`
10092
10093	// The fleet name to display.
10094	DisplayName *string `type:"string"`
10095
10096	// The name of the directory and organizational unit (OU) to use to join the
10097	// fleet to a Microsoft Active Directory domain.
10098	DomainJoinInfo *DomainJoinInfo `type:"structure"`
10099
10100	// Enables or disables default internet access for the fleet.
10101	EnableDefaultInternetAccess *bool `type:"boolean"`
10102
10103	// The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To
10104	// assume a role, a fleet instance calls the AWS Security Token Service (STS)
10105	// AssumeRole API operation and passes the ARN of the role to use. The operation
10106	// creates a new session with temporary credentials. AppStream 2.0 retrieves
10107	// the temporary credentials and creates the AppStream_Machine_Role credential
10108	// profile on the instance.
10109	//
10110	// For more information, see Using an IAM Role to Grant Permissions to Applications
10111	// and Scripts Running on AppStream 2.0 Streaming Instances (https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html)
10112	// in the Amazon AppStream 2.0 Administration Guide.
10113	IamRoleArn *string `type:"string"`
10114
10115	// The amount of time that users can be idle (inactive) before they are disconnected
10116	// from their streaming session and the DisconnectTimeoutInSeconds time interval
10117	// begins. Users are notified before they are disconnected due to inactivity.
10118	// If users try to reconnect to the streaming session before the time interval
10119	// specified in DisconnectTimeoutInSeconds elapses, they are connected to their
10120	// previous session. Users are considered idle when they stop providing keyboard
10121	// or mouse input during their streaming session. File uploads and downloads,
10122	// audio in, audio out, and pixels changing do not qualify as user activity.
10123	// If users continue to be idle after the time interval in IdleDisconnectTimeoutInSeconds
10124	// elapses, they are disconnected.
10125	//
10126	// To prevent users from being disconnected due to inactivity, specify a value
10127	// of 0. Otherwise, specify a value between 60 and 3600. The default value is
10128	// 0.
10129	//
10130	// If you enable this feature, we recommend that you specify a value that corresponds
10131	// exactly to a whole number of minutes (for example, 60, 120, and 180). If
10132	// you don't do this, the value is rounded to the nearest minute. For example,
10133	// if you specify a value of 70, users are disconnected after 1 minute of inactivity.
10134	// If you specify a value that is at the midpoint between two different minutes,
10135	// the value is rounded up. For example, if you specify a value of 90, users
10136	// are disconnected after 2 minutes of inactivity.
10137	IdleDisconnectTimeoutInSeconds *int64 `type:"integer"`
10138
10139	// The ARN of the public, private, or shared image to use.
10140	ImageArn *string `type:"string"`
10141
10142	// The name of the image used to create the fleet.
10143	ImageName *string `min:"1" type:"string"`
10144
10145	// The instance type to use when launching fleet instances. The following instance
10146	// types are available:
10147	//
10148	//    * stream.standard.medium
10149	//
10150	//    * stream.standard.large
10151	//
10152	//    * stream.compute.large
10153	//
10154	//    * stream.compute.xlarge
10155	//
10156	//    * stream.compute.2xlarge
10157	//
10158	//    * stream.compute.4xlarge
10159	//
10160	//    * stream.compute.8xlarge
10161	//
10162	//    * stream.memory.large
10163	//
10164	//    * stream.memory.xlarge
10165	//
10166	//    * stream.memory.2xlarge
10167	//
10168	//    * stream.memory.4xlarge
10169	//
10170	//    * stream.memory.8xlarge
10171	//
10172	//    * stream.graphics-design.large
10173	//
10174	//    * stream.graphics-design.xlarge
10175	//
10176	//    * stream.graphics-design.2xlarge
10177	//
10178	//    * stream.graphics-design.4xlarge
10179	//
10180	//    * stream.graphics-desktop.2xlarge
10181	//
10182	//    * stream.graphics-pro.4xlarge
10183	//
10184	//    * stream.graphics-pro.8xlarge
10185	//
10186	//    * stream.graphics-pro.16xlarge
10187	InstanceType *string `min:"1" type:"string"`
10188
10189	// The maximum amount of time that a streaming session can remain active, in
10190	// seconds. If users are still connected to a streaming instance five minutes
10191	// before this limit is reached, they are prompted to save any open documents
10192	// before being disconnected. After this time elapses, the instance is terminated
10193	// and replaced by a new instance.
10194	//
10195	// Specify a value between 600 and 360000.
10196	MaxUserDurationInSeconds *int64 `type:"integer"`
10197
10198	// A unique name for the fleet.
10199	Name *string `min:"1" type:"string"`
10200
10201	// The VPC configuration for the fleet.
10202	VpcConfig *VpcConfig `type:"structure"`
10203}
10204
10205// String returns the string representation
10206func (s UpdateFleetInput) String() string {
10207	return awsutil.Prettify(s)
10208}
10209
10210// GoString returns the string representation
10211func (s UpdateFleetInput) GoString() string {
10212	return s.String()
10213}
10214
10215// Validate inspects the fields of the type to determine if they are valid.
10216func (s *UpdateFleetInput) Validate() error {
10217	invalidParams := request.ErrInvalidParams{Context: "UpdateFleetInput"}
10218	if s.ImageName != nil && len(*s.ImageName) < 1 {
10219		invalidParams.Add(request.NewErrParamMinLen("ImageName", 1))
10220	}
10221	if s.InstanceType != nil && len(*s.InstanceType) < 1 {
10222		invalidParams.Add(request.NewErrParamMinLen("InstanceType", 1))
10223	}
10224	if s.Name != nil && len(*s.Name) < 1 {
10225		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
10226	}
10227	if s.ComputeCapacity != nil {
10228		if err := s.ComputeCapacity.Validate(); err != nil {
10229			invalidParams.AddNested("ComputeCapacity", err.(request.ErrInvalidParams))
10230		}
10231	}
10232
10233	if invalidParams.Len() > 0 {
10234		return invalidParams
10235	}
10236	return nil
10237}
10238
10239// SetAttributesToDelete sets the AttributesToDelete field's value.
10240func (s *UpdateFleetInput) SetAttributesToDelete(v []*string) *UpdateFleetInput {
10241	s.AttributesToDelete = v
10242	return s
10243}
10244
10245// SetComputeCapacity sets the ComputeCapacity field's value.
10246func (s *UpdateFleetInput) SetComputeCapacity(v *ComputeCapacity) *UpdateFleetInput {
10247	s.ComputeCapacity = v
10248	return s
10249}
10250
10251// SetDeleteVpcConfig sets the DeleteVpcConfig field's value.
10252func (s *UpdateFleetInput) SetDeleteVpcConfig(v bool) *UpdateFleetInput {
10253	s.DeleteVpcConfig = &v
10254	return s
10255}
10256
10257// SetDescription sets the Description field's value.
10258func (s *UpdateFleetInput) SetDescription(v string) *UpdateFleetInput {
10259	s.Description = &v
10260	return s
10261}
10262
10263// SetDisconnectTimeoutInSeconds sets the DisconnectTimeoutInSeconds field's value.
10264func (s *UpdateFleetInput) SetDisconnectTimeoutInSeconds(v int64) *UpdateFleetInput {
10265	s.DisconnectTimeoutInSeconds = &v
10266	return s
10267}
10268
10269// SetDisplayName sets the DisplayName field's value.
10270func (s *UpdateFleetInput) SetDisplayName(v string) *UpdateFleetInput {
10271	s.DisplayName = &v
10272	return s
10273}
10274
10275// SetDomainJoinInfo sets the DomainJoinInfo field's value.
10276func (s *UpdateFleetInput) SetDomainJoinInfo(v *DomainJoinInfo) *UpdateFleetInput {
10277	s.DomainJoinInfo = v
10278	return s
10279}
10280
10281// SetEnableDefaultInternetAccess sets the EnableDefaultInternetAccess field's value.
10282func (s *UpdateFleetInput) SetEnableDefaultInternetAccess(v bool) *UpdateFleetInput {
10283	s.EnableDefaultInternetAccess = &v
10284	return s
10285}
10286
10287// SetIamRoleArn sets the IamRoleArn field's value.
10288func (s *UpdateFleetInput) SetIamRoleArn(v string) *UpdateFleetInput {
10289	s.IamRoleArn = &v
10290	return s
10291}
10292
10293// SetIdleDisconnectTimeoutInSeconds sets the IdleDisconnectTimeoutInSeconds field's value.
10294func (s *UpdateFleetInput) SetIdleDisconnectTimeoutInSeconds(v int64) *UpdateFleetInput {
10295	s.IdleDisconnectTimeoutInSeconds = &v
10296	return s
10297}
10298
10299// SetImageArn sets the ImageArn field's value.
10300func (s *UpdateFleetInput) SetImageArn(v string) *UpdateFleetInput {
10301	s.ImageArn = &v
10302	return s
10303}
10304
10305// SetImageName sets the ImageName field's value.
10306func (s *UpdateFleetInput) SetImageName(v string) *UpdateFleetInput {
10307	s.ImageName = &v
10308	return s
10309}
10310
10311// SetInstanceType sets the InstanceType field's value.
10312func (s *UpdateFleetInput) SetInstanceType(v string) *UpdateFleetInput {
10313	s.InstanceType = &v
10314	return s
10315}
10316
10317// SetMaxUserDurationInSeconds sets the MaxUserDurationInSeconds field's value.
10318func (s *UpdateFleetInput) SetMaxUserDurationInSeconds(v int64) *UpdateFleetInput {
10319	s.MaxUserDurationInSeconds = &v
10320	return s
10321}
10322
10323// SetName sets the Name field's value.
10324func (s *UpdateFleetInput) SetName(v string) *UpdateFleetInput {
10325	s.Name = &v
10326	return s
10327}
10328
10329// SetVpcConfig sets the VpcConfig field's value.
10330func (s *UpdateFleetInput) SetVpcConfig(v *VpcConfig) *UpdateFleetInput {
10331	s.VpcConfig = v
10332	return s
10333}
10334
10335type UpdateFleetOutput struct {
10336	_ struct{} `type:"structure"`
10337
10338	// Information about the fleet.
10339	Fleet *Fleet `type:"structure"`
10340}
10341
10342// String returns the string representation
10343func (s UpdateFleetOutput) String() string {
10344	return awsutil.Prettify(s)
10345}
10346
10347// GoString returns the string representation
10348func (s UpdateFleetOutput) GoString() string {
10349	return s.String()
10350}
10351
10352// SetFleet sets the Fleet field's value.
10353func (s *UpdateFleetOutput) SetFleet(v *Fleet) *UpdateFleetOutput {
10354	s.Fleet = v
10355	return s
10356}
10357
10358type UpdateImagePermissionsInput struct {
10359	_ struct{} `type:"structure"`
10360
10361	// The permissions for the image.
10362	//
10363	// ImagePermissions is a required field
10364	ImagePermissions *ImagePermissions `type:"structure" required:"true"`
10365
10366	// The name of the private image.
10367	//
10368	// Name is a required field
10369	Name *string `type:"string" required:"true"`
10370
10371	// The 12-digit identifier of the AWS account for which you want add or update
10372	// image permissions.
10373	//
10374	// SharedAccountId is a required field
10375	SharedAccountId *string `type:"string" required:"true"`
10376}
10377
10378// String returns the string representation
10379func (s UpdateImagePermissionsInput) String() string {
10380	return awsutil.Prettify(s)
10381}
10382
10383// GoString returns the string representation
10384func (s UpdateImagePermissionsInput) GoString() string {
10385	return s.String()
10386}
10387
10388// Validate inspects the fields of the type to determine if they are valid.
10389func (s *UpdateImagePermissionsInput) Validate() error {
10390	invalidParams := request.ErrInvalidParams{Context: "UpdateImagePermissionsInput"}
10391	if s.ImagePermissions == nil {
10392		invalidParams.Add(request.NewErrParamRequired("ImagePermissions"))
10393	}
10394	if s.Name == nil {
10395		invalidParams.Add(request.NewErrParamRequired("Name"))
10396	}
10397	if s.SharedAccountId == nil {
10398		invalidParams.Add(request.NewErrParamRequired("SharedAccountId"))
10399	}
10400
10401	if invalidParams.Len() > 0 {
10402		return invalidParams
10403	}
10404	return nil
10405}
10406
10407// SetImagePermissions sets the ImagePermissions field's value.
10408func (s *UpdateImagePermissionsInput) SetImagePermissions(v *ImagePermissions) *UpdateImagePermissionsInput {
10409	s.ImagePermissions = v
10410	return s
10411}
10412
10413// SetName sets the Name field's value.
10414func (s *UpdateImagePermissionsInput) SetName(v string) *UpdateImagePermissionsInput {
10415	s.Name = &v
10416	return s
10417}
10418
10419// SetSharedAccountId sets the SharedAccountId field's value.
10420func (s *UpdateImagePermissionsInput) SetSharedAccountId(v string) *UpdateImagePermissionsInput {
10421	s.SharedAccountId = &v
10422	return s
10423}
10424
10425type UpdateImagePermissionsOutput struct {
10426	_ struct{} `type:"structure"`
10427}
10428
10429// String returns the string representation
10430func (s UpdateImagePermissionsOutput) String() string {
10431	return awsutil.Prettify(s)
10432}
10433
10434// GoString returns the string representation
10435func (s UpdateImagePermissionsOutput) GoString() string {
10436	return s.String()
10437}
10438
10439type UpdateStackInput struct {
10440	_ struct{} `type:"structure"`
10441
10442	// The list of interface VPC endpoint (interface endpoint) objects. Users of
10443	// the stack can connect to AppStream 2.0 only through the specified endpoints.
10444	AccessEndpoints []*AccessEndpoint `min:"1" type:"list"`
10445
10446	// The persistent application settings for users of a stack. When these settings
10447	// are enabled, changes that users make to applications and Windows settings
10448	// are automatically saved after each session and applied to the next session.
10449	ApplicationSettings *ApplicationSettings `type:"structure"`
10450
10451	// The stack attributes to delete.
10452	AttributesToDelete []*string `type:"list"`
10453
10454	// Deletes the storage connectors currently enabled for the stack.
10455	//
10456	// Deprecated: DeleteStorageConnectors has been deprecated
10457	DeleteStorageConnectors *bool `deprecated:"true" type:"boolean"`
10458
10459	// The description to display.
10460	Description *string `type:"string"`
10461
10462	// The stack name to display.
10463	DisplayName *string `type:"string"`
10464
10465	// The domains where AppStream 2.0 streaming sessions can be embedded in an
10466	// iframe. You must approve the domains that you want to host embedded AppStream
10467	// 2.0 streaming sessions.
10468	EmbedHostDomains []*string `min:"1" type:"list"`
10469
10470	// The URL that users are redirected to after they choose the Send Feedback
10471	// link. If no URL is specified, no Send Feedback link is displayed.
10472	FeedbackURL *string `type:"string"`
10473
10474	// The name of the stack.
10475	//
10476	// Name is a required field
10477	Name *string `min:"1" type:"string" required:"true"`
10478
10479	// The URL that users are redirected to after their streaming session ends.
10480	RedirectURL *string `type:"string"`
10481
10482	// The storage connectors to enable.
10483	StorageConnectors []*StorageConnector `type:"list"`
10484
10485	// The actions that are enabled or disabled for users during their streaming
10486	// sessions. By default, these actions are enabled.
10487	UserSettings []*UserSetting `min:"1" type:"list"`
10488}
10489
10490// String returns the string representation
10491func (s UpdateStackInput) String() string {
10492	return awsutil.Prettify(s)
10493}
10494
10495// GoString returns the string representation
10496func (s UpdateStackInput) GoString() string {
10497	return s.String()
10498}
10499
10500// Validate inspects the fields of the type to determine if they are valid.
10501func (s *UpdateStackInput) Validate() error {
10502	invalidParams := request.ErrInvalidParams{Context: "UpdateStackInput"}
10503	if s.AccessEndpoints != nil && len(s.AccessEndpoints) < 1 {
10504		invalidParams.Add(request.NewErrParamMinLen("AccessEndpoints", 1))
10505	}
10506	if s.EmbedHostDomains != nil && len(s.EmbedHostDomains) < 1 {
10507		invalidParams.Add(request.NewErrParamMinLen("EmbedHostDomains", 1))
10508	}
10509	if s.Name == nil {
10510		invalidParams.Add(request.NewErrParamRequired("Name"))
10511	}
10512	if s.Name != nil && len(*s.Name) < 1 {
10513		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
10514	}
10515	if s.UserSettings != nil && len(s.UserSettings) < 1 {
10516		invalidParams.Add(request.NewErrParamMinLen("UserSettings", 1))
10517	}
10518	if s.AccessEndpoints != nil {
10519		for i, v := range s.AccessEndpoints {
10520			if v == nil {
10521				continue
10522			}
10523			if err := v.Validate(); err != nil {
10524				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AccessEndpoints", i), err.(request.ErrInvalidParams))
10525			}
10526		}
10527	}
10528	if s.ApplicationSettings != nil {
10529		if err := s.ApplicationSettings.Validate(); err != nil {
10530			invalidParams.AddNested("ApplicationSettings", err.(request.ErrInvalidParams))
10531		}
10532	}
10533	if s.StorageConnectors != nil {
10534		for i, v := range s.StorageConnectors {
10535			if v == nil {
10536				continue
10537			}
10538			if err := v.Validate(); err != nil {
10539				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "StorageConnectors", i), err.(request.ErrInvalidParams))
10540			}
10541		}
10542	}
10543	if s.UserSettings != nil {
10544		for i, v := range s.UserSettings {
10545			if v == nil {
10546				continue
10547			}
10548			if err := v.Validate(); err != nil {
10549				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "UserSettings", i), err.(request.ErrInvalidParams))
10550			}
10551		}
10552	}
10553
10554	if invalidParams.Len() > 0 {
10555		return invalidParams
10556	}
10557	return nil
10558}
10559
10560// SetAccessEndpoints sets the AccessEndpoints field's value.
10561func (s *UpdateStackInput) SetAccessEndpoints(v []*AccessEndpoint) *UpdateStackInput {
10562	s.AccessEndpoints = v
10563	return s
10564}
10565
10566// SetApplicationSettings sets the ApplicationSettings field's value.
10567func (s *UpdateStackInput) SetApplicationSettings(v *ApplicationSettings) *UpdateStackInput {
10568	s.ApplicationSettings = v
10569	return s
10570}
10571
10572// SetAttributesToDelete sets the AttributesToDelete field's value.
10573func (s *UpdateStackInput) SetAttributesToDelete(v []*string) *UpdateStackInput {
10574	s.AttributesToDelete = v
10575	return s
10576}
10577
10578// SetDeleteStorageConnectors sets the DeleteStorageConnectors field's value.
10579func (s *UpdateStackInput) SetDeleteStorageConnectors(v bool) *UpdateStackInput {
10580	s.DeleteStorageConnectors = &v
10581	return s
10582}
10583
10584// SetDescription sets the Description field's value.
10585func (s *UpdateStackInput) SetDescription(v string) *UpdateStackInput {
10586	s.Description = &v
10587	return s
10588}
10589
10590// SetDisplayName sets the DisplayName field's value.
10591func (s *UpdateStackInput) SetDisplayName(v string) *UpdateStackInput {
10592	s.DisplayName = &v
10593	return s
10594}
10595
10596// SetEmbedHostDomains sets the EmbedHostDomains field's value.
10597func (s *UpdateStackInput) SetEmbedHostDomains(v []*string) *UpdateStackInput {
10598	s.EmbedHostDomains = v
10599	return s
10600}
10601
10602// SetFeedbackURL sets the FeedbackURL field's value.
10603func (s *UpdateStackInput) SetFeedbackURL(v string) *UpdateStackInput {
10604	s.FeedbackURL = &v
10605	return s
10606}
10607
10608// SetName sets the Name field's value.
10609func (s *UpdateStackInput) SetName(v string) *UpdateStackInput {
10610	s.Name = &v
10611	return s
10612}
10613
10614// SetRedirectURL sets the RedirectURL field's value.
10615func (s *UpdateStackInput) SetRedirectURL(v string) *UpdateStackInput {
10616	s.RedirectURL = &v
10617	return s
10618}
10619
10620// SetStorageConnectors sets the StorageConnectors field's value.
10621func (s *UpdateStackInput) SetStorageConnectors(v []*StorageConnector) *UpdateStackInput {
10622	s.StorageConnectors = v
10623	return s
10624}
10625
10626// SetUserSettings sets the UserSettings field's value.
10627func (s *UpdateStackInput) SetUserSettings(v []*UserSetting) *UpdateStackInput {
10628	s.UserSettings = v
10629	return s
10630}
10631
10632type UpdateStackOutput struct {
10633	_ struct{} `type:"structure"`
10634
10635	// Information about the stack.
10636	Stack *Stack `type:"structure"`
10637}
10638
10639// String returns the string representation
10640func (s UpdateStackOutput) String() string {
10641	return awsutil.Prettify(s)
10642}
10643
10644// GoString returns the string representation
10645func (s UpdateStackOutput) GoString() string {
10646	return s.String()
10647}
10648
10649// SetStack sets the Stack field's value.
10650func (s *UpdateStackOutput) SetStack(v *Stack) *UpdateStackOutput {
10651	s.Stack = v
10652	return s
10653}
10654
10655// Describes information about the usage report subscription.
10656type UsageReportSubscription struct {
10657	_ struct{} `type:"structure"`
10658
10659	// The time when the last usage report was generated.
10660	LastGeneratedReportDate *time.Time `type:"timestamp"`
10661
10662	// The Amazon S3 bucket where generated reports are stored.
10663	//
10664	// If you enabled on-instance session scripts and Amazon S3 logging for your
10665	// session script configuration, AppStream 2.0 created an S3 bucket to store
10666	// the script output. The bucket is unique to your account and Region. When
10667	// you enable usage reporting in this case, AppStream 2.0 uses the same bucket
10668	// to store your usage reports. If you haven't already enabled on-instance session
10669	// scripts, when you enable usage reports, AppStream 2.0 creates a new S3 bucket.
10670	S3BucketName *string `min:"1" type:"string"`
10671
10672	// The schedule for generating usage reports.
10673	Schedule *string `type:"string" enum:"UsageReportSchedule"`
10674
10675	// The errors that were returned if usage reports couldn't be generated.
10676	SubscriptionErrors []*LastReportGenerationExecutionError `type:"list"`
10677}
10678
10679// String returns the string representation
10680func (s UsageReportSubscription) String() string {
10681	return awsutil.Prettify(s)
10682}
10683
10684// GoString returns the string representation
10685func (s UsageReportSubscription) GoString() string {
10686	return s.String()
10687}
10688
10689// SetLastGeneratedReportDate sets the LastGeneratedReportDate field's value.
10690func (s *UsageReportSubscription) SetLastGeneratedReportDate(v time.Time) *UsageReportSubscription {
10691	s.LastGeneratedReportDate = &v
10692	return s
10693}
10694
10695// SetS3BucketName sets the S3BucketName field's value.
10696func (s *UsageReportSubscription) SetS3BucketName(v string) *UsageReportSubscription {
10697	s.S3BucketName = &v
10698	return s
10699}
10700
10701// SetSchedule sets the Schedule field's value.
10702func (s *UsageReportSubscription) SetSchedule(v string) *UsageReportSubscription {
10703	s.Schedule = &v
10704	return s
10705}
10706
10707// SetSubscriptionErrors sets the SubscriptionErrors field's value.
10708func (s *UsageReportSubscription) SetSubscriptionErrors(v []*LastReportGenerationExecutionError) *UsageReportSubscription {
10709	s.SubscriptionErrors = v
10710	return s
10711}
10712
10713// Describes a user in the user pool.
10714type User struct {
10715	_ struct{} `type:"structure"`
10716
10717	// The ARN of the user.
10718	Arn *string `type:"string"`
10719
10720	// The authentication type for the user.
10721	//
10722	// AuthenticationType is a required field
10723	AuthenticationType *string `type:"string" required:"true" enum:"AuthenticationType"`
10724
10725	// The date and time the user was created in the user pool.
10726	CreatedTime *time.Time `type:"timestamp"`
10727
10728	// Specifies whether the user in the user pool is enabled.
10729	Enabled *bool `type:"boolean"`
10730
10731	// The first name, or given name, of the user.
10732	FirstName *string `type:"string" sensitive:"true"`
10733
10734	// The last name, or surname, of the user.
10735	LastName *string `type:"string" sensitive:"true"`
10736
10737	// The status of the user in the user pool. The status can be one of the following:
10738	//
10739	//    * UNCONFIRMED – The user is created but not confirmed.
10740	//
10741	//    * CONFIRMED – The user is confirmed.
10742	//
10743	//    * ARCHIVED – The user is no longer active.
10744	//
10745	//    * COMPROMISED – The user is disabled because of a potential security
10746	//    threat.
10747	//
10748	//    * UNKNOWN – The user status is not known.
10749	Status *string `min:"1" type:"string"`
10750
10751	// The email address of the user.
10752	//
10753	// Users' email addresses are case-sensitive.
10754	UserName *string `min:"1" type:"string" sensitive:"true"`
10755}
10756
10757// String returns the string representation
10758func (s User) String() string {
10759	return awsutil.Prettify(s)
10760}
10761
10762// GoString returns the string representation
10763func (s User) GoString() string {
10764	return s.String()
10765}
10766
10767// SetArn sets the Arn field's value.
10768func (s *User) SetArn(v string) *User {
10769	s.Arn = &v
10770	return s
10771}
10772
10773// SetAuthenticationType sets the AuthenticationType field's value.
10774func (s *User) SetAuthenticationType(v string) *User {
10775	s.AuthenticationType = &v
10776	return s
10777}
10778
10779// SetCreatedTime sets the CreatedTime field's value.
10780func (s *User) SetCreatedTime(v time.Time) *User {
10781	s.CreatedTime = &v
10782	return s
10783}
10784
10785// SetEnabled sets the Enabled field's value.
10786func (s *User) SetEnabled(v bool) *User {
10787	s.Enabled = &v
10788	return s
10789}
10790
10791// SetFirstName sets the FirstName field's value.
10792func (s *User) SetFirstName(v string) *User {
10793	s.FirstName = &v
10794	return s
10795}
10796
10797// SetLastName sets the LastName field's value.
10798func (s *User) SetLastName(v string) *User {
10799	s.LastName = &v
10800	return s
10801}
10802
10803// SetStatus sets the Status field's value.
10804func (s *User) SetStatus(v string) *User {
10805	s.Status = &v
10806	return s
10807}
10808
10809// SetUserName sets the UserName field's value.
10810func (s *User) SetUserName(v string) *User {
10811	s.UserName = &v
10812	return s
10813}
10814
10815// Describes an action and whether the action is enabled or disabled for users
10816// during their streaming sessions.
10817type UserSetting struct {
10818	_ struct{} `type:"structure"`
10819
10820	// The action that is enabled or disabled.
10821	//
10822	// Action is a required field
10823	Action *string `type:"string" required:"true" enum:"Action"`
10824
10825	// Indicates whether the action is enabled or disabled.
10826	//
10827	// Permission is a required field
10828	Permission *string `type:"string" required:"true" enum:"Permission"`
10829}
10830
10831// String returns the string representation
10832func (s UserSetting) String() string {
10833	return awsutil.Prettify(s)
10834}
10835
10836// GoString returns the string representation
10837func (s UserSetting) GoString() string {
10838	return s.String()
10839}
10840
10841// Validate inspects the fields of the type to determine if they are valid.
10842func (s *UserSetting) Validate() error {
10843	invalidParams := request.ErrInvalidParams{Context: "UserSetting"}
10844	if s.Action == nil {
10845		invalidParams.Add(request.NewErrParamRequired("Action"))
10846	}
10847	if s.Permission == nil {
10848		invalidParams.Add(request.NewErrParamRequired("Permission"))
10849	}
10850
10851	if invalidParams.Len() > 0 {
10852		return invalidParams
10853	}
10854	return nil
10855}
10856
10857// SetAction sets the Action field's value.
10858func (s *UserSetting) SetAction(v string) *UserSetting {
10859	s.Action = &v
10860	return s
10861}
10862
10863// SetPermission sets the Permission field's value.
10864func (s *UserSetting) SetPermission(v string) *UserSetting {
10865	s.Permission = &v
10866	return s
10867}
10868
10869// Describes a user in the user pool and the associated stack.
10870type UserStackAssociation struct {
10871	_ struct{} `type:"structure"`
10872
10873	// The authentication type for the user.
10874	//
10875	// AuthenticationType is a required field
10876	AuthenticationType *string `type:"string" required:"true" enum:"AuthenticationType"`
10877
10878	// Specifies whether a welcome email is sent to a user after the user is created
10879	// in the user pool.
10880	SendEmailNotification *bool `type:"boolean"`
10881
10882	// The name of the stack that is associated with the user.
10883	//
10884	// StackName is a required field
10885	StackName *string `min:"1" type:"string" required:"true"`
10886
10887	// The email address of the user who is associated with the stack.
10888	//
10889	// Users' email addresses are case-sensitive.
10890	//
10891	// UserName is a required field
10892	UserName *string `min:"1" type:"string" required:"true" sensitive:"true"`
10893}
10894
10895// String returns the string representation
10896func (s UserStackAssociation) String() string {
10897	return awsutil.Prettify(s)
10898}
10899
10900// GoString returns the string representation
10901func (s UserStackAssociation) GoString() string {
10902	return s.String()
10903}
10904
10905// Validate inspects the fields of the type to determine if they are valid.
10906func (s *UserStackAssociation) Validate() error {
10907	invalidParams := request.ErrInvalidParams{Context: "UserStackAssociation"}
10908	if s.AuthenticationType == nil {
10909		invalidParams.Add(request.NewErrParamRequired("AuthenticationType"))
10910	}
10911	if s.StackName == nil {
10912		invalidParams.Add(request.NewErrParamRequired("StackName"))
10913	}
10914	if s.StackName != nil && len(*s.StackName) < 1 {
10915		invalidParams.Add(request.NewErrParamMinLen("StackName", 1))
10916	}
10917	if s.UserName == nil {
10918		invalidParams.Add(request.NewErrParamRequired("UserName"))
10919	}
10920	if s.UserName != nil && len(*s.UserName) < 1 {
10921		invalidParams.Add(request.NewErrParamMinLen("UserName", 1))
10922	}
10923
10924	if invalidParams.Len() > 0 {
10925		return invalidParams
10926	}
10927	return nil
10928}
10929
10930// SetAuthenticationType sets the AuthenticationType field's value.
10931func (s *UserStackAssociation) SetAuthenticationType(v string) *UserStackAssociation {
10932	s.AuthenticationType = &v
10933	return s
10934}
10935
10936// SetSendEmailNotification sets the SendEmailNotification field's value.
10937func (s *UserStackAssociation) SetSendEmailNotification(v bool) *UserStackAssociation {
10938	s.SendEmailNotification = &v
10939	return s
10940}
10941
10942// SetStackName sets the StackName field's value.
10943func (s *UserStackAssociation) SetStackName(v string) *UserStackAssociation {
10944	s.StackName = &v
10945	return s
10946}
10947
10948// SetUserName sets the UserName field's value.
10949func (s *UserStackAssociation) SetUserName(v string) *UserStackAssociation {
10950	s.UserName = &v
10951	return s
10952}
10953
10954// Describes the error that is returned when a user can’t be associated with
10955// or disassociated from a stack.
10956type UserStackAssociationError struct {
10957	_ struct{} `type:"structure"`
10958
10959	// The error code for the error that is returned when a user can’t be associated
10960	// with or disassociated from a stack.
10961	ErrorCode *string `type:"string" enum:"UserStackAssociationErrorCode"`
10962
10963	// The error message for the error that is returned when a user can’t be associated
10964	// with or disassociated from a stack.
10965	ErrorMessage *string `min:"1" type:"string"`
10966
10967	// Information about the user and associated stack.
10968	UserStackAssociation *UserStackAssociation `type:"structure"`
10969}
10970
10971// String returns the string representation
10972func (s UserStackAssociationError) String() string {
10973	return awsutil.Prettify(s)
10974}
10975
10976// GoString returns the string representation
10977func (s UserStackAssociationError) GoString() string {
10978	return s.String()
10979}
10980
10981// SetErrorCode sets the ErrorCode field's value.
10982func (s *UserStackAssociationError) SetErrorCode(v string) *UserStackAssociationError {
10983	s.ErrorCode = &v
10984	return s
10985}
10986
10987// SetErrorMessage sets the ErrorMessage field's value.
10988func (s *UserStackAssociationError) SetErrorMessage(v string) *UserStackAssociationError {
10989	s.ErrorMessage = &v
10990	return s
10991}
10992
10993// SetUserStackAssociation sets the UserStackAssociation field's value.
10994func (s *UserStackAssociationError) SetUserStackAssociation(v *UserStackAssociation) *UserStackAssociationError {
10995	s.UserStackAssociation = v
10996	return s
10997}
10998
10999// Describes VPC configuration information for fleets and image builders.
11000type VpcConfig struct {
11001	_ struct{} `type:"structure"`
11002
11003	// The identifiers of the security groups for the fleet or image builder.
11004	SecurityGroupIds []*string `type:"list"`
11005
11006	// The identifiers of the subnets to which a network interface is attached from
11007	// the fleet instance or image builder instance. Fleet instances use one or
11008	// more subnets. Image builder instances use one subnet.
11009	SubnetIds []*string `type:"list"`
11010}
11011
11012// String returns the string representation
11013func (s VpcConfig) String() string {
11014	return awsutil.Prettify(s)
11015}
11016
11017// GoString returns the string representation
11018func (s VpcConfig) GoString() string {
11019	return s.String()
11020}
11021
11022// SetSecurityGroupIds sets the SecurityGroupIds field's value.
11023func (s *VpcConfig) SetSecurityGroupIds(v []*string) *VpcConfig {
11024	s.SecurityGroupIds = v
11025	return s
11026}
11027
11028// SetSubnetIds sets the SubnetIds field's value.
11029func (s *VpcConfig) SetSubnetIds(v []*string) *VpcConfig {
11030	s.SubnetIds = v
11031	return s
11032}
11033
11034const (
11035	// AccessEndpointTypeStreaming is a AccessEndpointType enum value
11036	AccessEndpointTypeStreaming = "STREAMING"
11037)
11038
11039const (
11040	// ActionClipboardCopyFromLocalDevice is a Action enum value
11041	ActionClipboardCopyFromLocalDevice = "CLIPBOARD_COPY_FROM_LOCAL_DEVICE"
11042
11043	// ActionClipboardCopyToLocalDevice is a Action enum value
11044	ActionClipboardCopyToLocalDevice = "CLIPBOARD_COPY_TO_LOCAL_DEVICE"
11045
11046	// ActionFileUpload is a Action enum value
11047	ActionFileUpload = "FILE_UPLOAD"
11048
11049	// ActionFileDownload is a Action enum value
11050	ActionFileDownload = "FILE_DOWNLOAD"
11051
11052	// ActionPrintingToLocalDevice is a Action enum value
11053	ActionPrintingToLocalDevice = "PRINTING_TO_LOCAL_DEVICE"
11054)
11055
11056const (
11057	// AuthenticationTypeApi is a AuthenticationType enum value
11058	AuthenticationTypeApi = "API"
11059
11060	// AuthenticationTypeSaml is a AuthenticationType enum value
11061	AuthenticationTypeSaml = "SAML"
11062
11063	// AuthenticationTypeUserpool is a AuthenticationType enum value
11064	AuthenticationTypeUserpool = "USERPOOL"
11065)
11066
11067// The fleet attribute.
11068const (
11069	// FleetAttributeVpcConfiguration is a FleetAttribute enum value
11070	FleetAttributeVpcConfiguration = "VPC_CONFIGURATION"
11071
11072	// FleetAttributeVpcConfigurationSecurityGroupIds is a FleetAttribute enum value
11073	FleetAttributeVpcConfigurationSecurityGroupIds = "VPC_CONFIGURATION_SECURITY_GROUP_IDS"
11074
11075	// FleetAttributeDomainJoinInfo is a FleetAttribute enum value
11076	FleetAttributeDomainJoinInfo = "DOMAIN_JOIN_INFO"
11077
11078	// FleetAttributeIamRoleArn is a FleetAttribute enum value
11079	FleetAttributeIamRoleArn = "IAM_ROLE_ARN"
11080)
11081
11082const (
11083	// FleetErrorCodeIamServiceRoleMissingEniDescribeAction is a FleetErrorCode enum value
11084	FleetErrorCodeIamServiceRoleMissingEniDescribeAction = "IAM_SERVICE_ROLE_MISSING_ENI_DESCRIBE_ACTION"
11085
11086	// FleetErrorCodeIamServiceRoleMissingEniCreateAction is a FleetErrorCode enum value
11087	FleetErrorCodeIamServiceRoleMissingEniCreateAction = "IAM_SERVICE_ROLE_MISSING_ENI_CREATE_ACTION"
11088
11089	// FleetErrorCodeIamServiceRoleMissingEniDeleteAction is a FleetErrorCode enum value
11090	FleetErrorCodeIamServiceRoleMissingEniDeleteAction = "IAM_SERVICE_ROLE_MISSING_ENI_DELETE_ACTION"
11091
11092	// FleetErrorCodeNetworkInterfaceLimitExceeded is a FleetErrorCode enum value
11093	FleetErrorCodeNetworkInterfaceLimitExceeded = "NETWORK_INTERFACE_LIMIT_EXCEEDED"
11094
11095	// FleetErrorCodeInternalServiceError is a FleetErrorCode enum value
11096	FleetErrorCodeInternalServiceError = "INTERNAL_SERVICE_ERROR"
11097
11098	// FleetErrorCodeIamServiceRoleIsMissing is a FleetErrorCode enum value
11099	FleetErrorCodeIamServiceRoleIsMissing = "IAM_SERVICE_ROLE_IS_MISSING"
11100
11101	// FleetErrorCodeMachineRoleIsMissing is a FleetErrorCode enum value
11102	FleetErrorCodeMachineRoleIsMissing = "MACHINE_ROLE_IS_MISSING"
11103
11104	// FleetErrorCodeStsDisabledInRegion is a FleetErrorCode enum value
11105	FleetErrorCodeStsDisabledInRegion = "STS_DISABLED_IN_REGION"
11106
11107	// FleetErrorCodeSubnetHasInsufficientIpAddresses is a FleetErrorCode enum value
11108	FleetErrorCodeSubnetHasInsufficientIpAddresses = "SUBNET_HAS_INSUFFICIENT_IP_ADDRESSES"
11109
11110	// FleetErrorCodeIamServiceRoleMissingDescribeSubnetAction is a FleetErrorCode enum value
11111	FleetErrorCodeIamServiceRoleMissingDescribeSubnetAction = "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SUBNET_ACTION"
11112
11113	// FleetErrorCodeSubnetNotFound is a FleetErrorCode enum value
11114	FleetErrorCodeSubnetNotFound = "SUBNET_NOT_FOUND"
11115
11116	// FleetErrorCodeImageNotFound is a FleetErrorCode enum value
11117	FleetErrorCodeImageNotFound = "IMAGE_NOT_FOUND"
11118
11119	// FleetErrorCodeInvalidSubnetConfiguration is a FleetErrorCode enum value
11120	FleetErrorCodeInvalidSubnetConfiguration = "INVALID_SUBNET_CONFIGURATION"
11121
11122	// FleetErrorCodeSecurityGroupsNotFound is a FleetErrorCode enum value
11123	FleetErrorCodeSecurityGroupsNotFound = "SECURITY_GROUPS_NOT_FOUND"
11124
11125	// FleetErrorCodeIgwNotAttached is a FleetErrorCode enum value
11126	FleetErrorCodeIgwNotAttached = "IGW_NOT_ATTACHED"
11127
11128	// FleetErrorCodeIamServiceRoleMissingDescribeSecurityGroupsAction is a FleetErrorCode enum value
11129	FleetErrorCodeIamServiceRoleMissingDescribeSecurityGroupsAction = "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION"
11130
11131	// FleetErrorCodeDomainJoinErrorFileNotFound is a FleetErrorCode enum value
11132	FleetErrorCodeDomainJoinErrorFileNotFound = "DOMAIN_JOIN_ERROR_FILE_NOT_FOUND"
11133
11134	// FleetErrorCodeDomainJoinErrorAccessDenied is a FleetErrorCode enum value
11135	FleetErrorCodeDomainJoinErrorAccessDenied = "DOMAIN_JOIN_ERROR_ACCESS_DENIED"
11136
11137	// FleetErrorCodeDomainJoinErrorLogonFailure is a FleetErrorCode enum value
11138	FleetErrorCodeDomainJoinErrorLogonFailure = "DOMAIN_JOIN_ERROR_LOGON_FAILURE"
11139
11140	// FleetErrorCodeDomainJoinErrorInvalidParameter is a FleetErrorCode enum value
11141	FleetErrorCodeDomainJoinErrorInvalidParameter = "DOMAIN_JOIN_ERROR_INVALID_PARAMETER"
11142
11143	// FleetErrorCodeDomainJoinErrorMoreData is a FleetErrorCode enum value
11144	FleetErrorCodeDomainJoinErrorMoreData = "DOMAIN_JOIN_ERROR_MORE_DATA"
11145
11146	// FleetErrorCodeDomainJoinErrorNoSuchDomain is a FleetErrorCode enum value
11147	FleetErrorCodeDomainJoinErrorNoSuchDomain = "DOMAIN_JOIN_ERROR_NO_SUCH_DOMAIN"
11148
11149	// FleetErrorCodeDomainJoinErrorNotSupported is a FleetErrorCode enum value
11150	FleetErrorCodeDomainJoinErrorNotSupported = "DOMAIN_JOIN_ERROR_NOT_SUPPORTED"
11151
11152	// FleetErrorCodeDomainJoinNerrInvalidWorkgroupName is a FleetErrorCode enum value
11153	FleetErrorCodeDomainJoinNerrInvalidWorkgroupName = "DOMAIN_JOIN_NERR_INVALID_WORKGROUP_NAME"
11154
11155	// FleetErrorCodeDomainJoinNerrWorkstationNotStarted is a FleetErrorCode enum value
11156	FleetErrorCodeDomainJoinNerrWorkstationNotStarted = "DOMAIN_JOIN_NERR_WORKSTATION_NOT_STARTED"
11157
11158	// FleetErrorCodeDomainJoinErrorDsMachineAccountQuotaExceeded is a FleetErrorCode enum value
11159	FleetErrorCodeDomainJoinErrorDsMachineAccountQuotaExceeded = "DOMAIN_JOIN_ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED"
11160
11161	// FleetErrorCodeDomainJoinNerrPasswordExpired is a FleetErrorCode enum value
11162	FleetErrorCodeDomainJoinNerrPasswordExpired = "DOMAIN_JOIN_NERR_PASSWORD_EXPIRED"
11163
11164	// FleetErrorCodeDomainJoinInternalServiceError is a FleetErrorCode enum value
11165	FleetErrorCodeDomainJoinInternalServiceError = "DOMAIN_JOIN_INTERNAL_SERVICE_ERROR"
11166)
11167
11168const (
11169	// FleetStateStarting is a FleetState enum value
11170	FleetStateStarting = "STARTING"
11171
11172	// FleetStateRunning is a FleetState enum value
11173	FleetStateRunning = "RUNNING"
11174
11175	// FleetStateStopping is a FleetState enum value
11176	FleetStateStopping = "STOPPING"
11177
11178	// FleetStateStopped is a FleetState enum value
11179	FleetStateStopped = "STOPPED"
11180)
11181
11182const (
11183	// FleetTypeAlwaysOn is a FleetType enum value
11184	FleetTypeAlwaysOn = "ALWAYS_ON"
11185
11186	// FleetTypeOnDemand is a FleetType enum value
11187	FleetTypeOnDemand = "ON_DEMAND"
11188)
11189
11190const (
11191	// ImageBuilderStatePending is a ImageBuilderState enum value
11192	ImageBuilderStatePending = "PENDING"
11193
11194	// ImageBuilderStateUpdatingAgent is a ImageBuilderState enum value
11195	ImageBuilderStateUpdatingAgent = "UPDATING_AGENT"
11196
11197	// ImageBuilderStateRunning is a ImageBuilderState enum value
11198	ImageBuilderStateRunning = "RUNNING"
11199
11200	// ImageBuilderStateStopping is a ImageBuilderState enum value
11201	ImageBuilderStateStopping = "STOPPING"
11202
11203	// ImageBuilderStateStopped is a ImageBuilderState enum value
11204	ImageBuilderStateStopped = "STOPPED"
11205
11206	// ImageBuilderStateRebooting is a ImageBuilderState enum value
11207	ImageBuilderStateRebooting = "REBOOTING"
11208
11209	// ImageBuilderStateSnapshotting is a ImageBuilderState enum value
11210	ImageBuilderStateSnapshotting = "SNAPSHOTTING"
11211
11212	// ImageBuilderStateDeleting is a ImageBuilderState enum value
11213	ImageBuilderStateDeleting = "DELETING"
11214
11215	// ImageBuilderStateFailed is a ImageBuilderState enum value
11216	ImageBuilderStateFailed = "FAILED"
11217)
11218
11219const (
11220	// ImageBuilderStateChangeReasonCodeInternalError is a ImageBuilderStateChangeReasonCode enum value
11221	ImageBuilderStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
11222
11223	// ImageBuilderStateChangeReasonCodeImageUnavailable is a ImageBuilderStateChangeReasonCode enum value
11224	ImageBuilderStateChangeReasonCodeImageUnavailable = "IMAGE_UNAVAILABLE"
11225)
11226
11227const (
11228	// ImageStatePending is a ImageState enum value
11229	ImageStatePending = "PENDING"
11230
11231	// ImageStateAvailable is a ImageState enum value
11232	ImageStateAvailable = "AVAILABLE"
11233
11234	// ImageStateFailed is a ImageState enum value
11235	ImageStateFailed = "FAILED"
11236
11237	// ImageStateCopying is a ImageState enum value
11238	ImageStateCopying = "COPYING"
11239
11240	// ImageStateDeleting is a ImageState enum value
11241	ImageStateDeleting = "DELETING"
11242)
11243
11244const (
11245	// ImageStateChangeReasonCodeInternalError is a ImageStateChangeReasonCode enum value
11246	ImageStateChangeReasonCodeInternalError = "INTERNAL_ERROR"
11247
11248	// ImageStateChangeReasonCodeImageBuilderNotAvailable is a ImageStateChangeReasonCode enum value
11249	ImageStateChangeReasonCodeImageBuilderNotAvailable = "IMAGE_BUILDER_NOT_AVAILABLE"
11250
11251	// ImageStateChangeReasonCodeImageCopyFailure is a ImageStateChangeReasonCode enum value
11252	ImageStateChangeReasonCodeImageCopyFailure = "IMAGE_COPY_FAILURE"
11253)
11254
11255const (
11256	// MessageActionSuppress is a MessageAction enum value
11257	MessageActionSuppress = "SUPPRESS"
11258
11259	// MessageActionResend is a MessageAction enum value
11260	MessageActionResend = "RESEND"
11261)
11262
11263const (
11264	// PermissionEnabled is a Permission enum value
11265	PermissionEnabled = "ENABLED"
11266
11267	// PermissionDisabled is a Permission enum value
11268	PermissionDisabled = "DISABLED"
11269)
11270
11271const (
11272	// PlatformTypeWindows is a PlatformType enum value
11273	PlatformTypeWindows = "WINDOWS"
11274
11275	// PlatformTypeWindowsServer2016 is a PlatformType enum value
11276	PlatformTypeWindowsServer2016 = "WINDOWS_SERVER_2016"
11277
11278	// PlatformTypeWindowsServer2019 is a PlatformType enum value
11279	PlatformTypeWindowsServer2019 = "WINDOWS_SERVER_2019"
11280)
11281
11282const (
11283	// SessionConnectionStateConnected is a SessionConnectionState enum value
11284	SessionConnectionStateConnected = "CONNECTED"
11285
11286	// SessionConnectionStateNotConnected is a SessionConnectionState enum value
11287	SessionConnectionStateNotConnected = "NOT_CONNECTED"
11288)
11289
11290// Possible values for the state of a streaming session.
11291const (
11292	// SessionStateActive is a SessionState enum value
11293	SessionStateActive = "ACTIVE"
11294
11295	// SessionStatePending is a SessionState enum value
11296	SessionStatePending = "PENDING"
11297
11298	// SessionStateExpired is a SessionState enum value
11299	SessionStateExpired = "EXPIRED"
11300)
11301
11302const (
11303	// StackAttributeStorageConnectors is a StackAttribute enum value
11304	StackAttributeStorageConnectors = "STORAGE_CONNECTORS"
11305
11306	// StackAttributeStorageConnectorHomefolders is a StackAttribute enum value
11307	StackAttributeStorageConnectorHomefolders = "STORAGE_CONNECTOR_HOMEFOLDERS"
11308
11309	// StackAttributeStorageConnectorGoogleDrive is a StackAttribute enum value
11310	StackAttributeStorageConnectorGoogleDrive = "STORAGE_CONNECTOR_GOOGLE_DRIVE"
11311
11312	// StackAttributeStorageConnectorOneDrive is a StackAttribute enum value
11313	StackAttributeStorageConnectorOneDrive = "STORAGE_CONNECTOR_ONE_DRIVE"
11314
11315	// StackAttributeRedirectUrl is a StackAttribute enum value
11316	StackAttributeRedirectUrl = "REDIRECT_URL"
11317
11318	// StackAttributeFeedbackUrl is a StackAttribute enum value
11319	StackAttributeFeedbackUrl = "FEEDBACK_URL"
11320
11321	// StackAttributeThemeName is a StackAttribute enum value
11322	StackAttributeThemeName = "THEME_NAME"
11323
11324	// StackAttributeUserSettings is a StackAttribute enum value
11325	StackAttributeUserSettings = "USER_SETTINGS"
11326
11327	// StackAttributeEmbedHostDomains is a StackAttribute enum value
11328	StackAttributeEmbedHostDomains = "EMBED_HOST_DOMAINS"
11329
11330	// StackAttributeIamRoleArn is a StackAttribute enum value
11331	StackAttributeIamRoleArn = "IAM_ROLE_ARN"
11332
11333	// StackAttributeAccessEndpoints is a StackAttribute enum value
11334	StackAttributeAccessEndpoints = "ACCESS_ENDPOINTS"
11335)
11336
11337const (
11338	// StackErrorCodeStorageConnectorError is a StackErrorCode enum value
11339	StackErrorCodeStorageConnectorError = "STORAGE_CONNECTOR_ERROR"
11340
11341	// StackErrorCodeInternalServiceError is a StackErrorCode enum value
11342	StackErrorCodeInternalServiceError = "INTERNAL_SERVICE_ERROR"
11343)
11344
11345// The type of storage connector.
11346const (
11347	// StorageConnectorTypeHomefolders is a StorageConnectorType enum value
11348	StorageConnectorTypeHomefolders = "HOMEFOLDERS"
11349
11350	// StorageConnectorTypeGoogleDrive is a StorageConnectorType enum value
11351	StorageConnectorTypeGoogleDrive = "GOOGLE_DRIVE"
11352
11353	// StorageConnectorTypeOneDrive is a StorageConnectorType enum value
11354	StorageConnectorTypeOneDrive = "ONE_DRIVE"
11355)
11356
11357const (
11358	// UsageReportExecutionErrorCodeResourceNotFound is a UsageReportExecutionErrorCode enum value
11359	UsageReportExecutionErrorCodeResourceNotFound = "RESOURCE_NOT_FOUND"
11360
11361	// UsageReportExecutionErrorCodeAccessDenied is a UsageReportExecutionErrorCode enum value
11362	UsageReportExecutionErrorCodeAccessDenied = "ACCESS_DENIED"
11363
11364	// UsageReportExecutionErrorCodeInternalServiceError is a UsageReportExecutionErrorCode enum value
11365	UsageReportExecutionErrorCodeInternalServiceError = "INTERNAL_SERVICE_ERROR"
11366)
11367
11368const (
11369	// UsageReportScheduleDaily is a UsageReportSchedule enum value
11370	UsageReportScheduleDaily = "DAILY"
11371)
11372
11373const (
11374	// UserStackAssociationErrorCodeStackNotFound is a UserStackAssociationErrorCode enum value
11375	UserStackAssociationErrorCodeStackNotFound = "STACK_NOT_FOUND"
11376
11377	// UserStackAssociationErrorCodeUserNameNotFound is a UserStackAssociationErrorCode enum value
11378	UserStackAssociationErrorCodeUserNameNotFound = "USER_NAME_NOT_FOUND"
11379
11380	// UserStackAssociationErrorCodeInternalError is a UserStackAssociationErrorCode enum value
11381	UserStackAssociationErrorCodeInternalError = "INTERNAL_ERROR"
11382)
11383
11384const (
11385	// VisibilityTypePublic is a VisibilityType enum value
11386	VisibilityTypePublic = "PUBLIC"
11387
11388	// VisibilityTypePrivate is a VisibilityType enum value
11389	VisibilityTypePrivate = "PRIVATE"
11390
11391	// VisibilityTypeShared is a VisibilityType enum value
11392	VisibilityTypeShared = "SHARED"
11393)
11394