1# Licensed under the Apache License, Version 2.0 (the "License"); you may
2# not use this file except in compliance with the License. You may obtain
3# a copy of the License at
4#
5#      http://www.apache.org/licenses/LICENSE-2.0
6#
7# Unless required by applicable law or agreed to in writing, software
8# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
9# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
10# License for the specific language governing permissions and limitations
11# under the License.
12
13from openstack import resource
14
15
16class RBACPolicy(resource.Resource):
17    resource_key = 'rbac_policy'
18    resources_key = 'rbac_policies'
19    base_path = '/rbac-policies'
20
21    _allow_unknown_attrs_in_body = True
22
23    # capabilities
24    allow_create = True
25    allow_fetch = True
26    allow_commit = True
27    allow_delete = True
28    allow_list = True
29
30    _query_mapping = resource.QueryParameters(
31        'action', 'object_id', 'object_type', 'project_id',
32        'target_project_id',
33    )
34
35    # Properties
36    #: ID of the object that this RBAC policy affects.
37    object_id = resource.Body('object_id')
38    #: The ID of the project this RBAC will be enforced.
39    target_project_id = resource.Body('target_tenant')
40    #: The owner project ID.
41    project_id = resource.Body('tenant_id')
42    #: Type of the object that this RBAC policy affects.
43    object_type = resource.Body('object_type')
44    #: Action for the RBAC policy.
45    action = resource.Body('action')
46