aws-sdk-appstream 1.6.0 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/aws-sdk-appstream.rb +1 -1
- data/lib/aws-sdk-appstream/client.rb +21 -4
- data/lib/aws-sdk-appstream/client_api.rb +16 -0
- data/lib/aws-sdk-appstream/types.rb +31 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5b4d3197bf2dc4b717f372bd9d2f23ae75a88038
|
4
|
+
data.tar.gz: 1c2be8e4946f7f475378a397086e3121a61fc98e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 837bff0b9903daa6a89a0d023158c19bbc06dd4aaa409ef91a0771b42cf61a9f51086c97692f3dc4cfe9fd63516050d5b17f1666fcd5c1b6ef2d04fdf9ccc968
|
7
|
+
data.tar.gz: e813a733872d52e62212d2a58e1d2fec230ba6b2383841c307f8dc1418a2b6687e1fa38902e47ecc7610e5e4f8f71dbdf379667f1b9d7fcfbb4c13654856bfd5
|
data/lib/aws-sdk-appstream.rb
CHANGED
@@ -580,7 +580,13 @@ module Aws::AppStream
|
|
580
580
|
# The storage connectors to enable.
|
581
581
|
#
|
582
582
|
# @option params [String] :redirect_url
|
583
|
-
# The URL
|
583
|
+
# The URL that users are redirected to after their streaming session
|
584
|
+
# ends.
|
585
|
+
#
|
586
|
+
# @option params [String] :feedback_url
|
587
|
+
# The URL that users are redirected to after they click the Send
|
588
|
+
# Feedback link. If no URL is specified, no Send Feedback link is
|
589
|
+
# displayed.
|
584
590
|
#
|
585
591
|
# @return [Types::CreateStackResult] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
586
592
|
#
|
@@ -599,6 +605,7 @@ module Aws::AppStream
|
|
599
605
|
# },
|
600
606
|
# ],
|
601
607
|
# redirect_url: "RedirectURL",
|
608
|
+
# feedback_url: "FeedbackURL",
|
602
609
|
# })
|
603
610
|
#
|
604
611
|
# @example Response structure
|
@@ -612,6 +619,7 @@ module Aws::AppStream
|
|
612
619
|
# resp.stack.storage_connectors[0].connector_type #=> String, one of "HOMEFOLDERS"
|
613
620
|
# resp.stack.storage_connectors[0].resource_identifier #=> String
|
614
621
|
# resp.stack.redirect_url #=> String
|
622
|
+
# resp.stack.feedback_url #=> String
|
615
623
|
# resp.stack.stack_errors #=> Array
|
616
624
|
# resp.stack.stack_errors[0].error_code #=> String, one of "STORAGE_CONNECTOR_ERROR", "INTERNAL_SERVICE_ERROR"
|
617
625
|
# resp.stack.stack_errors[0].error_message #=> String
|
@@ -1169,6 +1177,7 @@ module Aws::AppStream
|
|
1169
1177
|
# resp.stacks[0].storage_connectors[0].connector_type #=> String, one of "HOMEFOLDERS"
|
1170
1178
|
# resp.stacks[0].storage_connectors[0].resource_identifier #=> String
|
1171
1179
|
# resp.stacks[0].redirect_url #=> String
|
1180
|
+
# resp.stacks[0].feedback_url #=> String
|
1172
1181
|
# resp.stacks[0].stack_errors #=> Array
|
1173
1182
|
# resp.stacks[0].stack_errors[0].error_code #=> String, one of "STORAGE_CONNECTOR_ERROR", "INTERNAL_SERVICE_ERROR"
|
1174
1183
|
# resp.stacks[0].stack_errors[0].error_message #=> String
|
@@ -1795,7 +1804,13 @@ module Aws::AppStream
|
|
1795
1804
|
# Deletes the storage connectors currently enabled for the stack.
|
1796
1805
|
#
|
1797
1806
|
# @option params [String] :redirect_url
|
1798
|
-
# The URL
|
1807
|
+
# The URL that users are redirected to after their streaming session
|
1808
|
+
# ends.
|
1809
|
+
#
|
1810
|
+
# @option params [String] :feedback_url
|
1811
|
+
# The URL that users are redirected to after they click the Send
|
1812
|
+
# Feedback link. If no URL is specified, no Send Feedback link is
|
1813
|
+
# displayed.
|
1799
1814
|
#
|
1800
1815
|
# @option params [Array<String>] :attributes_to_delete
|
1801
1816
|
# The stack attributes to delete.
|
@@ -1818,7 +1833,8 @@ module Aws::AppStream
|
|
1818
1833
|
# ],
|
1819
1834
|
# delete_storage_connectors: false,
|
1820
1835
|
# redirect_url: "RedirectURL",
|
1821
|
-
#
|
1836
|
+
# feedback_url: "FeedbackURL",
|
1837
|
+
# attributes_to_delete: ["STORAGE_CONNECTORS"], # accepts STORAGE_CONNECTORS, REDIRECT_URL, FEEDBACK_URL, THEME_NAME
|
1822
1838
|
# })
|
1823
1839
|
#
|
1824
1840
|
# @example Response structure
|
@@ -1832,6 +1848,7 @@ module Aws::AppStream
|
|
1832
1848
|
# resp.stack.storage_connectors[0].connector_type #=> String, one of "HOMEFOLDERS"
|
1833
1849
|
# resp.stack.storage_connectors[0].resource_identifier #=> String
|
1834
1850
|
# resp.stack.redirect_url #=> String
|
1851
|
+
# resp.stack.feedback_url #=> String
|
1835
1852
|
# resp.stack.stack_errors #=> Array
|
1836
1853
|
# resp.stack.stack_errors[0].error_code #=> String, one of "STORAGE_CONNECTOR_ERROR", "INTERNAL_SERVICE_ERROR"
|
1837
1854
|
# resp.stack.stack_errors[0].error_message #=> String
|
@@ -1858,7 +1875,7 @@ module Aws::AppStream
|
|
1858
1875
|
params: params,
|
1859
1876
|
config: config)
|
1860
1877
|
context[:gem_name] = 'aws-sdk-appstream'
|
1861
|
-
context[:gem_version] = '1.
|
1878
|
+
context[:gem_version] = '1.7.0'
|
1862
1879
|
Seahorse::Client::Request.new(handlers, context)
|
1863
1880
|
end
|
1864
1881
|
|
@@ -73,6 +73,7 @@ module Aws::AppStream
|
|
73
73
|
ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
|
74
74
|
ExpireSessionRequest = Shapes::StructureShape.new(name: 'ExpireSessionRequest')
|
75
75
|
ExpireSessionResult = Shapes::StructureShape.new(name: 'ExpireSessionResult')
|
76
|
+
FeedbackURL = Shapes::StringShape.new(name: 'FeedbackURL')
|
76
77
|
Fleet = Shapes::StructureShape.new(name: 'Fleet')
|
77
78
|
FleetAttribute = Shapes::StringShape.new(name: 'FleetAttribute')
|
78
79
|
FleetAttributes = Shapes::ListShape.new(name: 'FleetAttributes')
|
@@ -94,6 +95,7 @@ module Aws::AppStream
|
|
94
95
|
ImageStateChangeReasonCode = Shapes::StringShape.new(name: 'ImageStateChangeReasonCode')
|
95
96
|
IncompatibleImageException = Shapes::StructureShape.new(name: 'IncompatibleImageException')
|
96
97
|
Integer = Shapes::IntegerShape.new(name: 'Integer')
|
98
|
+
InvalidAccountStatusException = Shapes::StructureShape.new(name: 'InvalidAccountStatusException')
|
97
99
|
InvalidParameterCombinationException = Shapes::StructureShape.new(name: 'InvalidParameterCombinationException')
|
98
100
|
InvalidRoleException = Shapes::StructureShape.new(name: 'InvalidRoleException')
|
99
101
|
LimitExceededException = Shapes::StructureShape.new(name: 'LimitExceededException')
|
@@ -252,6 +254,7 @@ module Aws::AppStream
|
|
252
254
|
CreateStackRequest.add_member(:display_name, Shapes::ShapeRef.new(shape: DisplayName, location_name: "DisplayName"))
|
253
255
|
CreateStackRequest.add_member(:storage_connectors, Shapes::ShapeRef.new(shape: StorageConnectorList, location_name: "StorageConnectors"))
|
254
256
|
CreateStackRequest.add_member(:redirect_url, Shapes::ShapeRef.new(shape: RedirectURL, location_name: "RedirectURL"))
|
257
|
+
CreateStackRequest.add_member(:feedback_url, Shapes::ShapeRef.new(shape: FeedbackURL, location_name: "FeedbackURL"))
|
255
258
|
CreateStackRequest.struct_class = Types::CreateStackRequest
|
256
259
|
|
257
260
|
CreateStackResult.add_member(:stack, Shapes::ShapeRef.new(shape: Stack, location_name: "Stack"))
|
@@ -503,6 +506,7 @@ module Aws::AppStream
|
|
503
506
|
Stack.add_member(:created_time, Shapes::ShapeRef.new(shape: Timestamp, location_name: "CreatedTime"))
|
504
507
|
Stack.add_member(:storage_connectors, Shapes::ShapeRef.new(shape: StorageConnectorList, location_name: "StorageConnectors"))
|
505
508
|
Stack.add_member(:redirect_url, Shapes::ShapeRef.new(shape: RedirectURL, location_name: "RedirectURL"))
|
509
|
+
Stack.add_member(:feedback_url, Shapes::ShapeRef.new(shape: FeedbackURL, location_name: "FeedbackURL"))
|
506
510
|
Stack.add_member(:stack_errors, Shapes::ShapeRef.new(shape: StackErrors, location_name: "StackErrors"))
|
507
511
|
Stack.struct_class = Types::Stack
|
508
512
|
|
@@ -598,6 +602,7 @@ module Aws::AppStream
|
|
598
602
|
UpdateStackRequest.add_member(:storage_connectors, Shapes::ShapeRef.new(shape: StorageConnectorList, location_name: "StorageConnectors"))
|
599
603
|
UpdateStackRequest.add_member(:delete_storage_connectors, Shapes::ShapeRef.new(shape: Boolean, deprecated: true, location_name: "DeleteStorageConnectors"))
|
600
604
|
UpdateStackRequest.add_member(:redirect_url, Shapes::ShapeRef.new(shape: RedirectURL, location_name: "RedirectURL"))
|
605
|
+
UpdateStackRequest.add_member(:feedback_url, Shapes::ShapeRef.new(shape: FeedbackURL, location_name: "FeedbackURL"))
|
601
606
|
UpdateStackRequest.add_member(:attributes_to_delete, Shapes::ShapeRef.new(shape: StackAttributes, location_name: "AttributesToDelete"))
|
602
607
|
UpdateStackRequest.struct_class = Types::UpdateStackRequest
|
603
608
|
|
@@ -631,6 +636,7 @@ module Aws::AppStream
|
|
631
636
|
o.input = Shapes::ShapeRef.new(shape: AssociateFleetRequest)
|
632
637
|
o.output = Shapes::ShapeRef.new(shape: AssociateFleetResult)
|
633
638
|
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
|
639
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidAccountStatusException)
|
634
640
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
635
641
|
o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
|
636
642
|
o.errors << Shapes::ShapeRef.new(shape: IncompatibleImageException)
|
@@ -647,6 +653,7 @@ module Aws::AppStream
|
|
647
653
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
648
654
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotAvailableException)
|
649
655
|
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
|
656
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidAccountStatusException)
|
650
657
|
o.errors << Shapes::ShapeRef.new(shape: IncompatibleImageException)
|
651
658
|
end)
|
652
659
|
|
@@ -658,6 +665,7 @@ module Aws::AppStream
|
|
658
665
|
o.output = Shapes::ShapeRef.new(shape: CreateDirectoryConfigResult)
|
659
666
|
o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
|
660
667
|
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
|
668
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidAccountStatusException)
|
661
669
|
end)
|
662
670
|
|
663
671
|
api.add_operation(:create_fleet, Seahorse::Model::Operation.new.tap do |o|
|
@@ -670,6 +678,7 @@ module Aws::AppStream
|
|
670
678
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotAvailableException)
|
671
679
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
672
680
|
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
|
681
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidAccountStatusException)
|
673
682
|
o.errors << Shapes::ShapeRef.new(shape: InvalidRoleException)
|
674
683
|
o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
|
675
684
|
o.errors << Shapes::ShapeRef.new(shape: InvalidParameterCombinationException)
|
@@ -683,6 +692,7 @@ module Aws::AppStream
|
|
683
692
|
o.input = Shapes::ShapeRef.new(shape: CreateImageBuilderRequest)
|
684
693
|
o.output = Shapes::ShapeRef.new(shape: CreateImageBuilderResult)
|
685
694
|
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
|
695
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidAccountStatusException)
|
686
696
|
o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
|
687
697
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotAvailableException)
|
688
698
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
@@ -709,6 +719,7 @@ module Aws::AppStream
|
|
709
719
|
o.input = Shapes::ShapeRef.new(shape: CreateStackRequest)
|
710
720
|
o.output = Shapes::ShapeRef.new(shape: CreateStackResult)
|
711
721
|
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
|
722
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidAccountStatusException)
|
712
723
|
o.errors << Shapes::ShapeRef.new(shape: ResourceAlreadyExistsException)
|
713
724
|
o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
|
714
725
|
o.errors << Shapes::ShapeRef.new(shape: InvalidRoleException)
|
@@ -890,6 +901,7 @@ module Aws::AppStream
|
|
890
901
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
891
902
|
o.errors << Shapes::ShapeRef.new(shape: OperationNotPermittedException)
|
892
903
|
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
|
904
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidAccountStatusException)
|
893
905
|
o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
|
894
906
|
end)
|
895
907
|
|
@@ -902,6 +914,7 @@ module Aws::AppStream
|
|
902
914
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotAvailableException)
|
903
915
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
904
916
|
o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
|
917
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidAccountStatusException)
|
905
918
|
o.errors << Shapes::ShapeRef.new(shape: IncompatibleImageException)
|
906
919
|
end)
|
907
920
|
|
@@ -933,6 +946,7 @@ module Aws::AppStream
|
|
933
946
|
o.input = Shapes::ShapeRef.new(shape: TagResourceRequest)
|
934
947
|
o.output = Shapes::ShapeRef.new(shape: TagResourceResponse)
|
935
948
|
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
|
949
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidAccountStatusException)
|
936
950
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
937
951
|
end)
|
938
952
|
|
@@ -964,6 +978,7 @@ module Aws::AppStream
|
|
964
978
|
o.output = Shapes::ShapeRef.new(shape: UpdateFleetResult)
|
965
979
|
o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
|
966
980
|
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
|
981
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidAccountStatusException)
|
967
982
|
o.errors << Shapes::ShapeRef.new(shape: InvalidRoleException)
|
968
983
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
969
984
|
o.errors << Shapes::ShapeRef.new(shape: ResourceNotAvailableException)
|
@@ -984,6 +999,7 @@ module Aws::AppStream
|
|
984
999
|
o.errors << Shapes::ShapeRef.new(shape: InvalidRoleException)
|
985
1000
|
o.errors << Shapes::ShapeRef.new(shape: InvalidParameterCombinationException)
|
986
1001
|
o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
|
1002
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidAccountStatusException)
|
987
1003
|
o.errors << Shapes::ShapeRef.new(shape: IncompatibleImageException)
|
988
1004
|
end)
|
989
1005
|
end
|
@@ -531,6 +531,7 @@ module Aws::AppStream
|
|
531
531
|
# },
|
532
532
|
# ],
|
533
533
|
# redirect_url: "RedirectURL",
|
534
|
+
# feedback_url: "FeedbackURL",
|
534
535
|
# }
|
535
536
|
#
|
536
537
|
# @!attribute [rw] name
|
@@ -550,7 +551,14 @@ module Aws::AppStream
|
|
550
551
|
# @return [Array<Types::StorageConnector>]
|
551
552
|
#
|
552
553
|
# @!attribute [rw] redirect_url
|
553
|
-
# The URL
|
554
|
+
# The URL that users are redirected to after their streaming session
|
555
|
+
# ends.
|
556
|
+
# @return [String]
|
557
|
+
#
|
558
|
+
# @!attribute [rw] feedback_url
|
559
|
+
# The URL that users are redirected to after they click the Send
|
560
|
+
# Feedback link. If no URL is specified, no Send Feedback link is
|
561
|
+
# displayed.
|
554
562
|
# @return [String]
|
555
563
|
#
|
556
564
|
# @see http://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateStackRequest AWS API Documentation
|
@@ -560,7 +568,8 @@ module Aws::AppStream
|
|
560
568
|
:description,
|
561
569
|
:display_name,
|
562
570
|
:storage_connectors,
|
563
|
-
:redirect_url
|
571
|
+
:redirect_url,
|
572
|
+
:feedback_url)
|
564
573
|
include Aws::Structure
|
565
574
|
end
|
566
575
|
|
@@ -1720,7 +1729,14 @@ module Aws::AppStream
|
|
1720
1729
|
# @return [Array<Types::StorageConnector>]
|
1721
1730
|
#
|
1722
1731
|
# @!attribute [rw] redirect_url
|
1723
|
-
# The URL
|
1732
|
+
# The URL that users are redirected to after their streaming session
|
1733
|
+
# ends.
|
1734
|
+
# @return [String]
|
1735
|
+
#
|
1736
|
+
# @!attribute [rw] feedback_url
|
1737
|
+
# The URL that users are redirected to after they click the Send
|
1738
|
+
# Feedback link. If no URL is specified, no Send Feedback link is
|
1739
|
+
# displayed.
|
1724
1740
|
# @return [String]
|
1725
1741
|
#
|
1726
1742
|
# @!attribute [rw] stack_errors
|
@@ -1737,6 +1753,7 @@ module Aws::AppStream
|
|
1737
1753
|
:created_time,
|
1738
1754
|
:storage_connectors,
|
1739
1755
|
:redirect_url,
|
1756
|
+
:feedback_url,
|
1740
1757
|
:stack_errors)
|
1741
1758
|
include Aws::Structure
|
1742
1759
|
end
|
@@ -2172,7 +2189,8 @@ module Aws::AppStream
|
|
2172
2189
|
# ],
|
2173
2190
|
# delete_storage_connectors: false,
|
2174
2191
|
# redirect_url: "RedirectURL",
|
2175
|
-
#
|
2192
|
+
# feedback_url: "FeedbackURL",
|
2193
|
+
# attributes_to_delete: ["STORAGE_CONNECTORS"], # accepts STORAGE_CONNECTORS, REDIRECT_URL, FEEDBACK_URL, THEME_NAME
|
2176
2194
|
# }
|
2177
2195
|
#
|
2178
2196
|
# @!attribute [rw] display_name
|
@@ -2196,7 +2214,14 @@ module Aws::AppStream
|
|
2196
2214
|
# @return [Boolean]
|
2197
2215
|
#
|
2198
2216
|
# @!attribute [rw] redirect_url
|
2199
|
-
# The URL
|
2217
|
+
# The URL that users are redirected to after their streaming session
|
2218
|
+
# ends.
|
2219
|
+
# @return [String]
|
2220
|
+
#
|
2221
|
+
# @!attribute [rw] feedback_url
|
2222
|
+
# The URL that users are redirected to after they click the Send
|
2223
|
+
# Feedback link. If no URL is specified, no Send Feedback link is
|
2224
|
+
# displayed.
|
2200
2225
|
# @return [String]
|
2201
2226
|
#
|
2202
2227
|
# @!attribute [rw] attributes_to_delete
|
@@ -2212,6 +2237,7 @@ module Aws::AppStream
|
|
2212
2237
|
:storage_connectors,
|
2213
2238
|
:delete_storage_connectors,
|
2214
2239
|
:redirect_url,
|
2240
|
+
:feedback_url,
|
2215
2241
|
:attributes_to_delete)
|
2216
2242
|
include Aws::Structure
|
2217
2243
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aws-sdk-appstream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Amazon Web Services
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-core
|
@@ -76,7 +76,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
76
|
version: '0'
|
77
77
|
requirements: []
|
78
78
|
rubyforge_project:
|
79
|
-
rubygems_version: 2.5.
|
79
|
+
rubygems_version: 2.5.2.2
|
80
80
|
signing_key:
|
81
81
|
specification_version: 4
|
82
82
|
summary: AWS SDK for Ruby - Amazon AppStream
|