aws-sdk-appstream 1.58.0 → 1.62.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,6 +27,7 @@ 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/defaults_mode.rb'
30
31
  require 'aws-sdk-core/plugins/signature_v4.rb'
31
32
  require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
32
33
 
@@ -73,6 +74,7 @@ module Aws::AppStream
73
74
  add_plugin(Aws::Plugins::ClientMetricsSendPlugin)
74
75
  add_plugin(Aws::Plugins::TransferEncoding)
75
76
  add_plugin(Aws::Plugins::HttpChecksum)
77
+ add_plugin(Aws::Plugins::DefaultsMode)
76
78
  add_plugin(Aws::Plugins::SignatureV4)
77
79
  add_plugin(Aws::Plugins::Protocols::JsonRpc)
78
80
 
@@ -119,7 +121,9 @@ module Aws::AppStream
119
121
  # * EC2/ECS IMDS instance profile - When used by default, the timeouts
120
122
  # are very aggressive. Construct and pass an instance of
121
123
  # `Aws::InstanceProfileCredentails` or `Aws::ECSCredentials` to
122
- # enable retries and extended timeouts.
124
+ # enable retries and extended timeouts. Instance profile credential
125
+ # fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED']
126
+ # to true.
123
127
  #
124
128
  # @option options [required, String] :region
125
129
  # The AWS region to connect to. The configured `:region` is
@@ -173,6 +177,10 @@ module Aws::AppStream
173
177
  # Used only in `standard` and adaptive retry modes. Specifies whether to apply
174
178
  # a clock skew correction and retry requests with skewed client clocks.
175
179
  #
180
+ # @option options [String] :defaults_mode ("legacy")
181
+ # See {Aws::DefaultsModeConfiguration} for a list of the
182
+ # accepted modes and the configuration defaults that are included.
183
+ #
176
184
  # @option options [Boolean] :disable_host_prefix_injection (false)
177
185
  # Set to true to disable SDK automatically adding host prefix
178
186
  # to default service endpoint when available.
@@ -305,7 +313,7 @@ module Aws::AppStream
305
313
  # seconds to wait when opening a HTTP session before raising a
306
314
  # `Timeout::Error`.
307
315
  #
308
- # @option options [Integer] :http_read_timeout (60) The default
316
+ # @option options [Float] :http_read_timeout (60) The default
309
317
  # number of seconds to wait for response data. This value can
310
318
  # safely be set per-request on the session.
311
319
  #
@@ -321,6 +329,9 @@ module Aws::AppStream
321
329
  # disables this behaviour. This value can safely be set per
322
330
  # request on the session.
323
331
  #
332
+ # @option options [Float] :ssl_timeout (nil) Sets the SSL timeout
333
+ # in seconds.
334
+ #
324
335
  # @option options [Boolean] :http_wire_trace (false) When `true`,
325
336
  # HTTP debug output will be sent to the `:logger`.
326
337
  #
@@ -346,6 +357,70 @@ module Aws::AppStream
346
357
 
347
358
  # @!group API Operations
348
359
 
360
+ # Associates the specified application with the specified fleet. This is
361
+ # only supported for Elastic fleets.
362
+ #
363
+ # @option params [required, String] :fleet_name
364
+ # The name of the fleet.
365
+ #
366
+ # @option params [required, String] :application_arn
367
+ # The ARN of the application.
368
+ #
369
+ # @return [Types::AssociateApplicationFleetResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
370
+ #
371
+ # * {Types::AssociateApplicationFleetResult#application_fleet_association #application_fleet_association} => Types::ApplicationFleetAssociation
372
+ #
373
+ # @example Request syntax with placeholder values
374
+ #
375
+ # resp = client.associate_application_fleet({
376
+ # fleet_name: "Name", # required
377
+ # application_arn: "Arn", # required
378
+ # })
379
+ #
380
+ # @example Response structure
381
+ #
382
+ # resp.application_fleet_association.fleet_name #=> String
383
+ # resp.application_fleet_association.application_arn #=> String
384
+ #
385
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/AssociateApplicationFleet AWS API Documentation
386
+ #
387
+ # @overload associate_application_fleet(params = {})
388
+ # @param [Hash] params ({})
389
+ def associate_application_fleet(params = {}, options = {})
390
+ req = build_request(:associate_application_fleet, params)
391
+ req.send_request(options)
392
+ end
393
+
394
+ # Associates an application to entitle.
395
+ #
396
+ # @option params [required, String] :stack_name
397
+ # The name of the stack.
398
+ #
399
+ # @option params [required, String] :entitlement_name
400
+ # The name of the entitlement.
401
+ #
402
+ # @option params [required, String] :application_identifier
403
+ # The identifier of the application.
404
+ #
405
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
406
+ #
407
+ # @example Request syntax with placeholder values
408
+ #
409
+ # resp = client.associate_application_to_entitlement({
410
+ # stack_name: "Name", # required
411
+ # entitlement_name: "Name", # required
412
+ # application_identifier: "String", # required
413
+ # })
414
+ #
415
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/AssociateApplicationToEntitlement AWS API Documentation
416
+ #
417
+ # @overload associate_application_to_entitlement(params = {})
418
+ # @param [Hash] params ({})
419
+ def associate_application_to_entitlement(params = {}, options = {})
420
+ req = build_request(:associate_application_to_entitlement, params)
421
+ req.send_request(options)
422
+ end
423
+
349
424
  # Associates the specified fleet with the specified stack.
350
425
  #
351
426
  # @option params [required, String] :fleet_name
@@ -502,6 +577,191 @@ module Aws::AppStream
502
577
  req.send_request(options)
503
578
  end
504
579
 
580
+ # Creates an app block.
581
+ #
582
+ # App blocks are an Amazon AppStream 2.0 resource that stores the
583
+ # details about the virtual hard disk in an S3 bucket. It also stores
584
+ # the setup script with details about how to mount the virtual hard
585
+ # disk. The virtual hard disk includes the application binaries and
586
+ # other files necessary to launch your applications. Multiple
587
+ # applications can be assigned to a single app block.
588
+ #
589
+ # This is only supported for Elastic fleets.
590
+ #
591
+ # @option params [required, String] :name
592
+ # The name of the app block.
593
+ #
594
+ # @option params [String] :description
595
+ # The description of the app block.
596
+ #
597
+ # @option params [String] :display_name
598
+ # The display name of the app block. This is not displayed to the user.
599
+ #
600
+ # @option params [required, Types::S3Location] :source_s3_location
601
+ # The source S3 location of the app block.
602
+ #
603
+ # @option params [required, Types::ScriptDetails] :setup_script_details
604
+ # The setup script details of the app block.
605
+ #
606
+ # @option params [Hash<String,String>] :tags
607
+ # The tags assigned to the app block.
608
+ #
609
+ # @return [Types::CreateAppBlockResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
610
+ #
611
+ # * {Types::CreateAppBlockResult#app_block #app_block} => Types::AppBlock
612
+ #
613
+ # @example Request syntax with placeholder values
614
+ #
615
+ # resp = client.create_app_block({
616
+ # name: "Name", # required
617
+ # description: "Description",
618
+ # display_name: "DisplayName",
619
+ # source_s3_location: { # required
620
+ # s3_bucket: "S3Bucket", # required
621
+ # s3_key: "S3Key", # required
622
+ # },
623
+ # setup_script_details: { # required
624
+ # script_s3_location: { # required
625
+ # s3_bucket: "S3Bucket", # required
626
+ # s3_key: "S3Key", # required
627
+ # },
628
+ # executable_path: "String", # required
629
+ # executable_parameters: "String",
630
+ # timeout_in_seconds: 1, # required
631
+ # },
632
+ # tags: {
633
+ # "TagKey" => "TagValue",
634
+ # },
635
+ # })
636
+ #
637
+ # @example Response structure
638
+ #
639
+ # resp.app_block.name #=> String
640
+ # resp.app_block.arn #=> String
641
+ # resp.app_block.description #=> String
642
+ # resp.app_block.display_name #=> String
643
+ # resp.app_block.source_s3_location.s3_bucket #=> String
644
+ # resp.app_block.source_s3_location.s3_key #=> String
645
+ # resp.app_block.setup_script_details.script_s3_location.s3_bucket #=> String
646
+ # resp.app_block.setup_script_details.script_s3_location.s3_key #=> String
647
+ # resp.app_block.setup_script_details.executable_path #=> String
648
+ # resp.app_block.setup_script_details.executable_parameters #=> String
649
+ # resp.app_block.setup_script_details.timeout_in_seconds #=> Integer
650
+ # resp.app_block.created_time #=> Time
651
+ #
652
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateAppBlock AWS API Documentation
653
+ #
654
+ # @overload create_app_block(params = {})
655
+ # @param [Hash] params ({})
656
+ def create_app_block(params = {}, options = {})
657
+ req = build_request(:create_app_block, params)
658
+ req.send_request(options)
659
+ end
660
+
661
+ # Creates an application.
662
+ #
663
+ # Applications are an Amazon AppStream 2.0 resource that stores the
664
+ # details about how to launch applications on Elastic fleet streaming
665
+ # instances. An application consists of the launch details, icon, and
666
+ # display name. Applications are associated with an app block that
667
+ # contains the application binaries and other files. The applications
668
+ # assigned to an Elastic fleet are the applications users can launch.
669
+ #
670
+ # This is only supported for Elastic fleets.
671
+ #
672
+ # @option params [required, String] :name
673
+ # The name of the application. This name is visible to users when
674
+ # display name is not specified.
675
+ #
676
+ # @option params [String] :display_name
677
+ # The display name of the application. This name is visible to users in
678
+ # the application catalog.
679
+ #
680
+ # @option params [String] :description
681
+ # The description of the application.
682
+ #
683
+ # @option params [required, Types::S3Location] :icon_s3_location
684
+ # The location in S3 of the application icon.
685
+ #
686
+ # @option params [required, String] :launch_path
687
+ # The launch path of the application.
688
+ #
689
+ # @option params [String] :working_directory
690
+ # The working directory of the application.
691
+ #
692
+ # @option params [String] :launch_parameters
693
+ # The launch parameters of the application.
694
+ #
695
+ # @option params [required, Array<String>] :platforms
696
+ # The platforms the application supports. WINDOWS\_SERVER\_2019 and
697
+ # AMAZON\_LINUX2 are supported for Elastic fleets.
698
+ #
699
+ # @option params [required, Array<String>] :instance_families
700
+ # The instance families the application supports. Valid values are
701
+ # GENERAL\_PURPOSE and GRAPHICS\_G4.
702
+ #
703
+ # @option params [required, String] :app_block_arn
704
+ # The app block ARN to which the application should be associated
705
+ #
706
+ # @option params [Hash<String,String>] :tags
707
+ # The tags assigned to the application.
708
+ #
709
+ # @return [Types::CreateApplicationResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
710
+ #
711
+ # * {Types::CreateApplicationResult#application #application} => Types::Application
712
+ #
713
+ # @example Request syntax with placeholder values
714
+ #
715
+ # resp = client.create_application({
716
+ # name: "Name", # required
717
+ # display_name: "DisplayName",
718
+ # description: "Description",
719
+ # icon_s3_location: { # required
720
+ # s3_bucket: "S3Bucket", # required
721
+ # s3_key: "S3Key", # required
722
+ # },
723
+ # launch_path: "String", # required
724
+ # working_directory: "String",
725
+ # launch_parameters: "String",
726
+ # platforms: ["WINDOWS"], # required, accepts WINDOWS, WINDOWS_SERVER_2016, WINDOWS_SERVER_2019, AMAZON_LINUX2
727
+ # instance_families: ["String"], # required
728
+ # app_block_arn: "Arn", # required
729
+ # tags: {
730
+ # "TagKey" => "TagValue",
731
+ # },
732
+ # })
733
+ #
734
+ # @example Response structure
735
+ #
736
+ # resp.application.name #=> String
737
+ # resp.application.display_name #=> String
738
+ # resp.application.icon_url #=> String
739
+ # resp.application.launch_path #=> String
740
+ # resp.application.launch_parameters #=> String
741
+ # resp.application.enabled #=> Boolean
742
+ # resp.application.metadata #=> Hash
743
+ # resp.application.metadata["String"] #=> String
744
+ # resp.application.working_directory #=> String
745
+ # resp.application.description #=> String
746
+ # resp.application.arn #=> String
747
+ # resp.application.app_block_arn #=> String
748
+ # resp.application.icon_s3_location.s3_bucket #=> String
749
+ # resp.application.icon_s3_location.s3_key #=> String
750
+ # resp.application.platforms #=> Array
751
+ # resp.application.platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "AMAZON_LINUX2"
752
+ # resp.application.instance_families #=> Array
753
+ # resp.application.instance_families[0] #=> String
754
+ # resp.application.created_time #=> Time
755
+ #
756
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateApplication AWS API Documentation
757
+ #
758
+ # @overload create_application(params = {})
759
+ # @param [Hash] params ({})
760
+ def create_application(params = {}, options = {})
761
+ req = build_request(:create_application, params)
762
+ req.send_request(options)
763
+ end
764
+
505
765
  # Creates a Directory Config object in AppStream 2.0. This object
506
766
  # includes the configuration information required to join fleets and
507
767
  # image builders to Microsoft Active Directory domains.
@@ -551,8 +811,71 @@ module Aws::AppStream
551
811
  req.send_request(options)
552
812
  end
553
813
 
814
+ # Creates a new entitlement. Entitlements control access to specific
815
+ # applications within a stack, based on user attributes. Entitlements
816
+ # apply to SAML 2.0 federated user identities. Amazon AppStream 2.0 user
817
+ # pool and streaming URL users are entitled to all applications in a
818
+ # stack. Entitlements don't apply to the desktop stream view
819
+ # application, or to applications managed by a dynamic app provider
820
+ # using the Dynamic Application Framework.
821
+ #
822
+ # @option params [required, String] :name
823
+ # The name of the entitlement.
824
+ #
825
+ # @option params [required, String] :stack_name
826
+ # The name of the stack with which the entitlement is associated.
827
+ #
828
+ # @option params [String] :description
829
+ # The description of the entitlement.
830
+ #
831
+ # @option params [required, String] :app_visibility
832
+ # Specifies whether all or selected apps are entitled.
833
+ #
834
+ # @option params [required, Array<Types::EntitlementAttribute>] :attributes
835
+ # The attributes of the entitlement.
836
+ #
837
+ # @return [Types::CreateEntitlementResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
838
+ #
839
+ # * {Types::CreateEntitlementResult#entitlement #entitlement} => Types::Entitlement
840
+ #
841
+ # @example Request syntax with placeholder values
842
+ #
843
+ # resp = client.create_entitlement({
844
+ # name: "Name", # required
845
+ # stack_name: "Name", # required
846
+ # description: "Description",
847
+ # app_visibility: "ALL", # required, accepts ALL, ASSOCIATED
848
+ # attributes: [ # required
849
+ # {
850
+ # name: "String", # required
851
+ # value: "String", # required
852
+ # },
853
+ # ],
854
+ # })
855
+ #
856
+ # @example Response structure
857
+ #
858
+ # resp.entitlement.name #=> String
859
+ # resp.entitlement.stack_name #=> String
860
+ # resp.entitlement.description #=> String
861
+ # resp.entitlement.app_visibility #=> String, one of "ALL", "ASSOCIATED"
862
+ # resp.entitlement.attributes #=> Array
863
+ # resp.entitlement.attributes[0].name #=> String
864
+ # resp.entitlement.attributes[0].value #=> String
865
+ # resp.entitlement.created_time #=> Time
866
+ # resp.entitlement.last_modified_time #=> Time
867
+ #
868
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateEntitlement AWS API Documentation
869
+ #
870
+ # @overload create_entitlement(params = {})
871
+ # @param [Hash] params ({})
872
+ def create_entitlement(params = {}, options = {})
873
+ req = build_request(:create_entitlement, params)
874
+ req.send_request(options)
875
+ end
876
+
554
877
  # Creates a fleet. A fleet consists of streaming instances that run a
555
- # specified image.
878
+ # specified image when using Always-On or On-Demand.
556
879
  #
557
880
  # @option params [required, String] :name
558
881
  # A unique name for the fleet.
@@ -633,6 +956,12 @@ module Aws::AppStream
633
956
  #
634
957
  # * stream.graphics-pro.16xlarge
635
958
  #
959
+ # The following instance types are available for Elastic fleets:
960
+ #
961
+ # * stream.standard.small
962
+ #
963
+ # * stream.standard.medium
964
+ #
636
965
  # @option params [String] :fleet_type
637
966
  # The fleet type.
638
967
  #
@@ -649,11 +978,14 @@ module Aws::AppStream
649
978
  # when users are connected and a small hourly fee for instances that
650
979
  # are not streaming apps.
651
980
  #
652
- # @option params [required, Types::ComputeCapacity] :compute_capacity
653
- # The desired capacity for the fleet.
981
+ # @option params [Types::ComputeCapacity] :compute_capacity
982
+ # The desired capacity for the fleet. This is not allowed for Elastic
983
+ # fleets. For Elastic fleets, specify MaxConcurrentSessions instead.
654
984
  #
655
985
  # @option params [Types::VpcConfig] :vpc_config
656
- # The VPC configuration for the fleet.
986
+ # The VPC configuration for the fleet. This is required for Elastic
987
+ # fleets, but not required for other fleet types. Elastic fleets require
988
+ # that you specify at least two subnets in different availability zones.
657
989
  #
658
990
  # @option params [Integer] :max_user_duration_in_seconds
659
991
  # The maximum amount of time that a streaming session can remain active,
@@ -684,7 +1016,8 @@ module Aws::AppStream
684
1016
  #
685
1017
  # @option params [Types::DomainJoinInfo] :domain_join_info
686
1018
  # The name of the directory and organizational unit (OU) to use to join
687
- # the fleet to a Microsoft Active Directory domain.
1019
+ # the fleet to a Microsoft Active Directory domain. This is not allowed
1020
+ # for Elastic fleets.
688
1021
  #
689
1022
  # @option params [Hash<String,String>] :tags
690
1023
  # The tags to associate with the fleet. A tag is a key-value pair, and
@@ -758,6 +1091,19 @@ module Aws::AppStream
758
1091
  #
759
1092
  # The default value is `APP`.
760
1093
  #
1094
+ # @option params [String] :platform
1095
+ # The fleet platform. WINDOWS\_SERVER\_2019 and AMAZON\_LINUX2 are
1096
+ # supported for Elastic fleets.
1097
+ #
1098
+ # @option params [Integer] :max_concurrent_sessions
1099
+ # The maximum concurrent sessions of the Elastic fleet. This is required
1100
+ # for Elastic fleets, and not allowed for other fleet types.
1101
+ #
1102
+ # @option params [Array<String>] :usb_device_filter_strings
1103
+ # The USB device filter strings that specify which USB devices a user
1104
+ # can redirect to the fleet streaming session, when using the Windows
1105
+ # native client. This is allowed but not required for Elastic fleets.
1106
+ #
761
1107
  # @return [Types::CreateFleetResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
762
1108
  #
763
1109
  # * {Types::CreateFleetResult#fleet #fleet} => Types::Fleet
@@ -769,8 +1115,8 @@ module Aws::AppStream
769
1115
  # image_name: "String",
770
1116
  # image_arn: "Arn",
771
1117
  # instance_type: "String", # required
772
- # fleet_type: "ALWAYS_ON", # accepts ALWAYS_ON, ON_DEMAND
773
- # compute_capacity: { # required
1118
+ # fleet_type: "ALWAYS_ON", # accepts ALWAYS_ON, ON_DEMAND, ELASTIC
1119
+ # compute_capacity: {
774
1120
  # desired_instances: 1, # required
775
1121
  # },
776
1122
  # vpc_config: {
@@ -792,6 +1138,9 @@ module Aws::AppStream
792
1138
  # idle_disconnect_timeout_in_seconds: 1,
793
1139
  # iam_role_arn: "Arn",
794
1140
  # stream_view: "APP", # accepts APP, DESKTOP
1141
+ # platform: "WINDOWS", # accepts WINDOWS, WINDOWS_SERVER_2016, WINDOWS_SERVER_2019, AMAZON_LINUX2
1142
+ # max_concurrent_sessions: 1,
1143
+ # usb_device_filter_strings: ["UsbDeviceFilterString"],
795
1144
  # })
796
1145
  #
797
1146
  # @example Response structure
@@ -803,7 +1152,7 @@ module Aws::AppStream
803
1152
  # resp.fleet.image_name #=> String
804
1153
  # resp.fleet.image_arn #=> String
805
1154
  # resp.fleet.instance_type #=> String
806
- # resp.fleet.fleet_type #=> String, one of "ALWAYS_ON", "ON_DEMAND"
1155
+ # resp.fleet.fleet_type #=> String, one of "ALWAYS_ON", "ON_DEMAND", "ELASTIC"
807
1156
  # resp.fleet.compute_capacity_status.desired #=> Integer
808
1157
  # resp.fleet.compute_capacity_status.running #=> Integer
809
1158
  # resp.fleet.compute_capacity_status.in_use #=> Integer
@@ -825,6 +1174,10 @@ module Aws::AppStream
825
1174
  # resp.fleet.idle_disconnect_timeout_in_seconds #=> Integer
826
1175
  # resp.fleet.iam_role_arn #=> String
827
1176
  # resp.fleet.stream_view #=> String, one of "APP", "DESKTOP"
1177
+ # resp.fleet.platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "AMAZON_LINUX2"
1178
+ # resp.fleet.max_concurrent_sessions #=> Integer
1179
+ # resp.fleet.usb_device_filter_strings #=> Array
1180
+ # resp.fleet.usb_device_filter_strings[0] #=> String
828
1181
  #
829
1182
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateFleet AWS API Documentation
830
1183
  #
@@ -1391,6 +1744,17 @@ module Aws::AppStream
1391
1744
  # resp.image.applications[0].enabled #=> Boolean
1392
1745
  # resp.image.applications[0].metadata #=> Hash
1393
1746
  # resp.image.applications[0].metadata["String"] #=> String
1747
+ # resp.image.applications[0].working_directory #=> String
1748
+ # resp.image.applications[0].description #=> String
1749
+ # resp.image.applications[0].arn #=> String
1750
+ # resp.image.applications[0].app_block_arn #=> String
1751
+ # resp.image.applications[0].icon_s3_location.s3_bucket #=> String
1752
+ # resp.image.applications[0].icon_s3_location.s3_key #=> String
1753
+ # resp.image.applications[0].platforms #=> Array
1754
+ # resp.image.applications[0].platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "AMAZON_LINUX2"
1755
+ # resp.image.applications[0].instance_families #=> Array
1756
+ # resp.image.applications[0].instance_families[0] #=> String
1757
+ # resp.image.applications[0].created_time #=> Time
1394
1758
  # resp.image.created_time #=> Time
1395
1759
  # resp.image.public_base_image_released_date #=> Time
1396
1760
  # resp.image.appstream_agent_version #=> String
@@ -1487,6 +1851,50 @@ module Aws::AppStream
1487
1851
  req.send_request(options)
1488
1852
  end
1489
1853
 
1854
+ # Deletes an app block.
1855
+ #
1856
+ # @option params [required, String] :name
1857
+ # The name of the app block.
1858
+ #
1859
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1860
+ #
1861
+ # @example Request syntax with placeholder values
1862
+ #
1863
+ # resp = client.delete_app_block({
1864
+ # name: "Name", # required
1865
+ # })
1866
+ #
1867
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteAppBlock AWS API Documentation
1868
+ #
1869
+ # @overload delete_app_block(params = {})
1870
+ # @param [Hash] params ({})
1871
+ def delete_app_block(params = {}, options = {})
1872
+ req = build_request(:delete_app_block, params)
1873
+ req.send_request(options)
1874
+ end
1875
+
1876
+ # Deletes an application.
1877
+ #
1878
+ # @option params [required, String] :name
1879
+ # The name of the application.
1880
+ #
1881
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1882
+ #
1883
+ # @example Request syntax with placeholder values
1884
+ #
1885
+ # resp = client.delete_application({
1886
+ # name: "Name", # required
1887
+ # })
1888
+ #
1889
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteApplication AWS API Documentation
1890
+ #
1891
+ # @overload delete_application(params = {})
1892
+ # @param [Hash] params ({})
1893
+ def delete_application(params = {}, options = {})
1894
+ req = build_request(:delete_application, params)
1895
+ req.send_request(options)
1896
+ end
1897
+
1490
1898
  # Deletes the specified Directory Config object from AppStream 2.0. This
1491
1899
  # object includes the information required to join streaming instances
1492
1900
  # to an Active Directory domain.
@@ -1511,6 +1919,32 @@ module Aws::AppStream
1511
1919
  req.send_request(options)
1512
1920
  end
1513
1921
 
1922
+ # Deletes the specified entitlement.
1923
+ #
1924
+ # @option params [required, String] :name
1925
+ # The name of the entitlement.
1926
+ #
1927
+ # @option params [required, String] :stack_name
1928
+ # The name of the stack with which the entitlement is associated.
1929
+ #
1930
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1931
+ #
1932
+ # @example Request syntax with placeholder values
1933
+ #
1934
+ # resp = client.delete_entitlement({
1935
+ # name: "Name", # required
1936
+ # stack_name: "Name", # required
1937
+ # })
1938
+ #
1939
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteEntitlement AWS API Documentation
1940
+ #
1941
+ # @overload delete_entitlement(params = {})
1942
+ # @param [Hash] params ({})
1943
+ def delete_entitlement(params = {}, options = {})
1944
+ req = build_request(:delete_entitlement, params)
1945
+ req.send_request(options)
1946
+ end
1947
+
1514
1948
  # Deletes the specified fleet.
1515
1949
  #
1516
1950
  # @option params [required, String] :name
@@ -1573,6 +2007,17 @@ module Aws::AppStream
1573
2007
  # resp.image.applications[0].enabled #=> Boolean
1574
2008
  # resp.image.applications[0].metadata #=> Hash
1575
2009
  # resp.image.applications[0].metadata["String"] #=> String
2010
+ # resp.image.applications[0].working_directory #=> String
2011
+ # resp.image.applications[0].description #=> String
2012
+ # resp.image.applications[0].arn #=> String
2013
+ # resp.image.applications[0].app_block_arn #=> String
2014
+ # resp.image.applications[0].icon_s3_location.s3_bucket #=> String
2015
+ # resp.image.applications[0].icon_s3_location.s3_key #=> String
2016
+ # resp.image.applications[0].platforms #=> Array
2017
+ # resp.image.applications[0].platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "AMAZON_LINUX2"
2018
+ # resp.image.applications[0].instance_families #=> Array
2019
+ # resp.image.applications[0].instance_families[0] #=> String
2020
+ # resp.image.applications[0].created_time #=> Time
1576
2021
  # resp.image.created_time #=> Time
1577
2022
  # resp.image.public_base_image_released_date #=> Time
1578
2023
  # resp.image.appstream_agent_version #=> String
@@ -1745,6 +2190,161 @@ module Aws::AppStream
1745
2190
  req.send_request(options)
1746
2191
  end
1747
2192
 
2193
+ # Retrieves a list that describes one or more app blocks.
2194
+ #
2195
+ # @option params [Array<String>] :arns
2196
+ # The ARNs of the app blocks.
2197
+ #
2198
+ # @option params [String] :next_token
2199
+ # The pagination token used to retrieve the next page of results for
2200
+ # this operation.
2201
+ #
2202
+ # @option params [Integer] :max_results
2203
+ # The maximum size of each page of results.
2204
+ #
2205
+ # @return [Types::DescribeAppBlocksResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2206
+ #
2207
+ # * {Types::DescribeAppBlocksResult#app_blocks #app_blocks} => Array&lt;Types::AppBlock&gt;
2208
+ # * {Types::DescribeAppBlocksResult#next_token #next_token} => String
2209
+ #
2210
+ # @example Request syntax with placeholder values
2211
+ #
2212
+ # resp = client.describe_app_blocks({
2213
+ # arns: ["Arn"],
2214
+ # next_token: "String",
2215
+ # max_results: 1,
2216
+ # })
2217
+ #
2218
+ # @example Response structure
2219
+ #
2220
+ # resp.app_blocks #=> Array
2221
+ # resp.app_blocks[0].name #=> String
2222
+ # resp.app_blocks[0].arn #=> String
2223
+ # resp.app_blocks[0].description #=> String
2224
+ # resp.app_blocks[0].display_name #=> String
2225
+ # resp.app_blocks[0].source_s3_location.s3_bucket #=> String
2226
+ # resp.app_blocks[0].source_s3_location.s3_key #=> String
2227
+ # resp.app_blocks[0].setup_script_details.script_s3_location.s3_bucket #=> String
2228
+ # resp.app_blocks[0].setup_script_details.script_s3_location.s3_key #=> String
2229
+ # resp.app_blocks[0].setup_script_details.executable_path #=> String
2230
+ # resp.app_blocks[0].setup_script_details.executable_parameters #=> String
2231
+ # resp.app_blocks[0].setup_script_details.timeout_in_seconds #=> Integer
2232
+ # resp.app_blocks[0].created_time #=> Time
2233
+ # resp.next_token #=> String
2234
+ #
2235
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeAppBlocks AWS API Documentation
2236
+ #
2237
+ # @overload describe_app_blocks(params = {})
2238
+ # @param [Hash] params ({})
2239
+ def describe_app_blocks(params = {}, options = {})
2240
+ req = build_request(:describe_app_blocks, params)
2241
+ req.send_request(options)
2242
+ end
2243
+
2244
+ # Retrieves a list that describes one or more application fleet
2245
+ # associations. Either ApplicationArn or FleetName must be specified.
2246
+ #
2247
+ # @option params [String] :fleet_name
2248
+ # The name of the fleet.
2249
+ #
2250
+ # @option params [String] :application_arn
2251
+ # The ARN of the application.
2252
+ #
2253
+ # @option params [Integer] :max_results
2254
+ # The maximum size of each page of results.
2255
+ #
2256
+ # @option params [String] :next_token
2257
+ # The pagination token used to retrieve the next page of results for
2258
+ # this operation.
2259
+ #
2260
+ # @return [Types::DescribeApplicationFleetAssociationsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2261
+ #
2262
+ # * {Types::DescribeApplicationFleetAssociationsResult#application_fleet_associations #application_fleet_associations} => Array&lt;Types::ApplicationFleetAssociation&gt;
2263
+ # * {Types::DescribeApplicationFleetAssociationsResult#next_token #next_token} => String
2264
+ #
2265
+ # @example Request syntax with placeholder values
2266
+ #
2267
+ # resp = client.describe_application_fleet_associations({
2268
+ # fleet_name: "Name",
2269
+ # application_arn: "Arn",
2270
+ # max_results: 1,
2271
+ # next_token: "String",
2272
+ # })
2273
+ #
2274
+ # @example Response structure
2275
+ #
2276
+ # resp.application_fleet_associations #=> Array
2277
+ # resp.application_fleet_associations[0].fleet_name #=> String
2278
+ # resp.application_fleet_associations[0].application_arn #=> String
2279
+ # resp.next_token #=> String
2280
+ #
2281
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeApplicationFleetAssociations AWS API Documentation
2282
+ #
2283
+ # @overload describe_application_fleet_associations(params = {})
2284
+ # @param [Hash] params ({})
2285
+ def describe_application_fleet_associations(params = {}, options = {})
2286
+ req = build_request(:describe_application_fleet_associations, params)
2287
+ req.send_request(options)
2288
+ end
2289
+
2290
+ # Retrieves a list that describes one or more applications.
2291
+ #
2292
+ # @option params [Array<String>] :arns
2293
+ # The ARNs for the applications.
2294
+ #
2295
+ # @option params [String] :next_token
2296
+ # The pagination token used to retrieve the next page of results for
2297
+ # this operation.
2298
+ #
2299
+ # @option params [Integer] :max_results
2300
+ # The maximum size of each page of results.
2301
+ #
2302
+ # @return [Types::DescribeApplicationsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2303
+ #
2304
+ # * {Types::DescribeApplicationsResult#applications #applications} => Array&lt;Types::Application&gt;
2305
+ # * {Types::DescribeApplicationsResult#next_token #next_token} => String
2306
+ #
2307
+ # @example Request syntax with placeholder values
2308
+ #
2309
+ # resp = client.describe_applications({
2310
+ # arns: ["Arn"],
2311
+ # next_token: "String",
2312
+ # max_results: 1,
2313
+ # })
2314
+ #
2315
+ # @example Response structure
2316
+ #
2317
+ # resp.applications #=> Array
2318
+ # resp.applications[0].name #=> String
2319
+ # resp.applications[0].display_name #=> String
2320
+ # resp.applications[0].icon_url #=> String
2321
+ # resp.applications[0].launch_path #=> String
2322
+ # resp.applications[0].launch_parameters #=> String
2323
+ # resp.applications[0].enabled #=> Boolean
2324
+ # resp.applications[0].metadata #=> Hash
2325
+ # resp.applications[0].metadata["String"] #=> String
2326
+ # resp.applications[0].working_directory #=> String
2327
+ # resp.applications[0].description #=> String
2328
+ # resp.applications[0].arn #=> String
2329
+ # resp.applications[0].app_block_arn #=> String
2330
+ # resp.applications[0].icon_s3_location.s3_bucket #=> String
2331
+ # resp.applications[0].icon_s3_location.s3_key #=> String
2332
+ # resp.applications[0].platforms #=> Array
2333
+ # resp.applications[0].platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "AMAZON_LINUX2"
2334
+ # resp.applications[0].instance_families #=> Array
2335
+ # resp.applications[0].instance_families[0] #=> String
2336
+ # resp.applications[0].created_time #=> Time
2337
+ # resp.next_token #=> String
2338
+ #
2339
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeApplications AWS API Documentation
2340
+ #
2341
+ # @overload describe_applications(params = {})
2342
+ # @param [Hash] params ({})
2343
+ def describe_applications(params = {}, options = {})
2344
+ req = build_request(:describe_applications, params)
2345
+ req.send_request(options)
2346
+ end
2347
+
1748
2348
  # Retrieves a list that describes one or more specified Directory Config
1749
2349
  # objects for AppStream 2.0, if the names for these objects are
1750
2350
  # provided. Otherwise, all Directory Config objects in the account are
@@ -1798,6 +2398,58 @@ module Aws::AppStream
1798
2398
  req.send_request(options)
1799
2399
  end
1800
2400
 
2401
+ # Retrieves a list that describes one of more entitlements.
2402
+ #
2403
+ # @option params [String] :name
2404
+ # The name of the entitlement.
2405
+ #
2406
+ # @option params [required, String] :stack_name
2407
+ # The name of the stack with which the entitlement is associated.
2408
+ #
2409
+ # @option params [String] :next_token
2410
+ # The pagination token used to retrieve the next page of results for
2411
+ # this operation.
2412
+ #
2413
+ # @option params [Integer] :max_results
2414
+ # The maximum size of each page of results.
2415
+ #
2416
+ # @return [Types::DescribeEntitlementsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2417
+ #
2418
+ # * {Types::DescribeEntitlementsResult#entitlements #entitlements} => Array&lt;Types::Entitlement&gt;
2419
+ # * {Types::DescribeEntitlementsResult#next_token #next_token} => String
2420
+ #
2421
+ # @example Request syntax with placeholder values
2422
+ #
2423
+ # resp = client.describe_entitlements({
2424
+ # name: "Name",
2425
+ # stack_name: "Name", # required
2426
+ # next_token: "String",
2427
+ # max_results: 1,
2428
+ # })
2429
+ #
2430
+ # @example Response structure
2431
+ #
2432
+ # resp.entitlements #=> Array
2433
+ # resp.entitlements[0].name #=> String
2434
+ # resp.entitlements[0].stack_name #=> String
2435
+ # resp.entitlements[0].description #=> String
2436
+ # resp.entitlements[0].app_visibility #=> String, one of "ALL", "ASSOCIATED"
2437
+ # resp.entitlements[0].attributes #=> Array
2438
+ # resp.entitlements[0].attributes[0].name #=> String
2439
+ # resp.entitlements[0].attributes[0].value #=> String
2440
+ # resp.entitlements[0].created_time #=> Time
2441
+ # resp.entitlements[0].last_modified_time #=> Time
2442
+ # resp.next_token #=> String
2443
+ #
2444
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeEntitlements AWS API Documentation
2445
+ #
2446
+ # @overload describe_entitlements(params = {})
2447
+ # @param [Hash] params ({})
2448
+ def describe_entitlements(params = {}, options = {})
2449
+ req = build_request(:describe_entitlements, params)
2450
+ req.send_request(options)
2451
+ end
2452
+
1801
2453
  # Retrieves a list that describes one or more specified fleets, if the
1802
2454
  # fleet names are provided. Otherwise, all fleets in the account are
1803
2455
  # described.
@@ -1831,7 +2483,7 @@ module Aws::AppStream
1831
2483
  # resp.fleets[0].image_name #=> String
1832
2484
  # resp.fleets[0].image_arn #=> String
1833
2485
  # resp.fleets[0].instance_type #=> String
1834
- # resp.fleets[0].fleet_type #=> String, one of "ALWAYS_ON", "ON_DEMAND"
2486
+ # resp.fleets[0].fleet_type #=> String, one of "ALWAYS_ON", "ON_DEMAND", "ELASTIC"
1835
2487
  # resp.fleets[0].compute_capacity_status.desired #=> Integer
1836
2488
  # resp.fleets[0].compute_capacity_status.running #=> Integer
1837
2489
  # resp.fleets[0].compute_capacity_status.in_use #=> Integer
@@ -1853,6 +2505,10 @@ module Aws::AppStream
1853
2505
  # resp.fleets[0].idle_disconnect_timeout_in_seconds #=> Integer
1854
2506
  # resp.fleets[0].iam_role_arn #=> String
1855
2507
  # resp.fleets[0].stream_view #=> String, one of "APP", "DESKTOP"
2508
+ # resp.fleets[0].platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "AMAZON_LINUX2"
2509
+ # resp.fleets[0].max_concurrent_sessions #=> Integer
2510
+ # resp.fleets[0].usb_device_filter_strings #=> Array
2511
+ # resp.fleets[0].usb_device_filter_strings[0] #=> String
1856
2512
  # resp.next_token #=> String
1857
2513
  #
1858
2514
  #
@@ -2054,6 +2710,17 @@ module Aws::AppStream
2054
2710
  # resp.images[0].applications[0].enabled #=> Boolean
2055
2711
  # resp.images[0].applications[0].metadata #=> Hash
2056
2712
  # resp.images[0].applications[0].metadata["String"] #=> String
2713
+ # resp.images[0].applications[0].working_directory #=> String
2714
+ # resp.images[0].applications[0].description #=> String
2715
+ # resp.images[0].applications[0].arn #=> String
2716
+ # resp.images[0].applications[0].app_block_arn #=> String
2717
+ # resp.images[0].applications[0].icon_s3_location.s3_bucket #=> String
2718
+ # resp.images[0].applications[0].icon_s3_location.s3_key #=> String
2719
+ # resp.images[0].applications[0].platforms #=> Array
2720
+ # resp.images[0].applications[0].platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "AMAZON_LINUX2"
2721
+ # resp.images[0].applications[0].instance_families #=> Array
2722
+ # resp.images[0].applications[0].instance_families[0] #=> String
2723
+ # resp.images[0].applications[0].created_time #=> Time
2057
2724
  # resp.images[0].created_time #=> Time
2058
2725
  # resp.images[0].public_base_image_released_date #=> Time
2059
2726
  # resp.images[0].appstream_agent_version #=> String
@@ -2392,6 +3059,62 @@ module Aws::AppStream
2392
3059
  req.send_request(options)
2393
3060
  end
2394
3061
 
3062
+ # Disassociates the specified application from the fleet.
3063
+ #
3064
+ # @option params [required, String] :fleet_name
3065
+ # The name of the fleet.
3066
+ #
3067
+ # @option params [required, String] :application_arn
3068
+ # The ARN of the application.
3069
+ #
3070
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3071
+ #
3072
+ # @example Request syntax with placeholder values
3073
+ #
3074
+ # resp = client.disassociate_application_fleet({
3075
+ # fleet_name: "Name", # required
3076
+ # application_arn: "Arn", # required
3077
+ # })
3078
+ #
3079
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DisassociateApplicationFleet AWS API Documentation
3080
+ #
3081
+ # @overload disassociate_application_fleet(params = {})
3082
+ # @param [Hash] params ({})
3083
+ def disassociate_application_fleet(params = {}, options = {})
3084
+ req = build_request(:disassociate_application_fleet, params)
3085
+ req.send_request(options)
3086
+ end
3087
+
3088
+ # Deletes the specified application from the specified entitlement.
3089
+ #
3090
+ # @option params [required, String] :stack_name
3091
+ # The name of the stack with which the entitlement is associated.
3092
+ #
3093
+ # @option params [required, String] :entitlement_name
3094
+ # The name of the entitlement.
3095
+ #
3096
+ # @option params [required, String] :application_identifier
3097
+ # The identifier of the application to remove from the entitlement.
3098
+ #
3099
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
3100
+ #
3101
+ # @example Request syntax with placeholder values
3102
+ #
3103
+ # resp = client.disassociate_application_from_entitlement({
3104
+ # stack_name: "Name", # required
3105
+ # entitlement_name: "Name", # required
3106
+ # application_identifier: "String", # required
3107
+ # })
3108
+ #
3109
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DisassociateApplicationFromEntitlement AWS API Documentation
3110
+ #
3111
+ # @overload disassociate_application_from_entitlement(params = {})
3112
+ # @param [Hash] params ({})
3113
+ def disassociate_application_from_entitlement(params = {}, options = {})
3114
+ req = build_request(:disassociate_application_from_entitlement, params)
3115
+ req.send_request(options)
3116
+ end
3117
+
2395
3118
  # Disassociates the specified fleet from the specified stack.
2396
3119
  #
2397
3120
  # @option params [required, String] :fleet_name
@@ -2549,6 +3272,50 @@ module Aws::AppStream
2549
3272
  req.send_request(options)
2550
3273
  end
2551
3274
 
3275
+ # Retrieves a list of entitled applications.
3276
+ #
3277
+ # @option params [required, String] :stack_name
3278
+ # The name of the stack with which the entitlement is associated.
3279
+ #
3280
+ # @option params [required, String] :entitlement_name
3281
+ # The name of the entitlement.
3282
+ #
3283
+ # @option params [String] :next_token
3284
+ # The pagination token used to retrieve the next page of results for
3285
+ # this operation.
3286
+ #
3287
+ # @option params [Integer] :max_results
3288
+ # The maximum size of each page of results.
3289
+ #
3290
+ # @return [Types::ListEntitledApplicationsResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3291
+ #
3292
+ # * {Types::ListEntitledApplicationsResult#entitled_applications #entitled_applications} => Array&lt;Types::EntitledApplication&gt;
3293
+ # * {Types::ListEntitledApplicationsResult#next_token #next_token} => String
3294
+ #
3295
+ # @example Request syntax with placeholder values
3296
+ #
3297
+ # resp = client.list_entitled_applications({
3298
+ # stack_name: "Name", # required
3299
+ # entitlement_name: "Name", # required
3300
+ # next_token: "String",
3301
+ # max_results: 1,
3302
+ # })
3303
+ #
3304
+ # @example Response structure
3305
+ #
3306
+ # resp.entitled_applications #=> Array
3307
+ # resp.entitled_applications[0].application_identifier #=> String
3308
+ # resp.next_token #=> String
3309
+ #
3310
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListEntitledApplications AWS API Documentation
3311
+ #
3312
+ # @overload list_entitled_applications(params = {})
3313
+ # @param [Hash] params ({})
3314
+ def list_entitled_applications(params = {}, options = {})
3315
+ req = build_request(:list_entitled_applications, params)
3316
+ req.send_request(options)
3317
+ end
3318
+
2552
3319
  # Retrieves a list of all tags for the specified AppStream 2.0 resource.
2553
3320
  # You can tag AppStream 2.0 image builders, images, fleets, and stacks.
2554
3321
  #
@@ -2836,6 +3603,89 @@ module Aws::AppStream
2836
3603
  req.send_request(options)
2837
3604
  end
2838
3605
 
3606
+ # Updates the specified application.
3607
+ #
3608
+ # @option params [required, String] :name
3609
+ # The name of the application. This name is visible to users when
3610
+ # display name is not specified.
3611
+ #
3612
+ # @option params [String] :display_name
3613
+ # The display name of the application. This name is visible to users in
3614
+ # the application catalog.
3615
+ #
3616
+ # @option params [String] :description
3617
+ # The description of the application.
3618
+ #
3619
+ # @option params [Types::S3Location] :icon_s3_location
3620
+ # The icon S3 location of the application.
3621
+ #
3622
+ # @option params [String] :launch_path
3623
+ # The launch path of the application.
3624
+ #
3625
+ # @option params [String] :working_directory
3626
+ # The working directory of the application.
3627
+ #
3628
+ # @option params [String] :launch_parameters
3629
+ # The launch parameters of the application.
3630
+ #
3631
+ # @option params [String] :app_block_arn
3632
+ # The ARN of the app block.
3633
+ #
3634
+ # @option params [Array<String>] :attributes_to_delete
3635
+ # The attributes to delete for an application.
3636
+ #
3637
+ # @return [Types::UpdateApplicationResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3638
+ #
3639
+ # * {Types::UpdateApplicationResult#application #application} => Types::Application
3640
+ #
3641
+ # @example Request syntax with placeholder values
3642
+ #
3643
+ # resp = client.update_application({
3644
+ # name: "Name", # required
3645
+ # display_name: "DisplayName",
3646
+ # description: "Description",
3647
+ # icon_s3_location: {
3648
+ # s3_bucket: "S3Bucket", # required
3649
+ # s3_key: "S3Key", # required
3650
+ # },
3651
+ # launch_path: "String",
3652
+ # working_directory: "String",
3653
+ # launch_parameters: "String",
3654
+ # app_block_arn: "Arn",
3655
+ # attributes_to_delete: ["LAUNCH_PARAMETERS"], # accepts LAUNCH_PARAMETERS, WORKING_DIRECTORY
3656
+ # })
3657
+ #
3658
+ # @example Response structure
3659
+ #
3660
+ # resp.application.name #=> String
3661
+ # resp.application.display_name #=> String
3662
+ # resp.application.icon_url #=> String
3663
+ # resp.application.launch_path #=> String
3664
+ # resp.application.launch_parameters #=> String
3665
+ # resp.application.enabled #=> Boolean
3666
+ # resp.application.metadata #=> Hash
3667
+ # resp.application.metadata["String"] #=> String
3668
+ # resp.application.working_directory #=> String
3669
+ # resp.application.description #=> String
3670
+ # resp.application.arn #=> String
3671
+ # resp.application.app_block_arn #=> String
3672
+ # resp.application.icon_s3_location.s3_bucket #=> String
3673
+ # resp.application.icon_s3_location.s3_key #=> String
3674
+ # resp.application.platforms #=> Array
3675
+ # resp.application.platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "AMAZON_LINUX2"
3676
+ # resp.application.instance_families #=> Array
3677
+ # resp.application.instance_families[0] #=> String
3678
+ # resp.application.created_time #=> Time
3679
+ #
3680
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateApplication AWS API Documentation
3681
+ #
3682
+ # @overload update_application(params = {})
3683
+ # @param [Hash] params ({})
3684
+ def update_application(params = {}, options = {})
3685
+ req = build_request(:update_application, params)
3686
+ req.send_request(options)
3687
+ end
3688
+
2839
3689
  # Updates the specified Directory Config object in AppStream 2.0. This
2840
3690
  # object includes the configuration information required to join fleets
2841
3691
  # and image builders to Microsoft Active Directory domains.
@@ -2884,14 +3734,85 @@ module Aws::AppStream
2884
3734
  req.send_request(options)
2885
3735
  end
2886
3736
 
3737
+ # Updates the specified entitlement.
3738
+ #
3739
+ # @option params [required, String] :name
3740
+ # The name of the entitlement.
3741
+ #
3742
+ # @option params [required, String] :stack_name
3743
+ # The name of the stack with which the entitlement is associated.
3744
+ #
3745
+ # @option params [String] :description
3746
+ # The description of the entitlement.
3747
+ #
3748
+ # @option params [String] :app_visibility
3749
+ # Specifies whether all or only selected apps are entitled.
3750
+ #
3751
+ # @option params [Array<Types::EntitlementAttribute>] :attributes
3752
+ # The attributes of the entitlement.
3753
+ #
3754
+ # @return [Types::UpdateEntitlementResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3755
+ #
3756
+ # * {Types::UpdateEntitlementResult#entitlement #entitlement} => Types::Entitlement
3757
+ #
3758
+ # @example Request syntax with placeholder values
3759
+ #
3760
+ # resp = client.update_entitlement({
3761
+ # name: "Name", # required
3762
+ # stack_name: "Name", # required
3763
+ # description: "Description",
3764
+ # app_visibility: "ALL", # accepts ALL, ASSOCIATED
3765
+ # attributes: [
3766
+ # {
3767
+ # name: "String", # required
3768
+ # value: "String", # required
3769
+ # },
3770
+ # ],
3771
+ # })
3772
+ #
3773
+ # @example Response structure
3774
+ #
3775
+ # resp.entitlement.name #=> String
3776
+ # resp.entitlement.stack_name #=> String
3777
+ # resp.entitlement.description #=> String
3778
+ # resp.entitlement.app_visibility #=> String, one of "ALL", "ASSOCIATED"
3779
+ # resp.entitlement.attributes #=> Array
3780
+ # resp.entitlement.attributes[0].name #=> String
3781
+ # resp.entitlement.attributes[0].value #=> String
3782
+ # resp.entitlement.created_time #=> Time
3783
+ # resp.entitlement.last_modified_time #=> Time
3784
+ #
3785
+ # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateEntitlement AWS API Documentation
3786
+ #
3787
+ # @overload update_entitlement(params = {})
3788
+ # @param [Hash] params ({})
3789
+ def update_entitlement(params = {}, options = {})
3790
+ req = build_request(:update_entitlement, params)
3791
+ req.send_request(options)
3792
+ end
3793
+
2887
3794
  # Updates the specified fleet.
2888
3795
  #
2889
3796
  # If the fleet is in the `STOPPED` state, you can update any attribute
2890
- # except the fleet name. If the fleet is in the `RUNNING` state, you can
2891
- # update the `DisplayName`, `ComputeCapacity`, `ImageARN`, `ImageName`,
2892
- # `IdleDisconnectTimeoutInSeconds`, and `DisconnectTimeoutInSeconds`
2893
- # attributes. If the fleet is in the `STARTING` or `STOPPING` state, you
2894
- # can't update it.
3797
+ # except the fleet name.
3798
+ #
3799
+ # If the fleet is in the `RUNNING` state, you can update the following
3800
+ # based on the fleet type:
3801
+ #
3802
+ # * Always-On and On-Demand fleet types
3803
+ #
3804
+ # You can update the `DisplayName`, `ComputeCapacity`, `ImageARN`,
3805
+ # `ImageName`, `IdleDisconnectTimeoutInSeconds`, and
3806
+ # `DisconnectTimeoutInSeconds` attributes.
3807
+ #
3808
+ # * Elastic fleet type
3809
+ #
3810
+ # You can update the `DisplayName`, `IdleDisconnectTimeoutInSeconds`,
3811
+ # `DisconnectTimeoutInSeconds`, `MaxConcurrentSessions`, and
3812
+ # `UsbDeviceFilterStrings` attributes.
3813
+ #
3814
+ # If the fleet is in the `STARTING` or `STOPPED` state, you can't
3815
+ # update it.
2895
3816
  #
2896
3817
  # @option params [String] :image_name
2897
3818
  # The name of the image used to create the fleet.
@@ -2972,11 +3893,20 @@ module Aws::AppStream
2972
3893
  #
2973
3894
  # * stream.graphics-pro.16xlarge
2974
3895
  #
3896
+ # The following instance types are available for Elastic fleets:
3897
+ #
3898
+ # * stream.standard.small
3899
+ #
3900
+ # * stream.standard.medium
3901
+ #
2975
3902
  # @option params [Types::ComputeCapacity] :compute_capacity
2976
- # The desired capacity for the fleet.
3903
+ # The desired capacity for the fleet. This is not allowed for Elastic
3904
+ # fleets.
2977
3905
  #
2978
3906
  # @option params [Types::VpcConfig] :vpc_config
2979
- # The VPC configuration for the fleet.
3907
+ # The VPC configuration for the fleet. This is required for Elastic
3908
+ # fleets, but not required for other fleet types. Elastic fleets require
3909
+ # that you specify at least two subnets in different availability zones.
2980
3910
  #
2981
3911
  # @option params [Integer] :max_user_duration_in_seconds
2982
3912
  # The maximum amount of time that a streaming session can remain active,
@@ -3068,6 +3998,18 @@ module Aws::AppStream
3068
3998
  #
3069
3999
  # The default value is `APP`.
3070
4000
  #
4001
+ # @option params [String] :platform
4002
+ # The platform of the fleet. WINDOWS\_SERVER\_2019 and AMAZON\_LINUX2
4003
+ # are supported for Elastic fleets.
4004
+ #
4005
+ # @option params [Integer] :max_concurrent_sessions
4006
+ # The maximum number of concurrent sessions for a fleet.
4007
+ #
4008
+ # @option params [Array<String>] :usb_device_filter_strings
4009
+ # The USB device filter strings that specify which USB devices a user
4010
+ # can redirect to the fleet streaming session, when using the Windows
4011
+ # native client. This is allowed but not required for Elastic fleets.
4012
+ #
3071
4013
  # @return [Types::UpdateFleetResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
3072
4014
  #
3073
4015
  # * {Types::UpdateFleetResult#fleet #fleet} => Types::Fleet
@@ -3097,9 +4039,12 @@ module Aws::AppStream
3097
4039
  # organizational_unit_distinguished_name: "OrganizationalUnitDistinguishedName",
3098
4040
  # },
3099
4041
  # idle_disconnect_timeout_in_seconds: 1,
3100
- # attributes_to_delete: ["VPC_CONFIGURATION"], # accepts VPC_CONFIGURATION, VPC_CONFIGURATION_SECURITY_GROUP_IDS, DOMAIN_JOIN_INFO, IAM_ROLE_ARN
4042
+ # attributes_to_delete: ["VPC_CONFIGURATION"], # accepts VPC_CONFIGURATION, VPC_CONFIGURATION_SECURITY_GROUP_IDS, DOMAIN_JOIN_INFO, IAM_ROLE_ARN, USB_DEVICE_FILTER_STRINGS
3101
4043
  # iam_role_arn: "Arn",
3102
4044
  # stream_view: "APP", # accepts APP, DESKTOP
4045
+ # platform: "WINDOWS", # accepts WINDOWS, WINDOWS_SERVER_2016, WINDOWS_SERVER_2019, AMAZON_LINUX2
4046
+ # max_concurrent_sessions: 1,
4047
+ # usb_device_filter_strings: ["UsbDeviceFilterString"],
3103
4048
  # })
3104
4049
  #
3105
4050
  # @example Response structure
@@ -3111,7 +4056,7 @@ module Aws::AppStream
3111
4056
  # resp.fleet.image_name #=> String
3112
4057
  # resp.fleet.image_arn #=> String
3113
4058
  # resp.fleet.instance_type #=> String
3114
- # resp.fleet.fleet_type #=> String, one of "ALWAYS_ON", "ON_DEMAND"
4059
+ # resp.fleet.fleet_type #=> String, one of "ALWAYS_ON", "ON_DEMAND", "ELASTIC"
3115
4060
  # resp.fleet.compute_capacity_status.desired #=> Integer
3116
4061
  # resp.fleet.compute_capacity_status.running #=> Integer
3117
4062
  # resp.fleet.compute_capacity_status.in_use #=> Integer
@@ -3133,6 +4078,10 @@ module Aws::AppStream
3133
4078
  # resp.fleet.idle_disconnect_timeout_in_seconds #=> Integer
3134
4079
  # resp.fleet.iam_role_arn #=> String
3135
4080
  # resp.fleet.stream_view #=> String, one of "APP", "DESKTOP"
4081
+ # resp.fleet.platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "AMAZON_LINUX2"
4082
+ # resp.fleet.max_concurrent_sessions #=> Integer
4083
+ # resp.fleet.usb_device_filter_strings #=> Array
4084
+ # resp.fleet.usb_device_filter_strings[0] #=> String
3136
4085
  #
3137
4086
  # @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateFleet AWS API Documentation
3138
4087
  #
@@ -3317,7 +4266,7 @@ module Aws::AppStream
3317
4266
  params: params,
3318
4267
  config: config)
3319
4268
  context[:gem_name] = 'aws-sdk-appstream'
3320
- context[:gem_version] = '1.58.0'
4269
+ context[:gem_version] = '1.62.0'
3321
4270
  Seahorse::Client::Request.new(handlers, context)
3322
4271
  end
3323
4272