Class: Aws::AppStream::Client

Inherits:
Seahorse::Client::Base show all
Includes:
ClientStubs
Defined in:
gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb

Overview

An API client for AppStream. To construct a client, you need to configure a :region and :credentials.

client = Aws::AppStream::Client.new(
  region: region_name,
  credentials: credentials,
  # ...
)

For details on configuring region and credentials see the developer guide.

See #initialize for a full list of supported configuration options.

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Base

#config, #handlers

API Operations collapse

Instance Method Summary collapse

Methods included from ClientStubs

#api_requests, #stub_data, #stub_responses

Methods inherited from Seahorse::Client::Base

add_plugin, api, clear_plugins, define, new, #operation_names, plugins, remove_plugin, set_api, set_plugins

Methods included from Seahorse::Client::HandlerBuilder

#handle, #handle_request, #handle_response

Constructor Details

#initialize(options) ⇒ Client

Returns a new instance of Client.

Parameters:

  • options (Hash)

Options Hash (options):

  • :credentials (required, Aws::CredentialProvider)

    Your AWS credentials. This can be an instance of any one of the following classes:

    • Aws::Credentials - Used for configuring static, non-refreshing credentials.

    • Aws::SharedCredentials - Used for loading static credentials from a shared file, such as ~/.aws/config.

    • Aws::AssumeRoleCredentials - Used when you need to assume a role.

    • Aws::AssumeRoleWebIdentityCredentials - Used when you need to assume a role after providing credentials via the web.

    • Aws::SSOCredentials - Used for loading credentials from AWS SSO using an access token generated from aws login.

    • Aws::ProcessCredentials - Used for loading credentials from a process that outputs to stdout.

    • Aws::InstanceProfileCredentials - Used for loading credentials from an EC2 IMDS on an EC2 instance.

    • Aws::ECSCredentials - Used for loading credentials from instances running in ECS.

    • Aws::CognitoIdentityCredentials - Used for loading credentials from the Cognito Identity service.

    When :credentials are not configured directly, the following locations will be searched for credentials:

    • Aws.config[:credentials]
    • The :access_key_id, :secret_access_key, and :session_token options.
    • ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
    • ~/.aws/credentials
    • ~/.aws/config
    • EC2/ECS IMDS instance profile - When used by default, the timeouts are very aggressive. Construct and pass an instance of Aws::InstanceProfileCredentails or Aws::ECSCredentials to enable retries and extended timeouts. Instance profile credential fetching can be disabled by setting ENV['AWS_EC2_METADATA_DISABLED'] to true.
  • :region (required, String)

    The AWS region to connect to. The configured :region is used to determine the service :endpoint. When not passed, a default :region is searched for in the following locations:

    • Aws.config[:region]
    • ENV['AWS_REGION']
    • ENV['AMAZON_REGION']
    • ENV['AWS_DEFAULT_REGION']
    • ~/.aws/credentials
    • ~/.aws/config
  • :access_key_id (String)
  • :active_endpoint_cache (Boolean) — default: false

    When set to true, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults to false.

  • :adaptive_retry_wait_to_fill (Boolean) — default: true

    Used only in adaptive retry mode. When true, the request will sleep until there is sufficent client side capacity to retry the request. When false, the request will raise a RetryCapacityNotAvailableError and will not retry instead of sleeping.

  • :client_side_monitoring (Boolean) — default: false

    When true, client-side metrics will be collected for all API requests from this client.

  • :client_side_monitoring_client_id (String) — default: ""

    Allows you to provide an identifier for this client which will be attached to all generated client side metrics. Defaults to an empty string.

  • :client_side_monitoring_host (String) — default: "127.0.0.1"

    Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_port (Integer) — default: 31000

    Required for publishing client metrics. The port that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) — default: Aws::ClientSideMonitoring::Publisher

    Allows you to provide a custom client-side monitoring publisher class. By default, will use the Client Side Monitoring Agent Publisher.

  • :convert_params (Boolean) — default: true

    When true, an attempt is made to coerce request parameters into the required types.

  • :correct_clock_skew (Boolean) — default: true

    Used only in standard and adaptive retry modes. Specifies whether to apply a clock skew correction and retry requests with skewed client clocks.

  • :defaults_mode (String) — default: "legacy"

    See DefaultsModeConfiguration for a list of the accepted modes and the configuration defaults that are included.

  • :disable_host_prefix_injection (Boolean) — default: false

    Set to true to disable SDK automatically adding host prefix to default service endpoint when available.

  • :disable_request_compression (Boolean) — default: false

    When set to 'true' the request body will not be compressed for supported operations.

  • :endpoint (String, URI::HTTPS, URI::HTTP)

    Normally you should not configure the :endpoint option directly. This is normally constructed from the :region option. Configuring :endpoint is normally reserved for connecting to test or custom endpoints. The endpoint should be a URI formatted like:

    'http://example.com'
    'https://example.com'
    'http://example.com:123'
    
  • :endpoint_cache_max_entries (Integer) — default: 1000

    Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000.

  • :endpoint_cache_max_threads (Integer) — default: 10

    Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.

  • :endpoint_cache_poll_interval (Integer) — default: 60

    When :endpoint_discovery and :active_endpoint_cache is enabled, Use this option to config the time interval in seconds for making requests fetching endpoints information. Defaults to 60 sec.

  • :endpoint_discovery (Boolean) — default: false

    When set to true, endpoint discovery will be enabled for operations when available.

  • :ignore_configured_endpoint_urls (Boolean)

    Setting to true disables use of endpoint URLs provided via environment variables and the shared configuration file.

  • :log_formatter (Aws::Log::Formatter) — default: Aws::Log::Formatter.default

    The log formatter.

  • :log_level (Symbol) — default: :info

    The log level to send messages to the :logger at.

  • :logger (Logger)

    The Logger instance to send log messages to. If this option is not set, logging will be disabled.

  • :max_attempts (Integer) — default: 3

    An integer representing the maximum number attempts that will be made for a single request, including the initial attempt. For example, setting this value to 5 will result in a request being retried up to 4 times. Used in standard and adaptive retry modes.

  • :profile (String) — default: "default"

    Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, 'default' is used.

  • :request_min_compression_size_bytes (Integer) — default: 10240

    The minimum size in bytes that triggers compression for request bodies. The value must be non-negative integer value between 0 and 10485780 bytes inclusive.

  • :retry_backoff (Proc)

    A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay. This option is only used in the legacy retry mode.

  • :retry_base_delay (Float) — default: 0.3

    The base delay in seconds used by the default backoff function. This option is only used in the legacy retry mode.

  • :retry_jitter (Symbol) — default: :none

    A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number. This option is only used in the legacy retry mode.

    @see https://www.awsarchitectureblog.com/2015/03/backoff.html

  • :retry_limit (Integer) — default: 3

    The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors, auth errors, endpoint discovery, and errors from expired credentials. This option is only used in the legacy retry mode.

  • :retry_max_delay (Integer) — default: 0

    The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function. This option is only used in the legacy retry mode.

  • :retry_mode (String) — default: "legacy"

    Specifies which retry algorithm to use. Values are:

    • legacy - The pre-existing retry behavior. This is default value if no retry mode is provided.

    • standard - A standardized set of retry rules across the AWS SDKs. This includes support for retry quotas, which limit the number of unsuccessful retries a client can make.

    • adaptive - An experimental retry mode that includes all the functionality of standard mode along with automatic client side throttling. This is a provisional mode that may change behavior in the future.

  • :sdk_ua_app_id (String)

    A unique and opaque application ID that is appended to the User-Agent header as app/. It should have a maximum length of 50.

  • :secret_access_key (String)
  • :session_token (String)
  • :simple_json (Boolean) — default: false

    Disables request parameter conversion, validation, and formatting. Also disable response data type conversions. This option is useful when you want to ensure the highest level of performance by avoiding overhead of walking request parameters and response data structures.

    When :simple_json is enabled, the request parameters hash must be formatted exactly as the DynamoDB API expects.

  • :stub_responses (Boolean) — default: false

    Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling ClientStubs#stub_responses. See ClientStubs for more information.

    Please note When response stubbing is enabled, no HTTP requests are made, and retries are disabled.

  • :token_provider (Aws::TokenProvider)

    A Bearer Token Provider. This can be an instance of any one of the following classes:

    • Aws::StaticTokenProvider - Used for configuring static, non-refreshing tokens.

    • Aws::SSOTokenProvider - Used for loading tokens from AWS SSO using an access token generated from aws login.

    When :token_provider is not configured directly, the Aws::TokenProviderChain will be used to search for tokens configured for your profile in shared configuration files.

  • :use_dualstack_endpoint (Boolean)

    When set to true, dualstack enabled endpoints (with .aws TLD) will be used if available.

  • :use_fips_endpoint (Boolean)

    When set to true, fips compatible endpoints will be used if available. When a fips region is used, the region is normalized and this config is set to true.

  • :validate_params (Boolean) — default: true

    When true, request parameters are validated before sending the request.

  • :endpoint_provider (Aws::AppStream::EndpointProvider)

    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

  • :http_continue_timeout (Float) — default: 1

    The number of seconds to wait for a 100-continue response before sending the request body. This option has no effect unless the request has "Expect" header set to "100-continue". Defaults to nil which disables this behaviour. This value can safely be set per request on the session.

  • :http_idle_timeout (Float) — default: 5

    The number of seconds a connection is allowed to sit idle before it is considered stale. Stale connections are closed and removed from the pool before making a request.

  • :http_open_timeout (Float) — default: 15

    The default number of seconds to wait for response data. This value can safely be set per-request on the session.

  • :http_proxy (URI::HTTP, String)

    A proxy to send requests through. Formatted like 'http://proxy.com:123'.

  • :http_read_timeout (Float) — default: 60

    The default number of seconds to wait for response data. This value can safely be set per-request on the session.

  • :http_wire_trace (Boolean) — default: false

    When true, HTTP debug output will be sent to the :logger.

  • :on_chunk_received (Proc)

    When a Proc object is provided, it will be used as callback when each chunk of the response body is received. It provides three arguments: the chunk, the number of bytes received, and the total number of bytes in the response (or nil if the server did not send a content-length).

  • :on_chunk_sent (Proc)

    When a Proc object is provided, it will be used as callback when each chunk of the request body is sent. It provides three arguments: the chunk, the number of bytes read from the body, and the total number of bytes in the body.

  • :raise_response_errors (Boolean) — default: true

    When true, response errors are raised.

  • :ssl_ca_bundle (String)

    Full path to the SSL certificate authority bundle file that should be used when verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.

  • :ssl_ca_directory (String)

    Full path of the directory that contains the unbundled SSL certificate authority files for verifying peer certificates. If you do not pass :ssl_ca_bundle or :ssl_ca_directory the the system default will be used if available.

  • :ssl_ca_store (String)

    Sets the X509::Store to verify peer certificate.

  • :ssl_timeout (Float)

    Sets the SSL timeout in seconds

  • :ssl_verify_peer (Boolean) — default: true

    When true, SSL peer certificates are verified when establishing a connection.



419
420
421
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 419

def initialize(*args)
  super
end

Instance Method Details

#associate_app_block_builder_app_block(params = {}) ⇒ Types::AssociateAppBlockBuilderAppBlockResult

Associates the specified app block builder with the specified app block.

Examples:

Request syntax with placeholder values


resp = client.associate_app_block_builder_app_block({
  app_block_arn: "Arn", # required
  app_block_builder_name: "Name", # required
})

Response structure


resp.app_block_builder_app_block_association.app_block_arn #=> String
resp.app_block_builder_app_block_association.app_block_builder_name #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :app_block_arn (required, String)

    The ARN of the app block.

  • :app_block_builder_name (required, String)

    The name of the app block builder.

Returns:

See Also:



454
455
456
457
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 454

def associate_app_block_builder_app_block(params = {}, options = {})
  req = build_request(:associate_app_block_builder_app_block, params)
  req.send_request(options)
end

#associate_application_fleet(params = {}) ⇒ Types::AssociateApplicationFleetResult

Associates the specified application with the specified fleet. This is only supported for Elastic fleets.

Examples:

Request syntax with placeholder values


resp = client.associate_application_fleet({
  fleet_name: "Name", # required
  application_arn: "Arn", # required
})

Response structure


resp.application_fleet_association.fleet_name #=> String
resp.application_fleet_association.application_arn #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :fleet_name (required, String)

    The name of the fleet.

  • :application_arn (required, String)

    The ARN of the application.

Returns:

See Also:



488
489
490
491
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 488

def associate_application_fleet(params = {}, options = {})
  req = build_request(:associate_application_fleet, params)
  req.send_request(options)
end

#associate_application_to_entitlement(params = {}) ⇒ Struct

Associates an application to entitle.

Examples:

Request syntax with placeholder values


resp = client.associate_application_to_entitlement({
  stack_name: "Name", # required
  entitlement_name: "Name", # required
  application_identifier: "String", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :stack_name (required, String)

    The name of the stack.

  • :entitlement_name (required, String)

    The name of the entitlement.

  • :application_identifier (required, String)

    The identifier of the application.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



518
519
520
521
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 518

def associate_application_to_entitlement(params = {}, options = {})
  req = build_request(:associate_application_to_entitlement, params)
  req.send_request(options)
end

#associate_fleet(params = {}) ⇒ Struct

Associates the specified fleet with the specified stack.

Examples:

Request syntax with placeholder values


resp = client.associate_fleet({
  fleet_name: "String", # required
  stack_name: "String", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :fleet_name (required, String)

    The name of the fleet.

  • :stack_name (required, String)

    The name of the stack.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



544
545
546
547
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 544

def associate_fleet(params = {}, options = {})
  req = build_request(:associate_fleet, params)
  req.send_request(options)
end

#batch_associate_user_stack(params = {}) ⇒ Types::BatchAssociateUserStackResult

Associates the specified users with the specified stacks. Users in a user pool cannot be assigned to stacks with fleets that are joined to an Active Directory domain.

Examples:

Request syntax with placeholder values


resp = client.batch_associate_user_stack({
  user_stack_associations: [ # required
    {
      stack_name: "String", # required
      user_name: "Username", # required
      authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
      send_email_notification: false,
    },
  ],
})

Response structure


resp.errors #=> Array
resp.errors[0].user_stack_association.stack_name #=> String
resp.errors[0].user_stack_association.user_name #=> String
resp.errors[0].user_stack_association.authentication_type #=> String, one of "API", "SAML", "USERPOOL", "AWS_AD"
resp.errors[0].user_stack_association.send_email_notification #=> Boolean
resp.errors[0].error_code #=> String, one of "STACK_NOT_FOUND", "USER_NAME_NOT_FOUND", "DIRECTORY_NOT_FOUND", "INTERNAL_ERROR"
resp.errors[0].error_message #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

Returns:

See Also:



587
588
589
590
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 587

def batch_associate_user_stack(params = {}, options = {})
  req = build_request(:batch_associate_user_stack, params)
  req.send_request(options)
end

#batch_disassociate_user_stack(params = {}) ⇒ Types::BatchDisassociateUserStackResult

Disassociates the specified users from the specified stacks.

Examples:

Request syntax with placeholder values


resp = client.batch_disassociate_user_stack({
  user_stack_associations: [ # required
    {
      stack_name: "String", # required
      user_name: "Username", # required
      authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
      send_email_notification: false,
    },
  ],
})

Response structure


resp.errors #=> Array
resp.errors[0].user_stack_association.stack_name #=> String
resp.errors[0].user_stack_association.user_name #=> String
resp.errors[0].user_stack_association.authentication_type #=> String, one of "API", "SAML", "USERPOOL", "AWS_AD"
resp.errors[0].user_stack_association.send_email_notification #=> Boolean
resp.errors[0].error_code #=> String, one of "STACK_NOT_FOUND", "USER_NAME_NOT_FOUND", "DIRECTORY_NOT_FOUND", "INTERNAL_ERROR"
resp.errors[0].error_message #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

Returns:

See Also:



628
629
630
631
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 628

def batch_disassociate_user_stack(params = {}, options = {})
  req = build_request(:batch_disassociate_user_stack, params)
  req.send_request(options)
end

#copy_image(params = {}) ⇒ Types::CopyImageResponse

Copies the image within the same region or to a new region within the same AWS account. Note that any tags you added to the image will not be copied.

Examples:

Request syntax with placeholder values


resp = client.copy_image({
  source_image_name: "Name", # required
  destination_image_name: "Name", # required
  destination_region: "RegionName", # required
  destination_image_description: "Description",
})

Response structure


resp.destination_image_name #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :source_image_name (required, String)

    The name of the image to copy.

  • :destination_image_name (required, String)

    The name that the image will have when it is copied to the destination.

  • :destination_region (required, String)

    The destination region to which the image will be copied. This parameter is required, even if you are copying an image within the same region.

  • :destination_image_description (String)

    The description that the image will have when it is copied to the destination.

Returns:

See Also:



674
675
676
677
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 674

def copy_image(params = {}, options = {})
  req = build_request(:copy_image, params)
  req.send_request(options)
end

#create_app_block(params = {}) ⇒ Types::CreateAppBlockResult

Creates an app block.

App blocks are an Amazon AppStream 2.0 resource that stores the details about the virtual hard disk in an S3 bucket. It also stores the setup script with details about how to mount the virtual hard disk. The virtual hard disk includes the application binaries and other files necessary to launch your applications. Multiple applications can be assigned to a single app block.

This is only supported for Elastic fleets.

Examples:

Request syntax with placeholder values


resp = client.create_app_block({
  name: "Name", # required
  description: "Description",
  display_name: "DisplayName",
  source_s3_location: { # required
    s3_bucket: "S3Bucket", # required
    s3_key: "S3Key",
  },
  setup_script_details: {
    script_s3_location: { # required
      s3_bucket: "S3Bucket", # required
      s3_key: "S3Key",
    },
    executable_path: "String", # required
    executable_parameters: "String",
    timeout_in_seconds: 1, # required
  },
  tags: {
    "TagKey" => "TagValue",
  },
  post_setup_script_details: {
    script_s3_location: { # required
      s3_bucket: "S3Bucket", # required
      s3_key: "S3Key",
    },
    executable_path: "String", # required
    executable_parameters: "String",
    timeout_in_seconds: 1, # required
  },
  packaging_type: "CUSTOM", # accepts CUSTOM, APPSTREAM2
})

Response structure


resp.app_block.name #=> String
resp.app_block.arn #=> String
resp.app_block.description #=> String
resp.app_block.display_name #=> String
resp.app_block.source_s3_location.s3_bucket #=> String
resp.app_block.source_s3_location.s3_key #=> String
resp.app_block.setup_script_details.script_s3_location.s3_bucket #=> String
resp.app_block.setup_script_details.script_s3_location.s3_key #=> String
resp.app_block.setup_script_details.executable_path #=> String
resp.app_block.setup_script_details.executable_parameters #=> String
resp.app_block.setup_script_details.timeout_in_seconds #=> Integer
resp.app_block.created_time #=> Time
resp.app_block.post_setup_script_details.script_s3_location.s3_bucket #=> String
resp.app_block.post_setup_script_details.script_s3_location.s3_key #=> String
resp.app_block.post_setup_script_details.executable_path #=> String
resp.app_block.post_setup_script_details.executable_parameters #=> String
resp.app_block.post_setup_script_details.timeout_in_seconds #=> Integer
resp.app_block.packaging_type #=> String, one of "CUSTOM", "APPSTREAM2"
resp.app_block.state #=> String, one of "INACTIVE", "ACTIVE"
resp.app_block.app_block_errors #=> Array
resp.app_block.app_block_errors[0].error_code #=> String
resp.app_block.app_block_errors[0].error_message #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the app block.

  • :description (String)

    The description of the app block.

  • :display_name (String)

    The display name of the app block. This is not displayed to the user.

  • :source_s3_location (required, Types::S3Location)

    The source S3 location of the app block.

  • :setup_script_details (Types::ScriptDetails)

    The setup script details of the app block. This must be provided for the CUSTOM PackagingType.

  • :tags (Hash<String,String>)

    The tags assigned to the app block.

  • :post_setup_script_details (Types::ScriptDetails)

    The post setup script details of the app block. This can only be provided for the APPSTREAM2 PackagingType.

  • :packaging_type (String)

    The packaging type of the app block.

Returns:

See Also:



783
784
785
786
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 783

def create_app_block(params = {}, options = {})
  req = build_request(:create_app_block, params)
  req.send_request(options)
end

#create_app_block_builder(params = {}) ⇒ Types::CreateAppBlockBuilderResult

Creates an app block builder.

Examples:

Request syntax with placeholder values


resp = client.create_app_block_builder({
  name: "Name", # required
  description: "Description",
  display_name: "DisplayName",
  tags: {
    "TagKey" => "TagValue",
  },
  platform: "WINDOWS_SERVER_2019", # required, accepts WINDOWS_SERVER_2019
  instance_type: "String", # required
  vpc_config: { # required
    subnet_ids: ["String"],
    security_group_ids: ["String"],
  },
  enable_default_internet_access: false,
  iam_role_arn: "Arn",
  access_endpoints: [
    {
      endpoint_type: "STREAMING", # required, accepts STREAMING
      vpce_id: "String",
    },
  ],
})

Response structure


resp.app_block_builder.arn #=> String
resp.app_block_builder.name #=> String
resp.app_block_builder.display_name #=> String
resp.app_block_builder.description #=> String
resp.app_block_builder.platform #=> String, one of "WINDOWS_SERVER_2019"
resp.app_block_builder.instance_type #=> String
resp.app_block_builder.enable_default_internet_access #=> Boolean
resp.app_block_builder.iam_role_arn #=> String
resp.app_block_builder.vpc_config.subnet_ids #=> Array
resp.app_block_builder.vpc_config.subnet_ids[0] #=> String
resp.app_block_builder.vpc_config.security_group_ids #=> Array
resp.app_block_builder.vpc_config.security_group_ids[0] #=> String
resp.app_block_builder.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
resp.app_block_builder.created_time #=> Time
resp.app_block_builder.app_block_builder_errors #=> Array
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"
resp.app_block_builder.app_block_builder_errors[0].error_message #=> String
resp.app_block_builder.app_block_builder_errors[0].error_timestamp #=> Time
resp.app_block_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR"
resp.app_block_builder.state_change_reason.message #=> String
resp.app_block_builder.access_endpoints #=> Array
resp.app_block_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.app_block_builder.access_endpoints[0].vpce_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The unique name for the app block builder.

  • :description (String)

    The description of the app block builder.

  • :display_name (String)

    The display name of the app block builder.

  • :tags (Hash<String,String>)

    The tags to associate with the app block builder. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.

    If you do not specify a value, the value is set to an empty string.

    Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:

    _ . : / = + \ - @

    For more information, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide.

  • :platform (required, String)

    The platform of the app block builder.

    WINDOWS_SERVER_2019 is the only valid value.

  • :instance_type (required, String)

    The instance type to use when launching the app block builder. The following instance types are available:

    • stream.standard.small

    • stream.standard.medium

    • stream.standard.large

    • stream.standard.xlarge

    • stream.standard.2xlarge

  • :vpc_config (required, Types::VpcConfig)

    The VPC configuration for the app block builder.

    App block builders require that you specify at least two subnets in different availability zones.

  • :enable_default_internet_access (Boolean)

    Enables or disables default internet access for the app block builder.

  • :iam_role_arn (String)

    The Amazon Resource Name (ARN) of the IAM role to apply to the app block builder. To assume a role, the app block builder calls the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the appstream_machine_role credential profile on the instance.

    For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 Administration Guide.

  • :access_endpoints (Array<Types::AccessEndpoint>)

    The list of interface VPC endpoint (interface endpoint) objects. Administrators can connect to the app block builder only through the specified endpoints.

Returns:

See Also:



927
928
929
930
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 927

def create_app_block_builder(params = {}, options = {})
  req = build_request(:create_app_block_builder, params)
  req.send_request(options)
end

#create_app_block_builder_streaming_url(params = {}) ⇒ Types::CreateAppBlockBuilderStreamingURLResult

Creates a URL to start a create app block builder streaming session.

Examples:

Request syntax with placeholder values


resp = client.create_app_block_builder_streaming_url({
  app_block_builder_name: "Name", # required
  validity: 1,
})

Response structure


resp.streaming_url #=> String
resp.expires #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :app_block_builder_name (required, String)

    The name of the app block builder.

  • :validity (Integer)

    The time that the streaming URL will be valid, in seconds. Specify a value between 1 and 604800 seconds. The default is 3600 seconds.

Returns:

See Also:



962
963
964
965
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 962

def create_app_block_builder_streaming_url(params = {}, options = {})
  req = build_request(:create_app_block_builder_streaming_url, params)
  req.send_request(options)
end

#create_application(params = {}) ⇒ Types::CreateApplicationResult

Creates an application.

Applications are an Amazon AppStream 2.0 resource that stores the details about how to launch applications on Elastic fleet streaming instances. An application consists of the launch details, icon, and display name. Applications are associated with an app block that contains the application binaries and other files. The applications assigned to an Elastic fleet are the applications users can launch.

This is only supported for Elastic fleets.

Examples:

Request syntax with placeholder values


resp = client.create_application({
  name: "Name", # required
  display_name: "DisplayName",
  description: "Description",
  icon_s3_location: { # required
    s3_bucket: "S3Bucket", # required
    s3_key: "S3Key",
  },
  launch_path: "String", # required
  working_directory: "String",
  launch_parameters: "String",
  platforms: ["WINDOWS"], # required, accepts WINDOWS, WINDOWS_SERVER_2016, WINDOWS_SERVER_2019, WINDOWS_SERVER_2022, AMAZON_LINUX2
  instance_families: ["String"], # required
  app_block_arn: "Arn", # required
  tags: {
    "TagKey" => "TagValue",
  },
})

Response structure


resp.application.name #=> String
resp.application.display_name #=> String
resp.application.icon_url #=> String
resp.application.launch_path #=> String
resp.application.launch_parameters #=> String
resp.application.enabled #=> Boolean
resp.application. #=> Hash
resp.application.["String"] #=> String
resp.application.working_directory #=> String
resp.application.description #=> String
resp.application.arn #=> String
resp.application.app_block_arn #=> String
resp.application.icon_s3_location.s3_bucket #=> String
resp.application.icon_s3_location.s3_key #=> String
resp.application.platforms #=> Array
resp.application.platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.application.instance_families #=> Array
resp.application.instance_families[0] #=> String
resp.application.created_time #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the application. This name is visible to users when display name is not specified.

  • :display_name (String)

    The display name of the application. This name is visible to users in the application catalog.

  • :description (String)

    The description of the application.

  • :icon_s3_location (required, Types::S3Location)

    The location in S3 of the application icon.

  • :launch_path (required, String)

    The launch path of the application.

  • :working_directory (String)

    The working directory of the application.

  • :launch_parameters (String)

    The launch parameters of the application.

  • :platforms (required, Array<String>)

    The platforms the application supports. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.

  • :instance_families (required, Array<String>)

    The instance families the application supports. Valid values are GENERAL_PURPOSE and GRAPHICS_G4.

  • :app_block_arn (required, String)

    The app block ARN to which the application should be associated

  • :tags (Hash<String,String>)

    The tags assigned to the application.

Returns:

See Also:



1066
1067
1068
1069
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 1066

def create_application(params = {}, options = {})
  req = build_request(:create_application, params)
  req.send_request(options)
end

#create_directory_config(params = {}) ⇒ Types::CreateDirectoryConfigResult

Creates a Directory Config object in AppStream 2.0. This object includes the configuration information required to join fleets and image builders to Microsoft Active Directory domains.

Examples:

Request syntax with placeholder values


resp = client.create_directory_config({
  directory_name: "DirectoryName", # required
  organizational_unit_distinguished_names: ["OrganizationalUnitDistinguishedName"], # required
  service_account_credentials: {
    account_name: "AccountName", # required
    account_password: "AccountPassword", # required
  },
  certificate_based_auth_properties: {
    status: "DISABLED", # accepts DISABLED, ENABLED, ENABLED_NO_DIRECTORY_LOGIN_FALLBACK
    certificate_authority_arn: "Arn",
  },
})

Response structure


resp.directory_config.directory_name #=> String
resp.directory_config.organizational_unit_distinguished_names #=> Array
resp.directory_config.organizational_unit_distinguished_names[0] #=> String
resp.directory_config.. #=> String
resp.directory_config.. #=> String
resp.directory_config.created_time #=> Time
resp.directory_config.certificate_based_auth_properties.status #=> String, one of "DISABLED", "ENABLED", "ENABLED_NO_DIRECTORY_LOGIN_FALLBACK"
resp.directory_config.certificate_based_auth_properties.certificate_authority_arn #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :directory_name (required, String)

    The fully qualified name of the directory (for example, corp.example.com).

  • :organizational_unit_distinguished_names (required, Array<String>)

    The distinguished names of the organizational units for computer accounts.

  • :service_account_credentials (Types::ServiceAccountCredentials)

    The credentials for the service account used by the fleet or image builder to connect to the directory.

  • :certificate_based_auth_properties (Types::CertificateBasedAuthProperties)

    The certificate-based authentication properties used to authenticate SAML 2.0 Identity Provider (IdP) user identities to Active Directory domain-joined streaming instances. Fallback is turned on by default when certificate-based authentication is Enabled . Fallback allows users to log in using their AD domain password if certificate-based authentication is unsuccessful, or to unlock a desktop lock screen. Enabled_no_directory_login_fallback enables certificate-based authentication, but does not allow users to log in using their AD domain password. Users will be disconnected to re-authenticate using certificates.

Returns:

See Also:



1133
1134
1135
1136
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 1133

def create_directory_config(params = {}, options = {})
  req = build_request(:create_directory_config, params)
  req.send_request(options)
end

#create_entitlement(params = {}) ⇒ Types::CreateEntitlementResult

Creates a new entitlement. Entitlements control access to specific applications within a stack, based on user attributes. Entitlements apply to SAML 2.0 federated user identities. Amazon AppStream 2.0 user pool and streaming URL users are entitled to all applications in a stack. Entitlements don't apply to the desktop stream view application, or to applications managed by a dynamic app provider using the Dynamic Application Framework.

Examples:

Request syntax with placeholder values


resp = client.create_entitlement({
  name: "Name", # required
  stack_name: "Name", # required
  description: "Description",
  app_visibility: "ALL", # required, accepts ALL, ASSOCIATED
  attributes: [ # required
    {
      name: "String", # required
      value: "String", # required
    },
  ],
})

Response structure


resp.entitlement.name #=> String
resp.entitlement.stack_name #=> String
resp.entitlement.description #=> String
resp.entitlement.app_visibility #=> String, one of "ALL", "ASSOCIATED"
resp.entitlement.attributes #=> Array
resp.entitlement.attributes[0].name #=> String
resp.entitlement.attributes[0].value #=> String
resp.entitlement.created_time #=> Time
resp.entitlement.last_modified_time #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the entitlement.

  • :stack_name (required, String)

    The name of the stack with which the entitlement is associated.

  • :description (String)

    The description of the entitlement.

  • :app_visibility (required, String)

    Specifies whether all or selected apps are entitled.

  • :attributes (required, Array<Types::EntitlementAttribute>)

    The attributes of the entitlement.

Returns:

See Also:



1196
1197
1198
1199
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 1196

def create_entitlement(params = {}, options = {})
  req = build_request(:create_entitlement, params)
  req.send_request(options)
end

#create_fleet(params = {}) ⇒ Types::CreateFleetResult

Creates a fleet. A fleet consists of streaming instances that your users access for their applications and desktops.

Examples:

Request syntax with placeholder values


resp = client.create_fleet({
  name: "Name", # required
  image_name: "Name",
  image_arn: "Arn",
  instance_type: "String", # required
  fleet_type: "ALWAYS_ON", # accepts ALWAYS_ON, ON_DEMAND, ELASTIC
  compute_capacity: {
    desired_instances: 1,
    desired_sessions: 1,
  },
  vpc_config: {
    subnet_ids: ["String"],
    security_group_ids: ["String"],
  },
  max_user_duration_in_seconds: 1,
  disconnect_timeout_in_seconds: 1,
  description: "Description",
  display_name: "DisplayName",
  enable_default_internet_access: false,
  domain_join_info: {
    directory_name: "DirectoryName",
    organizational_unit_distinguished_name: "OrganizationalUnitDistinguishedName",
  },
  tags: {
    "TagKey" => "TagValue",
  },
  idle_disconnect_timeout_in_seconds: 1,
  iam_role_arn: "Arn",
  stream_view: "APP", # accepts APP, DESKTOP
  platform: "WINDOWS", # accepts WINDOWS, WINDOWS_SERVER_2016, WINDOWS_SERVER_2019, WINDOWS_SERVER_2022, AMAZON_LINUX2
  max_concurrent_sessions: 1,
  usb_device_filter_strings: ["UsbDeviceFilterString"],
  session_script_s3_location: {
    s3_bucket: "S3Bucket", # required
    s3_key: "S3Key",
  },
  max_sessions_per_instance: 1,
})

Response structure


resp.fleet.arn #=> String
resp.fleet.name #=> String
resp.fleet.display_name #=> String
resp.fleet.description #=> String
resp.fleet.image_name #=> String
resp.fleet.image_arn #=> String
resp.fleet.instance_type #=> String
resp.fleet.fleet_type #=> String, one of "ALWAYS_ON", "ON_DEMAND", "ELASTIC"
resp.fleet.compute_capacity_status.desired #=> Integer
resp.fleet.compute_capacity_status.running #=> Integer
resp.fleet.compute_capacity_status.in_use #=> Integer
resp.fleet.compute_capacity_status.available #=> Integer
resp.fleet.compute_capacity_status.desired_user_sessions #=> Integer
resp.fleet.compute_capacity_status.available_user_sessions #=> Integer
resp.fleet.compute_capacity_status.active_user_sessions #=> Integer
resp.fleet.compute_capacity_status.actual_user_sessions #=> Integer
resp.fleet.max_user_duration_in_seconds #=> Integer
resp.fleet.disconnect_timeout_in_seconds #=> Integer
resp.fleet.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
resp.fleet.vpc_config.subnet_ids #=> Array
resp.fleet.vpc_config.subnet_ids[0] #=> String
resp.fleet.vpc_config.security_group_ids #=> Array
resp.fleet.vpc_config.security_group_ids[0] #=> String
resp.fleet.created_time #=> Time
resp.fleet.fleet_errors #=> Array
resp.fleet.fleet_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"
resp.fleet.fleet_errors[0].error_message #=> String
resp.fleet.enable_default_internet_access #=> Boolean
resp.fleet.domain_join_info.directory_name #=> String
resp.fleet.domain_join_info.organizational_unit_distinguished_name #=> String
resp.fleet.idle_disconnect_timeout_in_seconds #=> Integer
resp.fleet.iam_role_arn #=> String
resp.fleet.stream_view #=> String, one of "APP", "DESKTOP"
resp.fleet.platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.fleet.max_concurrent_sessions #=> Integer
resp.fleet.usb_device_filter_strings #=> Array
resp.fleet.usb_device_filter_strings[0] #=> String
resp.fleet.session_script_s3_location.s3_bucket #=> String
resp.fleet.session_script_s3_location.s3_key #=> String
resp.fleet.max_sessions_per_instance #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    A unique name for the fleet.

  • :image_name (String)

    The name of the image used to create the fleet.

  • :image_arn (String)

    The ARN of the public, private, or shared image to use.

  • :instance_type (required, String)

    The instance type to use when launching fleet instances. The following instance types are available:

    • stream.standard.small

    • stream.standard.medium

    • stream.standard.large

    • stream.standard.xlarge

    • stream.standard.2xlarge

    • stream.compute.large

    • stream.compute.xlarge

    • stream.compute.2xlarge

    • stream.compute.4xlarge

    • stream.compute.8xlarge

    • stream.memory.large

    • stream.memory.xlarge

    • stream.memory.2xlarge

    • stream.memory.4xlarge

    • stream.memory.8xlarge

    • stream.memory.z1d.large

    • stream.memory.z1d.xlarge

    • stream.memory.z1d.2xlarge

    • stream.memory.z1d.3xlarge

    • stream.memory.z1d.6xlarge

    • stream.memory.z1d.12xlarge

    • stream.graphics-design.large

    • stream.graphics-design.xlarge

    • stream.graphics-design.2xlarge

    • stream.graphics-design.4xlarge

    • stream.graphics-desktop.2xlarge

    • stream.graphics.g4dn.xlarge

    • stream.graphics.g4dn.2xlarge

    • stream.graphics.g4dn.4xlarge

    • stream.graphics.g4dn.8xlarge

    • stream.graphics.g4dn.12xlarge

    • stream.graphics.g4dn.16xlarge

    • stream.graphics-pro.4xlarge

    • stream.graphics-pro.8xlarge

    • stream.graphics-pro.16xlarge

    The following instance types are available for Elastic fleets:

    • stream.standard.small

    • stream.standard.medium

    • stream.standard.large

    • stream.standard.xlarge

    • stream.standard.2xlarge

  • :fleet_type (String)

    The fleet type.

    ALWAYS_ON

    Provides users with instant-on access to their apps. You are charged for all running instances in your fleet, even if no users are streaming apps.

    ON_DEMAND

    Provide users with access to applications after they connect, which takes one to two minutes. You are charged for instance streaming when users are connected and a small hourly fee for instances that are not streaming apps.

  • :compute_capacity (Types::ComputeCapacity)

    The desired capacity for the fleet. This is not allowed for Elastic fleets. For Elastic fleets, specify MaxConcurrentSessions instead.

  • :vpc_config (Types::VpcConfig)

    The VPC configuration for the fleet. This is required for Elastic fleets, but not required for other fleet types. Elastic fleets require that you specify at least two subnets in different availability zones.

  • :max_user_duration_in_seconds (Integer)

    The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance.

    Specify a value between 600 and 432000.

  • :disconnect_timeout_in_seconds (Integer)

    The amount of time that a streaming session remains active after users disconnect. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance.

    Specify a value between 60 and 360000.

  • :description (String)

    The description to display.

  • :display_name (String)

    The fleet name to display.

  • :enable_default_internet_access (Boolean)

    Enables or disables default internet access for the fleet.

  • :domain_join_info (Types::DomainJoinInfo)

    The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain. This is not allowed for Elastic fleets.

  • :tags (Hash<String,String>)

    The tags to associate with the fleet. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.

    If you do not specify a value, the value is set to an empty string.

    Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:

    _ . : / = + \ - @

    For more information, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide.

  • :idle_disconnect_timeout_in_seconds (Integer)

    The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the DisconnectTimeoutInSeconds time interval begins. Users are notified before they are disconnected due to inactivity. If they try to reconnect to the streaming session before the time interval specified in DisconnectTimeoutInSeconds elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in IdleDisconnectTimeoutInSeconds elapses, they are disconnected.

    To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 3600. The default value is 0.

    If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity.

  • :iam_role_arn (String)

    The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To assume a role, a fleet instance calls the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the appstream_machine_role credential profile on the instance.

    For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 Administration Guide.

  • :stream_view (String)

    The AppStream 2.0 view that is displayed to your users when they stream from the fleet. When APP is specified, only the windows of applications opened by users display. When DESKTOP is specified, the standard desktop that is provided by the operating system displays.

    The default value is APP.

  • :platform (String)

    The fleet platform. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.

  • :max_concurrent_sessions (Integer)

    The maximum concurrent sessions of the Elastic fleet. This is required for Elastic fleets, and not allowed for other fleet types.

  • :usb_device_filter_strings (Array<String>)

    The USB device filter strings that specify which USB devices a user can redirect to the fleet streaming session, when using the Windows native client. This is allowed but not required for Elastic fleets.

  • :session_script_s3_location (Types::S3Location)

    The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.

  • :max_sessions_per_instance (Integer)

    The maximum number of user sessions on an instance. This only applies to multi-session fleets.

Returns:

See Also:



1541
1542
1543
1544
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 1541

def create_fleet(params = {}, options = {})
  req = build_request(:create_fleet, params)
  req.send_request(options)
end

#create_image_builder(params = {}) ⇒ Types::CreateImageBuilderResult

Creates an image builder. An image builder is a virtual machine that is used to create an image.

The initial state of the builder is PENDING. When it is ready, the state is RUNNING.

Examples:

Request syntax with placeholder values


resp = client.create_image_builder({
  name: "Name", # required
  image_name: "String",
  image_arn: "Arn",
  instance_type: "String", # required
  description: "Description",
  display_name: "DisplayName",
  vpc_config: {
    subnet_ids: ["String"],
    security_group_ids: ["String"],
  },
  iam_role_arn: "Arn",
  enable_default_internet_access: false,
  domain_join_info: {
    directory_name: "DirectoryName",
    organizational_unit_distinguished_name: "OrganizationalUnitDistinguishedName",
  },
  appstream_agent_version: "AppstreamAgentVersion",
  tags: {
    "TagKey" => "TagValue",
  },
  access_endpoints: [
    {
      endpoint_type: "STREAMING", # required, accepts STREAMING
      vpce_id: "String",
    },
  ],
})

Response structure


resp.image_builder.name #=> String
resp.image_builder.arn #=> String
resp.image_builder.image_arn #=> String
resp.image_builder.description #=> String
resp.image_builder.display_name #=> String
resp.image_builder.vpc_config.subnet_ids #=> Array
resp.image_builder.vpc_config.subnet_ids[0] #=> String
resp.image_builder.vpc_config.security_group_ids #=> Array
resp.image_builder.vpc_config.security_group_ids[0] #=> String
resp.image_builder.instance_type #=> String
resp.image_builder.platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.image_builder.iam_role_arn #=> String
resp.image_builder.state #=> String, one of "PENDING", "UPDATING_AGENT", "RUNNING", "STOPPING", "STOPPED", "REBOOTING", "SNAPSHOTTING", "DELETING", "FAILED", "UPDATING", "PENDING_QUALIFICATION"
resp.image_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "IMAGE_UNAVAILABLE"
resp.image_builder.state_change_reason.message #=> String
resp.image_builder.created_time #=> Time
resp.image_builder.enable_default_internet_access #=> Boolean
resp.image_builder.domain_join_info.directory_name #=> String
resp.image_builder.domain_join_info.organizational_unit_distinguished_name #=> String
resp.image_builder.network_access_configuration.eni_private_ip_address #=> String
resp.image_builder.network_access_configuration.eni_id #=> String
resp.image_builder.image_builder_errors #=> Array
resp.image_builder.image_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"
resp.image_builder.image_builder_errors[0].error_message #=> String
resp.image_builder.image_builder_errors[0].error_timestamp #=> Time
resp.image_builder.appstream_agent_version #=> String
resp.image_builder.access_endpoints #=> Array
resp.image_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.image_builder.access_endpoints[0].vpce_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    A unique name for the image builder.

  • :image_name (String)

    The name of the image used to create the image builder.

  • :image_arn (String)

    The ARN of the public, private, or shared image to use.

  • :instance_type (required, String)

    The instance type to use when launching the image builder. The following instance types are available:

    • stream.standard.small

    • stream.standard.medium

    • stream.standard.large

    • stream.compute.large

    • stream.compute.xlarge

    • stream.compute.2xlarge

    • stream.compute.4xlarge

    • stream.compute.8xlarge

    • stream.memory.large

    • stream.memory.xlarge

    • stream.memory.2xlarge

    • stream.memory.4xlarge

    • stream.memory.8xlarge

    • stream.memory.z1d.large

    • stream.memory.z1d.xlarge

    • stream.memory.z1d.2xlarge

    • stream.memory.z1d.3xlarge

    • stream.memory.z1d.6xlarge

    • stream.memory.z1d.12xlarge

    • stream.graphics-design.large

    • stream.graphics-design.xlarge

    • stream.graphics-design.2xlarge

    • stream.graphics-design.4xlarge

    • stream.graphics-desktop.2xlarge

    • stream.graphics.g4dn.xlarge

    • stream.graphics.g4dn.2xlarge

    • stream.graphics.g4dn.4xlarge

    • stream.graphics.g4dn.8xlarge

    • stream.graphics.g4dn.12xlarge

    • stream.graphics.g4dn.16xlarge

    • stream.graphics-pro.4xlarge

    • stream.graphics-pro.8xlarge

    • stream.graphics-pro.16xlarge

  • :description (String)

    The description to display.

  • :display_name (String)

    The image builder name to display.

  • :vpc_config (Types::VpcConfig)

    The VPC configuration for the image builder. You can specify only one subnet.

  • :iam_role_arn (String)

    The Amazon Resource Name (ARN) of the IAM role to apply to the image builder. To assume a role, the image builder calls the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the appstream_machine_role credential profile on the instance.

    For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 Administration Guide.

  • :enable_default_internet_access (Boolean)

    Enables or disables default internet access for the image builder.

  • :domain_join_info (Types::DomainJoinInfo)

    The name of the directory and organizational unit (OU) to use to join the image builder to a Microsoft Active Directory domain.

  • :appstream_agent_version (String)

    The version of the AppStream 2.0 agent to use for this image builder. To use the latest version of the AppStream 2.0 agent, specify [LATEST].

  • :tags (Hash<String,String>)

    The tags to associate with the image builder. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.

    Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:

    _ . : / = + \ - @

    If you do not specify a value, the value is set to an empty string.

    For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide.

  • :access_endpoints (Array<Types::AccessEndpoint>)

    The list of interface VPC endpoint (interface endpoint) objects. Administrators can connect to the image builder only through the specified endpoints.

Returns:

See Also:



1765
1766
1767
1768
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 1765

def create_image_builder(params = {}, options = {})
  req = build_request(:create_image_builder, params)
  req.send_request(options)
end

#create_image_builder_streaming_url(params = {}) ⇒ Types::CreateImageBuilderStreamingURLResult

Creates a URL to start an image builder streaming session.

Examples:

Request syntax with placeholder values


resp = client.create_image_builder_streaming_url({
  name: "String", # required
  validity: 1,
})

Response structure


resp.streaming_url #=> String
resp.expires #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the image builder.

  • :validity (Integer)

    The time that the streaming URL will be valid, in seconds. Specify a value between 1 and 604800 seconds. The default is 3600 seconds.

Returns:

See Also:



1800
1801
1802
1803
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 1800

def create_image_builder_streaming_url(params = {}, options = {})
  req = build_request(:create_image_builder_streaming_url, params)
  req.send_request(options)
end

#create_stack(params = {}) ⇒ Types::CreateStackResult

Creates a stack to start streaming applications to users. A stack consists of an associated fleet, user access policies, and storage configurations.

Examples:

Request syntax with placeholder values


resp = client.create_stack({
  name: "Name", # required
  description: "Description",
  display_name: "DisplayName",
  storage_connectors: [
    {
      connector_type: "HOMEFOLDERS", # required, accepts HOMEFOLDERS, GOOGLE_DRIVE, ONE_DRIVE
      resource_identifier: "ResourceIdentifier",
      domains: ["Domain"],
    },
  ],
  redirect_url: "RedirectURL",
  feedback_url: "FeedbackURL",
  user_settings: [
    {
      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
      permission: "ENABLED", # required, accepts ENABLED, DISABLED
      maximum_length: 1,
    },
  ],
  application_settings: {
    enabled: false, # required
    settings_group: "SettingsGroup",
  },
  tags: {
    "TagKey" => "TagValue",
  },
  access_endpoints: [
    {
      endpoint_type: "STREAMING", # required, accepts STREAMING
      vpce_id: "String",
    },
  ],
  embed_host_domains: ["EmbedHostDomain"],
  streaming_experience_settings: {
    preferred_protocol: "TCP", # accepts TCP, UDP
  },
})

Response structure


resp.stack.arn #=> String
resp.stack.name #=> String
resp.stack.description #=> String
resp.stack.display_name #=> String
resp.stack.created_time #=> Time
resp.stack.storage_connectors #=> Array
resp.stack.storage_connectors[0].connector_type #=> String, one of "HOMEFOLDERS", "GOOGLE_DRIVE", "ONE_DRIVE"
resp.stack.storage_connectors[0].resource_identifier #=> String
resp.stack.storage_connectors[0].domains #=> Array
resp.stack.storage_connectors[0].domains[0] #=> String
resp.stack.redirect_url #=> String
resp.stack.feedback_url #=> String
resp.stack.stack_errors #=> Array
resp.stack.stack_errors[0].error_code #=> String, one of "STORAGE_CONNECTOR_ERROR", "INTERNAL_SERVICE_ERROR"
resp.stack.stack_errors[0].error_message #=> String
resp.stack. #=> Array
resp.stack.[0].action #=> String, one of "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"
resp.stack.[0].permission #=> String, one of "ENABLED", "DISABLED"
resp.stack.[0].maximum_length #=> Integer
resp.stack.application_settings.enabled #=> Boolean
resp.stack.application_settings.settings_group #=> String
resp.stack.application_settings.s3_bucket_name #=> String
resp.stack.access_endpoints #=> Array
resp.stack.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.stack.access_endpoints[0].vpce_id #=> String
resp.stack.embed_host_domains #=> Array
resp.stack.embed_host_domains[0] #=> String
resp.stack.streaming_experience_settings.preferred_protocol #=> String, one of "TCP", "UDP"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the stack.

  • :description (String)

    The description to display.

  • :display_name (String)

    The stack name to display.

  • :storage_connectors (Array<Types::StorageConnector>)

    The storage connectors to enable.

  • :redirect_url (String)

    The URL that users are redirected to after their streaming session ends.

  • :feedback_url (String)

    The URL that users are redirected to after they click the Send Feedback link. If no URL is specified, no Send Feedback link is displayed.

  • :user_settings (Array<Types::UserSetting>)

    The actions that are enabled or disabled for users during their streaming sessions. By default, these actions are enabled.

  • :application_settings (Types::ApplicationSettings)

    The persistent application settings for users of a stack. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session.

  • :tags (Hash<String,String>)

    The tags to associate with the stack. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.

    If you do not specify a value, the value is set to an empty string.

    Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:

    _ . : / = + \ - @

    For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide.

  • :access_endpoints (Array<Types::AccessEndpoint>)

    The list of interface VPC endpoint (interface endpoint) objects. Users of the stack can connect to AppStream 2.0 only through the specified endpoints.

  • :embed_host_domains (Array<String>)

    The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions.

  • :streaming_experience_settings (Types::StreamingExperienceSettings)

    The streaming protocol you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.

Returns:

See Also:



1953
1954
1955
1956
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 1953

def create_stack(params = {}, options = {})
  req = build_request(:create_stack, params)
  req.send_request(options)
end

#create_streaming_url(params = {}) ⇒ Types::CreateStreamingURLResult

Creates a temporary URL to start an AppStream 2.0 streaming session for the specified user. A streaming URL enables application streaming to be tested without user setup.

Examples:

Request syntax with placeholder values


resp = client.create_streaming_url({
  stack_name: "String", # required
  fleet_name: "String", # required
  user_id: "StreamingUrlUserId", # required
  application_id: "String",
  validity: 1,
  session_context: "String",
})

Response structure


resp.streaming_url #=> String
resp.expires #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :stack_name (required, String)

    The name of the stack.

  • :fleet_name (required, String)

    The name of the fleet.

  • :user_id (required, String)

    The identifier of the user.

  • :application_id (String)

    The name of the application to launch after the session starts. This is the name that you specified as Name in the Image Assistant. If your fleet is enabled for the Desktop stream view, you can also choose to launch directly to the operating system desktop. To do so, specify Desktop.

  • :validity (Integer)

    The time that the streaming URL will be valid, in seconds. Specify a value between 1 and 604800 seconds. The default is 60 seconds.

  • :session_context (String)

    The session context. For more information, see Session Context in the Amazon AppStream 2.0 Administration Guide.

Returns:

See Also:



2015
2016
2017
2018
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2015

def create_streaming_url(params = {}, options = {})
  req = build_request(:create_streaming_url, params)
  req.send_request(options)
end

#create_updated_image(params = {}) ⇒ Types::CreateUpdatedImageResult

Creates a new image with the latest Windows operating system updates, driver updates, and AppStream 2.0 agent software.

For more information, see the "Update an Image by Using Managed AppStream 2.0 Image Updates" section in Administer Your AppStream 2.0 Images, in the Amazon AppStream 2.0 Administration Guide.

Examples:

Request syntax with placeholder values


resp = client.create_updated_image({
  existing_image_name: "Name", # required
  new_image_name: "Name", # required
  new_image_description: "Description",
  new_image_display_name: "DisplayName",
  new_image_tags: {
    "TagKey" => "TagValue",
  },
  dry_run: false,
})

Response structure


resp.image.name #=> String
resp.image.arn #=> String
resp.image.base_image_arn #=> String
resp.image.display_name #=> String
resp.image.state #=> String, one of "PENDING", "AVAILABLE", "FAILED", "COPYING", "DELETING", "CREATING", "IMPORTING"
resp.image.visibility #=> String, one of "PUBLIC", "PRIVATE", "SHARED"
resp.image.image_builder_supported #=> Boolean
resp.image.image_builder_name #=> String
resp.image.platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.image.description #=> String
resp.image.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "IMAGE_BUILDER_NOT_AVAILABLE", "IMAGE_COPY_FAILURE"
resp.image.state_change_reason.message #=> String
resp.image.applications #=> Array
resp.image.applications[0].name #=> String
resp.image.applications[0].display_name #=> String
resp.image.applications[0].icon_url #=> String
resp.image.applications[0].launch_path #=> String
resp.image.applications[0].launch_parameters #=> String
resp.image.applications[0].enabled #=> Boolean
resp.image.applications[0]. #=> Hash
resp.image.applications[0].["String"] #=> String
resp.image.applications[0].working_directory #=> String
resp.image.applications[0].description #=> String
resp.image.applications[0].arn #=> String
resp.image.applications[0].app_block_arn #=> String
resp.image.applications[0].icon_s3_location.s3_bucket #=> String
resp.image.applications[0].icon_s3_location.s3_key #=> String
resp.image.applications[0].platforms #=> Array
resp.image.applications[0].platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.image.applications[0].instance_families #=> Array
resp.image.applications[0].instance_families[0] #=> String
resp.image.applications[0].created_time #=> Time
resp.image.created_time #=> Time
resp.image.public_base_image_released_date #=> Time
resp.image.appstream_agent_version #=> String
resp.image.image_permissions.allow_fleet #=> Boolean
resp.image.image_permissions.allow_image_builder #=> Boolean
resp.image.image_errors #=> Array
resp.image.image_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"
resp.image.image_errors[0].error_message #=> String
resp.image.image_errors[0].error_timestamp #=> Time
resp.can_update_image #=> Boolean

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :existing_image_name (required, String)

    The name of the image to update.

  • :new_image_name (required, String)

    The name of the new image. The name must be unique within the AWS account and Region.

  • :new_image_description (String)

    The description to display for the new image.

  • :new_image_display_name (String)

    The name to display for the new image.

  • :new_image_tags (Hash<String,String>)

    The tags to associate with the new image. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.

    Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:

    _ . : / = + \ - @

    If you do not specify a value, the value is set to an empty string.

    For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide.

  • :dry_run (Boolean)

    Indicates whether to display the status of image update availability before AppStream 2.0 initiates the process of creating a new updated image. If this value is set to true, AppStream 2.0 displays whether image updates are available. If this value is set to false, AppStream 2.0 initiates the process of creating a new updated image without displaying whether image updates are available.

Returns:

See Also:



2138
2139
2140
2141
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2138

def create_updated_image(params = {}, options = {})
  req = build_request(:create_updated_image, params)
  req.send_request(options)
end

#create_usage_report_subscription(params = {}) ⇒ Types::CreateUsageReportSubscriptionResult

Creates a usage report subscription. Usage reports are generated daily.

Examples:

Response structure


resp.s3_bucket_name #=> String
resp.schedule #=> String, one of "DAILY"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

See Also:



2160
2161
2162
2163
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2160

def create_usage_report_subscription(params = {}, options = {})
  req = build_request(:create_usage_report_subscription, params)
  req.send_request(options)
end

#create_user(params = {}) ⇒ Struct

Creates a new user in the user pool.

Examples:

Request syntax with placeholder values


resp = client.create_user({
  user_name: "Username", # required
  message_action: "SUPPRESS", # accepts SUPPRESS, RESEND
  first_name: "UserAttributeValue",
  last_name: "UserAttributeValue",
  authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :user_name (required, String)

    The email address of the user.

    Users' email addresses are case-sensitive. During login, if they specify an email address that doesn't use the same capitalization as the email address specified when their user pool account was created, a "user does not exist" error message displays.

  • :message_action (String)

    The action to take for the welcome email that is sent to a user after the user is created in the user pool. If you specify SUPPRESS, no email is sent. If you specify RESEND, do not specify the first name or last name of the user. If the value is null, the email is sent.

    The temporary password in the welcome email is valid for only 7 days. If users don’t set their passwords within 7 days, you must send them a new welcome email.

  • :first_name (String)

    The first name, or given name, of the user.

  • :last_name (String)

    The last name, or surname, of the user.

  • :authentication_type (required, String)

    The authentication type for the user. You must specify USERPOOL.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2214
2215
2216
2217
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2214

def create_user(params = {}, options = {})
  req = build_request(:create_user, params)
  req.send_request(options)
end

#delete_app_block(params = {}) ⇒ Struct

Deletes an app block.

Examples:

Request syntax with placeholder values


resp = client.delete_app_block({
  name: "Name", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the app block.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2236
2237
2238
2239
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2236

def delete_app_block(params = {}, options = {})
  req = build_request(:delete_app_block, params)
  req.send_request(options)
end

#delete_app_block_builder(params = {}) ⇒ Struct

Deletes an app block builder.

An app block builder can only be deleted when it has no association with an app block.

Examples:

Request syntax with placeholder values


resp = client.delete_app_block_builder({
  name: "Name", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the app block builder.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2261
2262
2263
2264
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2261

def delete_app_block_builder(params = {}, options = {})
  req = build_request(:delete_app_block_builder, params)
  req.send_request(options)
end

#delete_application(params = {}) ⇒ Struct

Deletes an application.

Examples:

Request syntax with placeholder values


resp = client.delete_application({
  name: "Name", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the application.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2283
2284
2285
2286
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2283

def delete_application(params = {}, options = {})
  req = build_request(:delete_application, params)
  req.send_request(options)
end

#delete_directory_config(params = {}) ⇒ Struct

Deletes the specified Directory Config object from AppStream 2.0. This object includes the information required to join streaming instances to an Active Directory domain.

Examples:

Request syntax with placeholder values


resp = client.delete_directory_config({
  directory_name: "DirectoryName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :directory_name (required, String)

    The name of the directory configuration.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2307
2308
2309
2310
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2307

def delete_directory_config(params = {}, options = {})
  req = build_request(:delete_directory_config, params)
  req.send_request(options)
end

#delete_entitlement(params = {}) ⇒ Struct

Deletes the specified entitlement.

Examples:

Request syntax with placeholder values


resp = client.delete_entitlement({
  name: "Name", # required
  stack_name: "Name", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the entitlement.

  • :stack_name (required, String)

    The name of the stack with which the entitlement is associated.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2333
2334
2335
2336
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2333

def delete_entitlement(params = {}, options = {})
  req = build_request(:delete_entitlement, params)
  req.send_request(options)
end

#delete_fleet(params = {}) ⇒ Struct

Deletes the specified fleet.

Examples:

Request syntax with placeholder values


resp = client.delete_fleet({
  name: "String", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the fleet.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2355
2356
2357
2358
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2355

def delete_fleet(params = {}, options = {})
  req = build_request(:delete_fleet, params)
  req.send_request(options)
end

#delete_image(params = {}) ⇒ Types::DeleteImageResult

Deletes the specified image. You cannot delete an image when it is in use. After you delete an image, you cannot provision new capacity using the image.

Examples:

Request syntax with placeholder values


resp = client.delete_image({
  name: "Name", # required
})

Response structure


resp.image.name #=> String
resp.image.arn #=> String
resp.image.base_image_arn #=> String
resp.image.display_name #=> String
resp.image.state #=> String, one of "PENDING", "AVAILABLE", "FAILED", "COPYING", "DELETING", "CREATING", "IMPORTING"
resp.image.visibility #=> String, one of "PUBLIC", "PRIVATE", "SHARED"
resp.image.image_builder_supported #=> Boolean
resp.image.image_builder_name #=> String
resp.image.platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.image.description #=> String
resp.image.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "IMAGE_BUILDER_NOT_AVAILABLE", "IMAGE_COPY_FAILURE"
resp.image.state_change_reason.message #=> String
resp.image.applications #=> Array
resp.image.applications[0].name #=> String
resp.image.applications[0].display_name #=> String
resp.image.applications[0].icon_url #=> String
resp.image.applications[0].launch_path #=> String
resp.image.applications[0].launch_parameters #=> String
resp.image.applications[0].enabled #=> Boolean
resp.image.applications[0]. #=> Hash
resp.image.applications[0].["String"] #=> String
resp.image.applications[0].working_directory #=> String
resp.image.applications[0].description #=> String
resp.image.applications[0].arn #=> String
resp.image.applications[0].app_block_arn #=> String
resp.image.applications[0].icon_s3_location.s3_bucket #=> String
resp.image.applications[0].icon_s3_location.s3_key #=> String
resp.image.applications[0].platforms #=> Array
resp.image.applications[0].platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.image.applications[0].instance_families #=> Array
resp.image.applications[0].instance_families[0] #=> String
resp.image.applications[0].created_time #=> Time
resp.image.created_time #=> Time
resp.image.public_base_image_released_date #=> Time
resp.image.appstream_agent_version #=> String
resp.image.image_permissions.allow_fleet #=> Boolean
resp.image.image_permissions.allow_image_builder #=> Boolean
resp.image.image_errors #=> Array
resp.image.image_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"
resp.image.image_errors[0].error_message #=> String
resp.image.image_errors[0].error_timestamp #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the image.

Returns:

See Also:



2425
2426
2427
2428
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2425

def delete_image(params = {}, options = {})
  req = build_request(:delete_image, params)
  req.send_request(options)
end

#delete_image_builder(params = {}) ⇒ Types::DeleteImageBuilderResult

Deletes the specified image builder and releases the capacity.

Examples:

Request syntax with placeholder values


resp = client.delete_image_builder({
  name: "Name", # required
})

Response structure


resp.image_builder.name #=> String
resp.image_builder.arn #=> String
resp.image_builder.image_arn #=> String
resp.image_builder.description #=> String
resp.image_builder.display_name #=> String
resp.image_builder.vpc_config.subnet_ids #=> Array
resp.image_builder.vpc_config.subnet_ids[0] #=> String
resp.image_builder.vpc_config.security_group_ids #=> Array
resp.image_builder.vpc_config.security_group_ids[0] #=> String
resp.image_builder.instance_type #=> String
resp.image_builder.platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.image_builder.iam_role_arn #=> String
resp.image_builder.state #=> String, one of "PENDING", "UPDATING_AGENT", "RUNNING", "STOPPING", "STOPPED", "REBOOTING", "SNAPSHOTTING", "DELETING", "FAILED", "UPDATING", "PENDING_QUALIFICATION"
resp.image_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "IMAGE_UNAVAILABLE"
resp.image_builder.state_change_reason.message #=> String
resp.image_builder.created_time #=> Time
resp.image_builder.enable_default_internet_access #=> Boolean
resp.image_builder.domain_join_info.directory_name #=> String
resp.image_builder.domain_join_info.organizational_unit_distinguished_name #=> String
resp.image_builder.network_access_configuration.eni_private_ip_address #=> String
resp.image_builder.network_access_configuration.eni_id #=> String
resp.image_builder.image_builder_errors #=> Array
resp.image_builder.image_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"
resp.image_builder.image_builder_errors[0].error_message #=> String
resp.image_builder.image_builder_errors[0].error_timestamp #=> Time
resp.image_builder.appstream_agent_version #=> String
resp.image_builder.access_endpoints #=> Array
resp.image_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.image_builder.access_endpoints[0].vpce_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the image builder.

Returns:

See Also:



2481
2482
2483
2484
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2481

def delete_image_builder(params = {}, options = {})
  req = build_request(:delete_image_builder, params)
  req.send_request(options)
end

#delete_image_permissions(params = {}) ⇒ Struct

Deletes permissions for the specified private image. After you delete permissions for an image, AWS accounts to which you previously granted these permissions can no longer use the image.

Examples:

Request syntax with placeholder values


resp = client.delete_image_permissions({
  name: "Name", # required
  shared_account_id: "AwsAccountId", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the private image.

  • :shared_account_id (required, String)

    The 12-digit identifier of the AWS account for which to delete image permissions.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2510
2511
2512
2513
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2510

def delete_image_permissions(params = {}, options = {})
  req = build_request(:delete_image_permissions, params)
  req.send_request(options)
end

#delete_stack(params = {}) ⇒ Struct

Deletes the specified stack. After the stack is deleted, the application streaming environment provided by the stack is no longer available to users. Also, any reservations made for application streaming sessions for the stack are released.

Examples:

Request syntax with placeholder values


resp = client.delete_stack({
  name: "String", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the stack.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2535
2536
2537
2538
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2535

def delete_stack(params = {}, options = {})
  req = build_request(:delete_stack, params)
  req.send_request(options)
end

#delete_usage_report_subscription(params = {}) ⇒ Struct

Disables usage report generation.

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2548
2549
2550
2551
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2548

def delete_usage_report_subscription(params = {}, options = {})
  req = build_request(:delete_usage_report_subscription, params)
  req.send_request(options)
end

#delete_user(params = {}) ⇒ Struct

Deletes a user from the user pool.

Examples:

Request syntax with placeholder values


resp = client.delete_user({
  user_name: "Username", # required
  authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :user_name (required, String)

    The email address of the user.

    Users' email addresses are case-sensitive.

  • :authentication_type (required, String)

    The authentication type for the user. You must specify USERPOOL.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2578
2579
2580
2581
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2578

def delete_user(params = {}, options = {})
  req = build_request(:delete_user, params)
  req.send_request(options)
end

#describe_app_block_builder_app_block_associations(params = {}) ⇒ Types::DescribeAppBlockBuilderAppBlockAssociationsResult

Retrieves a list that describes one or more app block builder associations.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.describe_app_block_builder_app_block_associations({
  app_block_arn: "Arn",
  app_block_builder_name: "Name",
  max_results: 1,
  next_token: "String",
})

Response structure


resp.app_block_builder_app_block_associations #=> Array
resp.app_block_builder_app_block_associations[0].app_block_arn #=> String
resp.app_block_builder_app_block_associations[0].app_block_builder_name #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :app_block_arn (String)

    The ARN of the app block.

  • :app_block_builder_name (String)

    The name of the app block builder.

  • :max_results (Integer)

    The maximum size of each page of results.

  • :next_token (String)

    The pagination token used to retrieve the next page of results for this operation.

Returns:

See Also:



2626
2627
2628
2629
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2626

def describe_app_block_builder_app_block_associations(params = {}, options = {})
  req = build_request(:describe_app_block_builder_app_block_associations, params)
  req.send_request(options)
end

#describe_app_block_builders(params = {}) ⇒ Types::DescribeAppBlockBuildersResult

Retrieves a list that describes one or more app block builders.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.describe_app_block_builders({
  names: ["String"],
  next_token: "String",
  max_results: 1,
})

Response structure


resp.app_block_builders #=> Array
resp.app_block_builders[0].arn #=> String
resp.app_block_builders[0].name #=> String
resp.app_block_builders[0].display_name #=> String
resp.app_block_builders[0].description #=> String
resp.app_block_builders[0].platform #=> String, one of "WINDOWS_SERVER_2019"
resp.app_block_builders[0].instance_type #=> String
resp.app_block_builders[0].enable_default_internet_access #=> Boolean
resp.app_block_builders[0].iam_role_arn #=> String
resp.app_block_builders[0].vpc_config.subnet_ids #=> Array
resp.app_block_builders[0].vpc_config.subnet_ids[0] #=> String
resp.app_block_builders[0].vpc_config.security_group_ids #=> Array
resp.app_block_builders[0].vpc_config.security_group_ids[0] #=> String
resp.app_block_builders[0].state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
resp.app_block_builders[0].created_time #=> Time
resp.app_block_builders[0].app_block_builder_errors #=> Array
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"
resp.app_block_builders[0].app_block_builder_errors[0].error_message #=> String
resp.app_block_builders[0].app_block_builder_errors[0].error_timestamp #=> Time
resp.app_block_builders[0].state_change_reason.code #=> String, one of "INTERNAL_ERROR"
resp.app_block_builders[0].state_change_reason.message #=> String
resp.app_block_builders[0].access_endpoints #=> Array
resp.app_block_builders[0].access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.app_block_builders[0].access_endpoints[0].vpce_id #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :names (Array<String>)

    The names of the app block builders.

  • :next_token (String)

    The pagination token used to retrieve the next page of results for this operation.

  • :max_results (Integer)

    The maximum size of each page of results. The maximum value is 25.

Returns:

See Also:



2690
2691
2692
2693
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2690

def describe_app_block_builders(params = {}, options = {})
  req = build_request(:describe_app_block_builders, params)
  req.send_request(options)
end

#describe_app_blocks(params = {}) ⇒ Types::DescribeAppBlocksResult

Retrieves a list that describes one or more app blocks.

Examples:

Request syntax with placeholder values


resp = client.describe_app_blocks({
  arns: ["Arn"],
  next_token: "String",
  max_results: 1,
})

Response structure


resp.app_blocks #=> Array
resp.app_blocks[0].name #=> String
resp.app_blocks[0].arn #=> String
resp.app_blocks[0].description #=> String
resp.app_blocks[0].display_name #=> String
resp.app_blocks[0].source_s3_location.s3_bucket #=> String
resp.app_blocks[0].source_s3_location.s3_key #=> String
resp.app_blocks[0].setup_script_details.script_s3_location.s3_bucket #=> String
resp.app_blocks[0].setup_script_details.script_s3_location.s3_key #=> String
resp.app_blocks[0].setup_script_details.executable_path #=> String
resp.app_blocks[0].setup_script_details.executable_parameters #=> String
resp.app_blocks[0].setup_script_details.timeout_in_seconds #=> Integer
resp.app_blocks[0].created_time #=> Time
resp.app_blocks[0].post_setup_script_details.script_s3_location.s3_bucket #=> String
resp.app_blocks[0].post_setup_script_details.script_s3_location.s3_key #=> String
resp.app_blocks[0].post_setup_script_details.executable_path #=> String
resp.app_blocks[0].post_setup_script_details.executable_parameters #=> String
resp.app_blocks[0].post_setup_script_details.timeout_in_seconds #=> Integer
resp.app_blocks[0].packaging_type #=> String, one of "CUSTOM", "APPSTREAM2"
resp.app_blocks[0].state #=> String, one of "INACTIVE", "ACTIVE"
resp.app_blocks[0].app_block_errors #=> Array
resp.app_blocks[0].app_block_errors[0].error_code #=> String
resp.app_blocks[0].app_block_errors[0].error_message #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arns (Array<String>)

    The ARNs of the app blocks.

  • :next_token (String)

    The pagination token used to retrieve the next page of results for this operation.

  • :max_results (Integer)

    The maximum size of each page of results.

Returns:

See Also:



2751
2752
2753
2754
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2751

def describe_app_blocks(params = {}, options = {})
  req = build_request(:describe_app_blocks, params)
  req.send_request(options)
end

#describe_application_fleet_associations(params = {}) ⇒ Types::DescribeApplicationFleetAssociationsResult

Retrieves a list that describes one or more application fleet associations. Either ApplicationArn or FleetName must be specified.

Examples:

Request syntax with placeholder values


resp = client.describe_application_fleet_associations({
  fleet_name: "Name",
  application_arn: "Arn",
  max_results: 1,
  next_token: "String",
})

Response structure


resp.application_fleet_associations #=> Array
resp.application_fleet_associations[0].fleet_name #=> String
resp.application_fleet_associations[0].application_arn #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :fleet_name (String)

    The name of the fleet.

  • :application_arn (String)

    The ARN of the application.

  • :max_results (Integer)

    The maximum size of each page of results.

  • :next_token (String)

    The pagination token used to retrieve the next page of results for this operation.

Returns:

See Also:



2797
2798
2799
2800
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2797

def describe_application_fleet_associations(params = {}, options = {})
  req = build_request(:describe_application_fleet_associations, params)
  req.send_request(options)
end

#describe_applications(params = {}) ⇒ Types::DescribeApplicationsResult

Retrieves a list that describes one or more applications.

Examples:

Request syntax with placeholder values


resp = client.describe_applications({
  arns: ["Arn"],
  next_token: "String",
  max_results: 1,
})

Response structure


resp.applications #=> Array
resp.applications[0].name #=> String
resp.applications[0].display_name #=> String
resp.applications[0].icon_url #=> String
resp.applications[0].launch_path #=> String
resp.applications[0].launch_parameters #=> String
resp.applications[0].enabled #=> Boolean
resp.applications[0]. #=> Hash
resp.applications[0].["String"] #=> String
resp.applications[0].working_directory #=> String
resp.applications[0].description #=> String
resp.applications[0].arn #=> String
resp.applications[0].app_block_arn #=> String
resp.applications[0].icon_s3_location.s3_bucket #=> String
resp.applications[0].icon_s3_location.s3_key #=> String
resp.applications[0].platforms #=> Array
resp.applications[0].platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.applications[0].instance_families #=> Array
resp.applications[0].instance_families[0] #=> String
resp.applications[0].created_time #=> Time
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arns (Array<String>)

    The ARNs for the applications.

  • :next_token (String)

    The pagination token used to retrieve the next page of results for this operation.

  • :max_results (Integer)

    The maximum size of each page of results.

Returns:

See Also:



2855
2856
2857
2858
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2855

def describe_applications(params = {}, options = {})
  req = build_request(:describe_applications, params)
  req.send_request(options)
end

#describe_directory_configs(params = {}) ⇒ Types::DescribeDirectoryConfigsResult

Retrieves a list that describes one or more specified Directory Config objects for AppStream 2.0, if the names for these objects are provided. Otherwise, all Directory Config objects in the account are described. These objects include the configuration information required to join fleets and image builders to Microsoft Active Directory domains.

Although the response syntax in this topic includes the account password, this password is not returned in the actual response.

Examples:

Request syntax with placeholder values


resp = client.describe_directory_configs({
  directory_names: ["DirectoryName"],
  max_results: 1,
  next_token: "String",
})

Response structure


resp.directory_configs #=> Array
resp.directory_configs[0].directory_name #=> String
resp.directory_configs[0].organizational_unit_distinguished_names #=> Array
resp.directory_configs[0].organizational_unit_distinguished_names[0] #=> String
resp.directory_configs[0].. #=> String
resp.directory_configs[0].. #=> String
resp.directory_configs[0].created_time #=> Time
resp.directory_configs[0].certificate_based_auth_properties.status #=> String, one of "DISABLED", "ENABLED", "ENABLED_NO_DIRECTORY_LOGIN_FALLBACK"
resp.directory_configs[0].certificate_based_auth_properties.certificate_authority_arn #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :directory_names (Array<String>)

    The directory names.

  • :max_results (Integer)

    The maximum size of each page of results.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

Returns:

See Also:



2910
2911
2912
2913
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2910

def describe_directory_configs(params = {}, options = {})
  req = build_request(:describe_directory_configs, params)
  req.send_request(options)
end

#describe_entitlements(params = {}) ⇒ Types::DescribeEntitlementsResult

Retrieves a list that describes one of more entitlements.

Examples:

Request syntax with placeholder values


resp = client.describe_entitlements({
  name: "Name",
  stack_name: "Name", # required
  next_token: "String",
  max_results: 1,
})

Response structure


resp.entitlements #=> Array
resp.entitlements[0].name #=> String
resp.entitlements[0].stack_name #=> String
resp.entitlements[0].description #=> String
resp.entitlements[0].app_visibility #=> String, one of "ALL", "ASSOCIATED"
resp.entitlements[0].attributes #=> Array
resp.entitlements[0].attributes[0].name #=> String
resp.entitlements[0].attributes[0].value #=> String
resp.entitlements[0].created_time #=> Time
resp.entitlements[0].last_modified_time #=> Time
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (String)

    The name of the entitlement.

  • :stack_name (required, String)

    The name of the stack with which the entitlement is associated.

  • :next_token (String)

    The pagination token used to retrieve the next page of results for this operation.

  • :max_results (Integer)

    The maximum size of each page of results.

Returns:

See Also:



2962
2963
2964
2965
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 2962

def describe_entitlements(params = {}, options = {})
  req = build_request(:describe_entitlements, params)
  req.send_request(options)
end

#describe_fleets(params = {}) ⇒ Types::DescribeFleetsResult

Retrieves a list that describes one or more specified fleets, if the fleet names are provided. Otherwise, all fleets in the account are described.

The following waiters are defined for this operation (see #wait_until for detailed usage):

  • fleet_started
  • fleet_stopped

Examples:

Request syntax with placeholder values


resp = client.describe_fleets({
  names: ["String"],
  next_token: "String",
})

Response structure


resp.fleets #=> Array
resp.fleets[0].arn #=> String
resp.fleets[0].name #=> String
resp.fleets[0].display_name #=> String
resp.fleets[0].description #=> String
resp.fleets[0].image_name #=> String
resp.fleets[0].image_arn #=> String
resp.fleets[0].instance_type #=> String
resp.fleets[0].fleet_type #=> String, one of "ALWAYS_ON", "ON_DEMAND", "ELASTIC"
resp.fleets[0].compute_capacity_status.desired #=> Integer
resp.fleets[0].compute_capacity_status.running #=> Integer
resp.fleets[0].compute_capacity_status.in_use #=> Integer
resp.fleets[0].compute_capacity_status.available #=> Integer
resp.fleets[0].compute_capacity_status.desired_user_sessions #=> Integer
resp.fleets[0].compute_capacity_status.available_user_sessions #=> Integer
resp.fleets[0].compute_capacity_status.active_user_sessions #=> Integer
resp.fleets[0].compute_capacity_status.actual_user_sessions #=> Integer
resp.fleets[0].max_user_duration_in_seconds #=> Integer
resp.fleets[0].disconnect_timeout_in_seconds #=> Integer
resp.fleets[0].state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
resp.fleets[0].vpc_config.subnet_ids #=> Array
resp.fleets[0].vpc_config.subnet_ids[0] #=> String
resp.fleets[0].vpc_config.security_group_ids #=> Array
resp.fleets[0].vpc_config.security_group_ids[0] #=> String
resp.fleets[0].created_time #=> Time
resp.fleets[0].fleet_errors #=> Array
resp.fleets[0].fleet_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"
resp.fleets[0].fleet_errors[0].error_message #=> String
resp.fleets[0].enable_default_internet_access #=> Boolean
resp.fleets[0].domain_join_info.directory_name #=> String
resp.fleets[0].domain_join_info.organizational_unit_distinguished_name #=> String
resp.fleets[0].idle_disconnect_timeout_in_seconds #=> Integer
resp.fleets[0].iam_role_arn #=> String
resp.fleets[0].stream_view #=> String, one of "APP", "DESKTOP"
resp.fleets[0].platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.fleets[0].max_concurrent_sessions #=> Integer
resp.fleets[0].usb_device_filter_strings #=> Array
resp.fleets[0].usb_device_filter_strings[0] #=> String
resp.fleets[0].session_script_s3_location.s3_bucket #=> String
resp.fleets[0].session_script_s3_location.s3_key #=> String
resp.fleets[0].max_sessions_per_instance #=> Integer
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :names (Array<String>)

    The names of the fleets to describe.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

Returns:

See Also:



3045
3046
3047
3048
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3045

def describe_fleets(params = {}, options = {})
  req = build_request(:describe_fleets, params)
  req.send_request(options)
end

#describe_image_builders(params = {}) ⇒ Types::DescribeImageBuildersResult

Retrieves a list that describes one or more specified image builders, if the image builder names are provided. Otherwise, all image builders in the account are described.

Examples:

Request syntax with placeholder values


resp = client.describe_image_builders({
  names: ["String"],
  max_results: 1,
  next_token: "String",
})

Response structure


resp.image_builders #=> Array
resp.image_builders[0].name #=> String
resp.image_builders[0].arn #=> String
resp.image_builders[0].image_arn #=> String
resp.image_builders[0].description #=> String
resp.image_builders[0].display_name #=> String
resp.image_builders[0].vpc_config.subnet_ids #=> Array
resp.image_builders[0].vpc_config.subnet_ids[0] #=> String
resp.image_builders[0].vpc_config.security_group_ids #=> Array
resp.image_builders[0].vpc_config.security_group_ids[0] #=> String
resp.image_builders[0].instance_type #=> String
resp.image_builders[0].platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.image_builders[0].iam_role_arn #=> String
resp.image_builders[0].state #=> String, one of "PENDING", "UPDATING_AGENT", "RUNNING", "STOPPING", "STOPPED", "REBOOTING", "SNAPSHOTTING", "DELETING", "FAILED", "UPDATING", "PENDING_QUALIFICATION"
resp.image_builders[0].state_change_reason.code #=> String, one of "INTERNAL_ERROR", "IMAGE_UNAVAILABLE"
resp.image_builders[0].state_change_reason.message #=> String
resp.image_builders[0].created_time #=> Time
resp.image_builders[0].enable_default_internet_access #=> Boolean
resp.image_builders[0].domain_join_info.directory_name #=> String
resp.image_builders[0].domain_join_info.organizational_unit_distinguished_name #=> String
resp.image_builders[0].network_access_configuration.eni_private_ip_address #=> String
resp.image_builders[0].network_access_configuration.eni_id #=> String
resp.image_builders[0].image_builder_errors #=> Array
resp.image_builders[0].image_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"
resp.image_builders[0].image_builder_errors[0].error_message #=> String
resp.image_builders[0].image_builder_errors[0].error_timestamp #=> Time
resp.image_builders[0].appstream_agent_version #=> String
resp.image_builders[0].access_endpoints #=> Array
resp.image_builders[0].access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.image_builders[0].access_endpoints[0].vpce_id #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :names (Array<String>)

    The names of the image builders to describe.

  • :max_results (Integer)

    The maximum size of each page of results.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

Returns:

See Also:



3115
3116
3117
3118
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3115

def describe_image_builders(params = {}, options = {})
  req = build_request(:describe_image_builders, params)
  req.send_request(options)
end

#describe_image_permissions(params = {}) ⇒ Types::DescribeImagePermissionsResult

Retrieves a list that describes the permissions for shared AWS account IDs on a private image that you own.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.describe_image_permissions({
  name: "Name", # required
  max_results: 1,
  shared_aws_account_ids: ["AwsAccountId"],
  next_token: "String",
})

Response structure


resp.name #=> String
resp.shared_image_permissions_list #=> Array
resp.shared_image_permissions_list[0]. #=> String
resp.shared_image_permissions_list[0].image_permissions.allow_fleet #=> Boolean
resp.shared_image_permissions_list[0].image_permissions.allow_image_builder #=> Boolean
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the private image for which to describe permissions. The image must be one that you own.

  • :max_results (Integer)

    The maximum size of each page of results.

  • :shared_aws_account_ids (Array<String>)

    The 12-digit identifier of one or more AWS accounts with which the image is shared.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

Returns:

See Also:



3168
3169
3170
3171
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3168

def describe_image_permissions(params = {}, options = {})
  req = build_request(:describe_image_permissions, params)
  req.send_request(options)
end

#describe_images(params = {}) ⇒ Types::DescribeImagesResult

Retrieves a list that describes one or more specified images, if the image names or image ARNs are provided. Otherwise, all images in the account are described.

The returned response is a pageable response and is Enumerable. For details on usage see PageableResponse.

Examples:

Request syntax with placeholder values


resp = client.describe_images({
  names: ["String"],
  arns: ["Arn"],
  type: "PUBLIC", # accepts PUBLIC, PRIVATE, SHARED
  next_token: "String",
  max_results: 1,
})

Response structure


resp.images #=> Array
resp.images[0].name #=> String
resp.images[0].arn #=> String
resp.images[0].base_image_arn #=> String
resp.images[0].display_name #=> String
resp.images[0].state #=> String, one of "PENDING", "AVAILABLE", "FAILED", "COPYING", "DELETING", "CREATING", "IMPORTING"
resp.images[0].visibility #=> String, one of "PUBLIC", "PRIVATE", "SHARED"
resp.images[0].image_builder_supported #=> Boolean
resp.images[0].image_builder_name #=> String
resp.images[0].platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.images[0].description #=> String
resp.images[0].state_change_reason.code #=> String, one of "INTERNAL_ERROR", "IMAGE_BUILDER_NOT_AVAILABLE", "IMAGE_COPY_FAILURE"
resp.images[0].state_change_reason.message #=> String
resp.images[0].applications #=> Array
resp.images[0].applications[0].name #=> String
resp.images[0].applications[0].display_name #=> String
resp.images[0].applications[0].icon_url #=> String
resp.images[0].applications[0].launch_path #=> String
resp.images[0].applications[0].launch_parameters #=> String
resp.images[0].applications[0].enabled #=> Boolean
resp.images[0].applications[0]. #=> Hash
resp.images[0].applications[0].["String"] #=> String
resp.images[0].applications[0].working_directory #=> String
resp.images[0].applications[0].description #=> String
resp.images[0].applications[0].arn #=> String
resp.images[0].applications[0].app_block_arn #=> String
resp.images[0].applications[0].icon_s3_location.s3_bucket #=> String
resp.images[0].applications[0].icon_s3_location.s3_key #=> String
resp.images[0].applications[0].platforms #=> Array
resp.images[0].applications[0].platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.images[0].applications[0].instance_families #=> Array
resp.images[0].applications[0].instance_families[0] #=> String
resp.images[0].applications[0].created_time #=> Time
resp.images[0].created_time #=> Time
resp.images[0].public_base_image_released_date #=> Time
resp.images[0].appstream_agent_version #=> String
resp.images[0].image_permissions.allow_fleet #=> Boolean
resp.images[0].image_permissions.allow_image_builder #=> Boolean
resp.images[0].image_errors #=> Array
resp.images[0].image_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"
resp.images[0].image_errors[0].error_message #=> String
resp.images[0].image_errors[0].error_timestamp #=> Time
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :names (Array<String>)

    The names of the public or private images to describe.

  • :arns (Array<String>)

    The ARNs of the public, private, and shared images to describe.

  • :type (String)

    The type of image (public, private, or shared) to describe.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

  • :max_results (Integer)

    The maximum size of each page of results.

Returns:

See Also:



3260
3261
3262
3263
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3260

def describe_images(params = {}, options = {})
  req = build_request(:describe_images, params)
  req.send_request(options)
end

#describe_sessions(params = {}) ⇒ Types::DescribeSessionsResult

Retrieves a list that describes the streaming sessions for a specified stack and fleet. If a UserId is provided for the stack and fleet, only streaming sessions for that user are described. If an authentication type is not provided, the default is to authenticate users using a streaming URL.

Examples:

Request syntax with placeholder values


resp = client.describe_sessions({
  stack_name: "Name", # required
  fleet_name: "Name", # required
  user_id: "UserId",
  next_token: "String",
  limit: 1,
  authentication_type: "API", # accepts API, SAML, USERPOOL, AWS_AD
  instance_id: "String",
})

Response structure


resp.sessions #=> Array
resp.sessions[0].id #=> String
resp.sessions[0].user_id #=> String
resp.sessions[0].stack_name #=> String
resp.sessions[0].fleet_name #=> String
resp.sessions[0].state #=> String, one of "ACTIVE", "PENDING", "EXPIRED"
resp.sessions[0].connection_state #=> String, one of "CONNECTED", "NOT_CONNECTED"
resp.sessions[0].start_time #=> Time
resp.sessions[0].max_expiration_time #=> Time
resp.sessions[0].authentication_type #=> String, one of "API", "SAML", "USERPOOL", "AWS_AD"
resp.sessions[0].network_access_configuration.eni_private_ip_address #=> String
resp.sessions[0].network_access_configuration.eni_id #=> String
resp.sessions[0].instance_id #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :stack_name (required, String)

    The name of the stack. This value is case-sensitive.

  • :fleet_name (required, String)

    The name of the fleet. This value is case-sensitive.

  • :user_id (String)

    The user identifier (ID). If you specify a user ID, you must also specify the authentication type.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

  • :limit (Integer)

    The size of each page of results. The default value is 20 and the maximum value is 50.

  • :authentication_type (String)

    The authentication method. Specify API for a user authenticated using a streaming URL or SAML for a SAML federated user. The default is to authenticate users using a streaming URL.

  • :instance_id (String)

    The identifier for the instance hosting the session.

Returns:

See Also:



3335
3336
3337
3338
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3335

def describe_sessions(params = {}, options = {})
  req = build_request(:describe_sessions, params)
  req.send_request(options)
end

#describe_stacks(params = {}) ⇒ Types::DescribeStacksResult

Retrieves a list that describes one or more specified stacks, if the stack names are provided. Otherwise, all stacks in the account are described.

Examples:

Request syntax with placeholder values


resp = client.describe_stacks({
  names: ["String"],
  next_token: "String",
})

Response structure


resp.stacks #=> Array
resp.stacks[0].arn #=> String
resp.stacks[0].name #=> String
resp.stacks[0].description #=> String
resp.stacks[0].display_name #=> String
resp.stacks[0].created_time #=> Time
resp.stacks[0].storage_connectors #=> Array
resp.stacks[0].storage_connectors[0].connector_type #=> String, one of "HOMEFOLDERS", "GOOGLE_DRIVE", "ONE_DRIVE"
resp.stacks[0].storage_connectors[0].resource_identifier #=> String
resp.stacks[0].storage_connectors[0].domains #=> Array
resp.stacks[0].storage_connectors[0].domains[0] #=> String
resp.stacks[0].redirect_url #=> String
resp.stacks[0].feedback_url #=> String
resp.stacks[0].stack_errors #=> Array
resp.stacks[0].stack_errors[0].error_code #=> String, one of "STORAGE_CONNECTOR_ERROR", "INTERNAL_SERVICE_ERROR"
resp.stacks[0].stack_errors[0].error_message #=> String
resp.stacks[0]. #=> Array
resp.stacks[0].[0].action #=> String, one of "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"
resp.stacks[0].[0].permission #=> String, one of "ENABLED", "DISABLED"
resp.stacks[0].[0].maximum_length #=> Integer
resp.stacks[0].application_settings.enabled #=> Boolean
resp.stacks[0].application_settings.settings_group #=> String
resp.stacks[0].application_settings.s3_bucket_name #=> String
resp.stacks[0].access_endpoints #=> Array
resp.stacks[0].access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.stacks[0].access_endpoints[0].vpce_id #=> String
resp.stacks[0].embed_host_domains #=> Array
resp.stacks[0].embed_host_domains[0] #=> String
resp.stacks[0].streaming_experience_settings.preferred_protocol #=> String, one of "TCP", "UDP"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :names (Array<String>)

    The names of the stacks to describe.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

Returns:

See Also:



3400
3401
3402
3403
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3400

def describe_stacks(params = {}, options = {})
  req = build_request(:describe_stacks, params)
  req.send_request(options)
end

#describe_usage_report_subscriptions(params = {}) ⇒ Types::DescribeUsageReportSubscriptionsResult

Retrieves a list that describes one or more usage report subscriptions.

Examples:

Request syntax with placeholder values


resp = client.describe_usage_report_subscriptions({
  max_results: 1,
  next_token: "String",
})

Response structure


resp.usage_report_subscriptions #=> Array
resp.usage_report_subscriptions[0].s3_bucket_name #=> String
resp.usage_report_subscriptions[0].schedule #=> String, one of "DAILY"
resp.usage_report_subscriptions[0].last_generated_report_date #=> Time
resp.usage_report_subscriptions[0].subscription_errors #=> Array
resp.usage_report_subscriptions[0].subscription_errors[0].error_code #=> String, one of "RESOURCE_NOT_FOUND", "ACCESS_DENIED", "INTERNAL_SERVICE_ERROR"
resp.usage_report_subscriptions[0].subscription_errors[0].error_message #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :max_results (Integer)

    The maximum size of each page of results.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

Returns:

See Also:



3442
3443
3444
3445
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3442

def describe_usage_report_subscriptions(params = {}, options = {})
  req = build_request(:describe_usage_report_subscriptions, params)
  req.send_request(options)
end

#describe_user_stack_associations(params = {}) ⇒ Types::DescribeUserStackAssociationsResult

Retrieves a list that describes the UserStackAssociation objects. You must specify either or both of the following:

  • The stack name

  • The user name (email address of the user associated with the stack) and the authentication type for the user

Examples:

Request syntax with placeholder values


resp = client.describe_user_stack_associations({
  stack_name: "String",
  user_name: "Username",
  authentication_type: "API", # accepts API, SAML, USERPOOL, AWS_AD
  max_results: 1,
  next_token: "String",
})

Response structure


resp.user_stack_associations #=> Array
resp.user_stack_associations[0].stack_name #=> String
resp.user_stack_associations[0].user_name #=> String
resp.user_stack_associations[0].authentication_type #=> String, one of "API", "SAML", "USERPOOL", "AWS_AD"
resp.user_stack_associations[0].send_email_notification #=> Boolean
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :stack_name (String)

    The name of the stack that is associated with the user.

  • :user_name (String)

    The email address of the user who is associated with the stack.

    Users' email addresses are case-sensitive.

  • :authentication_type (String)

    The authentication type for the user who is associated with the stack. You must specify USERPOOL.

  • :max_results (Integer)

    The maximum size of each page of results.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

Returns:

See Also:



3504
3505
3506
3507
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3504

def describe_user_stack_associations(params = {}, options = {})
  req = build_request(:describe_user_stack_associations, params)
  req.send_request(options)
end

#describe_users(params = {}) ⇒ Types::DescribeUsersResult

Retrieves a list that describes one or more specified users in the user pool.

Examples:

Request syntax with placeholder values


resp = client.describe_users({
  authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
  max_results: 1,
  next_token: "String",
})

Response structure


resp.users #=> Array
resp.users[0].arn #=> String
resp.users[0].user_name #=> String
resp.users[0].enabled #=> Boolean
resp.users[0].status #=> String
resp.users[0].first_name #=> String
resp.users[0].last_name #=> String
resp.users[0].created_time #=> Time
resp.users[0].authentication_type #=> String, one of "API", "SAML", "USERPOOL", "AWS_AD"
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :authentication_type (required, String)

    The authentication type for the users in the user pool to describe. You must specify USERPOOL.

  • :max_results (Integer)

    The maximum size of each page of results.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

Returns:

See Also:



3553
3554
3555
3556
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3553

def describe_users(params = {}, options = {})
  req = build_request(:describe_users, params)
  req.send_request(options)
end

#disable_user(params = {}) ⇒ Struct

Disables the specified user in the user pool. Users can't sign in to AppStream 2.0 until they are re-enabled. This action does not delete the user.

Examples:

Request syntax with placeholder values


resp = client.disable_user({
  user_name: "Username", # required
  authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :user_name (required, String)

    The email address of the user.

    Users' email addresses are case-sensitive.

  • :authentication_type (required, String)

    The authentication type for the user. You must specify USERPOOL.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



3585
3586
3587
3588
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3585

def disable_user(params = {}, options = {})
  req = build_request(:disable_user, params)
  req.send_request(options)
end

#disassociate_app_block_builder_app_block(params = {}) ⇒ Struct

Disassociates a specified app block builder from a specified app block.

Examples:

Request syntax with placeholder values


resp = client.disassociate_app_block_builder_app_block({
  app_block_arn: "Arn", # required
  app_block_builder_name: "Name", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :app_block_arn (required, String)

    The ARN of the app block.

  • :app_block_builder_name (required, String)

    The name of the app block builder.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



3612
3613
3614
3615
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3612

def disassociate_app_block_builder_app_block(params = {}, options = {})
  req = build_request(:disassociate_app_block_builder_app_block, params)
  req.send_request(options)
end

#disassociate_application_fleet(params = {}) ⇒ Struct

Disassociates the specified application from the fleet.

Examples:

Request syntax with placeholder values


resp = client.disassociate_application_fleet({
  fleet_name: "Name", # required
  application_arn: "Arn", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :fleet_name (required, String)

    The name of the fleet.

  • :application_arn (required, String)

    The ARN of the application.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



3638
3639
3640
3641
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3638

def disassociate_application_fleet(params = {}, options = {})
  req = build_request(:disassociate_application_fleet, params)
  req.send_request(options)
end

#disassociate_application_from_entitlement(params = {}) ⇒ Struct

Deletes the specified application from the specified entitlement.

Examples:

Request syntax with placeholder values


resp = client.disassociate_application_from_entitlement({
  stack_name: "Name", # required
  entitlement_name: "Name", # required
  application_identifier: "String", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :stack_name (required, String)

    The name of the stack with which the entitlement is associated.

  • :entitlement_name (required, String)

    The name of the entitlement.

  • :application_identifier (required, String)

    The identifier of the application to remove from the entitlement.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



3668
3669
3670
3671
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3668

def disassociate_application_from_entitlement(params = {}, options = {})
  req = build_request(:disassociate_application_from_entitlement, params)
  req.send_request(options)
end

#disassociate_fleet(params = {}) ⇒ Struct

Disassociates the specified fleet from the specified stack.

Examples:

Request syntax with placeholder values


resp = client.disassociate_fleet({
  fleet_name: "String", # required
  stack_name: "String", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :fleet_name (required, String)

    The name of the fleet.

  • :stack_name (required, String)

    The name of the stack.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



3694
3695
3696
3697
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3694

def disassociate_fleet(params = {}, options = {})
  req = build_request(:disassociate_fleet, params)
  req.send_request(options)
end

#enable_user(params = {}) ⇒ Struct

Enables a user in the user pool. After being enabled, users can sign in to AppStream 2.0 and open applications from the stacks to which they are assigned.

Examples:

Request syntax with placeholder values


resp = client.enable_user({
  user_name: "Username", # required
  authentication_type: "API", # required, accepts API, SAML, USERPOOL, AWS_AD
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :user_name (required, String)

    The email address of the user.

    Users' email addresses are case-sensitive. During login, if they specify an email address that doesn't use the same capitalization as the email address specified when their user pool account was created, a "user does not exist" error message displays.

  • :authentication_type (required, String)

    The authentication type for the user. You must specify USERPOOL.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



3729
3730
3731
3732
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3729

def enable_user(params = {}, options = {})
  req = build_request(:enable_user, params)
  req.send_request(options)
end

#expire_session(params = {}) ⇒ Struct

Immediately stops the specified streaming session.

Examples:

Request syntax with placeholder values


resp = client.expire_session({
  session_id: "String", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :session_id (required, String)

    The identifier of the streaming session.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



3751
3752
3753
3754
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3751

def expire_session(params = {}, options = {})
  req = build_request(:expire_session, params)
  req.send_request(options)
end

#list_associated_fleets(params = {}) ⇒ Types::ListAssociatedFleetsResult

Retrieves the name of the fleet that is associated with the specified stack.

Examples:

Request syntax with placeholder values


resp = client.list_associated_fleets({
  stack_name: "String", # required
  next_token: "String",
})

Response structure


resp.names #=> Array
resp.names[0] #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :stack_name (required, String)

    The name of the stack.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

Returns:

See Also:



3788
3789
3790
3791
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3788

def list_associated_fleets(params = {}, options = {})
  req = build_request(:list_associated_fleets, params)
  req.send_request(options)
end

#list_associated_stacks(params = {}) ⇒ Types::ListAssociatedStacksResult

Retrieves the name of the stack with which the specified fleet is associated.

Examples:

Request syntax with placeholder values


resp = client.list_associated_stacks({
  fleet_name: "String", # required
  next_token: "String",
})

Response structure


resp.names #=> Array
resp.names[0] #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :fleet_name (required, String)

    The name of the fleet.

  • :next_token (String)

    The pagination token to use to retrieve the next page of results for this operation. If this value is null, it retrieves the first page.

Returns:

See Also:



3825
3826
3827
3828
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3825

def list_associated_stacks(params = {}, options = {})
  req = build_request(:list_associated_stacks, params)
  req.send_request(options)
end

#list_entitled_applications(params = {}) ⇒ Types::ListEntitledApplicationsResult

Retrieves a list of entitled applications.

Examples:

Request syntax with placeholder values


resp = client.list_entitled_applications({
  stack_name: "Name", # required
  entitlement_name: "Name", # required
  next_token: "String",
  max_results: 1,
})

Response structure


resp.entitled_applications #=> Array
resp.entitled_applications[0].application_identifier #=> String
resp.next_token #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :stack_name (required, String)

    The name of the stack with which the entitlement is associated.

  • :entitlement_name (required, String)

    The name of the entitlement.

  • :next_token (String)

    The pagination token used to retrieve the next page of results for this operation.

  • :max_results (Integer)

    The maximum size of each page of results.

Returns:

See Also:



3869
3870
3871
3872
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3869

def list_entitled_applications(params = {}, options = {})
  req = build_request(:list_entitled_applications, params)
  req.send_request(options)
end

#list_tags_for_resource(params = {}) ⇒ Types::ListTagsForResourceResponse

Retrieves a list of all tags for the specified AppStream 2.0 resource. You can tag AppStream 2.0 image builders, images, fleets, and stacks.

For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide.

Examples:

Request syntax with placeholder values


resp = client.list_tags_for_resource({
  resource_arn: "Arn", # required
})

Response structure


resp.tags #=> Hash
resp.tags["TagKey"] #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the resource.

Returns:

See Also:



3906
3907
3908
3909
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3906

def list_tags_for_resource(params = {}, options = {})
  req = build_request(:list_tags_for_resource, params)
  req.send_request(options)
end

#start_app_block_builder(params = {}) ⇒ Types::StartAppBlockBuilderResult

Starts an app block builder.

An app block builder can only be started when it's associated with an app block.

Starting an app block builder starts a new instance, which is equivalent to an elastic fleet instance with application builder assistance functionality.

Examples:

Request syntax with placeholder values


resp = client.start_app_block_builder({
  name: "Name", # required
})

Response structure


resp.app_block_builder.arn #=> String
resp.app_block_builder.name #=> String
resp.app_block_builder.display_name #=> String
resp.app_block_builder.description #=> String
resp.app_block_builder.platform #=> String, one of "WINDOWS_SERVER_2019"
resp.app_block_builder.instance_type #=> String
resp.app_block_builder.enable_default_internet_access #=> Boolean
resp.app_block_builder.iam_role_arn #=> String
resp.app_block_builder.vpc_config.subnet_ids #=> Array
resp.app_block_builder.vpc_config.subnet_ids[0] #=> String
resp.app_block_builder.vpc_config.security_group_ids #=> Array
resp.app_block_builder.vpc_config.security_group_ids[0] #=> String
resp.app_block_builder.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
resp.app_block_builder.created_time #=> Time
resp.app_block_builder.app_block_builder_errors #=> Array
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"
resp.app_block_builder.app_block_builder_errors[0].error_message #=> String
resp.app_block_builder.app_block_builder_errors[0].error_timestamp #=> Time
resp.app_block_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR"
resp.app_block_builder.state_change_reason.message #=> String
resp.app_block_builder.access_endpoints #=> Array
resp.app_block_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.app_block_builder.access_endpoints[0].vpce_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the app block builder.

Returns:

See Also:



3963
3964
3965
3966
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3963

def start_app_block_builder(params = {}, options = {})
  req = build_request(:start_app_block_builder, params)
  req.send_request(options)
end

#start_fleet(params = {}) ⇒ Struct

Starts the specified fleet.

Examples:

Request syntax with placeholder values


resp = client.start_fleet({
  name: "String", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the fleet.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



3985
3986
3987
3988
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 3985

def start_fleet(params = {}, options = {})
  req = build_request(:start_fleet, params)
  req.send_request(options)
end

#start_image_builder(params = {}) ⇒ Types::StartImageBuilderResult

Starts the specified image builder.

Examples:

Request syntax with placeholder values


resp = client.start_image_builder({
  name: "String", # required
  appstream_agent_version: "AppstreamAgentVersion",
})

Response structure


resp.image_builder.name #=> String
resp.image_builder.arn #=> String
resp.image_builder.image_arn #=> String
resp.image_builder.description #=> String
resp.image_builder.display_name #=> String
resp.image_builder.vpc_config.subnet_ids #=> Array
resp.image_builder.vpc_config.subnet_ids[0] #=> String
resp.image_builder.vpc_config.security_group_ids #=> Array
resp.image_builder.vpc_config.security_group_ids[0] #=> String
resp.image_builder.instance_type #=> String
resp.image_builder.platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.image_builder.iam_role_arn #=> String
resp.image_builder.state #=> String, one of "PENDING", "UPDATING_AGENT", "RUNNING", "STOPPING", "STOPPED", "REBOOTING", "SNAPSHOTTING", "DELETING", "FAILED", "UPDATING", "PENDING_QUALIFICATION"
resp.image_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "IMAGE_UNAVAILABLE"
resp.image_builder.state_change_reason.message #=> String
resp.image_builder.created_time #=> Time
resp.image_builder.enable_default_internet_access #=> Boolean
resp.image_builder.domain_join_info.directory_name #=> String
resp.image_builder.domain_join_info.organizational_unit_distinguished_name #=> String
resp.image_builder.network_access_configuration.eni_private_ip_address #=> String
resp.image_builder.network_access_configuration.eni_id #=> String
resp.image_builder.image_builder_errors #=> Array
resp.image_builder.image_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"
resp.image_builder.image_builder_errors[0].error_message #=> String
resp.image_builder.image_builder_errors[0].error_timestamp #=> Time
resp.image_builder.appstream_agent_version #=> String
resp.image_builder.access_endpoints #=> Array
resp.image_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.image_builder.access_endpoints[0].vpce_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the image builder.

  • :appstream_agent_version (String)

    The version of the AppStream 2.0 agent to use for this image builder. To use the latest version of the AppStream 2.0 agent, specify [LATEST].

Returns:

See Also:



4047
4048
4049
4050
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4047

def start_image_builder(params = {}, options = {})
  req = build_request(:start_image_builder, params)
  req.send_request(options)
end

#stop_app_block_builder(params = {}) ⇒ Types::StopAppBlockBuilderResult

Stops an app block builder.

Stopping an app block builder terminates the instance, and the instance state is not persisted.

Examples:

Request syntax with placeholder values


resp = client.stop_app_block_builder({
  name: "Name", # required
})

Response structure


resp.app_block_builder.arn #=> String
resp.app_block_builder.name #=> String
resp.app_block_builder.display_name #=> String
resp.app_block_builder.description #=> String
resp.app_block_builder.platform #=> String, one of "WINDOWS_SERVER_2019"
resp.app_block_builder.instance_type #=> String
resp.app_block_builder.enable_default_internet_access #=> Boolean
resp.app_block_builder.iam_role_arn #=> String
resp.app_block_builder.vpc_config.subnet_ids #=> Array
resp.app_block_builder.vpc_config.subnet_ids[0] #=> String
resp.app_block_builder.vpc_config.security_group_ids #=> Array
resp.app_block_builder.vpc_config.security_group_ids[0] #=> String
resp.app_block_builder.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
resp.app_block_builder.created_time #=> Time
resp.app_block_builder.app_block_builder_errors #=> Array
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"
resp.app_block_builder.app_block_builder_errors[0].error_message #=> String
resp.app_block_builder.app_block_builder_errors[0].error_timestamp #=> Time
resp.app_block_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR"
resp.app_block_builder.state_change_reason.message #=> String
resp.app_block_builder.access_endpoints #=> Array
resp.app_block_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.app_block_builder.access_endpoints[0].vpce_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the app block builder.

Returns:

See Also:



4100
4101
4102
4103
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4100

def stop_app_block_builder(params = {}, options = {})
  req = build_request(:stop_app_block_builder, params)
  req.send_request(options)
end

#stop_fleet(params = {}) ⇒ Struct

Stops the specified fleet.

Examples:

Request syntax with placeholder values


resp = client.stop_fleet({
  name: "String", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the fleet.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



4122
4123
4124
4125
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4122

def stop_fleet(params = {}, options = {})
  req = build_request(:stop_fleet, params)
  req.send_request(options)
end

#stop_image_builder(params = {}) ⇒ Types::StopImageBuilderResult

Stops the specified image builder.

Examples:

Request syntax with placeholder values


resp = client.stop_image_builder({
  name: "String", # required
})

Response structure


resp.image_builder.name #=> String
resp.image_builder.arn #=> String
resp.image_builder.image_arn #=> String
resp.image_builder.description #=> String
resp.image_builder.display_name #=> String
resp.image_builder.vpc_config.subnet_ids #=> Array
resp.image_builder.vpc_config.subnet_ids[0] #=> String
resp.image_builder.vpc_config.security_group_ids #=> Array
resp.image_builder.vpc_config.security_group_ids[0] #=> String
resp.image_builder.instance_type #=> String
resp.image_builder.platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.image_builder.iam_role_arn #=> String
resp.image_builder.state #=> String, one of "PENDING", "UPDATING_AGENT", "RUNNING", "STOPPING", "STOPPED", "REBOOTING", "SNAPSHOTTING", "DELETING", "FAILED", "UPDATING", "PENDING_QUALIFICATION"
resp.image_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR", "IMAGE_UNAVAILABLE"
resp.image_builder.state_change_reason.message #=> String
resp.image_builder.created_time #=> Time
resp.image_builder.enable_default_internet_access #=> Boolean
resp.image_builder.domain_join_info.directory_name #=> String
resp.image_builder.domain_join_info.organizational_unit_distinguished_name #=> String
resp.image_builder.network_access_configuration.eni_private_ip_address #=> String
resp.image_builder.network_access_configuration.eni_id #=> String
resp.image_builder.image_builder_errors #=> Array
resp.image_builder.image_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"
resp.image_builder.image_builder_errors[0].error_message #=> String
resp.image_builder.image_builder_errors[0].error_timestamp #=> Time
resp.image_builder.appstream_agent_version #=> String
resp.image_builder.access_endpoints #=> Array
resp.image_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.image_builder.access_endpoints[0].vpce_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the image builder.

Returns:

See Also:



4178
4179
4180
4181
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4178

def stop_image_builder(params = {}, options = {})
  req = build_request(:stop_image_builder, params)
  req.send_request(options)
end

#tag_resource(params = {}) ⇒ Struct

Adds or overwrites one or more tags for the specified AppStream 2.0 resource. You can tag AppStream 2.0 image builders, images, fleets, and stacks.

Each tag consists of a key and an optional value. If a resource already has a tag with the same key, this operation updates its value.

To list the current tags for your resources, use ListTagsForResource. To disassociate tags from your resources, use UntagResource.

For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide.

Examples:

Request syntax with placeholder values


resp = client.tag_resource({
  resource_arn: "Arn", # required
  tags: { # required
    "TagKey" => "TagValue",
  },
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the resource.

  • :tags (required, Hash<String,String>)

    The tags to associate. A tag is a key-value pair, and the value is optional. For example, Environment=Test. If you do not specify a value, Environment=.

    If you do not specify a value, the value is set to an empty string.

    Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following special characters:

    _ . : / = + \ - @

Returns:

  • (Struct)

    Returns an empty response.

See Also:



4230
4231
4232
4233
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4230

def tag_resource(params = {}, options = {})
  req = build_request(:tag_resource, params)
  req.send_request(options)
end

#untag_resource(params = {}) ⇒ Struct

Disassociates one or more specified tags from the specified AppStream 2.0 resource.

To list the current tags for your resources, use ListTagsForResource.

For more information about tags, see Tagging Your Resources in the Amazon AppStream 2.0 Administration Guide.

Examples:

Request syntax with placeholder values


resp = client.untag_resource({
  resource_arn: "Arn", # required
  tag_keys: ["TagKey"], # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :resource_arn (required, String)

    The Amazon Resource Name (ARN) of the resource.

  • :tag_keys (required, Array<String>)

    The tag keys for the tags to disassociate.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



4266
4267
4268
4269
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4266

def untag_resource(params = {}, options = {})
  req = build_request(:untag_resource, params)
  req.send_request(options)
end

#update_app_block_builder(params = {}) ⇒ Types::UpdateAppBlockBuilderResult

Updates an app block builder.

If the app block builder is in the STARTING or STOPPING state, you can't update it. If the app block builder is in the RUNNING state, you can only update the DisplayName and Description. If the app block builder is in the STOPPED state, you can update any attribute except the Name.

Examples:

Request syntax with placeholder values


resp = client.update_app_block_builder({
  name: "Name", # required
  description: "Description",
  display_name: "DisplayName",
  platform: "WINDOWS", # accepts WINDOWS, WINDOWS_SERVER_2016, WINDOWS_SERVER_2019, WINDOWS_SERVER_2022, AMAZON_LINUX2
  instance_type: "String",
  vpc_config: {
    subnet_ids: ["String"],
    security_group_ids: ["String"],
  },
  enable_default_internet_access: false,
  iam_role_arn: "Arn",
  access_endpoints: [
    {
      endpoint_type: "STREAMING", # required, accepts STREAMING
      vpce_id: "String",
    },
  ],
  attributes_to_delete: ["IAM_ROLE_ARN"], # accepts IAM_ROLE_ARN, ACCESS_ENDPOINTS, VPC_CONFIGURATION_SECURITY_GROUP_IDS
})

Response structure


resp.app_block_builder.arn #=> String
resp.app_block_builder.name #=> String
resp.app_block_builder.display_name #=> String
resp.app_block_builder.description #=> String
resp.app_block_builder.platform #=> String, one of "WINDOWS_SERVER_2019"
resp.app_block_builder.instance_type #=> String
resp.app_block_builder.enable_default_internet_access #=> Boolean
resp.app_block_builder.iam_role_arn #=> String
resp.app_block_builder.vpc_config.subnet_ids #=> Array
resp.app_block_builder.vpc_config.subnet_ids[0] #=> String
resp.app_block_builder.vpc_config.security_group_ids #=> Array
resp.app_block_builder.vpc_config.security_group_ids[0] #=> String
resp.app_block_builder.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
resp.app_block_builder.created_time #=> Time
resp.app_block_builder.app_block_builder_errors #=> Array
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"
resp.app_block_builder.app_block_builder_errors[0].error_message #=> String
resp.app_block_builder.app_block_builder_errors[0].error_timestamp #=> Time
resp.app_block_builder.state_change_reason.code #=> String, one of "INTERNAL_ERROR"
resp.app_block_builder.state_change_reason.message #=> String
resp.app_block_builder.access_endpoints #=> Array
resp.app_block_builder.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.app_block_builder.access_endpoints[0].vpce_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The unique name for the app block builder.

  • :description (String)

    The description of the app block builder.

  • :display_name (String)

    The display name of the app block builder.

  • :platform (String)

    The platform of the app block builder.

    WINDOWS_SERVER_2019 is the only valid value.

  • :instance_type (String)

    The instance type to use when launching the app block builder. The following instance types are available:

    • stream.standard.small

    • stream.standard.medium

    • stream.standard.large

    • stream.standard.xlarge

    • stream.standard.2xlarge

  • :vpc_config (Types::VpcConfig)

    The VPC configuration for the app block builder.

    App block builders require that you specify at least two subnets in different availability zones.

  • :enable_default_internet_access (Boolean)

    Enables or disables default internet access for the app block builder.

  • :iam_role_arn (String)

    The Amazon Resource Name (ARN) of the IAM role to apply to the app block builder. To assume a role, the app block builder calls the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the appstream_machine_role credential profile on the instance.

    For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 Administration Guide.

  • :access_endpoints (Array<Types::AccessEndpoint>)

    The list of interface VPC endpoint (interface endpoint) objects. Administrators can connect to the app block builder only through the specified endpoints.

  • :attributes_to_delete (Array<String>)

    The attributes to delete from the app block builder.

Returns:

See Also:



4398
4399
4400
4401
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4398

def update_app_block_builder(params = {}, options = {})
  req = build_request(:update_app_block_builder, params)
  req.send_request(options)
end

#update_application(params = {}) ⇒ Types::UpdateApplicationResult

Updates the specified application.

Examples:

Request syntax with placeholder values


resp = client.update_application({
  name: "Name", # required
  display_name: "DisplayName",
  description: "Description",
  icon_s3_location: {
    s3_bucket: "S3Bucket", # required
    s3_key: "S3Key",
  },
  launch_path: "String",
  working_directory: "String",
  launch_parameters: "String",
  app_block_arn: "Arn",
  attributes_to_delete: ["LAUNCH_PARAMETERS"], # accepts LAUNCH_PARAMETERS, WORKING_DIRECTORY
})

Response structure


resp.application.name #=> String
resp.application.display_name #=> String
resp.application.icon_url #=> String
resp.application.launch_path #=> String
resp.application.launch_parameters #=> String
resp.application.enabled #=> Boolean
resp.application. #=> Hash
resp.application.["String"] #=> String
resp.application.working_directory #=> String
resp.application.description #=> String
resp.application.arn #=> String
resp.application.app_block_arn #=> String
resp.application.icon_s3_location.s3_bucket #=> String
resp.application.icon_s3_location.s3_key #=> String
resp.application.platforms #=> Array
resp.application.platforms[0] #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.application.instance_families #=> Array
resp.application.instance_families[0] #=> String
resp.application.created_time #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the application. This name is visible to users when display name is not specified.

  • :display_name (String)

    The display name of the application. This name is visible to users in the application catalog.

  • :description (String)

    The description of the application.

  • :icon_s3_location (Types::S3Location)

    The icon S3 location of the application.

  • :launch_path (String)

    The launch path of the application.

  • :working_directory (String)

    The working directory of the application.

  • :launch_parameters (String)

    The launch parameters of the application.

  • :app_block_arn (String)

    The ARN of the app block.

  • :attributes_to_delete (Array<String>)

    The attributes to delete for an application.

Returns:

See Also:



4481
4482
4483
4484
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4481

def update_application(params = {}, options = {})
  req = build_request(:update_application, params)
  req.send_request(options)
end

#update_directory_config(params = {}) ⇒ Types::UpdateDirectoryConfigResult

Updates the specified Directory Config object in AppStream 2.0. This object includes the configuration information required to join fleets and image builders to Microsoft Active Directory domains.

Examples:

Request syntax with placeholder values


resp = client.update_directory_config({
  directory_name: "DirectoryName", # required
  organizational_unit_distinguished_names: ["OrganizationalUnitDistinguishedName"],
  service_account_credentials: {
    account_name: "AccountName", # required
    account_password: "AccountPassword", # required
  },
  certificate_based_auth_properties: {
    status: "DISABLED", # accepts DISABLED, ENABLED, ENABLED_NO_DIRECTORY_LOGIN_FALLBACK
    certificate_authority_arn: "Arn",
  },
})

Response structure


resp.directory_config.directory_name #=> String
resp.directory_config.organizational_unit_distinguished_names #=> Array
resp.directory_config.organizational_unit_distinguished_names[0] #=> String
resp.directory_config.. #=> String
resp.directory_config.. #=> String
resp.directory_config.created_time #=> Time
resp.directory_config.certificate_based_auth_properties.status #=> String, one of "DISABLED", "ENABLED", "ENABLED_NO_DIRECTORY_LOGIN_FALLBACK"
resp.directory_config.certificate_based_auth_properties.certificate_authority_arn #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :directory_name (required, String)

    The name of the Directory Config object.

  • :organizational_unit_distinguished_names (Array<String>)

    The distinguished names of the organizational units for computer accounts.

  • :service_account_credentials (Types::ServiceAccountCredentials)

    The credentials for the service account used by the fleet or image builder to connect to the directory.

  • :certificate_based_auth_properties (Types::CertificateBasedAuthProperties)

    The certificate-based authentication properties used to authenticate SAML 2.0 Identity Provider (IdP) user identities to Active Directory domain-joined streaming instances. Fallback is turned on by default when certificate-based authentication is Enabled . Fallback allows users to log in using their AD domain password if certificate-based authentication is unsuccessful, or to unlock a desktop lock screen. Enabled_no_directory_login_fallback enables certificate-based authentication, but does not allow users to log in using their AD domain password. Users will be disconnected to re-authenticate using certificates.

Returns:

See Also:



4547
4548
4549
4550
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4547

def update_directory_config(params = {}, options = {})
  req = build_request(:update_directory_config, params)
  req.send_request(options)
end

#update_entitlement(params = {}) ⇒ Types::UpdateEntitlementResult

Updates the specified entitlement.

Examples:

Request syntax with placeholder values


resp = client.update_entitlement({
  name: "Name", # required
  stack_name: "Name", # required
  description: "Description",
  app_visibility: "ALL", # accepts ALL, ASSOCIATED
  attributes: [
    {
      name: "String", # required
      value: "String", # required
    },
  ],
})

Response structure


resp.entitlement.name #=> String
resp.entitlement.stack_name #=> String
resp.entitlement.description #=> String
resp.entitlement.app_visibility #=> String, one of "ALL", "ASSOCIATED"
resp.entitlement.attributes #=> Array
resp.entitlement.attributes[0].name #=> String
resp.entitlement.attributes[0].value #=> String
resp.entitlement.created_time #=> Time
resp.entitlement.last_modified_time #=> Time

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the entitlement.

  • :stack_name (required, String)

    The name of the stack with which the entitlement is associated.

  • :description (String)

    The description of the entitlement.

  • :app_visibility (String)

    Specifies whether all or only selected apps are entitled.

  • :attributes (Array<Types::EntitlementAttribute>)

    The attributes of the entitlement.

Returns:

See Also:



4604
4605
4606
4607
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4604

def update_entitlement(params = {}, options = {})
  req = build_request(:update_entitlement, params)
  req.send_request(options)
end

#update_fleet(params = {}) ⇒ Types::UpdateFleetResult

Updates the specified fleet.

If the fleet is in the STOPPED state, you can update any attribute except the fleet name.

If the fleet is in the RUNNING state, you can update the following based on the fleet type:

  • Always-On and On-Demand fleet types

    You can update the DisplayName, ComputeCapacity, ImageARN, ImageName, IdleDisconnectTimeoutInSeconds, and DisconnectTimeoutInSeconds attributes.

  • Elastic fleet type

    You can update the DisplayName, IdleDisconnectTimeoutInSeconds, DisconnectTimeoutInSeconds, MaxConcurrentSessions, SessionScriptS3Location and UsbDeviceFilterStrings attributes.

If the fleet is in the STARTING or STOPPED state, you can't update it.

Examples:

Request syntax with placeholder values


resp = client.update_fleet({
  image_name: "String",
  image_arn: "Arn",
  name: "Name",
  instance_type: "String",
  compute_capacity: {
    desired_instances: 1,
    desired_sessions: 1,
  },
  vpc_config: {
    subnet_ids: ["String"],
    security_group_ids: ["String"],
  },
  max_user_duration_in_seconds: 1,
  disconnect_timeout_in_seconds: 1,
  delete_vpc_config: false,
  description: "Description",
  display_name: "DisplayName",
  enable_default_internet_access: false,
  domain_join_info: {
    directory_name: "DirectoryName",
    organizational_unit_distinguished_name: "OrganizationalUnitDistinguishedName",
  },
  idle_disconnect_timeout_in_seconds: 1,
  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
  iam_role_arn: "Arn",
  stream_view: "APP", # accepts APP, DESKTOP
  platform: "WINDOWS", # accepts WINDOWS, WINDOWS_SERVER_2016, WINDOWS_SERVER_2019, WINDOWS_SERVER_2022, AMAZON_LINUX2
  max_concurrent_sessions: 1,
  usb_device_filter_strings: ["UsbDeviceFilterString"],
  session_script_s3_location: {
    s3_bucket: "S3Bucket", # required
    s3_key: "S3Key",
  },
  max_sessions_per_instance: 1,
})

Response structure


resp.fleet.arn #=> String
resp.fleet.name #=> String
resp.fleet.display_name #=> String
resp.fleet.description #=> String
resp.fleet.image_name #=> String
resp.fleet.image_arn #=> String
resp.fleet.instance_type #=> String
resp.fleet.fleet_type #=> String, one of "ALWAYS_ON", "ON_DEMAND", "ELASTIC"
resp.fleet.compute_capacity_status.desired #=> Integer
resp.fleet.compute_capacity_status.running #=> Integer
resp.fleet.compute_capacity_status.in_use #=> Integer
resp.fleet.compute_capacity_status.available #=> Integer
resp.fleet.compute_capacity_status.desired_user_sessions #=> Integer
resp.fleet.compute_capacity_status.available_user_sessions #=> Integer
resp.fleet.compute_capacity_status.active_user_sessions #=> Integer
resp.fleet.compute_capacity_status.actual_user_sessions #=> Integer
resp.fleet.max_user_duration_in_seconds #=> Integer
resp.fleet.disconnect_timeout_in_seconds #=> Integer
resp.fleet.state #=> String, one of "STARTING", "RUNNING", "STOPPING", "STOPPED"
resp.fleet.vpc_config.subnet_ids #=> Array
resp.fleet.vpc_config.subnet_ids[0] #=> String
resp.fleet.vpc_config.security_group_ids #=> Array
resp.fleet.vpc_config.security_group_ids[0] #=> String
resp.fleet.created_time #=> Time
resp.fleet.fleet_errors #=> Array
resp.fleet.fleet_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"
resp.fleet.fleet_errors[0].error_message #=> String
resp.fleet.enable_default_internet_access #=> Boolean
resp.fleet.domain_join_info.directory_name #=> String
resp.fleet.domain_join_info.organizational_unit_distinguished_name #=> String
resp.fleet.idle_disconnect_timeout_in_seconds #=> Integer
resp.fleet.iam_role_arn #=> String
resp.fleet.stream_view #=> String, one of "APP", "DESKTOP"
resp.fleet.platform #=> String, one of "WINDOWS", "WINDOWS_SERVER_2016", "WINDOWS_SERVER_2019", "WINDOWS_SERVER_2022", "AMAZON_LINUX2"
resp.fleet.max_concurrent_sessions #=> Integer
resp.fleet.usb_device_filter_strings #=> Array
resp.fleet.usb_device_filter_strings[0] #=> String
resp.fleet.session_script_s3_location.s3_bucket #=> String
resp.fleet.session_script_s3_location.s3_key #=> String
resp.fleet.max_sessions_per_instance #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :image_name (String)

    The name of the image used to create the fleet.

  • :image_arn (String)

    The ARN of the public, private, or shared image to use.

  • :name (String)

    A unique name for the fleet.

  • :instance_type (String)

    The instance type to use when launching fleet instances. The following instance types are available:

    • stream.standard.small

    • stream.standard.medium

    • stream.standard.large

    • stream.standard.xlarge

    • stream.standard.2xlarge

    • stream.compute.large

    • stream.compute.xlarge

    • stream.compute.2xlarge

    • stream.compute.4xlarge

    • stream.compute.8xlarge

    • stream.memory.large

    • stream.memory.xlarge

    • stream.memory.2xlarge

    • stream.memory.4xlarge

    • stream.memory.8xlarge

    • stream.memory.z1d.large

    • stream.memory.z1d.xlarge

    • stream.memory.z1d.2xlarge

    • stream.memory.z1d.3xlarge

    • stream.memory.z1d.6xlarge

    • stream.memory.z1d.12xlarge

    • stream.graphics-design.large

    • stream.graphics-design.xlarge

    • stream.graphics-design.2xlarge

    • stream.graphics-design.4xlarge

    • stream.graphics-desktop.2xlarge

    • stream.graphics.g4dn.xlarge

    • stream.graphics.g4dn.2xlarge

    • stream.graphics.g4dn.4xlarge

    • stream.graphics.g4dn.8xlarge

    • stream.graphics.g4dn.12xlarge

    • stream.graphics.g4dn.16xlarge

    • stream.graphics-pro.4xlarge

    • stream.graphics-pro.8xlarge

    • stream.graphics-pro.16xlarge

    The following instance types are available for Elastic fleets:

    • stream.standard.small

    • stream.standard.medium

    • stream.standard.large

    • stream.standard.xlarge

    • stream.standard.2xlarge

  • :compute_capacity (Types::ComputeCapacity)

    The desired capacity for the fleet. This is not allowed for Elastic fleets.

  • :vpc_config (Types::VpcConfig)

    The VPC configuration for the fleet. This is required for Elastic fleets, but not required for other fleet types. Elastic fleets require that you specify at least two subnets in different availability zones.

  • :max_user_duration_in_seconds (Integer)

    The maximum amount of time that a streaming session can remain active, in seconds. If users are still connected to a streaming instance five minutes before this limit is reached, they are prompted to save any open documents before being disconnected. After this time elapses, the instance is terminated and replaced by a new instance.

    Specify a value between 600 and 432000.

  • :disconnect_timeout_in_seconds (Integer)

    The amount of time that a streaming session remains active after users disconnect. If users try to reconnect to the streaming session after a disconnection or network interruption within this time interval, they are connected to their previous session. Otherwise, they are connected to a new session with a new streaming instance.

    Specify a value between 60 and 360000.

  • :delete_vpc_config (Boolean)

    Deletes the VPC association for the specified fleet.

  • :description (String)

    The description to display.

  • :display_name (String)

    The fleet name to display.

  • :enable_default_internet_access (Boolean)

    Enables or disables default internet access for the fleet.

  • :domain_join_info (Types::DomainJoinInfo)

    The name of the directory and organizational unit (OU) to use to join the fleet to a Microsoft Active Directory domain.

  • :idle_disconnect_timeout_in_seconds (Integer)

    The amount of time that users can be idle (inactive) before they are disconnected from their streaming session and the DisconnectTimeoutInSeconds time interval begins. Users are notified before they are disconnected due to inactivity. If users try to reconnect to the streaming session before the time interval specified in DisconnectTimeoutInSeconds elapses, they are connected to their previous session. Users are considered idle when they stop providing keyboard or mouse input during their streaming session. File uploads and downloads, audio in, audio out, and pixels changing do not qualify as user activity. If users continue to be idle after the time interval in IdleDisconnectTimeoutInSeconds elapses, they are disconnected.

    To prevent users from being disconnected due to inactivity, specify a value of 0. Otherwise, specify a value between 60 and 3600. The default value is 0.

    If you enable this feature, we recommend that you specify a value that corresponds exactly to a whole number of minutes (for example, 60, 120, and 180). If you don't do this, the value is rounded to the nearest minute. For example, if you specify a value of 70, users are disconnected after 1 minute of inactivity. If you specify a value that is at the midpoint between two different minutes, the value is rounded up. For example, if you specify a value of 90, users are disconnected after 2 minutes of inactivity.

  • :attributes_to_delete (Array<String>)

    The fleet attributes to delete.

  • :iam_role_arn (String)

    The Amazon Resource Name (ARN) of the IAM role to apply to the fleet. To assume a role, a fleet instance calls the AWS Security Token Service (STS) AssumeRole API operation and passes the ARN of the role to use. The operation creates a new session with temporary credentials. AppStream 2.0 retrieves the temporary credentials and creates the appstream_machine_role credential profile on the instance.

    For more information, see Using an IAM Role to Grant Permissions to Applications and Scripts Running on AppStream 2.0 Streaming Instances in the Amazon AppStream 2.0 Administration Guide.

  • :stream_view (String)

    The AppStream 2.0 view that is displayed to your users when they stream from the fleet. When APP is specified, only the windows of applications opened by users display. When DESKTOP is specified, the standard desktop that is provided by the operating system displays.

    The default value is APP.

  • :platform (String)

    The platform of the fleet. WINDOWS_SERVER_2019 and AMAZON_LINUX2 are supported for Elastic fleets.

  • :max_concurrent_sessions (Integer)

    The maximum number of concurrent sessions for a fleet.

  • :usb_device_filter_strings (Array<String>)

    The USB device filter strings that specify which USB devices a user can redirect to the fleet streaming session, when using the Windows native client. This is allowed but not required for Elastic fleets.

  • :session_script_s3_location (Types::S3Location)

    The S3 location of the session scripts configuration zip file. This only applies to Elastic fleets.

  • :max_sessions_per_instance (Integer)

    The maximum number of user sessions on an instance. This only applies to multi-session fleets.

Returns:

See Also:



4936
4937
4938
4939
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4936

def update_fleet(params = {}, options = {})
  req = build_request(:update_fleet, params)
  req.send_request(options)
end

#update_image_permissions(params = {}) ⇒ Struct

Adds or updates permissions for the specified private image.

Examples:

Request syntax with placeholder values


resp = client.update_image_permissions({
  name: "Name", # required
  shared_account_id: "AwsAccountId", # required
  image_permissions: { # required
    allow_fleet: false,
    allow_image_builder: false,
  },
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :name (required, String)

    The name of the private image.

  • :shared_account_id (required, String)

    The 12-digit identifier of the AWS account for which you want add or update image permissions.

  • :image_permissions (required, Types::ImagePermissions)

    The permissions for the image.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



4970
4971
4972
4973
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 4970

def update_image_permissions(params = {}, options = {})
  req = build_request(:update_image_permissions, params)
  req.send_request(options)
end

#update_stack(params = {}) ⇒ Types::UpdateStackResult

Updates the specified fields for the specified stack.

Examples:

Request syntax with placeholder values


resp = client.update_stack({
  display_name: "DisplayName",
  description: "Description",
  name: "String", # required
  storage_connectors: [
    {
      connector_type: "HOMEFOLDERS", # required, accepts HOMEFOLDERS, GOOGLE_DRIVE, ONE_DRIVE
      resource_identifier: "ResourceIdentifier",
      domains: ["Domain"],
    },
  ],
  delete_storage_connectors: false,
  redirect_url: "RedirectURL",
  feedback_url: "FeedbackURL",
  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
  user_settings: [
    {
      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
      permission: "ENABLED", # required, accepts ENABLED, DISABLED
      maximum_length: 1,
    },
  ],
  application_settings: {
    enabled: false, # required
    settings_group: "SettingsGroup",
  },
  access_endpoints: [
    {
      endpoint_type: "STREAMING", # required, accepts STREAMING
      vpce_id: "String",
    },
  ],
  embed_host_domains: ["EmbedHostDomain"],
  streaming_experience_settings: {
    preferred_protocol: "TCP", # accepts TCP, UDP
  },
})

Response structure


resp.stack.arn #=> String
resp.stack.name #=> String
resp.stack.description #=> String
resp.stack.display_name #=> String
resp.stack.created_time #=> Time
resp.stack.storage_connectors #=> Array
resp.stack.storage_connectors[0].connector_type #=> String, one of "HOMEFOLDERS", "GOOGLE_DRIVE", "ONE_DRIVE"
resp.stack.storage_connectors[0].resource_identifier #=> String
resp.stack.storage_connectors[0].domains #=> Array
resp.stack.storage_connectors[0].domains[0] #=> String
resp.stack.redirect_url #=> String
resp.stack.feedback_url #=> String
resp.stack.stack_errors #=> Array
resp.stack.stack_errors[0].error_code #=> String, one of "STORAGE_CONNECTOR_ERROR", "INTERNAL_SERVICE_ERROR"
resp.stack.stack_errors[0].error_message #=> String
resp.stack. #=> Array
resp.stack.[0].action #=> String, one of "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"
resp.stack.[0].permission #=> String, one of "ENABLED", "DISABLED"
resp.stack.[0].maximum_length #=> Integer
resp.stack.application_settings.enabled #=> Boolean
resp.stack.application_settings.settings_group #=> String
resp.stack.application_settings.s3_bucket_name #=> String
resp.stack.access_endpoints #=> Array
resp.stack.access_endpoints[0].endpoint_type #=> String, one of "STREAMING"
resp.stack.access_endpoints[0].vpce_id #=> String
resp.stack.embed_host_domains #=> Array
resp.stack.embed_host_domains[0] #=> String
resp.stack.streaming_experience_settings.preferred_protocol #=> String, one of "TCP", "UDP"

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :display_name (String)

    The stack name to display.

  • :description (String)

    The description to display.

  • :name (required, String)

    The name of the stack.

  • :storage_connectors (Array<Types::StorageConnector>)

    The storage connectors to enable.

  • :delete_storage_connectors (Boolean)

    Deletes the storage connectors currently enabled for the stack.

  • :redirect_url (String)

    The URL that users are redirected to after their streaming session ends.

  • :feedback_url (String)

    The URL that users are redirected to after they choose the Send Feedback link. If no URL is specified, no Send Feedback link is displayed.

  • :attributes_to_delete (Array<String>)

    The stack attributes to delete.

  • :user_settings (Array<Types::UserSetting>)

    The actions that are enabled or disabled for users during their streaming sessions. By default, these actions are enabled.

  • :application_settings (Types::ApplicationSettings)

    The persistent application settings for users of a stack. When these settings are enabled, changes that users make to applications and Windows settings are automatically saved after each session and applied to the next session.

  • :access_endpoints (Array<Types::AccessEndpoint>)

    The list of interface VPC endpoint (interface endpoint) objects. Users of the stack can connect to AppStream 2.0 only through the specified endpoints.

  • :embed_host_domains (Array<String>)

    The domains where AppStream 2.0 streaming sessions can be embedded in an iframe. You must approve the domains that you want to host embedded AppStream 2.0 streaming sessions.

  • :streaming_experience_settings (Types::StreamingExperienceSettings)

    The streaming protocol you want your stack to prefer. This can be UDP or TCP. Currently, UDP is only supported in the Windows native client.

Returns:

See Also:



5107
5108
5109
5110
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 5107

def update_stack(params = {}, options = {})
  req = build_request(:update_stack, params)
  req.send_request(options)
end

#wait_until(waiter_name, params = {}, options = {}) {|w.waiter| ... } ⇒ Boolean

Polls an API operation until a resource enters a desired state.

Basic Usage

A waiter will call an API operation until:

  • It is successful
  • It enters a terminal state
  • It makes the maximum number of attempts

In between attempts, the waiter will sleep.

# polls in a loop, sleeping between attempts
client.wait_until(waiter_name, params)

Configuration

You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. You can pass configuration as the final arguments hash.

# poll for ~25 seconds
client.wait_until(waiter_name, params, {
  max_attempts: 5,
  delay: 5,
})

Callbacks

You can be notified before each polling attempt and before each delay. If you throw :success or :failure from these callbacks, it will terminate the waiter.

started_at = Time.now
client.wait_until(waiter_name, params, {

  # disable max attempts
  max_attempts: nil,

  # poll for 1 hour, instead of a number of attempts
  before_wait: -> (attempts, response) do
    throw :failure if Time.now - started_at > 3600
  end
})

Handling Errors

When a waiter is unsuccessful, it will raise an error. All of the failure errors extend from Waiters::Errors::WaiterFailed.

begin
  client.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
  # resource did not enter the desired state in time
end

Valid Waiters

The following table lists the valid waiter names, the operations they call, and the default :delay and :max_attempts values.

waiter_name params :delay :max_attempts
fleet_started #describe_fleets 30 40
fleet_stopped #describe_fleets 30 40

Parameters:

  • waiter_name (Symbol)
  • params (Hash) (defaults to: {})

    ({})

  • options (Hash) (defaults to: {})

    ({})

Options Hash (options):

  • :max_attempts (Integer)
  • :delay (Integer)
  • :before_attempt (Proc)
  • :before_wait (Proc)

Yields:

  • (w.waiter)

Returns:

  • (Boolean)

    Returns true if the waiter was successful.

Raises:

  • (Errors::FailureStateError)

    Raised when the waiter terminates because the waiter has entered a state that it will not transition out of, preventing success.

  • (Errors::TooManyAttemptsError)

    Raised when the configured maximum number of attempts have been made, and the waiter is not yet successful.

  • (Errors::UnexpectedError)

    Raised when an error is encounted while polling for a resource that is not expected.

  • (Errors::NoSuchWaiterError)

    Raised when you request to wait for an unknown state.



5218
5219
5220
5221
5222
# File 'gems/aws-sdk-appstream/lib/aws-sdk-appstream/client.rb', line 5218

def wait_until(waiter_name, params = {}, options = {})
  w = waiter(waiter_name, options)
  yield(w.waiter) if block_given? # deprecated
  w.wait(params)
end