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