aws-sdk-appstream 1.60.0 → 1.80.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -27,7 +27,11 @@ require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
27
27
  require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
28
28
  require 'aws-sdk-core/plugins/transfer_encoding.rb'
29
29
  require 'aws-sdk-core/plugins/http_checksum.rb'
30
- require 'aws-sdk-core/plugins/signature_v4.rb'
30
+ require 'aws-sdk-core/plugins/checksum_algorithm.rb'
31
+ require 'aws-sdk-core/plugins/request_compression.rb'
32
+ require 'aws-sdk-core/plugins/defaults_mode.rb'
33
+ require 'aws-sdk-core/plugins/recursion_detection.rb'
34
+ require 'aws-sdk-core/plugins/sign.rb'
31
35
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
32
36
 
33
37
  Aws::Plugins::GlobalConfiguration.add_identifier(:appstream)
@@ -73,8 +77,13 @@ module Aws::AppStream
73
77
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
74
78
  add_plugin(Aws::Plugins::TransferEncoding)
75
79
  add_plugin(Aws::Plugins::HttpChecksum)
76
- add_plugin(Aws::Plugins::SignatureV4)
80
+ add_plugin(Aws::Plugins::ChecksumAlgorithm)
81
+ add_plugin(Aws::Plugins::RequestCompression)
82
+ add_plugin(Aws::Plugins::DefaultsMode)
83
+ add_plugin(Aws::Plugins::RecursionDetection)
84
+ add_plugin(Aws::Plugins::Sign)
77
85
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
86
+ add_plugin(Aws::AppStream::Plugins::Endpoints)
78
87
 
79
88
  # @overload initialize(options)
80
89
  # @param [Hash] options
@@ -175,10 +184,18 @@ module Aws::AppStream
175
184
  # Used only in `standard` and adaptive retry modes. Specifies whether to apply
176
185
  # a clock skew correction and retry requests with skewed client clocks.
177
186
  #
187
+ # @option options [String] :defaults_mode ("legacy")
188
+ # See {Aws::DefaultsModeConfiguration} for a list of the
189
+ # accepted modes and the configuration defaults that are included.
190
+ #
178
191
  # @option options [Boolean] :disable_host_prefix_injection (false)
179
192
  # Set to true to disable SDK automatically adding host prefix
180
193
  # to default service endpoint when available.
181
194
  #
195
+ # @option options [Boolean] :disable_request_compression (false)
196
+ # When set to 'true' the request body will not be compressed
197
+ # for supported operations.
198
+ #
182
199
  # @option options [String] :endpoint
183
200
  # The client endpoint is normally constructed from the `:region`
184
201
  # option. You should only configure an `:endpoint` when connecting
@@ -199,6 +216,10 @@ module Aws::AppStream
199
216
  # @option options [Boolean] :endpoint_discovery (false)
200
217
  # When set to `true`, endpoint discovery will be enabled for operations when available.
201
218
  #
219
+ # @option options [Boolean] :ignore_configured_endpoint_urls
220
+ # Setting to true disables use of endpoint URLs provided via environment
221
+ # variables and the shared configuration file.
222
+ #
202
223
  # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
203
224
  # The log formatter.
204
225
  #
@@ -219,6 +240,11 @@ module Aws::AppStream
219
240
  # Used when loading credentials from the shared credentials file
220
241
  # at HOME/.aws/credentials. When not specified, 'default' is used.
221
242
  #
243
+ # @option options [Integer] :request_min_compression_size_bytes (10240)
244
+ # The minimum size in bytes that triggers compression for request
245
+ # bodies. The value must be non-negative integer value between 0
246
+ # and 10485780 bytes inclusive.
247
+ #
222
248
  # @option options [Proc] :retry_backoff
223
249
  # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
224
250
  # This option is only used in the `legacy` retry mode.
@@ -264,6 +290,11 @@ module Aws::AppStream
264
290
  # in the future.
265
291
  #
266
292
  #
293
+ # @option options [String] :sdk_ua_app_id
294
+ # A unique and opaque application ID that is appended to the
295
+ # User-Agent header as app/<sdk_ua_app_id>. It should have a
296
+ # maximum length of 50.
297
+ #
267
298
  # @option options [String] :secret_access_key
268
299
  #
269
300
  # @option options [String] :session_token
@@ -287,6 +318,19 @@ module Aws::AppStream
287
318
  # ** Please note ** When response stubbing is enabled, no HTTP
288
319
  # requests are made, and retries are disabled.
289
320
  #
321
+ # @option options [Aws::TokenProvider] :token_provider
322
+ # A Bearer Token Provider. This can be an instance of any one of the
323
+ # following classes:
324
+ #
325
+ # * `Aws::StaticTokenProvider` - Used for configuring static, non-refreshing
326
+ # tokens.
327
+ #
328
+ # * `Aws::SSOTokenProvider` - Used for loading tokens from AWS SSO using an
329
+ # access token generated from `aws login`.
330
+ #
331
+ # When `:token_provider` is not configured directly, the `Aws::TokenProviderChain`
332
+ # will be used to search for tokens configured for your profile in shared configuration files.
333
+ #
290
334
  # @option options [Boolean] :use_dualstack_endpoint
291
335
  # When set to `true`, dualstack enabled endpoints (with `.aws` TLD)
292
336
  # will be used if available.
@@ -300,6 +344,9 @@ module Aws::AppStream
300
344
  # When `true`, request parameters are validated before
301
345
  # sending the request.
302
346
  #
347
+ # @option options [Aws::AppStream::EndpointProvider] :endpoint_provider
348
+ # The endpoint provider used to resolve endpoints. Any object that responds to `#resolve_endpoint(parameters)` where `parameters` is a Struct similar to `Aws::AppStream::EndpointParameters`
349
+ #
303
350
  # @option options [URI::HTTP,String] :http_proxy A proxy to send
304
351
  # requests through. Formatted like 'http://proxy.com:123'.
305
352
  #
@@ -307,7 +354,7 @@ module Aws::AppStream
307
354
  # seconds to wait when opening a HTTP session before raising a
308
355
  # `Timeout::Error`.
309
356
  #
310
- # @option options [Integer] :http_read_timeout (60) The default
357
+ # @option options [Float] :http_read_timeout (60) The default
311
358
  # number of seconds to wait for response data. This value can
312
359
  # safely be set per-request on the session.
313
360
  #
@@ -323,6 +370,9 @@ module Aws::AppStream
323
370
  # disables this behaviour. This value can safely be set per
324
371
  # request on the session.
325
372
  #
373
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
374
+ # in seconds.
375
+ #
326
376
  # @option options [Boolean] :http_wire_trace (false) When `true`,
327
377
  # HTTP debug output will be sent to the `:logger`.
328
378
  #
@@ -348,6 +398,40 @@ module Aws::AppStream
348
398
 
349
399
  # @!group API Operations
350
400
 
401
+ # Associates the specified app block builder with the specified app
402
+ # block.
403
+ #
404
+ # @option params [required, String] :app_block_arn
405
+ # The ARN of the app block.
406
+ #
407
+ # @option params [required, String] :app_block_builder_name
408
+ # The name of the app block builder.
409
+ #
410
+ # @return [Types::AssociateAppBlockBuilderAppBlockResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
411
+ #
412
+ # * {Types::AssociateAppBlockBuilderAppBlockResult#app_block_builder_app_block_association #app_block_builder_app_block_association} => Types::AppBlockBuilderAppBlockAssociation
413
+ #
414
+ # @example Request syntax with placeholder values
415
+ #
416
+ # resp = client.associate_app_block_builder_app_block({
417
+ # app_block_arn: "Arn", # required
418
+ # app_block_builder_name: "Name", # required
419
+ # })
420
+ #
421
+ # @example Response structure
422
+ #
423
+ # resp.app_block_builder_app_block_association.app_block_arn #=> String
424
+ # resp.app_block_builder_app_block_association.app_block_builder_name #=> String
425
+ #
426
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/AssociateAppBlockBuilderAppBlock AWS API Documentation
427
+ #
428
+ # @overload associate_app_block_builder_app_block(params = {})
429
+ # @param [Hash] params ({})
430
+ def associate_app_block_builder_app_block(params = {}, options = {})
431
+ req = build_request(:associate_app_block_builder_app_block, params)
432
+ req.send_request(options)
433
+ end
434
+
351
435
  # Associates the specified application with the specified fleet. This is
352
436
  # only supported for Elastic fleets.
353
437
  #
@@ -382,6 +466,36 @@ module Aws::AppStream
382
466
  req.send_request(options)
383
467
  end
384
468
 
469
+ # Associates an application to entitle.
470
+ #
471
+ # @option params [required, String] :stack_name
472
+ # The name of the stack.
473
+ #
474
+ # @option params [required, String] :entitlement_name
475
+ # The name of the entitlement.
476
+ #
477
+ # @option params [required, String] :application_identifier
478
+ # The identifier of the application.
479
+ #
480
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
481
+ #
482
+ # @example Request syntax with placeholder values
483
+ #
484
+ # resp = client.associate_application_to_entitlement({
485
+ # stack_name: "Name", # required
486
+ # entitlement_name: "Name", # required
487
+ # application_identifier: "String", # required
488
+ # })
489
+ #
490
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/AssociateApplicationToEntitlement AWS API Documentation
491
+ #
492
+ # @overload associate_application_to_entitlement(params = {})
493
+ # @param [Hash] params ({})
494
+ def associate_application_to_entitlement(params = {}, options = {})
495
+ req = build_request(:associate_application_to_entitlement, params)
496
+ req.send_request(options)
497
+ end
498
+
385
499
  # Associates the specified fleet with the specified stack.
386
500
  #
387
501
  # @option params [required, String] :fleet_name
@@ -426,7 +540,7 @@ module Aws::AppStream
426
540
  # {
427
541
  # stack_name: "String", # required
428
542
  # user_name: "Username", # required
429
- # authentication_type: "API", # required, accepts API, SAML, USERPOOL
543
+ # authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
430
544
  # send_email_notification: false,
431
545
  # },
432
546
  # ],
@@ -437,7 +551,7 @@ module Aws::AppStream
437
551
  # resp.errors #=> Array
438
552
  # resp.errors[0].user_stack_association.stack_name #=> String
439
553
  # resp.errors[0].user_stack_association.user_name #=> String
440
- # resp.errors[0].user_stack_association.authentication_type #=> String, one of "API", "SAML", "USERPOOL"
554
+ # resp.errors[0].user_stack_association.authentication_type #=> String, one of "API", "SAML", "USERPOOL", "AWS_AD"
441
555
  # resp.errors[0].user_stack_association.send_email_notification #=> Boolean
442
556
  # resp.errors[0].error_code #=> String, one of "STACK_NOT_FOUND", "USER_NAME_NOT_FOUND", "DIRECTORY_NOT_FOUND", "INTERNAL_ERROR"
443
557
  # resp.errors[0].error_message #=> String
@@ -467,7 +581,7 @@ module Aws::AppStream
467
581
  # {
468
582
  # stack_name: "String", # required
469
583
  # user_name: "Username", # required
470
- # authentication_type: "API", # required, accepts API, SAML, USERPOOL
584
+ # authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
471
585
  # send_email_notification: false,
472
586
  # },
473
587
  # ],
@@ -478,7 +592,7 @@ module Aws::AppStream
478
592
  # resp.errors #=> Array
479
593
  # resp.errors[0].user_stack_association.stack_name #=> String
480
594
  # resp.errors[0].user_stack_association.user_name #=> String
481
- # resp.errors[0].user_stack_association.authentication_type #=> String, one of "API", "SAML", "USERPOOL"
595
+ # resp.errors[0].user_stack_association.authentication_type #=> String, one of "API", "SAML", "USERPOOL", "AWS_AD"
482
596
  # resp.errors[0].user_stack_association.send_email_notification #=> Boolean
483
597
  # resp.errors[0].error_code #=> String, one of "STACK_NOT_FOUND", "USER_NAME_NOT_FOUND", "DIRECTORY_NOT_FOUND", "INTERNAL_ERROR"
484
598
  # resp.errors[0].error_message #=> String
@@ -561,12 +675,20 @@ module Aws::AppStream
561
675
  # @option params [required, Types::S3Location] :source_s3_location
562
676
  # The source S3 location of the app block.
563
677
  #
564
- # @option params [required, Types::ScriptDetails] :setup_script_details
565
- # The setup script details of the app block.
678
+ # @option params [Types::ScriptDetails] :setup_script_details
679
+ # The setup script details of the app block. This must be provided for
680
+ # the `CUSTOM` PackagingType.
566
681
  #
567
682
  # @option params [Hash<String,String>] :tags
568
683
  # The tags assigned to the app block.
569
684
  #
685
+ # @option params [Types::ScriptDetails] :post_setup_script_details
686
+ # The post setup script details of the app block. This can only be
687
+ # provided for the `APPSTREAM2` PackagingType.
688
+ #
689
+ # @option params [String] :packaging_type
690
+ # The packaging type of the app block.
691
+ #
570
692
  # @return [Types::CreateAppBlockResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
571
693
  #
572
694
  # * {Types::CreateAppBlockResult#app_block #app_block} => Types::AppBlock
@@ -579,12 +701,12 @@ module Aws::AppStream
579
701
  # display_name: "DisplayName",
580
702
  # source_s3_location: { # required
581
703
  # s3_bucket: "S3Bucket", # required
582
- # s3_key: "S3Key", # required
704
+ # s3_key: "S3Key",
583
705
  # },
584
- # setup_script_details: { # required
706
+ # setup_script_details: {
585
707
  # script_s3_location: { # required
586
708
  # s3_bucket: "S3Bucket", # required
587
- # s3_key: "S3Key", # required
709
+ # s3_key: "S3Key",
588
710
  # },
589
711
  # executable_path: "String", # required
590
712
  # executable_parameters: "String",
@@ -593,6 +715,16 @@ module Aws::AppStream
593
715
  # tags: {
594
716
  # "TagKey" => "TagValue",
595
717
  # },
718
+ # post_setup_script_details: {
719
+ # script_s3_location: { # required
720
+ # s3_bucket: "S3Bucket", # required
721
+ # s3_key: "S3Key",
722
+ # },
723
+ # executable_path: "String", # required
724
+ # executable_parameters: "String",
725
+ # timeout_in_seconds: 1, # required
726
+ # },
727
+ # packaging_type: "CUSTOM", # accepts CUSTOM, APPSTREAM2
596
728
  # })
597
729
  #
598
730
  # @example Response structure
@@ -609,6 +741,16 @@ module Aws::AppStream
609
741
  # resp.app_block.setup_script_details.executable_parameters #=> String
610
742
  # resp.app_block.setup_script_details.timeout_in_seconds #=> Integer
611
743
  # resp.app_block.created_time #=> Time
744
+ # resp.app_block.post_setup_script_details.script_s3_location.s3_bucket #=> String
745
+ # resp.app_block.post_setup_script_details.script_s3_location.s3_key #=> String
746
+ # resp.app_block.post_setup_script_details.executable_path #=> String
747
+ # resp.app_block.post_setup_script_details.executable_parameters #=> String
748
+ # resp.app_block.post_setup_script_details.timeout_in_seconds #=> Integer
749
+ # resp.app_block.packaging_type #=> String, one of "CUSTOM", "APPSTREAM2"
750
+ # resp.app_block.state #=> String, one of "INACTIVE", "ACTIVE"
751
+ # resp.app_block.app_block_errors #=> Array
752
+ # resp.app_block.app_block_errors[0].error_code #=> String
753
+ # resp.app_block.app_block_errors[0].error_message #=> String
612
754
  #
613
755
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateAppBlock AWS API Documentation
614
756
  #
@@ -619,6 +761,185 @@ module Aws::AppStream
619
761
  req.send_request(options)
620
762
  end
621
763
 
764
+ # Creates an app block builder.
765
+ #
766
+ # @option params [required, String] :name
767
+ # The unique name for the app block builder.
768
+ #
769
+ # @option params [String] :description
770
+ # The description of the app block builder.
771
+ #
772
+ # @option params [String] :display_name
773
+ # The display name of the app block builder.
774
+ #
775
+ # @option params [Hash<String,String>] :tags
776
+ # The tags to associate with the app block builder. A tag is a key-value
777
+ # pair, and the value is optional. For example, Environment=Test. If you
778
+ # do not specify a value, Environment=.
779
+ #
780
+ # If you do not specify a value, the value is set to an empty string.
781
+ #
782
+ # Generally allowed characters are: letters, numbers, and spaces
783
+ # representable in UTF-8, and the following special characters:
784
+ #
785
+ # \_ . : / = + \\ - @
786
+ #
787
+ # For more information, see [Tagging Your Resources][1] in the *Amazon
788
+ # AppStream 2.0 Administration Guide*.
789
+ #
790
+ #
791
+ #
792
+ # [1]: https://docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html
793
+ #
794
+ # @option params [required, String] :platform
795
+ # The platform of the app block builder.
796
+ #
797
+ # `WINDOWS_SERVER_2019` is the only valid value.
798
+ #
799
+ # @option params [required, String] :instance_type
800
+ # The instance type to use when launching the app block builder. The
801
+ # following instance types are available:
802
+ #
803
+ # * stream.standard.small
804
+ #
805
+ # * stream.standard.medium
806
+ #
807
+ # * stream.standard.large
808
+ #
809
+ # * stream.standard.xlarge
810
+ #
811
+ # * stream.standard.2xlarge
812
+ #
813
+ # @option params [required, Types::VpcConfig] :vpc_config
814
+ # The VPC configuration for the app block builder.
815
+ #
816
+ # App block builders require that you specify at least two subnets in
817
+ # different availability zones.
818
+ #
819
+ # @option params [Boolean] :enable_default_internet_access
820
+ # Enables or disables default internet access for the app block builder.
821
+ #
822
+ # @option params [String] :iam_role_arn
823
+ # The Amazon Resource Name (ARN) of the IAM role to apply to the app
824
+ # block builder. To assume a role, the app block builder calls the AWS
825
+ # Security Token Service (STS) `AssumeRole` API operation and passes the
826
+ # ARN of the role to use. The operation creates a new session with
827
+ # temporary credentials. AppStream 2.0 retrieves the temporary
828
+ # credentials and creates the **appstream\_machine\_role** credential
829
+ # profile on the instance.
830
+ #
831
+ # For more information, see [Using an IAM Role to Grant Permissions to
832
+ # Applications and Scripts Running on AppStream 2.0 Streaming
833
+ # Instances][1] in the *Amazon AppStream 2.0 Administration Guide*.
834
+ #
835
+ #
836
+ #
837
+ # [1]: https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html
838
+ #
839
+ # @option params [Array<Types::AccessEndpoint>] :access_endpoints
840
+ # The list of interface VPC endpoint (interface endpoint) objects.
841
+ # Administrators can connect to the app block builder only through the
842
+ # specified endpoints.
843
+ #
844
+ # @return [Types::CreateAppBlockBuilderResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
845
+ #
846
+ # * {Types::CreateAppBlockBuilderResult#app_block_builder #app_block_builder} => Types::AppBlockBuilder
847
+ #
848
+ # @example Request syntax with placeholder values
849
+ #
850
+ # resp = client.create_app_block_builder({
851
+ # name: "Name", # required
852
+ # description: "Description",
853
+ # display_name: "DisplayName",
854
+ # tags: {
855
+ # "TagKey" => "TagValue",
856
+ # },
857
+ # platform: "WINDOWS_SERVER_2019", # required, accepts WINDOWS_SERVER_2019
858
+ # instance_type: "String", # required
859
+ # vpc_config: { # required
860
+ # subnet_ids: ["String"],
861
+ # security_group_ids: ["String"],
862
+ # },
863
+ # enable_default_internet_access: false,
864
+ # iam_role_arn: "Arn",
865
+ # access_endpoints: [
866
+ # {
867
+ # endpoint_type: "STREAMING", # required, accepts STREAMING
868
+ # vpce_id: "String",
869
+ # },
870
+ # ],
871
+ # })
872
+ #
873
+ # @example Response structure
874
+ #
875
+ # resp.app_block_builder.arn #=> String
876
+ # resp.app_block_builder.name #=> String
877
+ # resp.app_block_builder.display_name #=> String
878
+ # resp.app_block_builder.description #=> String
879
+ # resp.app_block_builder.platform #=> String, one of "WINDOWS_SERVER_2019"
880
+ # resp.app_block_builder.instance_type #=> String
881
+ # resp.app_block_builder.enable_default_internet_access #=> Boolean
882
+ # resp.app_block_builder.iam_role_arn #=> String
883
+ # resp.app_block_builder.vpc_config.subnet_ids #=> Array
884
+ # resp.app_block_builder.vpc_config.subnet_ids[0] #=> String
885
+ # resp.app_block_builder.vpc_config.security_group_ids #=> Array
886
+ # resp.app_block_builder.vpc_config.security_group_ids[0] #=> String
887
+ # resp.app_block_builder.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
888
+ # resp.app_block_builder.created_time #=> Time
889
+ # resp.app_block_builder.app_block_builder_errors #=> Array
890
+ # resp.app_block_builder.app_block_builder_errors[0].error_code #=> String, one of "IAM_SERVICE_ROLE_MISSING_ENI_DESCRIBE_ACTION", "IAM_SERVICE_ROLE_MISSING_ENI_CREATE_ACTION", "IAM_SERVICE_ROLE_MISSING_ENI_DELETE_ACTION", "NETWORK_INTERFACE_LIMIT_EXCEEDED", "INTERNAL_SERVICE_ERROR", "IAM_SERVICE_ROLE_IS_MISSING", "MACHINE_ROLE_IS_MISSING", "STS_DISABLED_IN_REGION", "SUBNET_HAS_INSUFFICIENT_IP_ADDRESSES", "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SUBNET_ACTION", "SUBNET_NOT_FOUND", "IMAGE_NOT_FOUND", "INVALID_SUBNET_CONFIGURATION", "SECURITY_GROUPS_NOT_FOUND", "IGW_NOT_ATTACHED", "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION", "FLEET_STOPPED", "FLEET_INSTANCE_PROVISIONING_FAILURE", "DOMAIN_JOIN_ERROR_FILE_NOT_FOUND", "DOMAIN_JOIN_ERROR_ACCESS_DENIED", "DOMAIN_JOIN_ERROR_LOGON_FAILURE", "DOMAIN_JOIN_ERROR_INVALID_PARAMETER", "DOMAIN_JOIN_ERROR_MORE_DATA", "DOMAIN_JOIN_ERROR_NO_SUCH_DOMAIN", "DOMAIN_JOIN_ERROR_NOT_SUPPORTED", "DOMAIN_JOIN_NERR_INVALID_WORKGROUP_NAME", "DOMAIN_JOIN_NERR_WORKSTATION_NOT_STARTED", "DOMAIN_JOIN_ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED", "DOMAIN_JOIN_NERR_PASSWORD_EXPIRED", "DOMAIN_JOIN_INTERNAL_SERVICE_ERROR"
891
+ # resp.app_block_builder.app_block_builder_errors[0].error_message #=> String
892
+ # resp.app_block_builder.app_block_builder_errors[0].error_timestamp #=> Time
893
+ # resp.app_block_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR"
894
+ # resp.app_block_builder.state_change_reason.message #=> String
895
+ # resp.app_block_builder.access_endpoints #=> Array
896
+ # resp.app_block_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
897
+ # resp.app_block_builder.access_endpoints[0].vpce_id #=> String
898
+ #
899
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateAppBlockBuilder AWS API Documentation
900
+ #
901
+ # @overload create_app_block_builder(params = {})
902
+ # @param [Hash] params ({})
903
+ def create_app_block_builder(params = {}, options = {})
904
+ req = build_request(:create_app_block_builder, params)
905
+ req.send_request(options)
906
+ end
907
+
908
+ # Creates a URL to start a create app block builder streaming session.
909
+ #
910
+ # @option params [required, String] :app_block_builder_name
911
+ # The name of the app block builder.
912
+ #
913
+ # @option params [Integer] :validity
914
+ # The time that the streaming URL will be valid, in seconds. Specify a
915
+ # value between 1 and 604800 seconds. The default is 3600 seconds.
916
+ #
917
+ # @return [Types::CreateAppBlockBuilderStreamingURLResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
918
+ #
919
+ # * {Types::CreateAppBlockBuilderStreamingURLResult#streaming_url #streaming_url} => String
920
+ # * {Types::CreateAppBlockBuilderStreamingURLResult#expires #expires} => Time
921
+ #
922
+ # @example Request syntax with placeholder values
923
+ #
924
+ # resp = client.create_app_block_builder_streaming_url({
925
+ # app_block_builder_name: "Name", # required
926
+ # validity: 1,
927
+ # })
928
+ #
929
+ # @example Response structure
930
+ #
931
+ # resp.streaming_url #=> String
932
+ # resp.expires #=> Time
933
+ #
934
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateAppBlockBuilderStreamingURL AWS API Documentation
935
+ #
936
+ # @overload create_app_block_builder_streaming_url(params = {})
937
+ # @param [Hash] params ({})
938
+ def create_app_block_builder_streaming_url(params = {}, options = {})
939
+ req = build_request(:create_app_block_builder_streaming_url, params)
940
+ req.send_request(options)
941
+ end
942
+
622
943
  # Creates an application.
623
944
  #
624
945
  # Applications are an Amazon AppStream 2.0 resource that stores the
@@ -679,7 +1000,7 @@ module Aws::AppStream
679
1000
  # description: "Description",
680
1001
  # icon_s3_location: { # required
681
1002
  # s3_bucket: "S3Bucket", # required
682
- # s3_key: "S3Key", # required
1003
+ # s3_key: "S3Key",
683
1004
  # },
684
1005
  # launch_path: "String", # required
685
1006
  # working_directory: "String",
@@ -739,6 +1060,18 @@ module Aws::AppStream
739
1060
  # The credentials for the service account used by the fleet or image
740
1061
  # builder to connect to the directory.
741
1062
  #
1063
+ # @option params [Types::CertificateBasedAuthProperties] :certificate_based_auth_properties
1064
+ # The certificate-based authentication properties used to authenticate
1065
+ # SAML 2.0 Identity Provider (IdP) user identities to Active Directory
1066
+ # domain-joined streaming instances. Fallback is turned on by default
1067
+ # when certificate-based authentication is **Enabled** . Fallback allows
1068
+ # users to log in using their AD domain password if certificate-based
1069
+ # authentication is unsuccessful, or to unlock a desktop lock screen.
1070
+ # **Enabled\_no\_directory\_login\_fallback** enables certificate-based
1071
+ # authentication, but does not allow users to log in using their AD
1072
+ # domain password. Users will be disconnected to re-authenticate using
1073
+ # certificates.
1074
+ #
742
1075
  # @return [Types::CreateDirectoryConfigResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
743
1076
  #
744
1077
  # * {Types::CreateDirectoryConfigResult#directory_config #directory_config} => Types::DirectoryConfig
@@ -752,6 +1085,10 @@ module Aws::AppStream
752
1085
  # account_name: "AccountName", # required
753
1086
  # account_password: "AccountPassword", # required
754
1087
  # },
1088
+ # certificate_based_auth_properties: {
1089
+ # status: "DISABLED", # accepts DISABLED, ENABLED, ENABLED_NO_DIRECTORY_LOGIN_FALLBACK
1090
+ # certificate_authority_arn: "Arn",
1091
+ # },
755
1092
  # })
756
1093
  #
757
1094
  # @example Response structure
@@ -762,6 +1099,8 @@ module Aws::AppStream
762
1099
  # resp.directory_config.service_account_credentials.account_name #=> String
763
1100
  # resp.directory_config.service_account_credentials.account_password #=> String
764
1101
  # resp.directory_config.created_time #=> Time
1102
+ # resp.directory_config.certificate_based_auth_properties.status #=> String, one of "DISABLED", "ENABLED", "ENABLED_NO_DIRECTORY_LOGIN_FALLBACK"
1103
+ # resp.directory_config.certificate_based_auth_properties.certificate_authority_arn #=> String
765
1104
  #
766
1105
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateDirectoryConfig AWS API Documentation
767
1106
  #
@@ -772,8 +1111,71 @@ module Aws::AppStream
772
1111
  req.send_request(options)
773
1112
  end
774
1113
 
775
- # Creates a fleet. A fleet consists of streaming instances that run a
776
- # specified image when using Always-On or On-Demand.
1114
+ # Creates a new entitlement. Entitlements control access to specific
1115
+ # applications within a stack, based on user attributes. Entitlements
1116
+ # apply to SAML 2.0 federated user identities. Amazon AppStream 2.0 user
1117
+ # pool and streaming URL users are entitled to all applications in a
1118
+ # stack. Entitlements don't apply to the desktop stream view
1119
+ # application, or to applications managed by a dynamic app provider
1120
+ # using the Dynamic Application Framework.
1121
+ #
1122
+ # @option params [required, String] :name
1123
+ # The name of the entitlement.
1124
+ #
1125
+ # @option params [required, String] :stack_name
1126
+ # The name of the stack with which the entitlement is associated.
1127
+ #
1128
+ # @option params [String] :description
1129
+ # The description of the entitlement.
1130
+ #
1131
+ # @option params [required, String] :app_visibility
1132
+ # Specifies whether all or selected apps are entitled.
1133
+ #
1134
+ # @option params [required, Array<Types::EntitlementAttribute>] :attributes
1135
+ # The attributes of the entitlement.
1136
+ #
1137
+ # @return [Types::CreateEntitlementResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1138
+ #
1139
+ # * {Types::CreateEntitlementResult#entitlement #entitlement} => Types::Entitlement
1140
+ #
1141
+ # @example Request syntax with placeholder values
1142
+ #
1143
+ # resp = client.create_entitlement({
1144
+ # name: "Name", # required
1145
+ # stack_name: "Name", # required
1146
+ # description: "Description",
1147
+ # app_visibility: "ALL", # required, accepts ALL, ASSOCIATED
1148
+ # attributes: [ # required
1149
+ # {
1150
+ # name: "String", # required
1151
+ # value: "String", # required
1152
+ # },
1153
+ # ],
1154
+ # })
1155
+ #
1156
+ # @example Response structure
1157
+ #
1158
+ # resp.entitlement.name #=> String
1159
+ # resp.entitlement.stack_name #=> String
1160
+ # resp.entitlement.description #=> String
1161
+ # resp.entitlement.app_visibility #=> String, one of "ALL", "ASSOCIATED"
1162
+ # resp.entitlement.attributes #=> Array
1163
+ # resp.entitlement.attributes[0].name #=> String
1164
+ # resp.entitlement.attributes[0].value #=> String
1165
+ # resp.entitlement.created_time #=> Time
1166
+ # resp.entitlement.last_modified_time #=> Time
1167
+ #
1168
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateEntitlement AWS API Documentation
1169
+ #
1170
+ # @overload create_entitlement(params = {})
1171
+ # @param [Hash] params ({})
1172
+ def create_entitlement(params = {}, options = {})
1173
+ req = build_request(:create_entitlement, params)
1174
+ req.send_request(options)
1175
+ end
1176
+
1177
+ # Creates a fleet. A fleet consists of streaming instances that your
1178
+ # users access for their applications and desktops.
777
1179
  #
778
1180
  # @option params [required, String] :name
779
1181
  # A unique name for the fleet.
@@ -794,6 +1196,10 @@ module Aws::AppStream
794
1196
  #
795
1197
  # * stream.standard.large
796
1198
  #
1199
+ # * stream.standard.xlarge
1200
+ #
1201
+ # * stream.standard.2xlarge
1202
+ #
797
1203
  # * stream.compute.large
798
1204
  #
799
1205
  # * stream.compute.xlarge
@@ -860,6 +1266,12 @@ module Aws::AppStream
860
1266
  #
861
1267
  # * stream.standard.medium
862
1268
  #
1269
+ # * stream.standard.large
1270
+ #
1271
+ # * stream.standard.xlarge
1272
+ #
1273
+ # * stream.standard.2xlarge
1274
+ #
863
1275
  # @option params [String] :fleet_type
864
1276
  # The fleet type.
865
1277
  #
@@ -892,7 +1304,7 @@ module Aws::AppStream
892
1304
  # open documents before being disconnected. After this time elapses, the
893
1305
  # instance is terminated and replaced by a new instance.
894
1306
  #
895
- # Specify a value between 600 and 360000.
1307
+ # Specify a value between 600 and 432000.
896
1308
  #
897
1309
  # @option params [Integer] :disconnect_timeout_in_seconds
898
1310
  # The amount of time that a streaming session remains active after users
@@ -1002,6 +1414,14 @@ module Aws::AppStream
1002
1414
  # can redirect to the fleet streaming session, when using the Windows
1003
1415
  # native client. This is allowed but not required for Elastic fleets.
1004
1416
  #
1417
+ # @option params [Types::S3Location] :session_script_s3_location
1418
+ # The S3 location of the session scripts configuration zip file. This
1419
+ # only applies to Elastic fleets.
1420
+ #
1421
+ # @option params [Integer] :max_sessions_per_instance
1422
+ # The maximum number of user sessions on an instance. This only applies
1423
+ # to multi-session fleets.
1424
+ #
1005
1425
  # @return [Types::CreateFleetResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1006
1426
  #
1007
1427
  # * {Types::CreateFleetResult#fleet #fleet} => Types::Fleet
@@ -1010,12 +1430,13 @@ module Aws::AppStream
1010
1430
  #
1011
1431
  # resp = client.create_fleet({
1012
1432
  # name: "Name", # required
1013
- # image_name: "String",
1433
+ # image_name: "Name",
1014
1434
  # image_arn: "Arn",
1015
1435
  # instance_type: "String", # required
1016
1436
  # fleet_type: "ALWAYS_ON", # accepts ALWAYS_ON, ON_DEMAND, ELASTIC
1017
1437
  # compute_capacity: {
1018
- # desired_instances: 1, # required
1438
+ # desired_instances: 1,
1439
+ # desired_sessions: 1,
1019
1440
  # },
1020
1441
  # vpc_config: {
1021
1442
  # subnet_ids: ["String"],
@@ -1039,6 +1460,11 @@ module Aws::AppStream
1039
1460
  # platform: "WINDOWS", # accepts WINDOWS, WINDOWS_SERVER_2016, WINDOWS_SERVER_2019, AMAZON_LINUX2
1040
1461
  # max_concurrent_sessions: 1,
1041
1462
  # usb_device_filter_strings: ["UsbDeviceFilterString"],
1463
+ # session_script_s3_location: {
1464
+ # s3_bucket: "S3Bucket", # required
1465
+ # s3_key: "S3Key",
1466
+ # },
1467
+ # max_sessions_per_instance: 1,
1042
1468
  # })
1043
1469
  #
1044
1470
  # @example Response structure
@@ -1055,6 +1481,10 @@ module Aws::AppStream
1055
1481
  # resp.fleet.compute_capacity_status.running #=> Integer
1056
1482
  # resp.fleet.compute_capacity_status.in_use #=> Integer
1057
1483
  # resp.fleet.compute_capacity_status.available #=> Integer
1484
+ # resp.fleet.compute_capacity_status.desired_user_sessions #=> Integer
1485
+ # resp.fleet.compute_capacity_status.available_user_sessions #=> Integer
1486
+ # resp.fleet.compute_capacity_status.active_user_sessions #=> Integer
1487
+ # resp.fleet.compute_capacity_status.actual_user_sessions #=> Integer
1058
1488
  # resp.fleet.max_user_duration_in_seconds #=> Integer
1059
1489
  # resp.fleet.disconnect_timeout_in_seconds #=> Integer
1060
1490
  # resp.fleet.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
@@ -1076,6 +1506,9 @@ module Aws::AppStream
1076
1506
  # resp.fleet.max_concurrent_sessions #=> Integer
1077
1507
  # resp.fleet.usb_device_filter_strings #=> Array
1078
1508
  # resp.fleet.usb_device_filter_strings[0] #=> String
1509
+ # resp.fleet.session_script_s3_location.s3_bucket #=> String
1510
+ # resp.fleet.session_script_s3_location.s3_key #=> String
1511
+ # resp.fleet.max_sessions_per_instance #=> Integer
1079
1512
  #
1080
1513
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateFleet AWS API Documentation
1081
1514
  #
@@ -1409,6 +1842,10 @@ module Aws::AppStream
1409
1842
  # an iframe. You must approve the domains that you want to host embedded
1410
1843
  # AppStream 2.0 streaming sessions.
1411
1844
  #
1845
+ # @option params [Types::StreamingExperienceSettings] :streaming_experience_settings
1846
+ # The streaming protocol you want your stack to prefer. This can be UDP
1847
+ # or TCP. Currently, UDP is only supported in the Windows native client.
1848
+ #
1412
1849
  # @return [Types::CreateStackResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1413
1850
  #
1414
1851
  # * {Types::CreateStackResult#stack #stack} => Types::Stack
@@ -1448,6 +1885,9 @@ module Aws::AppStream
1448
1885
  # },
1449
1886
  # ],
1450
1887
  # embed_host_domains: ["EmbedHostDomain"],
1888
+ # streaming_experience_settings: {
1889
+ # preferred_protocol: "TCP", # accepts TCP, UDP
1890
+ # },
1451
1891
  # })
1452
1892
  #
1453
1893
  # @example Response structure
@@ -1478,6 +1918,7 @@ module Aws::AppStream
1478
1918
  # resp.stack.access_endpoints[0].vpce_id #=> String
1479
1919
  # resp.stack.embed_host_domains #=> Array
1480
1920
  # resp.stack.embed_host_domains[0] #=> String
1921
+ # resp.stack.streaming_experience_settings.preferred_protocol #=> String, one of "TCP", "UDP"
1481
1922
  #
1482
1923
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateStack AWS API Documentation
1483
1924
  #
@@ -1737,7 +2178,7 @@ module Aws::AppStream
1737
2178
  # message_action: "SUPPRESS", # accepts SUPPRESS, RESEND
1738
2179
  # first_name: "UserAttributeValue",
1739
2180
  # last_name: "UserAttributeValue",
1740
- # authentication_type: "API", # required, accepts API, SAML, USERPOOL
2181
+ # authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
1741
2182
  # })
1742
2183
  #
1743
2184
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateUser AWS API Documentation
@@ -1771,6 +2212,31 @@ module Aws::AppStream
1771
2212
  req.send_request(options)
1772
2213
  end
1773
2214
 
2215
+ # Deletes an app block builder.
2216
+ #
2217
+ # An app block builder can only be deleted when it has no association
2218
+ # with an app block.
2219
+ #
2220
+ # @option params [required, String] :name
2221
+ # The name of the app block builder.
2222
+ #
2223
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2224
+ #
2225
+ # @example Request syntax with placeholder values
2226
+ #
2227
+ # resp = client.delete_app_block_builder({
2228
+ # name: "Name", # required
2229
+ # })
2230
+ #
2231
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteAppBlockBuilder AWS API Documentation
2232
+ #
2233
+ # @overload delete_app_block_builder(params = {})
2234
+ # @param [Hash] params ({})
2235
+ def delete_app_block_builder(params = {}, options = {})
2236
+ req = build_request(:delete_app_block_builder, params)
2237
+ req.send_request(options)
2238
+ end
2239
+
1774
2240
  # Deletes an application.
1775
2241
  #
1776
2242
  # @option params [required, String] :name
@@ -1817,6 +2283,32 @@ module Aws::AppStream
1817
2283
  req.send_request(options)
1818
2284
  end
1819
2285
 
2286
+ # Deletes the specified entitlement.
2287
+ #
2288
+ # @option params [required, String] :name
2289
+ # The name of the entitlement.
2290
+ #
2291
+ # @option params [required, String] :stack_name
2292
+ # The name of the stack with which the entitlement is associated.
2293
+ #
2294
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
2295
+ #
2296
+ # @example Request syntax with placeholder values
2297
+ #
2298
+ # resp = client.delete_entitlement({
2299
+ # name: "Name", # required
2300
+ # stack_name: "Name", # required
2301
+ # })
2302
+ #
2303
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteEntitlement AWS API Documentation
2304
+ #
2305
+ # @overload delete_entitlement(params = {})
2306
+ # @param [Hash] params ({})
2307
+ def delete_entitlement(params = {}, options = {})
2308
+ req = build_request(:delete_entitlement, params)
2309
+ req.send_request(options)
2310
+ end
2311
+
1820
2312
  # Deletes the specified fleet.
1821
2313
  #
1822
2314
  # @option params [required, String] :name
@@ -2050,7 +2542,7 @@ module Aws::AppStream
2050
2542
  #
2051
2543
  # resp = client.delete_user({
2052
2544
  # user_name: "Username", # required
2053
- # authentication_type: "API", # required, accepts API, SAML, USERPOOL
2545
+ # authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
2054
2546
  # })
2055
2547
  #
2056
2548
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteUser AWS API Documentation
@@ -2062,19 +2554,131 @@ module Aws::AppStream
2062
2554
  req.send_request(options)
2063
2555
  end
2064
2556
 
2065
- # Retrieves a list that describes one or more app blocks.
2557
+ # Retrieves a list that describes one or more app block builder
2558
+ # associations.
2066
2559
  #
2067
- # @option params [Array<String>] :arns
2068
- # The ARNs of the app blocks.
2560
+ # @option params [String] :app_block_arn
2561
+ # The ARN of the app block.
2562
+ #
2563
+ # @option params [String] :app_block_builder_name
2564
+ # The name of the app block builder.
2565
+ #
2566
+ # @option params [Integer] :max_results
2567
+ # The maximum size of each page of results.
2069
2568
  #
2070
2569
  # @option params [String] :next_token
2071
2570
  # The pagination token used to retrieve the next page of results for
2072
2571
  # this operation.
2073
2572
  #
2074
- # @option params [Integer] :max_results
2075
- # The maximum size of each page of results.
2573
+ # @return [Types::DescribeAppBlockBuilderAppBlockAssociationsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2076
2574
  #
2077
- # @return [Types::DescribeAppBlocksResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2575
+ # * {Types::DescribeAppBlockBuilderAppBlockAssociationsResult#app_block_builder_app_block_associations #app_block_builder_app_block_associations} => Array&lt;Types::AppBlockBuilderAppBlockAssociation&gt;
2576
+ # * {Types::DescribeAppBlockBuilderAppBlockAssociationsResult#next_token #next_token} => String
2577
+ #
2578
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2579
+ #
2580
+ # @example Request syntax with placeholder values
2581
+ #
2582
+ # resp = client.describe_app_block_builder_app_block_associations({
2583
+ # app_block_arn: "Arn",
2584
+ # app_block_builder_name: "Name",
2585
+ # max_results: 1,
2586
+ # next_token: "String",
2587
+ # })
2588
+ #
2589
+ # @example Response structure
2590
+ #
2591
+ # resp.app_block_builder_app_block_associations #=> Array
2592
+ # resp.app_block_builder_app_block_associations[0].app_block_arn #=> String
2593
+ # resp.app_block_builder_app_block_associations[0].app_block_builder_name #=> String
2594
+ # resp.next_token #=> String
2595
+ #
2596
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeAppBlockBuilderAppBlockAssociations AWS API Documentation
2597
+ #
2598
+ # @overload describe_app_block_builder_app_block_associations(params = {})
2599
+ # @param [Hash] params ({})
2600
+ def describe_app_block_builder_app_block_associations(params = {}, options = {})
2601
+ req = build_request(:describe_app_block_builder_app_block_associations, params)
2602
+ req.send_request(options)
2603
+ end
2604
+
2605
+ # Retrieves a list that describes one or more app block builders.
2606
+ #
2607
+ # @option params [Array<String>] :names
2608
+ # The names of the app block builders.
2609
+ #
2610
+ # @option params [String] :next_token
2611
+ # The pagination token used to retrieve the next page of results for
2612
+ # this operation.
2613
+ #
2614
+ # @option params [Integer] :max_results
2615
+ # The maximum size of each page of results. The maximum value is 25.
2616
+ #
2617
+ # @return [Types::DescribeAppBlockBuildersResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2618
+ #
2619
+ # * {Types::DescribeAppBlockBuildersResult#app_block_builders #app_block_builders} => Array&lt;Types::AppBlockBuilder&gt;
2620
+ # * {Types::DescribeAppBlockBuildersResult#next_token #next_token} => String
2621
+ #
2622
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
2623
+ #
2624
+ # @example Request syntax with placeholder values
2625
+ #
2626
+ # resp = client.describe_app_block_builders({
2627
+ # names: ["String"],
2628
+ # next_token: "String",
2629
+ # max_results: 1,
2630
+ # })
2631
+ #
2632
+ # @example Response structure
2633
+ #
2634
+ # resp.app_block_builders #=> Array
2635
+ # resp.app_block_builders[0].arn #=> String
2636
+ # resp.app_block_builders[0].name #=> String
2637
+ # resp.app_block_builders[0].display_name #=> String
2638
+ # resp.app_block_builders[0].description #=> String
2639
+ # resp.app_block_builders[0].platform #=> String, one of "WINDOWS_SERVER_2019"
2640
+ # resp.app_block_builders[0].instance_type #=> String
2641
+ # resp.app_block_builders[0].enable_default_internet_access #=> Boolean
2642
+ # resp.app_block_builders[0].iam_role_arn #=> String
2643
+ # resp.app_block_builders[0].vpc_config.subnet_ids #=> Array
2644
+ # resp.app_block_builders[0].vpc_config.subnet_ids[0] #=> String
2645
+ # resp.app_block_builders[0].vpc_config.security_group_ids #=> Array
2646
+ # resp.app_block_builders[0].vpc_config.security_group_ids[0] #=> String
2647
+ # resp.app_block_builders[0].state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
2648
+ # resp.app_block_builders[0].created_time #=> Time
2649
+ # resp.app_block_builders[0].app_block_builder_errors #=> Array
2650
+ # resp.app_block_builders[0].app_block_builder_errors[0].error_code #=> String, one of "IAM_SERVICE_ROLE_MISSING_ENI_DESCRIBE_ACTION", "IAM_SERVICE_ROLE_MISSING_ENI_CREATE_ACTION", "IAM_SERVICE_ROLE_MISSING_ENI_DELETE_ACTION", "NETWORK_INTERFACE_LIMIT_EXCEEDED", "INTERNAL_SERVICE_ERROR", "IAM_SERVICE_ROLE_IS_MISSING", "MACHINE_ROLE_IS_MISSING", "STS_DISABLED_IN_REGION", "SUBNET_HAS_INSUFFICIENT_IP_ADDRESSES", "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SUBNET_ACTION", "SUBNET_NOT_FOUND", "IMAGE_NOT_FOUND", "INVALID_SUBNET_CONFIGURATION", "SECURITY_GROUPS_NOT_FOUND", "IGW_NOT_ATTACHED", "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION", "FLEET_STOPPED", "FLEET_INSTANCE_PROVISIONING_FAILURE", "DOMAIN_JOIN_ERROR_FILE_NOT_FOUND", "DOMAIN_JOIN_ERROR_ACCESS_DENIED", "DOMAIN_JOIN_ERROR_LOGON_FAILURE", "DOMAIN_JOIN_ERROR_INVALID_PARAMETER", "DOMAIN_JOIN_ERROR_MORE_DATA", "DOMAIN_JOIN_ERROR_NO_SUCH_DOMAIN", "DOMAIN_JOIN_ERROR_NOT_SUPPORTED", "DOMAIN_JOIN_NERR_INVALID_WORKGROUP_NAME", "DOMAIN_JOIN_NERR_WORKSTATION_NOT_STARTED", "DOMAIN_JOIN_ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED", "DOMAIN_JOIN_NERR_PASSWORD_EXPIRED", "DOMAIN_JOIN_INTERNAL_SERVICE_ERROR"
2651
+ # resp.app_block_builders[0].app_block_builder_errors[0].error_message #=> String
2652
+ # resp.app_block_builders[0].app_block_builder_errors[0].error_timestamp #=> Time
2653
+ # resp.app_block_builders[0].state_change_reason.code #=> String, one of "INTERNAL_ERROR"
2654
+ # resp.app_block_builders[0].state_change_reason.message #=> String
2655
+ # resp.app_block_builders[0].access_endpoints #=> Array
2656
+ # resp.app_block_builders[0].access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
2657
+ # resp.app_block_builders[0].access_endpoints[0].vpce_id #=> String
2658
+ # resp.next_token #=> String
2659
+ #
2660
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeAppBlockBuilders AWS API Documentation
2661
+ #
2662
+ # @overload describe_app_block_builders(params = {})
2663
+ # @param [Hash] params ({})
2664
+ def describe_app_block_builders(params = {}, options = {})
2665
+ req = build_request(:describe_app_block_builders, params)
2666
+ req.send_request(options)
2667
+ end
2668
+
2669
+ # Retrieves a list that describes one or more app blocks.
2670
+ #
2671
+ # @option params [Array<String>] :arns
2672
+ # The ARNs of the app blocks.
2673
+ #
2674
+ # @option params [String] :next_token
2675
+ # The pagination token used to retrieve the next page of results for
2676
+ # this operation.
2677
+ #
2678
+ # @option params [Integer] :max_results
2679
+ # The maximum size of each page of results.
2680
+ #
2681
+ # @return [Types::DescribeAppBlocksResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2078
2682
  #
2079
2683
  # * {Types::DescribeAppBlocksResult#app_blocks #app_blocks} => Array&lt;Types::AppBlock&gt;
2080
2684
  # * {Types::DescribeAppBlocksResult#next_token #next_token} => String
@@ -2102,6 +2706,16 @@ module Aws::AppStream
2102
2706
  # resp.app_blocks[0].setup_script_details.executable_parameters #=> String
2103
2707
  # resp.app_blocks[0].setup_script_details.timeout_in_seconds #=> Integer
2104
2708
  # resp.app_blocks[0].created_time #=> Time
2709
+ # resp.app_blocks[0].post_setup_script_details.script_s3_location.s3_bucket #=> String
2710
+ # resp.app_blocks[0].post_setup_script_details.script_s3_location.s3_key #=> String
2711
+ # resp.app_blocks[0].post_setup_script_details.executable_path #=> String
2712
+ # resp.app_blocks[0].post_setup_script_details.executable_parameters #=> String
2713
+ # resp.app_blocks[0].post_setup_script_details.timeout_in_seconds #=> Integer
2714
+ # resp.app_blocks[0].packaging_type #=> String, one of "CUSTOM", "APPSTREAM2"
2715
+ # resp.app_blocks[0].state #=> String, one of "INACTIVE", "ACTIVE"
2716
+ # resp.app_blocks[0].app_block_errors #=> Array
2717
+ # resp.app_blocks[0].app_block_errors[0].error_code #=> String
2718
+ # resp.app_blocks[0].app_block_errors[0].error_message #=> String
2105
2719
  # resp.next_token #=> String
2106
2720
  #
2107
2721
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeAppBlocks AWS API Documentation
@@ -2259,6 +2873,8 @@ module Aws::AppStream
2259
2873
  # resp.directory_configs[0].service_account_credentials.account_name #=> String
2260
2874
  # resp.directory_configs[0].service_account_credentials.account_password #=> String
2261
2875
  # resp.directory_configs[0].created_time #=> Time
2876
+ # resp.directory_configs[0].certificate_based_auth_properties.status #=> String, one of "DISABLED", "ENABLED", "ENABLED_NO_DIRECTORY_LOGIN_FALLBACK"
2877
+ # resp.directory_configs[0].certificate_based_auth_properties.certificate_authority_arn #=> String
2262
2878
  # resp.next_token #=> String
2263
2879
  #
2264
2880
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeDirectoryConfigs AWS API Documentation
@@ -2270,6 +2886,58 @@ module Aws::AppStream
2270
2886
  req.send_request(options)
2271
2887
  end
2272
2888
 
2889
+ # Retrieves a list that describes one of more entitlements.
2890
+ #
2891
+ # @option params [String] :name
2892
+ # The name of the entitlement.
2893
+ #
2894
+ # @option params [required, String] :stack_name
2895
+ # The name of the stack with which the entitlement is associated.
2896
+ #
2897
+ # @option params [String] :next_token
2898
+ # The pagination token used to retrieve the next page of results for
2899
+ # this operation.
2900
+ #
2901
+ # @option params [Integer] :max_results
2902
+ # The maximum size of each page of results.
2903
+ #
2904
+ # @return [Types::DescribeEntitlementsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2905
+ #
2906
+ # * {Types::DescribeEntitlementsResult#entitlements #entitlements} => Array&lt;Types::Entitlement&gt;
2907
+ # * {Types::DescribeEntitlementsResult#next_token #next_token} => String
2908
+ #
2909
+ # @example Request syntax with placeholder values
2910
+ #
2911
+ # resp = client.describe_entitlements({
2912
+ # name: "Name",
2913
+ # stack_name: "Name", # required
2914
+ # next_token: "String",
2915
+ # max_results: 1,
2916
+ # })
2917
+ #
2918
+ # @example Response structure
2919
+ #
2920
+ # resp.entitlements #=> Array
2921
+ # resp.entitlements[0].name #=> String
2922
+ # resp.entitlements[0].stack_name #=> String
2923
+ # resp.entitlements[0].description #=> String
2924
+ # resp.entitlements[0].app_visibility #=> String, one of "ALL", "ASSOCIATED"
2925
+ # resp.entitlements[0].attributes #=> Array
2926
+ # resp.entitlements[0].attributes[0].name #=> String
2927
+ # resp.entitlements[0].attributes[0].value #=> String
2928
+ # resp.entitlements[0].created_time #=> Time
2929
+ # resp.entitlements[0].last_modified_time #=> Time
2930
+ # resp.next_token #=> String
2931
+ #
2932
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeEntitlements AWS API Documentation
2933
+ #
2934
+ # @overload describe_entitlements(params = {})
2935
+ # @param [Hash] params ({})
2936
+ def describe_entitlements(params = {}, options = {})
2937
+ req = build_request(:describe_entitlements, params)
2938
+ req.send_request(options)
2939
+ end
2940
+
2273
2941
  # Retrieves a list that describes one or more specified fleets, if the
2274
2942
  # fleet names are provided. Otherwise, all fleets in the account are
2275
2943
  # described.
@@ -2308,6 +2976,10 @@ module Aws::AppStream
2308
2976
  # resp.fleets[0].compute_capacity_status.running #=> Integer
2309
2977
  # resp.fleets[0].compute_capacity_status.in_use #=> Integer
2310
2978
  # resp.fleets[0].compute_capacity_status.available #=> Integer
2979
+ # resp.fleets[0].compute_capacity_status.desired_user_sessions #=> Integer
2980
+ # resp.fleets[0].compute_capacity_status.available_user_sessions #=> Integer
2981
+ # resp.fleets[0].compute_capacity_status.active_user_sessions #=> Integer
2982
+ # resp.fleets[0].compute_capacity_status.actual_user_sessions #=> Integer
2311
2983
  # resp.fleets[0].max_user_duration_in_seconds #=> Integer
2312
2984
  # resp.fleets[0].disconnect_timeout_in_seconds #=> Integer
2313
2985
  # resp.fleets[0].state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
@@ -2329,6 +3001,9 @@ module Aws::AppStream
2329
3001
  # resp.fleets[0].max_concurrent_sessions #=> Integer
2330
3002
  # resp.fleets[0].usb_device_filter_strings #=> Array
2331
3003
  # resp.fleets[0].usb_device_filter_strings[0] #=> String
3004
+ # resp.fleets[0].session_script_s3_location.s3_bucket #=> String
3005
+ # resp.fleets[0].session_script_s3_location.s3_key #=> String
3006
+ # resp.fleets[0].max_sessions_per_instance #=> Integer
2332
3007
  # resp.next_token #=> String
2333
3008
  #
2334
3009
  #
@@ -2590,6 +3265,9 @@ module Aws::AppStream
2590
3265
  # using a streaming URL or `SAML` for a SAML federated user. The default
2591
3266
  # is to authenticate users using a streaming URL.
2592
3267
  #
3268
+ # @option params [String] :instance_id
3269
+ # The identifier for the instance hosting the session.
3270
+ #
2593
3271
  # @return [Types::DescribeSessionsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2594
3272
  #
2595
3273
  # * {Types::DescribeSessionsResult#sessions #sessions} => Array&lt;Types::Session&gt;
@@ -2598,12 +3276,13 @@ module Aws::AppStream
2598
3276
  # @example Request syntax with placeholder values
2599
3277
  #
2600
3278
  # resp = client.describe_sessions({
2601
- # stack_name: "String", # required
2602
- # fleet_name: "String", # required
3279
+ # stack_name: "Name", # required
3280
+ # fleet_name: "Name", # required
2603
3281
  # user_id: "UserId",
2604
3282
  # next_token: "String",
2605
3283
  # limit: 1,
2606
- # authentication_type: "API", # accepts API, SAML, USERPOOL
3284
+ # authentication_type: "API", # accepts API, SAML, USERPOOL, AWS_AD
3285
+ # instance_id: "String",
2607
3286
  # })
2608
3287
  #
2609
3288
  # @example Response structure
@@ -2617,9 +3296,10 @@ module Aws::AppStream
2617
3296
  # resp.sessions[0].connection_state #=> String, one of "CONNECTED", "NOT_CONNECTED"
2618
3297
  # resp.sessions[0].start_time #=> Time
2619
3298
  # resp.sessions[0].max_expiration_time #=> Time
2620
- # resp.sessions[0].authentication_type #=> String, one of "API", "SAML", "USERPOOL"
3299
+ # resp.sessions[0].authentication_type #=> String, one of "API", "SAML", "USERPOOL", "AWS_AD"
2621
3300
  # resp.sessions[0].network_access_configuration.eni_private_ip_address #=> String
2622
3301
  # resp.sessions[0].network_access_configuration.eni_id #=> String
3302
+ # resp.sessions[0].instance_id #=> String
2623
3303
  # resp.next_token #=> String
2624
3304
  #
2625
3305
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeSessions AWS API Documentation
@@ -2683,6 +3363,7 @@ module Aws::AppStream
2683
3363
  # resp.stacks[0].access_endpoints[0].vpce_id #=> String
2684
3364
  # resp.stacks[0].embed_host_domains #=> Array
2685
3365
  # resp.stacks[0].embed_host_domains[0] #=> String
3366
+ # resp.stacks[0].streaming_experience_settings.preferred_protocol #=> String, one of "TCP", "UDP"
2686
3367
  # resp.next_token #=> String
2687
3368
  #
2688
3369
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeStacks AWS API Documentation
@@ -2775,7 +3456,7 @@ module Aws::AppStream
2775
3456
  # resp = client.describe_user_stack_associations({
2776
3457
  # stack_name: "String",
2777
3458
  # user_name: "Username",
2778
- # authentication_type: "API", # accepts API, SAML, USERPOOL
3459
+ # authentication_type: "API", # accepts API, SAML, USERPOOL, AWS_AD
2779
3460
  # max_results: 1,
2780
3461
  # next_token: "String",
2781
3462
  # })
@@ -2785,7 +3466,7 @@ module Aws::AppStream
2785
3466
  # resp.user_stack_associations #=> Array
2786
3467
  # resp.user_stack_associations[0].stack_name #=> String
2787
3468
  # resp.user_stack_associations[0].user_name #=> String
2788
- # resp.user_stack_associations[0].authentication_type #=> String, one of "API", "SAML", "USERPOOL"
3469
+ # resp.user_stack_associations[0].authentication_type #=> String, one of "API", "SAML", "USERPOOL", "AWS_AD"
2789
3470
  # resp.user_stack_associations[0].send_email_notification #=> Boolean
2790
3471
  # resp.next_token #=> String
2791
3472
  #
@@ -2820,7 +3501,7 @@ module Aws::AppStream
2820
3501
  # @example Request syntax with placeholder values
2821
3502
  #
2822
3503
  # resp = client.describe_users({
2823
- # authentication_type: "API", # required, accepts API, SAML, USERPOOL
3504
+ # authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
2824
3505
  # max_results: 1,
2825
3506
  # next_token: "String",
2826
3507
  # })
@@ -2835,7 +3516,7 @@ module Aws::AppStream
2835
3516
  # resp.users[0].first_name #=> String
2836
3517
  # resp.users[0].last_name #=> String
2837
3518
  # resp.users[0].created_time #=> Time
2838
- # resp.users[0].authentication_type #=> String, one of "API", "SAML", "USERPOOL"
3519
+ # resp.users[0].authentication_type #=> String, one of "API", "SAML", "USERPOOL", "AWS_AD"
2839
3520
  # resp.next_token #=> String
2840
3521
  #
2841
3522
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeUsers AWS API Documentation
@@ -2867,7 +3548,7 @@ module Aws::AppStream
2867
3548
  #
2868
3549
  # resp = client.disable_user({
2869
3550
  # user_name: "Username", # required
2870
- # authentication_type: "API", # required, accepts API, SAML, USERPOOL
3551
+ # authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
2871
3552
  # })
2872
3553
  #
2873
3554
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DisableUser AWS API Documentation
@@ -2879,6 +3560,33 @@ module Aws::AppStream
2879
3560
  req.send_request(options)
2880
3561
  end
2881
3562
 
3563
+ # Disassociates a specified app block builder from a specified app
3564
+ # block.
3565
+ #
3566
+ # @option params [required, String] :app_block_arn
3567
+ # The ARN of the app block.
3568
+ #
3569
+ # @option params [required, String] :app_block_builder_name
3570
+ # The name of the app block builder.
3571
+ #
3572
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3573
+ #
3574
+ # @example Request syntax with placeholder values
3575
+ #
3576
+ # resp = client.disassociate_app_block_builder_app_block({
3577
+ # app_block_arn: "Arn", # required
3578
+ # app_block_builder_name: "Name", # required
3579
+ # })
3580
+ #
3581
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DisassociateAppBlockBuilderAppBlock AWS API Documentation
3582
+ #
3583
+ # @overload disassociate_app_block_builder_app_block(params = {})
3584
+ # @param [Hash] params ({})
3585
+ def disassociate_app_block_builder_app_block(params = {}, options = {})
3586
+ req = build_request(:disassociate_app_block_builder_app_block, params)
3587
+ req.send_request(options)
3588
+ end
3589
+
2882
3590
  # Disassociates the specified application from the fleet.
2883
3591
  #
2884
3592
  # @option params [required, String] :fleet_name
@@ -2905,6 +3613,36 @@ module Aws::AppStream
2905
3613
  req.send_request(options)
2906
3614
  end
2907
3615
 
3616
+ # Deletes the specified application from the specified entitlement.
3617
+ #
3618
+ # @option params [required, String] :stack_name
3619
+ # The name of the stack with which the entitlement is associated.
3620
+ #
3621
+ # @option params [required, String] :entitlement_name
3622
+ # The name of the entitlement.
3623
+ #
3624
+ # @option params [required, String] :application_identifier
3625
+ # The identifier of the application to remove from the entitlement.
3626
+ #
3627
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3628
+ #
3629
+ # @example Request syntax with placeholder values
3630
+ #
3631
+ # resp = client.disassociate_application_from_entitlement({
3632
+ # stack_name: "Name", # required
3633
+ # entitlement_name: "Name", # required
3634
+ # application_identifier: "String", # required
3635
+ # })
3636
+ #
3637
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DisassociateApplicationFromEntitlement AWS API Documentation
3638
+ #
3639
+ # @overload disassociate_application_from_entitlement(params = {})
3640
+ # @param [Hash] params ({})
3641
+ def disassociate_application_from_entitlement(params = {}, options = {})
3642
+ req = build_request(:disassociate_application_from_entitlement, params)
3643
+ req.send_request(options)
3644
+ end
3645
+
2908
3646
  # Disassociates the specified fleet from the specified stack.
2909
3647
  #
2910
3648
  # @option params [required, String] :fleet_name
@@ -2954,7 +3692,7 @@ module Aws::AppStream
2954
3692
  #
2955
3693
  # resp = client.enable_user({
2956
3694
  # user_name: "Username", # required
2957
- # authentication_type: "API", # required, accepts API, SAML, USERPOOL
3695
+ # authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
2958
3696
  # })
2959
3697
  #
2960
3698
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/EnableUser AWS API Documentation
@@ -3062,6 +3800,50 @@ module Aws::AppStream
3062
3800
  req.send_request(options)
3063
3801
  end
3064
3802
 
3803
+ # Retrieves a list of entitled applications.
3804
+ #
3805
+ # @option params [required, String] :stack_name
3806
+ # The name of the stack with which the entitlement is associated.
3807
+ #
3808
+ # @option params [required, String] :entitlement_name
3809
+ # The name of the entitlement.
3810
+ #
3811
+ # @option params [String] :next_token
3812
+ # The pagination token used to retrieve the next page of results for
3813
+ # this operation.
3814
+ #
3815
+ # @option params [Integer] :max_results
3816
+ # The maximum size of each page of results.
3817
+ #
3818
+ # @return [Types::ListEntitledApplicationsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3819
+ #
3820
+ # * {Types::ListEntitledApplicationsResult#entitled_applications #entitled_applications} => Array&lt;Types::EntitledApplication&gt;
3821
+ # * {Types::ListEntitledApplicationsResult#next_token #next_token} => String
3822
+ #
3823
+ # @example Request syntax with placeholder values
3824
+ #
3825
+ # resp = client.list_entitled_applications({
3826
+ # stack_name: "Name", # required
3827
+ # entitlement_name: "Name", # required
3828
+ # next_token: "String",
3829
+ # max_results: 1,
3830
+ # })
3831
+ #
3832
+ # @example Response structure
3833
+ #
3834
+ # resp.entitled_applications #=> Array
3835
+ # resp.entitled_applications[0].application_identifier #=> String
3836
+ # resp.next_token #=> String
3837
+ #
3838
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListEntitledApplications AWS API Documentation
3839
+ #
3840
+ # @overload list_entitled_applications(params = {})
3841
+ # @param [Hash] params ({})
3842
+ def list_entitled_applications(params = {}, options = {})
3843
+ req = build_request(:list_entitled_applications, params)
3844
+ req.send_request(options)
3845
+ end
3846
+
3065
3847
  # Retrieves a list of all tags for the specified AppStream 2.0 resource.
3066
3848
  # You can tag AppStream 2.0 image builders, images, fleets, and stacks.
3067
3849
  #
@@ -3099,6 +3881,63 @@ module Aws::AppStream
3099
3881
  req.send_request(options)
3100
3882
  end
3101
3883
 
3884
+ # Starts an app block builder.
3885
+ #
3886
+ # An app block builder can only be started when it's associated with an
3887
+ # app block.
3888
+ #
3889
+ # Starting an app block builder starts a new instance, which is
3890
+ # equivalent to an elastic fleet instance with application builder
3891
+ # assistance functionality.
3892
+ #
3893
+ # @option params [required, String] :name
3894
+ # The name of the app block builder.
3895
+ #
3896
+ # @return [Types::StartAppBlockBuilderResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3897
+ #
3898
+ # * {Types::StartAppBlockBuilderResult#app_block_builder #app_block_builder} => Types::AppBlockBuilder
3899
+ #
3900
+ # @example Request syntax with placeholder values
3901
+ #
3902
+ # resp = client.start_app_block_builder({
3903
+ # name: "Name", # required
3904
+ # })
3905
+ #
3906
+ # @example Response structure
3907
+ #
3908
+ # resp.app_block_builder.arn #=> String
3909
+ # resp.app_block_builder.name #=> String
3910
+ # resp.app_block_builder.display_name #=> String
3911
+ # resp.app_block_builder.description #=> String
3912
+ # resp.app_block_builder.platform #=> String, one of "WINDOWS_SERVER_2019"
3913
+ # resp.app_block_builder.instance_type #=> String
3914
+ # resp.app_block_builder.enable_default_internet_access #=> Boolean
3915
+ # resp.app_block_builder.iam_role_arn #=> String
3916
+ # resp.app_block_builder.vpc_config.subnet_ids #=> Array
3917
+ # resp.app_block_builder.vpc_config.subnet_ids[0] #=> String
3918
+ # resp.app_block_builder.vpc_config.security_group_ids #=> Array
3919
+ # resp.app_block_builder.vpc_config.security_group_ids[0] #=> String
3920
+ # resp.app_block_builder.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
3921
+ # resp.app_block_builder.created_time #=> Time
3922
+ # resp.app_block_builder.app_block_builder_errors #=> Array
3923
+ # resp.app_block_builder.app_block_builder_errors[0].error_code #=> String, one of "IAM_SERVICE_ROLE_MISSING_ENI_DESCRIBE_ACTION", "IAM_SERVICE_ROLE_MISSING_ENI_CREATE_ACTION", "IAM_SERVICE_ROLE_MISSING_ENI_DELETE_ACTION", "NETWORK_INTERFACE_LIMIT_EXCEEDED", "INTERNAL_SERVICE_ERROR", "IAM_SERVICE_ROLE_IS_MISSING", "MACHINE_ROLE_IS_MISSING", "STS_DISABLED_IN_REGION", "SUBNET_HAS_INSUFFICIENT_IP_ADDRESSES", "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SUBNET_ACTION", "SUBNET_NOT_FOUND", "IMAGE_NOT_FOUND", "INVALID_SUBNET_CONFIGURATION", "SECURITY_GROUPS_NOT_FOUND", "IGW_NOT_ATTACHED", "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION", "FLEET_STOPPED", "FLEET_INSTANCE_PROVISIONING_FAILURE", "DOMAIN_JOIN_ERROR_FILE_NOT_FOUND", "DOMAIN_JOIN_ERROR_ACCESS_DENIED", "DOMAIN_JOIN_ERROR_LOGON_FAILURE", "DOMAIN_JOIN_ERROR_INVALID_PARAMETER", "DOMAIN_JOIN_ERROR_MORE_DATA", "DOMAIN_JOIN_ERROR_NO_SUCH_DOMAIN", "DOMAIN_JOIN_ERROR_NOT_SUPPORTED", "DOMAIN_JOIN_NERR_INVALID_WORKGROUP_NAME", "DOMAIN_JOIN_NERR_WORKSTATION_NOT_STARTED", "DOMAIN_JOIN_ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED", "DOMAIN_JOIN_NERR_PASSWORD_EXPIRED", "DOMAIN_JOIN_INTERNAL_SERVICE_ERROR"
3924
+ # resp.app_block_builder.app_block_builder_errors[0].error_message #=> String
3925
+ # resp.app_block_builder.app_block_builder_errors[0].error_timestamp #=> Time
3926
+ # resp.app_block_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR"
3927
+ # resp.app_block_builder.state_change_reason.message #=> String
3928
+ # resp.app_block_builder.access_endpoints #=> Array
3929
+ # resp.app_block_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
3930
+ # resp.app_block_builder.access_endpoints[0].vpce_id #=> String
3931
+ #
3932
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StartAppBlockBuilder AWS API Documentation
3933
+ #
3934
+ # @overload start_app_block_builder(params = {})
3935
+ # @param [Hash] params ({})
3936
+ def start_app_block_builder(params = {}, options = {})
3937
+ req = build_request(:start_app_block_builder, params)
3938
+ req.send_request(options)
3939
+ end
3940
+
3102
3941
  # Starts the specified fleet.
3103
3942
  #
3104
3943
  # @option params [required, String] :name
@@ -3183,6 +4022,59 @@ module Aws::AppStream
3183
4022
  req.send_request(options)
3184
4023
  end
3185
4024
 
4025
+ # Stops an app block builder.
4026
+ #
4027
+ # Stopping an app block builder terminates the instance, and the
4028
+ # instance state is not persisted.
4029
+ #
4030
+ # @option params [required, String] :name
4031
+ # The name of the app block builder.
4032
+ #
4033
+ # @return [Types::StopAppBlockBuilderResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4034
+ #
4035
+ # * {Types::StopAppBlockBuilderResult#app_block_builder #app_block_builder} => Types::AppBlockBuilder
4036
+ #
4037
+ # @example Request syntax with placeholder values
4038
+ #
4039
+ # resp = client.stop_app_block_builder({
4040
+ # name: "Name", # required
4041
+ # })
4042
+ #
4043
+ # @example Response structure
4044
+ #
4045
+ # resp.app_block_builder.arn #=> String
4046
+ # resp.app_block_builder.name #=> String
4047
+ # resp.app_block_builder.display_name #=> String
4048
+ # resp.app_block_builder.description #=> String
4049
+ # resp.app_block_builder.platform #=> String, one of "WINDOWS_SERVER_2019"
4050
+ # resp.app_block_builder.instance_type #=> String
4051
+ # resp.app_block_builder.enable_default_internet_access #=> Boolean
4052
+ # resp.app_block_builder.iam_role_arn #=> String
4053
+ # resp.app_block_builder.vpc_config.subnet_ids #=> Array
4054
+ # resp.app_block_builder.vpc_config.subnet_ids[0] #=> String
4055
+ # resp.app_block_builder.vpc_config.security_group_ids #=> Array
4056
+ # resp.app_block_builder.vpc_config.security_group_ids[0] #=> String
4057
+ # resp.app_block_builder.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
4058
+ # resp.app_block_builder.created_time #=> Time
4059
+ # resp.app_block_builder.app_block_builder_errors #=> Array
4060
+ # resp.app_block_builder.app_block_builder_errors[0].error_code #=> String, one of "IAM_SERVICE_ROLE_MISSING_ENI_DESCRIBE_ACTION", "IAM_SERVICE_ROLE_MISSING_ENI_CREATE_ACTION", "IAM_SERVICE_ROLE_MISSING_ENI_DELETE_ACTION", "NETWORK_INTERFACE_LIMIT_EXCEEDED", "INTERNAL_SERVICE_ERROR", "IAM_SERVICE_ROLE_IS_MISSING", "MACHINE_ROLE_IS_MISSING", "STS_DISABLED_IN_REGION", "SUBNET_HAS_INSUFFICIENT_IP_ADDRESSES", "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SUBNET_ACTION", "SUBNET_NOT_FOUND", "IMAGE_NOT_FOUND", "INVALID_SUBNET_CONFIGURATION", "SECURITY_GROUPS_NOT_FOUND", "IGW_NOT_ATTACHED", "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION", "FLEET_STOPPED", "FLEET_INSTANCE_PROVISIONING_FAILURE", "DOMAIN_JOIN_ERROR_FILE_NOT_FOUND", "DOMAIN_JOIN_ERROR_ACCESS_DENIED", "DOMAIN_JOIN_ERROR_LOGON_FAILURE", "DOMAIN_JOIN_ERROR_INVALID_PARAMETER", "DOMAIN_JOIN_ERROR_MORE_DATA", "DOMAIN_JOIN_ERROR_NO_SUCH_DOMAIN", "DOMAIN_JOIN_ERROR_NOT_SUPPORTED", "DOMAIN_JOIN_NERR_INVALID_WORKGROUP_NAME", "DOMAIN_JOIN_NERR_WORKSTATION_NOT_STARTED", "DOMAIN_JOIN_ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED", "DOMAIN_JOIN_NERR_PASSWORD_EXPIRED", "DOMAIN_JOIN_INTERNAL_SERVICE_ERROR"
4061
+ # resp.app_block_builder.app_block_builder_errors[0].error_message #=> String
4062
+ # resp.app_block_builder.app_block_builder_errors[0].error_timestamp #=> Time
4063
+ # resp.app_block_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR"
4064
+ # resp.app_block_builder.state_change_reason.message #=> String
4065
+ # resp.app_block_builder.access_endpoints #=> Array
4066
+ # resp.app_block_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
4067
+ # resp.app_block_builder.access_endpoints[0].vpce_id #=> String
4068
+ #
4069
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StopAppBlockBuilder AWS API Documentation
4070
+ #
4071
+ # @overload stop_app_block_builder(params = {})
4072
+ # @param [Hash] params ({})
4073
+ def stop_app_block_builder(params = {}, options = {})
4074
+ req = build_request(:stop_app_block_builder, params)
4075
+ req.send_request(options)
4076
+ end
4077
+
3186
4078
  # Stops the specified fleet.
3187
4079
  #
3188
4080
  # @option params [required, String] :name
@@ -3349,6 +4241,138 @@ module Aws::AppStream
3349
4241
  req.send_request(options)
3350
4242
  end
3351
4243
 
4244
+ # Updates an app block builder.
4245
+ #
4246
+ # If the app block builder is in the `STARTING` or `STOPPING` state, you
4247
+ # can't update it. If the app block builder is in the `RUNNING` state,
4248
+ # you can only update the DisplayName and Description. If the app block
4249
+ # builder is in the `STOPPED` state, you can update any attribute except
4250
+ # the Name.
4251
+ #
4252
+ # @option params [required, String] :name
4253
+ # The unique name for the app block builder.
4254
+ #
4255
+ # @option params [String] :description
4256
+ # The description of the app block builder.
4257
+ #
4258
+ # @option params [String] :display_name
4259
+ # The display name of the app block builder.
4260
+ #
4261
+ # @option params [String] :platform
4262
+ # The platform of the app block builder.
4263
+ #
4264
+ # `WINDOWS_SERVER_2019` is the only valid value.
4265
+ #
4266
+ # @option params [String] :instance_type
4267
+ # The instance type to use when launching the app block builder. The
4268
+ # following instance types are available:
4269
+ #
4270
+ # * stream.standard.small
4271
+ #
4272
+ # * stream.standard.medium
4273
+ #
4274
+ # * stream.standard.large
4275
+ #
4276
+ # * stream.standard.xlarge
4277
+ #
4278
+ # * stream.standard.2xlarge
4279
+ #
4280
+ # @option params [Types::VpcConfig] :vpc_config
4281
+ # The VPC configuration for the app block builder.
4282
+ #
4283
+ # App block builders require that you specify at least two subnets in
4284
+ # different availability zones.
4285
+ #
4286
+ # @option params [Boolean] :enable_default_internet_access
4287
+ # Enables or disables default internet access for the app block builder.
4288
+ #
4289
+ # @option params [String] :iam_role_arn
4290
+ # The Amazon Resource Name (ARN) of the IAM role to apply to the app
4291
+ # block builder. To assume a role, the app block builder calls the AWS
4292
+ # Security Token Service (STS) `AssumeRole` API operation and passes the
4293
+ # ARN of the role to use. The operation creates a new session with
4294
+ # temporary credentials. AppStream 2.0 retrieves the temporary
4295
+ # credentials and creates the **appstream\_machine\_role** credential
4296
+ # profile on the instance.
4297
+ #
4298
+ # For more information, see [Using an IAM Role to Grant Permissions to
4299
+ # Applications and Scripts Running on AppStream 2.0 Streaming
4300
+ # Instances][1] in the *Amazon AppStream 2.0 Administration Guide*.
4301
+ #
4302
+ #
4303
+ #
4304
+ # [1]: https://docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html
4305
+ #
4306
+ # @option params [Array<Types::AccessEndpoint>] :access_endpoints
4307
+ # The list of interface VPC endpoint (interface endpoint) objects.
4308
+ # Administrators can connect to the app block builder only through the
4309
+ # specified endpoints.
4310
+ #
4311
+ # @option params [Array<String>] :attributes_to_delete
4312
+ # The attributes to delete from the app block builder.
4313
+ #
4314
+ # @return [Types::UpdateAppBlockBuilderResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4315
+ #
4316
+ # * {Types::UpdateAppBlockBuilderResult#app_block_builder #app_block_builder} => Types::AppBlockBuilder
4317
+ #
4318
+ # @example Request syntax with placeholder values
4319
+ #
4320
+ # resp = client.update_app_block_builder({
4321
+ # name: "Name", # required
4322
+ # description: "Description",
4323
+ # display_name: "DisplayName",
4324
+ # platform: "WINDOWS", # accepts WINDOWS, WINDOWS_SERVER_2016, WINDOWS_SERVER_2019, AMAZON_LINUX2
4325
+ # instance_type: "String",
4326
+ # vpc_config: {
4327
+ # subnet_ids: ["String"],
4328
+ # security_group_ids: ["String"],
4329
+ # },
4330
+ # enable_default_internet_access: false,
4331
+ # iam_role_arn: "Arn",
4332
+ # access_endpoints: [
4333
+ # {
4334
+ # endpoint_type: "STREAMING", # required, accepts STREAMING
4335
+ # vpce_id: "String",
4336
+ # },
4337
+ # ],
4338
+ # attributes_to_delete: ["IAM_ROLE_ARN"], # accepts IAM_ROLE_ARN, ACCESS_ENDPOINTS, VPC_CONFIGURATION_SECURITY_GROUP_IDS
4339
+ # })
4340
+ #
4341
+ # @example Response structure
4342
+ #
4343
+ # resp.app_block_builder.arn #=> String
4344
+ # resp.app_block_builder.name #=> String
4345
+ # resp.app_block_builder.display_name #=> String
4346
+ # resp.app_block_builder.description #=> String
4347
+ # resp.app_block_builder.platform #=> String, one of "WINDOWS_SERVER_2019"
4348
+ # resp.app_block_builder.instance_type #=> String
4349
+ # resp.app_block_builder.enable_default_internet_access #=> Boolean
4350
+ # resp.app_block_builder.iam_role_arn #=> String
4351
+ # resp.app_block_builder.vpc_config.subnet_ids #=> Array
4352
+ # resp.app_block_builder.vpc_config.subnet_ids[0] #=> String
4353
+ # resp.app_block_builder.vpc_config.security_group_ids #=> Array
4354
+ # resp.app_block_builder.vpc_config.security_group_ids[0] #=> String
4355
+ # resp.app_block_builder.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
4356
+ # resp.app_block_builder.created_time #=> Time
4357
+ # resp.app_block_builder.app_block_builder_errors #=> Array
4358
+ # resp.app_block_builder.app_block_builder_errors[0].error_code #=> String, one of "IAM_SERVICE_ROLE_MISSING_ENI_DESCRIBE_ACTION", "IAM_SERVICE_ROLE_MISSING_ENI_CREATE_ACTION", "IAM_SERVICE_ROLE_MISSING_ENI_DELETE_ACTION", "NETWORK_INTERFACE_LIMIT_EXCEEDED", "INTERNAL_SERVICE_ERROR", "IAM_SERVICE_ROLE_IS_MISSING", "MACHINE_ROLE_IS_MISSING", "STS_DISABLED_IN_REGION", "SUBNET_HAS_INSUFFICIENT_IP_ADDRESSES", "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SUBNET_ACTION", "SUBNET_NOT_FOUND", "IMAGE_NOT_FOUND", "INVALID_SUBNET_CONFIGURATION", "SECURITY_GROUPS_NOT_FOUND", "IGW_NOT_ATTACHED", "IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION", "FLEET_STOPPED", "FLEET_INSTANCE_PROVISIONING_FAILURE", "DOMAIN_JOIN_ERROR_FILE_NOT_FOUND", "DOMAIN_JOIN_ERROR_ACCESS_DENIED", "DOMAIN_JOIN_ERROR_LOGON_FAILURE", "DOMAIN_JOIN_ERROR_INVALID_PARAMETER", "DOMAIN_JOIN_ERROR_MORE_DATA", "DOMAIN_JOIN_ERROR_NO_SUCH_DOMAIN", "DOMAIN_JOIN_ERROR_NOT_SUPPORTED", "DOMAIN_JOIN_NERR_INVALID_WORKGROUP_NAME", "DOMAIN_JOIN_NERR_WORKSTATION_NOT_STARTED", "DOMAIN_JOIN_ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED", "DOMAIN_JOIN_NERR_PASSWORD_EXPIRED", "DOMAIN_JOIN_INTERNAL_SERVICE_ERROR"
4359
+ # resp.app_block_builder.app_block_builder_errors[0].error_message #=> String
4360
+ # resp.app_block_builder.app_block_builder_errors[0].error_timestamp #=> Time
4361
+ # resp.app_block_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR"
4362
+ # resp.app_block_builder.state_change_reason.message #=> String
4363
+ # resp.app_block_builder.access_endpoints #=> Array
4364
+ # resp.app_block_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
4365
+ # resp.app_block_builder.access_endpoints[0].vpce_id #=> String
4366
+ #
4367
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateAppBlockBuilder AWS API Documentation
4368
+ #
4369
+ # @overload update_app_block_builder(params = {})
4370
+ # @param [Hash] params ({})
4371
+ def update_app_block_builder(params = {}, options = {})
4372
+ req = build_request(:update_app_block_builder, params)
4373
+ req.send_request(options)
4374
+ end
4375
+
3352
4376
  # Updates the specified application.
3353
4377
  #
3354
4378
  # @option params [required, String] :name
@@ -3392,7 +4416,7 @@ module Aws::AppStream
3392
4416
  # description: "Description",
3393
4417
  # icon_s3_location: {
3394
4418
  # s3_bucket: "S3Bucket", # required
3395
- # s3_key: "S3Key", # required
4419
+ # s3_key: "S3Key",
3396
4420
  # },
3397
4421
  # launch_path: "String",
3398
4422
  # working_directory: "String",
@@ -3447,6 +4471,18 @@ module Aws::AppStream
3447
4471
  # The credentials for the service account used by the fleet or image
3448
4472
  # builder to connect to the directory.
3449
4473
  #
4474
+ # @option params [Types::CertificateBasedAuthProperties] :certificate_based_auth_properties
4475
+ # The certificate-based authentication properties used to authenticate
4476
+ # SAML 2.0 Identity Provider (IdP) user identities to Active Directory
4477
+ # domain-joined streaming instances. Fallback is turned on by default
4478
+ # when certificate-based authentication is **Enabled** . Fallback allows
4479
+ # users to log in using their AD domain password if certificate-based
4480
+ # authentication is unsuccessful, or to unlock a desktop lock screen.
4481
+ # **Enabled\_no\_directory\_login\_fallback** enables certificate-based
4482
+ # authentication, but does not allow users to log in using their AD
4483
+ # domain password. Users will be disconnected to re-authenticate using
4484
+ # certificates.
4485
+ #
3450
4486
  # @return [Types::UpdateDirectoryConfigResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3451
4487
  #
3452
4488
  # * {Types::UpdateDirectoryConfigResult#directory_config #directory_config} => Types::DirectoryConfig
@@ -3460,6 +4496,10 @@ module Aws::AppStream
3460
4496
  # account_name: "AccountName", # required
3461
4497
  # account_password: "AccountPassword", # required
3462
4498
  # },
4499
+ # certificate_based_auth_properties: {
4500
+ # status: "DISABLED", # accepts DISABLED, ENABLED, ENABLED_NO_DIRECTORY_LOGIN_FALLBACK
4501
+ # certificate_authority_arn: "Arn",
4502
+ # },
3463
4503
  # })
3464
4504
  #
3465
4505
  # @example Response structure
@@ -3470,6 +4510,8 @@ module Aws::AppStream
3470
4510
  # resp.directory_config.service_account_credentials.account_name #=> String
3471
4511
  # resp.directory_config.service_account_credentials.account_password #=> String
3472
4512
  # resp.directory_config.created_time #=> Time
4513
+ # resp.directory_config.certificate_based_auth_properties.status #=> String, one of "DISABLED", "ENABLED", "ENABLED_NO_DIRECTORY_LOGIN_FALLBACK"
4514
+ # resp.directory_config.certificate_based_auth_properties.certificate_authority_arn #=> String
3473
4515
  #
3474
4516
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateDirectoryConfig AWS API Documentation
3475
4517
  #
@@ -3480,6 +4522,63 @@ module Aws::AppStream
3480
4522
  req.send_request(options)
3481
4523
  end
3482
4524
 
4525
+ # Updates the specified entitlement.
4526
+ #
4527
+ # @option params [required, String] :name
4528
+ # The name of the entitlement.
4529
+ #
4530
+ # @option params [required, String] :stack_name
4531
+ # The name of the stack with which the entitlement is associated.
4532
+ #
4533
+ # @option params [String] :description
4534
+ # The description of the entitlement.
4535
+ #
4536
+ # @option params [String] :app_visibility
4537
+ # Specifies whether all or only selected apps are entitled.
4538
+ #
4539
+ # @option params [Array<Types::EntitlementAttribute>] :attributes
4540
+ # The attributes of the entitlement.
4541
+ #
4542
+ # @return [Types::UpdateEntitlementResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
4543
+ #
4544
+ # * {Types::UpdateEntitlementResult#entitlement #entitlement} => Types::Entitlement
4545
+ #
4546
+ # @example Request syntax with placeholder values
4547
+ #
4548
+ # resp = client.update_entitlement({
4549
+ # name: "Name", # required
4550
+ # stack_name: "Name", # required
4551
+ # description: "Description",
4552
+ # app_visibility: "ALL", # accepts ALL, ASSOCIATED
4553
+ # attributes: [
4554
+ # {
4555
+ # name: "String", # required
4556
+ # value: "String", # required
4557
+ # },
4558
+ # ],
4559
+ # })
4560
+ #
4561
+ # @example Response structure
4562
+ #
4563
+ # resp.entitlement.name #=> String
4564
+ # resp.entitlement.stack_name #=> String
4565
+ # resp.entitlement.description #=> String
4566
+ # resp.entitlement.app_visibility #=> String, one of "ALL", "ASSOCIATED"
4567
+ # resp.entitlement.attributes #=> Array
4568
+ # resp.entitlement.attributes[0].name #=> String
4569
+ # resp.entitlement.attributes[0].value #=> String
4570
+ # resp.entitlement.created_time #=> Time
4571
+ # resp.entitlement.last_modified_time #=> Time
4572
+ #
4573
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateEntitlement AWS API Documentation
4574
+ #
4575
+ # @overload update_entitlement(params = {})
4576
+ # @param [Hash] params ({})
4577
+ def update_entitlement(params = {}, options = {})
4578
+ req = build_request(:update_entitlement, params)
4579
+ req.send_request(options)
4580
+ end
4581
+
3483
4582
  # Updates the specified fleet.
3484
4583
  #
3485
4584
  # If the fleet is in the `STOPPED` state, you can update any attribute
@@ -3497,8 +4596,8 @@ module Aws::AppStream
3497
4596
  # * Elastic fleet type
3498
4597
  #
3499
4598
  # You can update the `DisplayName`, `IdleDisconnectTimeoutInSeconds`,
3500
- # `DisconnectTimeoutInSeconds`, `MaxConcurrentSessions`, and
3501
- # `UsbDeviceFilterStrings` attributes.
4599
+ # `DisconnectTimeoutInSeconds`, `MaxConcurrentSessions`,
4600
+ # `SessionScriptS3Location` and `UsbDeviceFilterStrings` attributes.
3502
4601
  #
3503
4602
  # If the fleet is in the `STARTING` or `STOPPED` state, you can't
3504
4603
  # update it.
@@ -3522,6 +4621,10 @@ module Aws::AppStream
3522
4621
  #
3523
4622
  # * stream.standard.large
3524
4623
  #
4624
+ # * stream.standard.xlarge
4625
+ #
4626
+ # * stream.standard.2xlarge
4627
+ #
3525
4628
  # * stream.compute.large
3526
4629
  #
3527
4630
  # * stream.compute.xlarge
@@ -3588,6 +4691,12 @@ module Aws::AppStream
3588
4691
  #
3589
4692
  # * stream.standard.medium
3590
4693
  #
4694
+ # * stream.standard.large
4695
+ #
4696
+ # * stream.standard.xlarge
4697
+ #
4698
+ # * stream.standard.2xlarge
4699
+ #
3591
4700
  # @option params [Types::ComputeCapacity] :compute_capacity
3592
4701
  # The desired capacity for the fleet. This is not allowed for Elastic
3593
4702
  # fleets.
@@ -3604,7 +4713,7 @@ module Aws::AppStream
3604
4713
  # open documents before being disconnected. After this time elapses, the
3605
4714
  # instance is terminated and replaced by a new instance.
3606
4715
  #
3607
- # Specify a value between 600 and 360000.
4716
+ # Specify a value between 600 and 432000.
3608
4717
  #
3609
4718
  # @option params [Integer] :disconnect_timeout_in_seconds
3610
4719
  # The amount of time that a streaming session remains active after users
@@ -3699,6 +4808,14 @@ module Aws::AppStream
3699
4808
  # can redirect to the fleet streaming session, when using the Windows
3700
4809
  # native client. This is allowed but not required for Elastic fleets.
3701
4810
  #
4811
+ # @option params [Types::S3Location] :session_script_s3_location
4812
+ # The S3 location of the session scripts configuration zip file. This
4813
+ # only applies to Elastic fleets.
4814
+ #
4815
+ # @option params [Integer] :max_sessions_per_instance
4816
+ # The maximum number of user sessions on an instance. This only applies
4817
+ # to multi-session fleets.
4818
+ #
3702
4819
  # @return [Types::UpdateFleetResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3703
4820
  #
3704
4821
  # * {Types::UpdateFleetResult#fleet #fleet} => Types::Fleet
@@ -3708,10 +4825,11 @@ module Aws::AppStream
3708
4825
  # resp = client.update_fleet({
3709
4826
  # image_name: "String",
3710
4827
  # image_arn: "Arn",
3711
- # name: "String",
4828
+ # name: "Name",
3712
4829
  # instance_type: "String",
3713
4830
  # compute_capacity: {
3714
- # desired_instances: 1, # required
4831
+ # desired_instances: 1,
4832
+ # desired_sessions: 1,
3715
4833
  # },
3716
4834
  # vpc_config: {
3717
4835
  # subnet_ids: ["String"],
@@ -3728,12 +4846,17 @@ module Aws::AppStream
3728
4846
  # organizational_unit_distinguished_name: "OrganizationalUnitDistinguishedName",
3729
4847
  # },
3730
4848
  # idle_disconnect_timeout_in_seconds: 1,
3731
- # attributes_to_delete: ["VPC_CONFIGURATION"], # accepts VPC_CONFIGURATION, VPC_CONFIGURATION_SECURITY_GROUP_IDS, DOMAIN_JOIN_INFO, IAM_ROLE_ARN, USB_DEVICE_FILTER_STRINGS
4849
+ # attributes_to_delete: ["VPC_CONFIGURATION"], # accepts VPC_CONFIGURATION, VPC_CONFIGURATION_SECURITY_GROUP_IDS, DOMAIN_JOIN_INFO, IAM_ROLE_ARN, USB_DEVICE_FILTER_STRINGS, SESSION_SCRIPT_S3_LOCATION, MAX_SESSIONS_PER_INSTANCE
3732
4850
  # iam_role_arn: "Arn",
3733
4851
  # stream_view: "APP", # accepts APP, DESKTOP
3734
4852
  # platform: "WINDOWS", # accepts WINDOWS, WINDOWS_SERVER_2016, WINDOWS_SERVER_2019, AMAZON_LINUX2
3735
4853
  # max_concurrent_sessions: 1,
3736
4854
  # usb_device_filter_strings: ["UsbDeviceFilterString"],
4855
+ # session_script_s3_location: {
4856
+ # s3_bucket: "S3Bucket", # required
4857
+ # s3_key: "S3Key",
4858
+ # },
4859
+ # max_sessions_per_instance: 1,
3737
4860
  # })
3738
4861
  #
3739
4862
  # @example Response structure
@@ -3750,6 +4873,10 @@ module Aws::AppStream
3750
4873
  # resp.fleet.compute_capacity_status.running #=> Integer
3751
4874
  # resp.fleet.compute_capacity_status.in_use #=> Integer
3752
4875
  # resp.fleet.compute_capacity_status.available #=> Integer
4876
+ # resp.fleet.compute_capacity_status.desired_user_sessions #=> Integer
4877
+ # resp.fleet.compute_capacity_status.available_user_sessions #=> Integer
4878
+ # resp.fleet.compute_capacity_status.active_user_sessions #=> Integer
4879
+ # resp.fleet.compute_capacity_status.actual_user_sessions #=> Integer
3753
4880
  # resp.fleet.max_user_duration_in_seconds #=> Integer
3754
4881
  # resp.fleet.disconnect_timeout_in_seconds #=> Integer
3755
4882
  # resp.fleet.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
@@ -3771,6 +4898,9 @@ module Aws::AppStream
3771
4898
  # resp.fleet.max_concurrent_sessions #=> Integer
3772
4899
  # resp.fleet.usb_device_filter_strings #=> Array
3773
4900
  # resp.fleet.usb_device_filter_strings[0] #=> String
4901
+ # resp.fleet.session_script_s3_location.s3_bucket #=> String
4902
+ # resp.fleet.session_script_s3_location.s3_key #=> String
4903
+ # resp.fleet.max_sessions_per_instance #=> Integer
3774
4904
  #
3775
4905
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateFleet AWS API Documentation
3776
4906
  #
@@ -3864,6 +4994,10 @@ module Aws::AppStream
3864
4994
  # an iframe. You must approve the domains that you want to host embedded
3865
4995
  # AppStream 2.0 streaming sessions.
3866
4996
  #
4997
+ # @option params [Types::StreamingExperienceSettings] :streaming_experience_settings
4998
+ # The streaming protocol you want your stack to prefer. This can be UDP
4999
+ # or TCP. Currently, UDP is only supported in the Windows native client.
5000
+ #
3867
5001
  # @return [Types::UpdateStackResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3868
5002
  #
3869
5003
  # * {Types::UpdateStackResult#stack #stack} => Types::Stack
@@ -3884,7 +5018,7 @@ module Aws::AppStream
3884
5018
  # delete_storage_connectors: false,
3885
5019
  # redirect_url: "RedirectURL",
3886
5020
  # feedback_url: "FeedbackURL",
3887
- # attributes_to_delete: ["STORAGE_CONNECTORS"], # accepts STORAGE_CONNECTORS, STORAGE_CONNECTOR_HOMEFOLDERS, STORAGE_CONNECTOR_GOOGLE_DRIVE, STORAGE_CONNECTOR_ONE_DRIVE, REDIRECT_URL, FEEDBACK_URL, THEME_NAME, USER_SETTINGS, EMBED_HOST_DOMAINS, IAM_ROLE_ARN, ACCESS_ENDPOINTS
5021
+ # attributes_to_delete: ["STORAGE_CONNECTORS"], # accepts STORAGE_CONNECTORS, STORAGE_CONNECTOR_HOMEFOLDERS, STORAGE_CONNECTOR_GOOGLE_DRIVE, STORAGE_CONNECTOR_ONE_DRIVE, REDIRECT_URL, FEEDBACK_URL, THEME_NAME, USER_SETTINGS, EMBED_HOST_DOMAINS, IAM_ROLE_ARN, ACCESS_ENDPOINTS, STREAMING_EXPERIENCE_SETTINGS
3888
5022
  # user_settings: [
3889
5023
  # {
3890
5024
  # action: "CLIPBOARD_COPY_FROM_LOCAL_DEVICE", # required, accepts CLIPBOARD_COPY_FROM_LOCAL_DEVICE, CLIPBOARD_COPY_TO_LOCAL_DEVICE, FILE_UPLOAD, FILE_DOWNLOAD, PRINTING_TO_LOCAL_DEVICE, DOMAIN_PASSWORD_SIGNIN, DOMAIN_SMART_CARD_SIGNIN
@@ -3902,6 +5036,9 @@ module Aws::AppStream
3902
5036
  # },
3903
5037
  # ],
3904
5038
  # embed_host_domains: ["EmbedHostDomain"],
5039
+ # streaming_experience_settings: {
5040
+ # preferred_protocol: "TCP", # accepts TCP, UDP
5041
+ # },
3905
5042
  # })
3906
5043
  #
3907
5044
  # @example Response structure
@@ -3932,6 +5069,7 @@ module Aws::AppStream
3932
5069
  # resp.stack.access_endpoints[0].vpce_id #=> String
3933
5070
  # resp.stack.embed_host_domains #=> Array
3934
5071
  # resp.stack.embed_host_domains[0] #=> String
5072
+ # resp.stack.streaming_experience_settings.preferred_protocol #=> String, one of "TCP", "UDP"
3935
5073
  #
3936
5074
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateStack AWS API Documentation
3937
5075
  #
@@ -3955,7 +5093,7 @@ module Aws::AppStream
3955
5093
  params: params,
3956
5094
  config: config)
3957
5095
  context[:gem_name] = 'aws-sdk-appstream'
3958
- context[:gem_version] = '1.60.0'
5096
+ context[:gem_version] = '1.80.0'
3959
5097
  Seahorse::Client::Request.new(handlers, context)
3960
5098
  end
3961
5099