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 ProtectableContainersOperations(object): 20 """ProtectableContainersOperations 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: Client Api Version. Constant value: "2021-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 = "2021-07-01" 39 40 self.config = config 41 42 def list( 43 self, vault_name, resource_group_name, fabric_name, filter=None, custom_headers=None, raw=False, **operation_config): 44 """Lists the containers that can be registered to Recovery Services Vault. 45 46 :param vault_name: The name of the recovery services vault. 47 :type vault_name: str 48 :param resource_group_name: The name of the resource group where the 49 recovery services vault is present. 50 :type resource_group_name: str 51 :param fabric_name: 52 :type fabric_name: str 53 :param filter: OData filter options. 54 :type filter: str 55 :param dict custom_headers: headers that will be added to the request 56 :param bool raw: returns the direct response alongside the 57 deserialized response 58 :param operation_config: :ref:`Operation configuration 59 overrides<msrest:optionsforoperations>`. 60 :return: An iterator like instance of ProtectableContainerResource 61 :rtype: 62 ~azure.mgmt.recoveryservicesbackup.models.ProtectableContainerResourcePaged[~azure.mgmt.recoveryservicesbackup.models.ProtectableContainerResource] 63 :raises: :class:`CloudError<msrestazure.azure_exceptions.CloudError>` 64 """ 65 def prepare_request(next_link=None): 66 if not next_link: 67 # Construct URL 68 url = self.list.metadata['url'] 69 path_format_arguments = { 70 'vaultName': self._serialize.url("vault_name", vault_name, 'str'), 71 'resourceGroupName': self._serialize.url("resource_group_name", resource_group_name, 'str'), 72 'subscriptionId': self._serialize.url("self.config.subscription_id", self.config.subscription_id, 'str'), 73 'fabricName': self._serialize.url("fabric_name", fabric_name, 'str') 74 } 75 url = self._client.format_url(url, **path_format_arguments) 76 77 # Construct parameters 78 query_parameters = {} 79 query_parameters['api-version'] = self._serialize.query("self.api_version", self.api_version, 'str') 80 if filter is not None: 81 query_parameters['$filter'] = self._serialize.query("filter", filter, 'str') 82 83 else: 84 url = next_link 85 query_parameters = {} 86 87 # Construct headers 88 header_parameters = {} 89 header_parameters['Accept'] = 'application/json' 90 if self.config.generate_client_request_id: 91 header_parameters['x-ms-client-request-id'] = str(uuid.uuid1()) 92 if custom_headers: 93 header_parameters.update(custom_headers) 94 if self.config.accept_language is not None: 95 header_parameters['accept-language'] = self._serialize.header("self.config.accept_language", self.config.accept_language, 'str') 96 97 # Construct and send request 98 request = self._client.get(url, query_parameters, header_parameters) 99 return request 100 101 def internal_paging(next_link=None): 102 request = prepare_request(next_link) 103 104 response = self._client.send(request, stream=False, **operation_config) 105 106 if response.status_code not in [200]: 107 exp = CloudError(response) 108 exp.request_id = response.headers.get('x-ms-request-id') 109 raise exp 110 111 return response 112 113 # Deserialize response 114 header_dict = None 115 if raw: 116 header_dict = {} 117 deserialized = models.ProtectableContainerResourcePaged(internal_paging, self._deserialize.dependencies, header_dict) 118 119 return deserialized 120 list.metadata = {'url': '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.RecoveryServices/vaults/{vaultName}/backupFabrics/{fabricName}/protectableContainers'} 121