1# coding=utf-8 2# -------------------------------------------------------------------------- 3# Copyright (c) Microsoft Corporation. All rights reserved. 4# Licensed under the MIT License. See License.txt in the project root for 5# license information. 6# 7# Code generated by Microsoft (R) AutoRest Code Generator. 8# Changes may cause incorrect behavior and will be lost if the code is 9# regenerated. 10# -------------------------------------------------------------------------- 11 12import uuid 13from msrest.pipeline import ClientRawResponse 14from msrestazure.azure_exceptions import CloudError 15 16from .. import models 17 18 19class PermissionsOperations(object): 20 """PermissionsOperations operations. 21 22 You should not instantiate directly this class, but create a Client instance that will create it for you and attach it as attribute. 23 24 :param client: Client for service requests. 25 :param config: Configuration of service client. 26 :param serializer: An object model serializer. 27 :param deserializer: An object model deserializer. 28 :ivar api_version: The API version to use for this operation. Constant value: "2015-07-01". 29 """ 30 31 models = models 32 33 def __init__(self, client, config, serializer, deserializer): 34 35 self._client = client 36 self._serialize = serializer 37 self._deserialize = deserializer 38 self.api_version = "2015-07-01" 39 40 self.config = config 41 42 def list_for_resource_group( 43 self, resource_group_name, custom_headers=None, raw=False, **operation_config): 44 """Gets all permissions the caller has for a resource group. 45 46 :param resource_group_name: The name of the resource group to get the 47 permissions for. The name is case insensitive. 48 :type resource_group_name: str 49 :param dict custom_headers: headers that will be added to the request 50 :param bool raw: returns the direct response alongside the 51 deserialized response 52 :param operation_config: :ref:`Operation configuration 53 overrides<msrest:optionsforoperations>`. 54 :return: An iterator like instance of Permission 55 :rtype: 56 ~azure.mgmt.authorization.v2015_07_01.models.PermissionPaged[~azure.mgmt.authorization.v2015_07_01.models.Permission] 57 :raises: :class:`CloudError<msrestazure.azure_exceptions.CloudError>` 58 """ 59 def prepare_request(next_link=None): 60 if not next_link: 61 # Construct URL 62 url = self.list_for_resource_group.metadata['url'] 63 path_format_arguments = { 64 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 65 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') 66 } 67 url = self._client.format_url(url, **path_format_arguments) 68 69 # Construct parameters 70 query_parameters = {} 71 query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') 72 73 else: 74 url = next_link 75 query_parameters = {} 76 77 # Construct headers 78 header_parameters = {} 79 header_parameters['Accept'] = 'application/json' 80 if self.config.generate_client_request_id: 81 header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) 82 if custom_headers: 83 header_parameters.update(custom_headers) 84 if self.config.accept_language is not None: 85 header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') 86 87 # Construct and send request 88 request = self._client.get(url, query_parameters, header_parameters) 89 return request 90 91 def internal_paging(next_link=None): 92 request = prepare_request(next_link) 93 94 response = self._client.send(request, stream=False, **operation_config) 95 96 if response.status_code not in [200]: 97 exp = CloudError(response) 98 exp.request_id = response.headers.get('x-ms-request-id') 99 raise exp 100 101 return response 102 103 # Deserialize response 104 header_dict = None 105 if raw: 106 header_dict = {} 107 deserialized = models.PermissionPaged(internal_paging, self._deserialize.dependencies, header_dict) 108 109 return deserialized 110 list_for_resource_group.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/Microsoft.Authorization/permissions'} 111 112 def list_for_resource( 113 self, resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, custom_headers=None, raw=False, **operation_config): 114 """Gets all permissions the caller has for a resource. 115 116 :param resource_group_name: The name of the resource group containing 117 the resource. The name is case insensitive. 118 :type resource_group_name: str 119 :param resource_provider_namespace: The namespace of the resource 120 provider. 121 :type resource_provider_namespace: str 122 :param parent_resource_path: The parent resource identity. 123 :type parent_resource_path: str 124 :param resource_type: The resource type of the resource. 125 :type resource_type: str 126 :param resource_name: The name of the resource to get the permissions 127 for. 128 :type resource_name: str 129 :param dict custom_headers: headers that will be added to the request 130 :param bool raw: returns the direct response alongside the 131 deserialized response 132 :param operation_config: :ref:`Operation configuration 133 overrides<msrest:optionsforoperations>`. 134 :return: An iterator like instance of Permission 135 :rtype: 136 ~azure.mgmt.authorization.v2015_07_01.models.PermissionPaged[~azure.mgmt.authorization.v2015_07_01.models.Permission] 137 :raises: :class:`CloudError<msrestazure.azure_exceptions.CloudError>` 138 """ 139 def prepare_request(next_link=None): 140 if not next_link: 141 # Construct URL 142 url = self.list_for_resource.metadata['url'] 143 path_format_arguments = { 144 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 145 'resourceProviderNamespace': self._serialize.url("resource_provider_namespace", resource_provider_namespace, 'str'), 146 'parentResourcePath': self._serialize.url("parent_resource_path", parent_resource_path, 'str', skip_quote=True), 147 'resourceType': self._serialize.url("resource_type", resource_type, 'str', skip_quote=True), 148 'resourceName': self._serialize.url("resource_name", resource_name, 'str'), 149 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str') 150 } 151 url = self._client.format_url(url, **path_format_arguments) 152 153 # Construct parameters 154 query_parameters = {} 155 query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') 156 157 else: 158 url = next_link 159 query_parameters = {} 160 161 # Construct headers 162 header_parameters = {} 163 header_parameters['Accept'] = 'application/json' 164 if self.config.generate_client_request_id: 165 header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) 166 if custom_headers: 167 header_parameters.update(custom_headers) 168 if self.config.accept_language is not None: 169 header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') 170 171 # Construct and send request 172 request = self._client.get(url, query_parameters, header_parameters) 173 return request 174 175 def internal_paging(next_link=None): 176 request = prepare_request(next_link) 177 178 response = self._client.send(request, stream=False, **operation_config) 179 180 if response.status_code not in [200]: 181 exp = CloudError(response) 182 exp.request_id = response.headers.get('x-ms-request-id') 183 raise exp 184 185 return response 186 187 # Deserialize response 188 header_dict = None 189 if raw: 190 header_dict = {} 191 deserialized = models.PermissionPaged(internal_paging, self._deserialize.dependencies, header_dict) 192 193 return deserialized 194 list_for_resource.metadata = {'url': '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}/providers/Microsoft.Authorization/permissions'} 195