# openstack.orchestration.v1.stack

## The Stack Class

The `Stack` class inherits from `Resource`.

class openstack.orchestration.v1.stack.Stack(_synchronized=False, connection=None, **attrs)

  The base resource

  Parameters:

    - _synchronized (bool) – This is not intended to be used directly. See `new()` and `existing()`.

    - connection (openstack.connection.Connection) – Reference to the Connection being used. Defaults to None to allow Resource objects to be used without an active Connection, such as in unit tests. Use of `self._connection` in Resource code should protect itself with a check for None.

  resource_key = 'stack'

    Singular form of key for resource.

  resources_key = 'stacks'

    Plural form of key for resource.

  base_path = '/stacks'

    The base part of the URI for this resource.

  allow_create = True

    Allow create operation for this resource.

  allow_list = True

    Allow list operation for this resource.

  allow_fetch = True

    Allow get operation for this resource.

  allow_commit = True

    Allow update operation for this resource.

  allow_delete = True

    Allow delete operation for this resource.

  capabilities

    Placeholder for AWS compatible template listing capabilities required by the stack.

  created_at

    Timestamp of the stack creation.

  description

    A text description of the stack.

  deleted

    A list of resource objects that will be deleted if a stack update is performed.

  deleted_at

    Timestamp of the stack deletion.

  environment

    A JSON environment for the stack.

  environment_files

    An ordered list of names for environment files found in the files dict.

  files

    Additional files referenced in the template or the environment

  files_container

    Name of the container in swift that has child templates and environment files.

  is_rollback_disabled

    Whether the stack will support a rollback operation on stack create/update failures. Type: bool

  links

    A list of dictionaries containing links relevant to the stack.

  name

    Name of the stack.

  notification_topics

    Placeholder for future extensions where stack related events can be published.

  outputs

    A list containing output keys and values from the stack, if any.

  owner_id

    The ID of the owner stack if any.

  parameters

    A dictionary containing the parameter names and values for the stack.

  parent_id

    The ID of the parent stack if any

  replaced

    A list of resource objects that will be replaced if a stack update is performed.

  status

    A string representation of the stack status, e.g. `CREATE_COMPLETE`.

  status_reason

    A text explaining how the stack transits to its current status.

  tags

    A list of strings used as tags on the stack

  template

    A dict containing the template use for stack creation.

  template_description

    Stack template description text. Currently contains the same text as that of the `description` property.

  template_url

    A string containing the URL where a stack template can be found.

  timeout_mins

    Stack operation timeout in minutes.

  unchanged

    A list of resource objects that will remain unchanged if a stack update is performed.

  updated

    A list of resource objects that will have their properties updated in place if a stack update is performed.

  updated_at

    Timestamp of last update on the stack.

  user_project_id

    The ID of the user project created for this stack.

  create(session, prepend_key=False, *args, **kwargs)

    Create a remote resource based on this instance.

    Parameters:

      - session (`Adapter`) – The session to use for making this request.

      - prepend_key – A boolean indicating whether the resource_key should be prepended in a resource creation request. Default to True.

      - base_path (str) – Base part of the URI for creating resources, if different from `base_path`.

      - resource_request_key (str) – Overrides the usage of self.resource_key when prepending a key to the request body. Ignored if prepend_key is false.

      - resource_response_key (str) – Overrides the usage of self.resource_key when processing response bodies. Ignored if prepend_key is false.

      - microversion (str) – API version to override the negotiated one.

      - params (dict) – Additional params to pass.

    Returns:

      This `Resource` instance.

    Raises:

      `MethodNotSupported` if `Resource.allow_create` is not set to `True`.

  commit(session, prepend_key=True, has_body=True, retry_on_conflict=None, base_path=None, *, microversion=None, preview=False, **kwargs)

    Commit the state of the instance to the remote resource.

    Parameters:

      - session (`Adapter`) – The session to use for making this request.

      - prepend_key – A boolean indicating whether the resource_key should be prepended in a resource update request. Default to True.

      - retry_on_conflict (bool) – Whether to enable retries on HTTP CONFLICT (409). Value of `None` leaves the Adapter defaults.

      - base_path (str) – Base part of the URI for modifying resources, if different from `base_path`.

      - microversion (str) – API version to override the negotiated one.

      - kwargs (dict) – Parameters that will be passed to _prepare_request()

    Returns:

      This `Resource` instance.

    Raises:

      `MethodNotSupported` if `Resource.allow_commit` is not set to `True`.

  export(session)

    Export a stack data

    Parameters:

      session – The session to use for making this request.

    Returns:

      A dictionary containing the stack data.

  suspend(session)

    Suspend a stack

    Parameters:

      session – The session to use for making this request

    Returns:

      None

  resume(session)

    Resume a stack

    Parameters:

      session – The session to use for making this request

    Returns:

      None

  fetch(session, requires_id=True, base_path=None, error_message=None, skip_cache=False, *, resolve_outputs=True, **params)

    Get a remote resource based on this instance.

    Parameters:

      - session (`Adapter`) – The session to use for making this request.

      - requires_id (boolean) – A boolean indicating whether resource ID should be part of the requested URI.

      - base_path (str) – Base part of the URI for fetching resources, if different from `base_path`.

      - error_message (str) – An Error message to be returned if requested object does not exist.

      - skip_cache (bool) – A boolean indicating whether optional API cache should be skipped for this invocation.

      - resource_response_key (str) – Overrides the usage of self.resource_key when processing the response body.

      - microversion (str) – API version to override the negotiated one.

      - params (dict) – Additional parameters that can be consumed.

    Returns:

      This `Resource` instance.

    Raises:

      `MethodNotSupported` if `Resource.allow_fetch` is not set to `True`.

    Raises:

      `NotFoundException` if the resource was not found.

  classmethod find(session, name_or_id, ignore_missing=True, list_base_path=None, *, microversion=None, all_projects=None, **params)

    Find a resource by its name or id.

    Parameters:

      - session (`Adapter`) – The session to use for making this request.

      - name_or_id – This resource’s identifier, if needed by the request. The default is `None`.

      - ignore_missing (bool) – When set to `False` `NotFoundException` will be raised when the resource does not exist. When set to `True`, None will be returned when attempting to find a nonexistent resource.

      - params (dict) – Any additional parameters to be passed into underlying methods, such as to `existing()` in order to pass on URI parameters.

    Returns:

      The `Resource` object matching the given name or id or None if nothing matches.

    Raises:

      `openstack.exceptions.DuplicateResource` if more than one resource is found for this request.

    Raises:

      `openstack.exceptions.NotFoundException` if nothing is found and ignore_missing is `False`.

this page last updated: 2026-01-16 23:06:19

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.