

def create_or_update_at_resource_level(self, resource_group_name, resource_provider_namespace, parent_resource_path, resource_type, resource_name, lock_name, parameters, custom_headers={
    
}, raw=False, **operation_config):
    '\n        Create or update a management lock at the resource level or any level\n        below resource.\n\n        :param resource_group_name: The name of the resource group.\n        :type resource_group_name: str\n        :param resource_provider_namespace: Resource identity.\n        :type resource_provider_namespace: str\n        :param parent_resource_path: Resource identity.\n        :type parent_resource_path: str\n        :param resource_type: Resource identity.\n        :type resource_type: str\n        :param resource_name: Resource identity.\n        :type resource_name: str\n        :param lock_name: The name of lock.\n        :type lock_name: str\n        :param parameters: Create or update management lock parameters.\n        :type parameters: :class:`ManagementLockObject\n         <azure.mgmt.resource.locks.models.ManagementLockObject>`\n        :param dict custom_headers: headers that will be added to the request\n        :param bool raw: returns the direct response alongside the\n         deserialized response\n        :param operation_config: :ref:`Operation configuration\n         overrides<msrest:optionsforoperations>`.\n        :rtype: :class:`ManagementLockObject\n         <azure.mgmt.resource.locks.models.ManagementLockObject>`\n        :rtype: :class:`ClientRawResponse<msrest.pipeline.ClientRawResponse>`\n         if raw=true\n        '
    url = '/subscriptions/{subscriptionId}/resourcegroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{parentResourcePath}/{resourceType}/{resourceName}/providers/Microsoft.Authorization/locks/{lockName}'
    path_format_arguments = {
        'resourceGroupName': self._serialize.url('resource_group_name', resource_group_name, 'str', pattern='^[-\\w\\._]+$'),
        'resourceProviderNamespace': self._serialize.url('resource_provider_namespace', resource_provider_namespace, 'str'),
        'parentResourcePath': self._serialize.url('parent_resource_path', parent_resource_path, 'str', skip_quote=True),
        'resourceType': self._serialize.url('resource_type', resource_type, 'str', skip_quote=True),
        'resourceName': self._serialize.url('resource_name', resource_name, 'str'),
        'lockName': self._serialize.url('lock_name', lock_name, 'str'),
        'subscriptionId': self._serialize.url('self.config.subscription_id', self.config.subscription_id, 'str'),
    }
    url = self._client.format_url(url, **path_format_arguments)
    query_parameters = {
        
    }
    query_parameters['api-version'] = self._serialize.query('self.config.api_version', self.config.api_version, 'str')
    header_parameters = {
        
    }
    header_parameters['Content-Type'] = 'application/json; charset=utf-8'
    if self.config.generate_client_request_id:
        header_parameters['x-ms-client-request-id'] = str(uuid.uuid1())
    if custom_headers:
        header_parameters.update(custom_headers)
    if (self.config.accept_language is not None):
        header_parameters['accept-language'] = self._serialize.header('self.config.accept_language', self.config.accept_language, 'str')
    body_content = self._serialize.body(parameters, 'ManagementLockObject')
    request = self._client.put(url, query_parameters)
    response = self._client.send(request, header_parameters, body_content, **operation_config)
    if (response.status_code not in [200, 201]):
        exp = CloudError(response)
        exp.request_id = response.headers.get('x-ms-request-id')
        raise exp
    deserialized = None
    if (response.status_code == 200):
        deserialized = self._deserialize('ManagementLockObject', response)
    if (response.status_code == 201):
        deserialized = self._deserialize('ManagementLockObject', response)
    if raw:
        client_raw_response = ClientRawResponse(deserialized, response)
        return client_raw_response
    return deserialized

dataset/ETHPy150Open Azure/azure-sdk-for-python/azure-mgmt-resource/azure/mgmt/resource/locks/operations/management_locks_operations.py ManagementLocksOperations.create_or_update_at_resource_level/original