aws-sdk-appstream 1.60.0 → 1.80.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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