# keystone.api.domains module

class keystone.api.domains.DefaultConfigGroupResource

  Bases: `Resource`

  get(group=None)

    Get default domain group config.

    GET/HEAD /v3/domains/config/{group}/default

  methods: ClassVar[Collection[str] | None] = {'GET'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

class keystone.api.domains.DefaultConfigOptionResource

  Bases: `Resource`

  get(group=None, option=None)

    Get default domain group option config.

    GET/HEAD /v3/domains/config/{group}/{option}/default

  methods: ClassVar[Collection[str] | None] = {'GET'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

class keystone.api.domains.DefaultConfigResource

  Bases: `Resource`

  get()

    Get default domain config.

    GET/HEAD /v3/domains/config/default

  methods: ClassVar[Collection[str] | None] = {'GET'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

class keystone.api.domains.DomainAPI(blueprint_url_prefix='', api_url_prefix='', default_mediatype='application/json', decorators=None, errors=None)

  Bases: `APIBase`

  CONFIG_GROUP = 'https://docs.openstack.org/api/openstack-identity/3/param/config_group'
  CONFIG_OPTION = 'https://docs.openstack.org/api/openstack-identity/3/param/config_option'
  resource_mapping = [(<class 'keystone.api.domains.DomainsResource'>, '/domains', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domains', 'stable', {})), (<class 'keystone.api.domains.DomainResource'>, '/domains/<string:domain_id>', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domain', 'stable', {'domain_id': 'https://docs.openstack.org/api/openstack-identity/3/param/domain_id'})), (<class 'keystone.api.domains.DomainConfigResource'>, '/domains/<string:domain_id>/config', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domain_config', 'stable', {'domain_id': 'https://docs.openstack.org/api/openstack-identity/3/param/domain_id'})), (<class 'keystone.api.domains.DomainConfigGroupResource'>, '/domains/<string:domain_id>/config/<string:group>', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domain_config_group', 'stable', {'domain_id': 'https://docs.openstack.org/api/openstack-identity/3/param/domain_id', 'group': 'https://docs.openstack.org/api/openstack-identity/3/param/config_group'})), (<class 'keystone.api.domains.DomainConfigOptionResource'>, '/domains/<string:domain_id>/config/<string:group>/<string:option>', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domain_config_option', 'stable', {'domain_id': 'https://docs.openstack.org/api/openstack-identity/3/param/domain_id', 'group': 'https://docs.openstack.org/api/openstack-identity/3/param/config_group', 'option': 'https://docs.openstack.org/api/openstack-identity/3/param/config_option'})), (<class 'keystone.api.domains.DefaultConfigResource'>, '/domains/config/default', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domain_config_default', 'stable', {})), (<class 'keystone.api.domains.DefaultConfigGroupResource'>, '/domains/config/<string:group>/default', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domain_config_default_group', 'stable', {'group': 'https://docs.openstack.org/api/openstack-identity/3/param/config_group'})), (<class 'keystone.api.domains.DefaultConfigOptionResource'>, '/domains/config/<string:group>/<string:option>/default', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domain_config_default_option', 'stable', {'group': 'https://docs.openstack.org/api/openstack-identity/3/param/config_group', 'option': 'https://docs.openstack.org/api/openstack-identity/3/param/config_option'})), (<class 'keystone.api.domains.DomainUserListResource'>, '/domains/<string:domain_id>/users/<string:user_id>/roles', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domain_user_roles', 'stable', {'domain_id': 'https://docs.openstack.org/api/openstack-identity/3/param/domain_id', 'user_id': 'https://docs.openstack.org/api/openstack-identity/3/param/user_id'})), (<class 'keystone.api.domains.DomainUserResource'>, '/domains/<string:domain_id>/users/<string:user_id>/roles/<string:role_id>', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domain_user_role', 'stable', {'domain_id': 'https://docs.openstack.org/api/openstack-identity/3/param/domain_id', 'role_id': 'https://docs.openstack.org/api/openstack-identity/3/param/role_id', 'user_id': 'https://docs.openstack.org/api/openstack-identity/3/param/user_id'})), (<class 'keystone.api.domains.DomainGroupListResource'>, '/domains/<string:domain_id>/groups/<string:group_id>/roles', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domain_group_roles', 'stable', {'domain_id': 'https://docs.openstack.org/api/openstack-identity/3/param/domain_id', 'group_id': 'https://docs.openstack.org/api/openstack-identity/3/param/group_id'})), (<class 'keystone.api.domains.DomainGroupResource'>, '/domains/<string:domain_id>/groups/<string:group_id>/roles/<string:role_id>', None, {}, ('https://docs.openstack.org/api/openstack-identity/3/rel/domain_group_role', 'stable', {'domain_id': 'https://docs.openstack.org/api/openstack-identity/3/param/domain_id', 'group_id': 'https://docs.openstack.org/api/openstack-identity/3/param/group_id', 'role_id': 'https://docs.openstack.org/api/openstack-identity/3/param/role_id'}))]

class keystone.api.domains.DomainConfigBase

  Bases: `ResourceBase`

  delete(domain_id=None, group=None, option=None)

    Delete domain config.

    DELETE /v3/domains/{domain_id}/config DELETE /v3/domains/{domain_id}/config/{group} DELETE /v3/domains/{domain_id}/config/{group}/{option}

  get(domain_id=None, group=None, option=None)

    Check if config option exists.

    GET/HEAD /v3/domains/{domain_id}/config GET/HEAD /v3/domains/{domain_id}/config/{group} GET/HEAD /v3/domains/{domain_id}/config/{group}/{option}

  member_key: str = 'config'
  methods: ClassVar[Collection[str] | None] = {'DELETE', 'GET', 'PATCH'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

  patch(domain_id=None, group=None, option=None)

    Update domain config option.

    PATCH /v3/domains/{domain_id}/config PATCH /v3/domains/{domain_id}/config/{group} PATCH /v3/domains/{domain_id}/config/{group}/{option}

class keystone.api.domains.DomainConfigGroupResource

  Bases: `DomainConfigBase`

  Provides config group routing functionality.

  This class leans on DomainConfigBase to provide the following APIs:

  GET/HEAD /v3/domains/{domain_id}/config/{group} PATCH /v3/domains/{domain_id}/config/{group} DELETE /v3/domains/{domain_id}/config/{group}

  methods: ClassVar[Collection[str] | None] = {'DELETE', 'GET', 'PATCH'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

class keystone.api.domains.DomainConfigOptionResource

  Bases: `DomainConfigBase`

  Provides config option routing functionality.

  This class leans on DomainConfigBase to provide the following APIs:

  GET/HEAD /v3/domains/{domain_id}/config/{group}/{option} PATCH /v3/domains/{domain_id}/config/{group}/{option} DELETE /v3/domains/{domain_id}/config/{group}/{option}

  methods: ClassVar[Collection[str] | None] = {'DELETE', 'GET', 'PATCH'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

class keystone.api.domains.DomainConfigResource

  Bases: `DomainConfigBase`

  Provides config routing functionality.

  This class leans on DomainConfigBase to provide the following APIs:

  GET/HEAD /v3/domains/{domain_id}/config PATCH /v3/domains/{domain_id}/config DELETE /v3/domains/{domain_id}/config

  methods: ClassVar[Collection[str] | None] = {'DELETE', 'GET', 'PATCH', 'PUT'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

  put(domain_id)

    Create domain config.

    PUT /v3/domains/{domain_id}/config

class keystone.api.domains.DomainGroupListResource

  Bases: `Resource`

  get(domain_id=None, group_id=None)

    List all domain grants for a specific group.

    GET/HEAD /v3/domains/{domain_id}/groups/{group_id}/roles

  methods: ClassVar[Collection[str] | None] = {'GET'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

class keystone.api.domains.DomainGroupResource

  Bases: `ResourceBase`

  collection_key: str = 'grants'
  delete(domain_id=None, group_id=None, role_id=None)

    Revoke a role from a group on a domain.

    DELETE /v3/domains/{domain_id}/groups/{group_id}/roles/{role_id}

  get(domain_id=None, group_id=None, role_id=None)

    Check if a group has a specific role on a domain.

    GET/HEAD /v3/domains/{domain_id}/groups/{group_id}/roles/{role_id}

  member_key: str = 'grant'
  methods: ClassVar[Collection[str] | None] = {'DELETE', 'GET', 'PUT'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

  put(domain_id=None, group_id=None, role_id=None)

    Grant a role to a group on a domain.

    PUT /v3/domains/{domain_id}/groups/{group_id}/roles/{role_id}

class keystone.api.domains.DomainResource

  Bases: `ResourceBase`

  collection_key: str = 'domains'
  delete(domain_id)

    Delete domain.

    DELETE /v3/domains/{domain_id}

  get(domain_id: str)

    Get domain

    GET/HEAD /v3/domains/{domain_id}

  get_member_from_driver
  member_key: str = 'domain'
  methods: ClassVar[Collection[str] | None] = {'DELETE', 'GET', 'PATCH'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

  patch(domain_id)

    Update domain.

    PATCH /v3/domains/{domain_id}

class keystone.api.domains.DomainUserListResource

  Bases: `Resource`

  get(domain_id=None, user_id=None)

    Get user grant.

    GET/HEAD /v3/domains/{domain_id}/users/{user_id}/roles

  methods: ClassVar[Collection[str] | None] = {'GET'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

class keystone.api.domains.DomainUserResource

  Bases: `ResourceBase`

  collection_key: str = 'grants'
  delete(domain_id=None, user_id=None, role_id=None)

    Revoke a role from user on a domain.

    DELETE /v3/domains/{domain_id}/users/{user_id}/roles/{role_id}

  get(domain_id=None, user_id=None, role_id=None)

    Check if a user has a specific role on the domain.

    GET/HEAD /v3/domains/{domain_id}/users/{user_id}/roles/{role_id}

  member_key: str = 'grant'
  methods: ClassVar[Collection[str] | None] = {'DELETE', 'GET', 'PUT'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

  put(domain_id=None, user_id=None, role_id=None)

    Create a role to a user on a domain.

    PUT /v3/domains/{domain_id}/users/{user_id}/roles/{role_id}

class keystone.api.domains.DomainsResource

  Bases: `ResourceBase`

  collection_key: str = 'domains'
  get()

    List domains.

    GET/HEAD /v3/domains

  get_member_from_driver
  member_key: str = 'domain'
  methods: ClassVar[Collection[str] | None] = {'GET', 'POST'}

    The methods this view is registered for. Uses the same default (`["GET", "HEAD", "OPTIONS"]`) as `route` and `add_url_rule` by default.

  post()

    Create domain.

    POST /v3/domains

this page last updated: 2026-06-11 21:52:50

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

found an error? report a bug