# Placement Policies

Warning

JSON formatted policy file is deprecated since Placement 5.0.0 (Wallaby). The oslopolicy-convert-json-to-yaml tool will migrate your existing JSON-formatted policy file to YAML in a backward-compatible way.

The following is an overview of all available policies in Placement. For a sample configuration file, refer to Sample Placement Policy File.

## placement

`admin_api`
  Default:

    `role:admin`

  Scope Types:

    - project

  Default rule for most placement APIs.

`service_api`
  Default:

    `role:service`

  Scope Types:

    - project

  Default rule for service-to-service placement APIs.

`admin_or_service_api`
  Default:

    `role:admin or role:service`

  Scope Types:

    - project

  Default rule for most placement APIs.

`project_reader_api`
  Default:

    `role:reader and project_id:%(project_id)s`

  Default rule for Project level reader APIs.

`admin_or_project_reader_or_service_api`
  Default:

    `role:admin or rule:project_reader_api or role:service`

  Scope Types:

    - project

  Default rule for project level reader APIs.

`placement:resource_providers:list`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/resource_providers`

  Scope Types:

    - project

  List resource providers.

`placement:resource_providers:create`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - POST `/resource_providers`

  Scope Types:

    - project

  Create resource provider.

`placement:resource_providers:show`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/resource_providers/{uuid}`

  Scope Types:

    - project

  Show resource provider.

`placement:resource_providers:update`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - PUT `/resource_providers/{uuid}`

  Scope Types:

    - project

  Update resource provider.

`placement:resource_providers:delete`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - DELETE `/resource_providers/{uuid}`

  Scope Types:

    - project

  Delete resource provider.

`placement:resource_classes:list`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/resource_classes`

  Scope Types:

    - project

  List resource classes.

`placement:resource_classes:create`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - POST `/resource_classes`

  Scope Types:

    - project

  Create resource class.

`placement:resource_classes:show`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/resource_classes/{name}`

  Scope Types:

    - project

  Show resource class.

`placement:resource_classes:update`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - PUT `/resource_classes/{name}`

  Scope Types:

    - project

  Update resource class.

`placement:resource_classes:delete`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - DELETE `/resource_classes/{name}`

  Scope Types:

    - project

  Delete resource class.

`placement:resource_providers:inventories:list`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/resource_providers/{uuid}/inventories`

  Scope Types:

    - project

  List resource provider inventories.

`placement:resource_providers:inventories:create`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - POST `/resource_providers/{uuid}/inventories`

  Scope Types:

    - project

  Create one resource provider inventory.

`placement:resource_providers:inventories:show`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/resource_providers/{uuid}/inventories/{resource_class}`

  Scope Types:

    - project

  Show resource provider inventory.

`placement:resource_providers:inventories:update`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - PUT `/resource_providers/{uuid}/inventories`

    - PUT `/resource_providers/{uuid}/inventories/{resource_class}`

  Scope Types:

    - project

  Update resource provider inventory.

`placement:resource_providers:inventories:delete`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - DELETE `/resource_providers/{uuid}/inventories`

    - DELETE `/resource_providers/{uuid}/inventories/{resource_class}`

  Scope Types:

    - project

  Delete resource provider inventory.

`placement:resource_providers:aggregates:list`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/resource_providers/{uuid}/aggregates`

  Scope Types:

    - project

  List resource provider aggregates.

`placement:resource_providers:aggregates:update`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - PUT `/resource_providers/{uuid}/aggregates`

  Scope Types:

    - project

  Update resource provider aggregates.

`placement:resource_providers:usages`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/resource_providers/{uuid}/usages`

  Scope Types:

    - project

  List resource provider usages.

`placement:usages`
  Default:

    `rule:admin_or_project_reader_or_service_api`

  Operations:

    - GET `/usages`

  Scope Types:

    - project

  List total resource usages for a given project.

`placement:traits:list`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/traits`

  Scope Types:

    - project

  List traits.

`placement:traits:show`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/traits/{name}`

  Scope Types:

    - project

  Show trait.

`placement:traits:update`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - PUT `/traits/{name}`

  Scope Types:

    - project

  Update trait.

`placement:traits:delete`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - DELETE `/traits/{name}`

  Scope Types:

    - project

  Delete trait.

`placement:resource_providers:traits:list`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/resource_providers/{uuid}/traits`

  Scope Types:

    - project

  List resource provider traits.

`placement:resource_providers:traits:update`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - PUT `/resource_providers/{uuid}/traits`

  Scope Types:

    - project

  Update resource provider traits.

`placement:resource_providers:traits:delete`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - DELETE `/resource_providers/{uuid}/traits`

  Scope Types:

    - project

  Delete resource provider traits.

`placement:allocations:manage`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - POST `/allocations`

  Scope Types:

    - project

  Manage allocations.

`placement:allocations:list`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/allocations/{consumer_uuid}`

  Scope Types:

    - project

  List allocations.

`placement:allocations:update`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - PUT `/allocations/{consumer_uuid}`

  Scope Types:

    - project

  Update allocations.

`placement:allocations:delete`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - DELETE `/allocations/{consumer_uuid}`

  Scope Types:

    - project

  Delete allocations.

`placement:resource_providers:allocations:list`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/resource_providers/{uuid}/allocations`

  Scope Types:

    - project

  List resource provider allocations.

`placement:allocation_candidates:list`
  Default:

    `rule:admin_or_service_api`

  Operations:

    - GET `/allocation_candidates`

  Scope Types:

    - project

  List allocation candidates.

`placement:reshaper:reshape`
  Default:

    `rule:service_api`

  Operations:

    - POST `/reshaper`

  Scope Types:

    - project

  Reshape Inventory and Allocations.

this page last updated: 2026-08-19 13:46: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