Class: Aws::AppStream::Client

Inherits:
Seahorse::Client::Base
  • Object
show all
Includes:
ClientStubs
Defined in:
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](/sdk-for-ruby/v3/developer-guide/setup-config.html).

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

Class Attribute Summary collapse

API Operations collapse

Class Method Summary collapse

Instance Method Summary collapse

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`

    • The ‘:access_key_id`, `:secret_access_key`, and `:session_token` options.

    • ENV, ENV

    • ‘~/.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 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:

  • :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)

    The client endpoint is normally constructed from the ‘:region` option. You should only configure an `:endpoint` when connecting to test or custom endpoints. This should be a valid HTTP(S) URI.

  • :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 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/<sdk_ua_app_id>. 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_proxy (URI::HTTP, String)

    A proxy to send requests through. Formatted like ‘proxy.com:123’.

  • :http_open_timeout (Float) — default: 15

    The number of seconds to wait when opening a HTTP session before raising a ‘Timeout::Error`.

  • :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_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_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.

  • :ssl_timeout (Float) — default: nil

    Sets the SSL timeout in seconds.

  • :http_wire_trace (Boolean) — default: false

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

  • :ssl_verify_peer (Boolean) — default: true

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

  • :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.



395
396
397
# File 'lib/aws-sdk-appstream/client.rb', line 395

def initialize(*args)
  super
end

Class Attribute Details

.identifierObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



5224
5225
5226
# File 'lib/aws-sdk-appstream/client.rb', line 5224

def identifier
  @identifier
end

Class Method Details

.errors_moduleObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



5227
5228
5229
# File 'lib/aws-sdk-appstream/client.rb', line 5227

def errors_module
  Errors
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:



430
431
432
433
# File 'lib/aws-sdk-appstream/client.rb', line 430

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:



464
465
466
467
# File 'lib/aws-sdk-appstream/client.rb', line 464

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:



494
495
496
497
# File 'lib/aws-sdk-appstream/client.rb', line 494

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:



520
521
522
523
# File 'lib/aws-sdk-appstream/client.rb', line 520

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:



563
564
565
566
# File 'lib/aws-sdk-appstream/client.rb', line 563

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:



604
605
606
607
# File 'lib/aws-sdk-appstream/client.rb', line 604

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

#build_request(operation_name, params = {}) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

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


5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
# File 'lib/aws-sdk-appstream/client.rb', line 5087

def build_request(operation_name, params = {})
  handlers = @handlers.for(operation_name)
  context = Seahorse::Client::RequestContext.new(
    operation_name: operation_name,
    operation: config.api.operation(operation_name),
    client: self,
    params: params,
    config: config)
  context[:gem_name] = 'aws-sdk-appstream'
  context[:gem_version] = '1.82.0'
  Seahorse::Client::Request.new(handlers, context)
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:



650
651
652
653
# File 'lib/aws-sdk-appstream/client.rb', line 650

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:



759
760
761
762
# File 'lib/aws-sdk-appstream/client.rb', line 759

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*.

    [1]: docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html

  • :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*.

    [1]: docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html

  • :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:



903
904
905
906
# File 'lib/aws-sdk-appstream/client.rb', line 903

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:



938
939
940
941
# File 'lib/aws-sdk-appstream/client.rb', line 938

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, 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", "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:



1042
1043
1044
1045
# File 'lib/aws-sdk-appstream/client.rb', line 1042

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:



1109
1110
1111
1112
# File 'lib/aws-sdk-appstream/client.rb', line 1109

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:



1172
1173
1174
1175
# File 'lib/aws-sdk-appstream/client.rb', line 1172

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, 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", "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*.

    [1]: docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html

  • :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.

    <note markdown=“1”> 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.

    </note>
    
  • :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*.

    [1]: docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html

  • :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:



1517
1518
1519
1520
# File 'lib/aws-sdk-appstream/client.rb', line 1517

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", "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*.

    [1]: docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html

  • :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*.

    [1]: docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html

  • :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:



1741
1742
1743
1744
# File 'lib/aws-sdk-appstream/client.rb', line 1741

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:



1776
1777
1778
1779
# File 'lib/aws-sdk-appstream/client.rb', line 1776

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
    },
  ],
  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.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*.

    [1]: docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html

  • :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:



1927
1928
1929
1930
# File 'lib/aws-sdk-appstream/client.rb', line 1927

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*.

    [1]: docs.aws.amazon.com/appstream2/latest/developerguide/managing-stacks-fleets.html#managing-stacks-fleets-parameters

Returns:

See Also:



1989
1990
1991
1992
# File 'lib/aws-sdk-appstream/client.rb', line 1989

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*.

[1]: docs.aws.amazon.com/appstream2/latest/developerguide/administer-images.html

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", "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", "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*.

    [1]: docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html

  • :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:



2112
2113
2114
2115
# File 'lib/aws-sdk-appstream/client.rb', line 2112

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:



2134
2135
2136
2137
# File 'lib/aws-sdk-appstream/client.rb', line 2134

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.

    <note markdown=“1”> 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.

    </note>
    
  • :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.

    <note markdown=“1”> 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.

    </note>
    
  • :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:



2188
2189
2190
2191
# File 'lib/aws-sdk-appstream/client.rb', line 2188

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:



2210
2211
2212
2213
# File 'lib/aws-sdk-appstream/client.rb', line 2210

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:



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

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:



2257
2258
2259
2260
# File 'lib/aws-sdk-appstream/client.rb', line 2257

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:



2281
2282
2283
2284
# File 'lib/aws-sdk-appstream/client.rb', line 2281

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:



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

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:



2329
2330
2331
2332
# File 'lib/aws-sdk-appstream/client.rb', line 2329

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", "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", "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:



2399
2400
2401
2402
# File 'lib/aws-sdk-appstream/client.rb', line 2399

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", "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:



2455
2456
2457
2458
# File 'lib/aws-sdk-appstream/client.rb', line 2455

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:



2484
2485
2486
2487
# File 'lib/aws-sdk-appstream/client.rb', line 2484

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:



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

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:



2522
2523
2524
2525
# File 'lib/aws-sdk-appstream/client.rb', line 2522

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.

    <note markdown=“1”> Users’ email addresses are case-sensitive.

    </note>
    
  • :authentication_type (required, String)

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

Returns:

  • (Struct)

    Returns an empty response.

See Also:



2552
2553
2554
2555
# File 'lib/aws-sdk-appstream/client.rb', line 2552

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:



2600
2601
2602
2603
# File 'lib/aws-sdk-appstream/client.rb', line 2600

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:



2664
2665
2666
2667
# File 'lib/aws-sdk-appstream/client.rb', line 2664

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:



2725
2726
2727
2728
# File 'lib/aws-sdk-appstream/client.rb', line 2725

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:



2771
2772
2773
2774
# File 'lib/aws-sdk-appstream/client.rb', line 2771

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", "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:



2829
2830
2831
2832
# File 'lib/aws-sdk-appstream/client.rb', line 2829

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:



2884
2885
2886
2887
# File 'lib/aws-sdk-appstream/client.rb', line 2884

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:



2936
2937
2938
2939
# File 'lib/aws-sdk-appstream/client.rb', line 2936

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", "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:



3019
3020
3021
3022
# File 'lib/aws-sdk-appstream/client.rb', line 3019

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", "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:



3089
3090
3091
3092
# File 'lib/aws-sdk-appstream/client.rb', line 3089

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:



3142
3143
3144
3145
# File 'lib/aws-sdk-appstream/client.rb', line 3142

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", "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", "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:



3234
3235
3236
3237
# File 'lib/aws-sdk-appstream/client.rb', line 3234

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:



3309
3310
3311
3312
# File 'lib/aws-sdk-appstream/client.rb', line 3309

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].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:



3373
3374
3375
3376
# File 'lib/aws-sdk-appstream/client.rb', line 3373

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:



3415
3416
3417
3418
# File 'lib/aws-sdk-appstream/client.rb', line 3415

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.

    <note markdown=“1”> Users’ email addresses are case-sensitive.

    </note>
    
  • :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:



3477
3478
3479
3480
# File 'lib/aws-sdk-appstream/client.rb', line 3477

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:



3526
3527
3528
3529
# File 'lib/aws-sdk-appstream/client.rb', line 3526

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.

    <note markdown=“1”> Users’ email addresses are case-sensitive.

    </note>
    
  • :authentication_type (required, String)

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

Returns:

  • (Struct)

    Returns an empty response.

See Also:



3558
3559
3560
3561
# File 'lib/aws-sdk-appstream/client.rb', line 3558

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:



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

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:



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

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:



3641
3642
3643
3644
# File 'lib/aws-sdk-appstream/client.rb', line 3641

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:



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

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.

    <note markdown=“1”> 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.

    </note>
    
  • :authentication_type (required, String)

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

Returns:

  • (Struct)

    Returns an empty response.

See Also:



3702
3703
3704
3705
# File 'lib/aws-sdk-appstream/client.rb', line 3702

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:



3724
3725
3726
3727
# File 'lib/aws-sdk-appstream/client.rb', line 3724

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:



3761
3762
3763
3764
# File 'lib/aws-sdk-appstream/client.rb', line 3761

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:



3798
3799
3800
3801
# File 'lib/aws-sdk-appstream/client.rb', line 3798

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:



3842
3843
3844
3845
# File 'lib/aws-sdk-appstream/client.rb', line 3842

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*.

[1]: docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html

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:



3879
3880
3881
3882
# File 'lib/aws-sdk-appstream/client.rb', line 3879

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:



3936
3937
3938
3939
# File 'lib/aws-sdk-appstream/client.rb', line 3936

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:



3958
3959
3960
3961
# File 'lib/aws-sdk-appstream/client.rb', line 3958

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", "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:



4020
4021
4022
4023
# File 'lib/aws-sdk-appstream/client.rb', line 4020

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:



4073
4074
4075
4076
# File 'lib/aws-sdk-appstream/client.rb', line 4073

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:



4095
4096
4097
4098
# File 'lib/aws-sdk-appstream/client.rb', line 4095

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", "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:



4151
4152
4153
4154
# File 'lib/aws-sdk-appstream/client.rb', line 4151

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*.

[1]: docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html

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:



4203
4204
4205
4206
# File 'lib/aws-sdk-appstream/client.rb', line 4203

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*.

[1]: docs.aws.amazon.com/appstream2/latest/developerguide/tagging-basic.html

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:



4239
4240
4241
4242
# File 'lib/aws-sdk-appstream/client.rb', line 4239

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, 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*.

    [1]: docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html

  • :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:



4371
4372
4373
4374
# File 'lib/aws-sdk-appstream/client.rb', line 4371

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", "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:



4454
4455
4456
4457
# File 'lib/aws-sdk-appstream/client.rb', line 4454

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:



4520
4521
4522
4523
# File 'lib/aws-sdk-appstream/client.rb', line 4520

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:



4577
4578
4579
4580
# File 'lib/aws-sdk-appstream/client.rb', line 4577

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, 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", "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.

    <note markdown=“1”> 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.

    </note>
    
  • :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*.

    [1]: docs.aws.amazon.com/appstream2/latest/developerguide/using-iam-roles-to-grant-permissions-to-applications-scripts-streaming-instances.html

  • :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:



4909
4910
4911
4912
# File 'lib/aws-sdk-appstream/client.rb', line 4909

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:



4943
4944
4945
4946
# File 'lib/aws-sdk-appstream/client.rb', line 4943

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
    },
  ],
  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.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:



5078
5079
5080
5081
# File 'lib/aws-sdk-appstream/client.rb', line 5078

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.



5189
5190
5191
5192
5193
# File 'lib/aws-sdk-appstream/client.rb', line 5189

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

#waiter_namesObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Deprecated.


5197
5198
5199
# File 'lib/aws-sdk-appstream/client.rb', line 5197

def waiter_names
  waiters.keys
end