

*********
AppStream
*********

.. contents:: Table of Contents
   :depth: 2


======
Client
======



.. py:class:: AppStream.Client

  A low-level client representing Amazon AppStream::

    
    import boto3
    
    client = boto3.client('appstream')

  
  These are the available methods:
  
  *   :py:meth:`~AppStream.Client.associate_fleet`

  
  *   :py:meth:`~AppStream.Client.can_paginate`

  
  *   :py:meth:`~AppStream.Client.create_directory_config`

  
  *   :py:meth:`~AppStream.Client.create_fleet`

  
  *   :py:meth:`~AppStream.Client.create_stack`

  
  *   :py:meth:`~AppStream.Client.create_streaming_url`

  
  *   :py:meth:`~AppStream.Client.delete_directory_config`

  
  *   :py:meth:`~AppStream.Client.delete_fleet`

  
  *   :py:meth:`~AppStream.Client.delete_stack`

  
  *   :py:meth:`~AppStream.Client.describe_directory_configs`

  
  *   :py:meth:`~AppStream.Client.describe_fleets`

  
  *   :py:meth:`~AppStream.Client.describe_images`

  
  *   :py:meth:`~AppStream.Client.describe_sessions`

  
  *   :py:meth:`~AppStream.Client.describe_stacks`

  
  *   :py:meth:`~AppStream.Client.disassociate_fleet`

  
  *   :py:meth:`~AppStream.Client.expire_session`

  
  *   :py:meth:`~AppStream.Client.generate_presigned_url`

  
  *   :py:meth:`~AppStream.Client.get_paginator`

  
  *   :py:meth:`~AppStream.Client.get_waiter`

  
  *   :py:meth:`~AppStream.Client.list_associated_fleets`

  
  *   :py:meth:`~AppStream.Client.list_associated_stacks`

  
  *   :py:meth:`~AppStream.Client.start_fleet`

  
  *   :py:meth:`~AppStream.Client.stop_fleet`

  
  *   :py:meth:`~AppStream.Client.update_directory_config`

  
  *   :py:meth:`~AppStream.Client.update_fleet`

  
  *   :py:meth:`~AppStream.Client.update_stack`

  

  .. py:method:: associate_fleet(**kwargs)

    

    Associate a fleet to a stack.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/AssociateFleet>`_    


    **Request Syntax** 
    ::

      response = client.associate_fleet(
          FleetName='string',
          StackName='string'
      )
    :type FleetName: string
    :param FleetName: **[REQUIRED]** 

      The name of the fleet to associate.

      

    
    :type StackName: string
    :param StackName: **[REQUIRED]** 

      The name of the stack to which the fleet is associated.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {}
        
      **Response Structure** 

      

      - *(dict) --* 
    

  .. py:method:: can_paginate(operation_name)

        
    Check if an operation can be paginated.
    
    :type operation_name: string
    :param operation_name: The operation name.  This is the same name
        as the method name on the client.  For example, if the
        method name is ``create_foo``, and you'd normally invoke the
        operation as ``client.create_foo(**kwargs)``, if the
        ``create_foo`` operation can be paginated, you can use the
        call ``client.get_paginator("create_foo")``.
    
    :return: ``True`` if the operation can be paginated,
        ``False`` otherwise.


  .. py:method:: create_directory_config(**kwargs)

    

    Creates a directory configuration with the given parameters.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateDirectoryConfig>`_    


    **Request Syntax** 
    ::

      response = client.create_directory_config(
          DirectoryName='string',
          OrganizationalUnitDistinguishedNames=[
              'string',
          ],
          ServiceAccountCredentials={
              'AccountName': 'string',
              'AccountPassword': 'string'
          }
      )
    :type DirectoryName: string
    :param DirectoryName: **[REQUIRED]** 

      The fully qualified name of the directory, such as corp.example.com

      

    
    :type OrganizationalUnitDistinguishedNames: list
    :param OrganizationalUnitDistinguishedNames: **[REQUIRED]** 

      The list of the distinguished names of organizational units to place computer accounts in.

      

    
      - *(string) --* 

      
  
    :type ServiceAccountCredentials: dict
    :param ServiceAccountCredentials: **[REQUIRED]** 

      The *AccountName* and *AccountPassword* values for the service account, which are used by the streaming instance to connect to the directory.

      

    
      - **AccountName** *(string) --* **[REQUIRED]** 

        The user name of an account in the directory that is used by AppStream 2.0 streaming instances to connect to the directory. This account must have the following privileges: create computer objects, join computers to the domain, change/reset the password on descendant computer objects for the organizational units specified.

        

      
      - **AccountPassword** *(string) --* **[REQUIRED]** 

        The password for the user account for directory actions.

        

      
    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'DirectoryConfig': {
                'DirectoryName': 'string',
                'OrganizationalUnitDistinguishedNames': [
                    'string',
                ],
                'ServiceAccountCredentials': {
                    'AccountName': 'string',
                    'AccountPassword': 'string'
                },
                'CreatedTime': datetime(2015, 1, 1)
            }
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **DirectoryConfig** *(dict) --* 

          Directory configuration details.

          
          

          - **DirectoryName** *(string) --* 

            The fully qualified name of the directory, such as corp.example.com

            
          

          - **OrganizationalUnitDistinguishedNames** *(list) --* 

            The list of the distinguished names of organizational units in which to place computer accounts.

            
            

            - *(string) --* 
        
          

          - **ServiceAccountCredentials** *(dict) --* 

            The *AccountName* and *AccountPassword* of the service account, to be used by the streaming instance to connect to the directory.

            
            

            - **AccountName** *(string) --* 

              The user name of an account in the directory that is used by AppStream 2.0 streaming instances to connect to the directory. This account must have the following privileges: create computer objects, join computers to the domain, change/reset the password on descendant computer objects for the organizational units specified.

              
            

            - **AccountPassword** *(string) --* 

              The password for the user account for directory actions.

              
        
          

          - **CreatedTime** *(datetime) --* 

            The time stamp when the directory configuration was created within AppStream 2.0.

            
      
    

  .. py:method:: create_fleet(**kwargs)

    

    Creates a new fleet.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateFleet>`_    


    **Request Syntax** 
    ::

      response = client.create_fleet(
          Name='string',
          ImageName='string',
          InstanceType='string',
          ComputeCapacity={
              'DesiredInstances': 123
          },
          VpcConfig={
              'SubnetIds': [
                  'string',
              ],
              'SecurityGroupIds': [
                  'string',
              ]
          },
          MaxUserDurationInSeconds=123,
          DisconnectTimeoutInSeconds=123,
          Description='string',
          DisplayName='string',
          EnableDefaultInternetAccess=True|False,
          DomainJoinInfo={
              'DirectoryName': 'string',
              'OrganizationalUnitDistinguishedName': 'string'
          }
      )
    :type Name: string
    :param Name: **[REQUIRED]** 

      A unique identifier for the fleet.

      

    
    :type ImageName: string
    :param ImageName: **[REQUIRED]** 

      Unique name of the image used by the fleet.

      

    
    :type InstanceType: string
    :param InstanceType: **[REQUIRED]** 

      The instance type of compute resources for the fleet. Fleet instances are launched from this instance type. Available instance types are:

       

       
      * 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 
       

      

    
    :type ComputeCapacity: dict
    :param ComputeCapacity: **[REQUIRED]** 

      The parameters for the capacity allocated to the fleet.

      

    
      - **DesiredInstances** *(integer) --* **[REQUIRED]** 

        The desired number of streaming instances.

        

      
    
    :type VpcConfig: dict
    :param VpcConfig: 

      The VPC configuration for the fleet.

      

    
      - **SubnetIds** *(list) --* 

        The list of subnets to which a network interface is established from the fleet instance.

        

      
        - *(string) --* 

        
    
      - **SecurityGroupIds** *(list) --* 

        Security groups associated with the fleet.

        

      
        - *(string) --* 

        
    
    
    :type MaxUserDurationInSeconds: integer
    :param MaxUserDurationInSeconds: 

      The maximum time for which a streaming session can run. The input can be any numeric value in seconds between 600 and 57600.

      

    
    :type DisconnectTimeoutInSeconds: integer
    :param DisconnectTimeoutInSeconds: 

      The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600. 

      

    
    :type Description: string
    :param Description: 

      The description of the fleet.

      

    
    :type DisplayName: string
    :param DisplayName: 

      The display name of the fleet.

      

    
    :type EnableDefaultInternetAccess: boolean
    :param EnableDefaultInternetAccess: 

      Enables or disables default internet access for the fleet.

      

    
    :type DomainJoinInfo: dict
    :param DomainJoinInfo: 

      The *DirectoryName* and *OrganizationalUnitDistinguishedName* values, which are used to join domains for the AppStream 2.0 streaming instances.

      

    
      - **DirectoryName** *(string) --* 

        The fully qualified name of the directory, such as corp.example.com

        

      
      - **OrganizationalUnitDistinguishedName** *(string) --* 

        The distinguished name of the organizational unit to place the computer account in.

        

      
    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'Fleet': {
                'Arn': 'string',
                'Name': 'string',
                'DisplayName': 'string',
                'Description': 'string',
                'ImageName': 'string',
                'InstanceType': 'string',
                'ComputeCapacityStatus': {
                    'Desired': 123,
                    'Running': 123,
                    'InUse': 123,
                    'Available': 123
                },
                'MaxUserDurationInSeconds': 123,
                'DisconnectTimeoutInSeconds': 123,
                'State': 'STARTING'|'RUNNING'|'STOPPING'|'STOPPED',
                'VpcConfig': {
                    'SubnetIds': [
                        'string',
                    ],
                    'SecurityGroupIds': [
                        'string',
                    ]
                },
                'CreatedTime': datetime(2015, 1, 1),
                'FleetErrors': [
                    {
                        'ErrorCode': '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'|'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'|'IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION'|'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',
                        'ErrorMessage': 'string'
                    },
                ],
                'EnableDefaultInternetAccess': True|False,
                'DomainJoinInfo': {
                    'DirectoryName': 'string',
                    'OrganizationalUnitDistinguishedName': 'string'
                }
            }
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **Fleet** *(dict) --* 

          The details for the created fleet.

          
          

          - **Arn** *(string) --* 

            The ARN for the fleet.

            
          

          - **Name** *(string) --* 

            The name of the fleet.

            
          

          - **DisplayName** *(string) --* 

            The name displayed to end users on the AppStream 2.0 portal.

            
          

          - **Description** *(string) --* 

            The description displayed to end users on the AppStream 2.0 portal.

            
          

          - **ImageName** *(string) --* 

            The image used by the fleet.

            
          

          - **InstanceType** *(string) --* 

            The instance type of compute resources for the fleet. The fleet instances are launched from this instance type. 

            
          

          - **ComputeCapacityStatus** *(dict) --* 

            The capacity information for the fleet.

            
            

            - **Desired** *(integer) --* 

              The desired number of streaming instances.

              
            

            - **Running** *(integer) --* 

              The total number of simultaneous streaming instances that are running.

              
            

            - **InUse** *(integer) --* 

              The number of instances that are being used for streaming.

              
            

            - **Available** *(integer) --* 

              The number of currently available instances that can be used to stream sessions.

              
        
          

          - **MaxUserDurationInSeconds** *(integer) --* 

            The maximum time for which a streaming session can run. The value can be any numeric value in seconds between 600 and 57600.

            
          

          - **DisconnectTimeoutInSeconds** *(integer) --* 

            The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600.

            
          

          - **State** *(string) --* 

            The current state for the fleet.

            
          

          - **VpcConfig** *(dict) --* 

            The VPC configuration for the fleet.

            
            

            - **SubnetIds** *(list) --* 

              The list of subnets to which a network interface is established from the fleet instance.

              
              

              - *(string) --* 
          
            

            - **SecurityGroupIds** *(list) --* 

              Security groups associated with the fleet.

              
              

              - *(string) --* 
          
        
          

          - **CreatedTime** *(datetime) --* 

            The time at which the fleet was created.

            
          

          - **FleetErrors** *(list) --* 

            The list of fleet errors is appended to this list.

            
            

            - *(dict) --* 

              The details of the fleet error.

              
              

              - **ErrorCode** *(string) --* 

                The error code for the fleet error.

                
              

              - **ErrorMessage** *(string) --* 

                The error message generated when the fleet has errors.

                
          
        
          

          - **EnableDefaultInternetAccess** *(boolean) --* 

            Whether default internet access is enabled for the fleet. 

            
          

          - **DomainJoinInfo** *(dict) --* 

            The *DirectoryName* and *OrganizationalUnitDistinguishedName* values, which are used to join domains for the AppStream 2.0 streaming instances.

            
            

            - **DirectoryName** *(string) --* 

              The fully qualified name of the directory, such as corp.example.com

              
            

            - **OrganizationalUnitDistinguishedName** *(string) --* 

              The distinguished name of the organizational unit to place the computer account in.

              
        
      
    

  .. py:method:: create_stack(**kwargs)

    

    Create a new stack.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateStack>`_    


    **Request Syntax** 
    ::

      response = client.create_stack(
          Name='string',
          Description='string',
          DisplayName='string',
          StorageConnectors=[
              {
                  'ConnectorType': 'HOMEFOLDERS',
                  'ResourceIdentifier': 'string'
              },
          ]
      )
    :type Name: string
    :param Name: **[REQUIRED]** 

      The unique identifier for this stack.

      

    
    :type Description: string
    :param Description: 

      The description displayed to end users on the AppStream 2.0 portal.

      

    
    :type DisplayName: string
    :param DisplayName: 

      The name displayed to end users on the AppStream 2.0 portal.

      

    
    :type StorageConnectors: list
    :param StorageConnectors: 

      The storage connectors to be enabled for the stack.

      

    
      - *(dict) --* 

        Contains the parameters for a storage connector.

        

      
        - **ConnectorType** *(string) --* **[REQUIRED]** 

          The type of storage connector. The possible values include: HOMEFOLDERS.

          

        
        - **ResourceIdentifier** *(string) --* 

          The ARN associated with the storage connector.

          

        
      
  
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'Stack': {
                'Arn': 'string',
                'Name': 'string',
                'Description': 'string',
                'DisplayName': 'string',
                'CreatedTime': datetime(2015, 1, 1),
                'StorageConnectors': [
                    {
                        'ConnectorType': 'HOMEFOLDERS',
                        'ResourceIdentifier': 'string'
                    },
                ],
                'StackErrors': [
                    {
                        'ErrorCode': 'STORAGE_CONNECTOR_ERROR'|'INTERNAL_SERVICE_ERROR',
                        'ErrorMessage': 'string'
                    },
                ]
            }
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **Stack** *(dict) --* 

          The details for the created stack.

          
          

          - **Arn** *(string) --* 

            The ARN of the stack.

            
          

          - **Name** *(string) --* 

            The unique identifier of the stack.

            
          

          - **Description** *(string) --* 

            A meaningful description for the stack.

            
          

          - **DisplayName** *(string) --* 

            A display name for the stack.

            
          

          - **CreatedTime** *(datetime) --* 

            The time stamp when the stack was created.

            
          

          - **StorageConnectors** *(list) --* 

            The storage connectors to be enabled for the stack.

            
            

            - *(dict) --* 

              Contains the parameters for a storage connector.

              
              

              - **ConnectorType** *(string) --* 

                The type of storage connector. The possible values include: HOMEFOLDERS.

                
              

              - **ResourceIdentifier** *(string) --* 

                The ARN associated with the storage connector.

                
          
        
          

          - **StackErrors** *(list) --* 

            The list of errors associated with the stack.

            
            

            - *(dict) --* 

              Contains the parameters for a stack error.

              
              

              - **ErrorCode** *(string) --* 

                The error code of a stack error.

                
              

              - **ErrorMessage** *(string) --* 

                The error message of a stack error.

                
          
        
      
    

  .. py:method:: create_streaming_url(**kwargs)

    

    Creates a URL to start an AppStream 2.0 streaming session for a user. By default, the URL is valid only for 1 minute from the time that it is generated.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/CreateStreamingURL>`_    


    **Request Syntax** 
    ::

      response = client.create_streaming_url(
          StackName='string',
          FleetName='string',
          UserId='string',
          ApplicationId='string',
          Validity=123,
          SessionContext='string'
      )
    :type StackName: string
    :param StackName: **[REQUIRED]** 

      The stack for which the URL is generated.

      

    
    :type FleetName: string
    :param FleetName: **[REQUIRED]** 

      The fleet for which the URL is generated.

      

    
    :type UserId: string
    :param UserId: **[REQUIRED]** 

      A unique user ID for whom the URL is generated.

      

    
    :type ApplicationId: string
    :param ApplicationId: 

      The ID of the application that must be launched after the session starts.

      

    
    :type Validity: integer
    :param Validity: 

      The duration up to which the URL returned by this action is valid. The input can be any numeric value in seconds between 1 and 604800 seconds.

      

    
    :type SessionContext: string
    :param SessionContext: 

      The sessionContext of the streaming URL.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'StreamingURL': 'string',
            'Expires': datetime(2015, 1, 1)
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **StreamingURL** *(string) --* 

          The URL to start the AppStream 2.0 streaming session.

          
        

        - **Expires** *(datetime) --* 

          Elapsed seconds after the Unix epoch, when this URL expires.

          
    

  .. py:method:: delete_directory_config(**kwargs)

    

    Deletes the directory configuration with the given parameters.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteDirectoryConfig>`_    


    **Request Syntax** 
    ::

      response = client.delete_directory_config(
          DirectoryName='string'
      )
    :type DirectoryName: string
    :param DirectoryName: **[REQUIRED]** 

      The name of the directory configuration to be deleted.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {}
        
      **Response Structure** 

      

      - *(dict) --* 
    

  .. py:method:: delete_fleet(**kwargs)

    

    Deletes a fleet.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteFleet>`_    


    **Request Syntax** 
    ::

      response = client.delete_fleet(
          Name='string'
      )
    :type Name: string
    :param Name: **[REQUIRED]** 

      The name of the fleet to be deleted.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {}
        
      **Response Structure** 

      

      - *(dict) --* 
    

  .. py:method:: delete_stack(**kwargs)

    

    Deletes the stack. After this operation completes, the environment can no longer be activated, and any reservations made for the stack are released.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DeleteStack>`_    


    **Request Syntax** 
    ::

      response = client.delete_stack(
          Name='string'
      )
    :type Name: string
    :param Name: **[REQUIRED]** 

      The name of the stack to delete.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {}
        
      **Response Structure** 

      

      - *(dict) --* 
    

  .. py:method:: describe_directory_configs(**kwargs)

    

    Returns a list describing the specified directory configurations.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeDirectoryConfigs>`_    


    **Request Syntax** 
    ::

      response = client.describe_directory_configs(
          DirectoryNames=[
              'string',
          ],
          MaxResults=123,
          NextToken='string'
      )
    :type DirectoryNames: list
    :param DirectoryNames: 

      A specific list of directory names.

      

    
      - *(string) --* 

      
  
    :type MaxResults: integer
    :param MaxResults: 

      The size of each page of results.

      

    
    :type NextToken: string
    :param NextToken: 

      The DescribeDirectoryConfigsResult.NextToken from a previous call to DescribeDirectoryConfigs. If this is the first call, pass null.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'DirectoryConfigs': [
                {
                    'DirectoryName': 'string',
                    'OrganizationalUnitDistinguishedNames': [
                        'string',
                    ],
                    'ServiceAccountCredentials': {
                        'AccountName': 'string',
                        'AccountPassword': 'string'
                    },
                    'CreatedTime': datetime(2015, 1, 1)
                },
            ],
            'NextToken': 'string'
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **DirectoryConfigs** *(list) --* 

          The list of directory configurations.

          
          

          - *(dict) --* 

            Full directory configuration details, which are used to join domains for the AppStream 2.0 streaming instances.

            
            

            - **DirectoryName** *(string) --* 

              The fully qualified name of the directory, such as corp.example.com

              
            

            - **OrganizationalUnitDistinguishedNames** *(list) --* 

              The list of the distinguished names of organizational units in which to place computer accounts.

              
              

              - *(string) --* 
          
            

            - **ServiceAccountCredentials** *(dict) --* 

              The *AccountName* and *AccountPassword* of the service account, to be used by the streaming instance to connect to the directory.

              
              

              - **AccountName** *(string) --* 

                The user name of an account in the directory that is used by AppStream 2.0 streaming instances to connect to the directory. This account must have the following privileges: create computer objects, join computers to the domain, change/reset the password on descendant computer objects for the organizational units specified.

                
              

              - **AccountPassword** *(string) --* 

                The password for the user account for directory actions.

                
          
            

            - **CreatedTime** *(datetime) --* 

              The time stamp when the directory configuration was created within AppStream 2.0.

              
        
      
        

        - **NextToken** *(string) --* 

          If not null, more results are available. To retrieve the next set of items, pass this value for the NextToken parameter in a subsequent call to DescribeDirectoryConfigs.

          
    

  .. py:method:: describe_fleets(**kwargs)

    

    If fleet names are provided, this operation describes the specified fleets; otherwise, all the fleets in the account are described.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeFleets>`_    


    **Request Syntax** 
    ::

      response = client.describe_fleets(
          Names=[
              'string',
          ],
          NextToken='string'
      )
    :type Names: list
    :param Names: 

      The fleet names to describe. Use null to describe all the fleets for the AWS account.

      

    
      - *(string) --* 

      
  
    :type NextToken: string
    :param NextToken: 

      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.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'Fleets': [
                {
                    'Arn': 'string',
                    'Name': 'string',
                    'DisplayName': 'string',
                    'Description': 'string',
                    'ImageName': 'string',
                    'InstanceType': 'string',
                    'ComputeCapacityStatus': {
                        'Desired': 123,
                        'Running': 123,
                        'InUse': 123,
                        'Available': 123
                    },
                    'MaxUserDurationInSeconds': 123,
                    'DisconnectTimeoutInSeconds': 123,
                    'State': 'STARTING'|'RUNNING'|'STOPPING'|'STOPPED',
                    'VpcConfig': {
                        'SubnetIds': [
                            'string',
                        ],
                        'SecurityGroupIds': [
                            'string',
                        ]
                    },
                    'CreatedTime': datetime(2015, 1, 1),
                    'FleetErrors': [
                        {
                            'ErrorCode': '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'|'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'|'IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION'|'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',
                            'ErrorMessage': 'string'
                        },
                    ],
                    'EnableDefaultInternetAccess': True|False,
                    'DomainJoinInfo': {
                        'DirectoryName': 'string',
                        'OrganizationalUnitDistinguishedName': 'string'
                    }
                },
            ],
            'NextToken': 'string'
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **Fleets** *(list) --* 

          The list of fleet details.

          
          

          - *(dict) --* 

            Contains the parameters for a fleet.

            
            

            - **Arn** *(string) --* 

              The ARN for the fleet.

              
            

            - **Name** *(string) --* 

              The name of the fleet.

              
            

            - **DisplayName** *(string) --* 

              The name displayed to end users on the AppStream 2.0 portal.

              
            

            - **Description** *(string) --* 

              The description displayed to end users on the AppStream 2.0 portal.

              
            

            - **ImageName** *(string) --* 

              The image used by the fleet.

              
            

            - **InstanceType** *(string) --* 

              The instance type of compute resources for the fleet. The fleet instances are launched from this instance type. 

              
            

            - **ComputeCapacityStatus** *(dict) --* 

              The capacity information for the fleet.

              
              

              - **Desired** *(integer) --* 

                The desired number of streaming instances.

                
              

              - **Running** *(integer) --* 

                The total number of simultaneous streaming instances that are running.

                
              

              - **InUse** *(integer) --* 

                The number of instances that are being used for streaming.

                
              

              - **Available** *(integer) --* 

                The number of currently available instances that can be used to stream sessions.

                
          
            

            - **MaxUserDurationInSeconds** *(integer) --* 

              The maximum time for which a streaming session can run. The value can be any numeric value in seconds between 600 and 57600.

              
            

            - **DisconnectTimeoutInSeconds** *(integer) --* 

              The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600.

              
            

            - **State** *(string) --* 

              The current state for the fleet.

              
            

            - **VpcConfig** *(dict) --* 

              The VPC configuration for the fleet.

              
              

              - **SubnetIds** *(list) --* 

                The list of subnets to which a network interface is established from the fleet instance.

                
                

                - *(string) --* 
            
              

              - **SecurityGroupIds** *(list) --* 

                Security groups associated with the fleet.

                
                

                - *(string) --* 
            
          
            

            - **CreatedTime** *(datetime) --* 

              The time at which the fleet was created.

              
            

            - **FleetErrors** *(list) --* 

              The list of fleet errors is appended to this list.

              
              

              - *(dict) --* 

                The details of the fleet error.

                
                

                - **ErrorCode** *(string) --* 

                  The error code for the fleet error.

                  
                

                - **ErrorMessage** *(string) --* 

                  The error message generated when the fleet has errors.

                  
            
          
            

            - **EnableDefaultInternetAccess** *(boolean) --* 

              Whether default internet access is enabled for the fleet. 

              
            

            - **DomainJoinInfo** *(dict) --* 

              The *DirectoryName* and *OrganizationalUnitDistinguishedName* values, which are used to join domains for the AppStream 2.0 streaming instances.

              
              

              - **DirectoryName** *(string) --* 

                The fully qualified name of the directory, such as corp.example.com

                
              

              - **OrganizationalUnitDistinguishedName** *(string) --* 

                The distinguished name of the organizational unit to place the computer account in.

                
          
        
      
        

        - **NextToken** *(string) --* 

          The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

          
    

  .. py:method:: describe_images(**kwargs)

    

    Describes the images. If a list of names is not provided, all images in your account are returned. This operation does not return a paginated result.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeImages>`_    


    **Request Syntax** 
    ::

      response = client.describe_images(
          Names=[
              'string',
          ]
      )
    :type Names: list
    :param Names: 

      A specific list of images to describe.

      

    
      - *(string) --* 

      
  
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'Images': [
                {
                    'Name': 'string',
                    'Arn': 'string',
                    'BaseImageArn': 'string',
                    'DisplayName': 'string',
                    'State': 'PENDING'|'AVAILABLE'|'FAILED'|'DELETING',
                    'Visibility': 'PUBLIC'|'PRIVATE',
                    'ImageBuilderSupported': True|False,
                    'Platform': 'WINDOWS',
                    'Description': 'string',
                    'StateChangeReason': {
                        'Code': 'INTERNAL_ERROR'|'IMAGE_BUILDER_NOT_AVAILABLE',
                        'Message': 'string'
                    },
                    'Applications': [
                        {
                            'Name': 'string',
                            'DisplayName': 'string',
                            'IconURL': 'string',
                            'LaunchPath': 'string',
                            'LaunchParameters': 'string',
                            'Enabled': True|False,
                            'Metadata': {
                                'string': 'string'
                            }
                        },
                    ],
                    'CreatedTime': datetime(2015, 1, 1),
                    'PublicBaseImageReleasedDate': datetime(2015, 1, 1)
                },
            ]
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **Images** *(list) --* 

          The list of images.

          
          

          - *(dict) --* 

            New streaming instances are booted from images. The image stores the application catalog and is connected to fleets.

            
            

            - **Name** *(string) --* 

              The unique identifier for the image.

              
            

            - **Arn** *(string) --* 

              The ARN for the image.

              
            

            - **BaseImageArn** *(string) --* 

              The source image ARN from which this image was created.

              
            

            - **DisplayName** *(string) --* 

              The display name for the image.

              
            

            - **State** *(string) --* 

              The image starts in the **PENDING** state. If image creation succeeds, it moves to **AVAILABLE** . If image creation fails, it moves to **FAILED** .

              
            

            - **Visibility** *(string) --* 

              The visibility of an image to the user; images can be public or private.

              
            

            - **ImageBuilderSupported** *(boolean) --* 

              Whether an image builder can be launched from this image.

              
            

            - **Platform** *(string) --* 

              The operating system platform of the image.

              
            

            - **Description** *(string) --* 

              A meaningful description for the image.

              
            

            - **StateChangeReason** *(dict) --* 

              The reason why the last state change occurred.

              
              

              - **Code** *(string) --* 

                The state change reason code of the image.

                
              

              - **Message** *(string) --* 

                The state change reason message to the end user.

                
          
            

            - **Applications** *(list) --* 

              The applications associated with an image.

              
              

              - *(dict) --* 

                An entry for a single application in the application catalog.

                
                

                - **Name** *(string) --* 

                  The unique identifier for the application.

                  
                

                - **DisplayName** *(string) --* 

                  The name of the application shown to the end users.

                  
                

                - **IconURL** *(string) --* 

                  The URL for the application icon. This URL may be time-limited.

                  
                

                - **LaunchPath** *(string) --* 

                  The path to the application executable in the instance.

                  
                

                - **LaunchParameters** *(string) --* 

                  A list of arguments that are passed to the application at launch.

                  
                

                - **Enabled** *(boolean) --* 

                  If there is a problem, an application can be disabled after image creation.

                  
                

                - **Metadata** *(dict) --* 

                  Additional attributes that describe the application.

                  
                  

                  - *(string) --* 
                    

                    - *(string) --* 
              
            
            
          
            

            - **CreatedTime** *(datetime) --* 

              The time stamp when the image was created.

              
            

            - **PublicBaseImageReleasedDate** *(datetime) --* 

              The AWS release date of the public base image. For private images, this date is the release date of the base image from which the image was created.

              
        
      
    

  .. py:method:: describe_sessions(**kwargs)

    

    Describes the streaming sessions for a stack and a fleet. If a user ID is provided, this operation returns streaming sessions for only that user. To retrieve the next set of items, pass this value for the ``nextToken`` parameter in a subsequent call to this operation. If an authentication type is not provided, the operation defaults to users authenticated using a streaming URL.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeSessions>`_    


    **Request Syntax** 
    ::

      response = client.describe_sessions(
          StackName='string',
          FleetName='string',
          UserId='string',
          NextToken='string',
          Limit=123,
          AuthenticationType='API'|'SAML'|'USERPOOL'
      )
    :type StackName: string
    :param StackName: **[REQUIRED]** 

      The name of the stack for which to list sessions.

      

    
    :type FleetName: string
    :param FleetName: **[REQUIRED]** 

      The name of the fleet for which to list sessions.

      

    
    :type UserId: string
    :param UserId: 

      The user for whom to list sessions. Use null to describe all the sessions for the stack and fleet.

      

    
    :type NextToken: string
    :param NextToken: 

      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.

      

    
    :type Limit: integer
    :param Limit: 

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

      

    
    :type AuthenticationType: string
    :param AuthenticationType: 

      The authentication method of the user. It can be ``API`` for a user authenticated using a streaming URL, or ``SAML`` for a SAML federated user. If an authentication type is not provided, the operation defaults to users authenticated using a streaming URL.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'Sessions': [
                {
                    'Id': 'string',
                    'UserId': 'string',
                    'StackName': 'string',
                    'FleetName': 'string',
                    'State': 'ACTIVE'|'PENDING'|'EXPIRED',
                    'AuthenticationType': 'API'|'SAML'|'USERPOOL'
                },
            ],
            'NextToken': 'string'
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **Sessions** *(list) --* 

          The list of streaming sessions.

          
          

          - *(dict) --* 

            Contains the parameters for a streaming session.

            
            

            - **Id** *(string) --* 

              The unique ID for a streaming session.

              
            

            - **UserId** *(string) --* 

              The identifier of the user for whom the session was created.

              
            

            - **StackName** *(string) --* 

              The name of the stack for which the streaming session was created.

              
            

            - **FleetName** *(string) --* 

              The name of the fleet for which the streaming session was created.

              
            

            - **State** *(string) --* 

              The current state of the streaming session.

              
            

            - **AuthenticationType** *(string) --* 

              The authentication method of the user for whom the session was created. It can be ``API`` for a user authenticated using a streaming URL or ``SAML`` for a SAML federated user.

              
        
      
        

        - **NextToken** *(string) --* 

          The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

          
    

  .. py:method:: describe_stacks(**kwargs)

    

    If stack names are not provided, this operation describes the specified stacks; otherwise, all stacks in the account are described. To retrieve the next set of items, pass the ``nextToken`` value in a subsequent call to this operation.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DescribeStacks>`_    


    **Request Syntax** 
    ::

      response = client.describe_stacks(
          Names=[
              'string',
          ],
          NextToken='string'
      )
    :type Names: list
    :param Names: 

      The stack names to describe. Use null to describe all the stacks for the AWS account.

      

    
      - *(string) --* 

      
  
    :type NextToken: string
    :param NextToken: 

      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.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'Stacks': [
                {
                    'Arn': 'string',
                    'Name': 'string',
                    'Description': 'string',
                    'DisplayName': 'string',
                    'CreatedTime': datetime(2015, 1, 1),
                    'StorageConnectors': [
                        {
                            'ConnectorType': 'HOMEFOLDERS',
                            'ResourceIdentifier': 'string'
                        },
                    ],
                    'StackErrors': [
                        {
                            'ErrorCode': 'STORAGE_CONNECTOR_ERROR'|'INTERNAL_SERVICE_ERROR',
                            'ErrorMessage': 'string'
                        },
                    ]
                },
            ],
            'NextToken': 'string'
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **Stacks** *(list) --* 

          The list of stack details.

          
          

          - *(dict) --* 

            Details about a stack.

            
            

            - **Arn** *(string) --* 

              The ARN of the stack.

              
            

            - **Name** *(string) --* 

              The unique identifier of the stack.

              
            

            - **Description** *(string) --* 

              A meaningful description for the stack.

              
            

            - **DisplayName** *(string) --* 

              A display name for the stack.

              
            

            - **CreatedTime** *(datetime) --* 

              The time stamp when the stack was created.

              
            

            - **StorageConnectors** *(list) --* 

              The storage connectors to be enabled for the stack.

              
              

              - *(dict) --* 

                Contains the parameters for a storage connector.

                
                

                - **ConnectorType** *(string) --* 

                  The type of storage connector. The possible values include: HOMEFOLDERS.

                  
                

                - **ResourceIdentifier** *(string) --* 

                  The ARN associated with the storage connector.

                  
            
          
            

            - **StackErrors** *(list) --* 

              The list of errors associated with the stack.

              
              

              - *(dict) --* 

                Contains the parameters for a stack error.

                
                

                - **ErrorCode** *(string) --* 

                  The error code of a stack error.

                  
                

                - **ErrorMessage** *(string) --* 

                  The error message of a stack error.

                  
            
          
        
      
        

        - **NextToken** *(string) --* 

          The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

          
    

  .. py:method:: disassociate_fleet(**kwargs)

    

    Disassociates a fleet from a stack.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/DisassociateFleet>`_    


    **Request Syntax** 
    ::

      response = client.disassociate_fleet(
          FleetName='string',
          StackName='string'
      )
    :type FleetName: string
    :param FleetName: **[REQUIRED]** 

      The name of the fleet to disassociate.

      

    
    :type StackName: string
    :param StackName: **[REQUIRED]** 

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

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {}
        
      **Response Structure** 

      

      - *(dict) --* 
    

  .. py:method:: expire_session(**kwargs)

    

    This operation immediately stops a streaming session.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ExpireSession>`_    


    **Request Syntax** 
    ::

      response = client.expire_session(
          SessionId='string'
      )
    :type SessionId: string
    :param SessionId: **[REQUIRED]** 

      The unique identifier of the streaming session to be stopped.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {}
        
      **Response Structure** 

      

      - *(dict) --* 
    

  .. py:method:: generate_presigned_url(ClientMethod, Params=None, ExpiresIn=3600, HttpMethod=None)

        
    Generate a presigned url given a client, its method, and arguments
    
    :type ClientMethod: string
    :param ClientMethod: The client method to presign for
    
    :type Params: dict
    :param Params: The parameters normally passed to
        ``ClientMethod``.
    
    :type ExpiresIn: int
    :param ExpiresIn: The number of seconds the presigned url is valid
        for. By default it expires in an hour (3600 seconds)
    
    :type HttpMethod: string
    :param HttpMethod: The http method to use on the generated url. By
        default, the http method is whatever is used in the method's model.
    
    :returns: The presigned url


  .. py:method:: get_paginator(operation_name)

        
    Create a paginator for an operation.
    
    :type operation_name: string
    :param operation_name: The operation name.  This is the same name
        as the method name on the client.  For example, if the
        method name is ``create_foo``, and you'd normally invoke the
        operation as ``client.create_foo(**kwargs)``, if the
        ``create_foo`` operation can be paginated, you can use the
        call ``client.get_paginator("create_foo")``.
    
    :raise OperationNotPageableError: Raised if the operation is not
        pageable.  You can use the ``client.can_paginate`` method to
        check if an operation is pageable.
    
    :rtype: L{botocore.paginate.Paginator}
    :return: A paginator object.


  .. py:method:: get_waiter(waiter_name)

        


  .. py:method:: list_associated_fleets(**kwargs)

    

    Lists all fleets associated with the stack.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListAssociatedFleets>`_    


    **Request Syntax** 
    ::

      response = client.list_associated_fleets(
          StackName='string',
          NextToken='string'
      )
    :type StackName: string
    :param StackName: **[REQUIRED]** 

      The name of the stack whose associated fleets are listed.

      

    
    :type NextToken: string
    :param NextToken: 

      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.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'Names': [
                'string',
            ],
            'NextToken': 'string'
        }
      **Response Structure** 

      

      - *(dict) --* 

        The response from a successful operation.

        
        

        - **Names** *(list) --* 

          The names of associated fleets.

          
          

          - *(string) --* 
      
        

        - **NextToken** *(string) --* 

          The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

          
    

  .. py:method:: list_associated_stacks(**kwargs)

    

    Lists all stacks to which the specified fleet is associated.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/ListAssociatedStacks>`_    


    **Request Syntax** 
    ::

      response = client.list_associated_stacks(
          FleetName='string',
          NextToken='string'
      )
    :type FleetName: string
    :param FleetName: **[REQUIRED]** 

      The name of the fleet whose associated stacks are listed.

      

    
    :type NextToken: string
    :param NextToken: 

      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.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'Names': [
                'string',
            ],
            'NextToken': 'string'
        }
      **Response Structure** 

      

      - *(dict) --* 

        The response from a successful operation.

        
        

        - **Names** *(list) --* 

          The names of associated stacks.

          
          

          - *(string) --* 
      
        

        - **NextToken** *(string) --* 

          The pagination token to use to retrieve the next page of results for this operation. If there are no more pages, this value is null.

          
    

  .. py:method:: start_fleet(**kwargs)

    

    Starts a fleet.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StartFleet>`_    


    **Request Syntax** 
    ::

      response = client.start_fleet(
          Name='string'
      )
    :type Name: string
    :param Name: **[REQUIRED]** 

      The name of the fleet to start.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {}
        
      **Response Structure** 

      

      - *(dict) --* 
    

  .. py:method:: stop_fleet(**kwargs)

    

    Stops a fleet.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/StopFleet>`_    


    **Request Syntax** 
    ::

      response = client.stop_fleet(
          Name='string'
      )
    :type Name: string
    :param Name: **[REQUIRED]** 

      The name of the fleet to stop.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {}
        
      **Response Structure** 

      

      - *(dict) --* 
    

  .. py:method:: update_directory_config(**kwargs)

    

    Updates the directory configuration with the given parameters.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateDirectoryConfig>`_    


    **Request Syntax** 
    ::

      response = client.update_directory_config(
          DirectoryName='string',
          OrganizationalUnitDistinguishedNames=[
              'string',
          ],
          ServiceAccountCredentials={
              'AccountName': 'string',
              'AccountPassword': 'string'
          }
      )
    :type DirectoryName: string
    :param DirectoryName: **[REQUIRED]** 

      The name of the existing directory configuration to be updated.

      

    
    :type OrganizationalUnitDistinguishedNames: list
    :param OrganizationalUnitDistinguishedNames: 

      The list of the distinguished names of organizational units to place computer accounts in.

      

    
      - *(string) --* 

      
  
    :type ServiceAccountCredentials: dict
    :param ServiceAccountCredentials: 

      The *AccountName* and *AccountPassword* values for the service account, which are used by the streaming instance to connect to the directory

      

    
      - **AccountName** *(string) --* **[REQUIRED]** 

        The user name of an account in the directory that is used by AppStream 2.0 streaming instances to connect to the directory. This account must have the following privileges: create computer objects, join computers to the domain, change/reset the password on descendant computer objects for the organizational units specified.

        

      
      - **AccountPassword** *(string) --* **[REQUIRED]** 

        The password for the user account for directory actions.

        

      
    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'DirectoryConfig': {
                'DirectoryName': 'string',
                'OrganizationalUnitDistinguishedNames': [
                    'string',
                ],
                'ServiceAccountCredentials': {
                    'AccountName': 'string',
                    'AccountPassword': 'string'
                },
                'CreatedTime': datetime(2015, 1, 1)
            }
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **DirectoryConfig** *(dict) --* 

          The updated directory configuration details.

          
          

          - **DirectoryName** *(string) --* 

            The fully qualified name of the directory, such as corp.example.com

            
          

          - **OrganizationalUnitDistinguishedNames** *(list) --* 

            The list of the distinguished names of organizational units in which to place computer accounts.

            
            

            - *(string) --* 
        
          

          - **ServiceAccountCredentials** *(dict) --* 

            The *AccountName* and *AccountPassword* of the service account, to be used by the streaming instance to connect to the directory.

            
            

            - **AccountName** *(string) --* 

              The user name of an account in the directory that is used by AppStream 2.0 streaming instances to connect to the directory. This account must have the following privileges: create computer objects, join computers to the domain, change/reset the password on descendant computer objects for the organizational units specified.

              
            

            - **AccountPassword** *(string) --* 

              The password for the user account for directory actions.

              
        
          

          - **CreatedTime** *(datetime) --* 

            The time stamp when the directory configuration was created within AppStream 2.0.

            
      
    

  .. py:method:: update_fleet(**kwargs)

    

    Updates an existing fleet. All the attributes except the fleet name can be updated in the **STOPPED** state. When a fleet is in the **RUNNING** state, only ``DisplayName`` and ``ComputeCapacity`` can be updated. A fleet cannot be updated in a status of **STARTING** or **STOPPING** .

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateFleet>`_    


    **Request Syntax** 
    ::

      response = client.update_fleet(
          ImageName='string',
          Name='string',
          InstanceType='string',
          ComputeCapacity={
              'DesiredInstances': 123
          },
          VpcConfig={
              'SubnetIds': [
                  'string',
              ],
              'SecurityGroupIds': [
                  'string',
              ]
          },
          MaxUserDurationInSeconds=123,
          DisconnectTimeoutInSeconds=123,
          DeleteVpcConfig=True|False,
          Description='string',
          DisplayName='string',
          EnableDefaultInternetAccess=True|False,
          DomainJoinInfo={
              'DirectoryName': 'string',
              'OrganizationalUnitDistinguishedName': 'string'
          },
          AttributesToDelete=[
              'VPC_CONFIGURATION'|'VPC_CONFIGURATION_SECURITY_GROUP_IDS'|'DOMAIN_JOIN_INFO',
          ]
      )
    :type ImageName: string
    :param ImageName: 

      The image name from which a fleet is created.

      

    
    :type Name: string
    :param Name: **[REQUIRED]** 

      The name of the fleet.

      

    
    :type InstanceType: string
    :param InstanceType: 

      The instance type of compute resources for the fleet. Fleet instances are launched from this instance type. Available instance types are:

       

       
      * 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 
       

      

    
    :type ComputeCapacity: dict
    :param ComputeCapacity: 

      The parameters for the capacity allocated to the fleet. 

      

    
      - **DesiredInstances** *(integer) --* **[REQUIRED]** 

        The desired number of streaming instances.

        

      
    
    :type VpcConfig: dict
    :param VpcConfig: 

      The VPC configuration for the fleet.

      

    
      - **SubnetIds** *(list) --* 

        The list of subnets to which a network interface is established from the fleet instance.

        

      
        - *(string) --* 

        
    
      - **SecurityGroupIds** *(list) --* 

        Security groups associated with the fleet.

        

      
        - *(string) --* 

        
    
    
    :type MaxUserDurationInSeconds: integer
    :param MaxUserDurationInSeconds: 

      The maximum time for which a streaming session can run. The input can be any numeric value in seconds between 600 and 57600.

      

    
    :type DisconnectTimeoutInSeconds: integer
    :param DisconnectTimeoutInSeconds: 

      The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600.

      

    
    :type DeleteVpcConfig: boolean
    :param DeleteVpcConfig: 

      Delete the VPC association for the specified fleet.

      

    
    :type Description: string
    :param Description: 

      The description displayed to end users on the AppStream 2.0 portal.

      

    
    :type DisplayName: string
    :param DisplayName: 

      The name displayed to end users on the AppStream 2.0 portal.

      

    
    :type EnableDefaultInternetAccess: boolean
    :param EnableDefaultInternetAccess: 

      Enables or disables default internet access for the fleet.

      

    
    :type DomainJoinInfo: dict
    :param DomainJoinInfo: 

      The *DirectoryName* and *OrganizationalUnitDistinguishedName* values, which are used to join domains for the AppStream 2.0 streaming instances.

      

    
      - **DirectoryName** *(string) --* 

        The fully qualified name of the directory, such as corp.example.com

        

      
      - **OrganizationalUnitDistinguishedName** *(string) --* 

        The distinguished name of the organizational unit to place the computer account in.

        

      
    
    :type AttributesToDelete: list
    :param AttributesToDelete: 

      Fleet attributes to be deleted.

      

    
      - *(string) --* 

        Fleet attribute.

        

      
  
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'Fleet': {
                'Arn': 'string',
                'Name': 'string',
                'DisplayName': 'string',
                'Description': 'string',
                'ImageName': 'string',
                'InstanceType': 'string',
                'ComputeCapacityStatus': {
                    'Desired': 123,
                    'Running': 123,
                    'InUse': 123,
                    'Available': 123
                },
                'MaxUserDurationInSeconds': 123,
                'DisconnectTimeoutInSeconds': 123,
                'State': 'STARTING'|'RUNNING'|'STOPPING'|'STOPPED',
                'VpcConfig': {
                    'SubnetIds': [
                        'string',
                    ],
                    'SecurityGroupIds': [
                        'string',
                    ]
                },
                'CreatedTime': datetime(2015, 1, 1),
                'FleetErrors': [
                    {
                        'ErrorCode': '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'|'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'|'IAM_SERVICE_ROLE_MISSING_DESCRIBE_SECURITY_GROUPS_ACTION'|'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',
                        'ErrorMessage': 'string'
                    },
                ],
                'EnableDefaultInternetAccess': True|False,
                'DomainJoinInfo': {
                    'DirectoryName': 'string',
                    'OrganizationalUnitDistinguishedName': 'string'
                }
            }
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **Fleet** *(dict) --* 

          A list of fleet details.

          
          

          - **Arn** *(string) --* 

            The ARN for the fleet.

            
          

          - **Name** *(string) --* 

            The name of the fleet.

            
          

          - **DisplayName** *(string) --* 

            The name displayed to end users on the AppStream 2.0 portal.

            
          

          - **Description** *(string) --* 

            The description displayed to end users on the AppStream 2.0 portal.

            
          

          - **ImageName** *(string) --* 

            The image used by the fleet.

            
          

          - **InstanceType** *(string) --* 

            The instance type of compute resources for the fleet. The fleet instances are launched from this instance type. 

            
          

          - **ComputeCapacityStatus** *(dict) --* 

            The capacity information for the fleet.

            
            

            - **Desired** *(integer) --* 

              The desired number of streaming instances.

              
            

            - **Running** *(integer) --* 

              The total number of simultaneous streaming instances that are running.

              
            

            - **InUse** *(integer) --* 

              The number of instances that are being used for streaming.

              
            

            - **Available** *(integer) --* 

              The number of currently available instances that can be used to stream sessions.

              
        
          

          - **MaxUserDurationInSeconds** *(integer) --* 

            The maximum time for which a streaming session can run. The value can be any numeric value in seconds between 600 and 57600.

            
          

          - **DisconnectTimeoutInSeconds** *(integer) --* 

            The time after disconnection when a session is considered to have ended. If a user who got disconnected reconnects within this timeout interval, the user is connected back to their previous session. The input can be any numeric value in seconds between 60 and 57600.

            
          

          - **State** *(string) --* 

            The current state for the fleet.

            
          

          - **VpcConfig** *(dict) --* 

            The VPC configuration for the fleet.

            
            

            - **SubnetIds** *(list) --* 

              The list of subnets to which a network interface is established from the fleet instance.

              
              

              - *(string) --* 
          
            

            - **SecurityGroupIds** *(list) --* 

              Security groups associated with the fleet.

              
              

              - *(string) --* 
          
        
          

          - **CreatedTime** *(datetime) --* 

            The time at which the fleet was created.

            
          

          - **FleetErrors** *(list) --* 

            The list of fleet errors is appended to this list.

            
            

            - *(dict) --* 

              The details of the fleet error.

              
              

              - **ErrorCode** *(string) --* 

                The error code for the fleet error.

                
              

              - **ErrorMessage** *(string) --* 

                The error message generated when the fleet has errors.

                
          
        
          

          - **EnableDefaultInternetAccess** *(boolean) --* 

            Whether default internet access is enabled for the fleet. 

            
          

          - **DomainJoinInfo** *(dict) --* 

            The *DirectoryName* and *OrganizationalUnitDistinguishedName* values, which are used to join domains for the AppStream 2.0 streaming instances.

            
            

            - **DirectoryName** *(string) --* 

              The fully qualified name of the directory, such as corp.example.com

              
            

            - **OrganizationalUnitDistinguishedName** *(string) --* 

              The distinguished name of the organizational unit to place the computer account in.

              
        
      
    

  .. py:method:: update_stack(**kwargs)

    

    Updates the specified fields in the stack with the specified name.

    

    See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/appstream-2016-12-01/UpdateStack>`_    


    **Request Syntax** 
    ::

      response = client.update_stack(
          DisplayName='string',
          Description='string',
          Name='string',
          StorageConnectors=[
              {
                  'ConnectorType': 'HOMEFOLDERS',
                  'ResourceIdentifier': 'string'
              },
          ],
          DeleteStorageConnectors=True|False
      )
    :type DisplayName: string
    :param DisplayName: 

      The name displayed to end users on the AppStream 2.0 portal.

      

    
    :type Description: string
    :param Description: 

      The description displayed to end users on the AppStream 2.0 portal.

      

    
    :type Name: string
    :param Name: **[REQUIRED]** 

      The name of the stack to update.

      

    
    :type StorageConnectors: list
    :param StorageConnectors: 

      The storage connectors to be enabled for the stack.

      

    
      - *(dict) --* 

        Contains the parameters for a storage connector.

        

      
        - **ConnectorType** *(string) --* **[REQUIRED]** 

          The type of storage connector. The possible values include: HOMEFOLDERS.

          

        
        - **ResourceIdentifier** *(string) --* 

          The ARN associated with the storage connector.

          

        
      
  
    :type DeleteStorageConnectors: boolean
    :param DeleteStorageConnectors: 

      Remove all the storage connectors currently enabled for the stack.

      

    
    
    :rtype: dict
    :returns: 
      
      **Response Syntax** 

      
      ::

        {
            'Stack': {
                'Arn': 'string',
                'Name': 'string',
                'Description': 'string',
                'DisplayName': 'string',
                'CreatedTime': datetime(2015, 1, 1),
                'StorageConnectors': [
                    {
                        'ConnectorType': 'HOMEFOLDERS',
                        'ResourceIdentifier': 'string'
                    },
                ],
                'StackErrors': [
                    {
                        'ErrorCode': 'STORAGE_CONNECTOR_ERROR'|'INTERNAL_SERVICE_ERROR',
                        'ErrorMessage': 'string'
                    },
                ]
            }
        }
      **Response Structure** 

      

      - *(dict) --* 
        

        - **Stack** *(dict) --* 

          A list of stack details.

          
          

          - **Arn** *(string) --* 

            The ARN of the stack.

            
          

          - **Name** *(string) --* 

            The unique identifier of the stack.

            
          

          - **Description** *(string) --* 

            A meaningful description for the stack.

            
          

          - **DisplayName** *(string) --* 

            A display name for the stack.

            
          

          - **CreatedTime** *(datetime) --* 

            The time stamp when the stack was created.

            
          

          - **StorageConnectors** *(list) --* 

            The storage connectors to be enabled for the stack.

            
            

            - *(dict) --* 

              Contains the parameters for a storage connector.

              
              

              - **ConnectorType** *(string) --* 

                The type of storage connector. The possible values include: HOMEFOLDERS.

                
              

              - **ResourceIdentifier** *(string) --* 

                The ARN associated with the storage connector.

                
          
        
          

          - **StackErrors** *(list) --* 

            The list of errors associated with the stack.

            
            

            - *(dict) --* 

              Contains the parameters for a stack error.

              
              

              - **ErrorCode** *(string) --* 

                The error code of a stack error.

                
              

              - **ErrorMessage** *(string) --* 

                The error message of a stack error.

                
          
        
      
    

==========
Paginators
==========


The available paginators are:
