Policies¶
Warning
JSON formatted policy files were deprecated in the Wallaby development
cycle due to the Victoria deprecation by the olso.policy library.
Use the oslopolicy-convert-json-to-yaml tool
to convert the existing JSON to YAML formatted policy file in backward
compatible way.
The following is an overview of all available policies in Ironic. For a sample configuration file, refer to Ironic Policy.
ironic.api¶
- admin_api
- Default
- role:admin or role:administrator
 - Legacy rule for cloud admin access 
- public_api
- Default
- is_public_api:True
 - Internal flag for public API routes 
- show_password
- Default
- !
 - Show or mask secrets within node driver information in API responses 
- show_instance_secrets
- Default
- !
 - Show or mask secrets within instance information in API responses 
- is_member
- Default
- (project_domain_id:default or project_domain_id:None) and (project_name:demo or project_name:baremetal)
 - May be used to restrict access to specific projects 
- is_observer
- Default
- rule:is_member and (role:observer or role:baremetal_observer)
 - Read-only API access 
- is_admin
- Default
- rule:admin_api or (rule:is_member and role:baremetal_admin)
 - Full read/write API access 
- is_node_owner
- Default
- project_id:%(node.owner)s
 - Owner of node 
- is_node_lessee
- Default
- project_id:%(node.lessee)s
 - Lessee of node 
- is_allocation_owner
- Default
- project_id:%(allocation.owner)s
 - Owner of allocation 
- baremetal:node:create
- Default
- role:admin and system_scope:all
- Operations
- POST - /nodes
 
- Scope Types
- system 
 
 - Create Node records 
- baremetal:node:list
- Default
- role:reader
- Operations
- GET - /nodes
- GET - /nodes/detail
 
- Scope Types
- system 
- project 
 
 - Retrieve multiple Node records, filtered by an explicit owner or the client project_id 
- baremetal:node:list_all
- Default
- role:reader and system_scope:all
- Operations
- GET - /nodes
- GET - /nodes/detail
 
- Scope Types
- system 
 
 - Retrieve multiple Node records 
- baremetal:node:get
- Default
- (role:reader and system_scope:all) or (role:reader and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- GET - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Retrieve a single Node record 
- baremetal:node:get:filter_threshold
- Default
- role:reader and system_scope:all
- Operations
- GET - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Filter to allow operators to govern the threshold where information should be filtered. Non-authorized users will be subjected to additional API policy checks for API content response bodies. 
- baremetal:node:get:last_error
- Default
- (role:reader and system_scope:all) or (role:reader and project_id:%(node.owner)s)
- Operations
- GET - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if the node last_error field is masked from APIclients with insufficent privileges. 
- baremetal:node:get:reservation
- Default
- (role:reader and system_scope:all) or (role:reader and project_id:%(node.owner)s)
- Operations
- GET - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if the node reservation field is masked from APIclients with insufficent privileges. 
- baremetal:node:get:driver_internal_info
- Default
- (role:reader and system_scope:all) or (role:reader and project_id:%(node.owner)s)
- Operations
- GET - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if the node driver_internal_info field is masked from API clients with insufficent privileges. 
- baremetal:node:get:driver_info
- Default
- (role:reader and system_scope:all) or (role:reader and project_id:%(node.owner)s)
- Operations
- GET - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if the driver_info field is masked from APIclients with insufficent privileges. 
- baremetal:node:update:driver_info
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s)
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if node driver_info field can be updated via the API clients. 
- baremetal:node:update:properties
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s)
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if node properties field can be updated via the API clients. 
- baremetal:node:update:chassis_uuid
- Default
- role:admin and system_scope:all
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if node chassis_uuid field can be updated via the API clients. 
- baremetal:node:update:instance_uuid
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s)
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if node instance_uuid field can be updated via the API clients. 
- baremetal:node:update:lessee
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s)
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if node lessee field can be updated via the API clients. 
- baremetal:node:update:owner
- Default
- role:member and system_scope:all
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if node owner field can be updated via the API clients. 
- baremetal:node:update:driver_interfaces
- Default
- (role:member and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if node driver and driver interfaces field can be updated via the API clients. 
- baremetal:node:update:network_data
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s)
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if node driver_info field can be updated via the API clients. 
- baremetal:node:update:conductor_group
- Default
- role:member and system_scope:all
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if node conductor_group field can be updated via the API clients. 
- baremetal:node:update:name
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s)
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if node name field can be updated via the API clients. 
- baremetal:node:update:retired
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s)
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Governs if node retired and retired reason can be updated by API clients. 
- baremetal:node:update
- Default
- (role:member and system_scope:all) or (role:member and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Generalized update of node records 
- baremetal:node:update_extra
- Default
- (role:member and system_scope:all) or (role:member and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Update Node extra field 
- baremetal:node:update_instance_info
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s) or (role:admin and project_id:%(node.lessee)s)
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Update Node instance_info field 
- baremetal:node:update_owner_provisioned
- Default
- role:admin and system_scope:all
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
 
 - Update Node owner even when Node is provisioned 
- baremetal:node:delete
- Default
- role:admin and system_scope:all
- Operations
- DELETE - /nodes/{node_ident}
 
- Scope Types
- system 
- project 
 
 - Delete Node records 
- baremetal:node:validate
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s) or (role:admin and project_id:%(node.lessee)s)
- Operations
- GET - /nodes/{node_ident}/validate
 
- Scope Types
- system 
- project 
 
 - Request active validation of Nodes 
- baremetal:node:set_maintenance
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s) or (role:admin and project_id:%(node.lessee)s)
- Operations
- PUT - /nodes/{node_ident}/maintenance
 
- Scope Types
- system 
- project 
 
 - Set maintenance flag, taking a Node out of service 
- baremetal:node:clear_maintenance
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s) or (role:admin and project_id:%(node.lessee)s)
- Operations
- DELETE - /nodes/{node_ident}/maintenance
 
- Scope Types
- system 
- project 
 
 - Clear maintenance flag, placing the Node into service again 
- baremetal:node:get_boot_device
- Default
- (role:member and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- GET - /nodes/{node_ident}/management/boot_device
- GET - /nodes/{node_ident}/management/boot_device/supported
 
- Scope Types
- system 
- project 
 
 - Retrieve Node boot device metadata 
- baremetal:node:set_boot_device
- Default
- (role:member and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- PUT - /nodes/{node_ident}/management/boot_device
 
- Scope Types
- system 
- project 
 
 - Change Node boot device 
- baremetal:node:get_indicator_state
- Default
- (role:reader and system_scope:all) or (role:reader and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- GET - /nodes/{node_ident}/management/indicators/{component}/{indicator}
- GET - /nodes/{node_ident}/management/indicators
 
- Scope Types
- system 
- project 
 
 - Retrieve Node indicators and their states 
- baremetal:node:set_indicator_state
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s)
- Operations
- PUT - /nodes/{node_ident}/management/indicators/{component}/{indicator}
 
- Scope Types
- system 
- project 
 
 - Change Node indicator state 
- baremetal:node:inject_nmi
- Default
- (role:member and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- PUT - /nodes/{node_ident}/management/inject_nmi
 
- Scope Types
- system 
- project 
 
 - Inject NMI for a node 
- baremetal:node:get_states
- Default
- (role:reader and system_scope:all) or (role:reader and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- GET - /nodes/{node_ident}/states
 
- Scope Types
- system 
- project 
 
 - View Node power and provision state 
- baremetal:node:set_power_state
- Default
- (role:member and system_scope:all) or (role:member and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- PUT - /nodes/{node_ident}/states/power
 
- Scope Types
- system 
- project 
 
 - Change Node power status 
- baremetal:node:set_provision_state
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s) or (role:admin and project_id:%(node.lessee)s)
- Operations
- PUT - /nodes/{node_ident}/states/provision
 
- Scope Types
- system 
- project 
 
 - Change Node provision status 
- baremetal:node:set_raid_state
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s)
- Operations
- PUT - /nodes/{node_ident}/states/raid
 
- Scope Types
- system 
- project 
 
 - Change Node RAID status 
- baremetal:node:get_console
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s)
- Operations
- GET - /nodes/{node_ident}/states/console
 
- Scope Types
- system 
- project 
 
 - Get Node console connection information 
- baremetal:node:set_console_state
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s)
- Operations
- PUT - /nodes/{node_ident}/states/console
 
- Scope Types
- system 
- project 
 
 - Change Node console status 
- baremetal:node:vif:list
- Default
- (role:reader and system_scope:all) or (role:reader and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- GET - /nodes/{node_ident}/vifs
 
- Scope Types
- system 
- project 
 
 - List VIFs attached to node 
- baremetal:node:vif:attach
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s) or (role:admin and project_id:%(node.lessee)s)
- Operations
- POST - /nodes/{node_ident}/vifs
 
- Scope Types
- system 
- project 
 
 - Attach a VIF to a node 
- baremetal:node:vif:detach
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s) or (role:admin and project_id:%(node.lessee)s)
- Operations
- DELETE - /nodes/{node_ident}/vifs/{node_vif_ident}
 
- Scope Types
- system 
- project 
 
 - Detach a VIF from a node 
- baremetal:node:traits:list
- Default
- (role:reader and system_scope:all) or (role:reader and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- GET - /nodes/{node_ident}/traits
 
- Scope Types
- system 
- project 
 
 - List node traits 
- baremetal:node:traits:set
- Default
- (role:member and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- PUT - /nodes/{node_ident}/traits
- PUT - /nodes/{node_ident}/traits/{trait}
 
- Scope Types
- system 
- project 
 
 - Add a trait to, or replace all traits of, a node 
- baremetal:node:traits:delete
- Default
- (role:member and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- DELETE - /nodes/{node_ident}/traits
- DELETE - /nodes/{node_ident}/traits/{trait}
 
- Scope Types
- system 
- project 
 
 - Remove one or all traits from a node 
- baremetal:node:bios:get
- Default
- (role:reader and system_scope:all) or (role:reader and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- GET - /nodes/{node_ident}/bios
- GET - /nodes/{node_ident}/bios/{setting}
 
- Scope Types
- system 
- project 
 
 - Retrieve Node BIOS information 
- baremetal:node:disable_cleaning
- Default
- role:admin and system_scope:all
- Operations
- PATCH - /nodes/{node_ident}
 
- Scope Types
- system 
 
 - Disable Node disk cleaning 
- baremetal:port:get
- Default
- (role:reader and system_scope:all) or (role:reader and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- GET - /ports/{port_id}
- GET - /nodes/{node_ident}/ports
- GET - /nodes/{node_ident}/ports/detail
- GET - /portgroups/{portgroup_ident}/ports
- GET - /portgroups/{portgroup_ident}/ports/detail
 
- Scope Types
- system 
- project 
 
 - Retrieve Port records 
- baremetal:port:list
- Default
- role:reader
- Operations
- GET - /ports
- GET - /ports/detail
 
- Scope Types
- system 
- project 
 
 - Retrieve multiple Port records, filtered by owner 
- baremetal:port:list_all
- Default
- role:reader and system_scope:all
- Operations
- GET - /ports
- GET - /ports/detail
 
- Scope Types
- system 
- project 
 
 - Retrieve multiple Port records 
- baremetal:port:create
- Default
- (role:admin and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- POST - /ports
 
- Scope Types
- system 
- project 
 
 - Create Port records 
- baremetal:port:delete
- Default
- (role:admin and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- DELETE - /ports/{port_id}
 
- Scope Types
- system 
- project 
 
 - Delete Port records 
- baremetal:port:update
- Default
- (role:member and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- PATCH - /ports/{port_id}
 
- Scope Types
- system 
- project 
 
 - Update Port records 
- baremetal:portgroup:get
- Default
- (role:reader and system_scope:all) or (role:reader and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- GET - /portgroups
- GET - /portgroups/detail
- GET - /portgroups/{portgroup_ident}
- GET - /nodes/{node_ident}/portgroups
- GET - /nodes/{node_ident}/portgroups/detail
 
- Scope Types
- system 
- project 
 
 - Retrieve Portgroup records 
- baremetal:portgroup:create
- Default
- (role:admin and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- POST - /portgroups
 
- Scope Types
- system 
- project 
 
 - Create Portgroup records 
- baremetal:portgroup:delete
- Default
- (role:admin and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- DELETE - /portgroups/{portgroup_ident}
 
- Scope Types
- system 
- project 
 
 - Delete Portgroup records 
- baremetal:portgroup:update
- Default
- (role:member and system_scope:all) or (role:admin and project_id:%(node.owner)s)
- Operations
- PATCH - /portgroups/{portgroup_ident}
 
- Scope Types
- system 
- project 
 
 - Update Portgroup records 
- baremetal:portgroup:list
- Default
- role:reader
- Operations
- GET - /portgroups
- GET - /portgroups/detail
 
- Scope Types
- system 
- project 
 
 - Retrieve multiple Port records, filtered by owner 
- baremetal:portgroup:list_all
- Default
- role:reader and system_scope:all
- Operations
- GET - /portgroups
- GET - /portgroups/detail
 
- Scope Types
- system 
- project 
 
 - Retrieve multiple Port records 
- baremetal:chassis:get
- Default
- role:reader and system_scope:all
- Operations
- GET - /chassis
- GET - /chassis/detail
- GET - /chassis/{chassis_id}
 
- Scope Types
- system 
 
 - Retrieve Chassis records 
- baremetal:chassis:create
- Default
- role:admin and system_scope:all
- Operations
- POST - /chassis
 
- Scope Types
- system 
 
 - Create Chassis records 
- baremetal:chassis:delete
- Default
- role:admin and system_scope:all
- Operations
- DELETE - /chassis/{chassis_id}
 
- Scope Types
- system 
 
 - Delete Chassis records 
- baremetal:chassis:update
- Default
- role:member and system_scope:all
- Operations
- PATCH - /chassis/{chassis_id}
 
- Scope Types
- system 
 
 - Update Chassis records 
- baremetal:driver:get
- Default
- role:reader and system_scope:all
- Operations
- GET - /drivers
- GET - /drivers/{driver_name}
 
- Scope Types
- system 
 
 - View list of available drivers 
- baremetal:driver:get_properties
- Default
- role:reader and system_scope:all
- Operations
- GET - /drivers/{driver_name}/properties
 
- Scope Types
- system 
 
 - View driver-specific properties 
- baremetal:driver:get_raid_logical_disk_properties
- Default
- role:reader and system_scope:all
- Operations
- GET - /drivers/{driver_name}/raid/logical_disk_properties
 
- Scope Types
- system 
 
 - View driver-specific RAID metadata 
- baremetal:node:vendor_passthru
- Default
- role:admin and system_scope:all
- Operations
- GET - nodes/{node_ident}/vendor_passthru/methods
- GET - nodes/{node_ident}/vendor_passthru?method={method_name}
- PUT - nodes/{node_ident}/vendor_passthru?method={method_name}
- POST - nodes/{node_ident}/vendor_passthru?method={method_name}
- PATCH - nodes/{node_ident}/vendor_passthru?method={method_name}
- DELETE - nodes/{node_ident}/vendor_passthru?method={method_name}
 
- Scope Types
- system 
- project 
 
 - Access vendor-specific Node functions 
- baremetal:driver:vendor_passthru
- Default
- role:admin and system_scope:all
- Operations
- GET - drivers/{driver_name}/vendor_passthru/methods
- GET - drivers/{driver_name}/vendor_passthru?method={method_name}
- PUT - drivers/{driver_name}/vendor_passthru?method={method_name}
- POST - drivers/{driver_name}/vendor_passthru?method={method_name}
- PATCH - drivers/{driver_name}/vendor_passthru?method={method_name}
- DELETE - drivers/{driver_name}/vendor_passthru?method={method_name}
 
- Scope Types
- system 
 
 - Access vendor-specific Driver functions 
- baremetal:node:ipa_heartbeat
- Default
- <empty string> 
- Operations
- POST - /heartbeat/{node_ident}
 
 - Receive heartbeats from IPA ramdisk 
- baremetal:driver:ipa_lookup
- Default
- <empty string> 
- Operations
- GET - /lookup
 
 - Access IPA ramdisk functions 
- baremetal:volume:list_all
- Default
- role:reader and system_scope:all
- Operations
- GET - /volume/connectors
- GET - /volume/targets
- GET - /nodes/{node_ident}/volume/connectors
- GET - /nodes/{node_ident}/volume/targets
 
- Scope Types
- system 
- project 
 
 - Retrieve a list of all Volume connector and target records 
- baremetal:volume:list
- Default
- role:reader
- Operations
- GET - /volume/connectors
- GET - /volume/targets
- GET - /nodes/{node_ident}/volume/connectors
- GET - /nodes/{node_ident}/volume/targets
 
- Scope Types
- system 
- project 
 
 - Retrieve a list of Volume connector and target records 
- baremetal:volume:get
- Default
- (role:reader and system_scope:all) or (role:reader and (project_id:%(node.owner)s or project_id:%(node.lessee)s))
- Operations
- GET - /volume
- GET - /volume/connectors
- GET - /volume/connectors/{volume_connector_id}
- GET - /volume/targets
- GET - /volume/targets/{volume_target_id}
- GET - /nodes/{node_ident}/volume
- GET - /nodes/{node_ident}/volume/connectors
- GET - /nodes/{node_ident}/volume/targets
 
- Scope Types
- system 
- project 
 
 - Retrieve Volume connector and target records 
- baremetal:volume:create
- Default
- (role:member and system_scope:all) or (role:admin and project_id:%(node.owner)s) or (role:admin and project_id:%(node.lessee)s)
- Operations
- POST - /volume/connectors
- POST - /volume/targets
 
- Scope Types
- system 
- project 
 
 - Create Volume connector and target records 
- baremetal:volume:delete
- Default
- (role:member and system_scope:all) or (role:admin and project_id:%(node.owner)s) or (role:admin and project_id:%(node.lessee)s)
- Operations
- DELETE - /volume/connectors/{volume_connector_id}
- DELETE - /volume/targets/{volume_target_id}
 
- Scope Types
- system 
- project 
 
 - Delete Volume connector and target records 
- baremetal:volume:update
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(node.owner)s) or (role:admin and project_id:%(node.lessee)s)
- Operations
- PATCH - /volume/connectors/{volume_connector_id}
- PATCH - /volume/targets/{volume_target_id}
 
- Scope Types
- system 
- project 
 
 - Update Volume connector and target records 
- baremetal:volume:view_target_properties
- Default
- (role:reader and system_scope:all) or (role:admin)
- Operations
- GET - /volume/connectors/{volume_connector_id}
- GET - /volume/targets/{volume_target_id}
 
- Scope Types
- system 
- project 
 
 - Ability to view volume target properties 
- baremetal:conductor:get
- Default
- role:reader and system_scope:all
- Operations
- GET - /conductors
- GET - /conductors/{hostname}
 
- Scope Types
- system 
 
 - Retrieve Conductor records 
- baremetal:allocation:get
- Default
- (role:reader and system_scope:all) or (role:reader and project_id:%(allocation.owner)s)
- Operations
- GET - /allocations/{allocation_id}
- GET - /nodes/{node_ident}/allocation
 
- Scope Types
- system 
- project 
 
 - Retrieve Allocation records 
- baremetal:allocation:list
- Default
- role:reader
- Operations
- GET - /allocations
 
- Scope Types
- system 
- project 
 
 - Retrieve multiple Allocation records, filtered by owner 
- baremetal:allocation:list_all
- Default
- role:reader and system_scope:all
- Operations
- GET - /allocations
 
- Scope Types
- system 
- project 
 
 - Retrieve multiple Allocation records 
- baremetal:allocation:create
- Default
- (role:member and system_scope:all) or (role:member)
- Operations
- POST - /allocations
 
- Scope Types
- system 
- project 
 
 - Create Allocation records 
- baremetal:allocation:create_restricted
- Default
- role:member and system_scope:all
- Operations
- POST - /allocations
 
- Scope Types
- system 
- project 
 
 - Create Allocation records with a specific owner. 
- baremetal:allocation:delete
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(allocation.owner)s)
- Operations
- DELETE - /allocations/{allocation_id}
- DELETE - /nodes/{node_ident}/allocation
 
- Scope Types
- system 
- project 
 
 - Delete Allocation records 
- baremetal:allocation:update
- Default
- (role:member and system_scope:all) or (role:member and project_id:%(allocation.owner)s)
- Operations
- PATCH - /allocations/{allocation_id}
 
- Scope Types
- system 
- project 
 
 - Change name and extra fields of an allocation 
- baremetal:allocation:create_pre_rbac
- Default
- (rule:is_member and role:baremetal_admin) or (is_admin_project:True and role:admin)
- Operations
- PATCH - /allocations/{allocation_id}
 
- Scope Types
- project 
 
 - Logical restrictor to prevent legacy allocation rule missuse - Requires blank allocations to originate from the legacy baremetal_admin. 
- baremetal:events:post
- Default
- role:admin and system_scope:all
- Operations
- POST - /events
 
- Scope Types
- system 
 
 - Post events 
- baremetal:deploy_template:get
- Default
- role:reader and system_scope:all
- Operations
- GET - /deploy_templates
- GET - /deploy_templates/{deploy_template_ident}
 
- Scope Types
- system 
 
 - Retrieve Deploy Template records 
- baremetal:deploy_template:create
- Default
- role:admin and system_scope:all
- Operations
- POST - /deploy_templates
 
- Scope Types
- system 
 
 - Create Deploy Template records 
- baremetal:deploy_template:delete
- Default
- role:admin and system_scope:all
- Operations
- DELETE - /deploy_templates/{deploy_template_ident}
 
- Scope Types
- system 
 
 - Delete Deploy Template records 
- baremetal:deploy_template:update
- Default
- role:admin and system_scope:all
- Operations
- PATCH - /deploy_templates/{deploy_template_ident}
 
- Scope Types
- system 
 
 - Update Deploy Template records 
