diff --git a/sdk/devcenter/azure-mgmt-devcenter/CHANGELOG.md b/sdk/devcenter/azure-mgmt-devcenter/CHANGELOG.md
index 72b498df33ef..e0344c858b19 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/CHANGELOG.md
+++ b/sdk/devcenter/azure-mgmt-devcenter/CHANGELOG.md
@@ -1,5 +1,152 @@
# Release History
+## 1.2.0b1 (2025-04-14)
+
+### Features Added
+
+ - Client `DevCenterMgmtClient` added operation group `encryption_sets`
+ - Client `DevCenterMgmtClient` added operation group `project_policies`
+ - Client `DevCenterMgmtClient` added operation group `customization_tasks`
+ - Client `DevCenterMgmtClient` added operation group `dev_center_catalog_image_definitions`
+ - Client `DevCenterMgmtClient` added operation group `dev_center_catalog_image_definition_builds`
+ - Client `DevCenterMgmtClient` added operation group `dev_center_catalog_image_definition_build`
+ - Client `DevCenterMgmtClient` added operation group `project_catalog_image_definitions`
+ - Client `DevCenterMgmtClient` added operation group `project_catalog_image_definition_builds`
+ - Client `DevCenterMgmtClient` added operation group `project_catalog_image_definition_build`
+ - Enum `CatalogItemType` added member `IMAGE_DEFINITION`
+ - Model `DevCenter` added property `network_settings`
+ - Model `DevCenter` added property `dev_box_provisioning_settings`
+ - Model `DevCenterProperties` added property `network_settings`
+ - Model `DevCenterProperties` added property `dev_box_provisioning_settings`
+ - Model `DevCenterUpdate` added property `network_settings`
+ - Model `DevCenterUpdate` added property `dev_box_provisioning_settings`
+ - Model `DevCenterUpdateProperties` added property `network_settings`
+ - Model `DevCenterUpdateProperties` added property `dev_box_provisioning_settings`
+ - Enum `DomainJoinType` added member `NONE`
+ - Enum `HealthCheckStatus` added member `INFORMATIONAL`
+ - Model `Pool` added property `dev_box_definition_type`
+ - Model `Pool` added property `dev_box_definition`
+ - Model `Pool` added property `stop_on_no_connect`
+ - Model `Pool` added property `active_hours_configuration`
+ - Model `Pool` added property `dev_box_tunnel_enable_status`
+ - Model `PoolProperties` added property `dev_box_definition_type`
+ - Model `PoolProperties` added property `dev_box_definition`
+ - Model `PoolProperties` added property `stop_on_no_connect`
+ - Model `PoolProperties` added property `active_hours_configuration`
+ - Model `PoolProperties` added property `dev_box_tunnel_enable_status`
+ - Model `PoolUpdate` added property `dev_box_definition_type`
+ - Model `PoolUpdate` added property `dev_box_definition`
+ - Model `PoolUpdate` added property `stop_on_no_connect`
+ - Model `PoolUpdate` added property `active_hours_configuration`
+ - Model `PoolUpdate` added property `dev_box_tunnel_enable_status`
+ - Model `PoolUpdateProperties` added property `dev_box_definition_type`
+ - Model `PoolUpdateProperties` added property `dev_box_definition`
+ - Model `PoolUpdateProperties` added property `stop_on_no_connect`
+ - Model `PoolUpdateProperties` added property `active_hours_configuration`
+ - Model `PoolUpdateProperties` added property `dev_box_tunnel_enable_status`
+ - Model `Project` added property `customization_settings`
+ - Model `Project` added property `dev_box_auto_delete_settings`
+ - Model `Project` added property `azure_ai_services_settings`
+ - Model `Project` added property `serverless_gpu_sessions_settings`
+ - Model `Project` added property `workspace_storage_settings`
+ - Model `ProjectProperties` added property `customization_settings`
+ - Model `ProjectProperties` added property `dev_box_auto_delete_settings`
+ - Model `ProjectProperties` added property `azure_ai_services_settings`
+ - Model `ProjectProperties` added property `serverless_gpu_sessions_settings`
+ - Model `ProjectProperties` added property `workspace_storage_settings`
+ - Model `ProjectUpdate` added property `customization_settings`
+ - Model `ProjectUpdate` added property `dev_box_auto_delete_settings`
+ - Model `ProjectUpdate` added property `azure_ai_services_settings`
+ - Model `ProjectUpdate` added property `serverless_gpu_sessions_settings`
+ - Model `ProjectUpdate` added property `workspace_storage_settings`
+ - Model `ProjectUpdateProperties` added property `customization_settings`
+ - Model `ProjectUpdateProperties` added property `dev_box_auto_delete_settings`
+ - Model `ProjectUpdateProperties` added property `azure_ai_services_settings`
+ - Model `ProjectUpdateProperties` added property `serverless_gpu_sessions_settings`
+ - Model `ProjectUpdateProperties` added property `workspace_storage_settings`
+ - Added model `ActiveHoursConfiguration`
+ - Added enum `AutoImageBuildStatus`
+ - Added enum `AutoStartEnableStatus`
+ - Added enum `AzureAiServicesEnableStatus`
+ - Added model `AzureAiServicesSettings`
+ - Added model `CustomizationTask`
+ - Added model `CustomizationTaskInput`
+ - Added enum `CustomizationTaskInputType`
+ - Added model `CustomizationTaskInstance`
+ - Added model `CustomizationTaskListResult`
+ - Added model `DefinitionParametersItem`
+ - Added enum `DevBoxAutoDeleteEnableStatus`
+ - Added model `DevBoxAutoDeleteSettings`
+ - Added model `DevBoxProvisioningSettings`
+ - Added enum `DevBoxTunnelEnableStatus`
+ - Added model `DevCenterEncryptionSet`
+ - Added model `DevCenterEncryptionSetProperties`
+ - Added model `DevCenterEncryptionSetUpdateProperties`
+ - Added model `DevCenterNetworkSettings`
+ - Added enum `DevCenterResourceType`
+ - Added enum `DevboxDisksEncryptionEnableStatus`
+ - Added model `EncryptionSetListResult`
+ - Added model `EncryptionSetUpdate`
+ - Added model `ImageCreationErrorDetails`
+ - Added model `ImageDefinition`
+ - Added model `ImageDefinitionBuild`
+ - Added model `ImageDefinitionBuildDetails`
+ - Added model `ImageDefinitionBuildListResult`
+ - Added enum `ImageDefinitionBuildStatus`
+ - Added model `ImageDefinitionBuildTask`
+ - Added model `ImageDefinitionBuildTaskGroup`
+ - Added model `ImageDefinitionBuildTaskParametersItem`
+ - Added model `ImageDefinitionListResult`
+ - Added model `ImageDefinitionReference`
+ - Added model `InheritedSettingsForProject`
+ - Added enum `InstallAzureMonitorAgentEnableStatus`
+ - Added enum `KeepAwakeEnableStatus`
+ - Added model `LatestImageBuild`
+ - Added enum `MicrosoftHostedNetworkEnableStatus`
+ - Added enum `PolicyAction`
+ - Added model `PoolDevBoxDefinition`
+ - Added enum `PoolDevBoxDefinitionType`
+ - Added enum `ProjectCustomizationIdentityType`
+ - Added model `ProjectCustomizationManagedIdentity`
+ - Added model `ProjectCustomizationSettings`
+ - Added model `ProjectNetworkSettings`
+ - Added model `ProjectPolicy`
+ - Added model `ProjectPolicyListResult`
+ - Added model `ProjectPolicyProperties`
+ - Added model `ProjectPolicyUpdate`
+ - Added model `ProjectPolicyUpdateProperties`
+ - Added model `ResourcePolicy`
+ - Added enum `ServerlessGpuSessionsEnableStatus`
+ - Added model `ServerlessGpuSessionsSettings`
+ - Added model `StopOnNoConnectConfiguration`
+ - Added enum `StopOnNoConnectEnableStatus`
+ - Added enum `UserCustomizationsEnableStatus`
+ - Added enum `WorkspaceStorageEnableStatus`
+ - Added model `WorkspaceStorageSettings`
+ - Model `ImageVersionsOperations` added method `get_by_project`
+ - Model `ImageVersionsOperations` added method `list_by_project`
+ - Model `ImagesOperations` added method `get_by_project`
+ - Model `ImagesOperations` added method `list_by_project`
+ - Model `ProjectsOperations` added method `get_inherited_settings`
+ - Model `SkusOperations` added method `list_by_project`
+ - Added model `CustomizationTasksOperations`
+ - Added model `DevCenterCatalogImageDefinitionBuildOperations`
+ - Added model `DevCenterCatalogImageDefinitionBuildsOperations`
+ - Added model `DevCenterCatalogImageDefinitionsOperations`
+ - Added model `EncryptionSetsOperations`
+ - Added model `ProjectCatalogImageDefinitionBuildOperations`
+ - Added model `ProjectCatalogImageDefinitionBuildsOperations`
+ - Added model `ProjectCatalogImageDefinitionsOperations`
+ - Added model `ProjectPoliciesOperations`
+ - Method `EncryptionSetsOperations.begin_create_or_update` has a new overload `def begin_create_or_update(self: None, resource_group_name: str, dev_center_name: str, encryption_set_name: str, body: DevCenterEncryptionSet, content_type: str)`
+ - Method `EncryptionSetsOperations.begin_create_or_update` has a new overload `def begin_create_or_update(self: None, resource_group_name: str, dev_center_name: str, encryption_set_name: str, body: IO[bytes], content_type: str)`
+ - Method `EncryptionSetsOperations.begin_update` has a new overload `def begin_update(self: None, resource_group_name: str, dev_center_name: str, encryption_set_name: str, body: EncryptionSetUpdate, content_type: str)`
+ - Method `EncryptionSetsOperations.begin_update` has a new overload `def begin_update(self: None, resource_group_name: str, dev_center_name: str, encryption_set_name: str, body: IO[bytes], content_type: str)`
+ - Method `ProjectPoliciesOperations.begin_create_or_update` has a new overload `def begin_create_or_update(self: None, resource_group_name: str, dev_center_name: str, project_policy_name: str, body: ProjectPolicy, content_type: str)`
+ - Method `ProjectPoliciesOperations.begin_create_or_update` has a new overload `def begin_create_or_update(self: None, resource_group_name: str, dev_center_name: str, project_policy_name: str, body: IO[bytes], content_type: str)`
+ - Method `ProjectPoliciesOperations.begin_update` has a new overload `def begin_update(self: None, resource_group_name: str, dev_center_name: str, project_policy_name: str, body: ProjectPolicyUpdate, content_type: str)`
+ - Method `ProjectPoliciesOperations.begin_update` has a new overload `def begin_update(self: None, resource_group_name: str, dev_center_name: str, project_policy_name: str, body: IO[bytes], content_type: str)`
+
## 1.1.0 (2024-04-22)
### Features Added
diff --git a/sdk/devcenter/azure-mgmt-devcenter/README.md b/sdk/devcenter/azure-mgmt-devcenter/README.md
index 0e92776c80d5..f1974c829576 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/README.md
+++ b/sdk/devcenter/azure-mgmt-devcenter/README.md
@@ -24,7 +24,7 @@ pip install azure-identity
### Authentication
-By default, [Azure Active Directory](https://aka.ms/awps/aad) token authentication depends on correct configure of following environment variables.
+By default, [Azure Active Directory](https://aka.ms/awps/aad) token authentication depends on correct configuration of the following environment variables.
- `AZURE_CLIENT_ID` for Azure client ID.
- `AZURE_TENANT_ID` for Azure tenant ID.
diff --git a/sdk/devcenter/azure-mgmt-devcenter/_meta.json b/sdk/devcenter/azure-mgmt-devcenter/_meta.json
index 1cbcb91feb74..a4da42037d89 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/_meta.json
+++ b/sdk/devcenter/azure-mgmt-devcenter/_meta.json
@@ -1,11 +1,11 @@
{
- "commit": "0a589a481da1288f9d3458572e580113002bd53b",
+ "commit": "957ac0f42c319b423ce10a8a9ffbff9d1c211283",
"repository_url": "https://github.com/Azure/azure-rest-api-specs",
- "autorest": "3.9.7",
+ "autorest": "3.10.2",
"use": [
- "@autorest/python@6.13.7",
+ "@autorest/python@6.27.4",
"@autorest/modelerfour@4.27.0"
],
- "autorest_command": "autorest specification/devcenter/resource-manager/readme.md --generate-sample=True --include-x-ms-examples-original-file=True --python --python-sdks-folder=/home/vsts/work/1/azure-sdk-for-python/sdk --use=@autorest/python@6.13.7 --use=@autorest/modelerfour@4.27.0 --version=3.9.7 --version-tolerant=False",
+ "autorest_command": "autorest specification/devcenter/resource-manager/readme.md --generate-sample=True --generate-test=True --include-x-ms-examples-original-file=True --python --python-sdks-folder=/mnt/vss/_work/1/s/azure-sdk-for-python/sdk --use=@autorest/python@6.27.4 --use=@autorest/modelerfour@4.27.0 --version=3.10.2 --version-tolerant=False",
"readme": "specification/devcenter/resource-manager/readme.md"
}
\ No newline at end of file
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/__init__.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/__init__.py
index d5344203a45b..7b2a78ac96dd 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/__init__.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/__init__.py
@@ -5,15 +5,21 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+# pylint: disable=wrong-import-position
-from ._dev_center_mgmt_client import DevCenterMgmtClient
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._patch import * # pylint: disable=unused-wildcard-import
+
+from ._dev_center_mgmt_client import DevCenterMgmtClient # type: ignore
from ._version import VERSION
__version__ = VERSION
try:
from ._patch import __all__ as _patch_all
- from ._patch import * # pylint: disable=unused-wildcard-import
+ from ._patch import *
except ImportError:
_patch_all = []
from ._patch import patch_sdk as _patch_sdk
@@ -21,6 +27,6 @@
__all__ = [
"DevCenterMgmtClient",
]
-__all__.extend([p for p in _patch_all if p not in __all__])
+__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
_patch_sdk()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_configuration.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_configuration.py
index fac8ede3b1a5..f10c14ec0dc7 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_configuration.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_configuration.py
@@ -14,11 +14,10 @@
from ._version import VERSION
if TYPE_CHECKING:
- # pylint: disable=unused-import,ungrouped-imports
from azure.core.credentials import TokenCredential
-class DevCenterMgmtClientConfiguration: # pylint: disable=too-many-instance-attributes,name-too-long
+class DevCenterMgmtClientConfiguration: # pylint: disable=too-many-instance-attributes
"""Configuration for DevCenterMgmtClient.
Note that all parameters used to create this instance are saved as instance
@@ -28,13 +27,13 @@ class DevCenterMgmtClientConfiguration: # pylint: disable=too-many-instance-att
:type credential: ~azure.core.credentials.TokenCredential
:param subscription_id: The ID of the target subscription. Required.
:type subscription_id: str
- :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this
- default value may result in unsupported behavior.
+ :keyword api_version: Api Version. Default value is "2025-04-01-preview". Note that overriding
+ this default value may result in unsupported behavior.
:paramtype api_version: str
"""
def __init__(self, credential: "TokenCredential", subscription_id: str, **kwargs: Any) -> None:
- api_version: str = kwargs.pop("api_version", "2024-02-01")
+ api_version: str = kwargs.pop("api_version", "2025-04-01-preview")
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_dev_center_mgmt_client.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_dev_center_mgmt_client.py
index 4e17d7c75dbb..4d6dddd9687c 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_dev_center_mgmt_client.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_dev_center_mgmt_client.py
@@ -8,6 +8,7 @@
from copy import deepcopy
from typing import Any, TYPE_CHECKING
+from typing_extensions import Self
from azure.core.pipeline import policies
from azure.core.rest import HttpRequest, HttpResponse
@@ -22,8 +23,13 @@
CatalogsOperations,
CheckNameAvailabilityOperations,
CheckScopedNameAvailabilityOperations,
+ CustomizationTasksOperations,
DevBoxDefinitionsOperations,
+ DevCenterCatalogImageDefinitionBuildOperations,
+ DevCenterCatalogImageDefinitionBuildsOperations,
+ DevCenterCatalogImageDefinitionsOperations,
DevCentersOperations,
+ EncryptionSetsOperations,
EnvironmentDefinitionsOperations,
EnvironmentTypesOperations,
GalleriesOperations,
@@ -35,8 +41,12 @@
PoolsOperations,
ProjectAllowedEnvironmentTypesOperations,
ProjectCatalogEnvironmentDefinitionsOperations,
+ ProjectCatalogImageDefinitionBuildOperations,
+ ProjectCatalogImageDefinitionBuildsOperations,
+ ProjectCatalogImageDefinitionsOperations,
ProjectCatalogsOperations,
ProjectEnvironmentTypesOperations,
+ ProjectPoliciesOperations,
ProjectsOperations,
SchedulesOperations,
SkusOperations,
@@ -44,15 +54,18 @@
)
if TYPE_CHECKING:
- # pylint: disable=unused-import,ungrouped-imports
from azure.core.credentials import TokenCredential
-class DevCenterMgmtClient: # pylint: disable=client-accepts-api-version-keyword,too-many-instance-attributes
+class DevCenterMgmtClient: # pylint: disable=too-many-instance-attributes
"""DevCenter Management API.
:ivar dev_centers: DevCentersOperations operations
:vartype dev_centers: azure.mgmt.devcenter.operations.DevCentersOperations
+ :ivar encryption_sets: EncryptionSetsOperations operations
+ :vartype encryption_sets: azure.mgmt.devcenter.operations.EncryptionSetsOperations
+ :ivar project_policies: ProjectPoliciesOperations operations
+ :vartype project_policies: azure.mgmt.devcenter.operations.ProjectPoliciesOperations
:ivar projects: ProjectsOperations operations
:vartype projects: azure.mgmt.devcenter.operations.ProjectsOperations
:ivar attached_networks: AttachedNetworksOperations operations
@@ -72,6 +85,8 @@ class DevCenterMgmtClient: # pylint: disable=client-accepts-api-version-keyword
:vartype images: azure.mgmt.devcenter.operations.ImagesOperations
:ivar image_versions: ImageVersionsOperations operations
:vartype image_versions: azure.mgmt.devcenter.operations.ImageVersionsOperations
+ :ivar skus: SkusOperations operations
+ :vartype skus: azure.mgmt.devcenter.operations.SkusOperations
:ivar catalogs: CatalogsOperations operations
:vartype catalogs: azure.mgmt.devcenter.operations.CatalogsOperations
:ivar environment_types: EnvironmentTypesOperations operations
@@ -96,8 +111,31 @@ class DevCenterMgmtClient: # pylint: disable=client-accepts-api-version-keyword
:ivar check_scoped_name_availability: CheckScopedNameAvailabilityOperations operations
:vartype check_scoped_name_availability:
azure.mgmt.devcenter.operations.CheckScopedNameAvailabilityOperations
- :ivar skus: SkusOperations operations
- :vartype skus: azure.mgmt.devcenter.operations.SkusOperations
+ :ivar customization_tasks: CustomizationTasksOperations operations
+ :vartype customization_tasks: azure.mgmt.devcenter.operations.CustomizationTasksOperations
+ :ivar dev_center_catalog_image_definitions: DevCenterCatalogImageDefinitionsOperations
+ operations
+ :vartype dev_center_catalog_image_definitions:
+ azure.mgmt.devcenter.operations.DevCenterCatalogImageDefinitionsOperations
+ :ivar dev_center_catalog_image_definition_builds:
+ DevCenterCatalogImageDefinitionBuildsOperations operations
+ :vartype dev_center_catalog_image_definition_builds:
+ azure.mgmt.devcenter.operations.DevCenterCatalogImageDefinitionBuildsOperations
+ :ivar dev_center_catalog_image_definition_build: DevCenterCatalogImageDefinitionBuildOperations
+ operations
+ :vartype dev_center_catalog_image_definition_build:
+ azure.mgmt.devcenter.operations.DevCenterCatalogImageDefinitionBuildOperations
+ :ivar project_catalog_image_definitions: ProjectCatalogImageDefinitionsOperations operations
+ :vartype project_catalog_image_definitions:
+ azure.mgmt.devcenter.operations.ProjectCatalogImageDefinitionsOperations
+ :ivar project_catalog_image_definition_builds: ProjectCatalogImageDefinitionBuildsOperations
+ operations
+ :vartype project_catalog_image_definition_builds:
+ azure.mgmt.devcenter.operations.ProjectCatalogImageDefinitionBuildsOperations
+ :ivar project_catalog_image_definition_build: ProjectCatalogImageDefinitionBuildOperations
+ operations
+ :vartype project_catalog_image_definition_build:
+ azure.mgmt.devcenter.operations.ProjectCatalogImageDefinitionBuildOperations
:ivar pools: PoolsOperations operations
:vartype pools: azure.mgmt.devcenter.operations.PoolsOperations
:ivar schedules: SchedulesOperations operations
@@ -110,8 +148,8 @@ class DevCenterMgmtClient: # pylint: disable=client-accepts-api-version-keyword
:type subscription_id: str
:param base_url: Service URL. Default value is "https://management.azure.com".
:type base_url: str
- :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this
- default value may result in unsupported behavior.
+ :keyword api_version: Api Version. Default value is "2025-04-01-preview". Note that overriding
+ this default value may result in unsupported behavior.
:paramtype api_version: str
:keyword int polling_interval: Default waiting time between two polls for LRO operations if no
Retry-After header is present.
@@ -152,6 +190,10 @@ def __init__(
self._deserialize = Deserializer(client_models)
self._serialize.client_side_validation = False
self.dev_centers = DevCentersOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.encryption_sets = EncryptionSetsOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.project_policies = ProjectPoliciesOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
self.projects = ProjectsOperations(self._client, self._config, self._serialize, self._deserialize)
self.attached_networks = AttachedNetworksOperations(
self._client, self._config, self._serialize, self._deserialize
@@ -168,6 +210,7 @@ def __init__(
self.galleries = GalleriesOperations(self._client, self._config, self._serialize, self._deserialize)
self.images = ImagesOperations(self._client, self._config, self._serialize, self._deserialize)
self.image_versions = ImageVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.skus = SkusOperations(self._client, self._config, self._serialize, self._deserialize)
self.catalogs = CatalogsOperations(self._client, self._config, self._serialize, self._deserialize)
self.environment_types = EnvironmentTypesOperations(
self._client, self._config, self._serialize, self._deserialize
@@ -192,7 +235,27 @@ def __init__(
self.check_scoped_name_availability = CheckScopedNameAvailabilityOperations(
self._client, self._config, self._serialize, self._deserialize
)
- self.skus = SkusOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.customization_tasks = CustomizationTasksOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.dev_center_catalog_image_definitions = DevCenterCatalogImageDefinitionsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.dev_center_catalog_image_definition_builds = DevCenterCatalogImageDefinitionBuildsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.dev_center_catalog_image_definition_build = DevCenterCatalogImageDefinitionBuildOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.project_catalog_image_definitions = ProjectCatalogImageDefinitionsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.project_catalog_image_definition_builds = ProjectCatalogImageDefinitionBuildsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.project_catalog_image_definition_build = ProjectCatalogImageDefinitionBuildOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
self.pools = PoolsOperations(self._client, self._config, self._serialize, self._deserialize)
self.schedules = SchedulesOperations(self._client, self._config, self._serialize, self._deserialize)
self.network_connections = NetworkConnectionsOperations(
@@ -224,7 +287,7 @@ def _send_request(self, request: HttpRequest, *, stream: bool = False, **kwargs:
def close(self) -> None:
self._client.close()
- def __enter__(self) -> "DevCenterMgmtClient":
+ def __enter__(self) -> Self:
self._client.__enter__()
return self
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_serialization.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_serialization.py
index 2f781d740827..b24ab2885450 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_serialization.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_serialization.py
@@ -1,3 +1,4 @@
+# pylint: disable=too-many-lines
# --------------------------------------------------------------------------
#
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -24,7 +25,6 @@
#
# --------------------------------------------------------------------------
-# pylint: skip-file
# pyright: reportUnnecessaryTypeIgnoreComment=false
from base64 import b64decode, b64encode
@@ -52,7 +52,6 @@
MutableMapping,
Type,
List,
- Mapping,
)
try:
@@ -91,6 +90,8 @@ def deserialize_from_text(cls, data: Optional[Union[AnyStr, IO]], content_type:
:param data: Input, could be bytes or stream (will be decoded with UTF8) or text
:type data: str or bytes or IO
:param str content_type: The content type.
+ :return: The deserialized data.
+ :rtype: object
"""
if hasattr(data, "read"):
# Assume a stream
@@ -112,7 +113,7 @@ def deserialize_from_text(cls, data: Optional[Union[AnyStr, IO]], content_type:
try:
return json.loads(data_as_str)
except ValueError as err:
- raise DeserializationError("JSON is invalid: {}".format(err), err)
+ raise DeserializationError("JSON is invalid: {}".format(err), err) from err
elif "xml" in (content_type or []):
try:
@@ -144,6 +145,8 @@ def _json_attemp(data):
# context otherwise.
_LOGGER.critical("Wasn't XML not JSON, failing")
raise DeserializationError("XML is invalid") from err
+ elif content_type.startswith("text/"):
+ return data_as_str
raise DeserializationError("Cannot deserialize content-type: {}".format(content_type))
@classmethod
@@ -153,6 +156,11 @@ def deserialize_from_http_generics(cls, body_bytes: Optional[Union[AnyStr, IO]],
Use bytes and headers to NOT use any requests/aiohttp or whatever
specific implementation.
Headers will tested for "content-type"
+
+ :param bytes body_bytes: The body of the response.
+ :param dict headers: The headers of the response.
+ :returns: The deserialized data.
+ :rtype: object
"""
# Try to use content-type from headers if available
content_type = None
@@ -182,15 +190,30 @@ class UTC(datetime.tzinfo):
"""Time Zone info for handling UTC"""
def utcoffset(self, dt):
- """UTF offset for UTC is 0."""
+ """UTF offset for UTC is 0.
+
+ :param datetime.datetime dt: The datetime
+ :returns: The offset
+ :rtype: datetime.timedelta
+ """
return datetime.timedelta(0)
def tzname(self, dt):
- """Timestamp representation."""
+ """Timestamp representation.
+
+ :param datetime.datetime dt: The datetime
+ :returns: The timestamp representation
+ :rtype: str
+ """
return "Z"
def dst(self, dt):
- """No daylight saving for UTC."""
+ """No daylight saving for UTC.
+
+ :param datetime.datetime dt: The datetime
+ :returns: The daylight saving time
+ :rtype: datetime.timedelta
+ """
return datetime.timedelta(hours=1)
@@ -204,7 +227,7 @@ class _FixedOffset(datetime.tzinfo): # type: ignore
:param datetime.timedelta offset: offset in timedelta format
"""
- def __init__(self, offset):
+ def __init__(self, offset) -> None:
self.__offset = offset
def utcoffset(self, dt):
@@ -233,24 +256,26 @@ def __getinitargs__(self):
_FLATTEN = re.compile(r"(? None:
self.additional_properties: Optional[Dict[str, Any]] = {}
- for k in kwargs:
+ for k in kwargs: # pylint: disable=consider-using-dict-items
if k not in self._attribute_map:
_LOGGER.warning("%s is not a known attribute of class %s and will be ignored", k, self.__class__)
elif k in self._validation and self._validation[k].get("readonly", False):
@@ -298,13 +330,23 @@ def __init__(self, **kwargs: Any) -> None:
setattr(self, k, kwargs[k])
def __eq__(self, other: Any) -> bool:
- """Compare objects by comparing all attributes."""
+ """Compare objects by comparing all attributes.
+
+ :param object other: The object to compare
+ :returns: True if objects are equal
+ :rtype: bool
+ """
if isinstance(other, self.__class__):
return self.__dict__ == other.__dict__
return False
def __ne__(self, other: Any) -> bool:
- """Compare objects by comparing all attributes."""
+ """Compare objects by comparing all attributes.
+
+ :param object other: The object to compare
+ :returns: True if objects are not equal
+ :rtype: bool
+ """
return not self.__eq__(other)
def __str__(self) -> str:
@@ -324,7 +366,11 @@ def is_xml_model(cls) -> bool:
@classmethod
def _create_xml_node(cls):
- """Create XML node."""
+ """Create XML node.
+
+ :returns: The XML node
+ :rtype: xml.etree.ElementTree.Element
+ """
try:
xml_map = cls._xml_map # type: ignore
except AttributeError:
@@ -344,7 +390,9 @@ def serialize(self, keep_readonly: bool = False, **kwargs: Any) -> JSON:
:rtype: dict
"""
serializer = Serializer(self._infer_class_models())
- return serializer._serialize(self, keep_readonly=keep_readonly, **kwargs) # type: ignore
+ return serializer._serialize( # type: ignore # pylint: disable=protected-access
+ self, keep_readonly=keep_readonly, **kwargs
+ )
def as_dict(
self,
@@ -378,12 +426,15 @@ def my_key_transformer(key, attr_desc, value):
If you want XML serialization, you can pass the kwargs is_xml=True.
+ :param bool keep_readonly: If you want to serialize the readonly attributes
:param function key_transformer: A key transformer function.
:returns: A dict JSON compatible object
:rtype: dict
"""
serializer = Serializer(self._infer_class_models())
- return serializer._serialize(self, key_transformer=key_transformer, keep_readonly=keep_readonly, **kwargs) # type: ignore
+ return serializer._serialize( # type: ignore # pylint: disable=protected-access
+ self, key_transformer=key_transformer, keep_readonly=keep_readonly, **kwargs
+ )
@classmethod
def _infer_class_models(cls):
@@ -393,7 +444,7 @@ def _infer_class_models(cls):
client_models = {k: v for k, v in models.__dict__.items() if isinstance(v, type)}
if cls.__name__ not in client_models:
raise ValueError("Not Autorest generated code")
- except Exception:
+ except Exception: # pylint: disable=broad-exception-caught
# Assume it's not Autorest generated (tests?). Add ourselves as dependencies.
client_models = {cls.__name__: cls}
return client_models
@@ -406,6 +457,7 @@ def deserialize(cls: Type[ModelType], data: Any, content_type: Optional[str] = N
:param str content_type: JSON by default, set application/xml if XML.
:returns: An instance of this model
:raises: DeserializationError if something went wrong
+ :rtype: ModelType
"""
deserializer = Deserializer(cls._infer_class_models())
return deserializer(cls.__name__, data, content_type=content_type) # type: ignore
@@ -424,9 +476,11 @@ def from_dict(
and last_rest_key_case_insensitive_extractor)
:param dict data: A dict using RestAPI structure
+ :param function key_extractors: A key extractor function.
:param str content_type: JSON by default, set application/xml if XML.
:returns: An instance of this model
:raises: DeserializationError if something went wrong
+ :rtype: ModelType
"""
deserializer = Deserializer(cls._infer_class_models())
deserializer.key_extractors = ( # type: ignore
@@ -446,21 +500,25 @@ def _flatten_subtype(cls, key, objects):
return {}
result = dict(cls._subtype_map[key])
for valuetype in cls._subtype_map[key].values():
- result.update(objects[valuetype]._flatten_subtype(key, objects))
+ result.update(objects[valuetype]._flatten_subtype(key, objects)) # pylint: disable=protected-access
return result
@classmethod
def _classify(cls, response, objects):
"""Check the class _subtype_map for any child classes.
We want to ignore any inherited _subtype_maps.
- Remove the polymorphic key from the initial data.
+
+ :param dict response: The initial data
+ :param dict objects: The class objects
+ :returns: The class to be used
+ :rtype: class
"""
for subtype_key in cls.__dict__.get("_subtype_map", {}).keys():
subtype_value = None
if not isinstance(response, ET.Element):
rest_api_response_key = cls._get_rest_key_parts(subtype_key)[-1]
- subtype_value = response.pop(rest_api_response_key, None) or response.pop(subtype_key, None)
+ subtype_value = response.get(rest_api_response_key, None) or response.get(subtype_key, None)
else:
subtype_value = xml_key_extractor(subtype_key, cls._attribute_map[subtype_key], response)
if subtype_value:
@@ -499,11 +557,13 @@ def _decode_attribute_map_key(key):
inside the received data.
:param str key: A key string from the generated code
+ :returns: The decoded key
+ :rtype: str
"""
return key.replace("\\.", ".")
-class Serializer(object):
+class Serializer: # pylint: disable=too-many-public-methods
"""Request object model serializer."""
basic_types = {str: "str", int: "int", bool: "bool", float: "float"}
@@ -538,7 +598,7 @@ class Serializer(object):
"multiple": lambda x, y: x % y != 0,
}
- def __init__(self, classes: Optional[Mapping[str, type]] = None):
+ def __init__(self, classes: Optional[Mapping[str, type]] = None) -> None:
self.serialize_type = {
"iso-8601": Serializer.serialize_iso,
"rfc-1123": Serializer.serialize_rfc,
@@ -558,13 +618,16 @@ def __init__(self, classes: Optional[Mapping[str, type]] = None):
self.key_transformer = full_restapi_key_transformer
self.client_side_validation = True
- def _serialize(self, target_obj, data_type=None, **kwargs):
+ def _serialize( # pylint: disable=too-many-nested-blocks, too-many-branches, too-many-statements, too-many-locals
+ self, target_obj, data_type=None, **kwargs
+ ):
"""Serialize data into a string according to type.
- :param target_obj: The data to be serialized.
+ :param object target_obj: The data to be serialized.
:param str data_type: The type to be serialized from.
:rtype: str, dict
:raises: SerializationError if serialization fails.
+ :returns: The serialized data.
"""
key_transformer = kwargs.get("key_transformer", self.key_transformer)
keep_readonly = kwargs.get("keep_readonly", False)
@@ -590,12 +653,14 @@ def _serialize(self, target_obj, data_type=None, **kwargs):
serialized = {}
if is_xml_model_serialization:
- serialized = target_obj._create_xml_node()
+ serialized = target_obj._create_xml_node() # pylint: disable=protected-access
try:
- attributes = target_obj._attribute_map
+ attributes = target_obj._attribute_map # pylint: disable=protected-access
for attr, attr_desc in attributes.items():
attr_name = attr
- if not keep_readonly and target_obj._validation.get(attr_name, {}).get("readonly", False):
+ if not keep_readonly and target_obj._validation.get( # pylint: disable=protected-access
+ attr_name, {}
+ ).get("readonly", False):
continue
if attr_name == "additional_properties" and attr_desc["key"] == "":
@@ -631,7 +696,8 @@ def _serialize(self, target_obj, data_type=None, **kwargs):
if isinstance(new_attr, list):
serialized.extend(new_attr) # type: ignore
elif isinstance(new_attr, ET.Element):
- # If the down XML has no XML/Name, we MUST replace the tag with the local tag. But keeping the namespaces.
+ # If the down XML has no XML/Name,
+ # we MUST replace the tag with the local tag. But keeping the namespaces.
if "name" not in getattr(orig_attr, "_xml_map", {}):
splitted_tag = new_attr.tag.split("}")
if len(splitted_tag) == 2: # Namespace
@@ -662,17 +728,17 @@ def _serialize(self, target_obj, data_type=None, **kwargs):
except (AttributeError, KeyError, TypeError) as err:
msg = "Attribute {} in object {} cannot be serialized.\n{}".format(attr_name, class_name, str(target_obj))
raise SerializationError(msg) from err
- else:
- return serialized
+ return serialized
def body(self, data, data_type, **kwargs):
"""Serialize data intended for a request body.
- :param data: The data to be serialized.
+ :param object data: The data to be serialized.
:param str data_type: The type to be serialized from.
:rtype: dict
:raises: SerializationError if serialization fails.
:raises: ValueError if data is None
+ :returns: The serialized request body
"""
# Just in case this is a dict
@@ -701,7 +767,7 @@ def body(self, data, data_type, **kwargs):
attribute_key_case_insensitive_extractor,
last_rest_key_case_insensitive_extractor,
]
- data = deserializer._deserialize(data_type, data)
+ data = deserializer._deserialize(data_type, data) # pylint: disable=protected-access
except DeserializationError as err:
raise SerializationError("Unable to build a model: " + str(err)) from err
@@ -710,9 +776,11 @@ def body(self, data, data_type, **kwargs):
def url(self, name, data, data_type, **kwargs):
"""Serialize data intended for a URL path.
- :param data: The data to be serialized.
+ :param str name: The name of the URL path parameter.
+ :param object data: The data to be serialized.
:param str data_type: The type to be serialized from.
:rtype: str
+ :returns: The serialized URL path
:raises: TypeError if serialization fails.
:raises: ValueError if data is None
"""
@@ -726,21 +794,20 @@ def url(self, name, data, data_type, **kwargs):
output = output.replace("{", quote("{")).replace("}", quote("}"))
else:
output = quote(str(output), safe="")
- except SerializationError:
- raise TypeError("{} must be type {}.".format(name, data_type))
- else:
- return output
+ except SerializationError as exc:
+ raise TypeError("{} must be type {}.".format(name, data_type)) from exc
+ return output
def query(self, name, data, data_type, **kwargs):
"""Serialize data intended for a URL query.
- :param data: The data to be serialized.
+ :param str name: The name of the query parameter.
+ :param object data: The data to be serialized.
:param str data_type: The type to be serialized from.
- :keyword bool skip_quote: Whether to skip quote the serialized result.
- Defaults to False.
:rtype: str, list
:raises: TypeError if serialization fails.
:raises: ValueError if data is None
+ :returns: The serialized query parameter
"""
try:
# Treat the list aside, since we don't want to encode the div separator
@@ -757,19 +824,20 @@ def query(self, name, data, data_type, **kwargs):
output = str(output)
else:
output = quote(str(output), safe="")
- except SerializationError:
- raise TypeError("{} must be type {}.".format(name, data_type))
- else:
- return str(output)
+ except SerializationError as exc:
+ raise TypeError("{} must be type {}.".format(name, data_type)) from exc
+ return str(output)
def header(self, name, data, data_type, **kwargs):
"""Serialize data intended for a request header.
- :param data: The data to be serialized.
+ :param str name: The name of the header.
+ :param object data: The data to be serialized.
:param str data_type: The type to be serialized from.
:rtype: str
:raises: TypeError if serialization fails.
:raises: ValueError if data is None
+ :returns: The serialized header
"""
try:
if data_type in ["[str]"]:
@@ -778,21 +846,20 @@ def header(self, name, data, data_type, **kwargs):
output = self.serialize_data(data, data_type, **kwargs)
if data_type == "bool":
output = json.dumps(output)
- except SerializationError:
- raise TypeError("{} must be type {}.".format(name, data_type))
- else:
- return str(output)
+ except SerializationError as exc:
+ raise TypeError("{} must be type {}.".format(name, data_type)) from exc
+ return str(output)
def serialize_data(self, data, data_type, **kwargs):
"""Serialize generic data according to supplied data type.
- :param data: The data to be serialized.
+ :param object data: The data to be serialized.
:param str data_type: The type to be serialized from.
- :param bool required: Whether it's essential that the data not be
- empty or None
:raises: AttributeError if required data is None.
:raises: ValueError if data is None
:raises: SerializationError if serialization fails.
+ :returns: The serialized data.
+ :rtype: str, int, float, bool, dict, list
"""
if data is None:
raise ValueError("No value for given attribute")
@@ -803,7 +870,7 @@ def serialize_data(self, data, data_type, **kwargs):
if data_type in self.basic_types.values():
return self.serialize_basic(data, data_type, **kwargs)
- elif data_type in self.serialize_type:
+ if data_type in self.serialize_type:
return self.serialize_type[data_type](data, **kwargs)
# If dependencies is empty, try with current data class
@@ -819,11 +886,10 @@ def serialize_data(self, data, data_type, **kwargs):
except (ValueError, TypeError) as err:
msg = "Unable to serialize value: {!r} as type: {!r}."
raise SerializationError(msg.format(data, data_type)) from err
- else:
- return self._serialize(data, **kwargs)
+ return self._serialize(data, **kwargs)
@classmethod
- def _get_custom_serializers(cls, data_type, **kwargs):
+ def _get_custom_serializers(cls, data_type, **kwargs): # pylint: disable=inconsistent-return-statements
custom_serializer = kwargs.get("basic_types_serializers", {}).get(data_type)
if custom_serializer:
return custom_serializer
@@ -839,23 +905,26 @@ def serialize_basic(cls, data, data_type, **kwargs):
- basic_types_serializers dict[str, callable] : If set, use the callable as serializer
- is_xml bool : If set, use xml_basic_types_serializers
- :param data: Object to be serialized.
+ :param obj data: Object to be serialized.
:param str data_type: Type of object in the iterable.
+ :rtype: str, int, float, bool
+ :return: serialized object
"""
custom_serializer = cls._get_custom_serializers(data_type, **kwargs)
if custom_serializer:
return custom_serializer(data)
if data_type == "str":
return cls.serialize_unicode(data)
- return eval(data_type)(data) # nosec
+ return eval(data_type)(data) # nosec # pylint: disable=eval-used
@classmethod
def serialize_unicode(cls, data):
"""Special handling for serializing unicode strings in Py2.
Encode to UTF-8 if unicode, otherwise handle as a str.
- :param data: Object to be serialized.
+ :param str data: Object to be serialized.
:rtype: str
+ :return: serialized object
"""
try: # If I received an enum, return its value
return data.value
@@ -869,8 +938,7 @@ def serialize_unicode(cls, data):
return data
except NameError:
return str(data)
- else:
- return str(data)
+ return str(data)
def serialize_iter(self, data, iter_type, div=None, **kwargs):
"""Serialize iterable.
@@ -880,15 +948,13 @@ def serialize_iter(self, data, iter_type, div=None, **kwargs):
serialization_ctxt['type'] should be same as data_type.
- is_xml bool : If set, serialize as XML
- :param list attr: Object to be serialized.
+ :param list data: Object to be serialized.
:param str iter_type: Type of object in the iterable.
- :param bool required: Whether the objects in the iterable must
- not be None or empty.
:param str div: If set, this str will be used to combine the elements
in the iterable into a combined string. Default is 'None'.
- :keyword bool do_quote: Whether to quote the serialized result of each iterable element.
Defaults to False.
:rtype: list, str
+ :return: serialized iterable
"""
if isinstance(data, str):
raise SerializationError("Refuse str type as a valid iter type.")
@@ -943,9 +1009,8 @@ def serialize_dict(self, attr, dict_type, **kwargs):
:param dict attr: Object to be serialized.
:param str dict_type: Type of object in the dictionary.
- :param bool required: Whether the objects in the dictionary must
- not be None or empty.
:rtype: dict
+ :return: serialized dictionary
"""
serialization_ctxt = kwargs.get("serialization_ctxt", {})
serialized = {}
@@ -969,7 +1034,7 @@ def serialize_dict(self, attr, dict_type, **kwargs):
return serialized
- def serialize_object(self, attr, **kwargs):
+ def serialize_object(self, attr, **kwargs): # pylint: disable=too-many-return-statements
"""Serialize a generic object.
This will be handled as a dictionary. If object passed in is not
a basic type (str, int, float, dict, list) it will simply be
@@ -977,6 +1042,7 @@ def serialize_object(self, attr, **kwargs):
:param dict attr: Object to be serialized.
:rtype: dict or str
+ :return: serialized object
"""
if attr is None:
return None
@@ -1001,7 +1067,7 @@ def serialize_object(self, attr, **kwargs):
return self.serialize_decimal(attr)
# If it's a model or I know this dependency, serialize as a Model
- elif obj_type in self.dependencies.values() or isinstance(attr, Model):
+ if obj_type in self.dependencies.values() or isinstance(attr, Model):
return self._serialize(attr)
if obj_type == dict:
@@ -1032,56 +1098,61 @@ def serialize_enum(attr, enum_obj=None):
try:
enum_obj(result) # type: ignore
return result
- except ValueError:
+ except ValueError as exc:
for enum_value in enum_obj: # type: ignore
if enum_value.value.lower() == str(attr).lower():
return enum_value.value
error = "{!r} is not valid value for enum {!r}"
- raise SerializationError(error.format(attr, enum_obj))
+ raise SerializationError(error.format(attr, enum_obj)) from exc
@staticmethod
- def serialize_bytearray(attr, **kwargs):
+ def serialize_bytearray(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize bytearray into base-64 string.
- :param attr: Object to be serialized.
+ :param str attr: Object to be serialized.
:rtype: str
+ :return: serialized base64
"""
return b64encode(attr).decode()
@staticmethod
- def serialize_base64(attr, **kwargs):
+ def serialize_base64(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize str into base-64 string.
- :param attr: Object to be serialized.
+ :param str attr: Object to be serialized.
:rtype: str
+ :return: serialized base64
"""
encoded = b64encode(attr).decode("ascii")
return encoded.strip("=").replace("+", "-").replace("/", "_")
@staticmethod
- def serialize_decimal(attr, **kwargs):
+ def serialize_decimal(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Decimal object to float.
- :param attr: Object to be serialized.
+ :param decimal attr: Object to be serialized.
:rtype: float
+ :return: serialized decimal
"""
return float(attr)
@staticmethod
- def serialize_long(attr, **kwargs):
+ def serialize_long(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize long (Py2) or int (Py3).
- :param attr: Object to be serialized.
+ :param int attr: Object to be serialized.
:rtype: int/long
+ :return: serialized long
"""
return _long_type(attr)
@staticmethod
- def serialize_date(attr, **kwargs):
+ def serialize_date(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Date object into ISO-8601 formatted string.
:param Date attr: Object to be serialized.
:rtype: str
+ :return: serialized date
"""
if isinstance(attr, str):
attr = isodate.parse_date(attr)
@@ -1089,11 +1160,12 @@ def serialize_date(attr, **kwargs):
return t
@staticmethod
- def serialize_time(attr, **kwargs):
+ def serialize_time(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Time object into ISO-8601 formatted string.
:param datetime.time attr: Object to be serialized.
:rtype: str
+ :return: serialized time
"""
if isinstance(attr, str):
attr = isodate.parse_time(attr)
@@ -1103,30 +1175,32 @@ def serialize_time(attr, **kwargs):
return t
@staticmethod
- def serialize_duration(attr, **kwargs):
+ def serialize_duration(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize TimeDelta object into ISO-8601 formatted string.
:param TimeDelta attr: Object to be serialized.
:rtype: str
+ :return: serialized duration
"""
if isinstance(attr, str):
attr = isodate.parse_duration(attr)
return isodate.duration_isoformat(attr)
@staticmethod
- def serialize_rfc(attr, **kwargs):
+ def serialize_rfc(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Datetime object into RFC-1123 formatted string.
:param Datetime attr: Object to be serialized.
:rtype: str
:raises: TypeError if format invalid.
+ :return: serialized rfc
"""
try:
if not attr.tzinfo:
_LOGGER.warning("Datetime with no tzinfo will be considered UTC.")
utc = attr.utctimetuple()
- except AttributeError:
- raise TypeError("RFC1123 object must be valid Datetime object.")
+ except AttributeError as exc:
+ raise TypeError("RFC1123 object must be valid Datetime object.") from exc
return "{}, {:02} {} {:04} {:02}:{:02}:{:02} GMT".format(
Serializer.days[utc.tm_wday],
@@ -1139,12 +1213,13 @@ def serialize_rfc(attr, **kwargs):
)
@staticmethod
- def serialize_iso(attr, **kwargs):
+ def serialize_iso(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Datetime object into ISO-8601 formatted string.
:param Datetime attr: Object to be serialized.
:rtype: str
:raises: SerializationError if format invalid.
+ :return: serialized iso
"""
if isinstance(attr, str):
attr = isodate.parse_datetime(attr)
@@ -1170,13 +1245,14 @@ def serialize_iso(attr, **kwargs):
raise TypeError(msg) from err
@staticmethod
- def serialize_unix(attr, **kwargs):
+ def serialize_unix(attr, **kwargs): # pylint: disable=unused-argument
"""Serialize Datetime object into IntTime format.
This is represented as seconds.
:param Datetime attr: Object to be serialized.
:rtype: int
:raises: SerializationError if format invalid
+ :return: serialied unix
"""
if isinstance(attr, int):
return attr
@@ -1184,11 +1260,11 @@ def serialize_unix(attr, **kwargs):
if not attr.tzinfo:
_LOGGER.warning("Datetime with no tzinfo will be considered UTC.")
return int(calendar.timegm(attr.utctimetuple()))
- except AttributeError:
- raise TypeError("Unix time object must be valid Datetime object.")
+ except AttributeError as exc:
+ raise TypeError("Unix time object must be valid Datetime object.") from exc
-def rest_key_extractor(attr, attr_desc, data):
+def rest_key_extractor(attr, attr_desc, data): # pylint: disable=unused-argument
key = attr_desc["key"]
working_data = data
@@ -1209,7 +1285,9 @@ def rest_key_extractor(attr, attr_desc, data):
return working_data.get(key)
-def rest_key_case_insensitive_extractor(attr, attr_desc, data):
+def rest_key_case_insensitive_extractor( # pylint: disable=unused-argument, inconsistent-return-statements
+ attr, attr_desc, data
+):
key = attr_desc["key"]
working_data = data
@@ -1230,17 +1308,29 @@ def rest_key_case_insensitive_extractor(attr, attr_desc, data):
return attribute_key_case_insensitive_extractor(key, None, working_data)
-def last_rest_key_extractor(attr, attr_desc, data):
- """Extract the attribute in "data" based on the last part of the JSON path key."""
+def last_rest_key_extractor(attr, attr_desc, data): # pylint: disable=unused-argument
+ """Extract the attribute in "data" based on the last part of the JSON path key.
+
+ :param str attr: The attribute to extract
+ :param dict attr_desc: The attribute description
+ :param dict data: The data to extract from
+ :rtype: object
+ :returns: The extracted attribute
+ """
key = attr_desc["key"]
dict_keys = _FLATTEN.split(key)
return attribute_key_extractor(dict_keys[-1], None, data)
-def last_rest_key_case_insensitive_extractor(attr, attr_desc, data):
+def last_rest_key_case_insensitive_extractor(attr, attr_desc, data): # pylint: disable=unused-argument
"""Extract the attribute in "data" based on the last part of the JSON path key.
This is the case insensitive version of "last_rest_key_extractor"
+ :param str attr: The attribute to extract
+ :param dict attr_desc: The attribute description
+ :param dict data: The data to extract from
+ :rtype: object
+ :returns: The extracted attribute
"""
key = attr_desc["key"]
dict_keys = _FLATTEN.split(key)
@@ -1277,7 +1367,7 @@ def _extract_name_from_internal_type(internal_type):
return xml_name
-def xml_key_extractor(attr, attr_desc, data):
+def xml_key_extractor(attr, attr_desc, data): # pylint: disable=unused-argument,too-many-return-statements
if isinstance(data, dict):
return None
@@ -1329,22 +1419,21 @@ def xml_key_extractor(attr, attr_desc, data):
if is_iter_type:
if is_wrapped:
return None # is_wrapped no node, we want None
- else:
- return [] # not wrapped, assume empty list
+ return [] # not wrapped, assume empty list
return None # Assume it's not there, maybe an optional node.
# If is_iter_type and not wrapped, return all found children
if is_iter_type:
if not is_wrapped:
return children
- else: # Iter and wrapped, should have found one node only (the wrap one)
- if len(children) != 1:
- raise DeserializationError(
- "Tried to deserialize an array not wrapped, and found several nodes '{}'. Maybe you should declare this array as wrapped?".format(
- xml_name
- )
+ # Iter and wrapped, should have found one node only (the wrap one)
+ if len(children) != 1:
+ raise DeserializationError(
+ "Tried to deserialize an array not wrapped, and found several nodes '{}'. Maybe you should declare this array as wrapped?".format( # pylint: disable=line-too-long
+ xml_name
)
- return list(children[0]) # Might be empty list and that's ok.
+ )
+ return list(children[0]) # Might be empty list and that's ok.
# Here it's not a itertype, we should have found one element only or empty
if len(children) > 1:
@@ -1352,7 +1441,7 @@ def xml_key_extractor(attr, attr_desc, data):
return children[0]
-class Deserializer(object):
+class Deserializer:
"""Response object model deserializer.
:param dict classes: Class type dictionary for deserializing complex types.
@@ -1361,9 +1450,9 @@ class Deserializer(object):
basic_types = {str: "str", int: "int", bool: "bool", float: "float"}
- valid_date = re.compile(r"\d{4}[-]\d{2}[-]\d{2}T\d{2}:\d{2}:\d{2}" r"\.?\d*Z?[-+]?[\d{2}]?:?[\d{2}]?")
+ valid_date = re.compile(r"\d{4}[-]\d{2}[-]\d{2}T\d{2}:\d{2}:\d{2}\.?\d*Z?[-+]?[\d{2}]?:?[\d{2}]?")
- def __init__(self, classes: Optional[Mapping[str, type]] = None):
+ def __init__(self, classes: Optional[Mapping[str, type]] = None) -> None:
self.deserialize_type = {
"iso-8601": Deserializer.deserialize_iso,
"rfc-1123": Deserializer.deserialize_rfc,
@@ -1401,11 +1490,12 @@ def __call__(self, target_obj, response_data, content_type=None):
:param str content_type: Swagger "produces" if available.
:raises: DeserializationError if deserialization fails.
:return: Deserialized object.
+ :rtype: object
"""
data = self._unpack_content(response_data, content_type)
return self._deserialize(target_obj, data)
- def _deserialize(self, target_obj, data):
+ def _deserialize(self, target_obj, data): # pylint: disable=inconsistent-return-statements
"""Call the deserializer on a model.
Data needs to be already deserialized as JSON or XML ElementTree
@@ -1414,12 +1504,13 @@ def _deserialize(self, target_obj, data):
:param object data: Object to deserialize.
:raises: DeserializationError if deserialization fails.
:return: Deserialized object.
+ :rtype: object
"""
# This is already a model, go recursive just in case
if hasattr(data, "_attribute_map"):
constants = [name for name, config in getattr(data, "_validation", {}).items() if config.get("constant")]
try:
- for attr, mapconfig in data._attribute_map.items():
+ for attr, mapconfig in data._attribute_map.items(): # pylint: disable=protected-access
if attr in constants:
continue
value = getattr(data, attr)
@@ -1438,13 +1529,13 @@ def _deserialize(self, target_obj, data):
if isinstance(response, str):
return self.deserialize_data(data, response)
- elif isinstance(response, type) and issubclass(response, Enum):
+ if isinstance(response, type) and issubclass(response, Enum):
return self.deserialize_enum(data, response)
- if data is None:
+ if data is None or data is CoreNull:
return data
try:
- attributes = response._attribute_map # type: ignore
+ attributes = response._attribute_map # type: ignore # pylint: disable=protected-access
d_attrs = {}
for attr, attr_desc in attributes.items():
# Check empty string. If it's not empty, someone has a real "additionalProperties"...
@@ -1474,9 +1565,8 @@ def _deserialize(self, target_obj, data):
except (AttributeError, TypeError, KeyError) as err:
msg = "Unable to deserialize to object: " + class_name # type: ignore
raise DeserializationError(msg) from err
- else:
- additional_properties = self._build_additional_properties(attributes, data)
- return self._instantiate_model(response, d_attrs, additional_properties)
+ additional_properties = self._build_additional_properties(attributes, data)
+ return self._instantiate_model(response, d_attrs, additional_properties)
def _build_additional_properties(self, attribute_map, data):
if not self.additional_properties_detection:
@@ -1503,6 +1593,8 @@ def _classify_target(self, target, data):
:param str target: The target object type to deserialize to.
:param str/dict data: The response data to deserialize.
+ :return: The classified target object and its class name.
+ :rtype: tuple
"""
if target is None:
return None, None
@@ -1514,7 +1606,7 @@ def _classify_target(self, target, data):
return target, target
try:
- target = target._classify(data, self.dependencies) # type: ignore
+ target = target._classify(data, self.dependencies) # type: ignore # pylint: disable=protected-access
except AttributeError:
pass # Target is not a Model, no classify
return target, target.__class__.__name__ # type: ignore
@@ -1529,10 +1621,12 @@ def failsafe_deserialize(self, target_obj, data, content_type=None):
:param str target_obj: The target object type to deserialize to.
:param str/dict data: The response data to deserialize.
:param str content_type: Swagger "produces" if available.
+ :return: Deserialized object.
+ :rtype: object
"""
try:
return self(target_obj, data, content_type=content_type)
- except:
+ except: # pylint: disable=bare-except
_LOGGER.debug(
"Ran into a deserialization error. Ignoring since this is failsafe deserialization", exc_info=True
)
@@ -1550,10 +1644,12 @@ def _unpack_content(raw_data, content_type=None):
If raw_data is something else, bypass all logic and return it directly.
- :param raw_data: Data to be processed.
- :param content_type: How to parse if raw_data is a string/bytes.
+ :param obj raw_data: Data to be processed.
+ :param str content_type: How to parse if raw_data is a string/bytes.
:raises JSONDecodeError: If JSON is requested and parsing is impossible.
:raises UnicodeDecodeError: If bytes is not UTF8
+ :rtype: object
+ :return: Unpacked content.
"""
# Assume this is enough to detect a Pipeline Response without importing it
context = getattr(raw_data, "context", {})
@@ -1577,24 +1673,35 @@ def _unpack_content(raw_data, content_type=None):
def _instantiate_model(self, response, attrs, additional_properties=None):
"""Instantiate a response model passing in deserialized args.
- :param response: The response model class.
- :param d_attrs: The deserialized response attributes.
+ :param Response response: The response model class.
+ :param dict attrs: The deserialized response attributes.
+ :param dict additional_properties: Additional properties to be set.
+ :rtype: Response
+ :return: The instantiated response model.
"""
if callable(response):
subtype = getattr(response, "_subtype_map", {})
try:
- readonly = [k for k, v in response._validation.items() if v.get("readonly")]
- const = [k for k, v in response._validation.items() if v.get("constant")]
+ readonly = [
+ k
+ for k, v in response._validation.items() # pylint: disable=protected-access # type: ignore
+ if v.get("readonly")
+ ]
+ const = [
+ k
+ for k, v in response._validation.items() # pylint: disable=protected-access # type: ignore
+ if v.get("constant")
+ ]
kwargs = {k: v for k, v in attrs.items() if k not in subtype and k not in readonly + const}
response_obj = response(**kwargs)
for attr in readonly:
setattr(response_obj, attr, attrs.get(attr))
if additional_properties:
- response_obj.additional_properties = additional_properties
+ response_obj.additional_properties = additional_properties # type: ignore
return response_obj
except TypeError as err:
msg = "Unable to deserialize {} into model {}. ".format(kwargs, response) # type: ignore
- raise DeserializationError(msg + str(err))
+ raise DeserializationError(msg + str(err)) from err
else:
try:
for attr, value in attrs.items():
@@ -1603,15 +1710,16 @@ def _instantiate_model(self, response, attrs, additional_properties=None):
except Exception as exp:
msg = "Unable to populate response model. "
msg += "Type: {}, Error: {}".format(type(response), exp)
- raise DeserializationError(msg)
+ raise DeserializationError(msg) from exp
- def deserialize_data(self, data, data_type):
+ def deserialize_data(self, data, data_type): # pylint: disable=too-many-return-statements
"""Process data for deserialization according to data type.
:param str data: The response string to be deserialized.
:param str data_type: The type to deserialize to.
:raises: DeserializationError if deserialization fails.
:return: Deserialized object.
+ :rtype: object
"""
if data is None:
return data
@@ -1625,7 +1733,11 @@ def deserialize_data(self, data, data_type):
if isinstance(data, self.deserialize_expected_types.get(data_type, tuple())):
return data
- is_a_text_parsing_type = lambda x: x not in ["object", "[]", r"{}"]
+ is_a_text_parsing_type = lambda x: x not in [ # pylint: disable=unnecessary-lambda-assignment
+ "object",
+ "[]",
+ r"{}",
+ ]
if isinstance(data, ET.Element) and is_a_text_parsing_type(data_type) and not data.text:
return None
data_val = self.deserialize_type[data_type](data)
@@ -1645,14 +1757,14 @@ def deserialize_data(self, data, data_type):
msg = "Unable to deserialize response data."
msg += " Data: {}, {}".format(data, data_type)
raise DeserializationError(msg) from err
- else:
- return self._deserialize(obj_type, data)
+ return self._deserialize(obj_type, data)
def deserialize_iter(self, attr, iter_type):
"""Deserialize an iterable.
:param list attr: Iterable to be deserialized.
:param str iter_type: The type of object in the iterable.
+ :return: Deserialized iterable.
:rtype: list
"""
if attr is None:
@@ -1669,6 +1781,7 @@ def deserialize_dict(self, attr, dict_type):
:param dict/list attr: Dictionary to be deserialized. Also accepts
a list of key, value pairs.
:param str dict_type: The object type of the items in the dictionary.
+ :return: Deserialized dictionary.
:rtype: dict
"""
if isinstance(attr, list):
@@ -1679,11 +1792,12 @@ def deserialize_dict(self, attr, dict_type):
attr = {el.tag: el.text for el in attr}
return {k: self.deserialize_data(v, dict_type) for k, v in attr.items()}
- def deserialize_object(self, attr, **kwargs):
+ def deserialize_object(self, attr, **kwargs): # pylint: disable=too-many-return-statements
"""Deserialize a generic object.
This will be handled as a dictionary.
:param dict attr: Dictionary to be deserialized.
+ :return: Deserialized object.
:rtype: dict
:raises: TypeError if non-builtin datatype encountered.
"""
@@ -1718,11 +1832,10 @@ def deserialize_object(self, attr, **kwargs):
pass
return deserialized
- else:
- error = "Cannot deserialize generic object with type: "
- raise TypeError(error + str(obj_type))
+ error = "Cannot deserialize generic object with type: "
+ raise TypeError(error + str(obj_type))
- def deserialize_basic(self, attr, data_type):
+ def deserialize_basic(self, attr, data_type): # pylint: disable=too-many-return-statements
"""Deserialize basic builtin data type from string.
Will attempt to convert to str, int, float and bool.
This function will also accept '1', '0', 'true' and 'false' as
@@ -1730,6 +1843,7 @@ def deserialize_basic(self, attr, data_type):
:param str attr: response string to be deserialized.
:param str data_type: deserialization data type.
+ :return: Deserialized basic type.
:rtype: str, int, float or bool
:raises: TypeError if string format is not valid.
"""
@@ -1741,24 +1855,23 @@ def deserialize_basic(self, attr, data_type):
if data_type == "str":
# None or '', node is empty string.
return ""
- else:
- # None or '', node with a strong type is None.
- # Don't try to model "empty bool" or "empty int"
- return None
+ # None or '', node with a strong type is None.
+ # Don't try to model "empty bool" or "empty int"
+ return None
if data_type == "bool":
if attr in [True, False, 1, 0]:
return bool(attr)
- elif isinstance(attr, str):
+ if isinstance(attr, str):
if attr.lower() in ["true", "1"]:
return True
- elif attr.lower() in ["false", "0"]:
+ if attr.lower() in ["false", "0"]:
return False
raise TypeError("Invalid boolean value: {}".format(attr))
if data_type == "str":
return self.deserialize_unicode(attr)
- return eval(data_type)(attr) # nosec
+ return eval(data_type)(attr) # nosec # pylint: disable=eval-used
@staticmethod
def deserialize_unicode(data):
@@ -1766,6 +1879,7 @@ def deserialize_unicode(data):
as a string.
:param str data: response string to be deserialized.
+ :return: Deserialized string.
:rtype: str or unicode
"""
# We might be here because we have an enum modeled as string,
@@ -1779,8 +1893,7 @@ def deserialize_unicode(data):
return data
except NameError:
return str(data)
- else:
- return str(data)
+ return str(data)
@staticmethod
def deserialize_enum(data, enum_obj):
@@ -1792,6 +1905,7 @@ def deserialize_enum(data, enum_obj):
:param str data: Response string to be deserialized. If this value is
None or invalid it will be returned as-is.
:param Enum enum_obj: Enum object to deserialize to.
+ :return: Deserialized enum object.
:rtype: Enum
"""
if isinstance(data, enum_obj) or data is None:
@@ -1802,9 +1916,9 @@ def deserialize_enum(data, enum_obj):
# Workaround. We might consider remove it in the future.
try:
return list(enum_obj.__members__.values())[data]
- except IndexError:
+ except IndexError as exc:
error = "{!r} is not a valid index for enum {!r}"
- raise DeserializationError(error.format(data, enum_obj))
+ raise DeserializationError(error.format(data, enum_obj)) from exc
try:
return enum_obj(str(data))
except ValueError:
@@ -1820,6 +1934,7 @@ def deserialize_bytearray(attr):
"""Deserialize string into bytearray.
:param str attr: response string to be deserialized.
+ :return: Deserialized bytearray
:rtype: bytearray
:raises: TypeError if string format invalid.
"""
@@ -1832,6 +1947,7 @@ def deserialize_base64(attr):
"""Deserialize base64 encoded string into string.
:param str attr: response string to be deserialized.
+ :return: Deserialized base64 string
:rtype: bytearray
:raises: TypeError if string format invalid.
"""
@@ -1847,8 +1963,9 @@ def deserialize_decimal(attr):
"""Deserialize string into Decimal object.
:param str attr: response string to be deserialized.
- :rtype: Decimal
+ :return: Deserialized decimal
:raises: DeserializationError if string format invalid.
+ :rtype: decimal
"""
if isinstance(attr, ET.Element):
attr = attr.text
@@ -1863,6 +1980,7 @@ def deserialize_long(attr):
"""Deserialize string into long (Py2) or int (Py3).
:param str attr: response string to be deserialized.
+ :return: Deserialized int
:rtype: long or int
:raises: ValueError if string format invalid.
"""
@@ -1875,6 +1993,7 @@ def deserialize_duration(attr):
"""Deserialize ISO-8601 formatted string into TimeDelta object.
:param str attr: response string to be deserialized.
+ :return: Deserialized duration
:rtype: TimeDelta
:raises: DeserializationError if string format invalid.
"""
@@ -1885,14 +2004,14 @@ def deserialize_duration(attr):
except (ValueError, OverflowError, AttributeError) as err:
msg = "Cannot deserialize duration object."
raise DeserializationError(msg) from err
- else:
- return duration
+ return duration
@staticmethod
def deserialize_date(attr):
"""Deserialize ISO-8601 formatted string into Date object.
:param str attr: response string to be deserialized.
+ :return: Deserialized date
:rtype: Date
:raises: DeserializationError if string format invalid.
"""
@@ -1908,6 +2027,7 @@ def deserialize_time(attr):
"""Deserialize ISO-8601 formatted string into time object.
:param str attr: response string to be deserialized.
+ :return: Deserialized time
:rtype: datetime.time
:raises: DeserializationError if string format invalid.
"""
@@ -1922,6 +2042,7 @@ def deserialize_rfc(attr):
"""Deserialize RFC-1123 formatted string into Datetime object.
:param str attr: response string to be deserialized.
+ :return: Deserialized RFC datetime
:rtype: Datetime
:raises: DeserializationError if string format invalid.
"""
@@ -1937,14 +2058,14 @@ def deserialize_rfc(attr):
except ValueError as err:
msg = "Cannot deserialize to rfc datetime object."
raise DeserializationError(msg) from err
- else:
- return date_obj
+ return date_obj
@staticmethod
def deserialize_iso(attr):
"""Deserialize ISO-8601 formatted string into Datetime object.
:param str attr: response string to be deserialized.
+ :return: Deserialized ISO datetime
:rtype: Datetime
:raises: DeserializationError if string format invalid.
"""
@@ -1974,8 +2095,7 @@ def deserialize_iso(attr):
except (ValueError, OverflowError, AttributeError) as err:
msg = "Cannot deserialize datetime object."
raise DeserializationError(msg) from err
- else:
- return date_obj
+ return date_obj
@staticmethod
def deserialize_unix(attr):
@@ -1983,6 +2103,7 @@ def deserialize_unix(attr):
This is represented as seconds.
:param int attr: Object to be serialized.
+ :return: Deserialized datetime
:rtype: Datetime
:raises: DeserializationError if format invalid
"""
@@ -1994,5 +2115,4 @@ def deserialize_unix(attr):
except ValueError as err:
msg = "Cannot deserialize to unix datetime object."
raise DeserializationError(msg) from err
- else:
- return date_obj
+ return date_obj
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_vendor.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_vendor.py
deleted file mode 100644
index 0dafe0e287ff..000000000000
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_vendor.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# --------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT License. See License.txt in the project root for license information.
-# Code generated by Microsoft (R) AutoRest Code Generator.
-# Changes may cause incorrect behavior and will be lost if the code is regenerated.
-# --------------------------------------------------------------------------
-
-from azure.core.pipeline.transport import HttpRequest
-
-
-def _convert_request(request, files=None):
- data = request.content if not files else None
- request = HttpRequest(method=request.method, url=request.url, headers=request.headers, data=data)
- if files:
- request.set_formdata_body(files)
- return request
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_version.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_version.py
index 59deb8c7263b..58920e6942de 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_version.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/_version.py
@@ -6,4 +6,4 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-VERSION = "1.1.0"
+VERSION = "1.2.0b1"
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/__init__.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/__init__.py
index 8f652945205e..178b6e22da47 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/__init__.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/__init__.py
@@ -5,12 +5,18 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+# pylint: disable=wrong-import-position
-from ._dev_center_mgmt_client import DevCenterMgmtClient
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._patch import * # pylint: disable=unused-wildcard-import
+
+from ._dev_center_mgmt_client import DevCenterMgmtClient # type: ignore
try:
from ._patch import __all__ as _patch_all
- from ._patch import * # pylint: disable=unused-wildcard-import
+ from ._patch import *
except ImportError:
_patch_all = []
from ._patch import patch_sdk as _patch_sdk
@@ -18,6 +24,6 @@
__all__ = [
"DevCenterMgmtClient",
]
-__all__.extend([p for p in _patch_all if p not in __all__])
+__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
_patch_sdk()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/_configuration.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/_configuration.py
index 7a492f459935..bfcc16e679eb 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/_configuration.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/_configuration.py
@@ -14,11 +14,10 @@
from .._version import VERSION
if TYPE_CHECKING:
- # pylint: disable=unused-import,ungrouped-imports
from azure.core.credentials_async import AsyncTokenCredential
-class DevCenterMgmtClientConfiguration: # pylint: disable=too-many-instance-attributes,name-too-long
+class DevCenterMgmtClientConfiguration: # pylint: disable=too-many-instance-attributes
"""Configuration for DevCenterMgmtClient.
Note that all parameters used to create this instance are saved as instance
@@ -28,13 +27,13 @@ class DevCenterMgmtClientConfiguration: # pylint: disable=too-many-instance-att
:type credential: ~azure.core.credentials_async.AsyncTokenCredential
:param subscription_id: The ID of the target subscription. Required.
:type subscription_id: str
- :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this
- default value may result in unsupported behavior.
+ :keyword api_version: Api Version. Default value is "2025-04-01-preview". Note that overriding
+ this default value may result in unsupported behavior.
:paramtype api_version: str
"""
def __init__(self, credential: "AsyncTokenCredential", subscription_id: str, **kwargs: Any) -> None:
- api_version: str = kwargs.pop("api_version", "2024-02-01")
+ api_version: str = kwargs.pop("api_version", "2025-04-01-preview")
if credential is None:
raise ValueError("Parameter 'credential' must not be None.")
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/_dev_center_mgmt_client.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/_dev_center_mgmt_client.py
index 88fa97a23f4d..b79aa1f066ed 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/_dev_center_mgmt_client.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/_dev_center_mgmt_client.py
@@ -8,6 +8,7 @@
from copy import deepcopy
from typing import Any, Awaitable, TYPE_CHECKING
+from typing_extensions import Self
from azure.core.pipeline import policies
from azure.core.rest import AsyncHttpResponse, HttpRequest
@@ -22,8 +23,13 @@
CatalogsOperations,
CheckNameAvailabilityOperations,
CheckScopedNameAvailabilityOperations,
+ CustomizationTasksOperations,
DevBoxDefinitionsOperations,
+ DevCenterCatalogImageDefinitionBuildOperations,
+ DevCenterCatalogImageDefinitionBuildsOperations,
+ DevCenterCatalogImageDefinitionsOperations,
DevCentersOperations,
+ EncryptionSetsOperations,
EnvironmentDefinitionsOperations,
EnvironmentTypesOperations,
GalleriesOperations,
@@ -35,8 +41,12 @@
PoolsOperations,
ProjectAllowedEnvironmentTypesOperations,
ProjectCatalogEnvironmentDefinitionsOperations,
+ ProjectCatalogImageDefinitionBuildOperations,
+ ProjectCatalogImageDefinitionBuildsOperations,
+ ProjectCatalogImageDefinitionsOperations,
ProjectCatalogsOperations,
ProjectEnvironmentTypesOperations,
+ ProjectPoliciesOperations,
ProjectsOperations,
SchedulesOperations,
SkusOperations,
@@ -44,15 +54,18 @@
)
if TYPE_CHECKING:
- # pylint: disable=unused-import,ungrouped-imports
from azure.core.credentials_async import AsyncTokenCredential
-class DevCenterMgmtClient: # pylint: disable=client-accepts-api-version-keyword,too-many-instance-attributes
+class DevCenterMgmtClient: # pylint: disable=too-many-instance-attributes
"""DevCenter Management API.
:ivar dev_centers: DevCentersOperations operations
:vartype dev_centers: azure.mgmt.devcenter.aio.operations.DevCentersOperations
+ :ivar encryption_sets: EncryptionSetsOperations operations
+ :vartype encryption_sets: azure.mgmt.devcenter.aio.operations.EncryptionSetsOperations
+ :ivar project_policies: ProjectPoliciesOperations operations
+ :vartype project_policies: azure.mgmt.devcenter.aio.operations.ProjectPoliciesOperations
:ivar projects: ProjectsOperations operations
:vartype projects: azure.mgmt.devcenter.aio.operations.ProjectsOperations
:ivar attached_networks: AttachedNetworksOperations operations
@@ -72,6 +85,8 @@ class DevCenterMgmtClient: # pylint: disable=client-accepts-api-version-keyword
:vartype images: azure.mgmt.devcenter.aio.operations.ImagesOperations
:ivar image_versions: ImageVersionsOperations operations
:vartype image_versions: azure.mgmt.devcenter.aio.operations.ImageVersionsOperations
+ :ivar skus: SkusOperations operations
+ :vartype skus: azure.mgmt.devcenter.aio.operations.SkusOperations
:ivar catalogs: CatalogsOperations operations
:vartype catalogs: azure.mgmt.devcenter.aio.operations.CatalogsOperations
:ivar environment_types: EnvironmentTypesOperations operations
@@ -96,8 +111,31 @@ class DevCenterMgmtClient: # pylint: disable=client-accepts-api-version-keyword
:ivar check_scoped_name_availability: CheckScopedNameAvailabilityOperations operations
:vartype check_scoped_name_availability:
azure.mgmt.devcenter.aio.operations.CheckScopedNameAvailabilityOperations
- :ivar skus: SkusOperations operations
- :vartype skus: azure.mgmt.devcenter.aio.operations.SkusOperations
+ :ivar customization_tasks: CustomizationTasksOperations operations
+ :vartype customization_tasks: azure.mgmt.devcenter.aio.operations.CustomizationTasksOperations
+ :ivar dev_center_catalog_image_definitions: DevCenterCatalogImageDefinitionsOperations
+ operations
+ :vartype dev_center_catalog_image_definitions:
+ azure.mgmt.devcenter.aio.operations.DevCenterCatalogImageDefinitionsOperations
+ :ivar dev_center_catalog_image_definition_builds:
+ DevCenterCatalogImageDefinitionBuildsOperations operations
+ :vartype dev_center_catalog_image_definition_builds:
+ azure.mgmt.devcenter.aio.operations.DevCenterCatalogImageDefinitionBuildsOperations
+ :ivar dev_center_catalog_image_definition_build: DevCenterCatalogImageDefinitionBuildOperations
+ operations
+ :vartype dev_center_catalog_image_definition_build:
+ azure.mgmt.devcenter.aio.operations.DevCenterCatalogImageDefinitionBuildOperations
+ :ivar project_catalog_image_definitions: ProjectCatalogImageDefinitionsOperations operations
+ :vartype project_catalog_image_definitions:
+ azure.mgmt.devcenter.aio.operations.ProjectCatalogImageDefinitionsOperations
+ :ivar project_catalog_image_definition_builds: ProjectCatalogImageDefinitionBuildsOperations
+ operations
+ :vartype project_catalog_image_definition_builds:
+ azure.mgmt.devcenter.aio.operations.ProjectCatalogImageDefinitionBuildsOperations
+ :ivar project_catalog_image_definition_build: ProjectCatalogImageDefinitionBuildOperations
+ operations
+ :vartype project_catalog_image_definition_build:
+ azure.mgmt.devcenter.aio.operations.ProjectCatalogImageDefinitionBuildOperations
:ivar pools: PoolsOperations operations
:vartype pools: azure.mgmt.devcenter.aio.operations.PoolsOperations
:ivar schedules: SchedulesOperations operations
@@ -110,8 +148,8 @@ class DevCenterMgmtClient: # pylint: disable=client-accepts-api-version-keyword
:type subscription_id: str
:param base_url: Service URL. Default value is "https://management.azure.com".
:type base_url: str
- :keyword api_version: Api Version. Default value is "2024-02-01". Note that overriding this
- default value may result in unsupported behavior.
+ :keyword api_version: Api Version. Default value is "2025-04-01-preview". Note that overriding
+ this default value may result in unsupported behavior.
:paramtype api_version: str
:keyword int polling_interval: Default waiting time between two polls for LRO operations if no
Retry-After header is present.
@@ -152,6 +190,10 @@ def __init__(
self._deserialize = Deserializer(client_models)
self._serialize.client_side_validation = False
self.dev_centers = DevCentersOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.encryption_sets = EncryptionSetsOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.project_policies = ProjectPoliciesOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
self.projects = ProjectsOperations(self._client, self._config, self._serialize, self._deserialize)
self.attached_networks = AttachedNetworksOperations(
self._client, self._config, self._serialize, self._deserialize
@@ -168,6 +210,7 @@ def __init__(
self.galleries = GalleriesOperations(self._client, self._config, self._serialize, self._deserialize)
self.images = ImagesOperations(self._client, self._config, self._serialize, self._deserialize)
self.image_versions = ImageVersionsOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.skus = SkusOperations(self._client, self._config, self._serialize, self._deserialize)
self.catalogs = CatalogsOperations(self._client, self._config, self._serialize, self._deserialize)
self.environment_types = EnvironmentTypesOperations(
self._client, self._config, self._serialize, self._deserialize
@@ -192,7 +235,27 @@ def __init__(
self.check_scoped_name_availability = CheckScopedNameAvailabilityOperations(
self._client, self._config, self._serialize, self._deserialize
)
- self.skus = SkusOperations(self._client, self._config, self._serialize, self._deserialize)
+ self.customization_tasks = CustomizationTasksOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.dev_center_catalog_image_definitions = DevCenterCatalogImageDefinitionsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.dev_center_catalog_image_definition_builds = DevCenterCatalogImageDefinitionBuildsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.dev_center_catalog_image_definition_build = DevCenterCatalogImageDefinitionBuildOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.project_catalog_image_definitions = ProjectCatalogImageDefinitionsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.project_catalog_image_definition_builds = ProjectCatalogImageDefinitionBuildsOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
+ self.project_catalog_image_definition_build = ProjectCatalogImageDefinitionBuildOperations(
+ self._client, self._config, self._serialize, self._deserialize
+ )
self.pools = PoolsOperations(self._client, self._config, self._serialize, self._deserialize)
self.schedules = SchedulesOperations(self._client, self._config, self._serialize, self._deserialize)
self.network_connections = NetworkConnectionsOperations(
@@ -226,7 +289,7 @@ def _send_request(
async def close(self) -> None:
await self._client.close()
- async def __aenter__(self) -> "DevCenterMgmtClient":
+ async def __aenter__(self) -> Self:
await self._client.__aenter__()
return self
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/__init__.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/__init__.py
index b18819a0175d..b705b62461ac 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/__init__.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/__init__.py
@@ -5,37 +5,54 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+# pylint: disable=wrong-import-position
-from ._dev_centers_operations import DevCentersOperations
-from ._projects_operations import ProjectsOperations
-from ._attached_networks_operations import AttachedNetworksOperations
-from ._project_catalogs_operations import ProjectCatalogsOperations
-from ._environment_definitions_operations import EnvironmentDefinitionsOperations
-from ._project_catalog_environment_definitions_operations import ProjectCatalogEnvironmentDefinitionsOperations
-from ._galleries_operations import GalleriesOperations
-from ._images_operations import ImagesOperations
-from ._image_versions_operations import ImageVersionsOperations
-from ._catalogs_operations import CatalogsOperations
-from ._environment_types_operations import EnvironmentTypesOperations
-from ._project_allowed_environment_types_operations import ProjectAllowedEnvironmentTypesOperations
-from ._project_environment_types_operations import ProjectEnvironmentTypesOperations
-from ._dev_box_definitions_operations import DevBoxDefinitionsOperations
-from ._operations import Operations
-from ._operation_statuses_operations import OperationStatusesOperations
-from ._usages_operations import UsagesOperations
-from ._check_name_availability_operations import CheckNameAvailabilityOperations
-from ._check_scoped_name_availability_operations import CheckScopedNameAvailabilityOperations
-from ._skus_operations import SkusOperations
-from ._pools_operations import PoolsOperations
-from ._schedules_operations import SchedulesOperations
-from ._network_connections_operations import NetworkConnectionsOperations
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._patch import * # pylint: disable=unused-wildcard-import
+
+from ._dev_centers_operations import DevCentersOperations # type: ignore
+from ._encryption_sets_operations import EncryptionSetsOperations # type: ignore
+from ._project_policies_operations import ProjectPoliciesOperations # type: ignore
+from ._projects_operations import ProjectsOperations # type: ignore
+from ._attached_networks_operations import AttachedNetworksOperations # type: ignore
+from ._project_catalogs_operations import ProjectCatalogsOperations # type: ignore
+from ._environment_definitions_operations import EnvironmentDefinitionsOperations # type: ignore
+from ._project_catalog_environment_definitions_operations import ProjectCatalogEnvironmentDefinitionsOperations # type: ignore
+from ._galleries_operations import GalleriesOperations # type: ignore
+from ._images_operations import ImagesOperations # type: ignore
+from ._image_versions_operations import ImageVersionsOperations # type: ignore
+from ._skus_operations import SkusOperations # type: ignore
+from ._catalogs_operations import CatalogsOperations # type: ignore
+from ._environment_types_operations import EnvironmentTypesOperations # type: ignore
+from ._project_allowed_environment_types_operations import ProjectAllowedEnvironmentTypesOperations # type: ignore
+from ._project_environment_types_operations import ProjectEnvironmentTypesOperations # type: ignore
+from ._dev_box_definitions_operations import DevBoxDefinitionsOperations # type: ignore
+from ._operations import Operations # type: ignore
+from ._operation_statuses_operations import OperationStatusesOperations # type: ignore
+from ._usages_operations import UsagesOperations # type: ignore
+from ._check_name_availability_operations import CheckNameAvailabilityOperations # type: ignore
+from ._check_scoped_name_availability_operations import CheckScopedNameAvailabilityOperations # type: ignore
+from ._customization_tasks_operations import CustomizationTasksOperations # type: ignore
+from ._dev_center_catalog_image_definitions_operations import DevCenterCatalogImageDefinitionsOperations # type: ignore
+from ._dev_center_catalog_image_definition_builds_operations import DevCenterCatalogImageDefinitionBuildsOperations # type: ignore
+from ._dev_center_catalog_image_definition_build_operations import DevCenterCatalogImageDefinitionBuildOperations # type: ignore
+from ._project_catalog_image_definitions_operations import ProjectCatalogImageDefinitionsOperations # type: ignore
+from ._project_catalog_image_definition_builds_operations import ProjectCatalogImageDefinitionBuildsOperations # type: ignore
+from ._project_catalog_image_definition_build_operations import ProjectCatalogImageDefinitionBuildOperations # type: ignore
+from ._pools_operations import PoolsOperations # type: ignore
+from ._schedules_operations import SchedulesOperations # type: ignore
+from ._network_connections_operations import NetworkConnectionsOperations # type: ignore
from ._patch import __all__ as _patch_all
-from ._patch import * # pylint: disable=unused-wildcard-import
+from ._patch import *
from ._patch import patch_sdk as _patch_sdk
__all__ = [
"DevCentersOperations",
+ "EncryptionSetsOperations",
+ "ProjectPoliciesOperations",
"ProjectsOperations",
"AttachedNetworksOperations",
"ProjectCatalogsOperations",
@@ -44,6 +61,7 @@
"GalleriesOperations",
"ImagesOperations",
"ImageVersionsOperations",
+ "SkusOperations",
"CatalogsOperations",
"EnvironmentTypesOperations",
"ProjectAllowedEnvironmentTypesOperations",
@@ -54,10 +72,16 @@
"UsagesOperations",
"CheckNameAvailabilityOperations",
"CheckScopedNameAvailabilityOperations",
- "SkusOperations",
+ "CustomizationTasksOperations",
+ "DevCenterCatalogImageDefinitionsOperations",
+ "DevCenterCatalogImageDefinitionBuildsOperations",
+ "DevCenterCatalogImageDefinitionBuildOperations",
+ "ProjectCatalogImageDefinitionsOperations",
+ "ProjectCatalogImageDefinitionBuildsOperations",
+ "ProjectCatalogImageDefinitionBuildOperations",
"PoolsOperations",
"SchedulesOperations",
"NetworkConnectionsOperations",
]
-__all__.extend([p for p in _patch_all if p not in __all__])
+__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
_patch_sdk()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_attached_networks_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_attached_networks_operations.py
index 5bc59798ee61..73868bd3a566 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_attached_networks_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_attached_networks_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +6,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.async_paging import AsyncItemPaged, AsyncList
@@ -17,12 +17,13 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
@@ -30,7 +31,6 @@
from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._attached_networks_operations import (
build_create_or_update_request,
build_delete_request,
@@ -40,6 +40,10 @@
build_list_by_project_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -89,7 +93,7 @@ def list_by_project(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.AttachedNetworkListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -109,7 +113,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -125,7 +128,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -172,7 +174,7 @@ async def get_by_project(
:rtype: ~azure.mgmt.devcenter.models.AttachedNetworkConnection
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -195,7 +197,6 @@ async def get_by_project(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -210,7 +211,7 @@ async def get_by_project(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response)
+ deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -243,7 +244,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.AttachedNetworkListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -263,7 +264,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -279,7 +279,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -326,7 +325,7 @@ async def get_by_dev_center(
:rtype: ~azure.mgmt.devcenter.models.AttachedNetworkConnection
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -349,7 +348,6 @@ async def get_by_dev_center(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -364,7 +362,7 @@ async def get_by_dev_center(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response)
+ deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -378,8 +376,8 @@ async def _create_or_update_initial(
attached_network_connection_name: str,
body: Union[_models.AttachedNetworkConnection, IO[bytes]],
**kwargs: Any
- ) -> _models.AttachedNetworkConnection:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -392,7 +390,7 @@ async def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.AttachedNetworkConnection] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -414,10 +412,10 @@ async def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -425,15 +423,15 @@ async def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -553,10 +551,11 @@ async def begin_create_or_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response)
+ deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -581,10 +580,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- async def _delete_initial( # pylint: disable=inconsistent-return-statements
+ async def _delete_initial(
self, resource_group_name: str, dev_center_name: str, attached_network_connection_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -596,7 +595,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -607,10 +606,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -618,6 +617,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -626,8 +629,12 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_delete(
@@ -655,7 +662,7 @@ async def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._delete_initial( # type: ignore
+ raw_result = await self._delete_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
attached_network_connection_name=attached_network_connection_name,
@@ -665,6 +672,7 @@ async def begin_delete(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_catalogs_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_catalogs_operations.py
index 52bbe8d2d862..d80c784a5432 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_catalogs_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_catalogs_operations.py
@@ -1,4 +1,4 @@
-# pylint: disable=too-many-lines,too-many-statements
+# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +7,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.async_paging import AsyncItemPaged, AsyncList
@@ -17,12 +18,13 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
@@ -30,7 +32,6 @@
from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._catalogs_operations import (
build_connect_request,
build_create_or_update_request,
@@ -42,6 +43,10 @@
build_update_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -89,7 +94,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.CatalogListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -109,7 +114,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -125,7 +129,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -172,7 +175,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.Catalog
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -195,7 +198,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -210,7 +212,7 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -224,8 +226,8 @@ async def _create_or_update_initial(
catalog_name: str,
body: Union[_models.Catalog, IO[bytes]],
**kwargs: Any
- ) -> _models.Catalog:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -238,7 +240,7 @@ async def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Catalog] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -260,10 +262,10 @@ async def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -271,15 +273,15 @@ async def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Catalog", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -395,10 +397,11 @@ async def begin_create_or_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -430,8 +433,8 @@ async def _update_initial(
catalog_name: str,
body: Union[_models.CatalogUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.Catalog]:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -444,7 +447,7 @@ async def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.Catalog]] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -466,10 +469,10 @@ async def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -477,18 +480,20 @@ async def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("Catalog", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -604,10 +609,11 @@ async def begin_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -632,10 +638,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- async def _delete_initial( # pylint: disable=inconsistent-return-statements
+ async def _delete_initial(
self, resource_group_name: str, dev_center_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -647,7 +653,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -658,10 +664,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -669,6 +675,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -677,8 +687,12 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_delete(
@@ -706,7 +720,7 @@ async def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._delete_initial( # type: ignore
+ raw_result = await self._delete_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
catalog_name=catalog_name,
@@ -716,6 +730,7 @@ async def begin_delete(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -757,7 +772,7 @@ async def get_sync_error_details(
:rtype: ~azure.mgmt.devcenter.models.SyncErrorDetails
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -780,7 +795,6 @@ async def get_sync_error_details(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -795,17 +809,17 @@ async def get_sync_error_details(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("SyncErrorDetails", pipeline_response)
+ deserialized = self._deserialize("SyncErrorDetails", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
- async def _sync_initial( # pylint: disable=inconsistent-return-statements
+ async def _sync_initial(
self, resource_group_name: str, dev_center_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -817,7 +831,7 @@ async def _sync_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_sync_request(
resource_group_name=resource_group_name,
@@ -828,10 +842,10 @@ async def _sync_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -839,6 +853,10 @@ async def _sync_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -846,8 +864,12 @@ async def _sync_initial( # pylint: disable=inconsistent-return-statements
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_sync(
@@ -875,7 +897,7 @@ async def begin_sync(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._sync_initial( # type: ignore
+ raw_result = await self._sync_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
catalog_name=catalog_name,
@@ -885,6 +907,7 @@ async def begin_sync(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -909,10 +932,10 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- async def _connect_initial( # pylint: disable=inconsistent-return-statements
+ async def _connect_initial(
self, resource_group_name: str, dev_center_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -924,7 +947,7 @@ async def _connect_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_connect_request(
resource_group_name=resource_group_name,
@@ -935,10 +958,10 @@ async def _connect_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -946,6 +969,10 @@ async def _connect_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -953,8 +980,12 @@ async def _connect_initial( # pylint: disable=inconsistent-return-statements
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_connect(
@@ -982,7 +1013,7 @@ async def begin_connect(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._connect_initial( # type: ignore
+ raw_result = await self._connect_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
catalog_name=catalog_name,
@@ -992,6 +1023,7 @@ async def begin_connect(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_check_name_availability_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_check_name_availability_operations.py
index 193bbadd9f7d..115cf26e53cf 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_check_name_availability_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_check_name_availability_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,6 +6,7 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
+import sys
from typing import Any, Callable, Dict, IO, Optional, TypeVar, Union, overload
from azure.core.exceptions import (
@@ -18,16 +18,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._check_name_availability_operations import build_execute_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -103,7 +105,7 @@ async def execute(
:rtype: ~azure.mgmt.devcenter.models.CheckNameAvailabilityResponse
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -135,7 +137,6 @@ async def execute(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -150,7 +151,7 @@ async def execute(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("CheckNameAvailabilityResponse", pipeline_response)
+ deserialized = self._deserialize("CheckNameAvailabilityResponse", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_check_scoped_name_availability_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_check_scoped_name_availability_operations.py
index c6193c8f06bf..0418820be55e 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_check_scoped_name_availability_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_check_scoped_name_availability_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,6 +6,7 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
+import sys
from typing import Any, Callable, Dict, IO, Optional, TypeVar, Union, overload
from azure.core.exceptions import (
@@ -18,16 +18,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._check_scoped_name_availability_operations import build_execute_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -104,7 +106,7 @@ async def execute(
:rtype: ~azure.mgmt.devcenter.models.CheckNameAvailabilityResponse
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -136,7 +138,6 @@ async def execute(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -151,7 +152,7 @@ async def execute(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("CheckNameAvailabilityResponse", pipeline_response)
+ deserialized = self._deserialize("CheckNameAvailabilityResponse", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_customization_tasks_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_customization_tasks_operations.py
new file mode 100644
index 000000000000..f453a83b0359
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_customization_tasks_operations.py
@@ -0,0 +1,284 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar
+import urllib.parse
+
+from azure.core.async_paging import AsyncItemPaged, AsyncList
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.rest import AsyncHttpResponse, HttpRequest
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.tracing.decorator_async import distributed_trace_async
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+
+from ... import models as _models
+from ...operations._customization_tasks_operations import (
+ build_get_error_details_request,
+ build_get_request,
+ build_list_by_catalog_request,
+)
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
+
+
+class CustomizationTasksOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.aio.DevCenterMgmtClient`'s
+ :attr:`customization_tasks` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_catalog(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ top: Optional[int] = None,
+ **kwargs: Any
+ ) -> AsyncIterable["_models.CustomizationTask"]:
+ """List Tasks in the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param top: The maximum number of resources to return from the operation. Example: '$top=10'.
+ Default value is None.
+ :type top: int
+ :return: An iterator like instance of either CustomizationTask or the result of cls(response)
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.devcenter.models.CustomizationTask]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.CustomizationTaskListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_catalog_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ subscription_id=self._config.subscription_id,
+ top=top,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = self._deserialize("CustomizationTaskListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @distributed_trace_async
+ async def get(
+ self, resource_group_name: str, dev_center_name: str, catalog_name: str, task_name: str, **kwargs: Any
+ ) -> _models.CustomizationTask:
+ """Gets a Task from the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param task_name: The name of the Task. Required.
+ :type task_name: str
+ :return: CustomizationTask or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.CustomizationTask
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.CustomizationTask] = kwargs.pop("cls", None)
+
+ _request = build_get_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ task_name=task_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("CustomizationTask", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ async def get_error_details(
+ self, resource_group_name: str, dev_center_name: str, catalog_name: str, task_name: str, **kwargs: Any
+ ) -> _models.CatalogResourceValidationErrorDetails:
+ """Gets Customization Task error details.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param task_name: The name of the Task. Required.
+ :type task_name: str
+ :return: CatalogResourceValidationErrorDetails or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.CatalogResourceValidationErrorDetails
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.CatalogResourceValidationErrorDetails] = kwargs.pop("cls", None)
+
+ _request = build_get_error_details_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ task_name=task_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_box_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_box_definitions_operations.py
index bc1026a0d485..40fc9fd7966a 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_box_definitions_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_box_definitions_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +6,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.async_paging import AsyncItemPaged, AsyncList
@@ -17,12 +17,13 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
@@ -30,7 +31,6 @@
from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._dev_box_definitions_operations import (
build_create_or_update_request,
build_delete_request,
@@ -41,6 +41,10 @@
build_update_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -88,7 +92,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.DevBoxDefinitionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -108,7 +112,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -124,7 +127,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -171,7 +173,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.DevBoxDefinition
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -194,7 +196,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -209,7 +210,7 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
+ deserialized = self._deserialize("DevBoxDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -223,8 +224,8 @@ async def _create_or_update_initial(
dev_box_definition_name: str,
body: Union[_models.DevBoxDefinition, IO[bytes]],
**kwargs: Any
- ) -> _models.DevBoxDefinition:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -237,7 +238,7 @@ async def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.DevBoxDefinition] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -259,10 +260,10 @@ async def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -270,15 +271,15 @@ async def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -395,10 +396,11 @@ async def begin_create_or_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
+ deserialized = self._deserialize("DevBoxDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -430,8 +432,8 @@ async def _update_initial(
dev_box_definition_name: str,
body: Union[_models.DevBoxDefinitionUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.DevBoxDefinition]:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -444,7 +446,7 @@ async def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.DevBoxDefinition]] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -466,10 +468,10 @@ async def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -477,18 +479,20 @@ async def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -604,10 +608,11 @@ async def begin_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
+ deserialized = self._deserialize("DevBoxDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -632,10 +637,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- async def _delete_initial( # pylint: disable=inconsistent-return-statements
+ async def _delete_initial(
self, resource_group_name: str, dev_center_name: str, dev_box_definition_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -647,7 +652,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -658,10 +663,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -669,6 +674,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -677,8 +686,12 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_delete(
@@ -706,7 +719,7 @@ async def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._delete_initial( # type: ignore
+ raw_result = await self._delete_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
dev_box_definition_name=dev_box_definition_name,
@@ -716,6 +729,7 @@ async def begin_delete(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -764,7 +778,7 @@ def list_by_project(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.DevBoxDefinitionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -784,7 +798,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -800,7 +813,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -847,7 +859,7 @@ async def get_by_project(
:rtype: ~azure.mgmt.devcenter.models.DevBoxDefinition
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -870,7 +882,6 @@ async def get_by_project(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -885,7 +896,7 @@ async def get_by_project(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
+ deserialized = self._deserialize("DevBoxDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_center_catalog_image_definition_build_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_center_catalog_image_definition_build_operations.py
new file mode 100644
index 000000000000..fe7cb16397f8
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_center_catalog_image_definition_build_operations.py
@@ -0,0 +1,346 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, AsyncIterator, Callable, Dict, Optional, TypeVar, Union, cast
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
+from azure.core.rest import AsyncHttpResponse, HttpRequest
+from azure.core.tracing.decorator_async import distributed_trace_async
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
+
+from ... import models as _models
+from ...operations._dev_center_catalog_image_definition_build_operations import (
+ build_cancel_request,
+ build_get_build_details_request,
+ build_get_request,
+)
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
+
+
+class DevCenterCatalogImageDefinitionBuildOperations: # pylint: disable=name-too-long
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.aio.DevCenterMgmtClient`'s
+ :attr:`dev_center_catalog_image_definition_build` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ async def get(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> _models.ImageDefinitionBuild:
+ """Gets a build for a specified image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: ImageDefinitionBuild or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinitionBuild
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuild] = kwargs.pop("cls", None)
+
+ _request = build_get_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinitionBuild", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ async def _cancel_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_cancel_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ async def begin_cancel(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Cancels the specified build for an image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: An instance of AsyncLROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._cancel_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod,
+ AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs),
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace_async
+ async def get_build_details(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> _models.ImageDefinitionBuildDetails:
+ """Gets Build details.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: ImageDefinitionBuildDetails or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinitionBuildDetails
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuildDetails] = kwargs.pop("cls", None)
+
+ _request = build_get_build_details_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinitionBuildDetails", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_center_catalog_image_definition_builds_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_center_catalog_image_definition_builds_operations.py
new file mode 100644
index 000000000000..a0b8f9f2d1af
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_center_catalog_image_definition_builds_operations.py
@@ -0,0 +1,152 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar
+import urllib.parse
+
+from azure.core.async_paging import AsyncItemPaged, AsyncList
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.rest import AsyncHttpResponse, HttpRequest
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+
+from ... import models as _models
+from ...operations._dev_center_catalog_image_definition_builds_operations import build_list_by_image_definition_request
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
+
+
+class DevCenterCatalogImageDefinitionBuildsOperations: # pylint: disable=name-too-long
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.aio.DevCenterMgmtClient`'s
+ :attr:`dev_center_catalog_image_definition_builds` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_image_definition(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ **kwargs: Any
+ ) -> AsyncIterable["_models.ImageDefinitionBuild"]:
+ """Lists builds for a specified image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: An iterator like instance of either ImageDefinitionBuild or the result of
+ cls(response)
+ :rtype:
+ ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.devcenter.models.ImageDefinitionBuild]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuildListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_image_definition_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageDefinitionBuildListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_center_catalog_image_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_center_catalog_image_definitions_operations.py
new file mode 100644
index 000000000000..adf54e5ae625
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_center_catalog_image_definitions_operations.py
@@ -0,0 +1,432 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, Optional, TypeVar, Union, cast
+import urllib.parse
+
+from azure.core.async_paging import AsyncItemPaged, AsyncList
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
+from azure.core.rest import AsyncHttpResponse, HttpRequest
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.tracing.decorator_async import distributed_trace_async
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
+
+from ... import models as _models
+from ...operations._dev_center_catalog_image_definitions_operations import (
+ build_build_image_request,
+ build_get_by_dev_center_catalog_request,
+ build_get_error_details_request,
+ build_list_by_dev_center_catalog_request,
+)
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
+
+
+class DevCenterCatalogImageDefinitionsOperations: # pylint: disable=name-too-long
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.aio.DevCenterMgmtClient`'s
+ :attr:`dev_center_catalog_image_definitions` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_dev_center_catalog(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ top: Optional[int] = None,
+ **kwargs: Any
+ ) -> AsyncIterable["_models.ImageDefinition"]:
+ """List Image Definitions in the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param top: The maximum number of resources to return from the operation. Example: '$top=10'.
+ Default value is None.
+ :type top: int
+ :return: An iterator like instance of either ImageDefinition or the result of cls(response)
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.devcenter.models.ImageDefinition]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_dev_center_catalog_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ subscription_id=self._config.subscription_id,
+ top=top,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageDefinitionListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @distributed_trace_async
+ async def get_by_dev_center_catalog(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ **kwargs: Any
+ ) -> _models.ImageDefinition:
+ """Gets an Image Definition from the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: ImageDefinition or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinition
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinition] = kwargs.pop("cls", None)
+
+ _request = build_get_by_dev_center_catalog_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinition", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ async def get_error_details(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ **kwargs: Any
+ ) -> _models.CatalogResourceValidationErrorDetails:
+ """Gets Image Definition error details.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: CatalogResourceValidationErrorDetails or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.CatalogResourceValidationErrorDetails
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.CatalogResourceValidationErrorDetails] = kwargs.pop("cls", None)
+
+ _request = build_get_error_details_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ async def _build_image_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_build_image_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ async def begin_build_image(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Builds an image for the specified Image Definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: An instance of AsyncLROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._build_image_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod,
+ AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs),
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_centers_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_centers_operations.py
index af01c08bb11f..ddb48397fa30 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_centers_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_dev_centers_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +6,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.async_paging import AsyncItemPaged, AsyncList
@@ -17,12 +17,13 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
@@ -30,7 +31,6 @@
from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._dev_centers_operations import (
build_create_or_update_request,
build_delete_request,
@@ -40,6 +40,10 @@
build_update_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -80,7 +84,7 @@ def list_by_subscription(self, top: Optional[int] = None, **kwargs: Any) -> Asyn
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.DevCenterListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -98,7 +102,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -114,7 +117,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -166,7 +168,7 @@ def list_by_resource_group(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.DevCenterListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -185,7 +187,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -201,7 +202,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -244,7 +244,7 @@ async def get(self, resource_group_name: str, dev_center_name: str, **kwargs: An
:rtype: ~azure.mgmt.devcenter.models.DevCenter
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -266,7 +266,6 @@ async def get(self, resource_group_name: str, dev_center_name: str, **kwargs: An
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -281,7 +280,7 @@ async def get(self, resource_group_name: str, dev_center_name: str, **kwargs: An
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("DevCenter", pipeline_response)
+ deserialized = self._deserialize("DevCenter", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -290,8 +289,8 @@ async def get(self, resource_group_name: str, dev_center_name: str, **kwargs: An
async def _create_or_update_initial(
self, resource_group_name: str, dev_center_name: str, body: Union[_models.DevCenter, IO[bytes]], **kwargs: Any
- ) -> _models.DevCenter:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -304,7 +303,7 @@ async def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.DevCenter] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -325,10 +324,10 @@ async def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -336,15 +335,15 @@ async def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("DevCenter", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("DevCenter", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -446,10 +445,11 @@ async def begin_create_or_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("DevCenter", pipeline_response)
+ deserialized = self._deserialize("DevCenter", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -480,8 +480,8 @@ async def _update_initial(
dev_center_name: str,
body: Union[_models.DevCenterUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.DevCenter]:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -494,7 +494,7 @@ async def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.DevCenter]] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -515,10 +515,10 @@ async def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -526,18 +526,20 @@ async def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("DevCenter", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -643,10 +645,11 @@ async def begin_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("DevCenter", pipeline_response)
+ deserialized = self._deserialize("DevCenter", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -671,10 +674,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- async def _delete_initial( # pylint: disable=inconsistent-return-statements
+ async def _delete_initial(
self, resource_group_name: str, dev_center_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -686,7 +689,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -696,10 +699,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -707,6 +710,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -715,8 +722,12 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_delete(self, resource_group_name: str, dev_center_name: str, **kwargs: Any) -> AsyncLROPoller[None]:
@@ -740,7 +751,7 @@ async def begin_delete(self, resource_group_name: str, dev_center_name: str, **k
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._delete_initial( # type: ignore
+ raw_result = await self._delete_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
api_version=api_version,
@@ -749,6 +760,7 @@ async def begin_delete(self, resource_group_name: str, dev_center_name: str, **k
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_encryption_sets_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_encryption_sets_operations.py
new file mode 100644
index 000000000000..a0b26f7456e2
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_encryption_sets_operations.py
@@ -0,0 +1,755 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+from io import IOBase
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import urllib.parse
+
+from azure.core.async_paging import AsyncItemPaged, AsyncList
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
+from azure.core.rest import AsyncHttpResponse, HttpRequest
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.tracing.decorator_async import distributed_trace_async
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
+
+from ... import models as _models
+from ...operations._encryption_sets_operations import (
+ build_create_or_update_request,
+ build_delete_request,
+ build_get_request,
+ build_list_request,
+ build_update_request,
+)
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
+
+
+class EncryptionSetsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.aio.DevCenterMgmtClient`'s
+ :attr:`encryption_sets` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list(
+ self, resource_group_name: str, dev_center_name: str, top: Optional[int] = None, **kwargs: Any
+ ) -> AsyncIterable["_models.DevCenterEncryptionSet"]:
+ """Lists all encryption sets in the devcenter.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param top: The maximum number of resources to return from the operation. Example: '$top=10'.
+ Default value is None.
+ :type top: int
+ :return: An iterator like instance of either DevCenterEncryptionSet or the result of
+ cls(response)
+ :rtype:
+ ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.EncryptionSetListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ subscription_id=self._config.subscription_id,
+ top=top,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = self._deserialize("EncryptionSetListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @distributed_trace_async
+ async def get(
+ self, resource_group_name: str, dev_center_name: str, encryption_set_name: str, **kwargs: Any
+ ) -> _models.DevCenterEncryptionSet:
+ """Gets a devcenter encryption set.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :return: DevCenterEncryptionSet or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.DevCenterEncryptionSet
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.DevCenterEncryptionSet] = kwargs.pop("cls", None)
+
+ _request = build_get_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("DevCenterEncryptionSet", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ async def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: Union[_models.DevCenterEncryptionSet, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _json = None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _json = self._serialize.body(body, "DevCenterEncryptionSet")
+
+ _request = build_create_or_update_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ content_type=content_type,
+ json=_json,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: _models.DevCenterEncryptionSet,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.DevCenterEncryptionSet]:
+ """Creates or updates a devcenter encryption set resource.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Represents a devcenter encryption set. Required.
+ :type body: ~azure.mgmt.devcenter.models.DevCenterEncryptionSet
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns either DevCenterEncryptionSet or the result
+ of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.DevCenterEncryptionSet]:
+ """Creates or updates a devcenter encryption set resource.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Represents a devcenter encryption set. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns either DevCenterEncryptionSet or the result
+ of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: Union[_models.DevCenterEncryptionSet, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.DevCenterEncryptionSet]:
+ """Creates or updates a devcenter encryption set resource.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Represents a devcenter encryption set. Is either a DevCenterEncryptionSet type or
+ a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.devcenter.models.DevCenterEncryptionSet or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns either DevCenterEncryptionSet or the result
+ of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.DevCenterEncryptionSet] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ body=body,
+ api_version=api_version,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ deserialized = self._deserialize("DevCenterEncryptionSet", pipeline_response.http_response)
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod,
+ AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs),
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.DevCenterEncryptionSet].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.DevCenterEncryptionSet](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ async def _update_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: Union[_models.EncryptionSetUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _json = None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _json = self._serialize.body(body, "EncryptionSetUpdate")
+
+ _request = build_update_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ content_type=content_type,
+ json=_json,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: _models.EncryptionSetUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.DevCenterEncryptionSet]:
+ """Partially updates a devcenter encryption set.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Updatable devcenter encryption set properties. Required.
+ :type body: ~azure.mgmt.devcenter.models.EncryptionSetUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns either DevCenterEncryptionSet or the result
+ of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.DevCenterEncryptionSet]:
+ """Partially updates a devcenter encryption set.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Updatable devcenter encryption set properties. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns either DevCenterEncryptionSet or the result
+ of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: Union[_models.EncryptionSetUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.DevCenterEncryptionSet]:
+ """Partially updates a devcenter encryption set.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Updatable devcenter encryption set properties. Is either a EncryptionSetUpdate
+ type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.devcenter.models.EncryptionSetUpdate or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns either DevCenterEncryptionSet or the result
+ of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.DevCenterEncryptionSet] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._update_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ body=body,
+ api_version=api_version,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ deserialized = self._deserialize("DevCenterEncryptionSet", pipeline_response.http_response)
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod,
+ AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs),
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.DevCenterEncryptionSet].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.DevCenterEncryptionSet](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ async def _delete_initial(
+ self, resource_group_name: str, dev_center_name: str, encryption_set_name: str, **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_delete_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ async def begin_delete(
+ self, resource_group_name: str, dev_center_name: str, encryption_set_name: str, **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Deletes a devcenter encryption set.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :return: An instance of AsyncLROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._delete_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod,
+ AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs),
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_environment_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_environment_definitions_operations.py
index fb5442883ad1..e31a5b0172a4 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_environment_definitions_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_environment_definitions_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar
import urllib.parse
@@ -19,15 +19,13 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._environment_definitions_operations import (
build_get_by_project_catalog_request,
build_get_error_details_request,
@@ -36,6 +34,10 @@
build_list_by_project_catalog_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -84,7 +86,7 @@ def list_by_project_catalog(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.EnvironmentDefinitionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -104,7 +106,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -120,7 +121,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -174,7 +174,7 @@ async def get_by_project_catalog(
:rtype: ~azure.mgmt.devcenter.models.EnvironmentDefinition
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -198,7 +198,6 @@ async def get_by_project_catalog(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -213,7 +212,7 @@ async def get_by_project_catalog(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("EnvironmentDefinition", pipeline_response)
+ deserialized = self._deserialize("EnvironmentDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -253,7 +252,7 @@ def list_by_catalog(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.EnvironmentDefinitionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -274,7 +273,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -290,7 +288,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -344,7 +341,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.EnvironmentDefinition
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -368,7 +365,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -383,7 +379,7 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("EnvironmentDefinition", pipeline_response)
+ deserialized = self._deserialize("EnvironmentDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -414,7 +410,7 @@ async def get_error_details(
:rtype: ~azure.mgmt.devcenter.models.CatalogResourceValidationErrorDetails
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -438,7 +434,6 @@ async def get_error_details(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -453,7 +448,7 @@ async def get_error_details(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response)
+ deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_environment_types_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_environment_types_operations.py
index 51f591192e07..17b0b58920f0 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_environment_types_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_environment_types_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,6 +6,7 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
+import sys
from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, overload
import urllib.parse
@@ -20,15 +20,13 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._environment_types_operations import (
build_create_or_update_request,
build_delete_request,
@@ -37,6 +35,10 @@
build_update_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -84,7 +86,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.EnvironmentTypeListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -104,7 +106,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -120,7 +121,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -167,7 +167,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.EnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -190,7 +190,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -205,7 +204,7 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("EnvironmentType", pipeline_response)
+ deserialized = self._deserialize("EnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -297,7 +296,7 @@ async def create_or_update(
:rtype: ~azure.mgmt.devcenter.models.EnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -332,7 +331,6 @@ async def create_or_update(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -347,11 +345,7 @@ async def create_or_update(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("EnvironmentType", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("EnvironmentType", pipeline_response)
+ deserialized = self._deserialize("EnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -443,7 +437,7 @@ async def update(
:rtype: ~azure.mgmt.devcenter.models.EnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -478,7 +472,6 @@ async def update(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -493,7 +486,7 @@ async def update(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("EnvironmentType", pipeline_response)
+ deserialized = self._deserialize("EnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -501,7 +494,7 @@ async def update(
return deserialized # type: ignore
@distributed_trace_async
- async def delete( # pylint: disable=inconsistent-return-statements
+ async def delete(
self, resource_group_name: str, dev_center_name: str, environment_type_name: str, **kwargs: Any
) -> None:
"""Deletes an environment type.
@@ -517,7 +510,7 @@ async def delete( # pylint: disable=inconsistent-return-statements
:rtype: None
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -540,7 +533,6 @@ async def delete( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_galleries_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_galleries_operations.py
index 3b7402a26224..afd138c346d8 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_galleries_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_galleries_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +6,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.async_paging import AsyncItemPaged, AsyncList
@@ -17,12 +17,13 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
@@ -30,7 +31,6 @@
from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._galleries_operations import (
build_create_or_update_request,
build_delete_request,
@@ -38,6 +38,10 @@
build_list_by_dev_center_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -85,7 +89,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.GalleryListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -105,7 +109,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -121,7 +124,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -168,7 +170,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.Gallery
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -191,7 +193,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -206,7 +207,7 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Gallery", pipeline_response)
+ deserialized = self._deserialize("Gallery", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -220,8 +221,8 @@ async def _create_or_update_initial(
gallery_name: str,
body: Union[_models.Gallery, IO[bytes]],
**kwargs: Any
- ) -> _models.Gallery:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -234,7 +235,7 @@ async def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Gallery] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -256,10 +257,10 @@ async def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -267,15 +268,15 @@ async def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Gallery", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Gallery", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -391,10 +392,11 @@ async def begin_create_or_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Gallery", pipeline_response)
+ deserialized = self._deserialize("Gallery", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -419,10 +421,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- async def _delete_initial( # pylint: disable=inconsistent-return-statements
+ async def _delete_initial(
self, resource_group_name: str, dev_center_name: str, gallery_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -434,7 +436,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -445,10 +447,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -456,6 +458,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -464,8 +470,12 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_delete(
@@ -493,7 +503,7 @@ async def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._delete_initial( # type: ignore
+ raw_result = await self._delete_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
gallery_name=gallery_name,
@@ -503,6 +513,7 @@ async def begin_delete(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_image_versions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_image_versions_operations.py
index e52157b1ea04..1c9f99fad31f 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_image_versions_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_image_versions_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar
import urllib.parse
@@ -19,17 +19,24 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
-from ...operations._image_versions_operations import build_get_request, build_list_by_image_request
+from ...operations._image_versions_operations import (
+ build_get_by_project_request,
+ build_get_request,
+ build_list_by_image_request,
+ build_list_by_project_request,
+)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -78,7 +85,7 @@ def list_by_image(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ImageVersionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -99,7 +106,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -115,7 +121,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -172,7 +177,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.ImageVersion
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -197,7 +202,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -212,7 +216,158 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("ImageVersion", pipeline_response)
+ deserialized = self._deserialize("ImageVersion", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def list_by_project(
+ self, resource_group_name: str, project_name: str, image_name: str, **kwargs: Any
+ ) -> AsyncIterable["_models.ImageVersion"]:
+ """Lists versions for an image.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param image_name: The name of the image. Required.
+ :type image_name: str
+ :return: An iterator like instance of either ImageVersion or the result of cls(response)
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.devcenter.models.ImageVersion]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageVersionListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_project_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ image_name=image_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageVersionListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @distributed_trace_async
+ async def get_by_project(
+ self, resource_group_name: str, project_name: str, image_name: str, version_name: str, **kwargs: Any
+ ) -> _models.ImageVersion:
+ """Gets an image version.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param image_name: The name of the image. Required.
+ :type image_name: str
+ :param version_name: The version of the image. Required.
+ :type version_name: str
+ :return: ImageVersion or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageVersion
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageVersion] = kwargs.pop("cls", None)
+
+ _request = build_get_by_project_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ image_name=image_name,
+ version_name=version_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageVersion", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_images_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_images_operations.py
index e48c4b1b9824..f98d53cfa66b 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_images_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_images_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar
import urllib.parse
@@ -19,21 +19,25 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._images_operations import (
+ build_get_by_project_request,
build_get_request,
build_list_by_dev_center_request,
build_list_by_gallery_request,
+ build_list_by_project_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -81,7 +85,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ImageListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -101,7 +105,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -117,7 +120,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -178,7 +180,7 @@ def list_by_gallery(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ImageListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -199,7 +201,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -215,7 +216,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -264,7 +264,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.Image
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -288,7 +288,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -303,7 +302,152 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Image", pipeline_response)
+ deserialized = self._deserialize("Image", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def list_by_project(
+ self, resource_group_name: str, project_name: str, **kwargs: Any
+ ) -> AsyncIterable["_models.Image"]:
+ """Lists images for a project.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :return: An iterator like instance of either Image or the result of cls(response)
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.devcenter.models.Image]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_project_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @distributed_trace_async
+ async def get_by_project(
+ self, resource_group_name: str, project_name: str, image_name: str, **kwargs: Any
+ ) -> _models.Image:
+ """Gets an image.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param image_name: The name of the image. Required.
+ :type image_name: str
+ :return: Image or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.Image
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.Image] = kwargs.pop("cls", None)
+
+ _request = build_get_by_project_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ image_name=image_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("Image", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_network_connections_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_network_connections_operations.py
index 23d4d0e855c1..c587d7d45bdc 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_network_connections_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_network_connections_operations.py
@@ -1,4 +1,4 @@
-# pylint: disable=too-many-lines,too-many-statements
+# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +7,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.async_paging import AsyncItemPaged, AsyncList
@@ -17,12 +18,13 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
@@ -30,7 +32,6 @@
from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._network_connections_operations import (
build_create_or_update_request,
build_delete_request,
@@ -44,6 +45,10 @@
build_update_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -86,7 +91,7 @@ def list_by_subscription(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.NetworkConnectionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -104,7 +109,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -120,7 +124,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -172,7 +175,7 @@ def list_by_resource_group(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.NetworkConnectionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -191,7 +194,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -207,7 +209,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -253,7 +254,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.NetworkConnection
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -275,7 +276,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -290,7 +290,7 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
+ deserialized = self._deserialize("NetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -303,8 +303,8 @@ async def _create_or_update_initial(
network_connection_name: str,
body: Union[_models.NetworkConnection, IO[bytes]],
**kwargs: Any
- ) -> _models.NetworkConnection:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -317,7 +317,7 @@ async def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.NetworkConnection] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -338,10 +338,10 @@ async def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -349,15 +349,15 @@ async def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -467,10 +467,11 @@ async def begin_create_or_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
+ deserialized = self._deserialize("NetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -501,8 +502,8 @@ async def _update_initial(
network_connection_name: str,
body: Union[_models.NetworkConnectionUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.NetworkConnection]:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -515,7 +516,7 @@ async def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.NetworkConnection]] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -536,10 +537,10 @@ async def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -547,18 +548,20 @@ async def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -667,10 +670,11 @@ async def begin_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
+ deserialized = self._deserialize("NetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -695,10 +699,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- async def _delete_initial( # pylint: disable=inconsistent-return-statements
+ async def _delete_initial(
self, resource_group_name: str, network_connection_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -710,7 +714,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -720,10 +724,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -731,6 +735,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -739,8 +747,12 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_delete(
@@ -767,7 +779,7 @@ async def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._delete_initial( # type: ignore
+ raw_result = await self._delete_initial(
resource_group_name=resource_group_name,
network_connection_name=network_connection_name,
api_version=api_version,
@@ -776,6 +788,7 @@ async def begin_delete(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -827,7 +840,7 @@ def list_health_details(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.HealthCheckStatusDetailsListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -847,7 +860,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -863,7 +875,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -909,7 +920,7 @@ async def get_health_details(
:rtype: ~azure.mgmt.devcenter.models.HealthCheckStatusDetails
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -931,7 +942,6 @@ async def get_health_details(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -946,17 +956,17 @@ async def get_health_details(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("HealthCheckStatusDetails", pipeline_response)
+ deserialized = self._deserialize("HealthCheckStatusDetails", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
- async def _run_health_checks_initial( # pylint: disable=inconsistent-return-statements
+ async def _run_health_checks_initial(
self, resource_group_name: str, network_connection_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -968,7 +978,7 @@ async def _run_health_checks_initial( # pylint: disable=inconsistent-return-sta
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_run_health_checks_request(
resource_group_name=resource_group_name,
@@ -978,10 +988,10 @@ async def _run_health_checks_initial( # pylint: disable=inconsistent-return-sta
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -989,6 +999,10 @@ async def _run_health_checks_initial( # pylint: disable=inconsistent-return-sta
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -996,8 +1010,12 @@ async def _run_health_checks_initial( # pylint: disable=inconsistent-return-sta
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_run_health_checks(
@@ -1025,7 +1043,7 @@ async def begin_run_health_checks(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._run_health_checks_initial( # type: ignore
+ raw_result = await self._run_health_checks_initial(
resource_group_name=resource_group_name,
network_connection_name=network_connection_name,
api_version=api_version,
@@ -1034,6 +1052,7 @@ async def begin_run_health_checks(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -1086,7 +1105,7 @@ def list_outbound_network_dependencies_endpoints( # pylint: disable=name-too-lo
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.OutboundEnvironmentEndpointCollection] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1106,7 +1125,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -1122,7 +1140,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_operation_statuses_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_operation_statuses_operations.py
index 52c734930b00..9a44116b127a 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_operation_statuses_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_operation_statuses_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, Callable, Dict, Optional, TypeVar
from azure.core.exceptions import (
@@ -17,16 +17,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._operation_statuses_operations import build_get_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -64,7 +66,7 @@ async def get(self, location: str, operation_id: str, **kwargs: Any) -> _models.
:rtype: ~azure.mgmt.devcenter.models.OperationStatus
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -86,7 +88,6 @@ async def get(self, location: str, operation_id: str, **kwargs: Any) -> _models.
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -102,13 +103,10 @@ async def get(self, location: str, operation_id: str, **kwargs: Any) -> _models.
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("OperationStatus", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- deserialized = self._deserialize("OperationStatus", pipeline_response)
+ deserialized = self._deserialize("OperationStatus", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_operations.py
index 77e2bec528c8..45d8ec1488d5 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar
import urllib.parse
@@ -19,16 +19,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._operations import build_list_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -66,7 +68,7 @@ def list(self, **kwargs: Any) -> AsyncIterable["_models.Operation"]:
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.OperationListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -82,7 +84,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -98,7 +99,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_pools_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_pools_operations.py
index 6e430af1f7df..4b0d8bc3b140 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_pools_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_pools_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +6,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.async_paging import AsyncItemPaged, AsyncList
@@ -17,12 +17,13 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
@@ -30,7 +31,6 @@
from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._pools_operations import (
build_create_or_update_request,
build_delete_request,
@@ -40,6 +40,10 @@
build_update_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -87,7 +91,7 @@ def list_by_project(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.PoolListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -107,7 +111,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -123,7 +126,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -168,7 +170,7 @@ async def get(self, resource_group_name: str, project_name: str, pool_name: str,
:rtype: ~azure.mgmt.devcenter.models.Pool
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -191,7 +193,6 @@ async def get(self, resource_group_name: str, project_name: str, pool_name: str,
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -206,7 +207,7 @@ async def get(self, resource_group_name: str, project_name: str, pool_name: str,
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Pool", pipeline_response)
+ deserialized = self._deserialize("Pool", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -220,8 +221,8 @@ async def _create_or_update_initial(
pool_name: str,
body: Union[_models.Pool, IO[bytes]],
**kwargs: Any
- ) -> _models.Pool:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -234,7 +235,7 @@ async def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Pool] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -256,10 +257,10 @@ async def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -267,15 +268,15 @@ async def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Pool", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Pool", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -388,10 +389,11 @@ async def begin_create_or_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Pool", pipeline_response)
+ deserialized = self._deserialize("Pool", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -423,8 +425,8 @@ async def _update_initial(
pool_name: str,
body: Union[_models.PoolUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.Pool]:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -437,7 +439,7 @@ async def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.Pool]] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -459,10 +461,10 @@ async def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -470,18 +472,20 @@ async def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("Pool", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -594,10 +598,11 @@ async def begin_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Pool", pipeline_response)
+ deserialized = self._deserialize("Pool", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -622,10 +627,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- async def _delete_initial( # pylint: disable=inconsistent-return-statements
+ async def _delete_initial(
self, resource_group_name: str, project_name: str, pool_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -637,7 +642,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -648,10 +653,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -659,6 +664,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -667,8 +676,12 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_delete(
@@ -696,7 +709,7 @@ async def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._delete_initial( # type: ignore
+ raw_result = await self._delete_initial(
resource_group_name=resource_group_name,
project_name=project_name,
pool_name=pool_name,
@@ -706,6 +719,7 @@ async def begin_delete(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -730,10 +744,10 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- async def _run_health_checks_initial( # pylint: disable=inconsistent-return-statements
+ async def _run_health_checks_initial(
self, resource_group_name: str, project_name: str, pool_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -745,7 +759,7 @@ async def _run_health_checks_initial( # pylint: disable=inconsistent-return-sta
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_run_health_checks_request(
resource_group_name=resource_group_name,
@@ -756,10 +770,10 @@ async def _run_health_checks_initial( # pylint: disable=inconsistent-return-sta
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -767,6 +781,10 @@ async def _run_health_checks_initial( # pylint: disable=inconsistent-return-sta
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -774,8 +792,12 @@ async def _run_health_checks_initial( # pylint: disable=inconsistent-return-sta
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_run_health_checks(
@@ -803,7 +825,7 @@ async def begin_run_health_checks(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._run_health_checks_initial( # type: ignore
+ raw_result = await self._run_health_checks_initial(
resource_group_name=resource_group_name,
project_name=project_name,
pool_name=pool_name,
@@ -813,6 +835,7 @@ async def begin_run_health_checks(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_allowed_environment_types_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_allowed_environment_types_operations.py
index 00cbc77c5243..b47244660600 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_allowed_environment_types_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_allowed_environment_types_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar
import urllib.parse
@@ -19,17 +19,19 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._project_allowed_environment_types_operations import build_get_request, build_list_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -79,7 +81,7 @@ def list(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.AllowedEnvironmentTypeListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -99,7 +101,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -115,7 +116,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -162,7 +162,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.AllowedEnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -185,7 +185,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -200,7 +199,7 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AllowedEnvironmentType", pipeline_response)
+ deserialized = self._deserialize("AllowedEnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_environment_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_environment_definitions_operations.py
index 10374b4ef5bc..36575576497e 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_environment_definitions_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_environment_definitions_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, Callable, Dict, Optional, TypeVar
from azure.core.exceptions import (
@@ -17,16 +17,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._project_catalog_environment_definitions_operations import build_get_error_details_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -74,7 +76,7 @@ async def get_error_details(
:rtype: ~azure.mgmt.devcenter.models.CatalogResourceValidationErrorDetails
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -98,7 +100,6 @@ async def get_error_details(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -113,7 +114,7 @@ async def get_error_details(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response)
+ deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_image_definition_build_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_image_definition_build_operations.py
new file mode 100644
index 000000000000..ed29dde61195
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_image_definition_build_operations.py
@@ -0,0 +1,346 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, AsyncIterator, Callable, Dict, Optional, TypeVar, Union, cast
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
+from azure.core.rest import AsyncHttpResponse, HttpRequest
+from azure.core.tracing.decorator_async import distributed_trace_async
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
+
+from ... import models as _models
+from ...operations._project_catalog_image_definition_build_operations import (
+ build_cancel_request,
+ build_get_build_details_request,
+ build_get_request,
+)
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
+
+
+class ProjectCatalogImageDefinitionBuildOperations: # pylint: disable=name-too-long
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.aio.DevCenterMgmtClient`'s
+ :attr:`project_catalog_image_definition_build` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace_async
+ async def get(
+ self,
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> _models.ImageDefinitionBuild:
+ """Gets a build for a specified image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: ImageDefinitionBuild or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinitionBuild
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuild] = kwargs.pop("cls", None)
+
+ _request = build_get_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinitionBuild", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ async def _cancel_initial(
+ self,
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_cancel_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ async def begin_cancel(
+ self,
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Cancels the specified build for an image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: An instance of AsyncLROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._cancel_initial(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod,
+ AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs),
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace_async
+ async def get_build_details(
+ self,
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> _models.ImageDefinitionBuildDetails:
+ """Gets Build details.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: ImageDefinitionBuildDetails or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinitionBuildDetails
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuildDetails] = kwargs.pop("cls", None)
+
+ _request = build_get_build_details_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinitionBuildDetails", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_image_definition_builds_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_image_definition_builds_operations.py
new file mode 100644
index 000000000000..458a95682dcb
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_image_definition_builds_operations.py
@@ -0,0 +1,147 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar
+import urllib.parse
+
+from azure.core.async_paging import AsyncItemPaged, AsyncList
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.rest import AsyncHttpResponse, HttpRequest
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+
+from ... import models as _models
+from ...operations._project_catalog_image_definition_builds_operations import build_list_by_image_definition_request
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
+
+
+class ProjectCatalogImageDefinitionBuildsOperations: # pylint: disable=name-too-long
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.aio.DevCenterMgmtClient`'s
+ :attr:`project_catalog_image_definition_builds` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_image_definition(
+ self, resource_group_name: str, project_name: str, catalog_name: str, image_definition_name: str, **kwargs: Any
+ ) -> AsyncIterable["_models.ImageDefinitionBuild"]:
+ """Lists builds for a specified image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: An iterator like instance of either ImageDefinitionBuild or the result of
+ cls(response)
+ :rtype:
+ ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.devcenter.models.ImageDefinitionBuild]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuildListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_image_definition_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageDefinitionBuildListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_image_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_image_definitions_operations.py
new file mode 100644
index 000000000000..19b14e6e8091
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalog_image_definitions_operations.py
@@ -0,0 +1,407 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, Optional, TypeVar, Union, cast
+import urllib.parse
+
+from azure.core.async_paging import AsyncItemPaged, AsyncList
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
+from azure.core.rest import AsyncHttpResponse, HttpRequest
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.tracing.decorator_async import distributed_trace_async
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
+
+from ... import models as _models
+from ...operations._project_catalog_image_definitions_operations import (
+ build_build_image_request,
+ build_get_by_project_catalog_request,
+ build_get_error_details_request,
+ build_list_by_project_catalog_request,
+)
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
+
+
+class ProjectCatalogImageDefinitionsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.aio.DevCenterMgmtClient`'s
+ :attr:`project_catalog_image_definitions` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_project_catalog(
+ self, resource_group_name: str, project_name: str, catalog_name: str, top: Optional[int] = None, **kwargs: Any
+ ) -> AsyncIterable["_models.ImageDefinition"]:
+ """List Image Definitions in the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param top: The maximum number of resources to return from the operation. Example: '$top=10'.
+ Default value is None.
+ :type top: int
+ :return: An iterator like instance of either ImageDefinition or the result of cls(response)
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.devcenter.models.ImageDefinition]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_project_catalog_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ subscription_id=self._config.subscription_id,
+ top=top,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageDefinitionListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @distributed_trace_async
+ async def get_by_project_catalog(
+ self, resource_group_name: str, project_name: str, catalog_name: str, image_definition_name: str, **kwargs: Any
+ ) -> _models.ImageDefinition:
+ """Gets an Image Definition from the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: ImageDefinition or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinition
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinition] = kwargs.pop("cls", None)
+
+ _request = build_get_by_project_catalog_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinition", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ async def get_error_details(
+ self, resource_group_name: str, project_name: str, catalog_name: str, image_definition_name: str, **kwargs: Any
+ ) -> _models.CatalogResourceValidationErrorDetails:
+ """Gets Image Definition error details.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: CatalogResourceValidationErrorDetails or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.CatalogResourceValidationErrorDetails
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.CatalogResourceValidationErrorDetails] = kwargs.pop("cls", None)
+
+ _request = build_get_error_details_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ async def _build_image_initial(
+ self, resource_group_name: str, project_name: str, catalog_name: str, image_definition_name: str, **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_build_image_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ async def begin_build_image(
+ self, resource_group_name: str, project_name: str, catalog_name: str, image_definition_name: str, **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Builds an image for the specified Image Definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: An instance of AsyncLROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._build_image_initial(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod,
+ AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs),
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalogs_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalogs_operations.py
index f4d726b88814..6bdd35485ef3 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalogs_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_catalogs_operations.py
@@ -1,4 +1,4 @@
-# pylint: disable=too-many-lines,too-many-statements
+# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +7,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.async_paging import AsyncItemPaged, AsyncList
@@ -17,12 +18,13 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
@@ -30,7 +32,6 @@
from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._project_catalogs_operations import (
build_connect_request,
build_create_or_update_request,
@@ -42,6 +43,10 @@
build_sync_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -89,7 +94,7 @@ def list(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.CatalogListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -109,7 +114,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -125,7 +129,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -172,7 +175,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.Catalog
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -195,7 +198,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -210,7 +212,7 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -224,8 +226,8 @@ async def _create_or_update_initial(
catalog_name: str,
body: Union[_models.Catalog, IO[bytes]],
**kwargs: Any
- ) -> _models.Catalog:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -238,7 +240,7 @@ async def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Catalog] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -260,10 +262,10 @@ async def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -271,15 +273,15 @@ async def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Catalog", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -395,10 +397,11 @@ async def begin_create_or_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -430,8 +433,8 @@ async def _patch_initial(
catalog_name: str,
body: Union[_models.CatalogUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.Catalog]:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -444,7 +447,7 @@ async def _patch_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.Catalog]] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -466,10 +469,10 @@ async def _patch_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -477,18 +480,20 @@ async def _patch_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("Catalog", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -604,10 +609,11 @@ async def begin_patch(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -632,10 +638,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- async def _delete_initial( # pylint: disable=inconsistent-return-statements
+ async def _delete_initial(
self, resource_group_name: str, project_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -647,7 +653,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -658,10 +664,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -669,6 +675,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -677,8 +687,12 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_delete(
@@ -706,7 +720,7 @@ async def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._delete_initial( # type: ignore
+ raw_result = await self._delete_initial(
resource_group_name=resource_group_name,
project_name=project_name,
catalog_name=catalog_name,
@@ -716,6 +730,7 @@ async def begin_delete(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -757,7 +772,7 @@ async def get_sync_error_details(
:rtype: ~azure.mgmt.devcenter.models.SyncErrorDetails
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -780,7 +795,6 @@ async def get_sync_error_details(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -795,17 +809,17 @@ async def get_sync_error_details(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("SyncErrorDetails", pipeline_response)
+ deserialized = self._deserialize("SyncErrorDetails", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
- async def _sync_initial( # pylint: disable=inconsistent-return-statements
+ async def _sync_initial(
self, resource_group_name: str, project_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -817,7 +831,7 @@ async def _sync_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_sync_request(
resource_group_name=resource_group_name,
@@ -828,10 +842,10 @@ async def _sync_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -839,6 +853,10 @@ async def _sync_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -846,8 +864,12 @@ async def _sync_initial( # pylint: disable=inconsistent-return-statements
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_sync(
@@ -875,7 +897,7 @@ async def begin_sync(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._sync_initial( # type: ignore
+ raw_result = await self._sync_initial(
resource_group_name=resource_group_name,
project_name=project_name,
catalog_name=catalog_name,
@@ -885,6 +907,7 @@ async def begin_sync(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -909,10 +932,10 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- async def _connect_initial( # pylint: disable=inconsistent-return-statements
+ async def _connect_initial(
self, resource_group_name: str, project_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -924,7 +947,7 @@ async def _connect_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_connect_request(
resource_group_name=resource_group_name,
@@ -935,10 +958,10 @@ async def _connect_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -946,6 +969,10 @@ async def _connect_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -953,8 +980,12 @@ async def _connect_initial( # pylint: disable=inconsistent-return-statements
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_connect(
@@ -982,7 +1013,7 @@ async def begin_connect(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._connect_initial( # type: ignore
+ raw_result = await self._connect_initial(
resource_group_name=resource_group_name,
project_name=project_name,
catalog_name=catalog_name,
@@ -992,6 +1023,7 @@ async def begin_connect(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_environment_types_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_environment_types_operations.py
index ee62d0e3893f..d0209e8465cb 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_environment_types_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_environment_types_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,6 +6,7 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
+import sys
from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, overload
import urllib.parse
@@ -20,15 +20,13 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._project_environment_types_operations import (
build_create_or_update_request,
build_delete_request,
@@ -37,6 +35,10 @@
build_update_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -86,7 +88,7 @@ def list(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ProjectEnvironmentTypeListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -106,7 +108,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -122,7 +123,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -169,7 +169,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.ProjectEnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -192,7 +192,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -207,7 +206,7 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response)
+ deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -299,7 +298,7 @@ async def create_or_update(
:rtype: ~azure.mgmt.devcenter.models.ProjectEnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -334,7 +333,6 @@ async def create_or_update(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -349,11 +347,7 @@ async def create_or_update(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response)
+ deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -445,7 +439,7 @@ async def update(
:rtype: ~azure.mgmt.devcenter.models.ProjectEnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -480,7 +474,6 @@ async def update(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -495,7 +488,7 @@ async def update(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response)
+ deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -503,7 +496,7 @@ async def update(
return deserialized # type: ignore
@distributed_trace_async
- async def delete( # pylint: disable=inconsistent-return-statements
+ async def delete(
self, resource_group_name: str, project_name: str, environment_type_name: str, **kwargs: Any
) -> None:
"""Deletes a project environment type.
@@ -519,7 +512,7 @@ async def delete( # pylint: disable=inconsistent-return-statements
:rtype: None
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -542,7 +535,6 @@ async def delete( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_policies_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_policies_operations.py
new file mode 100644
index 000000000000..6245f36c400d
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_project_policies_operations.py
@@ -0,0 +1,753 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+from io import IOBase
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import urllib.parse
+
+from azure.core.async_paging import AsyncItemPaged, AsyncList
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
+from azure.core.rest import AsyncHttpResponse, HttpRequest
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.tracing.decorator_async import distributed_trace_async
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
+
+from ... import models as _models
+from ...operations._project_policies_operations import (
+ build_create_or_update_request,
+ build_delete_request,
+ build_get_request,
+ build_list_by_dev_center_request,
+ build_update_request,
+)
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
+
+
+class ProjectPoliciesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.aio.DevCenterMgmtClient`'s
+ :attr:`project_policies` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs) -> None:
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_dev_center(
+ self, resource_group_name: str, dev_center_name: str, top: Optional[int] = None, **kwargs: Any
+ ) -> AsyncIterable["_models.ProjectPolicy"]:
+ """Lists all project policies in the dev center.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param top: The maximum number of resources to return from the operation. Example: '$top=10'.
+ Default value is None.
+ :type top: int
+ :return: An iterator like instance of either ProjectPolicy or the result of cls(response)
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ProjectPolicyListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_dev_center_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ subscription_id=self._config.subscription_id,
+ top=top,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = self._deserialize("ProjectPolicyListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
+ @distributed_trace_async
+ async def get(
+ self, resource_group_name: str, dev_center_name: str, project_policy_name: str, **kwargs: Any
+ ) -> _models.ProjectPolicy:
+ """Gets a specific project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :return: ProjectPolicy or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ProjectPolicy
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ProjectPolicy] = kwargs.pop("cls", None)
+
+ _request = build_get_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ProjectPolicy", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ async def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: Union[_models.ProjectPolicy, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _json = None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _json = self._serialize.body(body, "ProjectPolicy")
+
+ _request = build_create_or_update_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ content_type=content_type,
+ json=_json,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: _models.ProjectPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ProjectPolicy]:
+ """Creates or updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Represents an project policy. Required.
+ :type body: ~azure.mgmt.devcenter.models.ProjectPolicy
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ProjectPolicy]:
+ """Creates or updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Represents an project policy. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ async def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: Union[_models.ProjectPolicy, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ProjectPolicy]:
+ """Creates or updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Represents an project policy. Is either a ProjectPolicy type or a IO[bytes] type.
+ Required.
+ :type body: ~azure.mgmt.devcenter.models.ProjectPolicy or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ProjectPolicy] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ body=body,
+ api_version=api_version,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ deserialized = self._deserialize("ProjectPolicy", pipeline_response.http_response)
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod,
+ AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs),
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ProjectPolicy].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ProjectPolicy](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ async def _update_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: Union[_models.ProjectPolicyUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _json = None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _json = self._serialize.body(body, "ProjectPolicyUpdate")
+
+ _request = build_update_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ content_type=content_type,
+ json=_json,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: _models.ProjectPolicyUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ProjectPolicy]:
+ """Partially updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Updatable project policy properties. Required.
+ :type body: ~azure.mgmt.devcenter.models.ProjectPolicyUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ProjectPolicy]:
+ """Partially updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Updatable project policy properties. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of AsyncLROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace_async
+ async def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: Union[_models.ProjectPolicyUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> AsyncLROPoller[_models.ProjectPolicy]:
+ """Partially updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Updatable project policy properties. Is either a ProjectPolicyUpdate type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.devcenter.models.ProjectPolicyUpdate or IO[bytes]
+ :return: An instance of AsyncLROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ProjectPolicy] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._update_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ body=body,
+ api_version=api_version,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ deserialized = self._deserialize("ProjectPolicy", pipeline_response.http_response)
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod,
+ AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs),
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[_models.ProjectPolicy].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[_models.ProjectPolicy](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ async def _delete_initial(
+ self, resource_group_name: str, dev_center_name: str, project_policy_name: str, **kwargs: Any
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_delete_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace_async
+ async def begin_delete(
+ self, resource_group_name: str, dev_center_name: str, project_policy_name: str, **kwargs: Any
+ ) -> AsyncLROPoller[None]:
+ """Deletes an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :return: An instance of AsyncLROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.AsyncLROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, AsyncPollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = await self._delete_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ await raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: AsyncPollingMethod = cast(
+ AsyncPollingMethod,
+ AsyncARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs),
+ )
+ elif polling is False:
+ polling_method = cast(AsyncPollingMethod, AsyncNoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return AsyncLROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_projects_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_projects_operations.py
index 71590f986b69..fee731730eee 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_projects_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_projects_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +6,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.async_paging import AsyncItemPaged, AsyncList
@@ -17,12 +17,13 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
@@ -30,16 +31,20 @@
from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._projects_operations import (
build_create_or_update_request,
build_delete_request,
+ build_get_inherited_settings_request,
build_get_request,
build_list_by_resource_group_request,
build_list_by_subscription_request,
build_update_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -80,7 +85,7 @@ def list_by_subscription(self, top: Optional[int] = None, **kwargs: Any) -> Asyn
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ProjectListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -98,7 +103,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -114,7 +118,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -166,7 +169,7 @@ def list_by_resource_group(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ProjectListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -185,7 +188,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -201,7 +203,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -244,7 +245,7 @@ async def get(self, resource_group_name: str, project_name: str, **kwargs: Any)
:rtype: ~azure.mgmt.devcenter.models.Project
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -266,7 +267,6 @@ async def get(self, resource_group_name: str, project_name: str, **kwargs: Any)
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -281,7 +281,7 @@ async def get(self, resource_group_name: str, project_name: str, **kwargs: Any)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Project", pipeline_response)
+ deserialized = self._deserialize("Project", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -290,8 +290,8 @@ async def get(self, resource_group_name: str, project_name: str, **kwargs: Any)
async def _create_or_update_initial(
self, resource_group_name: str, project_name: str, body: Union[_models.Project, IO[bytes]], **kwargs: Any
- ) -> _models.Project:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -304,7 +304,7 @@ async def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Project] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -325,10 +325,10 @@ async def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -336,15 +336,15 @@ async def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Project", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Project", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -446,10 +446,11 @@ async def begin_create_or_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Project", pipeline_response)
+ deserialized = self._deserialize("Project", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -476,8 +477,8 @@ def get_long_running_output(pipeline_response):
async def _update_initial(
self, resource_group_name: str, project_name: str, body: Union[_models.ProjectUpdate, IO[bytes]], **kwargs: Any
- ) -> Optional[_models.Project]:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -490,7 +491,7 @@ async def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.Project]] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -511,10 +512,10 @@ async def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -522,18 +523,20 @@ async def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("Project", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -635,10 +638,11 @@ async def begin_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Project", pipeline_response)
+ deserialized = self._deserialize("Project", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -663,10 +667,8 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- async def _delete_initial( # pylint: disable=inconsistent-return-statements
- self, resource_group_name: str, project_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ async def _delete_initial(self, resource_group_name: str, project_name: str, **kwargs: Any) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -678,7 +680,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -688,10 +690,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -699,6 +701,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -707,8 +713,12 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_delete(self, resource_group_name: str, project_name: str, **kwargs: Any) -> AsyncLROPoller[None]:
@@ -732,7 +742,7 @@ async def begin_delete(self, resource_group_name: str, project_name: str, **kwar
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._delete_initial( # type: ignore
+ raw_result = await self._delete_initial(
resource_group_name=resource_group_name,
project_name=project_name,
api_version=api_version,
@@ -741,6 +751,7 @@ async def begin_delete(self, resource_group_name: str, project_name: str, **kwar
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -764,3 +775,61 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
deserialization_callback=get_long_running_output,
)
return AsyncLROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace_async
+ async def get_inherited_settings(
+ self, resource_group_name: str, project_name: str, **kwargs: Any
+ ) -> _models.InheritedSettingsForProject:
+ """Gets applicable inherited settings for this project.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :return: InheritedSettingsForProject or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.InheritedSettingsForProject
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.InheritedSettingsForProject] = kwargs.pop("cls", None)
+
+ _request = build_get_inherited_settings_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("InheritedSettingsForProject", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_schedules_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_schedules_operations.py
index efbb20124380..03b9d595a6b4 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_schedules_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_schedules_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +6,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, AsyncIterable, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, AsyncIterable, AsyncIterator, Callable, Dict, IO, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.async_paging import AsyncItemPaged, AsyncList
@@ -17,12 +17,13 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
from azure.core.polling import AsyncLROPoller, AsyncNoPolling, AsyncPollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.tracing.decorator_async import distributed_trace_async
from azure.core.utils import case_insensitive_dict
@@ -30,7 +31,6 @@
from azure.mgmt.core.polling.async_arm_polling import AsyncARMPolling
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._schedules_operations import (
build_create_or_update_request,
build_delete_request,
@@ -39,6 +39,10 @@
build_update_request,
)
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -88,7 +92,7 @@ def list_by_pool(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ScheduleListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -109,7 +113,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -125,7 +128,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -183,7 +185,7 @@ async def get(
:rtype: ~azure.mgmt.devcenter.models.Schedule
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -208,7 +210,6 @@ async def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -223,7 +224,7 @@ async def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Schedule", pipeline_response)
+ deserialized = self._deserialize("Schedule", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -239,8 +240,8 @@ async def _create_or_update_initial(
body: Union[_models.Schedule, IO[bytes]],
top: Optional[int] = None,
**kwargs: Any
- ) -> _models.Schedule:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -253,7 +254,7 @@ async def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Schedule] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -277,10 +278,10 @@ async def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -288,15 +289,15 @@ async def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Schedule", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Schedule", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -436,10 +437,11 @@ async def begin_create_or_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Schedule", pipeline_response)
+ deserialized = self._deserialize("Schedule", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -473,8 +475,8 @@ async def _update_initial(
body: Union[_models.ScheduleUpdate, IO[bytes]],
top: Optional[int] = None,
**kwargs: Any
- ) -> Optional[_models.Schedule]:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -487,7 +489,7 @@ async def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.Schedule]] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -511,10 +513,10 @@ async def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -522,18 +524,20 @@ async def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("Schedule", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -672,10 +676,11 @@ async def begin_update(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Schedule", pipeline_response)
+ deserialized = self._deserialize("Schedule", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -700,7 +705,7 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- async def _delete_initial( # pylint: disable=inconsistent-return-statements
+ async def _delete_initial(
self,
resource_group_name: str,
project_name: str,
@@ -708,8 +713,8 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
schedule_name: str,
top: Optional[int] = None,
**kwargs: Any
- ) -> None:
- error_map = {
+ ) -> AsyncIterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -721,7 +726,7 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[AsyncIterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -734,10 +739,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -745,6 +750,10 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ await response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -753,8 +762,12 @@ async def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace_async
async def begin_delete(
@@ -793,7 +806,7 @@ async def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = await self._delete_initial( # type: ignore
+ raw_result = await self._delete_initial(
resource_group_name=resource_group_name,
project_name=project_name,
pool_name=pool_name,
@@ -805,6 +818,7 @@ async def begin_delete(
params=_params,
**kwargs
)
+ await raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_skus_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_skus_operations.py
index 105e6d9cc7b7..2d2b44fe5415 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_skus_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_skus_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar
import urllib.parse
@@ -19,16 +19,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
-from ...operations._skus_operations import build_list_by_subscription_request
+from ...operations._skus_operations import build_list_by_project_request, build_list_by_subscription_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -52,6 +54,90 @@ def __init__(self, *args, **kwargs) -> None:
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+ @distributed_trace
+ def list_by_project(
+ self, resource_group_name: str, project_name: str, **kwargs: Any
+ ) -> AsyncIterable["_models.DevCenterSku"]:
+ """Lists SKUs available to the project.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :return: An iterator like instance of either DevCenterSku or the result of cls(response)
+ :rtype: ~azure.core.async_paging.AsyncItemPaged[~azure.mgmt.devcenter.models.DevCenterSku]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.SkuListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_project_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ async def extract_data(pipeline_response):
+ deserialized = self._deserialize("SkuListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, AsyncList(list_of_elem)
+
+ async def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = await self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return AsyncItemPaged(get_next, extract_data)
+
@distributed_trace
def list_by_subscription(self, top: Optional[int] = None, **kwargs: Any) -> AsyncIterable["_models.DevCenterSku"]:
"""Lists the Microsoft.DevCenter SKUs available in a subscription.
@@ -69,7 +155,7 @@ def list_by_subscription(self, top: Optional[int] = None, **kwargs: Any) -> Asyn
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.SkuListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -87,7 +173,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -103,7 +188,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_usages_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_usages_operations.py
index 9317305c2fb4..41ae8a226c50 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_usages_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/aio/operations/_usages_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, AsyncIterable, Callable, Dict, Optional, TypeVar
import urllib.parse
@@ -19,16 +19,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import AsyncHttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import AsyncHttpResponse, HttpRequest
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from ... import models as _models
-from ..._vendor import _convert_request
from ...operations._usages_operations import build_list_by_location_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, AsyncHttpResponse], T, Dict[str, Any]], Any]]
@@ -68,7 +70,7 @@ def list_by_location(self, location: str, **kwargs: Any) -> AsyncIterable["_mode
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ListUsagesResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -86,7 +88,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -102,7 +103,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/__init__.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/__init__.py
index 0b0abe9b6099..7e88f29e893d 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/__init__.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/__init__.py
@@ -5,158 +5,230 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+# pylint: disable=wrong-import-position
-from ._models_py3 import AllowedEnvironmentType
-from ._models_py3 import AllowedEnvironmentTypeListResult
-from ._models_py3 import AttachedNetworkConnection
-from ._models_py3 import AttachedNetworkListResult
-from ._models_py3 import Capability
-from ._models_py3 import Catalog
-from ._models_py3 import CatalogConflictError
-from ._models_py3 import CatalogErrorDetails
-from ._models_py3 import CatalogListResult
-from ._models_py3 import CatalogProperties
-from ._models_py3 import CatalogResourceValidationErrorDetails
-from ._models_py3 import CatalogSyncError
-from ._models_py3 import CatalogUpdate
-from ._models_py3 import CatalogUpdateProperties
-from ._models_py3 import CheckNameAvailabilityRequest
-from ._models_py3 import CheckNameAvailabilityResponse
-from ._models_py3 import CheckScopedNameAvailabilityRequest
-from ._models_py3 import CustomerManagedKeyEncryption
-from ._models_py3 import CustomerManagedKeyEncryptionKeyIdentity
-from ._models_py3 import DevBoxDefinition
-from ._models_py3 import DevBoxDefinitionListResult
-from ._models_py3 import DevBoxDefinitionProperties
-from ._models_py3 import DevBoxDefinitionUpdate
-from ._models_py3 import DevBoxDefinitionUpdateProperties
-from ._models_py3 import DevCenter
-from ._models_py3 import DevCenterListResult
-from ._models_py3 import DevCenterProjectCatalogSettings
-from ._models_py3 import DevCenterProperties
-from ._models_py3 import DevCenterSku
-from ._models_py3 import DevCenterUpdate
-from ._models_py3 import DevCenterUpdateProperties
-from ._models_py3 import Encryption
-from ._models_py3 import EndpointDependency
-from ._models_py3 import EndpointDetail
-from ._models_py3 import EnvironmentDefinition
-from ._models_py3 import EnvironmentDefinitionListResult
-from ._models_py3 import EnvironmentDefinitionParameter
-from ._models_py3 import EnvironmentRole
-from ._models_py3 import EnvironmentType
-from ._models_py3 import EnvironmentTypeListResult
-from ._models_py3 import EnvironmentTypeProperties
-from ._models_py3 import EnvironmentTypeUpdate
-from ._models_py3 import EnvironmentTypeUpdateProperties
-from ._models_py3 import ErrorAdditionalInfo
-from ._models_py3 import ErrorDetail
-from ._models_py3 import ErrorResponse
-from ._models_py3 import Gallery
-from ._models_py3 import GalleryListResult
-from ._models_py3 import GitCatalog
-from ._models_py3 import HealthCheck
-from ._models_py3 import HealthCheckStatusDetails
-from ._models_py3 import HealthCheckStatusDetailsListResult
-from ._models_py3 import HealthStatusDetail
-from ._models_py3 import Image
-from ._models_py3 import ImageListResult
-from ._models_py3 import ImageReference
-from ._models_py3 import ImageValidationErrorDetails
-from ._models_py3 import ImageVersion
-from ._models_py3 import ImageVersionListResult
-from ._models_py3 import ListUsagesResult
-from ._models_py3 import ManagedServiceIdentity
-from ._models_py3 import NetworkConnection
-from ._models_py3 import NetworkConnectionListResult
-from ._models_py3 import NetworkConnectionUpdate
-from ._models_py3 import NetworkConnectionUpdateProperties
-from ._models_py3 import NetworkProperties
-from ._models_py3 import Operation
-from ._models_py3 import OperationDisplay
-from ._models_py3 import OperationListResult
-from ._models_py3 import OperationStatus
-from ._models_py3 import OperationStatusResult
-from ._models_py3 import OutboundEnvironmentEndpoint
-from ._models_py3 import OutboundEnvironmentEndpointCollection
-from ._models_py3 import Pool
-from ._models_py3 import PoolListResult
-from ._models_py3 import PoolProperties
-from ._models_py3 import PoolUpdate
-from ._models_py3 import PoolUpdateProperties
-from ._models_py3 import Project
-from ._models_py3 import ProjectCatalogSettings
-from ._models_py3 import ProjectEnvironmentType
-from ._models_py3 import ProjectEnvironmentTypeListResult
-from ._models_py3 import ProjectEnvironmentTypeProperties
-from ._models_py3 import ProjectEnvironmentTypeUpdate
-from ._models_py3 import ProjectEnvironmentTypeUpdateProperties
-from ._models_py3 import ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment
-from ._models_py3 import ProjectListResult
-from ._models_py3 import ProjectProperties
-from ._models_py3 import ProjectUpdate
-from ._models_py3 import ProjectUpdateProperties
-from ._models_py3 import ProxyResource
-from ._models_py3 import RecommendedMachineConfiguration
-from ._models_py3 import Resource
-from ._models_py3 import ResourceRange
-from ._models_py3 import Schedule
-from ._models_py3 import ScheduleListResult
-from ._models_py3 import ScheduleProperties
-from ._models_py3 import ScheduleUpdate
-from ._models_py3 import ScheduleUpdateProperties
-from ._models_py3 import Sku
-from ._models_py3 import SkuListResult
-from ._models_py3 import StopOnDisconnectConfiguration
-from ._models_py3 import SyncErrorDetails
-from ._models_py3 import SyncStats
-from ._models_py3 import SystemData
-from ._models_py3 import TrackedResource
-from ._models_py3 import TrackedResourceUpdate
-from ._models_py3 import Usage
-from ._models_py3 import UsageName
-from ._models_py3 import UserAssignedIdentity
-from ._models_py3 import UserRoleAssignmentValue
+from typing import TYPE_CHECKING
-from ._dev_center_mgmt_client_enums import ActionType
-from ._dev_center_mgmt_client_enums import CatalogConnectionState
-from ._dev_center_mgmt_client_enums import CatalogItemSyncEnableStatus
-from ._dev_center_mgmt_client_enums import CatalogItemType
-from ._dev_center_mgmt_client_enums import CatalogResourceValidationStatus
-from ._dev_center_mgmt_client_enums import CatalogSyncState
-from ._dev_center_mgmt_client_enums import CatalogSyncType
-from ._dev_center_mgmt_client_enums import CheckNameAvailabilityReason
-from ._dev_center_mgmt_client_enums import CreatedByType
-from ._dev_center_mgmt_client_enums import DomainJoinType
-from ._dev_center_mgmt_client_enums import EnvironmentTypeEnableStatus
-from ._dev_center_mgmt_client_enums import HealthCheckStatus
-from ._dev_center_mgmt_client_enums import HealthStatus
-from ._dev_center_mgmt_client_enums import HibernateSupport
-from ._dev_center_mgmt_client_enums import IdentityType
-from ._dev_center_mgmt_client_enums import ImageValidationStatus
-from ._dev_center_mgmt_client_enums import LicenseType
-from ._dev_center_mgmt_client_enums import LocalAdminStatus
-from ._dev_center_mgmt_client_enums import ManagedServiceIdentityType
-from ._dev_center_mgmt_client_enums import Origin
-from ._dev_center_mgmt_client_enums import ParameterType
-from ._dev_center_mgmt_client_enums import ProvisioningState
-from ._dev_center_mgmt_client_enums import ScheduleEnableStatus
-from ._dev_center_mgmt_client_enums import ScheduledFrequency
-from ._dev_center_mgmt_client_enums import ScheduledType
-from ._dev_center_mgmt_client_enums import SingleSignOnStatus
-from ._dev_center_mgmt_client_enums import SkuTier
-from ._dev_center_mgmt_client_enums import StopOnDisconnectEnableStatus
-from ._dev_center_mgmt_client_enums import UsageUnit
-from ._dev_center_mgmt_client_enums import VirtualNetworkType
+if TYPE_CHECKING:
+ from ._patch import * # pylint: disable=unused-wildcard-import
+
+
+from ._models_py3 import ( # type: ignore
+ ActiveHoursConfiguration,
+ AllowedEnvironmentType,
+ AllowedEnvironmentTypeListResult,
+ AttachedNetworkConnection,
+ AttachedNetworkListResult,
+ AzureAiServicesSettings,
+ Capability,
+ Catalog,
+ CatalogConflictError,
+ CatalogErrorDetails,
+ CatalogListResult,
+ CatalogProperties,
+ CatalogResourceValidationErrorDetails,
+ CatalogSyncError,
+ CatalogUpdate,
+ CatalogUpdateProperties,
+ CheckNameAvailabilityRequest,
+ CheckNameAvailabilityResponse,
+ CheckScopedNameAvailabilityRequest,
+ CustomerManagedKeyEncryption,
+ CustomerManagedKeyEncryptionKeyIdentity,
+ CustomizationTask,
+ CustomizationTaskInput,
+ CustomizationTaskInstance,
+ CustomizationTaskListResult,
+ DefinitionParametersItem,
+ DevBoxAutoDeleteSettings,
+ DevBoxDefinition,
+ DevBoxDefinitionListResult,
+ DevBoxDefinitionProperties,
+ DevBoxDefinitionUpdate,
+ DevBoxDefinitionUpdateProperties,
+ DevBoxProvisioningSettings,
+ DevCenter,
+ DevCenterEncryptionSet,
+ DevCenterEncryptionSetProperties,
+ DevCenterEncryptionSetUpdateProperties,
+ DevCenterListResult,
+ DevCenterNetworkSettings,
+ DevCenterProjectCatalogSettings,
+ DevCenterProperties,
+ DevCenterSku,
+ DevCenterUpdate,
+ DevCenterUpdateProperties,
+ Encryption,
+ EncryptionSetListResult,
+ EncryptionSetUpdate,
+ EndpointDependency,
+ EndpointDetail,
+ EnvironmentDefinition,
+ EnvironmentDefinitionListResult,
+ EnvironmentDefinitionParameter,
+ EnvironmentRole,
+ EnvironmentType,
+ EnvironmentTypeListResult,
+ EnvironmentTypeProperties,
+ EnvironmentTypeUpdate,
+ EnvironmentTypeUpdateProperties,
+ ErrorAdditionalInfo,
+ ErrorDetail,
+ ErrorResponse,
+ Gallery,
+ GalleryListResult,
+ GitCatalog,
+ HealthCheck,
+ HealthCheckStatusDetails,
+ HealthCheckStatusDetailsListResult,
+ HealthStatusDetail,
+ Image,
+ ImageCreationErrorDetails,
+ ImageDefinition,
+ ImageDefinitionBuild,
+ ImageDefinitionBuildDetails,
+ ImageDefinitionBuildListResult,
+ ImageDefinitionBuildTask,
+ ImageDefinitionBuildTaskGroup,
+ ImageDefinitionBuildTaskParametersItem,
+ ImageDefinitionListResult,
+ ImageDefinitionReference,
+ ImageListResult,
+ ImageReference,
+ ImageValidationErrorDetails,
+ ImageVersion,
+ ImageVersionListResult,
+ InheritedSettingsForProject,
+ LatestImageBuild,
+ ListUsagesResult,
+ ManagedServiceIdentity,
+ NetworkConnection,
+ NetworkConnectionListResult,
+ NetworkConnectionUpdate,
+ NetworkConnectionUpdateProperties,
+ NetworkProperties,
+ Operation,
+ OperationDisplay,
+ OperationListResult,
+ OperationStatus,
+ OperationStatusResult,
+ OutboundEnvironmentEndpoint,
+ OutboundEnvironmentEndpointCollection,
+ Pool,
+ PoolDevBoxDefinition,
+ PoolListResult,
+ PoolProperties,
+ PoolUpdate,
+ PoolUpdateProperties,
+ Project,
+ ProjectCatalogSettings,
+ ProjectCustomizationManagedIdentity,
+ ProjectCustomizationSettings,
+ ProjectEnvironmentType,
+ ProjectEnvironmentTypeListResult,
+ ProjectEnvironmentTypeProperties,
+ ProjectEnvironmentTypeUpdate,
+ ProjectEnvironmentTypeUpdateProperties,
+ ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment,
+ ProjectListResult,
+ ProjectNetworkSettings,
+ ProjectPolicy,
+ ProjectPolicyListResult,
+ ProjectPolicyProperties,
+ ProjectPolicyUpdate,
+ ProjectPolicyUpdateProperties,
+ ProjectProperties,
+ ProjectUpdate,
+ ProjectUpdateProperties,
+ ProxyResource,
+ RecommendedMachineConfiguration,
+ Resource,
+ ResourcePolicy,
+ ResourceRange,
+ Schedule,
+ ScheduleListResult,
+ ScheduleProperties,
+ ScheduleUpdate,
+ ScheduleUpdateProperties,
+ ServerlessGpuSessionsSettings,
+ Sku,
+ SkuListResult,
+ StopOnDisconnectConfiguration,
+ StopOnNoConnectConfiguration,
+ SyncErrorDetails,
+ SyncStats,
+ SystemData,
+ TrackedResource,
+ TrackedResourceUpdate,
+ Usage,
+ UsageName,
+ UserAssignedIdentity,
+ UserRoleAssignmentValue,
+ WorkspaceStorageSettings,
+)
+
+from ._dev_center_mgmt_client_enums import ( # type: ignore
+ ActionType,
+ AutoImageBuildStatus,
+ AutoStartEnableStatus,
+ AzureAiServicesEnableStatus,
+ CatalogConnectionState,
+ CatalogItemSyncEnableStatus,
+ CatalogItemType,
+ CatalogResourceValidationStatus,
+ CatalogSyncState,
+ CatalogSyncType,
+ CheckNameAvailabilityReason,
+ CreatedByType,
+ CustomizationTaskInputType,
+ DevBoxAutoDeleteEnableStatus,
+ DevBoxTunnelEnableStatus,
+ DevCenterResourceType,
+ DevboxDisksEncryptionEnableStatus,
+ DomainJoinType,
+ EnvironmentTypeEnableStatus,
+ HealthCheckStatus,
+ HealthStatus,
+ HibernateSupport,
+ IdentityType,
+ ImageDefinitionBuildStatus,
+ ImageValidationStatus,
+ InstallAzureMonitorAgentEnableStatus,
+ KeepAwakeEnableStatus,
+ LicenseType,
+ LocalAdminStatus,
+ ManagedServiceIdentityType,
+ MicrosoftHostedNetworkEnableStatus,
+ Origin,
+ ParameterType,
+ PolicyAction,
+ PoolDevBoxDefinitionType,
+ ProjectCustomizationIdentityType,
+ ProvisioningState,
+ ScheduleEnableStatus,
+ ScheduledFrequency,
+ ScheduledType,
+ ServerlessGpuSessionsEnableStatus,
+ SingleSignOnStatus,
+ SkuTier,
+ StopOnDisconnectEnableStatus,
+ StopOnNoConnectEnableStatus,
+ UsageUnit,
+ UserCustomizationsEnableStatus,
+ VirtualNetworkType,
+ WorkspaceStorageEnableStatus,
+)
from ._patch import __all__ as _patch_all
-from ._patch import * # pylint: disable=unused-wildcard-import
+from ._patch import *
from ._patch import patch_sdk as _patch_sdk
__all__ = [
+ "ActiveHoursConfiguration",
"AllowedEnvironmentType",
"AllowedEnvironmentTypeListResult",
"AttachedNetworkConnection",
"AttachedNetworkListResult",
+ "AzureAiServicesSettings",
"Capability",
"Catalog",
"CatalogConflictError",
@@ -172,19 +244,32 @@
"CheckScopedNameAvailabilityRequest",
"CustomerManagedKeyEncryption",
"CustomerManagedKeyEncryptionKeyIdentity",
+ "CustomizationTask",
+ "CustomizationTaskInput",
+ "CustomizationTaskInstance",
+ "CustomizationTaskListResult",
+ "DefinitionParametersItem",
+ "DevBoxAutoDeleteSettings",
"DevBoxDefinition",
"DevBoxDefinitionListResult",
"DevBoxDefinitionProperties",
"DevBoxDefinitionUpdate",
"DevBoxDefinitionUpdateProperties",
+ "DevBoxProvisioningSettings",
"DevCenter",
+ "DevCenterEncryptionSet",
+ "DevCenterEncryptionSetProperties",
+ "DevCenterEncryptionSetUpdateProperties",
"DevCenterListResult",
+ "DevCenterNetworkSettings",
"DevCenterProjectCatalogSettings",
"DevCenterProperties",
"DevCenterSku",
"DevCenterUpdate",
"DevCenterUpdateProperties",
"Encryption",
+ "EncryptionSetListResult",
+ "EncryptionSetUpdate",
"EndpointDependency",
"EndpointDetail",
"EnvironmentDefinition",
@@ -207,11 +292,23 @@
"HealthCheckStatusDetailsListResult",
"HealthStatusDetail",
"Image",
+ "ImageCreationErrorDetails",
+ "ImageDefinition",
+ "ImageDefinitionBuild",
+ "ImageDefinitionBuildDetails",
+ "ImageDefinitionBuildListResult",
+ "ImageDefinitionBuildTask",
+ "ImageDefinitionBuildTaskGroup",
+ "ImageDefinitionBuildTaskParametersItem",
+ "ImageDefinitionListResult",
+ "ImageDefinitionReference",
"ImageListResult",
"ImageReference",
"ImageValidationErrorDetails",
"ImageVersion",
"ImageVersionListResult",
+ "InheritedSettingsForProject",
+ "LatestImageBuild",
"ListUsagesResult",
"ManagedServiceIdentity",
"NetworkConnection",
@@ -227,12 +324,15 @@
"OutboundEnvironmentEndpoint",
"OutboundEnvironmentEndpointCollection",
"Pool",
+ "PoolDevBoxDefinition",
"PoolListResult",
"PoolProperties",
"PoolUpdate",
"PoolUpdateProperties",
"Project",
"ProjectCatalogSettings",
+ "ProjectCustomizationManagedIdentity",
+ "ProjectCustomizationSettings",
"ProjectEnvironmentType",
"ProjectEnvironmentTypeListResult",
"ProjectEnvironmentTypeProperties",
@@ -240,21 +340,30 @@
"ProjectEnvironmentTypeUpdateProperties",
"ProjectEnvironmentTypeUpdatePropertiesCreatorRoleAssignment",
"ProjectListResult",
+ "ProjectNetworkSettings",
+ "ProjectPolicy",
+ "ProjectPolicyListResult",
+ "ProjectPolicyProperties",
+ "ProjectPolicyUpdate",
+ "ProjectPolicyUpdateProperties",
"ProjectProperties",
"ProjectUpdate",
"ProjectUpdateProperties",
"ProxyResource",
"RecommendedMachineConfiguration",
"Resource",
+ "ResourcePolicy",
"ResourceRange",
"Schedule",
"ScheduleListResult",
"ScheduleProperties",
"ScheduleUpdate",
"ScheduleUpdateProperties",
+ "ServerlessGpuSessionsSettings",
"Sku",
"SkuListResult",
"StopOnDisconnectConfiguration",
+ "StopOnNoConnectConfiguration",
"SyncErrorDetails",
"SyncStats",
"SystemData",
@@ -264,7 +373,11 @@
"UsageName",
"UserAssignedIdentity",
"UserRoleAssignmentValue",
+ "WorkspaceStorageSettings",
"ActionType",
+ "AutoImageBuildStatus",
+ "AutoStartEnableStatus",
+ "AzureAiServicesEnableStatus",
"CatalogConnectionState",
"CatalogItemSyncEnableStatus",
"CatalogItemType",
@@ -273,27 +386,43 @@
"CatalogSyncType",
"CheckNameAvailabilityReason",
"CreatedByType",
+ "CustomizationTaskInputType",
+ "DevBoxAutoDeleteEnableStatus",
+ "DevBoxTunnelEnableStatus",
+ "DevCenterResourceType",
+ "DevboxDisksEncryptionEnableStatus",
"DomainJoinType",
"EnvironmentTypeEnableStatus",
"HealthCheckStatus",
"HealthStatus",
"HibernateSupport",
"IdentityType",
+ "ImageDefinitionBuildStatus",
"ImageValidationStatus",
+ "InstallAzureMonitorAgentEnableStatus",
+ "KeepAwakeEnableStatus",
"LicenseType",
"LocalAdminStatus",
"ManagedServiceIdentityType",
+ "MicrosoftHostedNetworkEnableStatus",
"Origin",
"ParameterType",
+ "PolicyAction",
+ "PoolDevBoxDefinitionType",
+ "ProjectCustomizationIdentityType",
"ProvisioningState",
"ScheduleEnableStatus",
"ScheduledFrequency",
"ScheduledType",
+ "ServerlessGpuSessionsEnableStatus",
"SingleSignOnStatus",
"SkuTier",
"StopOnDisconnectEnableStatus",
+ "StopOnNoConnectEnableStatus",
"UsageUnit",
+ "UserCustomizationsEnableStatus",
"VirtualNetworkType",
+ "WorkspaceStorageEnableStatus",
]
-__all__.extend([p for p in _patch_all if p not in __all__])
+__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
_patch_sdk()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/_dev_center_mgmt_client_enums.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/_dev_center_mgmt_client_enums.py
index d2d349a16847..a054629809a6 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/_dev_center_mgmt_client_enums.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/_dev_center_mgmt_client_enums.py
@@ -16,6 +16,29 @@ class ActionType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
INTERNAL = "Internal"
+class AutoImageBuildStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Indicates whether auto image build is enabled/disabled."""
+
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+class AutoStartEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Enables or disables whether Dev Boxes should be automatically started at commencement of active
+ hours.
+ """
+
+ ENABLED = "Enabled"
+ DISABLED = "Disabled"
+
+
+class AzureAiServicesEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Indicates whether Azure AI services are enabled for a project."""
+
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
class CatalogConnectionState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""The connection state of the catalog."""
@@ -36,6 +59,7 @@ class CatalogItemType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Indicates catalog item types."""
ENVIRONMENT_DEFINITION = "EnvironmentDefinition"
+ IMAGE_DEFINITION = "ImageDefinition"
class CatalogResourceValidationStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
@@ -79,11 +103,51 @@ class CreatedByType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
KEY = "Key"
+class CustomizationTaskInputType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Type of the input."""
+
+ STRING = "string"
+ NUMBER = "number"
+ BOOLEAN = "boolean"
+
+
+class DevBoxAutoDeleteEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Indicates whether auto delete is enabled."""
+
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+class DevboxDisksEncryptionEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Devbox disk encryption enable or disable status. Indicates if Devbox disks encryption is
+ enabled or not.
+ """
+
+ ENABLED = "Enabled"
+ DISABLED = "Disabled"
+
+
+class DevBoxTunnelEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Indicates whether Dev Box Tunnel is enabled."""
+
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
+class DevCenterResourceType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Indicates dev center resource types."""
+
+ IMAGES = "Images"
+ ATTACHED_NETWORKS = "AttachedNetworks"
+ SKUS = "Skus"
+
+
class DomainJoinType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Active Directory join type."""
HYBRID_AZURE_AD_JOIN = "HybridAzureADJoin"
AZURE_AD_JOIN = "AzureADJoin"
+ NONE = "None"
class EnvironmentTypeEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
@@ -102,6 +166,7 @@ class HealthCheckStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
PASSED = "Passed"
WARNING = "Warning"
FAILED = "Failed"
+ INFORMATIONAL = "Informational"
class HealthStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
@@ -129,6 +194,23 @@ class IdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
DELEGATED_RESOURCE_IDENTITY = "delegatedResourceIdentity"
+class ImageDefinitionBuildStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """The state of an Image Definition Build."""
+
+ SUCCEEDED = "Succeeded"
+ """The image build has succeeded."""
+ RUNNING = "Running"
+ """The image build is running."""
+ VALIDATION_FAILED = "ValidationFailed"
+ """The built image has failed validation."""
+ FAILED = "Failed"
+ """The image build has failed."""
+ CANCELLED = "Cancelled"
+ """The image build has been cancelled."""
+ TIMED_OUT = "TimedOut"
+ """The image build has timed out."""
+
+
class ImageValidationStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Image validation status."""
@@ -139,6 +221,22 @@ class ImageValidationStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
TIMED_OUT = "TimedOut"
+class InstallAzureMonitorAgentEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Setting to be used when determining whether to install the Azure Monitor Agent service on Dev
+ Boxes that belong to this dev center.
+ """
+
+ ENABLED = "Enabled"
+ DISABLED = "Disabled"
+
+
+class KeepAwakeEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Enables or disables whether Dev Boxes should be kept awake during active hours."""
+
+ ENABLED = "Enabled"
+ DISABLED = "Disabled"
+
+
class LicenseType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""License Types."""
@@ -165,6 +263,15 @@ class ManagedServiceIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
SYSTEM_ASSIGNED_USER_ASSIGNED = "SystemAssigned, UserAssigned"
+class MicrosoftHostedNetworkEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Indicates whether pools in this Dev Center can use Microsoft Hosted Networks. Defaults to
+ Enabled if not set.
+ """
+
+ ENABLED = "Enabled"
+ DISABLED = "Disabled"
+
+
class Origin(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit
logs UX. Default value is "user,system".
@@ -192,6 +299,29 @@ class ParameterType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""The parameter accepts a string value."""
+class PolicyAction(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Indicates what action to perform for the policy."""
+
+ ALLOW = "Allow"
+ DENY = "Deny"
+
+
+class PoolDevBoxDefinitionType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Indicates if the pool is created from an existing Dev Box Definition or if one is provided
+ directly.
+ """
+
+ REFERENCE = "Reference"
+ VALUE = "Value"
+
+
+class ProjectCustomizationIdentityType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Values can be systemAssignedIdentity or userAssignedIdentity."""
+
+ SYSTEM_ASSIGNED_IDENTITY = "systemAssignedIdentity"
+ USER_ASSIGNED_IDENTITY = "userAssignedIdentity"
+
+
class ProvisioningState(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Provisioning state of the resource."""
@@ -234,6 +364,13 @@ class ScheduleEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
DISABLED = "Disabled"
+class ServerlessGpuSessionsEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Indicates whether serverless GPU session access is enabled."""
+
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
class SingleSignOnStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""SingleSignOn (SSO) enable or disable status. Indicates whether Dev Boxes in the Pool will have
SSO enabled or disabled.
@@ -263,12 +400,26 @@ class StopOnDisconnectEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta)
DISABLED = "Disabled"
+class StopOnNoConnectEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Stop on no connect enable or disable status."""
+
+ ENABLED = "Enabled"
+ DISABLED = "Disabled"
+
+
class UsageUnit(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""The unit details."""
COUNT = "Count"
+class UserCustomizationsEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Indicates whether user customizations are enabled."""
+
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
+
+
class VirtualNetworkType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
"""Indicates a pool uses a Virtual Network managed by Microsoft (Managed), or a customer provided
Network (Unmanaged).
@@ -276,3 +427,10 @@ class VirtualNetworkType(str, Enum, metaclass=CaseInsensitiveEnumMeta):
MANAGED = "Managed"
UNMANAGED = "Unmanaged"
+
+
+class WorkspaceStorageEnableStatus(str, Enum, metaclass=CaseInsensitiveEnumMeta):
+ """Indicates whether workspace storage is enabled."""
+
+ DISABLED = "Disabled"
+ ENABLED = "Enabled"
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/_models_py3.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/_models_py3.py
index 3b0426e7f42b..41807231c4f9 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/_models_py3.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/models/_models_py3.py
@@ -1,5 +1,5 @@
-# coding=utf-8
# pylint: disable=too-many-lines
+# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
@@ -13,10 +13,67 @@
from .. import _serialization
if TYPE_CHECKING:
- # pylint: disable=unused-import,ungrouped-imports
from .. import models as _models
+class ActiveHoursConfiguration(_serialization.Model):
+ """Active hours configuration.
+
+ :ivar keep_awake_enable_status: Enables or disables whether the Dev Box should be kept awake
+ during active hours. Known values are: "Enabled" and "Disabled".
+ :vartype keep_awake_enable_status: str or ~azure.mgmt.devcenter.models.KeepAwakeEnableStatus
+ :ivar auto_start_enable_status: Enables or disables whether the Dev Box should be automatically
+ started at commencement of active hours. Known values are: "Enabled" and "Disabled".
+ :vartype auto_start_enable_status: str or ~azure.mgmt.devcenter.models.AutoStartEnableStatus
+ :ivar default_time_zone: The default IANA timezone id of the active hours.
+ :vartype default_time_zone: str
+ :ivar default_start_time_hour: The default start time of the active hours.
+ :vartype default_start_time_hour: int
+ :ivar default_end_time_hour: The default end time of the active hours.
+ :vartype default_end_time_hour: int
+ """
+
+ _attribute_map = {
+ "keep_awake_enable_status": {"key": "keepAwakeEnableStatus", "type": "str"},
+ "auto_start_enable_status": {"key": "autoStartEnableStatus", "type": "str"},
+ "default_time_zone": {"key": "defaultTimeZone", "type": "str"},
+ "default_start_time_hour": {"key": "defaultStartTimeHour", "type": "int"},
+ "default_end_time_hour": {"key": "defaultEndTimeHour", "type": "int"},
+ }
+
+ def __init__(
+ self,
+ *,
+ keep_awake_enable_status: Optional[Union[str, "_models.KeepAwakeEnableStatus"]] = None,
+ auto_start_enable_status: Optional[Union[str, "_models.AutoStartEnableStatus"]] = None,
+ default_time_zone: Optional[str] = None,
+ default_start_time_hour: Optional[int] = None,
+ default_end_time_hour: Optional[int] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword keep_awake_enable_status: Enables or disables whether the Dev Box should be kept awake
+ during active hours. Known values are: "Enabled" and "Disabled".
+ :paramtype keep_awake_enable_status: str or ~azure.mgmt.devcenter.models.KeepAwakeEnableStatus
+ :keyword auto_start_enable_status: Enables or disables whether the Dev Box should be
+ automatically started at commencement of active hours. Known values are: "Enabled" and
+ "Disabled".
+ :paramtype auto_start_enable_status: str or ~azure.mgmt.devcenter.models.AutoStartEnableStatus
+ :keyword default_time_zone: The default IANA timezone id of the active hours.
+ :paramtype default_time_zone: str
+ :keyword default_start_time_hour: The default start time of the active hours.
+ :paramtype default_start_time_hour: int
+ :keyword default_end_time_hour: The default end time of the active hours.
+ :paramtype default_end_time_hour: int
+ """
+ super().__init__(**kwargs)
+ self.keep_awake_enable_status = keep_awake_enable_status
+ self.auto_start_enable_status = auto_start_enable_status
+ self.default_time_zone = default_time_zone
+ self.default_start_time_hour = default_start_time_hour
+ self.default_end_time_hour = default_end_time_hour
+
+
class Resource(_serialization.Model):
"""Common fields that are returned in the response for all Azure Resource Manager resources.
@@ -163,10 +220,10 @@ class AttachedNetworkConnection(Resource):
specified in 'networkConnectionResourceId' property lives.
:vartype network_connection_location: str
:ivar health_check_status: Health check status values. Known values are: "Unknown", "Pending",
- "Running", "Passed", "Warning", and "Failed".
+ "Running", "Passed", "Warning", "Failed", and "Informational".
:vartype health_check_status: str or ~azure.mgmt.devcenter.models.HealthCheckStatus
:ivar domain_join_type: AAD Join type of the network. This is populated based on the referenced
- Network Connection. Known values are: "HybridAzureADJoin" and "AzureADJoin".
+ Network Connection. Known values are: "HybridAzureADJoin", "AzureADJoin", and "None".
:vartype domain_join_type: str or ~azure.mgmt.devcenter.models.DomainJoinType
"""
@@ -234,6 +291,35 @@ def __init__(self, **kwargs: Any) -> None:
self.next_link = None
+class AzureAiServicesSettings(_serialization.Model):
+ """Represents policy to enforce Azure AI services on a project.
+
+ :ivar azure_ai_services_enable_status: The property indicates whether Azure AI services is
+ enabled. Known values are: "Disabled" and "Enabled".
+ :vartype azure_ai_services_enable_status: str or
+ ~azure.mgmt.devcenter.models.AzureAiServicesEnableStatus
+ """
+
+ _attribute_map = {
+ "azure_ai_services_enable_status": {"key": "azureAiServicesEnableStatus", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ azure_ai_services_enable_status: Optional[Union[str, "_models.AzureAiServicesEnableStatus"]] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword azure_ai_services_enable_status: The property indicates whether Azure AI services is
+ enabled. Known values are: "Disabled" and "Enabled".
+ :paramtype azure_ai_services_enable_status: str or
+ ~azure.mgmt.devcenter.models.AzureAiServicesEnableStatus
+ """
+ super().__init__(**kwargs)
+ self.azure_ai_services_enable_status = azure_ai_services_enable_status
+
+
class Capability(_serialization.Model):
"""A name/value pair to describe a capability.
@@ -262,7 +348,7 @@ def __init__(self, **kwargs: Any) -> None:
self.value = None
-class Catalog(Resource): # pylint: disable=too-many-instance-attributes
+class Catalog(Resource):
"""Represents a catalog.
Variables are only populated by the server, and will be ignored when sending a request.
@@ -836,13 +922,12 @@ class CustomerManagedKeyEncryptionKeyIdentity(_serialization.Model):
are: "systemAssignedIdentity", "userAssignedIdentity", and "delegatedResourceIdentity".
:vartype identity_type: str or ~azure.mgmt.devcenter.models.IdentityType
:ivar user_assigned_identity_resource_id: user assigned identity to use for accessing key
- encryption key Url. Ex:
- /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/:code:``/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive
- with identityType systemAssignedIdentity and delegatedResourceIdentity.
+ encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/\\
+ :code:``/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId.
+ Mutually exclusive with identityType systemAssignedIdentity and delegatedResourceIdentity.
:vartype user_assigned_identity_resource_id: str
:ivar delegated_identity_client_id: delegated identity to use for accessing key encryption key
- Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/:code:``/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive
with identityType systemAssignedIdentity and userAssignedIdentity - internal use only.
:vartype delegated_identity_client_id: str
@@ -867,16 +952,15 @@ def __init__(
values are: "systemAssignedIdentity", "userAssignedIdentity", and "delegatedResourceIdentity".
:paramtype identity_type: str or ~azure.mgmt.devcenter.models.IdentityType
:keyword user_assigned_identity_resource_id: user assigned identity to use for accessing key
- encryption key Url. Ex:
- /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/:code:``/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive
- with identityType systemAssignedIdentity and delegatedResourceIdentity.
+ encryption key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/\\
+ :code:``/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId.
+ Mutually exclusive with identityType systemAssignedIdentity and delegatedResourceIdentity.
:paramtype user_assigned_identity_resource_id: str
:keyword delegated_identity_client_id: delegated identity to use for accessing key encryption
- key Url. Ex:
- /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/:code:``/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive
- with identityType systemAssignedIdentity and userAssignedIdentity - internal use only.
+ key Url. Ex: /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/\\
+ :code:``/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId.
+ Mutually exclusive with identityType systemAssignedIdentity and userAssignedIdentity - internal
+ use only.
:paramtype delegated_identity_client_id: str
"""
super().__init__(**kwargs)
@@ -885,6 +969,279 @@ def __init__(
self.delegated_identity_client_id = delegated_identity_client_id
+class ProxyResource(Resource):
+ """The resource model definition for a Azure Resource Manager proxy resource. It will not have
+ tags and a location.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar id: Fully qualified resource ID for the resource. E.g.
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.devcenter.models.SystemData
+ """
+
+
+class CustomizationTask(ProxyResource):
+ """Represents a Task to be used in customizing a Dev Box.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar id: Fully qualified resource ID for the resource. E.g.
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.devcenter.models.SystemData
+ :ivar inputs: Inputs to the task.
+ :vartype inputs: dict[str, ~azure.mgmt.devcenter.models.CustomizationTaskInput]
+ :ivar timeout: The default timeout for the task.
+ :vartype timeout: int
+ :ivar validation_status: Validation status for the Task. Known values are: "Unknown",
+ "Pending", "Succeeded", and "Failed".
+ :vartype validation_status: str or ~azure.mgmt.devcenter.models.CatalogResourceValidationStatus
+ """
+
+ _validation = {
+ "id": {"readonly": True},
+ "name": {"readonly": True},
+ "type": {"readonly": True},
+ "system_data": {"readonly": True},
+ "inputs": {"readonly": True},
+ "timeout": {"readonly": True},
+ "validation_status": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "id": {"key": "id", "type": "str"},
+ "name": {"key": "name", "type": "str"},
+ "type": {"key": "type", "type": "str"},
+ "system_data": {"key": "systemData", "type": "SystemData"},
+ "inputs": {"key": "properties.inputs", "type": "{CustomizationTaskInput}"},
+ "timeout": {"key": "properties.timeout", "type": "int"},
+ "validation_status": {"key": "properties.validationStatus", "type": "str"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.inputs = None
+ self.timeout = None
+ self.validation_status = None
+
+
+class CustomizationTaskInput(_serialization.Model):
+ """Input for a Task.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar description: Description of the input.
+ :vartype description: str
+ :ivar type: Type of the input. Known values are: "string", "number", and "boolean".
+ :vartype type: str or ~azure.mgmt.devcenter.models.CustomizationTaskInputType
+ :ivar required: Whether or not the input is required.
+ :vartype required: bool
+ """
+
+ _validation = {
+ "description": {"readonly": True},
+ "type": {"readonly": True},
+ "required": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "description": {"key": "description", "type": "str"},
+ "type": {"key": "type", "type": "str"},
+ "required": {"key": "required", "type": "bool"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.description = None
+ self.type = None
+ self.required = None
+
+
+class CustomizationTaskInstance(_serialization.Model):
+ """A customization task to run.
+
+ All required parameters must be populated in order to send to server.
+
+ :ivar name: Name of the task. Required.
+ :vartype name: str
+ :ivar parameters: Parameters for the task.
+ :vartype parameters: list[~azure.mgmt.devcenter.models.DefinitionParametersItem]
+ :ivar display_name: Display name to help differentiate multiple instances of the same task.
+ :vartype display_name: str
+ :ivar timeout_in_seconds: Timeout, in seconds. Overrides any timeout provided on the task
+ definition.
+ :vartype timeout_in_seconds: int
+ :ivar condition: The condition that needs to be met to run the task.
+ :vartype condition: str
+ """
+
+ _validation = {
+ "name": {"required": True},
+ }
+
+ _attribute_map = {
+ "name": {"key": "name", "type": "str"},
+ "parameters": {"key": "parameters", "type": "[DefinitionParametersItem]"},
+ "display_name": {"key": "displayName", "type": "str"},
+ "timeout_in_seconds": {"key": "timeoutInSeconds", "type": "int"},
+ "condition": {"key": "condition", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ name: str,
+ parameters: Optional[List["_models.DefinitionParametersItem"]] = None,
+ display_name: Optional[str] = None,
+ timeout_in_seconds: Optional[int] = None,
+ condition: Optional[str] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword name: Name of the task. Required.
+ :paramtype name: str
+ :keyword parameters: Parameters for the task.
+ :paramtype parameters: list[~azure.mgmt.devcenter.models.DefinitionParametersItem]
+ :keyword display_name: Display name to help differentiate multiple instances of the same task.
+ :paramtype display_name: str
+ :keyword timeout_in_seconds: Timeout, in seconds. Overrides any timeout provided on the task
+ definition.
+ :paramtype timeout_in_seconds: int
+ :keyword condition: The condition that needs to be met to run the task.
+ :paramtype condition: str
+ """
+ super().__init__(**kwargs)
+ self.name = name
+ self.parameters = parameters
+ self.display_name = display_name
+ self.timeout_in_seconds = timeout_in_seconds
+ self.condition = condition
+
+
+class CustomizationTaskListResult(_serialization.Model):
+ """Results of the Task list operation.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar value: Current page of results.
+ :vartype value: list[~azure.mgmt.devcenter.models.CustomizationTask]
+ :ivar next_link: URL to get the next set of results if there are any.
+ :vartype next_link: str
+ """
+
+ _validation = {
+ "value": {"readonly": True},
+ "next_link": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "value": {"key": "value", "type": "[CustomizationTask]"},
+ "next_link": {"key": "nextLink", "type": "str"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.value = None
+ self.next_link = None
+
+
+class DefinitionParametersItem(_serialization.Model):
+ """DefinitionParametersItem.
+
+ All required parameters must be populated in order to send to server.
+
+ :ivar name: Required.
+ :vartype name: str
+ :ivar value: Required.
+ :vartype value: str
+ """
+
+ _validation = {
+ "name": {"required": True},
+ "value": {"required": True},
+ }
+
+ _attribute_map = {
+ "name": {"key": "name", "type": "str"},
+ "value": {"key": "value", "type": "str"},
+ }
+
+ def __init__(self, *, name: str, value: str, **kwargs: Any) -> None:
+ """
+ :keyword name: Required.
+ :paramtype name: str
+ :keyword value: Required.
+ :paramtype value: str
+ """
+ super().__init__(**kwargs)
+ self.name = name
+ self.value = value
+
+
+class DevBoxAutoDeleteSettings(_serialization.Model):
+ """Settings controlling the auto deletion of inactive dev boxes.
+
+ :ivar enable_status: The property indicates whether auto delete is enabled. Known values are:
+ "Disabled" and "Enabled".
+ :vartype enable_status: str or ~azure.mgmt.devcenter.models.DevBoxAutoDeleteEnableStatus
+ :ivar inactive_threshold: ISO8601 duration required for the dev box to not be inactive prior to
+ it being scheduled for deletion. ISO8601 format PT[n]H[n]M[n]S.
+ :vartype inactive_threshold: str
+ :ivar grace_period: ISO8601 duration required for the dev box to be marked for deletion prior
+ to it being deleted. ISO8601 format PT[n]H[n]M[n]S.
+ :vartype grace_period: str
+ """
+
+ _attribute_map = {
+ "enable_status": {"key": "enableStatus", "type": "str"},
+ "inactive_threshold": {"key": "inactiveThreshold", "type": "str"},
+ "grace_period": {"key": "gracePeriod", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ enable_status: Optional[Union[str, "_models.DevBoxAutoDeleteEnableStatus"]] = None,
+ inactive_threshold: Optional[str] = None,
+ grace_period: Optional[str] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword enable_status: The property indicates whether auto delete is enabled. Known values
+ are: "Disabled" and "Enabled".
+ :paramtype enable_status: str or ~azure.mgmt.devcenter.models.DevBoxAutoDeleteEnableStatus
+ :keyword inactive_threshold: ISO8601 duration required for the dev box to not be inactive prior
+ to it being scheduled for deletion. ISO8601 format PT[n]H[n]M[n]S.
+ :paramtype inactive_threshold: str
+ :keyword grace_period: ISO8601 duration required for the dev box to be marked for deletion
+ prior to it being deleted. ISO8601 format PT[n]H[n]M[n]S.
+ :paramtype grace_period: str
+ """
+ super().__init__(**kwargs)
+ self.enable_status = enable_status
+ self.inactive_threshold = inactive_threshold
+ self.grace_period = grace_period
+
+
class TrackedResource(Resource):
"""The resource model definition for an Azure Resource Manager tracked top level resource which
has 'tags' and a 'location'.
@@ -939,7 +1296,7 @@ def __init__(self, *, location: str, tags: Optional[Dict[str, str]] = None, **kw
self.location = location
-class DevBoxDefinition(TrackedResource): # pylint: disable=too-many-instance-attributes
+class DevBoxDefinition(TrackedResource):
"""Represents a definition for a Developer Machine.
Variables are only populated by the server, and will be ignored when sending a request.
@@ -1329,7 +1686,40 @@ def __init__(
self.hibernate_support = hibernate_support
-class DevCenter(TrackedResource): # pylint: disable=too-many-instance-attributes
+class DevBoxProvisioningSettings(_serialization.Model):
+ """Provisioning settings that apply to all Dev Boxes created in this dev center.
+
+ :ivar install_azure_monitor_agent_enable_status: Whether project catalogs associated with
+ projects in this dev center can be configured to sync catalog items. Known values are:
+ "Enabled" and "Disabled".
+ :vartype install_azure_monitor_agent_enable_status: str or
+ ~azure.mgmt.devcenter.models.InstallAzureMonitorAgentEnableStatus
+ """
+
+ _attribute_map = {
+ "install_azure_monitor_agent_enable_status": {"key": "installAzureMonitorAgentEnableStatus", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ install_azure_monitor_agent_enable_status: Optional[
+ Union[str, "_models.InstallAzureMonitorAgentEnableStatus"]
+ ] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword install_azure_monitor_agent_enable_status: Whether project catalogs associated with
+ projects in this dev center can be configured to sync catalog items. Known values are:
+ "Enabled" and "Disabled".
+ :paramtype install_azure_monitor_agent_enable_status: str or
+ ~azure.mgmt.devcenter.models.InstallAzureMonitorAgentEnableStatus
+ """
+ super().__init__(**kwargs)
+ self.install_azure_monitor_agent_enable_status = install_azure_monitor_agent_enable_status
+
+
+class DevCenter(TrackedResource):
"""Represents a devcenter resource.
Variables are only populated by the server, and will be ignored when sending a request.
@@ -1361,6 +1751,12 @@ class DevCenter(TrackedResource): # pylint: disable=too-many-instance-attribute
:ivar project_catalog_settings: Dev Center settings to be used when associating a project with
a catalog.
:vartype project_catalog_settings: ~azure.mgmt.devcenter.models.DevCenterProjectCatalogSettings
+ :ivar network_settings: Network settings that will be enforced on network resources associated
+ with the Dev Center.
+ :vartype network_settings: ~azure.mgmt.devcenter.models.DevCenterNetworkSettings
+ :ivar dev_box_provisioning_settings: Settings to be used in the provisioning of all Dev Boxes
+ that belong to this dev center.
+ :vartype dev_box_provisioning_settings: ~azure.mgmt.devcenter.models.DevBoxProvisioningSettings
:ivar provisioning_state: The provisioning state of the resource. Known values are:
"NotSpecified", "Accepted", "Running", "Creating", "Created", "Updating", "Updated",
"Deleting", "Deleted", "Succeeded", "Failed", "Canceled", "MovingResources",
@@ -1394,6 +1790,11 @@ class DevCenter(TrackedResource): # pylint: disable=too-many-instance-attribute
"key": "properties.projectCatalogSettings",
"type": "DevCenterProjectCatalogSettings",
},
+ "network_settings": {"key": "properties.networkSettings", "type": "DevCenterNetworkSettings"},
+ "dev_box_provisioning_settings": {
+ "key": "properties.devBoxProvisioningSettings",
+ "type": "DevBoxProvisioningSettings",
+ },
"provisioning_state": {"key": "properties.provisioningState", "type": "str"},
"dev_center_uri": {"key": "properties.devCenterUri", "type": "str"},
}
@@ -1407,6 +1808,8 @@ def __init__(
encryption: Optional["_models.Encryption"] = None,
display_name: Optional[str] = None,
project_catalog_settings: Optional["_models.DevCenterProjectCatalogSettings"] = None,
+ network_settings: Optional["_models.DevCenterNetworkSettings"] = None,
+ dev_box_provisioning_settings: Optional["_models.DevBoxProvisioningSettings"] = None,
**kwargs: Any
) -> None:
"""
@@ -1425,36 +1828,241 @@ def __init__(
with a catalog.
:paramtype project_catalog_settings:
~azure.mgmt.devcenter.models.DevCenterProjectCatalogSettings
+ :keyword network_settings: Network settings that will be enforced on network resources
+ associated with the Dev Center.
+ :paramtype network_settings: ~azure.mgmt.devcenter.models.DevCenterNetworkSettings
+ :keyword dev_box_provisioning_settings: Settings to be used in the provisioning of all Dev
+ Boxes that belong to this dev center.
+ :paramtype dev_box_provisioning_settings:
+ ~azure.mgmt.devcenter.models.DevBoxProvisioningSettings
"""
super().__init__(tags=tags, location=location, **kwargs)
self.identity = identity
self.encryption = encryption
self.display_name = display_name
self.project_catalog_settings = project_catalog_settings
+ self.network_settings = network_settings
+ self.dev_box_provisioning_settings = dev_box_provisioning_settings
self.provisioning_state = None
self.dev_center_uri = None
-class DevCenterListResult(_serialization.Model):
- """Result of the list devcenters operation.
+class DevCenterEncryptionSet(TrackedResource):
+ """Represents a devcenter encryption set resource.
Variables are only populated by the server, and will be ignored when sending a request.
- :ivar value: Current page of results.
- :vartype value: list[~azure.mgmt.devcenter.models.DevCenter]
- :ivar next_link: URL to get the next set of results if there are any.
- :vartype next_link: str
- """
-
- _validation = {
- "value": {"readonly": True},
- "next_link": {"readonly": True},
- }
+ All required parameters must be populated in order to send to server.
- _attribute_map = {
- "value": {"key": "value", "type": "[DevCenter]"},
- "next_link": {"key": "nextLink", "type": "str"},
- }
+ :ivar id: Fully qualified resource ID for the resource. E.g.
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.devcenter.models.SystemData
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives. Required.
+ :vartype location: str
+ :ivar identity: Managed identity properties.
+ :vartype identity: ~azure.mgmt.devcenter.models.ManagedServiceIdentity
+ :ivar devbox_disks_encryption_enable_status: Devbox disk encryption enable or disable status.
+ Indicates if Devbox disks encryption using DevCenter CMK is enabled or not. Known values are:
+ "Enabled" and "Disabled".
+ :vartype devbox_disks_encryption_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevboxDisksEncryptionEnableStatus
+ :ivar key_encryption_key_url: Key encryption key Url, versioned or non-versioned. Ex:
+ https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or
+ https://contosovault.vault.azure.net/keys/contosokek.
+ :vartype key_encryption_key_url: str
+ :ivar provisioning_state: The provisioning state of the resource. Known values are:
+ "NotSpecified", "Accepted", "Running", "Creating", "Created", "Updating", "Updated",
+ "Deleting", "Deleted", "Succeeded", "Failed", "Canceled", "MovingResources",
+ "TransientFailure", "RolloutInProgress", and "StorageProvisioningFailed".
+ :vartype provisioning_state: str or ~azure.mgmt.devcenter.models.ProvisioningState
+ """
+
+ _validation = {
+ "id": {"readonly": True},
+ "name": {"readonly": True},
+ "type": {"readonly": True},
+ "system_data": {"readonly": True},
+ "location": {"required": True},
+ "provisioning_state": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "id": {"key": "id", "type": "str"},
+ "name": {"key": "name", "type": "str"},
+ "type": {"key": "type", "type": "str"},
+ "system_data": {"key": "systemData", "type": "SystemData"},
+ "tags": {"key": "tags", "type": "{str}"},
+ "location": {"key": "location", "type": "str"},
+ "identity": {"key": "identity", "type": "ManagedServiceIdentity"},
+ "devbox_disks_encryption_enable_status": {"key": "properties.devboxDisksEncryptionEnableStatus", "type": "str"},
+ "key_encryption_key_url": {"key": "properties.keyEncryptionKeyUrl", "type": "str"},
+ "provisioning_state": {"key": "properties.provisioningState", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ location: str,
+ tags: Optional[Dict[str, str]] = None,
+ identity: Optional["_models.ManagedServiceIdentity"] = None,
+ devbox_disks_encryption_enable_status: Optional[Union[str, "_models.DevboxDisksEncryptionEnableStatus"]] = None,
+ key_encryption_key_url: Optional[str] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword tags: Resource tags.
+ :paramtype tags: dict[str, str]
+ :keyword location: The geo-location where the resource lives. Required.
+ :paramtype location: str
+ :keyword identity: Managed identity properties.
+ :paramtype identity: ~azure.mgmt.devcenter.models.ManagedServiceIdentity
+ :keyword devbox_disks_encryption_enable_status: Devbox disk encryption enable or disable
+ status. Indicates if Devbox disks encryption using DevCenter CMK is enabled or not. Known
+ values are: "Enabled" and "Disabled".
+ :paramtype devbox_disks_encryption_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevboxDisksEncryptionEnableStatus
+ :keyword key_encryption_key_url: Key encryption key Url, versioned or non-versioned. Ex:
+ https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or
+ https://contosovault.vault.azure.net/keys/contosokek.
+ :paramtype key_encryption_key_url: str
+ """
+ super().__init__(tags=tags, location=location, **kwargs)
+ self.identity = identity
+ self.devbox_disks_encryption_enable_status = devbox_disks_encryption_enable_status
+ self.key_encryption_key_url = key_encryption_key_url
+ self.provisioning_state = None
+
+
+class DevCenterEncryptionSetUpdateProperties(_serialization.Model):
+ """Properties of the devcenter encryption set. These properties can be updated after the resource
+ has been created.
+
+ :ivar devbox_disks_encryption_enable_status: Devbox disk encryption enable or disable status.
+ Indicates if Devbox disks encryption using DevCenter CMK is enabled or not. Known values are:
+ "Enabled" and "Disabled".
+ :vartype devbox_disks_encryption_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevboxDisksEncryptionEnableStatus
+ :ivar key_encryption_key_url: Key encryption key Url, versioned or non-versioned. Ex:
+ https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or
+ https://contosovault.vault.azure.net/keys/contosokek.
+ :vartype key_encryption_key_url: str
+ """
+
+ _attribute_map = {
+ "devbox_disks_encryption_enable_status": {"key": "devboxDisksEncryptionEnableStatus", "type": "str"},
+ "key_encryption_key_url": {"key": "keyEncryptionKeyUrl", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ devbox_disks_encryption_enable_status: Optional[Union[str, "_models.DevboxDisksEncryptionEnableStatus"]] = None,
+ key_encryption_key_url: Optional[str] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword devbox_disks_encryption_enable_status: Devbox disk encryption enable or disable
+ status. Indicates if Devbox disks encryption using DevCenter CMK is enabled or not. Known
+ values are: "Enabled" and "Disabled".
+ :paramtype devbox_disks_encryption_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevboxDisksEncryptionEnableStatus
+ :keyword key_encryption_key_url: Key encryption key Url, versioned or non-versioned. Ex:
+ https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or
+ https://contosovault.vault.azure.net/keys/contosokek.
+ :paramtype key_encryption_key_url: str
+ """
+ super().__init__(**kwargs)
+ self.devbox_disks_encryption_enable_status = devbox_disks_encryption_enable_status
+ self.key_encryption_key_url = key_encryption_key_url
+
+
+class DevCenterEncryptionSetProperties(DevCenterEncryptionSetUpdateProperties):
+ """Properties of the devcenter encryption set.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar devbox_disks_encryption_enable_status: Devbox disk encryption enable or disable status.
+ Indicates if Devbox disks encryption using DevCenter CMK is enabled or not. Known values are:
+ "Enabled" and "Disabled".
+ :vartype devbox_disks_encryption_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevboxDisksEncryptionEnableStatus
+ :ivar key_encryption_key_url: Key encryption key Url, versioned or non-versioned. Ex:
+ https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or
+ https://contosovault.vault.azure.net/keys/contosokek.
+ :vartype key_encryption_key_url: str
+ :ivar provisioning_state: The provisioning state of the resource. Known values are:
+ "NotSpecified", "Accepted", "Running", "Creating", "Created", "Updating", "Updated",
+ "Deleting", "Deleted", "Succeeded", "Failed", "Canceled", "MovingResources",
+ "TransientFailure", "RolloutInProgress", and "StorageProvisioningFailed".
+ :vartype provisioning_state: str or ~azure.mgmt.devcenter.models.ProvisioningState
+ """
+
+ _validation = {
+ "provisioning_state": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "devbox_disks_encryption_enable_status": {"key": "devboxDisksEncryptionEnableStatus", "type": "str"},
+ "key_encryption_key_url": {"key": "keyEncryptionKeyUrl", "type": "str"},
+ "provisioning_state": {"key": "provisioningState", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ devbox_disks_encryption_enable_status: Optional[Union[str, "_models.DevboxDisksEncryptionEnableStatus"]] = None,
+ key_encryption_key_url: Optional[str] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword devbox_disks_encryption_enable_status: Devbox disk encryption enable or disable
+ status. Indicates if Devbox disks encryption using DevCenter CMK is enabled or not. Known
+ values are: "Enabled" and "Disabled".
+ :paramtype devbox_disks_encryption_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevboxDisksEncryptionEnableStatus
+ :keyword key_encryption_key_url: Key encryption key Url, versioned or non-versioned. Ex:
+ https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or
+ https://contosovault.vault.azure.net/keys/contosokek.
+ :paramtype key_encryption_key_url: str
+ """
+ super().__init__(
+ devbox_disks_encryption_enable_status=devbox_disks_encryption_enable_status,
+ key_encryption_key_url=key_encryption_key_url,
+ **kwargs
+ )
+ self.provisioning_state = None
+
+
+class DevCenterListResult(_serialization.Model):
+ """Result of the list devcenters operation.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar value: Current page of results.
+ :vartype value: list[~azure.mgmt.devcenter.models.DevCenter]
+ :ivar next_link: URL to get the next set of results if there are any.
+ :vartype next_link: str
+ """
+
+ _validation = {
+ "value": {"readonly": True},
+ "next_link": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "value": {"key": "value", "type": "[DevCenter]"},
+ "next_link": {"key": "nextLink", "type": "str"},
+ }
def __init__(self, **kwargs: Any) -> None:
""" """
@@ -1463,6 +2071,39 @@ def __init__(self, **kwargs: Any) -> None:
self.next_link = None
+class DevCenterNetworkSettings(_serialization.Model):
+ """Network settings for the Dev Center.
+
+ :ivar microsoft_hosted_network_enable_status: Indicates whether pools in this Dev Center can
+ use Microsoft Hosted Networks. Defaults to Enabled if not set. Known values are: "Enabled" and
+ "Disabled".
+ :vartype microsoft_hosted_network_enable_status: str or
+ ~azure.mgmt.devcenter.models.MicrosoftHostedNetworkEnableStatus
+ """
+
+ _attribute_map = {
+ "microsoft_hosted_network_enable_status": {"key": "microsoftHostedNetworkEnableStatus", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ microsoft_hosted_network_enable_status: Optional[
+ Union[str, "_models.MicrosoftHostedNetworkEnableStatus"]
+ ] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword microsoft_hosted_network_enable_status: Indicates whether pools in this Dev Center can
+ use Microsoft Hosted Networks. Defaults to Enabled if not set. Known values are: "Enabled" and
+ "Disabled".
+ :paramtype microsoft_hosted_network_enable_status: str or
+ ~azure.mgmt.devcenter.models.MicrosoftHostedNetworkEnableStatus
+ """
+ super().__init__(**kwargs)
+ self.microsoft_hosted_network_enable_status = microsoft_hosted_network_enable_status
+
+
class DevCenterProjectCatalogSettings(_serialization.Model):
"""Project catalog settings for project catalogs under a project associated to this dev center.
@@ -1506,12 +2147,20 @@ class DevCenterUpdateProperties(_serialization.Model):
:ivar project_catalog_settings: Dev Center settings to be used when associating a project with
a catalog.
:vartype project_catalog_settings: ~azure.mgmt.devcenter.models.DevCenterProjectCatalogSettings
+ :ivar network_settings: Network settings that will be enforced on network resources associated
+ with the Dev Center.
+ :vartype network_settings: ~azure.mgmt.devcenter.models.DevCenterNetworkSettings
+ :ivar dev_box_provisioning_settings: Settings to be used in the provisioning of all Dev Boxes
+ that belong to this dev center.
+ :vartype dev_box_provisioning_settings: ~azure.mgmt.devcenter.models.DevBoxProvisioningSettings
"""
_attribute_map = {
"encryption": {"key": "encryption", "type": "Encryption"},
"display_name": {"key": "displayName", "type": "str"},
"project_catalog_settings": {"key": "projectCatalogSettings", "type": "DevCenterProjectCatalogSettings"},
+ "network_settings": {"key": "networkSettings", "type": "DevCenterNetworkSettings"},
+ "dev_box_provisioning_settings": {"key": "devBoxProvisioningSettings", "type": "DevBoxProvisioningSettings"},
}
def __init__(
@@ -1520,6 +2169,8 @@ def __init__(
encryption: Optional["_models.Encryption"] = None,
display_name: Optional[str] = None,
project_catalog_settings: Optional["_models.DevCenterProjectCatalogSettings"] = None,
+ network_settings: Optional["_models.DevCenterNetworkSettings"] = None,
+ dev_box_provisioning_settings: Optional["_models.DevBoxProvisioningSettings"] = None,
**kwargs: Any
) -> None:
"""
@@ -1532,11 +2183,20 @@ def __init__(
with a catalog.
:paramtype project_catalog_settings:
~azure.mgmt.devcenter.models.DevCenterProjectCatalogSettings
+ :keyword network_settings: Network settings that will be enforced on network resources
+ associated with the Dev Center.
+ :paramtype network_settings: ~azure.mgmt.devcenter.models.DevCenterNetworkSettings
+ :keyword dev_box_provisioning_settings: Settings to be used in the provisioning of all Dev
+ Boxes that belong to this dev center.
+ :paramtype dev_box_provisioning_settings:
+ ~azure.mgmt.devcenter.models.DevBoxProvisioningSettings
"""
super().__init__(**kwargs)
self.encryption = encryption
self.display_name = display_name
self.project_catalog_settings = project_catalog_settings
+ self.network_settings = network_settings
+ self.dev_box_provisioning_settings = dev_box_provisioning_settings
class DevCenterProperties(DevCenterUpdateProperties):
@@ -1552,6 +2212,12 @@ class DevCenterProperties(DevCenterUpdateProperties):
:ivar project_catalog_settings: Dev Center settings to be used when associating a project with
a catalog.
:vartype project_catalog_settings: ~azure.mgmt.devcenter.models.DevCenterProjectCatalogSettings
+ :ivar network_settings: Network settings that will be enforced on network resources associated
+ with the Dev Center.
+ :vartype network_settings: ~azure.mgmt.devcenter.models.DevCenterNetworkSettings
+ :ivar dev_box_provisioning_settings: Settings to be used in the provisioning of all Dev Boxes
+ that belong to this dev center.
+ :vartype dev_box_provisioning_settings: ~azure.mgmt.devcenter.models.DevBoxProvisioningSettings
:ivar provisioning_state: The provisioning state of the resource. Known values are:
"NotSpecified", "Accepted", "Running", "Creating", "Created", "Updating", "Updated",
"Deleting", "Deleted", "Succeeded", "Failed", "Canceled", "MovingResources",
@@ -1570,6 +2236,8 @@ class DevCenterProperties(DevCenterUpdateProperties):
"encryption": {"key": "encryption", "type": "Encryption"},
"display_name": {"key": "displayName", "type": "str"},
"project_catalog_settings": {"key": "projectCatalogSettings", "type": "DevCenterProjectCatalogSettings"},
+ "network_settings": {"key": "networkSettings", "type": "DevCenterNetworkSettings"},
+ "dev_box_provisioning_settings": {"key": "devBoxProvisioningSettings", "type": "DevBoxProvisioningSettings"},
"provisioning_state": {"key": "provisioningState", "type": "str"},
"dev_center_uri": {"key": "devCenterUri", "type": "str"},
}
@@ -1580,6 +2248,8 @@ def __init__(
encryption: Optional["_models.Encryption"] = None,
display_name: Optional[str] = None,
project_catalog_settings: Optional["_models.DevCenterProjectCatalogSettings"] = None,
+ network_settings: Optional["_models.DevCenterNetworkSettings"] = None,
+ dev_box_provisioning_settings: Optional["_models.DevBoxProvisioningSettings"] = None,
**kwargs: Any
) -> None:
"""
@@ -1592,11 +2262,20 @@ def __init__(
with a catalog.
:paramtype project_catalog_settings:
~azure.mgmt.devcenter.models.DevCenterProjectCatalogSettings
+ :keyword network_settings: Network settings that will be enforced on network resources
+ associated with the Dev Center.
+ :paramtype network_settings: ~azure.mgmt.devcenter.models.DevCenterNetworkSettings
+ :keyword dev_box_provisioning_settings: Settings to be used in the provisioning of all Dev
+ Boxes that belong to this dev center.
+ :paramtype dev_box_provisioning_settings:
+ ~azure.mgmt.devcenter.models.DevBoxProvisioningSettings
"""
super().__init__(
encryption=encryption,
display_name=display_name,
project_catalog_settings=project_catalog_settings,
+ network_settings=network_settings,
+ dev_box_provisioning_settings=dev_box_provisioning_settings,
**kwargs
)
self.provisioning_state = None
@@ -1608,7 +2287,7 @@ class Sku(_serialization.Model):
All required parameters must be populated in order to send to server.
- :ivar name: The name of the SKU. Ex - P3. It is typically a letter+number code. Required.
+ :ivar name: The name of the SKU. E.g. P3. It is typically a letter+number code. Required.
:vartype name: str
:ivar tier: This field is required to be implemented by the Resource Provider if the service
has more than one tier, but is not required on a PUT. Known values are: "Free", "Basic",
@@ -1648,7 +2327,7 @@ def __init__(
**kwargs: Any
) -> None:
"""
- :keyword name: The name of the SKU. Ex - P3. It is typically a letter+number code. Required.
+ :keyword name: The name of the SKU. E.g. P3. It is typically a letter+number code. Required.
:paramtype name: str
:keyword tier: This field is required to be implemented by the Resource Provider if the service
has more than one tier, but is not required on a PUT. Known values are: "Free", "Basic",
@@ -1679,7 +2358,7 @@ class DevCenterSku(Sku):
All required parameters must be populated in order to send to server.
- :ivar name: The name of the SKU. Ex - P3. It is typically a letter+number code. Required.
+ :ivar name: The name of the SKU. E.g. P3. It is typically a letter+number code. Required.
:vartype name: str
:ivar tier: This field is required to be implemented by the Resource Provider if the service
has more than one tier, but is not required on a PUT. Known values are: "Free", "Basic",
@@ -1731,7 +2410,7 @@ def __init__(
**kwargs: Any
) -> None:
"""
- :keyword name: The name of the SKU. Ex - P3. It is typically a letter+number code. Required.
+ :keyword name: The name of the SKU. E.g. P3. It is typically a letter+number code. Required.
:paramtype name: str
:keyword tier: This field is required to be implemented by the Resource Provider if the service
has more than one tier, but is not required on a PUT. Known values are: "Free", "Basic",
@@ -1771,6 +2450,12 @@ class DevCenterUpdate(TrackedResourceUpdate):
:ivar project_catalog_settings: Dev Center settings to be used when associating a project with
a catalog.
:vartype project_catalog_settings: ~azure.mgmt.devcenter.models.DevCenterProjectCatalogSettings
+ :ivar network_settings: Network settings that will be enforced on network resources associated
+ with the Dev Center.
+ :vartype network_settings: ~azure.mgmt.devcenter.models.DevCenterNetworkSettings
+ :ivar dev_box_provisioning_settings: Settings to be used in the provisioning of all Dev Boxes
+ that belong to this dev center.
+ :vartype dev_box_provisioning_settings: ~azure.mgmt.devcenter.models.DevBoxProvisioningSettings
"""
_attribute_map = {
@@ -1783,6 +2468,11 @@ class DevCenterUpdate(TrackedResourceUpdate):
"key": "properties.projectCatalogSettings",
"type": "DevCenterProjectCatalogSettings",
},
+ "network_settings": {"key": "properties.networkSettings", "type": "DevCenterNetworkSettings"},
+ "dev_box_provisioning_settings": {
+ "key": "properties.devBoxProvisioningSettings",
+ "type": "DevBoxProvisioningSettings",
+ },
}
def __init__(
@@ -1794,6 +2484,8 @@ def __init__(
encryption: Optional["_models.Encryption"] = None,
display_name: Optional[str] = None,
project_catalog_settings: Optional["_models.DevCenterProjectCatalogSettings"] = None,
+ network_settings: Optional["_models.DevCenterNetworkSettings"] = None,
+ dev_box_provisioning_settings: Optional["_models.DevBoxProvisioningSettings"] = None,
**kwargs: Any
) -> None:
"""
@@ -1812,12 +2504,21 @@ def __init__(
with a catalog.
:paramtype project_catalog_settings:
~azure.mgmt.devcenter.models.DevCenterProjectCatalogSettings
+ :keyword network_settings: Network settings that will be enforced on network resources
+ associated with the Dev Center.
+ :paramtype network_settings: ~azure.mgmt.devcenter.models.DevCenterNetworkSettings
+ :keyword dev_box_provisioning_settings: Settings to be used in the provisioning of all Dev
+ Boxes that belong to this dev center.
+ :paramtype dev_box_provisioning_settings:
+ ~azure.mgmt.devcenter.models.DevBoxProvisioningSettings
"""
super().__init__(tags=tags, location=location, **kwargs)
self.identity = identity
self.encryption = encryption
self.display_name = display_name
self.project_catalog_settings = project_catalog_settings
+ self.network_settings = network_settings
+ self.dev_box_provisioning_settings = dev_box_provisioning_settings
class Encryption(_serialization.Model):
@@ -1849,6 +2550,96 @@ def __init__(
self.customer_managed_key_encryption = customer_managed_key_encryption
+class EncryptionSetListResult(_serialization.Model):
+ """Result of the list devcenter encryption set operation.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar value: Current page of results.
+ :vartype value: list[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :ivar next_link: URL to get the next set of results if there are any.
+ :vartype next_link: str
+ """
+
+ _validation = {
+ "value": {"readonly": True},
+ "next_link": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "value": {"key": "value", "type": "[DevCenterEncryptionSet]"},
+ "next_link": {"key": "nextLink", "type": "str"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.value = None
+ self.next_link = None
+
+
+class EncryptionSetUpdate(TrackedResourceUpdate):
+ """The devcenter encryption set resource for partial updates. Properties not provided in the
+ update request will not be changed.
+
+ :ivar tags: Resource tags.
+ :vartype tags: dict[str, str]
+ :ivar location: The geo-location where the resource lives.
+ :vartype location: str
+ :ivar identity: Managed identity properties.
+ :vartype identity: ~azure.mgmt.devcenter.models.ManagedServiceIdentity
+ :ivar devbox_disks_encryption_enable_status: Devbox disk encryption enable or disable status.
+ Indicates if Devbox disks encryption using DevCenter CMK is enabled or not. Known values are:
+ "Enabled" and "Disabled".
+ :vartype devbox_disks_encryption_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevboxDisksEncryptionEnableStatus
+ :ivar key_encryption_key_url: Key encryption key Url, versioned or non-versioned. Ex:
+ https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or
+ https://contosovault.vault.azure.net/keys/contosokek.
+ :vartype key_encryption_key_url: str
+ """
+
+ _attribute_map = {
+ "tags": {"key": "tags", "type": "{str}"},
+ "location": {"key": "location", "type": "str"},
+ "identity": {"key": "identity", "type": "ManagedServiceIdentity"},
+ "devbox_disks_encryption_enable_status": {"key": "properties.devboxDisksEncryptionEnableStatus", "type": "str"},
+ "key_encryption_key_url": {"key": "properties.keyEncryptionKeyUrl", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ tags: Optional[Dict[str, str]] = None,
+ location: Optional[str] = None,
+ identity: Optional["_models.ManagedServiceIdentity"] = None,
+ devbox_disks_encryption_enable_status: Optional[Union[str, "_models.DevboxDisksEncryptionEnableStatus"]] = None,
+ key_encryption_key_url: Optional[str] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword tags: Resource tags.
+ :paramtype tags: dict[str, str]
+ :keyword location: The geo-location where the resource lives.
+ :paramtype location: str
+ :keyword identity: Managed identity properties.
+ :paramtype identity: ~azure.mgmt.devcenter.models.ManagedServiceIdentity
+ :keyword devbox_disks_encryption_enable_status: Devbox disk encryption enable or disable
+ status. Indicates if Devbox disks encryption using DevCenter CMK is enabled or not. Known
+ values are: "Enabled" and "Disabled".
+ :paramtype devbox_disks_encryption_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevboxDisksEncryptionEnableStatus
+ :keyword key_encryption_key_url: Key encryption key Url, versioned or non-versioned. Ex:
+ https://contosovault.vault.azure.net/keys/contosokek/562a4bb76b524a1493a6afe8e536ee78 or
+ https://contosovault.vault.azure.net/keys/contosokek.
+ :paramtype key_encryption_key_url: str
+ """
+ super().__init__(tags=tags, location=location, **kwargs)
+ self.identity = identity
+ self.devbox_disks_encryption_enable_status = devbox_disks_encryption_enable_status
+ self.key_encryption_key_url = key_encryption_key_url
+
+
class EndpointDependency(_serialization.Model):
"""A domain name and connection details used to access a dependency.
@@ -1907,26 +2698,6 @@ def __init__(self, **kwargs: Any) -> None:
self.port = None
-class ProxyResource(Resource):
- """The resource model definition for a Azure Resource Manager proxy resource. It will not have
- tags and a location.
-
- Variables are only populated by the server, and will be ignored when sending a request.
-
- :ivar id: Fully qualified resource ID for the resource. E.g.
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long
- :vartype id: str
- :ivar name: The name of the resource.
- :vartype name: str
- :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
- "Microsoft.Storage/storageAccounts".
- :vartype type: str
- :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
- information.
- :vartype system_data: ~azure.mgmt.devcenter.models.SystemData
- """
-
-
class EnvironmentDefinition(ProxyResource):
"""Represents an environment definition catalog item.
@@ -2488,7 +3259,7 @@ class HealthCheck(_serialization.Model):
Variables are only populated by the server, and will be ignored when sending a request.
:ivar status: The status of the health check item. Known values are: "Unknown", "Pending",
- "Running", "Passed", "Warning", and "Failed".
+ "Running", "Passed", "Warning", "Failed", and "Informational".
:vartype status: str or ~azure.mgmt.devcenter.models.HealthCheckStatus
:ivar display_name: The display name of this health check item.
:vartype display_name: str
@@ -2612,119 +3383,636 @@ class HealthCheckStatusDetailsListResult(_serialization.Model):
def __init__(self, **kwargs: Any) -> None:
""" """
super().__init__(**kwargs)
- self.value = None
- self.next_link = None
+ self.value = None
+ self.next_link = None
+
+
+class HealthStatusDetail(_serialization.Model):
+ """Pool health status detail.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar code: An identifier for the issue.
+ :vartype code: str
+ :ivar message: A message describing the issue, intended to be suitable for display in a user
+ interface.
+ :vartype message: str
+ """
+
+ _validation = {
+ "code": {"readonly": True},
+ "message": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "code": {"key": "code", "type": "str"},
+ "message": {"key": "message", "type": "str"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.code = None
+ self.message = None
+
+
+class Image(ProxyResource):
+ """Represents an image.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar id: Fully qualified resource ID for the resource. E.g.
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.devcenter.models.SystemData
+ :ivar description: The description of the image.
+ :vartype description: str
+ :ivar publisher: The publisher of the image.
+ :vartype publisher: str
+ :ivar offer: The name of the image offer.
+ :vartype offer: str
+ :ivar sku: The SKU name for the image.
+ :vartype sku: str
+ :ivar recommended_machine_configuration: The recommended machine configuration to use with the
+ image.
+ :vartype recommended_machine_configuration:
+ ~azure.mgmt.devcenter.models.RecommendedMachineConfiguration
+ :ivar provisioning_state: The provisioning state of the resource. Known values are:
+ "NotSpecified", "Accepted", "Running", "Creating", "Created", "Updating", "Updated",
+ "Deleting", "Deleted", "Succeeded", "Failed", "Canceled", "MovingResources",
+ "TransientFailure", "RolloutInProgress", and "StorageProvisioningFailed".
+ :vartype provisioning_state: str or ~azure.mgmt.devcenter.models.ProvisioningState
+ :ivar hibernate_support: Indicates whether this image has hibernate enabled. Not all images are
+ capable of supporting hibernation. To find out more see https://aka.ms/devbox/hibernate. Known
+ values are: "Disabled" and "Enabled".
+ :vartype hibernate_support: str or ~azure.mgmt.devcenter.models.HibernateSupport
+ """
+
+ _validation = {
+ "id": {"readonly": True},
+ "name": {"readonly": True},
+ "type": {"readonly": True},
+ "system_data": {"readonly": True},
+ "description": {"readonly": True},
+ "publisher": {"readonly": True},
+ "offer": {"readonly": True},
+ "sku": {"readonly": True},
+ "recommended_machine_configuration": {"readonly": True},
+ "provisioning_state": {"readonly": True},
+ "hibernate_support": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "id": {"key": "id", "type": "str"},
+ "name": {"key": "name", "type": "str"},
+ "type": {"key": "type", "type": "str"},
+ "system_data": {"key": "systemData", "type": "SystemData"},
+ "description": {"key": "properties.description", "type": "str"},
+ "publisher": {"key": "properties.publisher", "type": "str"},
+ "offer": {"key": "properties.offer", "type": "str"},
+ "sku": {"key": "properties.sku", "type": "str"},
+ "recommended_machine_configuration": {
+ "key": "properties.recommendedMachineConfiguration",
+ "type": "RecommendedMachineConfiguration",
+ },
+ "provisioning_state": {"key": "properties.provisioningState", "type": "str"},
+ "hibernate_support": {"key": "properties.hibernateSupport", "type": "str"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.description = None
+ self.publisher = None
+ self.offer = None
+ self.sku = None
+ self.recommended_machine_configuration = None
+ self.provisioning_state = None
+ self.hibernate_support = None
+
+
+class ImageCreationErrorDetails(_serialization.Model):
+ """Image creation error details.
+
+ :ivar code: An identifier for the error.
+ :vartype code: str
+ :ivar message: A message describing the error.
+ :vartype message: str
+ """
+
+ _attribute_map = {
+ "code": {"key": "code", "type": "str"},
+ "message": {"key": "message", "type": "str"},
+ }
+
+ def __init__(self, *, code: Optional[str] = None, message: Optional[str] = None, **kwargs: Any) -> None:
+ """
+ :keyword code: An identifier for the error.
+ :paramtype code: str
+ :keyword message: A message describing the error.
+ :paramtype message: str
+ """
+ super().__init__(**kwargs)
+ self.code = code
+ self.message = message
+
+
+class ImageDefinition(ProxyResource):
+ """Represents a definition for an Image.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar id: Fully qualified resource ID for the resource. E.g.
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.devcenter.models.SystemData
+ :ivar image_reference: Image reference information.
+ :vartype image_reference: ~azure.mgmt.devcenter.models.ImageReference
+ :ivar file_url: The URL to the repository file containing the image definition.
+ :vartype file_url: str
+ :ivar latest_build: Details about the latest build.
+ :vartype latest_build: ~azure.mgmt.devcenter.models.LatestImageBuild
+ :ivar image_validation_status: Validation status of the configured image. Known values are:
+ "Unknown", "Pending", "Succeeded", "Failed", and "TimedOut".
+ :vartype image_validation_status: str or ~azure.mgmt.devcenter.models.ImageValidationStatus
+ :ivar image_validation_error_details: Details for image validator error. Populated when the
+ image validation is not successful.
+ :vartype image_validation_error_details:
+ ~azure.mgmt.devcenter.models.ImageValidationErrorDetails
+ :ivar validation_status: Validation status for the Image Definition. Known values are:
+ "Unknown", "Pending", "Succeeded", and "Failed".
+ :vartype validation_status: str or ~azure.mgmt.devcenter.models.CatalogResourceValidationStatus
+ :ivar active_image_reference: Image reference information for the currently active image (only
+ populated during updates).
+ :vartype active_image_reference: ~azure.mgmt.devcenter.models.ImageReference
+ :ivar auto_image_build: Indicates if automatic image builds will be triggered for image
+ definition updates. Known values are: "Disabled" and "Enabled".
+ :vartype auto_image_build: str or ~azure.mgmt.devcenter.models.AutoImageBuildStatus
+ :ivar tasks: Tasks to run at Dev Box provisioning time.
+ :vartype tasks: list[~azure.mgmt.devcenter.models.CustomizationTaskInstance]
+ :ivar user_tasks: Tasks to run when a user first logs into a Dev Box.
+ :vartype user_tasks: list[~azure.mgmt.devcenter.models.CustomizationTaskInstance]
+ :ivar extends: Another Image Definition that this one extends.
+ :vartype extends: ~azure.mgmt.devcenter.models.ImageDefinitionReference
+ """
+
+ _validation = {
+ "id": {"readonly": True},
+ "name": {"readonly": True},
+ "type": {"readonly": True},
+ "system_data": {"readonly": True},
+ "file_url": {"readonly": True},
+ "image_validation_status": {"readonly": True},
+ "image_validation_error_details": {"readonly": True},
+ "validation_status": {"readonly": True},
+ "active_image_reference": {"readonly": True},
+ "auto_image_build": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "id": {"key": "id", "type": "str"},
+ "name": {"key": "name", "type": "str"},
+ "type": {"key": "type", "type": "str"},
+ "system_data": {"key": "systemData", "type": "SystemData"},
+ "image_reference": {"key": "properties.imageReference", "type": "ImageReference"},
+ "file_url": {"key": "properties.fileUrl", "type": "str"},
+ "latest_build": {"key": "properties.latestBuild", "type": "LatestImageBuild"},
+ "image_validation_status": {"key": "properties.imageValidationStatus", "type": "str"},
+ "image_validation_error_details": {
+ "key": "properties.imageValidationErrorDetails",
+ "type": "ImageValidationErrorDetails",
+ },
+ "validation_status": {"key": "properties.validationStatus", "type": "str"},
+ "active_image_reference": {"key": "properties.activeImageReference", "type": "ImageReference"},
+ "auto_image_build": {"key": "properties.autoImageBuild", "type": "str"},
+ "tasks": {"key": "properties.tasks", "type": "[CustomizationTaskInstance]"},
+ "user_tasks": {"key": "properties.userTasks", "type": "[CustomizationTaskInstance]"},
+ "extends": {"key": "properties.extends", "type": "ImageDefinitionReference"},
+ }
+
+ def __init__(
+ self,
+ *,
+ image_reference: Optional["_models.ImageReference"] = None,
+ latest_build: Optional["_models.LatestImageBuild"] = None,
+ tasks: Optional[List["_models.CustomizationTaskInstance"]] = None,
+ user_tasks: Optional[List["_models.CustomizationTaskInstance"]] = None,
+ extends: Optional["_models.ImageDefinitionReference"] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword image_reference: Image reference information.
+ :paramtype image_reference: ~azure.mgmt.devcenter.models.ImageReference
+ :keyword latest_build: Details about the latest build.
+ :paramtype latest_build: ~azure.mgmt.devcenter.models.LatestImageBuild
+ :keyword tasks: Tasks to run at Dev Box provisioning time.
+ :paramtype tasks: list[~azure.mgmt.devcenter.models.CustomizationTaskInstance]
+ :keyword user_tasks: Tasks to run when a user first logs into a Dev Box.
+ :paramtype user_tasks: list[~azure.mgmt.devcenter.models.CustomizationTaskInstance]
+ :keyword extends: Another Image Definition that this one extends.
+ :paramtype extends: ~azure.mgmt.devcenter.models.ImageDefinitionReference
+ """
+ super().__init__(**kwargs)
+ self.image_reference = image_reference
+ self.file_url = None
+ self.latest_build = latest_build
+ self.image_validation_status = None
+ self.image_validation_error_details = None
+ self.validation_status = None
+ self.active_image_reference = None
+ self.auto_image_build = None
+ self.tasks = tasks
+ self.user_tasks = user_tasks
+ self.extends = extends
+
+
+class ImageDefinitionBuild(ProxyResource):
+ """Represents a specific build of an Image Definition.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar id: Fully qualified resource ID for the resource. E.g.
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.devcenter.models.SystemData
+ :ivar image_reference: The specific image version used by the build.
+ :vartype image_reference: ~azure.mgmt.devcenter.models.ImageReference
+ :ivar status: The status of the build. Known values are: "Succeeded", "Running",
+ "ValidationFailed", "Failed", "Cancelled", and "TimedOut".
+ :vartype status: str or ~azure.mgmt.devcenter.models.ImageDefinitionBuildStatus
+ :ivar start_time: Start time of the task group.
+ :vartype start_time: ~datetime.datetime
+ :ivar end_time: End time of the task group.
+ :vartype end_time: ~datetime.datetime
+ :ivar error_details: Details for image creation error. Populated when the image creation is not
+ successful.
+ :vartype error_details: ~azure.mgmt.devcenter.models.ImageCreationErrorDetails
+ """
+
+ _validation = {
+ "id": {"readonly": True},
+ "name": {"readonly": True},
+ "type": {"readonly": True},
+ "system_data": {"readonly": True},
+ "image_reference": {"readonly": True},
+ "status": {"readonly": True},
+ "start_time": {"readonly": True},
+ "end_time": {"readonly": True},
+ "error_details": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "id": {"key": "id", "type": "str"},
+ "name": {"key": "name", "type": "str"},
+ "type": {"key": "type", "type": "str"},
+ "system_data": {"key": "systemData", "type": "SystemData"},
+ "image_reference": {"key": "properties.imageReference", "type": "ImageReference"},
+ "status": {"key": "properties.status", "type": "str"},
+ "start_time": {"key": "properties.startTime", "type": "iso-8601"},
+ "end_time": {"key": "properties.endTime", "type": "iso-8601"},
+ "error_details": {"key": "properties.errorDetails", "type": "ImageCreationErrorDetails"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.image_reference = None
+ self.status = None
+ self.start_time = None
+ self.end_time = None
+ self.error_details = None
+
+
+class ImageDefinitionBuildDetails(ProxyResource):
+ """Represents a specific build of an Image Definition.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar id: Fully qualified resource ID for the resource. E.g.
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.devcenter.models.SystemData
+ :ivar image_reference: The specific image version used by the build.
+ :vartype image_reference: ~azure.mgmt.devcenter.models.ImageReference
+ :ivar status: The status of the build. Known values are: "Succeeded", "Running",
+ "ValidationFailed", "Failed", "Cancelled", and "TimedOut".
+ :vartype status: str or ~azure.mgmt.devcenter.models.ImageDefinitionBuildStatus
+ :ivar start_time: Start time of the task group.
+ :vartype start_time: ~datetime.datetime
+ :ivar end_time: End time of the task group.
+ :vartype end_time: ~datetime.datetime
+ :ivar error_details: Details for image creation error. Populated when the image creation is not
+ successful.
+ :vartype error_details: ~azure.mgmt.devcenter.models.ImageCreationErrorDetails
+ :ivar task_groups: The list of task groups executed during the image definition build.
+ :vartype task_groups: list[~azure.mgmt.devcenter.models.ImageDefinitionBuildTaskGroup]
+ """
+
+ _validation = {
+ "id": {"readonly": True},
+ "name": {"readonly": True},
+ "type": {"readonly": True},
+ "system_data": {"readonly": True},
+ "image_reference": {"readonly": True},
+ "status": {"readonly": True},
+ "start_time": {"readonly": True},
+ "end_time": {"readonly": True},
+ "error_details": {"readonly": True},
+ "task_groups": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "id": {"key": "id", "type": "str"},
+ "name": {"key": "name", "type": "str"},
+ "type": {"key": "type", "type": "str"},
+ "system_data": {"key": "systemData", "type": "SystemData"},
+ "image_reference": {"key": "imageReference", "type": "ImageReference"},
+ "status": {"key": "status", "type": "str"},
+ "start_time": {"key": "startTime", "type": "iso-8601"},
+ "end_time": {"key": "endTime", "type": "iso-8601"},
+ "error_details": {"key": "errorDetails", "type": "ImageCreationErrorDetails"},
+ "task_groups": {"key": "taskGroups", "type": "[ImageDefinitionBuildTaskGroup]"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.image_reference = None
+ self.status = None
+ self.start_time = None
+ self.end_time = None
+ self.error_details = None
+ self.task_groups = None
+
+
+class ImageDefinitionBuildListResult(_serialization.Model):
+ """Results of the Image Definition Build list operation.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar value: Current page of results.
+ :vartype value: list[~azure.mgmt.devcenter.models.ImageDefinitionBuild]
+ :ivar next_link: URL to get the next set of results if there are any.
+ :vartype next_link: str
+ """
+
+ _validation = {
+ "value": {"readonly": True},
+ "next_link": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "value": {"key": "value", "type": "[ImageDefinitionBuild]"},
+ "next_link": {"key": "nextLink", "type": "str"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.value = None
+ self.next_link = None
+
+
+class ImageDefinitionBuildTask(_serialization.Model):
+ """A task executed during the image definition build.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar name: The name of the task.
+ :vartype name: str
+ :ivar parameters: Parameters for the task.
+ :vartype parameters: list[~azure.mgmt.devcenter.models.ImageDefinitionBuildTaskParametersItem]
+ :ivar display_name: Display name to help differentiate multiple instances of the same task.
+ :vartype display_name: str
+ :ivar id: ID of the task instance.
+ :vartype id: str
+ :ivar start_time: Start time of the task.
+ :vartype start_time: ~datetime.datetime
+ :ivar end_time: End time of the task.
+ :vartype end_time: ~datetime.datetime
+ :ivar status: The status of the task. Known values are: "Succeeded", "Running",
+ "ValidationFailed", "Failed", "Cancelled", and "TimedOut".
+ :vartype status: str or ~azure.mgmt.devcenter.models.ImageDefinitionBuildStatus
+ :ivar log_uri: The URI for retrieving logs for the task execution.
+ :vartype log_uri: str
+ """
+
+ _validation = {
+ "id": {"readonly": True},
+ "start_time": {"readonly": True},
+ "end_time": {"readonly": True},
+ "status": {"readonly": True},
+ "log_uri": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "name": {"key": "name", "type": "str"},
+ "parameters": {"key": "parameters", "type": "[ImageDefinitionBuildTaskParametersItem]"},
+ "display_name": {"key": "displayName", "type": "str"},
+ "id": {"key": "id", "type": "str"},
+ "start_time": {"key": "startTime", "type": "iso-8601"},
+ "end_time": {"key": "endTime", "type": "iso-8601"},
+ "status": {"key": "status", "type": "str"},
+ "log_uri": {"key": "logUri", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ name: Optional[str] = None,
+ parameters: Optional[List["_models.ImageDefinitionBuildTaskParametersItem"]] = None,
+ display_name: Optional[str] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword name: The name of the task.
+ :paramtype name: str
+ :keyword parameters: Parameters for the task.
+ :paramtype parameters:
+ list[~azure.mgmt.devcenter.models.ImageDefinitionBuildTaskParametersItem]
+ :keyword display_name: Display name to help differentiate multiple instances of the same task.
+ :paramtype display_name: str
+ """
+ super().__init__(**kwargs)
+ self.name = name
+ self.parameters = parameters
+ self.display_name = display_name
+ self.id = None
+ self.start_time = None
+ self.end_time = None
+ self.status = None
+ self.log_uri = None
+
+
+class ImageDefinitionBuildTaskGroup(_serialization.Model):
+ """A task group executed during the image definition build.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar name: The name of the task group.
+ :vartype name: str
+ :ivar status: The status of the task group. Known values are: "Succeeded", "Running",
+ "ValidationFailed", "Failed", "Cancelled", and "TimedOut".
+ :vartype status: str or ~azure.mgmt.devcenter.models.ImageDefinitionBuildStatus
+ :ivar start_time: Start time of the task group.
+ :vartype start_time: ~datetime.datetime
+ :ivar end_time: End time of the task group.
+ :vartype end_time: ~datetime.datetime
+ :ivar tasks: The list of tasks executed during the task group.
+ :vartype tasks: list[~azure.mgmt.devcenter.models.ImageDefinitionBuildTask]
+ """
+
+ _validation = {
+ "name": {"readonly": True},
+ "status": {"readonly": True},
+ "start_time": {"readonly": True},
+ "end_time": {"readonly": True},
+ "tasks": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "name": {"key": "name", "type": "str"},
+ "status": {"key": "status", "type": "str"},
+ "start_time": {"key": "startTime", "type": "iso-8601"},
+ "end_time": {"key": "endTime", "type": "iso-8601"},
+ "tasks": {"key": "tasks", "type": "[ImageDefinitionBuildTask]"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.name = None
+ self.status = None
+ self.start_time = None
+ self.end_time = None
+ self.tasks = None
+
+
+class ImageDefinitionBuildTaskParametersItem(_serialization.Model):
+ """ImageDefinitionBuildTaskParametersItem.
+
+ All required parameters must be populated in order to send to server.
+
+ :ivar key: Required.
+ :vartype key: str
+ :ivar value: Required.
+ :vartype value: str
+ """
+
+ _validation = {
+ "key": {"required": True},
+ "value": {"required": True},
+ }
+
+ _attribute_map = {
+ "key": {"key": "key", "type": "str"},
+ "value": {"key": "value", "type": "str"},
+ }
+
+ def __init__(self, *, key: str, value: str, **kwargs: Any) -> None:
+ """
+ :keyword key: Required.
+ :paramtype key: str
+ :keyword value: Required.
+ :paramtype value: str
+ """
+ super().__init__(**kwargs)
+ self.key = key
+ self.value = value
-class HealthStatusDetail(_serialization.Model):
- """Pool health status detail.
+class ImageDefinitionListResult(_serialization.Model):
+ """Results of the Image Definition list operation.
Variables are only populated by the server, and will be ignored when sending a request.
- :ivar code: An identifier for the issue.
- :vartype code: str
- :ivar message: A message describing the issue, intended to be suitable for display in a user
- interface.
- :vartype message: str
+ :ivar value: Current page of results.
+ :vartype value: list[~azure.mgmt.devcenter.models.ImageDefinition]
+ :ivar next_link: URL to get the next set of results if there are any.
+ :vartype next_link: str
"""
_validation = {
- "code": {"readonly": True},
- "message": {"readonly": True},
+ "value": {"readonly": True},
+ "next_link": {"readonly": True},
}
_attribute_map = {
- "code": {"key": "code", "type": "str"},
- "message": {"key": "message", "type": "str"},
+ "value": {"key": "value", "type": "[ImageDefinition]"},
+ "next_link": {"key": "nextLink", "type": "str"},
}
def __init__(self, **kwargs: Any) -> None:
""" """
super().__init__(**kwargs)
- self.code = None
- self.message = None
+ self.value = None
+ self.next_link = None
-class Image(ProxyResource): # pylint: disable=too-many-instance-attributes
- """Represents an image.
+class ImageDefinitionReference(_serialization.Model):
+ """A reference to an Image Definition.
- Variables are only populated by the server, and will be ignored when sending a request.
+ All required parameters must be populated in order to send to server.
- :ivar id: Fully qualified resource ID for the resource. E.g.
- "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long
- :vartype id: str
- :ivar name: The name of the resource.
- :vartype name: str
- :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
- "Microsoft.Storage/storageAccounts".
- :vartype type: str
- :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
- information.
- :vartype system_data: ~azure.mgmt.devcenter.models.SystemData
- :ivar description: The description of the image.
- :vartype description: str
- :ivar publisher: The publisher of the image.
- :vartype publisher: str
- :ivar offer: The name of the image offer.
- :vartype offer: str
- :ivar sku: The SKU name for the image.
- :vartype sku: str
- :ivar recommended_machine_configuration: The recommended machine configuration to use with the
- image.
- :vartype recommended_machine_configuration:
- ~azure.mgmt.devcenter.models.RecommendedMachineConfiguration
- :ivar provisioning_state: The provisioning state of the resource. Known values are:
- "NotSpecified", "Accepted", "Running", "Creating", "Created", "Updating", "Updated",
- "Deleting", "Deleted", "Succeeded", "Failed", "Canceled", "MovingResources",
- "TransientFailure", "RolloutInProgress", and "StorageProvisioningFailed".
- :vartype provisioning_state: str or ~azure.mgmt.devcenter.models.ProvisioningState
- :ivar hibernate_support: Indicates whether this image has hibernate enabled. Not all images are
- capable of supporting hibernation. To find out more see https://aka.ms/devbox/hibernate. Known
- values are: "Disabled" and "Enabled".
- :vartype hibernate_support: str or ~azure.mgmt.devcenter.models.HibernateSupport
+ :ivar image_definition: Name of the referenced Image Definition. Required.
+ :vartype image_definition: str
+ :ivar parameters: Parameters for the referenced Image Definition.
+ :vartype parameters: list[~azure.mgmt.devcenter.models.DefinitionParametersItem]
"""
_validation = {
- "id": {"readonly": True},
- "name": {"readonly": True},
- "type": {"readonly": True},
- "system_data": {"readonly": True},
- "description": {"readonly": True},
- "publisher": {"readonly": True},
- "offer": {"readonly": True},
- "sku": {"readonly": True},
- "recommended_machine_configuration": {"readonly": True},
- "provisioning_state": {"readonly": True},
- "hibernate_support": {"readonly": True},
+ "image_definition": {"required": True},
}
_attribute_map = {
- "id": {"key": "id", "type": "str"},
- "name": {"key": "name", "type": "str"},
- "type": {"key": "type", "type": "str"},
- "system_data": {"key": "systemData", "type": "SystemData"},
- "description": {"key": "properties.description", "type": "str"},
- "publisher": {"key": "properties.publisher", "type": "str"},
- "offer": {"key": "properties.offer", "type": "str"},
- "sku": {"key": "properties.sku", "type": "str"},
- "recommended_machine_configuration": {
- "key": "properties.recommendedMachineConfiguration",
- "type": "RecommendedMachineConfiguration",
- },
- "provisioning_state": {"key": "properties.provisioningState", "type": "str"},
- "hibernate_support": {"key": "properties.hibernateSupport", "type": "str"},
+ "image_definition": {"key": "imageDefinition", "type": "str"},
+ "parameters": {"key": "parameters", "type": "[DefinitionParametersItem]"},
}
- def __init__(self, **kwargs: Any) -> None:
- """ """
+ def __init__(
+ self,
+ *,
+ image_definition: str,
+ parameters: Optional[List["_models.DefinitionParametersItem"]] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword image_definition: Name of the referenced Image Definition. Required.
+ :paramtype image_definition: str
+ :keyword parameters: Parameters for the referenced Image Definition.
+ :paramtype parameters: list[~azure.mgmt.devcenter.models.DefinitionParametersItem]
+ """
super().__init__(**kwargs)
- self.description = None
- self.publisher = None
- self.offer = None
- self.sku = None
- self.recommended_machine_configuration = None
- self.provisioning_state = None
- self.hibernate_support = None
+ self.image_definition = image_definition
+ self.parameters = parameters
class ImageListResult(_serialization.Model):
@@ -2908,6 +4196,74 @@ def __init__(self, **kwargs: Any) -> None:
self.next_link = None
+class InheritedSettingsForProject(_serialization.Model):
+ """Applicable inherited settings for a project.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar project_catalog_settings: Dev Center settings to be used when associating a project with
+ a catalog.
+ :vartype project_catalog_settings: ~azure.mgmt.devcenter.models.DevCenterProjectCatalogSettings
+ :ivar network_settings: Network settings that will be enforced on this project.
+ :vartype network_settings: ~azure.mgmt.devcenter.models.ProjectNetworkSettings
+ """
+
+ _validation = {
+ "project_catalog_settings": {"readonly": True},
+ "network_settings": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "project_catalog_settings": {"key": "projectCatalogSettings", "type": "DevCenterProjectCatalogSettings"},
+ "network_settings": {"key": "networkSettings", "type": "ProjectNetworkSettings"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.project_catalog_settings = None
+ self.network_settings = None
+
+
+class LatestImageBuild(_serialization.Model):
+ """Details about the latest build.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar name: Identifier of a build.
+ :vartype name: str
+ :ivar start_time: Start time of the task group.
+ :vartype start_time: ~datetime.datetime
+ :ivar end_time: End time of the task group.
+ :vartype end_time: ~datetime.datetime
+ :ivar status: The state of an Image Definition Build. Known values are: "Succeeded", "Running",
+ "ValidationFailed", "Failed", "Cancelled", and "TimedOut".
+ :vartype status: str or ~azure.mgmt.devcenter.models.ImageDefinitionBuildStatus
+ """
+
+ _validation = {
+ "name": {"readonly": True},
+ "start_time": {"readonly": True},
+ "end_time": {"readonly": True},
+ "status": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "name": {"key": "name", "type": "str"},
+ "start_time": {"key": "startTime", "type": "iso-8601"},
+ "end_time": {"key": "endTime", "type": "iso-8601"},
+ "status": {"key": "status", "type": "str"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.name = None
+ self.start_time = None
+ self.end_time = None
+ self.status = None
+
+
class ListUsagesResult(_serialization.Model):
"""List of Core Usages.
@@ -2999,7 +4355,7 @@ def __init__(
self.user_assigned_identities = user_assigned_identities
-class NetworkConnection(TrackedResource): # pylint: disable=too-many-instance-attributes
+class NetworkConnection(TrackedResource):
"""Network related settings.
Variables are only populated by the server, and will be ignored when sending a request.
@@ -3040,11 +4396,12 @@ class NetworkConnection(TrackedResource): # pylint: disable=too-many-instance-a
:vartype provisioning_state: str or ~azure.mgmt.devcenter.models.ProvisioningState
:ivar health_check_status: Overall health status of the network connection. Health checks are
run on creation, update, and periodically to validate the network connection. Known values are:
- "Unknown", "Pending", "Running", "Passed", "Warning", and "Failed".
+ "Unknown", "Pending", "Running", "Passed", "Warning", "Failed", and "Informational".
:vartype health_check_status: str or ~azure.mgmt.devcenter.models.HealthCheckStatus
:ivar networking_resource_group_name: The name for resource group where NICs will be placed.
:vartype networking_resource_group_name: str
- :ivar domain_join_type: AAD Join type. Known values are: "HybridAzureADJoin" and "AzureADJoin".
+ :ivar domain_join_type: AAD Join type. Known values are: "HybridAzureADJoin", "AzureADJoin",
+ and "None".
:vartype domain_join_type: str or ~azure.mgmt.devcenter.models.DomainJoinType
"""
@@ -3109,8 +4466,8 @@ def __init__(
:paramtype domain_password: str
:keyword networking_resource_group_name: The name for resource group where NICs will be placed.
:paramtype networking_resource_group_name: str
- :keyword domain_join_type: AAD Join type. Known values are: "HybridAzureADJoin" and
- "AzureADJoin".
+ :keyword domain_join_type: AAD Join type. Known values are: "HybridAzureADJoin", "AzureADJoin",
+ and "None".
:paramtype domain_join_type: str or ~azure.mgmt.devcenter.models.DomainJoinType
"""
super().__init__(tags=tags, location=location, **kwargs)
@@ -3307,12 +4664,12 @@ class NetworkProperties(NetworkConnectionUpdateProperties):
:vartype provisioning_state: str or ~azure.mgmt.devcenter.models.ProvisioningState
:ivar health_check_status: Overall health status of the network connection. Health checks are
run on creation, update, and periodically to validate the network connection. Known values are:
- "Unknown", "Pending", "Running", "Passed", "Warning", and "Failed".
+ "Unknown", "Pending", "Running", "Passed", "Warning", "Failed", and "Informational".
:vartype health_check_status: str or ~azure.mgmt.devcenter.models.HealthCheckStatus
:ivar networking_resource_group_name: The name for resource group where NICs will be placed.
:vartype networking_resource_group_name: str
- :ivar domain_join_type: AAD Join type. Required. Known values are: "HybridAzureADJoin" and
- "AzureADJoin".
+ :ivar domain_join_type: AAD Join type. Required. Known values are: "HybridAzureADJoin",
+ "AzureADJoin", and "None".
:vartype domain_join_type: str or ~azure.mgmt.devcenter.models.DomainJoinType
"""
@@ -3361,8 +4718,8 @@ def __init__(
:paramtype domain_password: str
:keyword networking_resource_group_name: The name for resource group where NICs will be placed.
:paramtype networking_resource_group_name: str
- :keyword domain_join_type: AAD Join type. Required. Known values are: "HybridAzureADJoin" and
- "AzureADJoin".
+ :keyword domain_join_type: AAD Join type. Required. Known values are: "HybridAzureADJoin",
+ "AzureADJoin", and "None".
:paramtype domain_join_type: str or ~azure.mgmt.devcenter.models.DomainJoinType
"""
super().__init__(
@@ -3744,7 +5101,7 @@ def __init__(self, *, next_link: Optional[str] = None, **kwargs: Any) -> None:
self.next_link = next_link
-class Pool(TrackedResource): # pylint: disable=too-many-instance-attributes
+class Pool(TrackedResource):
"""A pool of Virtual Machines.
Variables are only populated by the server, and will be ignored when sending a request.
@@ -3766,8 +5123,15 @@ class Pool(TrackedResource): # pylint: disable=too-many-instance-attributes
:vartype tags: dict[str, str]
:ivar location: The geo-location where the resource lives. Required.
:vartype location: str
+ :ivar dev_box_definition_type: Indicates if the pool is created from an existing Dev Box
+ Definition or if one is provided directly. Known values are: "Reference" and "Value".
+ :vartype dev_box_definition_type: str or ~azure.mgmt.devcenter.models.PoolDevBoxDefinitionType
:ivar dev_box_definition_name: Name of a Dev Box definition in parent Project of this Pool.
+ Will be ignored if devBoxDefinitionType is Value.
:vartype dev_box_definition_name: str
+ :ivar dev_box_definition: A definition of the machines that are created from this Pool. Will be
+ ignored if devBoxDefinitionType is Reference or not provided.
+ :vartype dev_box_definition: ~azure.mgmt.devcenter.models.PoolDevBoxDefinition
:ivar network_connection_name: Name of a Network Connection in parent Project of this Pool.
:vartype network_connection_name: str
:ivar license_type: Specifies the license type indicating the caller has already acquired
@@ -3779,6 +5143,9 @@ class Pool(TrackedResource): # pylint: disable=too-many-instance-attributes
:ivar stop_on_disconnect: Stop on disconnect configuration settings for Dev Boxes created in
this pool.
:vartype stop_on_disconnect: ~azure.mgmt.devcenter.models.StopOnDisconnectConfiguration
+ :ivar stop_on_no_connect: Stop on no connect configuration settings for Dev Boxes created in
+ this pool.
+ :vartype stop_on_no_connect: ~azure.mgmt.devcenter.models.StopOnNoConnectConfiguration
:ivar single_sign_on_status: Indicates whether Dev Boxes in this pool are created with single
sign on enabled. The also requires that single sign on be enabled on the tenant. Known values
are: "Disabled" and "Enabled".
@@ -3791,6 +5158,13 @@ class Pool(TrackedResource): # pylint: disable=too-many-instance-attributes
:ivar managed_virtual_network_regions: The regions of the managed virtual network (required
when managedNetworkType is Managed).
:vartype managed_virtual_network_regions: list[str]
+ :ivar active_hours_configuration: Active hours configuration settings for Dev Boxes created in
+ this pool.
+ :vartype active_hours_configuration: ~azure.mgmt.devcenter.models.ActiveHoursConfiguration
+ :ivar dev_box_tunnel_enable_status: Indicates whether Dev Box Tunnel is enabled for a the pool.
+ Known values are: "Disabled" and "Enabled".
+ :vartype dev_box_tunnel_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevBoxTunnelEnableStatus
:ivar health_status: Overall health status of the Pool. Indicates whether or not the Pool is
available to create Dev Boxes. Known values are: "Unknown", "Pending", "Healthy", "Warning",
and "Unhealthy".
@@ -3826,35 +5200,48 @@ class Pool(TrackedResource): # pylint: disable=too-many-instance-attributes
"system_data": {"key": "systemData", "type": "SystemData"},
"tags": {"key": "tags", "type": "{str}"},
"location": {"key": "location", "type": "str"},
+ "dev_box_definition_type": {"key": "properties.devBoxDefinitionType", "type": "str"},
"dev_box_definition_name": {"key": "properties.devBoxDefinitionName", "type": "str"},
+ "dev_box_definition": {"key": "properties.devBoxDefinition", "type": "PoolDevBoxDefinition"},
"network_connection_name": {"key": "properties.networkConnectionName", "type": "str"},
"license_type": {"key": "properties.licenseType", "type": "str"},
"local_administrator": {"key": "properties.localAdministrator", "type": "str"},
"stop_on_disconnect": {"key": "properties.stopOnDisconnect", "type": "StopOnDisconnectConfiguration"},
+ "stop_on_no_connect": {"key": "properties.stopOnNoConnect", "type": "StopOnNoConnectConfiguration"},
"single_sign_on_status": {"key": "properties.singleSignOnStatus", "type": "str"},
"display_name": {"key": "properties.displayName", "type": "str"},
"virtual_network_type": {"key": "properties.virtualNetworkType", "type": "str"},
"managed_virtual_network_regions": {"key": "properties.managedVirtualNetworkRegions", "type": "[str]"},
+ "active_hours_configuration": {
+ "key": "properties.activeHoursConfiguration",
+ "type": "ActiveHoursConfiguration",
+ },
+ "dev_box_tunnel_enable_status": {"key": "properties.devBoxTunnelEnableStatus", "type": "str"},
"health_status": {"key": "properties.healthStatus", "type": "str"},
"health_status_details": {"key": "properties.healthStatusDetails", "type": "[HealthStatusDetail]"},
"dev_box_count": {"key": "properties.devBoxCount", "type": "int"},
"provisioning_state": {"key": "properties.provisioningState", "type": "str"},
}
- def __init__(
+ def __init__( # pylint: disable=too-many-locals
self,
*,
location: str,
tags: Optional[Dict[str, str]] = None,
+ dev_box_definition_type: Optional[Union[str, "_models.PoolDevBoxDefinitionType"]] = None,
dev_box_definition_name: Optional[str] = None,
+ dev_box_definition: Optional["_models.PoolDevBoxDefinition"] = None,
network_connection_name: Optional[str] = None,
license_type: Optional[Union[str, "_models.LicenseType"]] = None,
local_administrator: Optional[Union[str, "_models.LocalAdminStatus"]] = None,
stop_on_disconnect: Optional["_models.StopOnDisconnectConfiguration"] = None,
+ stop_on_no_connect: Optional["_models.StopOnNoConnectConfiguration"] = None,
single_sign_on_status: Optional[Union[str, "_models.SingleSignOnStatus"]] = None,
display_name: Optional[str] = None,
virtual_network_type: Optional[Union[str, "_models.VirtualNetworkType"]] = None,
managed_virtual_network_regions: Optional[List[str]] = None,
+ active_hours_configuration: Optional["_models.ActiveHoursConfiguration"] = None,
+ dev_box_tunnel_enable_status: Optional[Union[str, "_models.DevBoxTunnelEnableStatus"]] = None,
**kwargs: Any
) -> None:
"""
@@ -3862,8 +5249,16 @@ def __init__(
:paramtype tags: dict[str, str]
:keyword location: The geo-location where the resource lives. Required.
:paramtype location: str
+ :keyword dev_box_definition_type: Indicates if the pool is created from an existing Dev Box
+ Definition or if one is provided directly. Known values are: "Reference" and "Value".
+ :paramtype dev_box_definition_type: str or
+ ~azure.mgmt.devcenter.models.PoolDevBoxDefinitionType
:keyword dev_box_definition_name: Name of a Dev Box definition in parent Project of this Pool.
+ Will be ignored if devBoxDefinitionType is Value.
:paramtype dev_box_definition_name: str
+ :keyword dev_box_definition: A definition of the machines that are created from this Pool. Will
+ be ignored if devBoxDefinitionType is Reference or not provided.
+ :paramtype dev_box_definition: ~azure.mgmt.devcenter.models.PoolDevBoxDefinition
:keyword network_connection_name: Name of a Network Connection in parent Project of this Pool.
:paramtype network_connection_name: str
:keyword license_type: Specifies the license type indicating the caller has already acquired
@@ -3875,6 +5270,9 @@ def __init__(
:keyword stop_on_disconnect: Stop on disconnect configuration settings for Dev Boxes created in
this pool.
:paramtype stop_on_disconnect: ~azure.mgmt.devcenter.models.StopOnDisconnectConfiguration
+ :keyword stop_on_no_connect: Stop on no connect configuration settings for Dev Boxes created in
+ this pool.
+ :paramtype stop_on_no_connect: ~azure.mgmt.devcenter.models.StopOnNoConnectConfiguration
:keyword single_sign_on_status: Indicates whether Dev Boxes in this pool are created with
single sign on enabled. The also requires that single sign on be enabled on the tenant. Known
values are: "Disabled" and "Enabled".
@@ -3887,23 +5285,78 @@ def __init__(
:keyword managed_virtual_network_regions: The regions of the managed virtual network (required
when managedNetworkType is Managed).
:paramtype managed_virtual_network_regions: list[str]
+ :keyword active_hours_configuration: Active hours configuration settings for Dev Boxes created
+ in this pool.
+ :paramtype active_hours_configuration: ~azure.mgmt.devcenter.models.ActiveHoursConfiguration
+ :keyword dev_box_tunnel_enable_status: Indicates whether Dev Box Tunnel is enabled for a the
+ pool. Known values are: "Disabled" and "Enabled".
+ :paramtype dev_box_tunnel_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevBoxTunnelEnableStatus
"""
super().__init__(tags=tags, location=location, **kwargs)
+ self.dev_box_definition_type = dev_box_definition_type
self.dev_box_definition_name = dev_box_definition_name
+ self.dev_box_definition = dev_box_definition
self.network_connection_name = network_connection_name
self.license_type = license_type
self.local_administrator = local_administrator
self.stop_on_disconnect = stop_on_disconnect
+ self.stop_on_no_connect = stop_on_no_connect
self.single_sign_on_status = single_sign_on_status
self.display_name = display_name
self.virtual_network_type = virtual_network_type
self.managed_virtual_network_regions = managed_virtual_network_regions
+ self.active_hours_configuration = active_hours_configuration
+ self.dev_box_tunnel_enable_status = dev_box_tunnel_enable_status
self.health_status = None
self.health_status_details = None
self.dev_box_count = None
self.provisioning_state = None
+class PoolDevBoxDefinition(_serialization.Model):
+ """Represents a definition for a Developer Machine.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar image_reference: Image reference information.
+ :vartype image_reference: ~azure.mgmt.devcenter.models.ImageReference
+ :ivar sku: The SKU for Dev Boxes created from the Pool.
+ :vartype sku: ~azure.mgmt.devcenter.models.Sku
+ :ivar active_image_reference: Image reference information for the currently active image (only
+ populated during updates).
+ :vartype active_image_reference: ~azure.mgmt.devcenter.models.ImageReference
+ """
+
+ _validation = {
+ "active_image_reference": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "image_reference": {"key": "imageReference", "type": "ImageReference"},
+ "sku": {"key": "sku", "type": "Sku"},
+ "active_image_reference": {"key": "activeImageReference", "type": "ImageReference"},
+ }
+
+ def __init__(
+ self,
+ *,
+ image_reference: Optional["_models.ImageReference"] = None,
+ sku: Optional["_models.Sku"] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword image_reference: Image reference information.
+ :paramtype image_reference: ~azure.mgmt.devcenter.models.ImageReference
+ :keyword sku: The SKU for Dev Boxes created from the Pool.
+ :paramtype sku: ~azure.mgmt.devcenter.models.Sku
+ """
+ super().__init__(**kwargs)
+ self.image_reference = image_reference
+ self.sku = sku
+ self.active_image_reference = None
+
+
class PoolListResult(_serialization.Model):
"""Results of the machine pool list operation.
@@ -3935,8 +5388,15 @@ def __init__(self, **kwargs: Any) -> None:
class PoolUpdateProperties(_serialization.Model):
"""Properties of a Pool. These properties can be updated after the resource has been created.
+ :ivar dev_box_definition_type: Indicates if the pool is created from an existing Dev Box
+ Definition or if one is provided directly. Known values are: "Reference" and "Value".
+ :vartype dev_box_definition_type: str or ~azure.mgmt.devcenter.models.PoolDevBoxDefinitionType
:ivar dev_box_definition_name: Name of a Dev Box definition in parent Project of this Pool.
+ Will be ignored if devBoxDefinitionType is Value.
:vartype dev_box_definition_name: str
+ :ivar dev_box_definition: A definition of the machines that are created from this Pool. Will be
+ ignored if devBoxDefinitionType is Reference or not provided.
+ :vartype dev_box_definition: ~azure.mgmt.devcenter.models.PoolDevBoxDefinition
:ivar network_connection_name: Name of a Network Connection in parent Project of this Pool.
:vartype network_connection_name: str
:ivar license_type: Specifies the license type indicating the caller has already acquired
@@ -3948,6 +5408,9 @@ class PoolUpdateProperties(_serialization.Model):
:ivar stop_on_disconnect: Stop on disconnect configuration settings for Dev Boxes created in
this pool.
:vartype stop_on_disconnect: ~azure.mgmt.devcenter.models.StopOnDisconnectConfiguration
+ :ivar stop_on_no_connect: Stop on no connect configuration settings for Dev Boxes created in
+ this pool.
+ :vartype stop_on_no_connect: ~azure.mgmt.devcenter.models.StopOnNoConnectConfiguration
:ivar single_sign_on_status: Indicates whether Dev Boxes in this pool are created with single
sign on enabled. The also requires that single sign on be enabled on the tenant. Known values
are: "Disabled" and "Enabled".
@@ -3960,37 +5423,62 @@ class PoolUpdateProperties(_serialization.Model):
:ivar managed_virtual_network_regions: The regions of the managed virtual network (required
when managedNetworkType is Managed).
:vartype managed_virtual_network_regions: list[str]
+ :ivar active_hours_configuration: Active hours configuration settings for Dev Boxes created in
+ this pool.
+ :vartype active_hours_configuration: ~azure.mgmt.devcenter.models.ActiveHoursConfiguration
+ :ivar dev_box_tunnel_enable_status: Indicates whether Dev Box Tunnel is enabled for a the pool.
+ Known values are: "Disabled" and "Enabled".
+ :vartype dev_box_tunnel_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevBoxTunnelEnableStatus
"""
_attribute_map = {
+ "dev_box_definition_type": {"key": "devBoxDefinitionType", "type": "str"},
"dev_box_definition_name": {"key": "devBoxDefinitionName", "type": "str"},
+ "dev_box_definition": {"key": "devBoxDefinition", "type": "PoolDevBoxDefinition"},
"network_connection_name": {"key": "networkConnectionName", "type": "str"},
"license_type": {"key": "licenseType", "type": "str"},
"local_administrator": {"key": "localAdministrator", "type": "str"},
"stop_on_disconnect": {"key": "stopOnDisconnect", "type": "StopOnDisconnectConfiguration"},
+ "stop_on_no_connect": {"key": "stopOnNoConnect", "type": "StopOnNoConnectConfiguration"},
"single_sign_on_status": {"key": "singleSignOnStatus", "type": "str"},
"display_name": {"key": "displayName", "type": "str"},
"virtual_network_type": {"key": "virtualNetworkType", "type": "str"},
"managed_virtual_network_regions": {"key": "managedVirtualNetworkRegions", "type": "[str]"},
+ "active_hours_configuration": {"key": "activeHoursConfiguration", "type": "ActiveHoursConfiguration"},
+ "dev_box_tunnel_enable_status": {"key": "devBoxTunnelEnableStatus", "type": "str"},
}
def __init__(
self,
*,
+ dev_box_definition_type: Optional[Union[str, "_models.PoolDevBoxDefinitionType"]] = None,
dev_box_definition_name: Optional[str] = None,
+ dev_box_definition: Optional["_models.PoolDevBoxDefinition"] = None,
network_connection_name: Optional[str] = None,
license_type: Optional[Union[str, "_models.LicenseType"]] = None,
local_administrator: Optional[Union[str, "_models.LocalAdminStatus"]] = None,
stop_on_disconnect: Optional["_models.StopOnDisconnectConfiguration"] = None,
+ stop_on_no_connect: Optional["_models.StopOnNoConnectConfiguration"] = None,
single_sign_on_status: Optional[Union[str, "_models.SingleSignOnStatus"]] = None,
display_name: Optional[str] = None,
virtual_network_type: Optional[Union[str, "_models.VirtualNetworkType"]] = None,
managed_virtual_network_regions: Optional[List[str]] = None,
+ active_hours_configuration: Optional["_models.ActiveHoursConfiguration"] = None,
+ dev_box_tunnel_enable_status: Optional[Union[str, "_models.DevBoxTunnelEnableStatus"]] = None,
**kwargs: Any
) -> None:
"""
+ :keyword dev_box_definition_type: Indicates if the pool is created from an existing Dev Box
+ Definition or if one is provided directly. Known values are: "Reference" and "Value".
+ :paramtype dev_box_definition_type: str or
+ ~azure.mgmt.devcenter.models.PoolDevBoxDefinitionType
:keyword dev_box_definition_name: Name of a Dev Box definition in parent Project of this Pool.
+ Will be ignored if devBoxDefinitionType is Value.
:paramtype dev_box_definition_name: str
+ :keyword dev_box_definition: A definition of the machines that are created from this Pool. Will
+ be ignored if devBoxDefinitionType is Reference or not provided.
+ :paramtype dev_box_definition: ~azure.mgmt.devcenter.models.PoolDevBoxDefinition
:keyword network_connection_name: Name of a Network Connection in parent Project of this Pool.
:paramtype network_connection_name: str
:keyword license_type: Specifies the license type indicating the caller has already acquired
@@ -4002,6 +5490,9 @@ def __init__(
:keyword stop_on_disconnect: Stop on disconnect configuration settings for Dev Boxes created in
this pool.
:paramtype stop_on_disconnect: ~azure.mgmt.devcenter.models.StopOnDisconnectConfiguration
+ :keyword stop_on_no_connect: Stop on no connect configuration settings for Dev Boxes created in
+ this pool.
+ :paramtype stop_on_no_connect: ~azure.mgmt.devcenter.models.StopOnNoConnectConfiguration
:keyword single_sign_on_status: Indicates whether Dev Boxes in this pool are created with
single sign on enabled. The also requires that single sign on be enabled on the tenant. Known
values are: "Disabled" and "Enabled".
@@ -4014,26 +5505,45 @@ def __init__(
:keyword managed_virtual_network_regions: The regions of the managed virtual network (required
when managedNetworkType is Managed).
:paramtype managed_virtual_network_regions: list[str]
+ :keyword active_hours_configuration: Active hours configuration settings for Dev Boxes created
+ in this pool.
+ :paramtype active_hours_configuration: ~azure.mgmt.devcenter.models.ActiveHoursConfiguration
+ :keyword dev_box_tunnel_enable_status: Indicates whether Dev Box Tunnel is enabled for a the
+ pool. Known values are: "Disabled" and "Enabled".
+ :paramtype dev_box_tunnel_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevBoxTunnelEnableStatus
"""
super().__init__(**kwargs)
+ self.dev_box_definition_type = dev_box_definition_type
self.dev_box_definition_name = dev_box_definition_name
+ self.dev_box_definition = dev_box_definition
self.network_connection_name = network_connection_name
self.license_type = license_type
self.local_administrator = local_administrator
self.stop_on_disconnect = stop_on_disconnect
+ self.stop_on_no_connect = stop_on_no_connect
self.single_sign_on_status = single_sign_on_status
self.display_name = display_name
self.virtual_network_type = virtual_network_type
self.managed_virtual_network_regions = managed_virtual_network_regions
+ self.active_hours_configuration = active_hours_configuration
+ self.dev_box_tunnel_enable_status = dev_box_tunnel_enable_status
-class PoolProperties(PoolUpdateProperties): # pylint: disable=too-many-instance-attributes
+class PoolProperties(PoolUpdateProperties):
"""Properties of a Pool.
Variables are only populated by the server, and will be ignored when sending a request.
+ :ivar dev_box_definition_type: Indicates if the pool is created from an existing Dev Box
+ Definition or if one is provided directly. Known values are: "Reference" and "Value".
+ :vartype dev_box_definition_type: str or ~azure.mgmt.devcenter.models.PoolDevBoxDefinitionType
:ivar dev_box_definition_name: Name of a Dev Box definition in parent Project of this Pool.
+ Will be ignored if devBoxDefinitionType is Value.
:vartype dev_box_definition_name: str
+ :ivar dev_box_definition: A definition of the machines that are created from this Pool. Will be
+ ignored if devBoxDefinitionType is Reference or not provided.
+ :vartype dev_box_definition: ~azure.mgmt.devcenter.models.PoolDevBoxDefinition
:ivar network_connection_name: Name of a Network Connection in parent Project of this Pool.
:vartype network_connection_name: str
:ivar license_type: Specifies the license type indicating the caller has already acquired
@@ -4045,6 +5555,9 @@ class PoolProperties(PoolUpdateProperties): # pylint: disable=too-many-instance
:ivar stop_on_disconnect: Stop on disconnect configuration settings for Dev Boxes created in
this pool.
:vartype stop_on_disconnect: ~azure.mgmt.devcenter.models.StopOnDisconnectConfiguration
+ :ivar stop_on_no_connect: Stop on no connect configuration settings for Dev Boxes created in
+ this pool.
+ :vartype stop_on_no_connect: ~azure.mgmt.devcenter.models.StopOnNoConnectConfiguration
:ivar single_sign_on_status: Indicates whether Dev Boxes in this pool are created with single
sign on enabled. The also requires that single sign on be enabled on the tenant. Known values
are: "Disabled" and "Enabled".
@@ -4057,6 +5570,13 @@ class PoolProperties(PoolUpdateProperties): # pylint: disable=too-many-instance
:ivar managed_virtual_network_regions: The regions of the managed virtual network (required
when managedNetworkType is Managed).
:vartype managed_virtual_network_regions: list[str]
+ :ivar active_hours_configuration: Active hours configuration settings for Dev Boxes created in
+ this pool.
+ :vartype active_hours_configuration: ~azure.mgmt.devcenter.models.ActiveHoursConfiguration
+ :ivar dev_box_tunnel_enable_status: Indicates whether Dev Box Tunnel is enabled for a the pool.
+ Known values are: "Disabled" and "Enabled".
+ :vartype dev_box_tunnel_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevBoxTunnelEnableStatus
:ivar health_status: Overall health status of the Pool. Indicates whether or not the Pool is
available to create Dev Boxes. Known values are: "Unknown", "Pending", "Healthy", "Warning",
and "Unhealthy".
@@ -4081,15 +5601,20 @@ class PoolProperties(PoolUpdateProperties): # pylint: disable=too-many-instance
}
_attribute_map = {
+ "dev_box_definition_type": {"key": "devBoxDefinitionType", "type": "str"},
"dev_box_definition_name": {"key": "devBoxDefinitionName", "type": "str"},
+ "dev_box_definition": {"key": "devBoxDefinition", "type": "PoolDevBoxDefinition"},
"network_connection_name": {"key": "networkConnectionName", "type": "str"},
"license_type": {"key": "licenseType", "type": "str"},
"local_administrator": {"key": "localAdministrator", "type": "str"},
"stop_on_disconnect": {"key": "stopOnDisconnect", "type": "StopOnDisconnectConfiguration"},
+ "stop_on_no_connect": {"key": "stopOnNoConnect", "type": "StopOnNoConnectConfiguration"},
"single_sign_on_status": {"key": "singleSignOnStatus", "type": "str"},
"display_name": {"key": "displayName", "type": "str"},
"virtual_network_type": {"key": "virtualNetworkType", "type": "str"},
"managed_virtual_network_regions": {"key": "managedVirtualNetworkRegions", "type": "[str]"},
+ "active_hours_configuration": {"key": "activeHoursConfiguration", "type": "ActiveHoursConfiguration"},
+ "dev_box_tunnel_enable_status": {"key": "devBoxTunnelEnableStatus", "type": "str"},
"health_status": {"key": "healthStatus", "type": "str"},
"health_status_details": {"key": "healthStatusDetails", "type": "[HealthStatusDetail]"},
"dev_box_count": {"key": "devBoxCount", "type": "int"},
@@ -4099,20 +5624,33 @@ class PoolProperties(PoolUpdateProperties): # pylint: disable=too-many-instance
def __init__(
self,
*,
+ dev_box_definition_type: Optional[Union[str, "_models.PoolDevBoxDefinitionType"]] = None,
dev_box_definition_name: Optional[str] = None,
+ dev_box_definition: Optional["_models.PoolDevBoxDefinition"] = None,
network_connection_name: Optional[str] = None,
license_type: Optional[Union[str, "_models.LicenseType"]] = None,
local_administrator: Optional[Union[str, "_models.LocalAdminStatus"]] = None,
stop_on_disconnect: Optional["_models.StopOnDisconnectConfiguration"] = None,
+ stop_on_no_connect: Optional["_models.StopOnNoConnectConfiguration"] = None,
single_sign_on_status: Optional[Union[str, "_models.SingleSignOnStatus"]] = None,
display_name: Optional[str] = None,
virtual_network_type: Optional[Union[str, "_models.VirtualNetworkType"]] = None,
managed_virtual_network_regions: Optional[List[str]] = None,
+ active_hours_configuration: Optional["_models.ActiveHoursConfiguration"] = None,
+ dev_box_tunnel_enable_status: Optional[Union[str, "_models.DevBoxTunnelEnableStatus"]] = None,
**kwargs: Any
) -> None:
"""
+ :keyword dev_box_definition_type: Indicates if the pool is created from an existing Dev Box
+ Definition or if one is provided directly. Known values are: "Reference" and "Value".
+ :paramtype dev_box_definition_type: str or
+ ~azure.mgmt.devcenter.models.PoolDevBoxDefinitionType
:keyword dev_box_definition_name: Name of a Dev Box definition in parent Project of this Pool.
+ Will be ignored if devBoxDefinitionType is Value.
:paramtype dev_box_definition_name: str
+ :keyword dev_box_definition: A definition of the machines that are created from this Pool. Will
+ be ignored if devBoxDefinitionType is Reference or not provided.
+ :paramtype dev_box_definition: ~azure.mgmt.devcenter.models.PoolDevBoxDefinition
:keyword network_connection_name: Name of a Network Connection in parent Project of this Pool.
:paramtype network_connection_name: str
:keyword license_type: Specifies the license type indicating the caller has already acquired
@@ -4124,6 +5662,9 @@ def __init__(
:keyword stop_on_disconnect: Stop on disconnect configuration settings for Dev Boxes created in
this pool.
:paramtype stop_on_disconnect: ~azure.mgmt.devcenter.models.StopOnDisconnectConfiguration
+ :keyword stop_on_no_connect: Stop on no connect configuration settings for Dev Boxes created in
+ this pool.
+ :paramtype stop_on_no_connect: ~azure.mgmt.devcenter.models.StopOnNoConnectConfiguration
:keyword single_sign_on_status: Indicates whether Dev Boxes in this pool are created with
single sign on enabled. The also requires that single sign on be enabled on the tenant. Known
values are: "Disabled" and "Enabled".
@@ -4136,17 +5677,29 @@ def __init__(
:keyword managed_virtual_network_regions: The regions of the managed virtual network (required
when managedNetworkType is Managed).
:paramtype managed_virtual_network_regions: list[str]
+ :keyword active_hours_configuration: Active hours configuration settings for Dev Boxes created
+ in this pool.
+ :paramtype active_hours_configuration: ~azure.mgmt.devcenter.models.ActiveHoursConfiguration
+ :keyword dev_box_tunnel_enable_status: Indicates whether Dev Box Tunnel is enabled for a the
+ pool. Known values are: "Disabled" and "Enabled".
+ :paramtype dev_box_tunnel_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevBoxTunnelEnableStatus
"""
super().__init__(
+ dev_box_definition_type=dev_box_definition_type,
dev_box_definition_name=dev_box_definition_name,
+ dev_box_definition=dev_box_definition,
network_connection_name=network_connection_name,
license_type=license_type,
local_administrator=local_administrator,
stop_on_disconnect=stop_on_disconnect,
+ stop_on_no_connect=stop_on_no_connect,
single_sign_on_status=single_sign_on_status,
display_name=display_name,
virtual_network_type=virtual_network_type,
managed_virtual_network_regions=managed_virtual_network_regions,
+ active_hours_configuration=active_hours_configuration,
+ dev_box_tunnel_enable_status=dev_box_tunnel_enable_status,
**kwargs
)
self.health_status = None
@@ -4155,7 +5708,7 @@ def __init__(
self.provisioning_state = None
-class PoolUpdate(TrackedResourceUpdate): # pylint: disable=too-many-instance-attributes
+class PoolUpdate(TrackedResourceUpdate):
"""The pool properties for partial update. Properties not provided in the update request will not
be changed.
@@ -4163,8 +5716,15 @@ class PoolUpdate(TrackedResourceUpdate): # pylint: disable=too-many-instance-at
:vartype tags: dict[str, str]
:ivar location: The geo-location where the resource lives.
:vartype location: str
+ :ivar dev_box_definition_type: Indicates if the pool is created from an existing Dev Box
+ Definition or if one is provided directly. Known values are: "Reference" and "Value".
+ :vartype dev_box_definition_type: str or ~azure.mgmt.devcenter.models.PoolDevBoxDefinitionType
:ivar dev_box_definition_name: Name of a Dev Box definition in parent Project of this Pool.
+ Will be ignored if devBoxDefinitionType is Value.
:vartype dev_box_definition_name: str
+ :ivar dev_box_definition: A definition of the machines that are created from this Pool. Will be
+ ignored if devBoxDefinitionType is Reference or not provided.
+ :vartype dev_box_definition: ~azure.mgmt.devcenter.models.PoolDevBoxDefinition
:ivar network_connection_name: Name of a Network Connection in parent Project of this Pool.
:vartype network_connection_name: str
:ivar license_type: Specifies the license type indicating the caller has already acquired
@@ -4176,6 +5736,9 @@ class PoolUpdate(TrackedResourceUpdate): # pylint: disable=too-many-instance-at
:ivar stop_on_disconnect: Stop on disconnect configuration settings for Dev Boxes created in
this pool.
:vartype stop_on_disconnect: ~azure.mgmt.devcenter.models.StopOnDisconnectConfiguration
+ :ivar stop_on_no_connect: Stop on no connect configuration settings for Dev Boxes created in
+ this pool.
+ :vartype stop_on_no_connect: ~azure.mgmt.devcenter.models.StopOnNoConnectConfiguration
:ivar single_sign_on_status: Indicates whether Dev Boxes in this pool are created with single
sign on enabled. The also requires that single sign on be enabled on the tenant. Known values
are: "Disabled" and "Enabled".
@@ -4188,20 +5751,35 @@ class PoolUpdate(TrackedResourceUpdate): # pylint: disable=too-many-instance-at
:ivar managed_virtual_network_regions: The regions of the managed virtual network (required
when managedNetworkType is Managed).
:vartype managed_virtual_network_regions: list[str]
+ :ivar active_hours_configuration: Active hours configuration settings for Dev Boxes created in
+ this pool.
+ :vartype active_hours_configuration: ~azure.mgmt.devcenter.models.ActiveHoursConfiguration
+ :ivar dev_box_tunnel_enable_status: Indicates whether Dev Box Tunnel is enabled for a the pool.
+ Known values are: "Disabled" and "Enabled".
+ :vartype dev_box_tunnel_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevBoxTunnelEnableStatus
"""
_attribute_map = {
"tags": {"key": "tags", "type": "{str}"},
"location": {"key": "location", "type": "str"},
+ "dev_box_definition_type": {"key": "properties.devBoxDefinitionType", "type": "str"},
"dev_box_definition_name": {"key": "properties.devBoxDefinitionName", "type": "str"},
+ "dev_box_definition": {"key": "properties.devBoxDefinition", "type": "PoolDevBoxDefinition"},
"network_connection_name": {"key": "properties.networkConnectionName", "type": "str"},
"license_type": {"key": "properties.licenseType", "type": "str"},
"local_administrator": {"key": "properties.localAdministrator", "type": "str"},
"stop_on_disconnect": {"key": "properties.stopOnDisconnect", "type": "StopOnDisconnectConfiguration"},
+ "stop_on_no_connect": {"key": "properties.stopOnNoConnect", "type": "StopOnNoConnectConfiguration"},
"single_sign_on_status": {"key": "properties.singleSignOnStatus", "type": "str"},
"display_name": {"key": "properties.displayName", "type": "str"},
"virtual_network_type": {"key": "properties.virtualNetworkType", "type": "str"},
"managed_virtual_network_regions": {"key": "properties.managedVirtualNetworkRegions", "type": "[str]"},
+ "active_hours_configuration": {
+ "key": "properties.activeHoursConfiguration",
+ "type": "ActiveHoursConfiguration",
+ },
+ "dev_box_tunnel_enable_status": {"key": "properties.devBoxTunnelEnableStatus", "type": "str"},
}
def __init__(
@@ -4209,15 +5787,20 @@ def __init__(
*,
tags: Optional[Dict[str, str]] = None,
location: Optional[str] = None,
+ dev_box_definition_type: Optional[Union[str, "_models.PoolDevBoxDefinitionType"]] = None,
dev_box_definition_name: Optional[str] = None,
+ dev_box_definition: Optional["_models.PoolDevBoxDefinition"] = None,
network_connection_name: Optional[str] = None,
license_type: Optional[Union[str, "_models.LicenseType"]] = None,
local_administrator: Optional[Union[str, "_models.LocalAdminStatus"]] = None,
stop_on_disconnect: Optional["_models.StopOnDisconnectConfiguration"] = None,
+ stop_on_no_connect: Optional["_models.StopOnNoConnectConfiguration"] = None,
single_sign_on_status: Optional[Union[str, "_models.SingleSignOnStatus"]] = None,
display_name: Optional[str] = None,
virtual_network_type: Optional[Union[str, "_models.VirtualNetworkType"]] = None,
managed_virtual_network_regions: Optional[List[str]] = None,
+ active_hours_configuration: Optional["_models.ActiveHoursConfiguration"] = None,
+ dev_box_tunnel_enable_status: Optional[Union[str, "_models.DevBoxTunnelEnableStatus"]] = None,
**kwargs: Any
) -> None:
"""
@@ -4225,8 +5808,16 @@ def __init__(
:paramtype tags: dict[str, str]
:keyword location: The geo-location where the resource lives.
:paramtype location: str
+ :keyword dev_box_definition_type: Indicates if the pool is created from an existing Dev Box
+ Definition or if one is provided directly. Known values are: "Reference" and "Value".
+ :paramtype dev_box_definition_type: str or
+ ~azure.mgmt.devcenter.models.PoolDevBoxDefinitionType
:keyword dev_box_definition_name: Name of a Dev Box definition in parent Project of this Pool.
+ Will be ignored if devBoxDefinitionType is Value.
:paramtype dev_box_definition_name: str
+ :keyword dev_box_definition: A definition of the machines that are created from this Pool. Will
+ be ignored if devBoxDefinitionType is Reference or not provided.
+ :paramtype dev_box_definition: ~azure.mgmt.devcenter.models.PoolDevBoxDefinition
:keyword network_connection_name: Name of a Network Connection in parent Project of this Pool.
:paramtype network_connection_name: str
:keyword license_type: Specifies the license type indicating the caller has already acquired
@@ -4238,6 +5829,9 @@ def __init__(
:keyword stop_on_disconnect: Stop on disconnect configuration settings for Dev Boxes created in
this pool.
:paramtype stop_on_disconnect: ~azure.mgmt.devcenter.models.StopOnDisconnectConfiguration
+ :keyword stop_on_no_connect: Stop on no connect configuration settings for Dev Boxes created in
+ this pool.
+ :paramtype stop_on_no_connect: ~azure.mgmt.devcenter.models.StopOnNoConnectConfiguration
:keyword single_sign_on_status: Indicates whether Dev Boxes in this pool are created with
single sign on enabled. The also requires that single sign on be enabled on the tenant. Known
values are: "Disabled" and "Enabled".
@@ -4250,20 +5844,32 @@ def __init__(
:keyword managed_virtual_network_regions: The regions of the managed virtual network (required
when managedNetworkType is Managed).
:paramtype managed_virtual_network_regions: list[str]
+ :keyword active_hours_configuration: Active hours configuration settings for Dev Boxes created
+ in this pool.
+ :paramtype active_hours_configuration: ~azure.mgmt.devcenter.models.ActiveHoursConfiguration
+ :keyword dev_box_tunnel_enable_status: Indicates whether Dev Box Tunnel is enabled for a the
+ pool. Known values are: "Disabled" and "Enabled".
+ :paramtype dev_box_tunnel_enable_status: str or
+ ~azure.mgmt.devcenter.models.DevBoxTunnelEnableStatus
"""
super().__init__(tags=tags, location=location, **kwargs)
+ self.dev_box_definition_type = dev_box_definition_type
self.dev_box_definition_name = dev_box_definition_name
+ self.dev_box_definition = dev_box_definition
self.network_connection_name = network_connection_name
self.license_type = license_type
self.local_administrator = local_administrator
self.stop_on_disconnect = stop_on_disconnect
+ self.stop_on_no_connect = stop_on_no_connect
self.single_sign_on_status = single_sign_on_status
self.display_name = display_name
self.virtual_network_type = virtual_network_type
self.managed_virtual_network_regions = managed_virtual_network_regions
+ self.active_hours_configuration = active_hours_configuration
+ self.dev_box_tunnel_enable_status = dev_box_tunnel_enable_status
-class Project(TrackedResource): # pylint: disable=too-many-instance-attributes
+class Project(TrackedResource):
"""Represents a project resource.
Variables are only populated by the server, and will be ignored when sending a request.
@@ -4299,6 +5905,18 @@ class Project(TrackedResource): # pylint: disable=too-many-instance-attributes
:vartype display_name: str
:ivar catalog_settings: Settings to be used when associating a project with a catalog.
:vartype catalog_settings: ~azure.mgmt.devcenter.models.ProjectCatalogSettings
+ :ivar customization_settings: Settings to be used for customizations.
+ :vartype customization_settings: ~azure.mgmt.devcenter.models.ProjectCustomizationSettings
+ :ivar dev_box_auto_delete_settings: Dev Box Auto Delete settings.
+ :vartype dev_box_auto_delete_settings: ~azure.mgmt.devcenter.models.DevBoxAutoDeleteSettings
+ :ivar azure_ai_services_settings: Indicates whether Azure AI services are enabled for a
+ project.
+ :vartype azure_ai_services_settings: ~azure.mgmt.devcenter.models.AzureAiServicesSettings
+ :ivar serverless_gpu_sessions_settings: Settings to be used for serverless GPU.
+ :vartype serverless_gpu_sessions_settings:
+ ~azure.mgmt.devcenter.models.ServerlessGpuSessionsSettings
+ :ivar workspace_storage_settings: Settings to be used for workspace storage.
+ :vartype workspace_storage_settings: ~azure.mgmt.devcenter.models.WorkspaceStorageSettings
:ivar provisioning_state: The provisioning state of the resource. Known values are:
"NotSpecified", "Accepted", "Running", "Creating", "Created", "Updating", "Updated",
"Deleting", "Deleted", "Succeeded", "Failed", "Canceled", "MovingResources",
@@ -4332,6 +5950,20 @@ class Project(TrackedResource): # pylint: disable=too-many-instance-attributes
"max_dev_boxes_per_user": {"key": "properties.maxDevBoxesPerUser", "type": "int"},
"display_name": {"key": "properties.displayName", "type": "str"},
"catalog_settings": {"key": "properties.catalogSettings", "type": "ProjectCatalogSettings"},
+ "customization_settings": {"key": "properties.customizationSettings", "type": "ProjectCustomizationSettings"},
+ "dev_box_auto_delete_settings": {
+ "key": "properties.devBoxAutoDeleteSettings",
+ "type": "DevBoxAutoDeleteSettings",
+ },
+ "azure_ai_services_settings": {"key": "properties.azureAiServicesSettings", "type": "AzureAiServicesSettings"},
+ "serverless_gpu_sessions_settings": {
+ "key": "properties.serverlessGpuSessionsSettings",
+ "type": "ServerlessGpuSessionsSettings",
+ },
+ "workspace_storage_settings": {
+ "key": "properties.workspaceStorageSettings",
+ "type": "WorkspaceStorageSettings",
+ },
"provisioning_state": {"key": "properties.provisioningState", "type": "str"},
"dev_center_uri": {"key": "properties.devCenterUri", "type": "str"},
}
@@ -4347,6 +5979,11 @@ def __init__(
max_dev_boxes_per_user: Optional[int] = None,
display_name: Optional[str] = None,
catalog_settings: Optional["_models.ProjectCatalogSettings"] = None,
+ customization_settings: Optional["_models.ProjectCustomizationSettings"] = None,
+ dev_box_auto_delete_settings: Optional["_models.DevBoxAutoDeleteSettings"] = None,
+ azure_ai_services_settings: Optional["_models.AzureAiServicesSettings"] = None,
+ serverless_gpu_sessions_settings: Optional["_models.ServerlessGpuSessionsSettings"] = None,
+ workspace_storage_settings: Optional["_models.WorkspaceStorageSettings"] = None,
**kwargs: Any
) -> None:
"""
@@ -4368,41 +6005,136 @@ def __init__(
:paramtype display_name: str
:keyword catalog_settings: Settings to be used when associating a project with a catalog.
:paramtype catalog_settings: ~azure.mgmt.devcenter.models.ProjectCatalogSettings
+ :keyword customization_settings: Settings to be used for customizations.
+ :paramtype customization_settings: ~azure.mgmt.devcenter.models.ProjectCustomizationSettings
+ :keyword dev_box_auto_delete_settings: Dev Box Auto Delete settings.
+ :paramtype dev_box_auto_delete_settings: ~azure.mgmt.devcenter.models.DevBoxAutoDeleteSettings
+ :keyword azure_ai_services_settings: Indicates whether Azure AI services are enabled for a
+ project.
+ :paramtype azure_ai_services_settings: ~azure.mgmt.devcenter.models.AzureAiServicesSettings
+ :keyword serverless_gpu_sessions_settings: Settings to be used for serverless GPU.
+ :paramtype serverless_gpu_sessions_settings:
+ ~azure.mgmt.devcenter.models.ServerlessGpuSessionsSettings
+ :keyword workspace_storage_settings: Settings to be used for workspace storage.
+ :paramtype workspace_storage_settings: ~azure.mgmt.devcenter.models.WorkspaceStorageSettings
+ """
+ super().__init__(tags=tags, location=location, **kwargs)
+ self.identity = identity
+ self.dev_center_id = dev_center_id
+ self.description = description
+ self.max_dev_boxes_per_user = max_dev_boxes_per_user
+ self.display_name = display_name
+ self.catalog_settings = catalog_settings
+ self.customization_settings = customization_settings
+ self.dev_box_auto_delete_settings = dev_box_auto_delete_settings
+ self.azure_ai_services_settings = azure_ai_services_settings
+ self.serverless_gpu_sessions_settings = serverless_gpu_sessions_settings
+ self.workspace_storage_settings = workspace_storage_settings
+ self.provisioning_state = None
+ self.dev_center_uri = None
+
+
+class ProjectCatalogSettings(_serialization.Model):
+ """Settings to be used when associating a project with a catalog.
+
+ :ivar catalog_item_sync_types: Indicates catalog item types that can be synced.
+ :vartype catalog_item_sync_types: list[str or ~azure.mgmt.devcenter.models.CatalogItemType]
+ """
+
+ _attribute_map = {
+ "catalog_item_sync_types": {"key": "catalogItemSyncTypes", "type": "[str]"},
+ }
+
+ def __init__(
+ self, *, catalog_item_sync_types: Optional[List[Union[str, "_models.CatalogItemType"]]] = None, **kwargs: Any
+ ) -> None:
+ """
+ :keyword catalog_item_sync_types: Indicates catalog item types that can be synced.
+ :paramtype catalog_item_sync_types: list[str or ~azure.mgmt.devcenter.models.CatalogItemType]
+ """
+ super().__init__(**kwargs)
+ self.catalog_item_sync_types = catalog_item_sync_types
+
+
+class ProjectCustomizationManagedIdentity(_serialization.Model):
+ """A reference to a Managed Identity that is attached to the Project.
+
+ :ivar identity_type: Values can be systemAssignedIdentity or userAssignedIdentity. Known values
+ are: "systemAssignedIdentity" and "userAssignedIdentity".
+ :vartype identity_type: str or ~azure.mgmt.devcenter.models.ProjectCustomizationIdentityType
+ :ivar identity_resource_id: Ex:
+ /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/\\ :code:``/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive
+ with identityType systemAssignedIdentity.
+ :vartype identity_resource_id: str
+ """
+
+ _attribute_map = {
+ "identity_type": {"key": "identityType", "type": "str"},
+ "identity_resource_id": {"key": "identityResourceId", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ identity_type: Optional[Union[str, "_models.ProjectCustomizationIdentityType"]] = None,
+ identity_resource_id: Optional[str] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword identity_type: Values can be systemAssignedIdentity or userAssignedIdentity. Known
+ values are: "systemAssignedIdentity" and "userAssignedIdentity".
+ :paramtype identity_type: str or ~azure.mgmt.devcenter.models.ProjectCustomizationIdentityType
+ :keyword identity_resource_id: Ex:
+ /subscriptions/fa5fc227-a624-475e-b696-cdd604c735bc/resourceGroups/\\ :code:``/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myId. Mutually exclusive
+ with identityType systemAssignedIdentity.
+ :paramtype identity_resource_id: str
"""
- super().__init__(tags=tags, location=location, **kwargs)
- self.identity = identity
- self.dev_center_id = dev_center_id
- self.description = description
- self.max_dev_boxes_per_user = max_dev_boxes_per_user
- self.display_name = display_name
- self.catalog_settings = catalog_settings
- self.provisioning_state = None
- self.dev_center_uri = None
+ super().__init__(**kwargs)
+ self.identity_type = identity_type
+ self.identity_resource_id = identity_resource_id
-class ProjectCatalogSettings(_serialization.Model):
- """Settings to be used when associating a project with a catalog.
+class ProjectCustomizationSettings(_serialization.Model):
+ """Settings to be used for customizations.
- :ivar catalog_item_sync_types: Indicates catalog item types that can be synced.
- :vartype catalog_item_sync_types: list[str or ~azure.mgmt.devcenter.models.CatalogItemType]
+ :ivar identities: The identities that can to be used in customization scenarios; e.g., to clone
+ a repository.
+ :vartype identities: list[~azure.mgmt.devcenter.models.ProjectCustomizationManagedIdentity]
+ :ivar user_customizations_enable_status: Indicates whether user customizations are enabled.
+ Known values are: "Disabled" and "Enabled".
+ :vartype user_customizations_enable_status: str or
+ ~azure.mgmt.devcenter.models.UserCustomizationsEnableStatus
"""
_attribute_map = {
- "catalog_item_sync_types": {"key": "catalogItemSyncTypes", "type": "[str]"},
+ "identities": {"key": "identities", "type": "[ProjectCustomizationManagedIdentity]"},
+ "user_customizations_enable_status": {"key": "userCustomizationsEnableStatus", "type": "str"},
}
def __init__(
- self, *, catalog_item_sync_types: Optional[List[Union[str, "_models.CatalogItemType"]]] = None, **kwargs: Any
+ self,
+ *,
+ identities: Optional[List["_models.ProjectCustomizationManagedIdentity"]] = None,
+ user_customizations_enable_status: Optional[Union[str, "_models.UserCustomizationsEnableStatus"]] = None,
+ **kwargs: Any
) -> None:
"""
- :keyword catalog_item_sync_types: Indicates catalog item types that can be synced.
- :paramtype catalog_item_sync_types: list[str or ~azure.mgmt.devcenter.models.CatalogItemType]
+ :keyword identities: The identities that can to be used in customization scenarios; e.g., to
+ clone a repository.
+ :paramtype identities: list[~azure.mgmt.devcenter.models.ProjectCustomizationManagedIdentity]
+ :keyword user_customizations_enable_status: Indicates whether user customizations are enabled.
+ Known values are: "Disabled" and "Enabled".
+ :paramtype user_customizations_enable_status: str or
+ ~azure.mgmt.devcenter.models.UserCustomizationsEnableStatus
"""
super().__init__(**kwargs)
- self.catalog_item_sync_types = catalog_item_sync_types
+ self.identities = identities
+ self.user_customizations_enable_status = user_customizations_enable_status
-class ProjectEnvironmentType(Resource): # pylint: disable=too-many-instance-attributes
+class ProjectEnvironmentType(Resource):
"""Represents an environment type.
Variables are only populated by the server, and will be ignored when sending a request.
@@ -4842,6 +6574,241 @@ def __init__(self, **kwargs: Any) -> None:
self.next_link = None
+class ProjectNetworkSettings(_serialization.Model):
+ """Network settings for the project.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar microsoft_hosted_network_enable_status: Indicates whether pools in this Dev Center can
+ use Microsoft Hosted Networks. Defaults to Enabled if not set. Known values are: "Enabled" and
+ "Disabled".
+ :vartype microsoft_hosted_network_enable_status: str or
+ ~azure.mgmt.devcenter.models.MicrosoftHostedNetworkEnableStatus
+ """
+
+ _validation = {
+ "microsoft_hosted_network_enable_status": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "microsoft_hosted_network_enable_status": {"key": "microsoftHostedNetworkEnableStatus", "type": "str"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.microsoft_hosted_network_enable_status = None
+
+
+class ProjectPolicy(Resource):
+ """Represents an project policy resource.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar id: Fully qualified resource ID for the resource. E.g.
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}". # pylint: disable=line-too-long
+ :vartype id: str
+ :ivar name: The name of the resource.
+ :vartype name: str
+ :ivar type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or
+ "Microsoft.Storage/storageAccounts".
+ :vartype type: str
+ :ivar system_data: Azure Resource Manager metadata containing createdBy and modifiedBy
+ information.
+ :vartype system_data: ~azure.mgmt.devcenter.models.SystemData
+ :ivar resource_policies: Resource policies that are a part of this project policy.
+ :vartype resource_policies: list[~azure.mgmt.devcenter.models.ResourcePolicy]
+ :ivar scopes: Resources that have access to the shared resources that are a part of this
+ project policy.
+ :vartype scopes: list[str]
+ :ivar provisioning_state: The provisioning state of the resource. Known values are:
+ "NotSpecified", "Accepted", "Running", "Creating", "Created", "Updating", "Updated",
+ "Deleting", "Deleted", "Succeeded", "Failed", "Canceled", "MovingResources",
+ "TransientFailure", "RolloutInProgress", and "StorageProvisioningFailed".
+ :vartype provisioning_state: str or ~azure.mgmt.devcenter.models.ProvisioningState
+ """
+
+ _validation = {
+ "id": {"readonly": True},
+ "name": {"readonly": True},
+ "type": {"readonly": True},
+ "system_data": {"readonly": True},
+ "provisioning_state": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "id": {"key": "id", "type": "str"},
+ "name": {"key": "name", "type": "str"},
+ "type": {"key": "type", "type": "str"},
+ "system_data": {"key": "systemData", "type": "SystemData"},
+ "resource_policies": {"key": "properties.resourcePolicies", "type": "[ResourcePolicy]"},
+ "scopes": {"key": "properties.scopes", "type": "[str]"},
+ "provisioning_state": {"key": "properties.provisioningState", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ resource_policies: Optional[List["_models.ResourcePolicy"]] = None,
+ scopes: Optional[List[str]] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword resource_policies: Resource policies that are a part of this project policy.
+ :paramtype resource_policies: list[~azure.mgmt.devcenter.models.ResourcePolicy]
+ :keyword scopes: Resources that have access to the shared resources that are a part of this
+ project policy.
+ :paramtype scopes: list[str]
+ """
+ super().__init__(**kwargs)
+ self.resource_policies = resource_policies
+ self.scopes = scopes
+ self.provisioning_state = None
+
+
+class ProjectPolicyListResult(_serialization.Model):
+ """Results of the project policy list operation.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar value: Current page of results.
+ :vartype value: list[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :ivar next_link: URL to get the next set of results if there are any.
+ :vartype next_link: str
+ """
+
+ _validation = {
+ "value": {"readonly": True},
+ "next_link": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "value": {"key": "value", "type": "[ProjectPolicy]"},
+ "next_link": {"key": "nextLink", "type": "str"},
+ }
+
+ def __init__(self, **kwargs: Any) -> None:
+ """ """
+ super().__init__(**kwargs)
+ self.value = None
+ self.next_link = None
+
+
+class ProjectPolicyUpdateProperties(_serialization.Model):
+ """Properties of an project policy. These properties can be updated after the resource has been
+ created.
+
+ :ivar resource_policies: Resource policies that are a part of this project policy.
+ :vartype resource_policies: list[~azure.mgmt.devcenter.models.ResourcePolicy]
+ :ivar scopes: Resources that have access to the shared resources that are a part of this
+ project policy.
+ :vartype scopes: list[str]
+ """
+
+ _attribute_map = {
+ "resource_policies": {"key": "resourcePolicies", "type": "[ResourcePolicy]"},
+ "scopes": {"key": "scopes", "type": "[str]"},
+ }
+
+ def __init__(
+ self,
+ *,
+ resource_policies: Optional[List["_models.ResourcePolicy"]] = None,
+ scopes: Optional[List[str]] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword resource_policies: Resource policies that are a part of this project policy.
+ :paramtype resource_policies: list[~azure.mgmt.devcenter.models.ResourcePolicy]
+ :keyword scopes: Resources that have access to the shared resources that are a part of this
+ project policy.
+ :paramtype scopes: list[str]
+ """
+ super().__init__(**kwargs)
+ self.resource_policies = resource_policies
+ self.scopes = scopes
+
+
+class ProjectPolicyProperties(ProjectPolicyUpdateProperties):
+ """Properties of an project policy.
+
+ Variables are only populated by the server, and will be ignored when sending a request.
+
+ :ivar resource_policies: Resource policies that are a part of this project policy.
+ :vartype resource_policies: list[~azure.mgmt.devcenter.models.ResourcePolicy]
+ :ivar scopes: Resources that have access to the shared resources that are a part of this
+ project policy.
+ :vartype scopes: list[str]
+ :ivar provisioning_state: The provisioning state of the resource. Known values are:
+ "NotSpecified", "Accepted", "Running", "Creating", "Created", "Updating", "Updated",
+ "Deleting", "Deleted", "Succeeded", "Failed", "Canceled", "MovingResources",
+ "TransientFailure", "RolloutInProgress", and "StorageProvisioningFailed".
+ :vartype provisioning_state: str or ~azure.mgmt.devcenter.models.ProvisioningState
+ """
+
+ _validation = {
+ "provisioning_state": {"readonly": True},
+ }
+
+ _attribute_map = {
+ "resource_policies": {"key": "resourcePolicies", "type": "[ResourcePolicy]"},
+ "scopes": {"key": "scopes", "type": "[str]"},
+ "provisioning_state": {"key": "provisioningState", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ resource_policies: Optional[List["_models.ResourcePolicy"]] = None,
+ scopes: Optional[List[str]] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword resource_policies: Resource policies that are a part of this project policy.
+ :paramtype resource_policies: list[~azure.mgmt.devcenter.models.ResourcePolicy]
+ :keyword scopes: Resources that have access to the shared resources that are a part of this
+ project policy.
+ :paramtype scopes: list[str]
+ """
+ super().__init__(resource_policies=resource_policies, scopes=scopes, **kwargs)
+ self.provisioning_state = None
+
+
+class ProjectPolicyUpdate(_serialization.Model):
+ """The project policy properties for partial update. Properties not provided in the update request
+ will not be changed.
+
+ :ivar resource_policies: Resource policies that are a part of this project policy.
+ :vartype resource_policies: list[~azure.mgmt.devcenter.models.ResourcePolicy]
+ :ivar scopes: Resources that have access to the shared resources that are a part of this
+ project policy.
+ :vartype scopes: list[str]
+ """
+
+ _attribute_map = {
+ "resource_policies": {"key": "properties.resourcePolicies", "type": "[ResourcePolicy]"},
+ "scopes": {"key": "properties.scopes", "type": "[str]"},
+ }
+
+ def __init__(
+ self,
+ *,
+ resource_policies: Optional[List["_models.ResourcePolicy"]] = None,
+ scopes: Optional[List[str]] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword resource_policies: Resource policies that are a part of this project policy.
+ :paramtype resource_policies: list[~azure.mgmt.devcenter.models.ResourcePolicy]
+ :keyword scopes: Resources that have access to the shared resources that are a part of this
+ project policy.
+ :paramtype scopes: list[str]
+ """
+ super().__init__(**kwargs)
+ self.resource_policies = resource_policies
+ self.scopes = scopes
+
+
class ProjectUpdateProperties(_serialization.Model):
"""Properties of a project. These properties can be updated after the resource has been created.
@@ -4857,6 +6824,18 @@ class ProjectUpdateProperties(_serialization.Model):
:vartype display_name: str
:ivar catalog_settings: Settings to be used when associating a project with a catalog.
:vartype catalog_settings: ~azure.mgmt.devcenter.models.ProjectCatalogSettings
+ :ivar customization_settings: Settings to be used for customizations.
+ :vartype customization_settings: ~azure.mgmt.devcenter.models.ProjectCustomizationSettings
+ :ivar dev_box_auto_delete_settings: Dev Box Auto Delete settings.
+ :vartype dev_box_auto_delete_settings: ~azure.mgmt.devcenter.models.DevBoxAutoDeleteSettings
+ :ivar azure_ai_services_settings: Indicates whether Azure AI services are enabled for a
+ project.
+ :vartype azure_ai_services_settings: ~azure.mgmt.devcenter.models.AzureAiServicesSettings
+ :ivar serverless_gpu_sessions_settings: Settings to be used for serverless GPU.
+ :vartype serverless_gpu_sessions_settings:
+ ~azure.mgmt.devcenter.models.ServerlessGpuSessionsSettings
+ :ivar workspace_storage_settings: Settings to be used for workspace storage.
+ :vartype workspace_storage_settings: ~azure.mgmt.devcenter.models.WorkspaceStorageSettings
"""
_validation = {
@@ -4869,6 +6848,14 @@ class ProjectUpdateProperties(_serialization.Model):
"max_dev_boxes_per_user": {"key": "maxDevBoxesPerUser", "type": "int"},
"display_name": {"key": "displayName", "type": "str"},
"catalog_settings": {"key": "catalogSettings", "type": "ProjectCatalogSettings"},
+ "customization_settings": {"key": "customizationSettings", "type": "ProjectCustomizationSettings"},
+ "dev_box_auto_delete_settings": {"key": "devBoxAutoDeleteSettings", "type": "DevBoxAutoDeleteSettings"},
+ "azure_ai_services_settings": {"key": "azureAiServicesSettings", "type": "AzureAiServicesSettings"},
+ "serverless_gpu_sessions_settings": {
+ "key": "serverlessGpuSessionsSettings",
+ "type": "ServerlessGpuSessionsSettings",
+ },
+ "workspace_storage_settings": {"key": "workspaceStorageSettings", "type": "WorkspaceStorageSettings"},
}
def __init__(
@@ -4879,6 +6866,11 @@ def __init__(
max_dev_boxes_per_user: Optional[int] = None,
display_name: Optional[str] = None,
catalog_settings: Optional["_models.ProjectCatalogSettings"] = None,
+ customization_settings: Optional["_models.ProjectCustomizationSettings"] = None,
+ dev_box_auto_delete_settings: Optional["_models.DevBoxAutoDeleteSettings"] = None,
+ azure_ai_services_settings: Optional["_models.AzureAiServicesSettings"] = None,
+ serverless_gpu_sessions_settings: Optional["_models.ServerlessGpuSessionsSettings"] = None,
+ workspace_storage_settings: Optional["_models.WorkspaceStorageSettings"] = None,
**kwargs: Any
) -> None:
"""
@@ -4894,6 +6886,18 @@ def __init__(
:paramtype display_name: str
:keyword catalog_settings: Settings to be used when associating a project with a catalog.
:paramtype catalog_settings: ~azure.mgmt.devcenter.models.ProjectCatalogSettings
+ :keyword customization_settings: Settings to be used for customizations.
+ :paramtype customization_settings: ~azure.mgmt.devcenter.models.ProjectCustomizationSettings
+ :keyword dev_box_auto_delete_settings: Dev Box Auto Delete settings.
+ :paramtype dev_box_auto_delete_settings: ~azure.mgmt.devcenter.models.DevBoxAutoDeleteSettings
+ :keyword azure_ai_services_settings: Indicates whether Azure AI services are enabled for a
+ project.
+ :paramtype azure_ai_services_settings: ~azure.mgmt.devcenter.models.AzureAiServicesSettings
+ :keyword serverless_gpu_sessions_settings: Settings to be used for serverless GPU.
+ :paramtype serverless_gpu_sessions_settings:
+ ~azure.mgmt.devcenter.models.ServerlessGpuSessionsSettings
+ :keyword workspace_storage_settings: Settings to be used for workspace storage.
+ :paramtype workspace_storage_settings: ~azure.mgmt.devcenter.models.WorkspaceStorageSettings
"""
super().__init__(**kwargs)
self.dev_center_id = dev_center_id
@@ -4901,6 +6905,11 @@ def __init__(
self.max_dev_boxes_per_user = max_dev_boxes_per_user
self.display_name = display_name
self.catalog_settings = catalog_settings
+ self.customization_settings = customization_settings
+ self.dev_box_auto_delete_settings = dev_box_auto_delete_settings
+ self.azure_ai_services_settings = azure_ai_services_settings
+ self.serverless_gpu_sessions_settings = serverless_gpu_sessions_settings
+ self.workspace_storage_settings = workspace_storage_settings
class ProjectProperties(ProjectUpdateProperties):
@@ -4920,6 +6929,18 @@ class ProjectProperties(ProjectUpdateProperties):
:vartype display_name: str
:ivar catalog_settings: Settings to be used when associating a project with a catalog.
:vartype catalog_settings: ~azure.mgmt.devcenter.models.ProjectCatalogSettings
+ :ivar customization_settings: Settings to be used for customizations.
+ :vartype customization_settings: ~azure.mgmt.devcenter.models.ProjectCustomizationSettings
+ :ivar dev_box_auto_delete_settings: Dev Box Auto Delete settings.
+ :vartype dev_box_auto_delete_settings: ~azure.mgmt.devcenter.models.DevBoxAutoDeleteSettings
+ :ivar azure_ai_services_settings: Indicates whether Azure AI services are enabled for a
+ project.
+ :vartype azure_ai_services_settings: ~azure.mgmt.devcenter.models.AzureAiServicesSettings
+ :ivar serverless_gpu_sessions_settings: Settings to be used for serverless GPU.
+ :vartype serverless_gpu_sessions_settings:
+ ~azure.mgmt.devcenter.models.ServerlessGpuSessionsSettings
+ :ivar workspace_storage_settings: Settings to be used for workspace storage.
+ :vartype workspace_storage_settings: ~azure.mgmt.devcenter.models.WorkspaceStorageSettings
:ivar provisioning_state: The provisioning state of the resource. Known values are:
"NotSpecified", "Accepted", "Running", "Creating", "Created", "Updating", "Updated",
"Deleting", "Deleted", "Succeeded", "Failed", "Canceled", "MovingResources",
@@ -4941,6 +6962,14 @@ class ProjectProperties(ProjectUpdateProperties):
"max_dev_boxes_per_user": {"key": "maxDevBoxesPerUser", "type": "int"},
"display_name": {"key": "displayName", "type": "str"},
"catalog_settings": {"key": "catalogSettings", "type": "ProjectCatalogSettings"},
+ "customization_settings": {"key": "customizationSettings", "type": "ProjectCustomizationSettings"},
+ "dev_box_auto_delete_settings": {"key": "devBoxAutoDeleteSettings", "type": "DevBoxAutoDeleteSettings"},
+ "azure_ai_services_settings": {"key": "azureAiServicesSettings", "type": "AzureAiServicesSettings"},
+ "serverless_gpu_sessions_settings": {
+ "key": "serverlessGpuSessionsSettings",
+ "type": "ServerlessGpuSessionsSettings",
+ },
+ "workspace_storage_settings": {"key": "workspaceStorageSettings", "type": "WorkspaceStorageSettings"},
"provisioning_state": {"key": "provisioningState", "type": "str"},
"dev_center_uri": {"key": "devCenterUri", "type": "str"},
}
@@ -4953,6 +6982,11 @@ def __init__(
max_dev_boxes_per_user: Optional[int] = None,
display_name: Optional[str] = None,
catalog_settings: Optional["_models.ProjectCatalogSettings"] = None,
+ customization_settings: Optional["_models.ProjectCustomizationSettings"] = None,
+ dev_box_auto_delete_settings: Optional["_models.DevBoxAutoDeleteSettings"] = None,
+ azure_ai_services_settings: Optional["_models.AzureAiServicesSettings"] = None,
+ serverless_gpu_sessions_settings: Optional["_models.ServerlessGpuSessionsSettings"] = None,
+ workspace_storage_settings: Optional["_models.WorkspaceStorageSettings"] = None,
**kwargs: Any
) -> None:
"""
@@ -4968,6 +7002,18 @@ def __init__(
:paramtype display_name: str
:keyword catalog_settings: Settings to be used when associating a project with a catalog.
:paramtype catalog_settings: ~azure.mgmt.devcenter.models.ProjectCatalogSettings
+ :keyword customization_settings: Settings to be used for customizations.
+ :paramtype customization_settings: ~azure.mgmt.devcenter.models.ProjectCustomizationSettings
+ :keyword dev_box_auto_delete_settings: Dev Box Auto Delete settings.
+ :paramtype dev_box_auto_delete_settings: ~azure.mgmt.devcenter.models.DevBoxAutoDeleteSettings
+ :keyword azure_ai_services_settings: Indicates whether Azure AI services are enabled for a
+ project.
+ :paramtype azure_ai_services_settings: ~azure.mgmt.devcenter.models.AzureAiServicesSettings
+ :keyword serverless_gpu_sessions_settings: Settings to be used for serverless GPU.
+ :paramtype serverless_gpu_sessions_settings:
+ ~azure.mgmt.devcenter.models.ServerlessGpuSessionsSettings
+ :keyword workspace_storage_settings: Settings to be used for workspace storage.
+ :paramtype workspace_storage_settings: ~azure.mgmt.devcenter.models.WorkspaceStorageSettings
"""
super().__init__(
dev_center_id=dev_center_id,
@@ -4975,6 +7021,11 @@ def __init__(
max_dev_boxes_per_user=max_dev_boxes_per_user,
display_name=display_name,
catalog_settings=catalog_settings,
+ customization_settings=customization_settings,
+ dev_box_auto_delete_settings=dev_box_auto_delete_settings,
+ azure_ai_services_settings=azure_ai_services_settings,
+ serverless_gpu_sessions_settings=serverless_gpu_sessions_settings,
+ workspace_storage_settings=workspace_storage_settings,
**kwargs
)
self.provisioning_state = None
@@ -5003,6 +7054,18 @@ class ProjectUpdate(TrackedResourceUpdate):
:vartype display_name: str
:ivar catalog_settings: Settings to be used when associating a project with a catalog.
:vartype catalog_settings: ~azure.mgmt.devcenter.models.ProjectCatalogSettings
+ :ivar customization_settings: Settings to be used for customizations.
+ :vartype customization_settings: ~azure.mgmt.devcenter.models.ProjectCustomizationSettings
+ :ivar dev_box_auto_delete_settings: Dev Box Auto Delete settings.
+ :vartype dev_box_auto_delete_settings: ~azure.mgmt.devcenter.models.DevBoxAutoDeleteSettings
+ :ivar azure_ai_services_settings: Indicates whether Azure AI services are enabled for a
+ project.
+ :vartype azure_ai_services_settings: ~azure.mgmt.devcenter.models.AzureAiServicesSettings
+ :ivar serverless_gpu_sessions_settings: Settings to be used for serverless GPU.
+ :vartype serverless_gpu_sessions_settings:
+ ~azure.mgmt.devcenter.models.ServerlessGpuSessionsSettings
+ :ivar workspace_storage_settings: Settings to be used for workspace storage.
+ :vartype workspace_storage_settings: ~azure.mgmt.devcenter.models.WorkspaceStorageSettings
"""
_validation = {
@@ -5018,6 +7081,20 @@ class ProjectUpdate(TrackedResourceUpdate):
"max_dev_boxes_per_user": {"key": "properties.maxDevBoxesPerUser", "type": "int"},
"display_name": {"key": "properties.displayName", "type": "str"},
"catalog_settings": {"key": "properties.catalogSettings", "type": "ProjectCatalogSettings"},
+ "customization_settings": {"key": "properties.customizationSettings", "type": "ProjectCustomizationSettings"},
+ "dev_box_auto_delete_settings": {
+ "key": "properties.devBoxAutoDeleteSettings",
+ "type": "DevBoxAutoDeleteSettings",
+ },
+ "azure_ai_services_settings": {"key": "properties.azureAiServicesSettings", "type": "AzureAiServicesSettings"},
+ "serverless_gpu_sessions_settings": {
+ "key": "properties.serverlessGpuSessionsSettings",
+ "type": "ServerlessGpuSessionsSettings",
+ },
+ "workspace_storage_settings": {
+ "key": "properties.workspaceStorageSettings",
+ "type": "WorkspaceStorageSettings",
+ },
}
def __init__(
@@ -5031,6 +7108,11 @@ def __init__(
max_dev_boxes_per_user: Optional[int] = None,
display_name: Optional[str] = None,
catalog_settings: Optional["_models.ProjectCatalogSettings"] = None,
+ customization_settings: Optional["_models.ProjectCustomizationSettings"] = None,
+ dev_box_auto_delete_settings: Optional["_models.DevBoxAutoDeleteSettings"] = None,
+ azure_ai_services_settings: Optional["_models.AzureAiServicesSettings"] = None,
+ serverless_gpu_sessions_settings: Optional["_models.ServerlessGpuSessionsSettings"] = None,
+ workspace_storage_settings: Optional["_models.WorkspaceStorageSettings"] = None,
**kwargs: Any
) -> None:
"""
@@ -5052,6 +7134,18 @@ def __init__(
:paramtype display_name: str
:keyword catalog_settings: Settings to be used when associating a project with a catalog.
:paramtype catalog_settings: ~azure.mgmt.devcenter.models.ProjectCatalogSettings
+ :keyword customization_settings: Settings to be used for customizations.
+ :paramtype customization_settings: ~azure.mgmt.devcenter.models.ProjectCustomizationSettings
+ :keyword dev_box_auto_delete_settings: Dev Box Auto Delete settings.
+ :paramtype dev_box_auto_delete_settings: ~azure.mgmt.devcenter.models.DevBoxAutoDeleteSettings
+ :keyword azure_ai_services_settings: Indicates whether Azure AI services are enabled for a
+ project.
+ :paramtype azure_ai_services_settings: ~azure.mgmt.devcenter.models.AzureAiServicesSettings
+ :keyword serverless_gpu_sessions_settings: Settings to be used for serverless GPU.
+ :paramtype serverless_gpu_sessions_settings:
+ ~azure.mgmt.devcenter.models.ServerlessGpuSessionsSettings
+ :keyword workspace_storage_settings: Settings to be used for workspace storage.
+ :paramtype workspace_storage_settings: ~azure.mgmt.devcenter.models.WorkspaceStorageSettings
"""
super().__init__(tags=tags, location=location, **kwargs)
self.identity = identity
@@ -5060,6 +7154,11 @@ def __init__(
self.max_dev_boxes_per_user = max_dev_boxes_per_user
self.display_name = display_name
self.catalog_settings = catalog_settings
+ self.customization_settings = customization_settings
+ self.dev_box_auto_delete_settings = dev_box_auto_delete_settings
+ self.azure_ai_services_settings = azure_ai_services_settings
+ self.serverless_gpu_sessions_settings = serverless_gpu_sessions_settings
+ self.workspace_storage_settings = workspace_storage_settings
class RecommendedMachineConfiguration(_serialization.Model):
@@ -5090,6 +7189,58 @@ def __init__(self, **kwargs: Any) -> None:
self.v_cp_us = None
+class ResourcePolicy(_serialization.Model):
+ """A resource policy.
+
+ :ivar resources: Resources that are included and shared as a part of a project policy.
+ :vartype resources: str
+ :ivar filter: Optional. When specified, this expression is used to filter the resources.
+ :vartype filter: str
+ :ivar action: Policy action to be taken on the resources. This is optional, and defaults to
+ allow. Known values are: "Allow" and "Deny".
+ :vartype action: str or ~azure.mgmt.devcenter.models.PolicyAction
+ :ivar resource_type: Optional. The resource type being restricted or allowed by a project
+ policy. Used with a given action to restrict or allow access to a resource type. Known values
+ are: "Images", "AttachedNetworks", and "Skus".
+ :vartype resource_type: str or ~azure.mgmt.devcenter.models.DevCenterResourceType
+ """
+
+ _attribute_map = {
+ "resources": {"key": "resources", "type": "str"},
+ "filter": {"key": "filter", "type": "str"},
+ "action": {"key": "action", "type": "str"},
+ "resource_type": {"key": "resourceType", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ resources: Optional[str] = None,
+ filter: Optional[str] = None, # pylint: disable=redefined-builtin
+ action: Optional[Union[str, "_models.PolicyAction"]] = None,
+ resource_type: Optional[Union[str, "_models.DevCenterResourceType"]] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword resources: Resources that are included and shared as a part of a project policy.
+ :paramtype resources: str
+ :keyword filter: Optional. When specified, this expression is used to filter the resources.
+ :paramtype filter: str
+ :keyword action: Policy action to be taken on the resources. This is optional, and defaults to
+ allow. Known values are: "Allow" and "Deny".
+ :paramtype action: str or ~azure.mgmt.devcenter.models.PolicyAction
+ :keyword resource_type: Optional. The resource type being restricted or allowed by a project
+ policy. Used with a given action to restrict or allow access to a resource type. Known values
+ are: "Images", "AttachedNetworks", and "Skus".
+ :paramtype resource_type: str or ~azure.mgmt.devcenter.models.DevCenterResourceType
+ """
+ super().__init__(**kwargs)
+ self.resources = resources
+ self.filter = filter
+ self.action = action
+ self.resource_type = resource_type
+
+
class ResourceRange(_serialization.Model):
"""Properties for a range of values.
@@ -5118,7 +7269,7 @@ def __init__(self, **kwargs: Any) -> None:
self.max = None
-class Schedule(Resource): # pylint: disable=too-many-instance-attributes
+class Schedule(Resource):
"""Represents a Schedule to execute a task.
Variables are only populated by the server, and will be ignored when sending a request.
@@ -5468,6 +7619,48 @@ def __init__(
self.state = state
+class ServerlessGpuSessionsSettings(_serialization.Model):
+ """Represents settings for serverless GPU access.
+
+ :ivar serverless_gpu_sessions_enable_status: The property indicates whether serverless GPU
+ access is enabled on the project. Known values are: "Disabled" and "Enabled".
+ :vartype serverless_gpu_sessions_enable_status: str or
+ ~azure.mgmt.devcenter.models.ServerlessGpuSessionsEnableStatus
+ :ivar max_concurrent_sessions_per_project: When specified, limits the maximum number of
+ concurrent sessions across all pools in the project.
+ :vartype max_concurrent_sessions_per_project: int
+ """
+
+ _validation = {
+ "max_concurrent_sessions_per_project": {"minimum": 1},
+ }
+
+ _attribute_map = {
+ "serverless_gpu_sessions_enable_status": {"key": "serverlessGpuSessionsEnableStatus", "type": "str"},
+ "max_concurrent_sessions_per_project": {"key": "maxConcurrentSessionsPerProject", "type": "int"},
+ }
+
+ def __init__(
+ self,
+ *,
+ serverless_gpu_sessions_enable_status: Optional[Union[str, "_models.ServerlessGpuSessionsEnableStatus"]] = None,
+ max_concurrent_sessions_per_project: Optional[int] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword serverless_gpu_sessions_enable_status: The property indicates whether serverless GPU
+ access is enabled on the project. Known values are: "Disabled" and "Enabled".
+ :paramtype serverless_gpu_sessions_enable_status: str or
+ ~azure.mgmt.devcenter.models.ServerlessGpuSessionsEnableStatus
+ :keyword max_concurrent_sessions_per_project: When specified, limits the maximum number of
+ concurrent sessions across all pools in the project.
+ :paramtype max_concurrent_sessions_per_project: int
+ """
+ super().__init__(**kwargs)
+ self.serverless_gpu_sessions_enable_status = serverless_gpu_sessions_enable_status
+ self.max_concurrent_sessions_per_project = max_concurrent_sessions_per_project
+
+
class SkuListResult(_serialization.Model):
"""Results of the Microsoft.DevCenter SKU list operation.
@@ -5532,6 +7725,42 @@ def __init__(
self.grace_period_minutes = grace_period_minutes
+class StopOnNoConnectConfiguration(_serialization.Model):
+ """Stop on no connect configuration settings for Dev Boxes created in this pool.
+
+ :ivar status: Enables the feature to stop a started Dev Box when it has not been connected to,
+ once the grace period has lapsed. Known values are: "Enabled" and "Disabled".
+ :vartype status: str or ~azure.mgmt.devcenter.models.StopOnNoConnectEnableStatus
+ :ivar grace_period_minutes: The specified time in minutes to wait before stopping a Dev Box if
+ no connection is made.
+ :vartype grace_period_minutes: int
+ """
+
+ _attribute_map = {
+ "status": {"key": "status", "type": "str"},
+ "grace_period_minutes": {"key": "gracePeriodMinutes", "type": "int"},
+ }
+
+ def __init__(
+ self,
+ *,
+ status: Optional[Union[str, "_models.StopOnNoConnectEnableStatus"]] = None,
+ grace_period_minutes: Optional[int] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword status: Enables the feature to stop a started Dev Box when it has not been connected
+ to, once the grace period has lapsed. Known values are: "Enabled" and "Disabled".
+ :paramtype status: str or ~azure.mgmt.devcenter.models.StopOnNoConnectEnableStatus
+ :keyword grace_period_minutes: The specified time in minutes to wait before stopping a Dev Box
+ if no connection is made.
+ :paramtype grace_period_minutes: int
+ """
+ super().__init__(**kwargs)
+ self.status = status
+ self.grace_period_minutes = grace_period_minutes
+
+
class SyncErrorDetails(_serialization.Model):
"""Synchronization error details.
@@ -5813,3 +8042,32 @@ def __init__(self, *, roles: Optional[Dict[str, "_models.EnvironmentRole"]] = No
"""
super().__init__(**kwargs)
self.roles = roles
+
+
+class WorkspaceStorageSettings(_serialization.Model):
+ """Settings to be used for workspace storage.
+
+ :ivar workspace_storage_enable_status: Indicates whether workspace storage is enabled. Known
+ values are: "Disabled" and "Enabled".
+ :vartype workspace_storage_enable_status: str or
+ ~azure.mgmt.devcenter.models.WorkspaceStorageEnableStatus
+ """
+
+ _attribute_map = {
+ "workspace_storage_enable_status": {"key": "workspaceStorageEnableStatus", "type": "str"},
+ }
+
+ def __init__(
+ self,
+ *,
+ workspace_storage_enable_status: Optional[Union[str, "_models.WorkspaceStorageEnableStatus"]] = None,
+ **kwargs: Any
+ ) -> None:
+ """
+ :keyword workspace_storage_enable_status: Indicates whether workspace storage is enabled. Known
+ values are: "Disabled" and "Enabled".
+ :paramtype workspace_storage_enable_status: str or
+ ~azure.mgmt.devcenter.models.WorkspaceStorageEnableStatus
+ """
+ super().__init__(**kwargs)
+ self.workspace_storage_enable_status = workspace_storage_enable_status
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/__init__.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/__init__.py
index b18819a0175d..b705b62461ac 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/__init__.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/__init__.py
@@ -5,37 +5,54 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+# pylint: disable=wrong-import-position
-from ._dev_centers_operations import DevCentersOperations
-from ._projects_operations import ProjectsOperations
-from ._attached_networks_operations import AttachedNetworksOperations
-from ._project_catalogs_operations import ProjectCatalogsOperations
-from ._environment_definitions_operations import EnvironmentDefinitionsOperations
-from ._project_catalog_environment_definitions_operations import ProjectCatalogEnvironmentDefinitionsOperations
-from ._galleries_operations import GalleriesOperations
-from ._images_operations import ImagesOperations
-from ._image_versions_operations import ImageVersionsOperations
-from ._catalogs_operations import CatalogsOperations
-from ._environment_types_operations import EnvironmentTypesOperations
-from ._project_allowed_environment_types_operations import ProjectAllowedEnvironmentTypesOperations
-from ._project_environment_types_operations import ProjectEnvironmentTypesOperations
-from ._dev_box_definitions_operations import DevBoxDefinitionsOperations
-from ._operations import Operations
-from ._operation_statuses_operations import OperationStatusesOperations
-from ._usages_operations import UsagesOperations
-from ._check_name_availability_operations import CheckNameAvailabilityOperations
-from ._check_scoped_name_availability_operations import CheckScopedNameAvailabilityOperations
-from ._skus_operations import SkusOperations
-from ._pools_operations import PoolsOperations
-from ._schedules_operations import SchedulesOperations
-from ._network_connections_operations import NetworkConnectionsOperations
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from ._patch import * # pylint: disable=unused-wildcard-import
+
+from ._dev_centers_operations import DevCentersOperations # type: ignore
+from ._encryption_sets_operations import EncryptionSetsOperations # type: ignore
+from ._project_policies_operations import ProjectPoliciesOperations # type: ignore
+from ._projects_operations import ProjectsOperations # type: ignore
+from ._attached_networks_operations import AttachedNetworksOperations # type: ignore
+from ._project_catalogs_operations import ProjectCatalogsOperations # type: ignore
+from ._environment_definitions_operations import EnvironmentDefinitionsOperations # type: ignore
+from ._project_catalog_environment_definitions_operations import ProjectCatalogEnvironmentDefinitionsOperations # type: ignore
+from ._galleries_operations import GalleriesOperations # type: ignore
+from ._images_operations import ImagesOperations # type: ignore
+from ._image_versions_operations import ImageVersionsOperations # type: ignore
+from ._skus_operations import SkusOperations # type: ignore
+from ._catalogs_operations import CatalogsOperations # type: ignore
+from ._environment_types_operations import EnvironmentTypesOperations # type: ignore
+from ._project_allowed_environment_types_operations import ProjectAllowedEnvironmentTypesOperations # type: ignore
+from ._project_environment_types_operations import ProjectEnvironmentTypesOperations # type: ignore
+from ._dev_box_definitions_operations import DevBoxDefinitionsOperations # type: ignore
+from ._operations import Operations # type: ignore
+from ._operation_statuses_operations import OperationStatusesOperations # type: ignore
+from ._usages_operations import UsagesOperations # type: ignore
+from ._check_name_availability_operations import CheckNameAvailabilityOperations # type: ignore
+from ._check_scoped_name_availability_operations import CheckScopedNameAvailabilityOperations # type: ignore
+from ._customization_tasks_operations import CustomizationTasksOperations # type: ignore
+from ._dev_center_catalog_image_definitions_operations import DevCenterCatalogImageDefinitionsOperations # type: ignore
+from ._dev_center_catalog_image_definition_builds_operations import DevCenterCatalogImageDefinitionBuildsOperations # type: ignore
+from ._dev_center_catalog_image_definition_build_operations import DevCenterCatalogImageDefinitionBuildOperations # type: ignore
+from ._project_catalog_image_definitions_operations import ProjectCatalogImageDefinitionsOperations # type: ignore
+from ._project_catalog_image_definition_builds_operations import ProjectCatalogImageDefinitionBuildsOperations # type: ignore
+from ._project_catalog_image_definition_build_operations import ProjectCatalogImageDefinitionBuildOperations # type: ignore
+from ._pools_operations import PoolsOperations # type: ignore
+from ._schedules_operations import SchedulesOperations # type: ignore
+from ._network_connections_operations import NetworkConnectionsOperations # type: ignore
from ._patch import __all__ as _patch_all
-from ._patch import * # pylint: disable=unused-wildcard-import
+from ._patch import *
from ._patch import patch_sdk as _patch_sdk
__all__ = [
"DevCentersOperations",
+ "EncryptionSetsOperations",
+ "ProjectPoliciesOperations",
"ProjectsOperations",
"AttachedNetworksOperations",
"ProjectCatalogsOperations",
@@ -44,6 +61,7 @@
"GalleriesOperations",
"ImagesOperations",
"ImageVersionsOperations",
+ "SkusOperations",
"CatalogsOperations",
"EnvironmentTypesOperations",
"ProjectAllowedEnvironmentTypesOperations",
@@ -54,10 +72,16 @@
"UsagesOperations",
"CheckNameAvailabilityOperations",
"CheckScopedNameAvailabilityOperations",
- "SkusOperations",
+ "CustomizationTasksOperations",
+ "DevCenterCatalogImageDefinitionsOperations",
+ "DevCenterCatalogImageDefinitionBuildsOperations",
+ "DevCenterCatalogImageDefinitionBuildOperations",
+ "ProjectCatalogImageDefinitionsOperations",
+ "ProjectCatalogImageDefinitionBuildsOperations",
+ "ProjectCatalogImageDefinitionBuildOperations",
"PoolsOperations",
"SchedulesOperations",
"NetworkConnectionsOperations",
]
-__all__.extend([p for p in _patch_all if p not in __all__])
+__all__.extend([p for p in _patch_all if p not in __all__]) # pyright: ignore
_patch_sdk()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_attached_networks_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_attached_networks_operations.py
index 5b98e31dbf71..19b32c190d37 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_attached_networks_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_attached_networks_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +6,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.exceptions import (
@@ -16,13 +16,14 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
from azure.core.polling import LROPoller, NoPolling, PollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
@@ -30,8 +31,11 @@
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -45,7 +49,7 @@ def build_list_by_project_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -91,7 +95,7 @@ def build_get_by_project_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -139,7 +143,7 @@ def build_list_by_dev_center_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -185,7 +189,7 @@ def build_get_by_dev_center_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -237,7 +241,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -292,7 +296,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -378,7 +382,7 @@ def list_by_project(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.AttachedNetworkListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -398,7 +402,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -414,7 +417,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -461,7 +463,7 @@ def get_by_project(
:rtype: ~azure.mgmt.devcenter.models.AttachedNetworkConnection
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -484,7 +486,6 @@ def get_by_project(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -499,7 +500,7 @@ def get_by_project(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response)
+ deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -531,7 +532,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.AttachedNetworkListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -551,7 +552,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -567,7 +567,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -614,7 +613,7 @@ def get_by_dev_center(
:rtype: ~azure.mgmt.devcenter.models.AttachedNetworkConnection
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -637,7 +636,6 @@ def get_by_dev_center(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -652,7 +650,7 @@ def get_by_dev_center(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response)
+ deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -666,8 +664,8 @@ def _create_or_update_initial(
attached_network_connection_name: str,
body: Union[_models.AttachedNetworkConnection, IO[bytes]],
**kwargs: Any
- ) -> _models.AttachedNetworkConnection:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -680,7 +678,7 @@ def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.AttachedNetworkConnection] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -702,10 +700,10 @@ def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -713,15 +711,15 @@ def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -838,10 +836,11 @@ def begin_create_or_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response)
+ deserialized = self._deserialize("AttachedNetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -865,10 +864,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial( # pylint: disable=inconsistent-return-statements
+ def _delete_initial(
self, resource_group_name: str, dev_center_name: str, attached_network_connection_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -880,7 +879,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -891,10 +890,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -902,6 +901,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -910,8 +913,12 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_delete(
@@ -939,7 +946,7 @@ def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial( # type: ignore
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
attached_network_connection_name=attached_network_connection_name,
@@ -949,6 +956,7 @@ def begin_delete(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_catalogs_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_catalogs_operations.py
index 04df02f8b924..dc2b4b15320a 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_catalogs_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_catalogs_operations.py
@@ -1,4 +1,4 @@
-# pylint: disable=too-many-lines,too-many-statements
+# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +7,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.exceptions import (
@@ -16,13 +17,14 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
from azure.core.polling import LROPoller, NoPolling, PollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
@@ -30,8 +32,11 @@
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -45,7 +50,7 @@ def build_list_by_dev_center_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -87,7 +92,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -135,7 +140,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -186,7 +191,7 @@ def build_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -237,7 +242,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -285,7 +290,7 @@ def build_get_sync_error_details_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -333,7 +338,7 @@ def build_sync_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -381,7 +386,7 @@ def build_connect_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -466,7 +471,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.CatalogListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -486,7 +491,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -502,7 +506,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -547,7 +550,7 @@ def get(self, resource_group_name: str, dev_center_name: str, catalog_name: str,
:rtype: ~azure.mgmt.devcenter.models.Catalog
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -570,7 +573,6 @@ def get(self, resource_group_name: str, dev_center_name: str, catalog_name: str,
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -585,7 +587,7 @@ def get(self, resource_group_name: str, dev_center_name: str, catalog_name: str,
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -599,8 +601,8 @@ def _create_or_update_initial(
catalog_name: str,
body: Union[_models.Catalog, IO[bytes]],
**kwargs: Any
- ) -> _models.Catalog:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -613,7 +615,7 @@ def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Catalog] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -635,10 +637,10 @@ def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -646,15 +648,15 @@ def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Catalog", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -767,10 +769,11 @@ def begin_create_or_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -801,8 +804,8 @@ def _update_initial(
catalog_name: str,
body: Union[_models.CatalogUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.Catalog]:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -815,7 +818,7 @@ def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.Catalog]] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -837,10 +840,10 @@ def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -848,18 +851,20 @@ def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("Catalog", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -972,10 +977,11 @@ def begin_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -999,10 +1005,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial( # pylint: disable=inconsistent-return-statements
+ def _delete_initial(
self, resource_group_name: str, dev_center_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1014,7 +1020,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -1025,10 +1031,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -1036,6 +1042,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -1044,8 +1054,12 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_delete(
@@ -1073,7 +1087,7 @@ def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial( # type: ignore
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
catalog_name=catalog_name,
@@ -1083,6 +1097,7 @@ def begin_delete(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -1123,7 +1138,7 @@ def get_sync_error_details(
:rtype: ~azure.mgmt.devcenter.models.SyncErrorDetails
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1146,7 +1161,6 @@ def get_sync_error_details(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -1161,17 +1175,17 @@ def get_sync_error_details(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("SyncErrorDetails", pipeline_response)
+ deserialized = self._deserialize("SyncErrorDetails", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
- def _sync_initial( # pylint: disable=inconsistent-return-statements
+ def _sync_initial(
self, resource_group_name: str, dev_center_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1183,7 +1197,7 @@ def _sync_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_sync_request(
resource_group_name=resource_group_name,
@@ -1194,10 +1208,10 @@ def _sync_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -1205,6 +1219,10 @@ def _sync_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -1212,8 +1230,12 @@ def _sync_initial( # pylint: disable=inconsistent-return-statements
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_sync(
@@ -1241,7 +1263,7 @@ def begin_sync(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._sync_initial( # type: ignore
+ raw_result = self._sync_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
catalog_name=catalog_name,
@@ -1251,6 +1273,7 @@ def begin_sync(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -1274,10 +1297,10 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- def _connect_initial( # pylint: disable=inconsistent-return-statements
+ def _connect_initial(
self, resource_group_name: str, dev_center_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1289,7 +1312,7 @@ def _connect_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_connect_request(
resource_group_name=resource_group_name,
@@ -1300,10 +1323,10 @@ def _connect_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -1311,6 +1334,10 @@ def _connect_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -1318,8 +1345,12 @@ def _connect_initial( # pylint: disable=inconsistent-return-statements
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_connect(
@@ -1347,7 +1378,7 @@ def begin_connect(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._connect_initial( # type: ignore
+ raw_result = self._connect_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
catalog_name=catalog_name,
@@ -1357,6 +1388,7 @@ def begin_connect(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_check_name_availability_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_check_name_availability_operations.py
index 11181c73d406..4f62f013dfc6 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_check_name_availability_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_check_name_availability_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,6 +6,7 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
+import sys
from typing import Any, Callable, Dict, IO, Optional, TypeVar, Union, overload
from azure.core.exceptions import (
@@ -18,16 +18,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -39,7 +41,7 @@ def build_execute_request(subscription_id: str, **kwargs: Any) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -135,7 +137,7 @@ def execute(
:rtype: ~azure.mgmt.devcenter.models.CheckNameAvailabilityResponse
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -167,7 +169,6 @@ def execute(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -182,7 +183,7 @@ def execute(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("CheckNameAvailabilityResponse", pipeline_response)
+ deserialized = self._deserialize("CheckNameAvailabilityResponse", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_check_scoped_name_availability_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_check_scoped_name_availability_operations.py
index 30dc50721603..d0740a4b8e34 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_check_scoped_name_availability_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_check_scoped_name_availability_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,6 +6,7 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
+import sys
from typing import Any, Callable, Dict, IO, Optional, TypeVar, Union, overload
from azure.core.exceptions import (
@@ -18,16 +18,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -39,7 +41,7 @@ def build_execute_request(subscription_id: str, **kwargs: Any) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -136,7 +138,7 @@ def execute(
:rtype: ~azure.mgmt.devcenter.models.CheckNameAvailabilityResponse
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -168,7 +170,6 @@ def execute(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -183,7 +184,7 @@ def execute(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("CheckNameAvailabilityResponse", pipeline_response)
+ deserialized = self._deserialize("CheckNameAvailabilityResponse", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_customization_tasks_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_customization_tasks_operations.py
new file mode 100644
index 000000000000..f43cad2dae9d
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_customization_tasks_operations.py
@@ -0,0 +1,450 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, Callable, Dict, Iterable, Optional, TypeVar
+import urllib.parse
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ map_error,
+)
+from azure.core.paging import ItemPaged
+from azure.core.pipeline import PipelineResponse
+from azure.core.rest import HttpRequest, HttpResponse
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+
+from .. import models as _models
+from .._serialization import Serializer
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
+
+_SERIALIZER = Serializer()
+_SERIALIZER.client_side_validation = False
+
+
+def build_list_by_catalog_request(
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ subscription_id: str,
+ *,
+ top: Optional[int] = None,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/tasks",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+ if top is not None:
+ _params["$top"] = _SERIALIZER.query("top", top, "int")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_request(
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ task_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/tasks/{taskName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "taskName": _SERIALIZER.url(
+ "task_name", task_name, "str", max_length=63, min_length=3, pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_error_details_request(
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ task_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/tasks/{taskName}/getErrorDetails",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "taskName": _SERIALIZER.url(
+ "task_name", task_name, "str", max_length=63, min_length=3, pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+class CustomizationTasksOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.DevCenterMgmtClient`'s
+ :attr:`customization_tasks` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs):
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_catalog(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ top: Optional[int] = None,
+ **kwargs: Any
+ ) -> Iterable["_models.CustomizationTask"]:
+ """List Tasks in the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param top: The maximum number of resources to return from the operation. Example: '$top=10'.
+ Default value is None.
+ :type top: int
+ :return: An iterator like instance of either CustomizationTask or the result of cls(response)
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.devcenter.models.CustomizationTask]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.CustomizationTaskListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_catalog_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ subscription_id=self._config.subscription_id,
+ top=top,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = self._deserialize("CustomizationTaskListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ def get(
+ self, resource_group_name: str, dev_center_name: str, catalog_name: str, task_name: str, **kwargs: Any
+ ) -> _models.CustomizationTask:
+ """Gets a Task from the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param task_name: The name of the Task. Required.
+ :type task_name: str
+ :return: CustomizationTask or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.CustomizationTask
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.CustomizationTask] = kwargs.pop("cls", None)
+
+ _request = build_get_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ task_name=task_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("CustomizationTask", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def get_error_details(
+ self, resource_group_name: str, dev_center_name: str, catalog_name: str, task_name: str, **kwargs: Any
+ ) -> _models.CatalogResourceValidationErrorDetails:
+ """Gets Customization Task error details.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param task_name: The name of the Task. Required.
+ :type task_name: str
+ :return: CatalogResourceValidationErrorDetails or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.CatalogResourceValidationErrorDetails
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.CatalogResourceValidationErrorDetails] = kwargs.pop("cls", None)
+
+ _request = build_get_error_details_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ task_name=task_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_box_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_box_definitions_operations.py
index 4f2e72ceb1d6..d340ee5196b7 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_box_definitions_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_box_definitions_operations.py
@@ -1,4 +1,4 @@
-# pylint: disable=too-many-lines,too-many-statements
+# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +7,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.exceptions import (
@@ -16,13 +17,14 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
from azure.core.polling import LROPoller, NoPolling, PollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
@@ -30,8 +32,11 @@
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -45,7 +50,7 @@ def build_list_by_dev_center_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -87,7 +92,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -135,7 +140,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -186,7 +191,7 @@ def build_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -237,7 +242,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -285,7 +290,7 @@ def build_list_by_project_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -327,7 +332,7 @@ def build_get_by_project_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -412,7 +417,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.DevBoxDefinitionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -432,7 +437,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -448,7 +452,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -495,7 +498,7 @@ def get(
:rtype: ~azure.mgmt.devcenter.models.DevBoxDefinition
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -518,7 +521,6 @@ def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -533,7 +535,7 @@ def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
+ deserialized = self._deserialize("DevBoxDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -547,8 +549,8 @@ def _create_or_update_initial(
dev_box_definition_name: str,
body: Union[_models.DevBoxDefinition, IO[bytes]],
**kwargs: Any
- ) -> _models.DevBoxDefinition:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -561,7 +563,7 @@ def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.DevBoxDefinition] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -583,10 +585,10 @@ def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -594,15 +596,15 @@ def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -719,10 +721,11 @@ def begin_create_or_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
+ deserialized = self._deserialize("DevBoxDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -753,8 +756,8 @@ def _update_initial(
dev_box_definition_name: str,
body: Union[_models.DevBoxDefinitionUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.DevBoxDefinition]:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -767,7 +770,7 @@ def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.DevBoxDefinition]] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -789,10 +792,10 @@ def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -800,18 +803,20 @@ def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -927,10 +932,11 @@ def begin_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
+ deserialized = self._deserialize("DevBoxDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -954,10 +960,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial( # pylint: disable=inconsistent-return-statements
+ def _delete_initial(
self, resource_group_name: str, dev_center_name: str, dev_box_definition_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -969,7 +975,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -980,10 +986,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -991,6 +997,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -999,8 +1009,12 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_delete(
@@ -1028,7 +1042,7 @@ def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial( # type: ignore
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
dev_box_definition_name=dev_box_definition_name,
@@ -1038,6 +1052,7 @@ def begin_delete(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -1085,7 +1100,7 @@ def list_by_project(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.DevBoxDefinitionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1105,7 +1120,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -1121,7 +1135,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -1168,7 +1181,7 @@ def get_by_project(
:rtype: ~azure.mgmt.devcenter.models.DevBoxDefinition
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1191,7 +1204,6 @@ def get_by_project(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -1206,7 +1218,7 @@ def get_by_project(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("DevBoxDefinition", pipeline_response)
+ deserialized = self._deserialize("DevBoxDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_center_catalog_image_definition_build_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_center_catalog_image_definition_build_operations.py
new file mode 100644
index 000000000000..1dbbf0bb2dde
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_center_catalog_image_definition_build_operations.py
@@ -0,0 +1,539 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, Callable, Dict, Iterator, Optional, TypeVar, Union, cast
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import LROPoller, NoPolling, PollingMethod
+from azure.core.rest import HttpRequest, HttpResponse
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.arm_polling import ARMPolling
+
+from .. import models as _models
+from .._serialization import Serializer
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
+
+_SERIALIZER = Serializer()
+_SERIALIZER.client_side_validation = False
+
+
+def build_get_request(
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/builds/{buildName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "buildName": _SERIALIZER.url(
+ "build_name", build_name, "str", max_length=63, min_length=3, pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_cancel_request(
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/builds/{buildName}/cancel",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "buildName": _SERIALIZER.url(
+ "build_name", build_name, "str", max_length=63, min_length=3, pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_build_details_request(
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/builds/{buildName}/getBuildDetails",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "buildName": _SERIALIZER.url(
+ "build_name", build_name, "str", max_length=63, min_length=3, pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+class DevCenterCatalogImageDefinitionBuildOperations: # pylint: disable=name-too-long
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.DevCenterMgmtClient`'s
+ :attr:`dev_center_catalog_image_definition_build` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs):
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> _models.ImageDefinitionBuild:
+ """Gets a build for a specified image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: ImageDefinitionBuild or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinitionBuild
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuild] = kwargs.pop("cls", None)
+
+ _request = build_get_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinitionBuild", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _cancel_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_cancel_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_cancel(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Cancels the specified build for an image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: An instance of LROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._cancel_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ def get_build_details(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> _models.ImageDefinitionBuildDetails:
+ """Gets Build details.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: ImageDefinitionBuildDetails or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinitionBuildDetails
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuildDetails] = kwargs.pop("cls", None)
+
+ _request = build_get_build_details_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinitionBuildDetails", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_center_catalog_image_definition_builds_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_center_catalog_image_definition_builds_operations.py
new file mode 100644
index 000000000000..fd83c608b0b2
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_center_catalog_image_definition_builds_operations.py
@@ -0,0 +1,215 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, Callable, Dict, Iterable, Optional, TypeVar
+import urllib.parse
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ map_error,
+)
+from azure.core.paging import ItemPaged
+from azure.core.pipeline import PipelineResponse
+from azure.core.rest import HttpRequest, HttpResponse
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+
+from .. import models as _models
+from .._serialization import Serializer
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
+
+_SERIALIZER = Serializer()
+_SERIALIZER.client_side_validation = False
+
+
+def build_list_by_image_definition_request(
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/builds",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+class DevCenterCatalogImageDefinitionBuildsOperations: # pylint: disable=name-too-long
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.DevCenterMgmtClient`'s
+ :attr:`dev_center_catalog_image_definition_builds` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs):
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_image_definition(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ **kwargs: Any
+ ) -> Iterable["_models.ImageDefinitionBuild"]:
+ """Lists builds for a specified image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: An iterator like instance of either ImageDefinitionBuild or the result of
+ cls(response)
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.devcenter.models.ImageDefinitionBuild]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuildListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_image_definition_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageDefinitionBuildListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_center_catalog_image_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_center_catalog_image_definitions_operations.py
new file mode 100644
index 000000000000..621c1d7b7725
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_center_catalog_image_definitions_operations.py
@@ -0,0 +1,667 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, Callable, Dict, Iterable, Iterator, Optional, TypeVar, Union, cast
+import urllib.parse
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.paging import ItemPaged
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import LROPoller, NoPolling, PollingMethod
+from azure.core.rest import HttpRequest, HttpResponse
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.arm_polling import ARMPolling
+
+from .. import models as _models
+from .._serialization import Serializer
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
+
+_SERIALIZER = Serializer()
+_SERIALIZER.client_side_validation = False
+
+
+def build_list_by_dev_center_catalog_request(
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ subscription_id: str,
+ *,
+ top: Optional[int] = None,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/imageDefinitions",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+ if top is not None:
+ _params["$top"] = _SERIALIZER.query("top", top, "int")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_by_dev_center_catalog_request(
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_error_details_request(
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/getErrorDetails",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_build_image_request(
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/buildImage",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+class DevCenterCatalogImageDefinitionsOperations: # pylint: disable=name-too-long
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.DevCenterMgmtClient`'s
+ :attr:`dev_center_catalog_image_definitions` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs):
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_dev_center_catalog(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ top: Optional[int] = None,
+ **kwargs: Any
+ ) -> Iterable["_models.ImageDefinition"]:
+ """List Image Definitions in the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param top: The maximum number of resources to return from the operation. Example: '$top=10'.
+ Default value is None.
+ :type top: int
+ :return: An iterator like instance of either ImageDefinition or the result of cls(response)
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.devcenter.models.ImageDefinition]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_dev_center_catalog_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ subscription_id=self._config.subscription_id,
+ top=top,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageDefinitionListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ def get_by_dev_center_catalog(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ **kwargs: Any
+ ) -> _models.ImageDefinition:
+ """Gets an Image Definition from the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: ImageDefinition or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinition
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinition] = kwargs.pop("cls", None)
+
+ _request = build_get_by_dev_center_catalog_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinition", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def get_error_details(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ **kwargs: Any
+ ) -> _models.CatalogResourceValidationErrorDetails:
+ """Gets Image Definition error details.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: CatalogResourceValidationErrorDetails or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.CatalogResourceValidationErrorDetails
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.CatalogResourceValidationErrorDetails] = kwargs.pop("cls", None)
+
+ _request = build_get_error_details_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _build_image_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_build_image_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_build_image(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Builds an image for the specified Image Definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: An instance of LROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._build_image_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_centers_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_centers_operations.py
index af21fef04529..1b0617950ac7 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_centers_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_dev_centers_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +6,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.exceptions import (
@@ -16,13 +16,14 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
from azure.core.polling import LROPoller, NoPolling, PollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
@@ -30,8 +31,11 @@
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -45,7 +49,7 @@ def build_list_by_subscription_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -73,7 +77,7 @@ def build_list_by_resource_group_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -107,7 +111,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -147,7 +151,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -190,7 +194,7 @@ def build_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -233,7 +237,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -303,7 +307,7 @@ def list_by_subscription(self, top: Optional[int] = None, **kwargs: Any) -> Iter
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.DevCenterListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -321,7 +325,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -337,7 +340,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -389,7 +391,7 @@ def list_by_resource_group(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.DevCenterListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -408,7 +410,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -424,7 +425,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -467,7 +467,7 @@ def get(self, resource_group_name: str, dev_center_name: str, **kwargs: Any) ->
:rtype: ~azure.mgmt.devcenter.models.DevCenter
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -489,7 +489,6 @@ def get(self, resource_group_name: str, dev_center_name: str, **kwargs: Any) ->
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -504,7 +503,7 @@ def get(self, resource_group_name: str, dev_center_name: str, **kwargs: Any) ->
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("DevCenter", pipeline_response)
+ deserialized = self._deserialize("DevCenter", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -513,8 +512,8 @@ def get(self, resource_group_name: str, dev_center_name: str, **kwargs: Any) ->
def _create_or_update_initial(
self, resource_group_name: str, dev_center_name: str, body: Union[_models.DevCenter, IO[bytes]], **kwargs: Any
- ) -> _models.DevCenter:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -527,7 +526,7 @@ def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.DevCenter] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -548,10 +547,10 @@ def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -559,15 +558,15 @@ def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("DevCenter", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("DevCenter", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -666,10 +665,11 @@ def begin_create_or_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("DevCenter", pipeline_response)
+ deserialized = self._deserialize("DevCenter", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -699,8 +699,8 @@ def _update_initial(
dev_center_name: str,
body: Union[_models.DevCenterUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.DevCenter]:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -713,7 +713,7 @@ def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.DevCenter]] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -734,10 +734,10 @@ def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -745,18 +745,20 @@ def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("DevCenter", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -859,10 +861,11 @@ def begin_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("DevCenter", pipeline_response)
+ deserialized = self._deserialize("DevCenter", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -886,10 +889,8 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial( # pylint: disable=inconsistent-return-statements
- self, resource_group_name: str, dev_center_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ def _delete_initial(self, resource_group_name: str, dev_center_name: str, **kwargs: Any) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -901,7 +902,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -911,10 +912,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -922,6 +923,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -930,8 +935,12 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_delete(self, resource_group_name: str, dev_center_name: str, **kwargs: Any) -> LROPoller[None]:
@@ -955,7 +964,7 @@ def begin_delete(self, resource_group_name: str, dev_center_name: str, **kwargs:
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial( # type: ignore
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
api_version=api_version,
@@ -964,6 +973,7 @@ def begin_delete(self, resource_group_name: str, dev_center_name: str, **kwargs:
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_encryption_sets_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_encryption_sets_operations.py
new file mode 100644
index 000000000000..52501618964d
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_encryption_sets_operations.py
@@ -0,0 +1,987 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+from io import IOBase
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
+import urllib.parse
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.paging import ItemPaged
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import LROPoller, NoPolling, PollingMethod
+from azure.core.rest import HttpRequest, HttpResponse
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.arm_polling import ARMPolling
+
+from .. import models as _models
+from .._serialization import Serializer
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
+
+_SERIALIZER = Serializer()
+_SERIALIZER.client_side_validation = False
+
+
+def build_list_request(
+ resource_group_name: str, dev_center_name: str, subscription_id: str, *, top: Optional[int] = None, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/encryptionSets",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+ if top is not None:
+ _params["$top"] = _SERIALIZER.query("top", top, "int")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_request(
+ resource_group_name: str, dev_center_name: str, encryption_set_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/encryptionSets/{encryptionSetName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "encryptionSetName": _SERIALIZER.url(
+ "encryption_set_name",
+ encryption_set_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_create_or_update_request(
+ resource_group_name: str, dev_center_name: str, encryption_set_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/encryptionSets/{encryptionSetName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "encryptionSetName": _SERIALIZER.url(
+ "encryption_set_name",
+ encryption_set_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_update_request(
+ resource_group_name: str, dev_center_name: str, encryption_set_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/encryptionSets/{encryptionSetName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "encryptionSetName": _SERIALIZER.url(
+ "encryption_set_name",
+ encryption_set_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_delete_request(
+ resource_group_name: str, dev_center_name: str, encryption_set_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/encryptionSets/{encryptionSetName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "encryptionSetName": _SERIALIZER.url(
+ "encryption_set_name",
+ encryption_set_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+class EncryptionSetsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.DevCenterMgmtClient`'s
+ :attr:`encryption_sets` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs):
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list(
+ self, resource_group_name: str, dev_center_name: str, top: Optional[int] = None, **kwargs: Any
+ ) -> Iterable["_models.DevCenterEncryptionSet"]:
+ """Lists all encryption sets in the devcenter.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param top: The maximum number of resources to return from the operation. Example: '$top=10'.
+ Default value is None.
+ :type top: int
+ :return: An iterator like instance of either DevCenterEncryptionSet or the result of
+ cls(response)
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.EncryptionSetListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ subscription_id=self._config.subscription_id,
+ top=top,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = self._deserialize("EncryptionSetListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ def get(
+ self, resource_group_name: str, dev_center_name: str, encryption_set_name: str, **kwargs: Any
+ ) -> _models.DevCenterEncryptionSet:
+ """Gets a devcenter encryption set.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :return: DevCenterEncryptionSet or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.DevCenterEncryptionSet
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.DevCenterEncryptionSet] = kwargs.pop("cls", None)
+
+ _request = build_get_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("DevCenterEncryptionSet", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: Union[_models.DevCenterEncryptionSet, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _json = None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _json = self._serialize.body(body, "DevCenterEncryptionSet")
+
+ _request = build_create_or_update_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ content_type=content_type,
+ json=_json,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: _models.DevCenterEncryptionSet,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.DevCenterEncryptionSet]:
+ """Creates or updates a devcenter encryption set resource.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Represents a devcenter encryption set. Required.
+ :type body: ~azure.mgmt.devcenter.models.DevCenterEncryptionSet
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns either DevCenterEncryptionSet or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.DevCenterEncryptionSet]:
+ """Creates or updates a devcenter encryption set resource.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Represents a devcenter encryption set. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns either DevCenterEncryptionSet or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: Union[_models.DevCenterEncryptionSet, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.DevCenterEncryptionSet]:
+ """Creates or updates a devcenter encryption set resource.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Represents a devcenter encryption set. Is either a DevCenterEncryptionSet type or
+ a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.devcenter.models.DevCenterEncryptionSet or IO[bytes]
+ :return: An instance of LROPoller that returns either DevCenterEncryptionSet or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.DevCenterEncryptionSet] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ body=body,
+ api_version=api_version,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ deserialized = self._deserialize("DevCenterEncryptionSet", pipeline_response.http_response)
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.DevCenterEncryptionSet].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.DevCenterEncryptionSet](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _update_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: Union[_models.EncryptionSetUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _json = None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _json = self._serialize.body(body, "EncryptionSetUpdate")
+
+ _request = build_update_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ content_type=content_type,
+ json=_json,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: _models.EncryptionSetUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.DevCenterEncryptionSet]:
+ """Partially updates a devcenter encryption set.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Updatable devcenter encryption set properties. Required.
+ :type body: ~azure.mgmt.devcenter.models.EncryptionSetUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns either DevCenterEncryptionSet or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.DevCenterEncryptionSet]:
+ """Partially updates a devcenter encryption set.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Updatable devcenter encryption set properties. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns either DevCenterEncryptionSet or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ encryption_set_name: str,
+ body: Union[_models.EncryptionSetUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.DevCenterEncryptionSet]:
+ """Partially updates a devcenter encryption set.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :param body: Updatable devcenter encryption set properties. Is either a EncryptionSetUpdate
+ type or a IO[bytes] type. Required.
+ :type body: ~azure.mgmt.devcenter.models.EncryptionSetUpdate or IO[bytes]
+ :return: An instance of LROPoller that returns either DevCenterEncryptionSet or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.DevCenterEncryptionSet]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.DevCenterEncryptionSet] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._update_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ body=body,
+ api_version=api_version,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ deserialized = self._deserialize("DevCenterEncryptionSet", pipeline_response.http_response)
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.DevCenterEncryptionSet].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.DevCenterEncryptionSet](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _delete_initial(
+ self, resource_group_name: str, dev_center_name: str, encryption_set_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_delete_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_delete(
+ self, resource_group_name: str, dev_center_name: str, encryption_set_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Deletes a devcenter encryption set.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param encryption_set_name: The name of the devcenter encryption set. Required.
+ :type encryption_set_name: str
+ :return: An instance of LROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._delete_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ encryption_set_name=encryption_set_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_environment_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_environment_definitions_operations.py
index e594545fb131..faab1c4332ad 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_environment_definitions_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_environment_definitions_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, Callable, Dict, Iterable, Optional, TypeVar
import urllib.parse
@@ -19,16 +19,18 @@
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -42,7 +44,7 @@ def build_list_by_project_catalog_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -95,7 +97,7 @@ def build_get_by_project_catalog_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -157,7 +159,7 @@ def build_list_by_catalog_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -212,7 +214,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -273,7 +275,7 @@ def build_get_error_details_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -366,7 +368,7 @@ def list_by_project_catalog(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.EnvironmentDefinitionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -386,7 +388,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -402,7 +403,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -456,7 +456,7 @@ def get_by_project_catalog(
:rtype: ~azure.mgmt.devcenter.models.EnvironmentDefinition
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -480,7 +480,6 @@ def get_by_project_catalog(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -495,7 +494,7 @@ def get_by_project_catalog(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("EnvironmentDefinition", pipeline_response)
+ deserialized = self._deserialize("EnvironmentDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -534,7 +533,7 @@ def list_by_catalog(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.EnvironmentDefinitionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -555,7 +554,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -571,7 +569,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -625,7 +622,7 @@ def get(
:rtype: ~azure.mgmt.devcenter.models.EnvironmentDefinition
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -649,7 +646,6 @@ def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -664,7 +660,7 @@ def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("EnvironmentDefinition", pipeline_response)
+ deserialized = self._deserialize("EnvironmentDefinition", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -695,7 +691,7 @@ def get_error_details(
:rtype: ~azure.mgmt.devcenter.models.CatalogResourceValidationErrorDetails
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -719,7 +715,6 @@ def get_error_details(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -734,7 +729,7 @@ def get_error_details(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response)
+ deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_environment_types_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_environment_types_operations.py
index bd56f458f802..8e5c48913ad6 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_environment_types_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_environment_types_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,6 +6,7 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
+import sys
from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, overload
import urllib.parse
@@ -20,16 +20,18 @@
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -43,7 +45,7 @@ def build_list_by_dev_center_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -85,7 +87,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -133,7 +135,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -184,7 +186,7 @@ def build_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -235,7 +237,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -320,7 +322,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.EnvironmentTypeListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -340,7 +342,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -356,7 +357,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -403,7 +403,7 @@ def get(
:rtype: ~azure.mgmt.devcenter.models.EnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -426,7 +426,6 @@ def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -441,7 +440,7 @@ def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("EnvironmentType", pipeline_response)
+ deserialized = self._deserialize("EnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -533,7 +532,7 @@ def create_or_update(
:rtype: ~azure.mgmt.devcenter.models.EnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -568,7 +567,6 @@ def create_or_update(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -583,11 +581,7 @@ def create_or_update(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("EnvironmentType", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("EnvironmentType", pipeline_response)
+ deserialized = self._deserialize("EnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -679,7 +673,7 @@ def update(
:rtype: ~azure.mgmt.devcenter.models.EnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -714,7 +708,6 @@ def update(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -729,7 +722,7 @@ def update(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("EnvironmentType", pipeline_response)
+ deserialized = self._deserialize("EnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -753,7 +746,7 @@ def delete( # pylint: disable=inconsistent-return-statements
:rtype: None
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -776,7 +769,6 @@ def delete( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_galleries_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_galleries_operations.py
index c312b785664a..703d2b71e696 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_galleries_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_galleries_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +6,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.exceptions import (
@@ -16,13 +16,14 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
from azure.core.polling import LROPoller, NoPolling, PollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
@@ -30,8 +31,11 @@
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -45,7 +49,7 @@ def build_list_by_dev_center_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -87,7 +91,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -135,7 +139,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -186,7 +190,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -271,7 +275,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.GalleryListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -291,7 +295,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -307,7 +310,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -352,7 +354,7 @@ def get(self, resource_group_name: str, dev_center_name: str, gallery_name: str,
:rtype: ~azure.mgmt.devcenter.models.Gallery
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -375,7 +377,6 @@ def get(self, resource_group_name: str, dev_center_name: str, gallery_name: str,
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -390,7 +391,7 @@ def get(self, resource_group_name: str, dev_center_name: str, gallery_name: str,
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Gallery", pipeline_response)
+ deserialized = self._deserialize("Gallery", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -404,8 +405,8 @@ def _create_or_update_initial(
gallery_name: str,
body: Union[_models.Gallery, IO[bytes]],
**kwargs: Any
- ) -> _models.Gallery:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -418,7 +419,7 @@ def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Gallery] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -440,10 +441,10 @@ def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -451,15 +452,15 @@ def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Gallery", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Gallery", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -572,10 +573,11 @@ def begin_create_or_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Gallery", pipeline_response)
+ deserialized = self._deserialize("Gallery", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -599,10 +601,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial( # pylint: disable=inconsistent-return-statements
+ def _delete_initial(
self, resource_group_name: str, dev_center_name: str, gallery_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -614,7 +616,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -625,10 +627,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -636,6 +638,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -644,8 +650,12 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_delete(
@@ -673,7 +683,7 @@ def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial( # type: ignore
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
dev_center_name=dev_center_name,
gallery_name=gallery_name,
@@ -683,6 +693,7 @@ def begin_delete(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_image_versions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_image_versions_operations.py
index 523966aa31b4..9e0064a91bc8 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_image_versions_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_image_versions_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, Callable, Dict, Iterable, Optional, TypeVar
import urllib.parse
@@ -19,16 +19,18 @@
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -47,7 +49,7 @@ def build_list_by_image_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -109,7 +111,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -167,6 +169,110 @@ def build_get_request(
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+def build_list_by_project_request(
+ resource_group_name: str, project_name: str, image_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/images/{imageName}/versions",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageName": _SERIALIZER.url(
+ "image_name",
+ image_name,
+ "str",
+ max_length=153,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9~][a-zA-Z0-9-.~]{0,151}[a-zA-Z0-9]$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_by_project_request(
+ resource_group_name: str, project_name: str, image_name: str, version_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/images/{imageName}/versions/{versionName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageName": _SERIALIZER.url(
+ "image_name",
+ image_name,
+ "str",
+ max_length=153,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9~][a-zA-Z0-9-.~]{0,151}[a-zA-Z0-9]$",
+ ),
+ "versionName": _SERIALIZER.url(
+ "version_name",
+ version_name,
+ "str",
+ max_length=32,
+ min_length=5,
+ pattern=r"^[0-9]{1,10}[.][0-9]{1,10}[.][0-9]{1,10}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
class ImageVersionsOperations:
"""
.. warning::
@@ -211,7 +317,7 @@ def list_by_image(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ImageVersionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -232,7 +338,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -248,7 +353,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -305,7 +409,7 @@ def get(
:rtype: ~azure.mgmt.devcenter.models.ImageVersion
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -330,7 +434,6 @@ def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -345,7 +448,158 @@ def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("ImageVersion", pipeline_response)
+ deserialized = self._deserialize("ImageVersion", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def list_by_project(
+ self, resource_group_name: str, project_name: str, image_name: str, **kwargs: Any
+ ) -> Iterable["_models.ImageVersion"]:
+ """Lists versions for an image.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param image_name: The name of the image. Required.
+ :type image_name: str
+ :return: An iterator like instance of either ImageVersion or the result of cls(response)
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.devcenter.models.ImageVersion]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageVersionListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_project_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ image_name=image_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageVersionListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ def get_by_project(
+ self, resource_group_name: str, project_name: str, image_name: str, version_name: str, **kwargs: Any
+ ) -> _models.ImageVersion:
+ """Gets an image version.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param image_name: The name of the image. Required.
+ :type image_name: str
+ :param version_name: The version of the image. Required.
+ :type version_name: str
+ :return: ImageVersion or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageVersion
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageVersion] = kwargs.pop("cls", None)
+
+ _request = build_get_by_project_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ image_name=image_name,
+ version_name=version_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageVersion", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_images_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_images_operations.py
index 5c89975ce018..4b4fa6ef7c22 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_images_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_images_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, Callable, Dict, Iterable, Optional, TypeVar
import urllib.parse
@@ -19,16 +19,18 @@
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -42,7 +44,7 @@ def build_list_by_dev_center_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -90,7 +92,7 @@ def build_list_by_gallery_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -145,7 +147,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -195,6 +197,94 @@ def build_get_request(
return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+def build_list_by_project_request(
+ resource_group_name: str, project_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/images",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_by_project_request(
+ resource_group_name: str, project_name: str, image_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/images/{imageName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageName": _SERIALIZER.url(
+ "image_name",
+ image_name,
+ "str",
+ max_length=153,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9~][a-zA-Z0-9-.~]{0,151}[a-zA-Z0-9]$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
class ImagesOperations:
"""
.. warning::
@@ -238,7 +328,7 @@ def list_by_dev_center(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ImageListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -258,7 +348,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -274,7 +363,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -335,7 +423,7 @@ def list_by_gallery(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ImageListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -356,7 +444,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -372,7 +459,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -421,7 +507,7 @@ def get(
:rtype: ~azure.mgmt.devcenter.models.Image
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -445,7 +531,6 @@ def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -460,7 +545,150 @@ def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Image", pipeline_response)
+ deserialized = self._deserialize("Image", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def list_by_project(self, resource_group_name: str, project_name: str, **kwargs: Any) -> Iterable["_models.Image"]:
+ """Lists images for a project.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :return: An iterator like instance of either Image or the result of cls(response)
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.devcenter.models.Image]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_project_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ def get_by_project(
+ self, resource_group_name: str, project_name: str, image_name: str, **kwargs: Any
+ ) -> _models.Image:
+ """Gets an image.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param image_name: The name of the image. Required.
+ :type image_name: str
+ :return: Image or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.Image
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.Image] = kwargs.pop("cls", None)
+
+ _request = build_get_by_project_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ image_name=image_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("Image", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_network_connections_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_network_connections_operations.py
index 84f7183102f5..652fd2da7379 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_network_connections_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_network_connections_operations.py
@@ -1,4 +1,4 @@
-# pylint: disable=too-many-lines,too-many-statements
+# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +7,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.exceptions import (
@@ -16,13 +17,14 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
from azure.core.polling import LROPoller, NoPolling, PollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
@@ -30,8 +32,11 @@
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -45,7 +50,7 @@ def build_list_by_subscription_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -75,7 +80,7 @@ def build_list_by_resource_group_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -109,7 +114,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -149,7 +154,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -192,7 +197,7 @@ def build_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -235,7 +240,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -280,7 +285,7 @@ def build_list_health_details_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -322,7 +327,7 @@ def build_get_health_details_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -362,7 +367,7 @@ def build_run_health_checks_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -407,7 +412,7 @@ def build_list_outbound_network_dependencies_endpoints_request( # pylint: disab
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -479,7 +484,7 @@ def list_by_subscription(self, top: Optional[int] = None, **kwargs: Any) -> Iter
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.NetworkConnectionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -497,7 +502,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -513,7 +517,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -565,7 +568,7 @@ def list_by_resource_group(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.NetworkConnectionListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -584,7 +587,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -600,7 +602,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -644,7 +645,7 @@ def get(self, resource_group_name: str, network_connection_name: str, **kwargs:
:rtype: ~azure.mgmt.devcenter.models.NetworkConnection
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -666,7 +667,6 @@ def get(self, resource_group_name: str, network_connection_name: str, **kwargs:
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -681,7 +681,7 @@ def get(self, resource_group_name: str, network_connection_name: str, **kwargs:
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
+ deserialized = self._deserialize("NetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -694,8 +694,8 @@ def _create_or_update_initial(
network_connection_name: str,
body: Union[_models.NetworkConnection, IO[bytes]],
**kwargs: Any
- ) -> _models.NetworkConnection:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -708,7 +708,7 @@ def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.NetworkConnection] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -729,10 +729,10 @@ def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -740,15 +740,15 @@ def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -858,10 +858,11 @@ def begin_create_or_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
+ deserialized = self._deserialize("NetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -891,8 +892,8 @@ def _update_initial(
network_connection_name: str,
body: Union[_models.NetworkConnectionUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.NetworkConnection]:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -905,7 +906,7 @@ def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.NetworkConnection]] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -926,10 +927,10 @@ def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -937,18 +938,20 @@ def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -1057,10 +1060,11 @@ def begin_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("NetworkConnection", pipeline_response)
+ deserialized = self._deserialize("NetworkConnection", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -1084,10 +1088,8 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial( # pylint: disable=inconsistent-return-statements
- self, resource_group_name: str, network_connection_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ def _delete_initial(self, resource_group_name: str, network_connection_name: str, **kwargs: Any) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1099,7 +1101,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -1109,10 +1111,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -1120,6 +1122,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -1128,8 +1134,12 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_delete(self, resource_group_name: str, network_connection_name: str, **kwargs: Any) -> LROPoller[None]:
@@ -1154,7 +1164,7 @@ def begin_delete(self, resource_group_name: str, network_connection_name: str, *
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial( # type: ignore
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
network_connection_name=network_connection_name,
api_version=api_version,
@@ -1163,6 +1173,7 @@ def begin_delete(self, resource_group_name: str, network_connection_name: str, *
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -1212,7 +1223,7 @@ def list_health_details(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.HealthCheckStatusDetailsListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1232,7 +1243,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -1248,7 +1258,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -1294,7 +1303,7 @@ def get_health_details(
:rtype: ~azure.mgmt.devcenter.models.HealthCheckStatusDetails
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1316,7 +1325,6 @@ def get_health_details(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -1331,17 +1339,17 @@ def get_health_details(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("HealthCheckStatusDetails", pipeline_response)
+ deserialized = self._deserialize("HealthCheckStatusDetails", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
- def _run_health_checks_initial( # pylint: disable=inconsistent-return-statements
+ def _run_health_checks_initial(
self, resource_group_name: str, network_connection_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1353,7 +1361,7 @@ def _run_health_checks_initial( # pylint: disable=inconsistent-return-statement
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_run_health_checks_request(
resource_group_name=resource_group_name,
@@ -1363,10 +1371,10 @@ def _run_health_checks_initial( # pylint: disable=inconsistent-return-statement
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -1374,6 +1382,10 @@ def _run_health_checks_initial( # pylint: disable=inconsistent-return-statement
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -1381,8 +1393,12 @@ def _run_health_checks_initial( # pylint: disable=inconsistent-return-statement
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_run_health_checks(
@@ -1410,7 +1426,7 @@ def begin_run_health_checks(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._run_health_checks_initial( # type: ignore
+ raw_result = self._run_health_checks_initial(
resource_group_name=resource_group_name,
network_connection_name=network_connection_name,
api_version=api_version,
@@ -1419,6 +1435,7 @@ def begin_run_health_checks(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -1469,7 +1486,7 @@ def list_outbound_network_dependencies_endpoints( # pylint: disable=name-too-lo
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.OutboundEnvironmentEndpointCollection] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1489,7 +1506,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -1505,7 +1521,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_operation_statuses_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_operation_statuses_operations.py
index dc6ce5a7de01..6b5ab8b6a9d2 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_operation_statuses_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_operation_statuses_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, Callable, Dict, Optional, TypeVar
from azure.core.exceptions import (
@@ -17,16 +17,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -38,7 +40,7 @@ def build_get_request(location: str, operation_id: str, subscription_id: str, **
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -96,7 +98,7 @@ def get(self, location: str, operation_id: str, **kwargs: Any) -> _models.Operat
:rtype: ~azure.mgmt.devcenter.models.OperationStatus
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -118,7 +120,6 @@ def get(self, location: str, operation_id: str, **kwargs: Any) -> _models.Operat
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -134,13 +135,10 @@ def get(self, location: str, operation_id: str, **kwargs: Any) -> _models.Operat
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("OperationStatus", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
- deserialized = self._deserialize("OperationStatus", pipeline_response)
+ deserialized = self._deserialize("OperationStatus", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_operations.py
index 37ed7111b63c..8d25350d0455 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, Callable, Dict, Iterable, Optional, TypeVar
import urllib.parse
@@ -19,16 +19,18 @@
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -40,7 +42,7 @@ def build_list_request(**kwargs: Any) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -88,7 +90,7 @@ def list(self, **kwargs: Any) -> Iterable["_models.Operation"]:
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.OperationListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -104,7 +106,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -120,7 +121,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_pools_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_pools_operations.py
index 9f79a3f8e2fd..7256751db5f1 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_pools_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_pools_operations.py
@@ -1,4 +1,4 @@
-# pylint: disable=too-many-lines,too-many-statements
+# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +7,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.exceptions import (
@@ -16,13 +17,14 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
from azure.core.polling import LROPoller, NoPolling, PollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
@@ -30,8 +32,11 @@
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -45,7 +50,7 @@ def build_list_by_project_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -87,7 +92,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -130,7 +135,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -176,7 +181,7 @@ def build_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -222,7 +227,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -265,7 +270,7 @@ def build_run_health_checks_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -345,7 +350,7 @@ def list_by_project(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.PoolListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -365,7 +370,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -381,7 +385,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -426,7 +429,7 @@ def get(self, resource_group_name: str, project_name: str, pool_name: str, **kwa
:rtype: ~azure.mgmt.devcenter.models.Pool
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -449,7 +452,6 @@ def get(self, resource_group_name: str, project_name: str, pool_name: str, **kwa
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -464,7 +466,7 @@ def get(self, resource_group_name: str, project_name: str, pool_name: str, **kwa
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Pool", pipeline_response)
+ deserialized = self._deserialize("Pool", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -478,8 +480,8 @@ def _create_or_update_initial(
pool_name: str,
body: Union[_models.Pool, IO[bytes]],
**kwargs: Any
- ) -> _models.Pool:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -492,7 +494,7 @@ def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Pool] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -514,10 +516,10 @@ def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -525,15 +527,15 @@ def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Pool", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Pool", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -646,10 +648,11 @@ def begin_create_or_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Pool", pipeline_response)
+ deserialized = self._deserialize("Pool", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -680,8 +683,8 @@ def _update_initial(
pool_name: str,
body: Union[_models.PoolUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.Pool]:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -694,7 +697,7 @@ def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.Pool]] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -716,10 +719,10 @@ def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -727,18 +730,20 @@ def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("Pool", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -851,10 +856,11 @@ def begin_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Pool", pipeline_response)
+ deserialized = self._deserialize("Pool", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -878,10 +884,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial( # pylint: disable=inconsistent-return-statements
+ def _delete_initial(
self, resource_group_name: str, project_name: str, pool_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -893,7 +899,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -904,10 +910,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -915,6 +921,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -923,8 +933,12 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_delete(
@@ -952,7 +966,7 @@ def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial( # type: ignore
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
project_name=project_name,
pool_name=pool_name,
@@ -962,6 +976,7 @@ def begin_delete(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -985,10 +1000,10 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- def _run_health_checks_initial( # pylint: disable=inconsistent-return-statements
+ def _run_health_checks_initial(
self, resource_group_name: str, project_name: str, pool_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1000,7 +1015,7 @@ def _run_health_checks_initial( # pylint: disable=inconsistent-return-statement
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_run_health_checks_request(
resource_group_name=resource_group_name,
@@ -1011,10 +1026,10 @@ def _run_health_checks_initial( # pylint: disable=inconsistent-return-statement
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -1022,6 +1037,10 @@ def _run_health_checks_initial( # pylint: disable=inconsistent-return-statement
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -1029,8 +1048,12 @@ def _run_health_checks_initial( # pylint: disable=inconsistent-return-statement
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_run_health_checks(
@@ -1058,7 +1081,7 @@ def begin_run_health_checks(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._run_health_checks_initial( # type: ignore
+ raw_result = self._run_health_checks_initial(
resource_group_name=resource_group_name,
project_name=project_name,
pool_name=pool_name,
@@ -1068,6 +1091,7 @@ def begin_run_health_checks(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_allowed_environment_types_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_allowed_environment_types_operations.py
index 3255ce777881..a401d074ae25 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_allowed_environment_types_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_allowed_environment_types_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, Callable, Dict, Iterable, Optional, TypeVar
import urllib.parse
@@ -19,16 +19,18 @@
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -42,7 +44,7 @@ def build_list_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -84,7 +86,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -170,7 +172,7 @@ def list(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.AllowedEnvironmentTypeListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -190,7 +192,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -206,7 +207,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -253,7 +253,7 @@ def get(
:rtype: ~azure.mgmt.devcenter.models.AllowedEnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -276,7 +276,6 @@ def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -291,7 +290,7 @@ def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("AllowedEnvironmentType", pipeline_response)
+ deserialized = self._deserialize("AllowedEnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_environment_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_environment_definitions_operations.py
index 8f0d58afe05a..ac9ef87df3e5 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_environment_definitions_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_environment_definitions_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, Callable, Dict, Optional, TypeVar
from azure.core.exceptions import (
@@ -17,16 +17,18 @@
map_error,
)
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -45,7 +47,7 @@ def build_get_error_details_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -138,7 +140,7 @@ def get_error_details(
:rtype: ~azure.mgmt.devcenter.models.CatalogResourceValidationErrorDetails
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -162,7 +164,6 @@ def get_error_details(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -177,7 +178,7 @@ def get_error_details(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response)
+ deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_image_definition_build_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_image_definition_build_operations.py
new file mode 100644
index 000000000000..2b2377b63d3f
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_image_definition_build_operations.py
@@ -0,0 +1,539 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, Callable, Dict, Iterator, Optional, TypeVar, Union, cast
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import LROPoller, NoPolling, PollingMethod
+from azure.core.rest import HttpRequest, HttpResponse
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.arm_polling import ARMPolling
+
+from .. import models as _models
+from .._serialization import Serializer
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
+
+_SERIALIZER = Serializer()
+_SERIALIZER.client_side_validation = False
+
+
+def build_get_request(
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/builds/{buildName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "buildName": _SERIALIZER.url(
+ "build_name", build_name, "str", max_length=63, min_length=3, pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_cancel_request(
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/builds/{buildName}/cancel",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "buildName": _SERIALIZER.url(
+ "build_name", build_name, "str", max_length=63, min_length=3, pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_build_details_request(
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/builds/{buildName}/getBuildDetails",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "buildName": _SERIALIZER.url(
+ "build_name", build_name, "str", max_length=63, min_length=3, pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$"
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+class ProjectCatalogImageDefinitionBuildOperations: # pylint: disable=name-too-long
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.DevCenterMgmtClient`'s
+ :attr:`project_catalog_image_definition_build` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs):
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def get(
+ self,
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> _models.ImageDefinitionBuild:
+ """Gets a build for a specified image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: ImageDefinitionBuild or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinitionBuild
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuild] = kwargs.pop("cls", None)
+
+ _request = build_get_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinitionBuild", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _cancel_initial(
+ self,
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_cancel_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_cancel(
+ self,
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> LROPoller[None]:
+ """Cancels the specified build for an image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: An instance of LROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._cancel_initial(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ def get_build_details(
+ self,
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ build_name: str,
+ **kwargs: Any
+ ) -> _models.ImageDefinitionBuildDetails:
+ """Gets Build details.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :param build_name: The ID of the Image Definition Build. Required.
+ :type build_name: str
+ :return: ImageDefinitionBuildDetails or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinitionBuildDetails
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuildDetails] = kwargs.pop("cls", None)
+
+ _request = build_get_build_details_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ build_name=build_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinitionBuildDetails", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_image_definition_builds_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_image_definition_builds_operations.py
new file mode 100644
index 000000000000..f9551e8818a7
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_image_definition_builds_operations.py
@@ -0,0 +1,210 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, Callable, Dict, Iterable, Optional, TypeVar
+import urllib.parse
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ map_error,
+)
+from azure.core.paging import ItemPaged
+from azure.core.pipeline import PipelineResponse
+from azure.core.rest import HttpRequest, HttpResponse
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+
+from .. import models as _models
+from .._serialization import Serializer
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
+
+_SERIALIZER = Serializer()
+_SERIALIZER.client_side_validation = False
+
+
+def build_list_by_image_definition_request(
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/builds",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+class ProjectCatalogImageDefinitionBuildsOperations: # pylint: disable=name-too-long
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.DevCenterMgmtClient`'s
+ :attr:`project_catalog_image_definition_builds` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs):
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_image_definition(
+ self, resource_group_name: str, project_name: str, catalog_name: str, image_definition_name: str, **kwargs: Any
+ ) -> Iterable["_models.ImageDefinitionBuild"]:
+ """Lists builds for a specified image definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: An iterator like instance of either ImageDefinitionBuild or the result of
+ cls(response)
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.devcenter.models.ImageDefinitionBuild]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionBuildListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_image_definition_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageDefinitionBuildListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_image_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_image_definitions_operations.py
new file mode 100644
index 000000000000..bcbd11c10315
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalog_image_definitions_operations.py
@@ -0,0 +1,642 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import sys
+from typing import Any, Callable, Dict, Iterable, Iterator, Optional, TypeVar, Union, cast
+import urllib.parse
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.paging import ItemPaged
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import LROPoller, NoPolling, PollingMethod
+from azure.core.rest import HttpRequest, HttpResponse
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.arm_polling import ARMPolling
+
+from .. import models as _models
+from .._serialization import Serializer
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
+
+_SERIALIZER = Serializer()
+_SERIALIZER.client_side_validation = False
+
+
+def build_list_by_project_catalog_request(
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ subscription_id: str,
+ *,
+ top: Optional[int] = None,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/imageDefinitions",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+ if top is not None:
+ _params["$top"] = _SERIALIZER.query("top", top, "int")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_by_project_catalog_request(
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_error_details_request(
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/getErrorDetails",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_build_image_request(
+ resource_group_name: str,
+ project_name: str,
+ catalog_name: str,
+ image_definition_name: str,
+ subscription_id: str,
+ **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/catalogs/{catalogName}/imageDefinitions/{imageDefinitionName}/buildImage",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "catalogName": _SERIALIZER.url(
+ "catalog_name",
+ catalog_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ "imageDefinitionName": _SERIALIZER.url(
+ "image_definition_name",
+ image_definition_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+class ProjectCatalogImageDefinitionsOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.DevCenterMgmtClient`'s
+ :attr:`project_catalog_image_definitions` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs):
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_project_catalog(
+ self, resource_group_name: str, project_name: str, catalog_name: str, top: Optional[int] = None, **kwargs: Any
+ ) -> Iterable["_models.ImageDefinition"]:
+ """List Image Definitions in the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param top: The maximum number of resources to return from the operation. Example: '$top=10'.
+ Default value is None.
+ :type top: int
+ :return: An iterator like instance of either ImageDefinition or the result of cls(response)
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.devcenter.models.ImageDefinition]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinitionListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_project_catalog_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ subscription_id=self._config.subscription_id,
+ top=top,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = self._deserialize("ImageDefinitionListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ def get_by_project_catalog(
+ self, resource_group_name: str, project_name: str, catalog_name: str, image_definition_name: str, **kwargs: Any
+ ) -> _models.ImageDefinition:
+ """Gets an Image Definition from the catalog.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: ImageDefinition or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ImageDefinition
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ImageDefinition] = kwargs.pop("cls", None)
+
+ _request = build_get_by_project_catalog_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ImageDefinition", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def get_error_details(
+ self, resource_group_name: str, project_name: str, catalog_name: str, image_definition_name: str, **kwargs: Any
+ ) -> _models.CatalogResourceValidationErrorDetails:
+ """Gets Image Definition error details.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: CatalogResourceValidationErrorDetails or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.CatalogResourceValidationErrorDetails
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.CatalogResourceValidationErrorDetails] = kwargs.pop("cls", None)
+
+ _request = build_get_error_details_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("CatalogResourceValidationErrorDetails", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _build_image_initial(
+ self, resource_group_name: str, project_name: str, catalog_name: str, image_definition_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_build_image_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ response_headers["Azure-AsyncOperation"] = self._deserialize(
+ "str", response.headers.get("Azure-AsyncOperation")
+ )
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_build_image(
+ self, resource_group_name: str, project_name: str, catalog_name: str, image_definition_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Builds an image for the specified Image Definition.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :param catalog_name: The name of the Catalog. Required.
+ :type catalog_name: str
+ :param image_definition_name: The name of the Image Definition. Required.
+ :type image_definition_name: str
+ :return: An instance of LROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._build_image_initial(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ catalog_name=catalog_name,
+ image_definition_name=image_definition_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalogs_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalogs_operations.py
index 864e7c00e293..1317dadbd44c 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalogs_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_catalogs_operations.py
@@ -1,4 +1,4 @@
-# pylint: disable=too-many-lines,too-many-statements
+# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +7,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.exceptions import (
@@ -16,13 +17,14 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
from azure.core.polling import LROPoller, NoPolling, PollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
@@ -30,8 +32,11 @@
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -45,7 +50,7 @@ def build_list_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -87,7 +92,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -135,7 +140,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -186,7 +191,7 @@ def build_patch_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -237,7 +242,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -285,7 +290,7 @@ def build_get_sync_error_details_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -333,7 +338,7 @@ def build_sync_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -381,7 +386,7 @@ def build_connect_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -466,7 +471,7 @@ def list(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.CatalogListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -486,7 +491,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -502,7 +506,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -547,7 +550,7 @@ def get(self, resource_group_name: str, project_name: str, catalog_name: str, **
:rtype: ~azure.mgmt.devcenter.models.Catalog
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -570,7 +573,6 @@ def get(self, resource_group_name: str, project_name: str, catalog_name: str, **
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -585,7 +587,7 @@ def get(self, resource_group_name: str, project_name: str, catalog_name: str, **
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -599,8 +601,8 @@ def _create_or_update_initial(
catalog_name: str,
body: Union[_models.Catalog, IO[bytes]],
**kwargs: Any
- ) -> _models.Catalog:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -613,7 +615,7 @@ def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Catalog] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -635,10 +637,10 @@ def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -646,15 +648,15 @@ def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Catalog", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -767,10 +769,11 @@ def begin_create_or_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -801,8 +804,8 @@ def _patch_initial(
catalog_name: str,
body: Union[_models.CatalogUpdate, IO[bytes]],
**kwargs: Any
- ) -> Optional[_models.Catalog]:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -815,7 +818,7 @@ def _patch_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.Catalog]] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -837,10 +840,10 @@ def _patch_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -848,18 +851,20 @@ def _patch_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("Catalog", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -972,10 +977,11 @@ def begin_patch(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Catalog", pipeline_response)
+ deserialized = self._deserialize("Catalog", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -999,10 +1005,10 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial( # pylint: disable=inconsistent-return-statements
+ def _delete_initial(
self, resource_group_name: str, project_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1014,7 +1020,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -1025,10 +1031,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -1036,6 +1042,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -1044,8 +1054,12 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_delete(
@@ -1073,7 +1087,7 @@ def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial( # type: ignore
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
project_name=project_name,
catalog_name=catalog_name,
@@ -1083,6 +1097,7 @@ def begin_delete(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -1123,7 +1138,7 @@ def get_sync_error_details(
:rtype: ~azure.mgmt.devcenter.models.SyncErrorDetails
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1146,7 +1161,6 @@ def get_sync_error_details(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -1161,17 +1175,17 @@ def get_sync_error_details(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("SyncErrorDetails", pipeline_response)
+ deserialized = self._deserialize("SyncErrorDetails", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized # type: ignore
- def _sync_initial( # pylint: disable=inconsistent-return-statements
+ def _sync_initial(
self, resource_group_name: str, project_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1183,7 +1197,7 @@ def _sync_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_sync_request(
resource_group_name=resource_group_name,
@@ -1194,10 +1208,10 @@ def _sync_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -1205,6 +1219,10 @@ def _sync_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -1212,8 +1230,12 @@ def _sync_initial( # pylint: disable=inconsistent-return-statements
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_sync(
@@ -1241,7 +1263,7 @@ def begin_sync(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._sync_initial( # type: ignore
+ raw_result = self._sync_initial(
resource_group_name=resource_group_name,
project_name=project_name,
catalog_name=catalog_name,
@@ -1251,6 +1273,7 @@ def begin_sync(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -1274,10 +1297,10 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
)
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
- def _connect_initial( # pylint: disable=inconsistent-return-statements
+ def _connect_initial(
self, resource_group_name: str, project_name: str, catalog_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -1289,7 +1312,7 @@ def _connect_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_connect_request(
resource_group_name=resource_group_name,
@@ -1300,10 +1323,10 @@ def _connect_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -1311,6 +1334,10 @@ def _connect_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -1318,8 +1345,12 @@ def _connect_initial( # pylint: disable=inconsistent-return-statements
response_headers = {}
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_connect(
@@ -1347,7 +1378,7 @@ def begin_connect(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._connect_initial( # type: ignore
+ raw_result = self._connect_initial(
resource_group_name=resource_group_name,
project_name=project_name,
catalog_name=catalog_name,
@@ -1357,6 +1388,7 @@ def begin_connect(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_environment_types_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_environment_types_operations.py
index 6af1b8d99a6e..f833ccfca692 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_environment_types_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_environment_types_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,6 +6,7 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
+import sys
from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, overload
import urllib.parse
@@ -20,16 +20,18 @@
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -43,7 +45,7 @@ def build_list_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -85,7 +87,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -133,7 +135,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -184,7 +186,7 @@ def build_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -235,7 +237,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -321,7 +323,7 @@ def list(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ProjectEnvironmentTypeListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -341,7 +343,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -357,7 +358,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -404,7 +404,7 @@ def get(
:rtype: ~azure.mgmt.devcenter.models.ProjectEnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -427,7 +427,6 @@ def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -442,7 +441,7 @@ def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response)
+ deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -534,7 +533,7 @@ def create_or_update(
:rtype: ~azure.mgmt.devcenter.models.ProjectEnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -569,7 +568,6 @@ def create_or_update(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -584,11 +582,7 @@ def create_or_update(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response)
+ deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -680,7 +674,7 @@ def update(
:rtype: ~azure.mgmt.devcenter.models.ProjectEnvironmentType
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -715,7 +709,6 @@ def update(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -730,7 +723,7 @@ def update(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response)
+ deserialized = self._deserialize("ProjectEnvironmentType", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -754,7 +747,7 @@ def delete( # pylint: disable=inconsistent-return-statements
:rtype: None
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -777,7 +770,6 @@ def delete( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_policies_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_policies_operations.py
new file mode 100644
index 000000000000..ba9b38095e8e
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_project_policies_operations.py
@@ -0,0 +1,986 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+from io import IOBase
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
+import urllib.parse
+
+from azure.core.exceptions import (
+ ClientAuthenticationError,
+ HttpResponseError,
+ ResourceExistsError,
+ ResourceNotFoundError,
+ ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
+ map_error,
+)
+from azure.core.paging import ItemPaged
+from azure.core.pipeline import PipelineResponse
+from azure.core.polling import LROPoller, NoPolling, PollingMethod
+from azure.core.rest import HttpRequest, HttpResponse
+from azure.core.tracing.decorator import distributed_trace
+from azure.core.utils import case_insensitive_dict
+from azure.mgmt.core.exceptions import ARMErrorFormat
+from azure.mgmt.core.polling.arm_polling import ARMPolling
+
+from .. import models as _models
+from .._serialization import Serializer
+
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
+T = TypeVar("T")
+ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
+
+_SERIALIZER = Serializer()
+_SERIALIZER.client_side_validation = False
+
+
+def build_list_by_dev_center_request(
+ resource_group_name: str, dev_center_name: str, subscription_id: str, *, top: Optional[int] = None, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/projectPolicies",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+ if top is not None:
+ _params["$top"] = _SERIALIZER.query("top", top, "int")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_get_request(
+ resource_group_name: str, dev_center_name: str, project_policy_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/projectPolicies/{projectPolicyName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "projectPolicyName": _SERIALIZER.url(
+ "project_policy_name",
+ project_policy_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="GET", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_create_or_update_request(
+ resource_group_name: str, dev_center_name: str, project_policy_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/projectPolicies/{projectPolicyName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "projectPolicyName": _SERIALIZER.url(
+ "project_policy_name",
+ project_policy_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PUT", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_update_request(
+ resource_group_name: str, dev_center_name: str, project_policy_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/projectPolicies/{projectPolicyName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "projectPolicyName": _SERIALIZER.url(
+ "project_policy_name",
+ project_policy_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ if content_type is not None:
+ _headers["Content-Type"] = _SERIALIZER.header("content_type", content_type, "str")
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="PATCH", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+def build_delete_request(
+ resource_group_name: str, dev_center_name: str, project_policy_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/devcenters/{devCenterName}/projectPolicies/{projectPolicyName}",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "devCenterName": _SERIALIZER.url(
+ "dev_center_name",
+ dev_center_name,
+ "str",
+ max_length=26,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-]{2,25}$",
+ ),
+ "projectPolicyName": _SERIALIZER.url(
+ "project_policy_name",
+ project_policy_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs)
+
+
+class ProjectPoliciesOperations:
+ """
+ .. warning::
+ **DO NOT** instantiate this class directly.
+
+ Instead, you should access the following operations through
+ :class:`~azure.mgmt.devcenter.DevCenterMgmtClient`'s
+ :attr:`project_policies` attribute.
+ """
+
+ models = _models
+
+ def __init__(self, *args, **kwargs):
+ input_args = list(args)
+ self._client = input_args.pop(0) if input_args else kwargs.pop("client")
+ self._config = input_args.pop(0) if input_args else kwargs.pop("config")
+ self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
+ self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+
+ @distributed_trace
+ def list_by_dev_center(
+ self, resource_group_name: str, dev_center_name: str, top: Optional[int] = None, **kwargs: Any
+ ) -> Iterable["_models.ProjectPolicy"]:
+ """Lists all project policies in the dev center.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param top: The maximum number of resources to return from the operation. Example: '$top=10'.
+ Default value is None.
+ :type top: int
+ :return: An iterator like instance of either ProjectPolicy or the result of cls(response)
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ProjectPolicyListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_dev_center_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ subscription_id=self._config.subscription_id,
+ top=top,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = self._deserialize("ProjectPolicyListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
+ @distributed_trace
+ def get(
+ self, resource_group_name: str, dev_center_name: str, project_policy_name: str, **kwargs: Any
+ ) -> _models.ProjectPolicy:
+ """Gets a specific project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :return: ProjectPolicy or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.ProjectPolicy
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.ProjectPolicy] = kwargs.pop("cls", None)
+
+ _request = build_get_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("ProjectPolicy", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ def _create_or_update_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: Union[_models.ProjectPolicy, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _json = None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _json = self._serialize.body(body, "ProjectPolicy")
+
+ _request = build_create_or_update_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ content_type=content_type,
+ json=_json,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: _models.ProjectPolicy,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ProjectPolicy]:
+ """Creates or updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Represents an project policy. Required.
+ :type body: ~azure.mgmt.devcenter.models.ProjectPolicy
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ProjectPolicy]:
+ """Creates or updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Represents an project policy. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_create_or_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: Union[_models.ProjectPolicy, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.ProjectPolicy]:
+ """Creates or updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Represents an project policy. Is either a ProjectPolicy type or a IO[bytes] type.
+ Required.
+ :type body: ~azure.mgmt.devcenter.models.ProjectPolicy or IO[bytes]
+ :return: An instance of LROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ProjectPolicy] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._create_or_update_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ body=body,
+ api_version=api_version,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ deserialized = self._deserialize("ProjectPolicy", pipeline_response.http_response)
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.ProjectPolicy].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.ProjectPolicy](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _update_initial(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: Union[_models.ProjectPolicyUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ content_type = content_type or "application/json"
+ _json = None
+ _content = None
+ if isinstance(body, (IOBase, bytes)):
+ _content = body
+ else:
+ _json = self._serialize.body(body, "ProjectPolicyUpdate")
+
+ _request = build_update_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ content_type=content_type,
+ json=_json,
+ content=_content,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: _models.ProjectPolicyUpdate,
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ProjectPolicy]:
+ """Partially updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Updatable project policy properties. Required.
+ :type body: ~azure.mgmt.devcenter.models.ProjectPolicyUpdate
+ :keyword content_type: Body Parameter content-type. Content type parameter for JSON body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @overload
+ def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: IO[bytes],
+ *,
+ content_type: str = "application/json",
+ **kwargs: Any
+ ) -> LROPoller[_models.ProjectPolicy]:
+ """Partially updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Updatable project policy properties. Required.
+ :type body: IO[bytes]
+ :keyword content_type: Body Parameter content-type. Content type parameter for binary body.
+ Default value is "application/json".
+ :paramtype content_type: str
+ :return: An instance of LROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+
+ @distributed_trace
+ def begin_update(
+ self,
+ resource_group_name: str,
+ dev_center_name: str,
+ project_policy_name: str,
+ body: Union[_models.ProjectPolicyUpdate, IO[bytes]],
+ **kwargs: Any
+ ) -> LROPoller[_models.ProjectPolicy]:
+ """Partially updates an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :param body: Updatable project policy properties. Is either a ProjectPolicyUpdate type or a
+ IO[bytes] type. Required.
+ :type body: ~azure.mgmt.devcenter.models.ProjectPolicyUpdate or IO[bytes]
+ :return: An instance of LROPoller that returns either ProjectPolicy or the result of
+ cls(response)
+ :rtype: ~azure.core.polling.LROPoller[~azure.mgmt.devcenter.models.ProjectPolicy]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
+ cls: ClsType[_models.ProjectPolicy] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._update_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ body=body,
+ api_version=api_version,
+ content_type=content_type,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response):
+ deserialized = self._deserialize("ProjectPolicy", pipeline_response.http_response)
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+ return deserialized
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[_models.ProjectPolicy].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[_models.ProjectPolicy](
+ self._client, raw_result, get_long_running_output, polling_method # type: ignore
+ )
+
+ def _delete_initial(
+ self, resource_group_name: str, dev_center_name: str, project_policy_name: str, **kwargs: Any
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
+
+ _request = build_delete_request(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ response_headers = {}
+ if response.status_code == 202:
+ response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
+ if cls:
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
+
+ @distributed_trace
+ def begin_delete(
+ self, resource_group_name: str, dev_center_name: str, project_policy_name: str, **kwargs: Any
+ ) -> LROPoller[None]:
+ """Deletes an project policy.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param dev_center_name: The name of the devcenter. Required.
+ :type dev_center_name: str
+ :param project_policy_name: The name of the project policy. Required.
+ :type project_policy_name: str
+ :return: An instance of LROPoller that returns either None or the result of cls(response)
+ :rtype: ~azure.core.polling.LROPoller[None]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[None] = kwargs.pop("cls", None)
+ polling: Union[bool, PollingMethod] = kwargs.pop("polling", True)
+ lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
+ cont_token: Optional[str] = kwargs.pop("continuation_token", None)
+ if cont_token is None:
+ raw_result = self._delete_initial(
+ resource_group_name=resource_group_name,
+ dev_center_name=dev_center_name,
+ project_policy_name=project_policy_name,
+ api_version=api_version,
+ cls=lambda x, y, z: x,
+ headers=_headers,
+ params=_params,
+ **kwargs
+ )
+ raw_result.http_response.read() # type: ignore
+ kwargs.pop("error_map", None)
+
+ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
+ if cls:
+ return cls(pipeline_response, None, {}) # type: ignore
+
+ if polling is True:
+ polling_method: PollingMethod = cast(
+ PollingMethod, ARMPolling(lro_delay, lro_options={"final-state-via": "azure-async-operation"}, **kwargs)
+ )
+ elif polling is False:
+ polling_method = cast(PollingMethod, NoPolling())
+ else:
+ polling_method = polling
+ if cont_token:
+ return LROPoller[None].from_continuation_token(
+ polling_method=polling_method,
+ continuation_token=cont_token,
+ client=self._client,
+ deserialization_callback=get_long_running_output,
+ )
+ return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_projects_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_projects_operations.py
index 10ee30f0a9ab..546665249599 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_projects_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_projects_operations.py
@@ -1,4 +1,4 @@
-# pylint: disable=too-many-lines,too-many-statements
+# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +7,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.exceptions import (
@@ -16,13 +17,14 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
from azure.core.polling import LROPoller, NoPolling, PollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
@@ -30,8 +32,11 @@
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -45,7 +50,7 @@ def build_list_by_subscription_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -73,7 +78,7 @@ def build_list_by_resource_group_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -105,7 +110,7 @@ def build_get_request(resource_group_name: str, project_name: str, subscription_
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -145,7 +150,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -188,7 +193,7 @@ def build_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -231,7 +236,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -265,6 +270,46 @@ def build_delete_request(
return HttpRequest(method="DELETE", url=_url, params=_params, headers=_headers, **kwargs)
+def build_get_inherited_settings_request(
+ resource_group_name: str, project_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/getInheritedSettings",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
class ProjectsOperations:
"""
.. warning::
@@ -301,7 +346,7 @@ def list_by_subscription(self, top: Optional[int] = None, **kwargs: Any) -> Iter
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ProjectListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -319,7 +364,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -335,7 +379,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -387,7 +430,7 @@ def list_by_resource_group(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ProjectListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -406,7 +449,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -422,7 +464,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -465,7 +506,7 @@ def get(self, resource_group_name: str, project_name: str, **kwargs: Any) -> _mo
:rtype: ~azure.mgmt.devcenter.models.Project
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -487,7 +528,6 @@ def get(self, resource_group_name: str, project_name: str, **kwargs: Any) -> _mo
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -502,7 +542,7 @@ def get(self, resource_group_name: str, project_name: str, **kwargs: Any) -> _mo
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Project", pipeline_response)
+ deserialized = self._deserialize("Project", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -511,8 +551,8 @@ def get(self, resource_group_name: str, project_name: str, **kwargs: Any) -> _mo
def _create_or_update_initial(
self, resource_group_name: str, project_name: str, body: Union[_models.Project, IO[bytes]], **kwargs: Any
- ) -> _models.Project:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -525,7 +565,7 @@ def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Project] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -546,10 +586,10 @@ def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -557,15 +597,15 @@ def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Project", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Project", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -664,10 +704,11 @@ def begin_create_or_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Project", pipeline_response)
+ deserialized = self._deserialize("Project", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -693,8 +734,8 @@ def get_long_running_output(pipeline_response):
def _update_initial(
self, resource_group_name: str, project_name: str, body: Union[_models.ProjectUpdate, IO[bytes]], **kwargs: Any
- ) -> Optional[_models.Project]:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -707,7 +748,7 @@ def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.Project]] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -728,10 +769,10 @@ def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -739,18 +780,20 @@ def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("Project", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -849,10 +892,11 @@ def begin_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Project", pipeline_response)
+ deserialized = self._deserialize("Project", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -876,10 +920,8 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial( # pylint: disable=inconsistent-return-statements
- self, resource_group_name: str, project_name: str, **kwargs: Any
- ) -> None:
- error_map = {
+ def _delete_initial(self, resource_group_name: str, project_name: str, **kwargs: Any) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -891,7 +933,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -901,10 +943,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -912,6 +954,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -920,8 +966,12 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_delete(self, resource_group_name: str, project_name: str, **kwargs: Any) -> LROPoller[None]:
@@ -945,7 +995,7 @@ def begin_delete(self, resource_group_name: str, project_name: str, **kwargs: An
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial( # type: ignore
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
project_name=project_name,
api_version=api_version,
@@ -954,6 +1004,7 @@ def begin_delete(self, resource_group_name: str, project_name: str, **kwargs: An
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
@@ -976,3 +1027,61 @@ def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-
deserialization_callback=get_long_running_output,
)
return LROPoller[None](self._client, raw_result, get_long_running_output, polling_method) # type: ignore
+
+ @distributed_trace
+ def get_inherited_settings(
+ self, resource_group_name: str, project_name: str, **kwargs: Any
+ ) -> _models.InheritedSettingsForProject:
+ """Gets applicable inherited settings for this project.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :return: InheritedSettingsForProject or the result of cls(response)
+ :rtype: ~azure.mgmt.devcenter.models.InheritedSettingsForProject
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.InheritedSettingsForProject] = kwargs.pop("cls", None)
+
+ _request = build_get_inherited_settings_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ deserialized = self._deserialize("InheritedSettingsForProject", pipeline_response.http_response)
+
+ if cls:
+ return cls(pipeline_response, deserialized, {}) # type: ignore
+
+ return deserialized # type: ignore
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_schedules_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_schedules_operations.py
index a6b3c6848c56..54e4be3b18b7 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_schedules_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_schedules_operations.py
@@ -1,4 +1,4 @@
-# pylint: disable=too-many-lines,too-many-statements
+# pylint: disable=too-many-lines
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -7,7 +7,8 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
from io import IOBase
-from typing import Any, Callable, Dict, IO, Iterable, Optional, TypeVar, Union, cast, overload
+import sys
+from typing import Any, Callable, Dict, IO, Iterable, Iterator, Optional, TypeVar, Union, cast, overload
import urllib.parse
from azure.core.exceptions import (
@@ -16,13 +17,14 @@
ResourceExistsError,
ResourceNotFoundError,
ResourceNotModifiedError,
+ StreamClosedError,
+ StreamConsumedError,
map_error,
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
from azure.core.polling import LROPoller, NoPolling, PollingMethod
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
@@ -30,8 +32,11 @@
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -51,7 +56,7 @@ def build_list_by_pool_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -103,7 +108,7 @@ def build_get_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -158,7 +163,7 @@ def build_create_or_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -216,7 +221,7 @@ def build_update_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
accept = _headers.pop("Accept", "application/json")
@@ -274,7 +279,7 @@ def build_delete_request(
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -361,7 +366,7 @@ def list_by_pool(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ScheduleListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -382,7 +387,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -398,7 +402,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
@@ -456,7 +459,7 @@ def get(
:rtype: ~azure.mgmt.devcenter.models.Schedule
:raises ~azure.core.exceptions.HttpResponseError:
"""
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -481,7 +484,6 @@ def get(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_stream = False
@@ -496,7 +498,7 @@ def get(
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = self._deserialize("Schedule", pipeline_response)
+ deserialized = self._deserialize("Schedule", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -512,8 +514,8 @@ def _create_or_update_initial(
body: Union[_models.Schedule, IO[bytes]],
top: Optional[int] = None,
**kwargs: Any
- ) -> _models.Schedule:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -526,7 +528,7 @@ def _create_or_update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[_models.Schedule] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -550,10 +552,10 @@ def _create_or_update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -561,15 +563,15 @@ def _create_or_update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 201]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- if response.status_code == 200:
- deserialized = self._deserialize("Schedule", pipeline_response)
-
- if response.status_code == 201:
- deserialized = self._deserialize("Schedule", pipeline_response)
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
@@ -706,10 +708,11 @@ def begin_create_or_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Schedule", pipeline_response)
+ deserialized = self._deserialize("Schedule", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -742,8 +745,8 @@ def _update_initial(
body: Union[_models.ScheduleUpdate, IO[bytes]],
top: Optional[int] = None,
**kwargs: Any
- ) -> Optional[_models.Schedule]:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -756,7 +759,7 @@ def _update_initial(
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
content_type: Optional[str] = kwargs.pop("content_type", _headers.pop("Content-Type", None))
- cls: ClsType[Optional[_models.Schedule]] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
content_type = content_type or "application/json"
_json = None
@@ -780,10 +783,10 @@ def _update_initial(
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -791,18 +794,20 @@ def _update_initial(
response = pipeline_response.http_response
if response.status_code not in [200, 202]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
- deserialized = None
response_headers = {}
- if response.status_code == 200:
- deserialized = self._deserialize("Schedule", pipeline_response)
-
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
return cls(pipeline_response, deserialized, response_headers) # type: ignore
@@ -938,10 +943,11 @@ def begin_update(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response):
- deserialized = self._deserialize("Schedule", pipeline_response)
+ deserialized = self._deserialize("Schedule", pipeline_response.http_response)
if cls:
return cls(pipeline_response, deserialized, {}) # type: ignore
return deserialized
@@ -965,7 +971,7 @@ def get_long_running_output(pipeline_response):
self._client, raw_result, get_long_running_output, polling_method # type: ignore
)
- def _delete_initial( # pylint: disable=inconsistent-return-statements
+ def _delete_initial(
self,
resource_group_name: str,
project_name: str,
@@ -973,8 +979,8 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
schedule_name: str,
top: Optional[int] = None,
**kwargs: Any
- ) -> None:
- error_map = {
+ ) -> Iterator[bytes]:
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -986,7 +992,7 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
- cls: ClsType[None] = kwargs.pop("cls", None)
+ cls: ClsType[Iterator[bytes]] = kwargs.pop("cls", None)
_request = build_delete_request(
resource_group_name=resource_group_name,
@@ -999,10 +1005,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
- _stream = False
+ _decompress = kwargs.pop("decompress", True)
+ _stream = True
pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
_request, stream=_stream, **kwargs
)
@@ -1010,6 +1016,10 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
response = pipeline_response.http_response
if response.status_code not in [202, 204]:
+ try:
+ response.read() # Load the body in memory and close the socket
+ except (StreamConsumedError, StreamClosedError):
+ pass
map_error(status_code=response.status_code, response=response, error_map=error_map)
error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
@@ -1018,8 +1028,12 @@ def _delete_initial( # pylint: disable=inconsistent-return-statements
if response.status_code == 202:
response_headers["Location"] = self._deserialize("str", response.headers.get("Location"))
+ deserialized = response.stream_download(self._client._pipeline, decompress=_decompress)
+
if cls:
- return cls(pipeline_response, None, response_headers) # type: ignore
+ return cls(pipeline_response, deserialized, response_headers) # type: ignore
+
+ return deserialized # type: ignore
@distributed_trace
def begin_delete(
@@ -1058,7 +1072,7 @@ def begin_delete(
lro_delay = kwargs.pop("polling_interval", self._config.polling_interval)
cont_token: Optional[str] = kwargs.pop("continuation_token", None)
if cont_token is None:
- raw_result = self._delete_initial( # type: ignore
+ raw_result = self._delete_initial(
resource_group_name=resource_group_name,
project_name=project_name,
pool_name=pool_name,
@@ -1070,6 +1084,7 @@ def begin_delete(
params=_params,
**kwargs
)
+ raw_result.http_response.read() # type: ignore
kwargs.pop("error_map", None)
def get_long_running_output(pipeline_response): # pylint: disable=inconsistent-return-statements
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_skus_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_skus_operations.py
index ec3106003df8..2394fc482211 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_skus_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_skus_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, Callable, Dict, Iterable, Optional, TypeVar
import urllib.parse
@@ -19,16 +19,18 @@
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -36,13 +38,53 @@
_SERIALIZER.client_side_validation = False
+def build_list_by_project_request(
+ resource_group_name: str, project_name: str, subscription_id: str, **kwargs: Any
+) -> HttpRequest:
+ _headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
+ accept = _headers.pop("Accept", "application/json")
+
+ # Construct URL
+ _url = kwargs.pop(
+ "template_url",
+ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevCenter/projects/{projectName}/listSkus",
+ ) # pylint: disable=line-too-long
+ path_format_arguments = {
+ "subscriptionId": _SERIALIZER.url("subscription_id", subscription_id, "str", min_length=1),
+ "resourceGroupName": _SERIALIZER.url(
+ "resource_group_name", resource_group_name, "str", max_length=90, min_length=1
+ ),
+ "projectName": _SERIALIZER.url(
+ "project_name",
+ project_name,
+ "str",
+ max_length=63,
+ min_length=3,
+ pattern=r"^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$",
+ ),
+ }
+
+ _url: str = _url.format(**path_format_arguments) # type: ignore
+
+ # Construct parameters
+ _params["api-version"] = _SERIALIZER.query("api_version", api_version, "str")
+
+ # Construct headers
+ _headers["Accept"] = _SERIALIZER.header("accept", accept, "str")
+
+ return HttpRequest(method="POST", url=_url, params=_params, headers=_headers, **kwargs)
+
+
def build_list_by_subscription_request(
subscription_id: str, *, top: Optional[int] = None, **kwargs: Any
) -> HttpRequest:
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -83,6 +125,90 @@ def __init__(self, *args, **kwargs):
self._serialize = input_args.pop(0) if input_args else kwargs.pop("serializer")
self._deserialize = input_args.pop(0) if input_args else kwargs.pop("deserializer")
+ @distributed_trace
+ def list_by_project(
+ self, resource_group_name: str, project_name: str, **kwargs: Any
+ ) -> Iterable["_models.DevCenterSku"]:
+ """Lists SKUs available to the project.
+
+ :param resource_group_name: The name of the resource group. The name is case insensitive.
+ Required.
+ :type resource_group_name: str
+ :param project_name: The name of the project. Required.
+ :type project_name: str
+ :return: An iterator like instance of either DevCenterSku or the result of cls(response)
+ :rtype: ~azure.core.paging.ItemPaged[~azure.mgmt.devcenter.models.DevCenterSku]
+ :raises ~azure.core.exceptions.HttpResponseError:
+ """
+ _headers = kwargs.pop("headers", {}) or {}
+ _params = case_insensitive_dict(kwargs.pop("params", {}) or {})
+
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
+ cls: ClsType[_models.SkuListResult] = kwargs.pop("cls", None)
+
+ error_map: MutableMapping = {
+ 401: ClientAuthenticationError,
+ 404: ResourceNotFoundError,
+ 409: ResourceExistsError,
+ 304: ResourceNotModifiedError,
+ }
+ error_map.update(kwargs.pop("error_map", {}) or {})
+
+ def prepare_request(next_link=None):
+ if not next_link:
+
+ _request = build_list_by_project_request(
+ resource_group_name=resource_group_name,
+ project_name=project_name,
+ subscription_id=self._config.subscription_id,
+ api_version=api_version,
+ headers=_headers,
+ params=_params,
+ )
+ _request.url = self._client.format_url(_request.url)
+
+ else:
+ # make call to next link with the client's api-version
+ _parsed_next_link = urllib.parse.urlparse(next_link)
+ _next_request_params = case_insensitive_dict(
+ {
+ key: [urllib.parse.quote(v) for v in value]
+ for key, value in urllib.parse.parse_qs(_parsed_next_link.query).items()
+ }
+ )
+ _next_request_params["api-version"] = self._config.api_version
+ _request = HttpRequest(
+ "GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
+ )
+ _request.url = self._client.format_url(_request.url)
+ _request.method = "GET"
+ return _request
+
+ def extract_data(pipeline_response):
+ deserialized = self._deserialize("SkuListResult", pipeline_response)
+ list_of_elem = deserialized.value
+ if cls:
+ list_of_elem = cls(list_of_elem) # type: ignore
+ return deserialized.next_link or None, iter(list_of_elem)
+
+ def get_next(next_link=None):
+ _request = prepare_request(next_link)
+
+ _stream = False
+ pipeline_response: PipelineResponse = self._client._pipeline.run( # pylint: disable=protected-access
+ _request, stream=_stream, **kwargs
+ )
+ response = pipeline_response.http_response
+
+ if response.status_code not in [200]:
+ map_error(status_code=response.status_code, response=response, error_map=error_map)
+ error = self._deserialize.failsafe_deserialize(_models.ErrorResponse, pipeline_response)
+ raise HttpResponseError(response=response, model=error, error_format=ARMErrorFormat)
+
+ return pipeline_response
+
+ return ItemPaged(get_next, extract_data)
+
@distributed_trace
def list_by_subscription(self, top: Optional[int] = None, **kwargs: Any) -> Iterable["_models.DevCenterSku"]:
"""Lists the Microsoft.DevCenter SKUs available in a subscription.
@@ -100,7 +226,7 @@ def list_by_subscription(self, top: Optional[int] = None, **kwargs: Any) -> Iter
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.SkuListResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -118,7 +244,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -134,7 +259,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
diff --git a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_usages_operations.py b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_usages_operations.py
index a5a88b0e59ff..9b13230a563a 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_usages_operations.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/azure/mgmt/devcenter/operations/_usages_operations.py
@@ -1,4 +1,3 @@
-# pylint: disable=too-many-lines,too-many-statements
# coding=utf-8
# --------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
@@ -6,6 +5,7 @@
# Code generated by Microsoft (R) AutoRest Code Generator.
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
+import sys
from typing import Any, Callable, Dict, Iterable, Optional, TypeVar
import urllib.parse
@@ -19,16 +19,18 @@
)
from azure.core.paging import ItemPaged
from azure.core.pipeline import PipelineResponse
-from azure.core.pipeline.transport import HttpResponse
-from azure.core.rest import HttpRequest
+from azure.core.rest import HttpRequest, HttpResponse
from azure.core.tracing.decorator import distributed_trace
from azure.core.utils import case_insensitive_dict
from azure.mgmt.core.exceptions import ARMErrorFormat
from .. import models as _models
from .._serialization import Serializer
-from .._vendor import _convert_request
+if sys.version_info >= (3, 9):
+ from collections.abc import MutableMapping
+else:
+ from typing import MutableMapping # type: ignore
T = TypeVar("T")
ClsType = Optional[Callable[[PipelineResponse[HttpRequest, HttpResponse], T, Dict[str, Any]], Any]]
@@ -40,7 +42,7 @@ def build_list_by_location_request(location: str, subscription_id: str, **kwargs
_headers = case_insensitive_dict(kwargs.pop("headers", {}) or {})
_params = case_insensitive_dict(kwargs.pop("params", {}) or {})
- api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2024-02-01"))
+ api_version: str = kwargs.pop("api_version", _params.pop("api-version", "2025-04-01-preview"))
accept = _headers.pop("Accept", "application/json")
# Construct URL
@@ -98,7 +100,7 @@ def list_by_location(self, location: str, **kwargs: Any) -> Iterable["_models.Us
api_version: str = kwargs.pop("api_version", _params.pop("api-version", self._config.api_version))
cls: ClsType[_models.ListUsagesResult] = kwargs.pop("cls", None)
- error_map = {
+ error_map: MutableMapping = {
401: ClientAuthenticationError,
404: ResourceNotFoundError,
409: ResourceExistsError,
@@ -116,7 +118,6 @@ def prepare_request(next_link=None):
headers=_headers,
params=_params,
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
else:
@@ -132,7 +133,6 @@ def prepare_request(next_link=None):
_request = HttpRequest(
"GET", urllib.parse.urljoin(next_link, _parsed_next_link.path), params=_next_request_params
)
- _request = _convert_request(_request)
_request.url = self._client.format_url(_request.url)
_request.method = "GET"
return _request
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_create.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_create.py
index 3f6a00e69853..8682e426faff 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_create.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_create.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -45,6 +43,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/AttachedNetworks_Create.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/AttachedNetworks_Create.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_delete.py
index b2edc1334f1f..fe6620cefbba 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_delete.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/AttachedNetworks_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/AttachedNetworks_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_get_by_dev_center.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_get_by_dev_center.py
index 218fd1b280db..72acbbd51db0 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_get_by_dev_center.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_get_by_dev_center.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/AttachedNetworks_GetByDevCenter.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/AttachedNetworks_GetByDevCenter.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_get_by_project.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_get_by_project.py
index c19d1017c02b..9752f53f5f42 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_get_by_project.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_get_by_project.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/AttachedNetworks_GetByProject.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/AttachedNetworks_GetByProject.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_list_by_dev_center.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_list_by_dev_center.py
index 604b19160c3e..0510be4fe8ae 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_list_by_dev_center.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_list_by_dev_center.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/AttachedNetworks_ListByDevCenter.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/AttachedNetworks_ListByDevCenter.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_list_by_project.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_list_by_project.py
index acb38fe54f3f..ba0122061ca7 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_list_by_project.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/attached_networks_list_by_project.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/AttachedNetworks_ListByProject.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/AttachedNetworks_ListByProject.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_connect.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_connect.py
index c74265e87403..853d301c4535 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_connect.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_connect.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Catalogs_Connect.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Catalogs_Connect.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_create_ado.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_create_ado.py
index e5dcc6ce3e5e..280cfb055b41 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_create_ado.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_create_ado.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -51,6 +49,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Catalogs_CreateAdo.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Catalogs_CreateAdo.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_create_git_hub.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_create_git_hub.py
index 043e4a3a108f..258a5b93a007 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_create_git_hub.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_create_git_hub.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -51,6 +49,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Catalogs_CreateGitHub.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Catalogs_CreateGitHub.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_delete.py
index 03d94e130907..1ea7ee840414 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_delete.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Catalogs_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Catalogs_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_get.py
index 152d1cfce4bf..25a19496d6b1 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Catalogs_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Catalogs_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_get_sync_error_details.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_get_sync_error_details.py
index 81f4d08be5f1..3682b0be6e34 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_get_sync_error_details.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_get_sync_error_details.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Catalogs_GetSyncErrorDetails.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Catalogs_GetSyncErrorDetails.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_list.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_list.py
index dd4049d26bdc..16a194a606b7 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_list.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Catalogs_List.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Catalogs_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_patch.py
index 5c14bf336301..ca071b50b39e 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_patch.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_patch.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -41,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Catalogs_Patch.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Catalogs_Patch.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_sync.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_sync.py
index 83320924e564..38f3c3beca9c 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_sync.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/catalogs_sync.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Catalogs_Sync.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Catalogs_Sync.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_name_availability.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_name_availability.py
index e69ccfe01d39..f053c7a9bef0 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_name_availability.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_name_availability.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -38,6 +36,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/CheckNameAvailability.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/CheckNameAvailability.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_scoped_name_availability_dev_center_catalog.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_scoped_name_availability_dev_center_catalog.py
index a6505f79c1fa..e8a3ea0ebe71 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_scoped_name_availability_dev_center_catalog.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_scoped_name_availability_dev_center_catalog.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -42,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/CheckScopedNameAvailability_DevCenterCatalog.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/CheckScopedNameAvailability_DevCenterCatalog.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_scoped_name_availability_project_catalog.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_scoped_name_availability_project_catalog.py
index 5f8c9990b2f6..62f41d329653 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_scoped_name_availability_project_catalog.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/check_scoped_name_availability_project_catalog.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -42,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/CheckScopedNameAvailability_ProjectCatalog.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/CheckScopedNameAvailability_ProjectCatalog.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/customization_tasks_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/customization_tasks_get.py
new file mode 100644
index 000000000000..3a618219d54a
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/customization_tasks_get.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python customization_tasks_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.customization_tasks.get(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ catalog_name="CentralCatalog",
+ task_name="SampleTask",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/CustomizationTasks_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/customization_tasks_get_error_details.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/customization_tasks_get_error_details.py
new file mode 100644
index 000000000000..dffcb7d0c873
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/customization_tasks_get_error_details.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python customization_tasks_get_error_details.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.customization_tasks.get_error_details(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ catalog_name="CentralCatalog",
+ task_name="SampleTask",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/CustomizationTasks_GetErrorDetails.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/customization_tasks_list_by_catalog.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/customization_tasks_list_by_catalog.py
new file mode 100644
index 000000000000..32af16345b81
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/customization_tasks_list_by_catalog.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python customization_tasks_list_by_catalog.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.customization_tasks.list_by_catalog(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ catalog_name="CentralCatalog",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/CustomizationTasks_ListByCatalog.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_create.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_create.py
index d23e8a3ec991..9f8b29180026 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_create.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_create.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -41,7 +39,7 @@ def main():
"properties": {
"hibernateSupport": "Enabled",
"imageReference": {
- "id": "/subscriptions/0ac520ee-14c0-480f-b6c9-0a90c58ffff/resourceGroups/Example/providers/Microsoft.DevCenter/devcenters/Contoso/galleries/contosogallery/images/exampleImage/version/1.0.0"
+ "id": "/subscriptions/0ac520ee-14c0-480f-b6c9-0a90c58ffff/resourceGroups/Example/providers/Microsoft.DevCenter/devcenters/Contoso/galleries/contosogallery/images/exampleImage/versions/1.0.0"
},
"sku": {"name": "Preview"},
},
@@ -50,6 +48,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevBoxDefinitions_Create.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevBoxDefinitions_Create.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_delete.py
index c4504be9e50c..51403511c0fb 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_delete.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevBoxDefinitions_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevBoxDefinitions_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_get.py
index c052734a0862..31256924e8e8 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevBoxDefinitions_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevBoxDefinitions_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_get_by_project.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_get_by_project.py
index 214c95a54e71..aac1dc178f52 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_get_by_project.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_get_by_project.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevBoxDefinitions_GetByProject.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevBoxDefinitions_GetByProject.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_list_by_dev_center.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_list_by_dev_center.py
index bb53b48684b0..9d2508cbc30a 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_list_by_dev_center.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_list_by_dev_center.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevBoxDefinitions_ListByDevCenter.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevBoxDefinitions_ListByDevCenter.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_list_by_project.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_list_by_project.py
index 204e61f117b2..8b861bb89161 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_list_by_project.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_list_by_project.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevBoxDefinitions_ListByProject.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevBoxDefinitions_ListByProject.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_patch.py
index 9e888ae265e0..d563a60a912c 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_patch.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_box_definitions_patch.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -47,6 +45,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevBoxDefinitions_Patch.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevBoxDefinitions_Patch.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_create.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_create.py
new file mode 100644
index 000000000000..832219013f7b
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_create.py
@@ -0,0 +1,56 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_center_encryption_sets_create.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.encryption_sets.begin_create_or_update(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ encryption_set_name="EncryptionWestUs",
+ body={
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/identityGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testidentity1": {}
+ },
+ },
+ "location": "westus",
+ "properties": {
+ "devboxDisksEncryptionEnableStatus": "Enabled",
+ "keyEncryptionKeyUrl": "https://contosovaultwestus.vault.azure.net/keys/contosokek",
+ },
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenterEncryptionSets_Create.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_delete.py
new file mode 100644
index 000000000000..d20b10876e85
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_delete.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_center_encryption_sets_delete.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ client.encryption_sets.begin_delete(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ encryption_set_name="EncryptionWestUs",
+ ).result()
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenterEncryptionSets_Delete.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_get.py
new file mode 100644
index 000000000000..75be7af4dea9
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_get.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_center_encryption_sets_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.encryption_sets.get(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ encryption_set_name="EncryptionWestUs",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenterEncryptionSets_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_list.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_list.py
new file mode 100644
index 000000000000..58d31126c0e2
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_list.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_center_encryption_sets_list.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.encryption_sets.list(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenterEncryptionSets_List.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_patch.py
new file mode 100644
index 000000000000..2fc65eb3484d
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_encryption_sets_patch.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_center_encryption_sets_patch.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.encryption_sets.begin_update(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ encryption_set_name="EncryptionWestUs",
+ body={"properties": {"devboxDisksEncryptionEnableStatus": "Enabled"}},
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenterEncryptionSets_Patch.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_build_image.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_build_image.py
new file mode 100644
index 000000000000..abe0edcd79b1
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_build_image.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_center_image_definitions_build_image.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ client.dev_center_catalog_image_definitions.begin_build_image(
+ resource_group_name="rg1",
+ dev_center_name="DevDevCenter",
+ catalog_name="CentralCatalog",
+ image_definition_name="DefaultDevImage",
+ ).result()
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenterImageDefinitions_BuildImage.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_cancel_image_build.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_cancel_image_build.py
new file mode 100644
index 000000000000..0d7e0dfff118
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_cancel_image_build.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_center_image_definitions_cancel_image_build.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ client.dev_center_catalog_image_definition_build.begin_cancel(
+ resource_group_name="rg1",
+ dev_center_name="DevDevCenter",
+ catalog_name="CentralCatalog",
+ image_definition_name="DefaultDevImage",
+ build_name="0a28fc61-6f87-4611-8fe2-32df44ab93b7",
+ ).result()
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenterImageDefinitions_CancelImageBuild.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_get_error_details.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_get_error_details.py
new file mode 100644
index 000000000000..6e451fab9fdc
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_get_error_details.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_center_image_definitions_get_error_details.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.dev_center_catalog_image_definitions.get_error_details(
+ resource_group_name="rg1",
+ dev_center_name="DevDevCenter",
+ catalog_name="TeamCatalog",
+ image_definition_name="WebDevBox",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenterImageDefinitions_GetErrorDetails.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_get_image_build.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_get_image_build.py
new file mode 100644
index 000000000000..9683993c97c5
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_get_image_build.py
@@ -0,0 +1,45 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_center_image_definitions_get_image_build.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.dev_center_catalog_image_definition_build.get(
+ resource_group_name="rg1",
+ dev_center_name="DevDevCenter",
+ catalog_name="CentralCatalog",
+ image_definition_name="DefaultDevImage",
+ build_name="0a28fc61-6f87-4611-8fe2-32df44ab93b7",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenterImageDefinitions_GetImageBuild.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_get_image_build_details.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_get_image_build_details.py
new file mode 100644
index 000000000000..db7383890ef5
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_get_image_build_details.py
@@ -0,0 +1,45 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_center_image_definitions_get_image_build_details.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.dev_center_catalog_image_definition_build.get_build_details(
+ resource_group_name="rg1",
+ dev_center_name="DevDevCenter",
+ catalog_name="CentralCatalog",
+ image_definition_name="DefaultDevImage",
+ build_name="0a28fc61-6f87-4611-8fe2-32df44ab93b7",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenterImageDefinitions_GetImageBuildDetails.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_list_image_builds_by_image_definition.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_list_image_builds_by_image_definition.py
new file mode 100644
index 000000000000..7c2a68384e68
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_center_image_definitions_list_image_builds_by_image_definition.py
@@ -0,0 +1,45 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_center_image_definitions_list_image_builds_by_image_definition.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.dev_center_catalog_image_definition_builds.list_by_image_definition(
+ resource_group_name="rg1",
+ dev_center_name="DevDevCenter",
+ catalog_name="CentralCatalog",
+ image_definition_name="DefaultDevImage",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenterImageDefinitions_ListImageBuildsByImageDefinition.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create.py
index a3207d824d29..29e56c3c5285 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -37,13 +35,17 @@ def main():
dev_center_name="Contoso",
body={
"location": "centralus",
- "properties": {"displayName": "ContosoDevCenter"},
+ "properties": {
+ "devBoxProvisioningSettings": {"installAzureMonitorAgentEnableStatus": "Enabled"},
+ "displayName": "ContosoDevCenter",
+ "projectCatalogSettings": {"catalogItemSyncEnableStatus": "Enabled"},
+ },
"tags": {"CostCode": "12345"},
},
).result()
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevCenters_Create.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenters_Create.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create_with_disabled_managed_networks.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create_with_disabled_managed_networks.py
new file mode 100644
index 000000000000..75e09e17fbd4
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create_with_disabled_managed_networks.py
@@ -0,0 +1,56 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python dev_centers_create_with_disabled_managed_networks.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.dev_centers.begin_create_or_update(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ body={
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/identityGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testidentity1": {}
+ },
+ },
+ "location": "centralus",
+ "properties": {
+ "displayName": "ContosoDevCenter",
+ "networkSettings": {"microsoftHostedNetworkEnableStatus": "Disabled"},
+ },
+ "tags": {"CostCode": "12345"},
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenters_CreateWithDisabledManagedNetworks.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create_with_encryption.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create_with_encryption.py
index 7eedf8dbf382..8bc04a9eb625 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create_with_encryption.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create_with_encryption.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -61,6 +59,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevCenters_CreateWithEncryption.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenters_CreateWithEncryption.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create_with_user_identity.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create_with_user_identity.py
index 9dc83d3a6f83..59126a33cfe2 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create_with_user_identity.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_create_with_user_identity.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -50,6 +48,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevCenters_CreateWithUserIdentity.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenters_CreateWithUserIdentity.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_delete.py
index 7f292b750459..58a9934f375c 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_delete.py
@@ -36,6 +36,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevCenters_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenters_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_get.py
index 84e83adea5a6..ccea4e5c2ce1 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_get.py
@@ -37,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevCenters_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenters_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_list_by_resource_group.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_list_by_resource_group.py
index 4dca946587d8..42e83a324825 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_list_by_resource_group.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_list_by_resource_group.py
@@ -37,6 +37,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevCenters_ListByResourceGroup.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenters_ListByResourceGroup.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_list_by_subscription.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_list_by_subscription.py
index 1b714355260d..bb8722431e46 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_list_by_subscription.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_list_by_subscription.py
@@ -35,6 +35,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevCenters_ListBySubscription.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenters_ListBySubscription.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_patch.py
index 40bdef5da851..7b8dd9ca683e 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_patch.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/dev_centers_patch.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -40,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/DevCenters_Patch.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/DevCenters_Patch.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get.py
index 705969b19bfe..90ebaf458904 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/EnvironmentDefinitions_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/EnvironmentDefinitions_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get_by_project_catalog.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get_by_project_catalog.py
index bb7731b947df..d6cd6702256c 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get_by_project_catalog.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get_by_project_catalog.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/EnvironmentDefinitions_GetByProjectCatalog.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/EnvironmentDefinitions_GetByProjectCatalog.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get_error_details.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get_error_details.py
index 71bd356c6b47..70acf5d32c0b 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get_error_details.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_get_error_details.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/EnvironmentDefinitions_GetErrorDetails.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/EnvironmentDefinitions_GetErrorDetails.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_list_by_catalog.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_list_by_catalog.py
index affaafb6d2a5..b4c55f0d51c8 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_list_by_catalog.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_list_by_catalog.py
@@ -39,6 +39,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/EnvironmentDefinitions_ListByCatalog.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/EnvironmentDefinitions_ListByCatalog.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_list_by_project_catalog.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_list_by_project_catalog.py
index a3c0c4867ace..1f684c8a6285 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_list_by_project_catalog.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_definitions_list_by_project_catalog.py
@@ -39,6 +39,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/EnvironmentDefinitions_ListByProjectCatalog.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/EnvironmentDefinitions_ListByProjectCatalog.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_delete.py
index 3b63736fb4b2..01f3ba021a71 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_delete.py
@@ -37,6 +37,6 @@ def main():
)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/EnvironmentTypes_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/EnvironmentTypes_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_get.py
index b312f085793b..d40f922dc304 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/EnvironmentTypes_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/EnvironmentTypes_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_list.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_list.py
index b2f74273319d..80d323685d5d 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_list.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/EnvironmentTypes_List.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/EnvironmentTypes_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_patch.py
index 6989174b3b60..5b0620dad9e7 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_patch.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_patch.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -41,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/EnvironmentTypes_Patch.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/EnvironmentTypes_Patch.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_put.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_put.py
index 08bd5b5975a5..207fe967cb37 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_put.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/environment_types_put.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -41,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/EnvironmentTypes_Put.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/EnvironmentTypes_Put.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_create.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_create.py
index e60b68e85dbd..4e97aaf835a8 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_create.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_create.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -45,6 +43,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Galleries_Create.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Galleries_Create.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_delete.py
index 4dc8f0deed50..ed1222f2cdaa 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_delete.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Galleries_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Galleries_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_get.py
index 881ca661aae6..923998f3e611 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Galleries_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Galleries_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_list.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_list.py
index b63ebda2c1f7..88cf72ea0386 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_list.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/galleries_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Galleries_List.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Galleries_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_build_image.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_build_image.py
new file mode 100644
index 000000000000..28c9292f88ef
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_build_image.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python image_definitions_build_image.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ client.project_catalog_image_definitions.begin_build_image(
+ resource_group_name="rg1",
+ project_name="DevProject",
+ catalog_name="CentralCatalog",
+ image_definition_name="DefaultDevImage",
+ ).result()
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageDefinitions_BuildImage.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_cancel_image_build.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_cancel_image_build.py
new file mode 100644
index 000000000000..99063e67aad7
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_cancel_image_build.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python image_definitions_cancel_image_build.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ client.project_catalog_image_definition_build.begin_cancel(
+ resource_group_name="rg1",
+ project_name="DevProject",
+ catalog_name="CentralCatalog",
+ image_definition_name="DefaultDevImage",
+ build_name="0a28fc61-6f87-4611-8fe2-32df44ab93b7",
+ ).result()
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageDefinitions_CancelImageBuild.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_by_dev_center_catalog.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_by_dev_center_catalog.py
new file mode 100644
index 000000000000..0cee792163d0
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_by_dev_center_catalog.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python image_definitions_get_by_dev_center_catalog.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.dev_center_catalog_image_definitions.get_by_dev_center_catalog(
+ resource_group_name="rg1",
+ dev_center_name="ContosoDevCenter",
+ catalog_name="TeamCatalog",
+ image_definition_name="WebDevBox",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageDefinitions_GetByDevCenterCatalog.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_by_project_catalog.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_by_project_catalog.py
new file mode 100644
index 000000000000..c37011d7e21f
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_by_project_catalog.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python image_definitions_get_by_project_catalog.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.project_catalog_image_definitions.get_by_project_catalog(
+ resource_group_name="rg1",
+ project_name="ContosoProject",
+ catalog_name="TeamCatalog",
+ image_definition_name="WebDevBox",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageDefinitions_GetByProjectCatalog.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_image_build.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_image_build.py
new file mode 100644
index 000000000000..b6b98da037a8
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_image_build.py
@@ -0,0 +1,45 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python image_definitions_get_image_build.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.project_catalog_image_definition_build.get(
+ resource_group_name="rg1",
+ project_name="DevProject",
+ catalog_name="CentralCatalog",
+ image_definition_name="DefaultDevImage",
+ build_name="0a28fc61-6f87-4611-8fe2-32df44ab93b7",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageDefinitions_GetImageBuild.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_image_build_details.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_image_build_details.py
new file mode 100644
index 000000000000..9129bd041191
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_get_image_build_details.py
@@ -0,0 +1,45 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python image_definitions_get_image_build_details.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.project_catalog_image_definition_build.get_build_details(
+ resource_group_name="rg1",
+ project_name="DevProject",
+ catalog_name="CentralCatalog",
+ image_definition_name="DefaultDevImage",
+ build_name="0a28fc61-6f87-4611-8fe2-32df44ab93b7",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageDefinitions_GetImageBuildDetails.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_list_by_dev_center_catalog.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_list_by_dev_center_catalog.py
new file mode 100644
index 000000000000..bbb1d7b7c4f6
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_list_by_dev_center_catalog.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python image_definitions_list_by_dev_center_catalog.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.dev_center_catalog_image_definitions.list_by_dev_center_catalog(
+ resource_group_name="rg1",
+ dev_center_name="ContosoDevCenter",
+ catalog_name="TeamCatalog",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageDefinitions_ListByDevCenterCatalog.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_list_by_project_catalog.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_list_by_project_catalog.py
new file mode 100644
index 000000000000..86064d688e4b
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_list_by_project_catalog.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python image_definitions_list_by_project_catalog.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.project_catalog_image_definitions.list_by_project_catalog(
+ resource_group_name="rg1",
+ project_name="ContosoProject",
+ catalog_name="TeamCatalog",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageDefinitions_ListByProjectCatalog.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_list_image_builds_by_image_definition.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_list_image_builds_by_image_definition.py
new file mode 100644
index 000000000000..2c469d4ec532
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_definitions_list_image_builds_by_image_definition.py
@@ -0,0 +1,45 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python image_definitions_list_image_builds_by_image_definition.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.project_catalog_image_definition_builds.list_by_image_definition(
+ resource_group_name="rg1",
+ project_name="DevProject",
+ catalog_name="CentralCatalog",
+ image_definition_name="DefaultDevImage",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageDefinitions_ListImageBuildsByImageDefinition.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_get.py
index afa47a3e5fb2..8c39d19998d9 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_get.py
@@ -40,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ImageVersions_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageVersions_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_get_by_project.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_get_by_project.py
new file mode 100644
index 000000000000..5a4f0d6659ad
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_get_by_project.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python image_versions_get_by_project.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.image_versions.get_by_project(
+ resource_group_name="rg1",
+ project_name="myProject",
+ image_name="~gallery~DefaultDevGallery~ContosoImageDefinition",
+ version_name="1.0.0",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageVersions_GetByProject.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_list.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_list.py
index 454e6e2672b8..9ac9ebfa0f5d 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_list.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_list.py
@@ -40,6 +40,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ImageVersions_List.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageVersions_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_list_by_project.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_list_by_project.py
new file mode 100644
index 000000000000..8ee6ce389a5a
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/image_versions_list_by_project.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python image_versions_list_by_project.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.image_versions.list_by_project(
+ resource_group_name="rg1",
+ project_name="myProject",
+ image_name="~gallery~DefaultDevGallery~ContosoImageDefinition",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ImageVersions_ListByProject.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_get.py
index 0b20d56a1e3e..4418bfccd75e 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_get.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Images_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Images_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_get_by_project.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_get_by_project.py
new file mode 100644
index 000000000000..1b4159610cf2
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_get_by_project.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python images_get_by_project.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.images.get_by_project(
+ resource_group_name="rg1",
+ project_name="myProject",
+ image_name="~gallery~DefaultDevGallery~ContosoBaseImage",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Images_GetByProject.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_list_by_dev_center.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_list_by_dev_center.py
index 8979f253ab2f..4a584d379e32 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_list_by_dev_center.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_list_by_dev_center.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Images_ListByDevCenter.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Images_ListByDevCenter.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_list_by_gallery.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_list_by_gallery.py
index c7fb3e7ce1a2..8fee3b39ff2a 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_list_by_gallery.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_list_by_gallery.py
@@ -39,6 +39,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Images_ListByGallery.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Images_ListByGallery.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_list_by_project.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_list_by_project.py
new file mode 100644
index 000000000000..5ffc363d8409
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/images_list_by_project.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python images_list_by_project.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.images.list_by_project(
+ resource_group_name="rg1",
+ project_name="myProject",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Images_ListByProject.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_delete.py
index 11ad902c0841..d0704e85ef86 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_delete.py
@@ -36,6 +36,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/NetworkConnections_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/NetworkConnections_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_get.py
index c53126d2c4be..8091eff2fa7a 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_get.py
@@ -37,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/NetworkConnections_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/NetworkConnections_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_get_health_details.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_get_health_details.py
index 11c31c6c6814..bb442aa95778 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_get_health_details.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_get_health_details.py
@@ -37,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/NetworkConnections_GetHealthDetails.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/NetworkConnections_GetHealthDetails.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_by_resource_group.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_by_resource_group.py
index 126df5a5eff6..33f650283350 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_by_resource_group.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_by_resource_group.py
@@ -37,6 +37,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/NetworkConnections_ListByResourceGroup.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/NetworkConnections_ListByResourceGroup.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_by_subscription.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_by_subscription.py
index 4ff3979b2744..cec98f5b7b49 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_by_subscription.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_by_subscription.py
@@ -35,6 +35,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/NetworkConnections_ListBySubscription.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/NetworkConnections_ListBySubscription.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_health_details.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_health_details.py
index 30f2080a28ee..d2c1e72813bb 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_health_details.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_health_details.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/NetworkConnections_ListHealthDetails.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/NetworkConnections_ListHealthDetails.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_outbound_network_dependencies_endpoints.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_outbound_network_dependencies_endpoints.py
index 8cfc3f793c60..9b75d181f214 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_outbound_network_dependencies_endpoints.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_list_outbound_network_dependencies_endpoints.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/NetworkConnections_ListOutboundNetworkDependenciesEndpoints.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/NetworkConnections_ListOutboundNetworkDependenciesEndpoints.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_patch.py
index 9d50c4932fc7..a3395b5c823e 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_patch.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_patch.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -40,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/NetworkConnections_Patch.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/NetworkConnections_Patch.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_put.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_put.py
index e07fc41e0265..8d4fd1f969f7 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_put.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_put.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -50,6 +48,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/NetworkConnections_Put.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/NetworkConnections_Put.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_run_health_checks.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_run_health_checks.py
index a1065130f8b5..2cfe4b9863c6 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_run_health_checks.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/network_connections_run_health_checks.py
@@ -36,6 +36,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/NetworkConnections_RunHealthChecks.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/NetworkConnections_RunHealthChecks.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/operation_status_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/operation_status_get.py
index abd4ac59f9c4..245c252d9c11 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/operation_status_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/operation_status_get.py
@@ -37,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/OperationStatus_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/OperationStatus_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/operations_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/operations_get.py
index 94cfeb39613d..c99e9eb59c02 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/operations_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/operations_get.py
@@ -35,6 +35,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Operations_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Operations_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_delete.py
index bf10314de0aa..8e2c971b5bba 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_delete.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Pools_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Pools_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_get.py
index 005341c5aa5f..0403b6fadb0f 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Pools_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Pools_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_get_unhealthy_status.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_get_unhealthy_status.py
index ad88b0ff4c67..4c5108b3b37c 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_get_unhealthy_status.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_get_unhealthy_status.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Pools_GetUnhealthyStatus.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Pools_GetUnhealthyStatus.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_list.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_list.py
index 8e6d57bb9895..e72d6e7f3a72 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_list.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Pools_List.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Pools_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_patch.py
index df51a742d7cb..696835b72e5d 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_patch.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_patch.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -41,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Pools_Patch.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Pools_Patch.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_put.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_put.py
index d52921babccb..563775473bd2 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_put.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_put.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -39,6 +37,13 @@ def main():
body={
"location": "centralus",
"properties": {
+ "activeHoursConfiguration": {
+ "autoStartEnableStatus": "Enabled",
+ "defaultEndTimeHour": 17,
+ "defaultStartTimeHour": 9,
+ "defaultTimeZone": "America/Los_Angeles",
+ "keepAwakeEnableStatus": "Enabled",
+ },
"devBoxDefinitionName": "WebDevBox",
"displayName": "Developer Pool",
"licenseType": "Windows_Client",
@@ -46,6 +51,7 @@ def main():
"networkConnectionName": "Network1-westus2",
"singleSignOnStatus": "Disabled",
"stopOnDisconnect": {"gracePeriodMinutes": 60, "status": "Enabled"},
+ "stopOnNoConnect": {"gracePeriodMinutes": 120, "status": "Enabled"},
"virtualNetworkType": "Unmanaged",
},
},
@@ -53,6 +59,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Pools_Put.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Pools_Put.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_put_with_managed_network.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_put_with_managed_network.py
index a7c88480ce8b..9b6e9736ed83 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_put_with_managed_network.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_put_with_managed_network.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -47,6 +45,7 @@ def main():
"networkConnectionName": "managedNetwork",
"singleSignOnStatus": "Disabled",
"stopOnDisconnect": {"gracePeriodMinutes": 60, "status": "Enabled"},
+ "stopOnNoConnect": {"gracePeriodMinutes": 120, "status": "Enabled"},
"virtualNetworkType": "Managed",
},
},
@@ -54,6 +53,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Pools_PutWithManagedNetwork.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Pools_PutWithManagedNetwork.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_put_with_value_dev_box_definition.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_put_with_value_dev_box_definition.py
new file mode 100644
index 000000000000..793142f7584d
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_put_with_value_dev_box_definition.py
@@ -0,0 +1,64 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python pools_put_with_value_dev_box_definition.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.pools.begin_create_or_update(
+ resource_group_name="rg1",
+ project_name="DevProject",
+ pool_name="DevPool",
+ body={
+ "location": "centralus",
+ "properties": {
+ "devBoxDefinition": {
+ "imageReference": {
+ "id": "/subscriptions/0ac520ee-14c0-480f-b6c9-0a90c58ffff/resourceGroups/Example/providers/Microsoft.DevCenter/projects/DevProject/images/exampleImage/version/1.0.0"
+ },
+ "sku": {"name": "Preview"},
+ },
+ "devBoxDefinitionName": "",
+ "devBoxDefinitionType": "Value",
+ "displayName": "Developer Pool",
+ "licenseType": "Windows_Client",
+ "localAdministrator": "Enabled",
+ "networkConnectionName": "Network1-westus2",
+ "singleSignOnStatus": "Disabled",
+ "stopOnDisconnect": {"gracePeriodMinutes": 60, "status": "Enabled"},
+ "stopOnNoConnect": {"gracePeriodMinutes": 120, "status": "Enabled"},
+ "virtualNetworkType": "Unmanaged",
+ },
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Pools_PutWithValueDevBoxDefinition.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_run_health_checks.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_run_health_checks.py
index 97ffefeeda50..80f99d268c4a 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_run_health_checks.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/pools_run_health_checks.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Pools_RunHealthChecks.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Pools_RunHealthChecks.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_allowed_environment_types_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_allowed_environment_types_get.py
index 7c869410cec0..43414a2a9b62 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_allowed_environment_types_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_allowed_environment_types_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectAllowedEnvironmentTypes_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectAllowedEnvironmentTypes_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_allowed_environment_types_list.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_allowed_environment_types_list.py
index 31c5464e0c07..67478032934d 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_allowed_environment_types_list.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_allowed_environment_types_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectAllowedEnvironmentTypes_List.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectAllowedEnvironmentTypes_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalog_environment_definitions_get_error_details.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalog_environment_definitions_get_error_details.py
index f805464c1a8a..e431fffa1e70 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalog_environment_definitions_get_error_details.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalog_environment_definitions_get_error_details.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectCatalogEnvironmentDefinitions_GetErrorDetails.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectCatalogEnvironmentDefinitions_GetErrorDetails.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalog_image_definitions_get_error_details.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalog_image_definitions_get_error_details.py
new file mode 100644
index 000000000000..b59d91ac6bdc
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalog_image_definitions_get_error_details.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python project_catalog_image_definitions_get_error_details.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.project_catalog_image_definitions.get_error_details(
+ resource_group_name="rg1",
+ project_name="DevProject",
+ catalog_name="TeamCatalog",
+ image_definition_name="WebDevBox",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectCatalogImageDefinitions_GetErrorDetails.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_connect.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_connect.py
index e39ff3ee5762..518dbaad81f1 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_connect.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_connect.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectCatalogs_Connect.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectCatalogs_Connect.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_create_ado.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_create_ado.py
index 25d7488f1644..b6a1d5cb457b 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_create_ado.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_create_ado.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -50,6 +48,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectCatalogs_CreateAdo.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectCatalogs_CreateAdo.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_create_git_hub.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_create_git_hub.py
index d887324bf31d..45fa8fbbee23 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_create_git_hub.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_create_git_hub.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -50,6 +48,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectCatalogs_CreateGitHub.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectCatalogs_CreateGitHub.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_delete.py
index 1536f1447368..d1c1587fe315 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_delete.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectCatalogs_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectCatalogs_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_get.py
index e449632bdce2..3c6665ab2b35 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectCatalogs_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectCatalogs_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_get_sync_error_details.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_get_sync_error_details.py
index 07226faced40..ef2a2f63e006 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_get_sync_error_details.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_get_sync_error_details.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectCatalogs_GetSyncErrorDetails.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectCatalogs_GetSyncErrorDetails.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_list.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_list.py
index 34be628969db..f63c39264abb 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_list.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectCatalogs_List.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectCatalogs_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_patch.py
index fbdf78f6b9d2..505504c5179e 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_patch.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_patch.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -41,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectCatalogs_Patch.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectCatalogs_Patch.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_sync.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_sync.py
index adafc17da0d5..040dda4196ce 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_sync.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_catalogs_sync.py
@@ -37,6 +37,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectCatalogs_Sync.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectCatalogs_Sync.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_delete.py
index 30375680f34e..034aa0dc2667 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_delete.py
@@ -37,6 +37,6 @@ def main():
)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectEnvironmentTypes_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectEnvironmentTypes_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_get.py
index 34b23a0588d2..4b12a0ad1aa4 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_get.py
@@ -38,6 +38,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectEnvironmentTypes_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectEnvironmentTypes_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_list.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_list.py
index af527853e298..94055e500991 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_list.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_list.py
@@ -38,6 +38,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectEnvironmentTypes_List.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectEnvironmentTypes_List.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_patch.py
index d5c80f942656..f08e8cd93d27 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_patch.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_patch.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -56,6 +54,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectEnvironmentTypes_Patch.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectEnvironmentTypes_Patch.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_put.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_put.py
index abe3e1c7ff3f..49e42415d0ce 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_put.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_environment_types_put.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -57,6 +55,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/ProjectEnvironmentTypes_Put.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectEnvironmentTypes_Put.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_delete.py
new file mode 100644
index 000000000000..76539a23516a
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_delete.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python project_policies_delete.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff1",
+ )
+
+ client.project_policies.begin_delete(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ project_policy_name="DevOnlyResources",
+ ).result()
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectPolicies_Delete.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_get.py
new file mode 100644
index 000000000000..46ca2cec7806
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_get.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python project_policies_get.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff1",
+ )
+
+ response = client.project_policies.get(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ project_policy_name="DevOnlyResources",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectPolicies_Get.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_list_by_dev_center.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_list_by_dev_center.py
new file mode 100644
index 000000000000..7bde42313a7a
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_list_by_dev_center.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python project_policies_list_by_dev_center.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff1",
+ )
+
+ response = client.project_policies.list_by_dev_center(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectPolicies_ListByDevCenter.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_patch.py
new file mode 100644
index 000000000000..dd5260a6d2f0
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_patch.py
@@ -0,0 +1,52 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python project_policies_patch.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff1",
+ )
+
+ response = client.project_policies.begin_update(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ project_policy_name="DevOnlyResources",
+ body={
+ "properties": {
+ "resourcePolicies": [
+ {
+ "resources": "/subscriptions/0ac520ee-14c0-480f-b6c9-0a90c58ffff1/resourceGroups/rg1/providers/Microsoft.DevCenter/devcenters/Contoso/attachednetworks/network-westus3"
+ }
+ ]
+ }
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectPolicies_Patch.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_put.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_put.py
new file mode 100644
index 000000000000..8067a1e12a0e
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/project_policies_put.py
@@ -0,0 +1,55 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python project_policies_put.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff1",
+ )
+
+ response = client.project_policies.begin_create_or_update(
+ resource_group_name="rg1",
+ dev_center_name="Contoso",
+ project_policy_name="DevOnlyResources",
+ body={
+ "properties": {
+ "resourcePolicies": [
+ {
+ "resources": "/subscriptions/0ac520ee-14c0-480f-b6c9-0a90c58ffff1/resourceGroups/rg1/providers/Microsoft.DevCenter/devcenters/Contoso/attachednetworks/network-westus3"
+ }
+ ],
+ "scopes": [
+ "/subscriptions/0ac520ee-14c0-480f-b6c9-0a90c58ffff1/resourceGroups/rg1/providers/Microsoft.DevCenter/projects/DevProject"
+ ],
+ }
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/ProjectPolicies_Put.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_delete.py
index b0d554377b6a..f27e08c37777 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_delete.py
@@ -36,6 +36,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Projects_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Projects_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_get.py
index 5c7318c6b4dc..7e8fbf90fc9d 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_get.py
@@ -37,6 +37,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Projects_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Projects_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_get_inherited_settings.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_get_inherited_settings.py
new file mode 100644
index 000000000000..f02cdefe5818
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_get_inherited_settings.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python projects_get_inherited_settings.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.projects.get_inherited_settings(
+ resource_group_name="rg1",
+ project_name="Contoso",
+ )
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Projects_GetInheritedSettings.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_list_by_resource_group.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_list_by_resource_group.py
index 10a951dd2951..c07696073b35 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_list_by_resource_group.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_list_by_resource_group.py
@@ -37,6 +37,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Projects_ListByResourceGroup.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Projects_ListByResourceGroup.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_list_by_subscription.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_list_by_subscription.py
index f039cc93fc86..70b0a46cdff9 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_list_by_subscription.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_list_by_subscription.py
@@ -35,6 +35,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Projects_ListBySubscription.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Projects_ListBySubscription.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_patch.py
index e562c16ecdbb..a845edaf35f2 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_patch.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_patch.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -47,6 +45,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Projects_Patch.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Projects_Patch.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put.py
index e8f32da1f290..42ee3e5431a2 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -48,6 +46,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Projects_Put.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Projects_Put.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put_with_customization_settings.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put_with_customization_settings.py
new file mode 100644
index 000000000000..85e37e04c7d4
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put_with_customization_settings.py
@@ -0,0 +1,64 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python projects_put_with_customization_settings.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.projects.begin_create_or_update(
+ resource_group_name="rg1",
+ project_name="DevProject",
+ body={
+ "identity": {
+ "type": "UserAssigned",
+ "userAssignedIdentities": {
+ "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/identityGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testidentity1": {}
+ },
+ },
+ "location": "centralus",
+ "properties": {
+ "customizationSettings": {
+ "identities": [
+ {
+ "identityResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/identityGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/testidentity1",
+ "identityType": "userAssignedIdentity",
+ }
+ ]
+ },
+ "description": "This is my first project.",
+ "devCenterId": "/subscriptions/0ac520ee-14c0-480f-b6c9-0a90c58ffff/resourceGroups/rg1/providers/Microsoft.DevCenter/devcenters/Contoso",
+ },
+ "tags": {"CostCenter": "R&D"},
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Projects_PutWithCustomizationSettings.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put_with_customization_settings_system_identity.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put_with_customization_settings_system_identity.py
new file mode 100644
index 000000000000..0d59b4371bc0
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put_with_customization_settings_system_identity.py
@@ -0,0 +1,52 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python projects_put_with_customization_settings_system_identity.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.projects.begin_create_or_update(
+ resource_group_name="rg1",
+ project_name="DevProject",
+ body={
+ "identity": {"type": "SystemAssigned"},
+ "location": "centralus",
+ "properties": {
+ "customizationSettings": {"identities": [{"identityType": "systemAssignedIdentity"}]},
+ "description": "This is my first project.",
+ "devCenterId": "/subscriptions/0ac520ee-14c0-480f-b6c9-0a90c58ffff/resourceGroups/rg1/providers/Microsoft.DevCenter/devcenters/Contoso",
+ },
+ "tags": {"CostCenter": "R&D"},
+ },
+ ).result()
+ print(response)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Projects_PutWithCustomizationSettings_SystemIdentity.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put_with_max_dev_box_per_user.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put_with_max_dev_box_per_user.py
index 3a70a55cd673..1ae7cfcd2923 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put_with_max_dev_box_per_user.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/projects_put_with_max_dev_box_per_user.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -48,6 +46,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Projects_PutWithMaxDevBoxPerUser.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Projects_PutWithMaxDevBoxPerUser.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_create_daily_shutdown_pool_schedule.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_create_daily_shutdown_pool_schedule.py
index 1249e1c8b7e2..7318ca1890e1 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_create_daily_shutdown_pool_schedule.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_create_daily_shutdown_pool_schedule.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -50,6 +48,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Schedules_CreateDailyShutdownPoolSchedule.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Schedules_CreateDailyShutdownPoolSchedule.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_delete.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_delete.py
index a7de6a47f2be..f372f856acdc 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_delete.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_delete.py
@@ -38,6 +38,6 @@ def main():
).result()
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Schedules_Delete.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Schedules_Delete.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_get.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_get.py
index 419bf97c474d..188b31ec4cc4 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_get.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_get.py
@@ -39,6 +39,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Schedules_Get.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Schedules_Get.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_list_by_pool.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_list_by_pool.py
index 134f82e1af21..4c4fe0655d78 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_list_by_pool.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_list_by_pool.py
@@ -39,6 +39,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Schedules_ListByPool.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Schedules_ListByPool.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_patch.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_patch.py
index 3adf5458dfb5..7422e31b38bc 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_patch.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/schedules_patch.py
@@ -6,8 +6,6 @@
# Changes may cause incorrect behavior and will be lost if the code is regenerated.
# --------------------------------------------------------------------------
-from typing import Any, IO, Union
-
from azure.identity import DefaultAzureCredential
from azure.mgmt.devcenter import DevCenterMgmtClient
@@ -42,6 +40,6 @@ def main():
print(response)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Schedules_Patch.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Schedules_Patch.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/skus_list_by_project.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/skus_list_by_project.py
new file mode 100644
index 000000000000..588804d0e63c
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/skus_list_by_project.py
@@ -0,0 +1,43 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+
+from azure.identity import DefaultAzureCredential
+
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+"""
+# PREREQUISITES
+ pip install azure-identity
+ pip install azure-mgmt-devcenter
+# USAGE
+ python skus_list_by_project.py
+
+ Before run the sample, please set the values of the client ID, tenant ID and client secret
+ of the AAD application as environment variables: AZURE_CLIENT_ID, AZURE_TENANT_ID,
+ AZURE_CLIENT_SECRET. For more info about how to get the value, please see:
+ https://docs.microsoft.com/azure/active-directory/develop/howto-create-service-principal-portal
+"""
+
+
+def main():
+ client = DevCenterMgmtClient(
+ credential=DefaultAzureCredential(),
+ subscription_id="0ac520ee-14c0-480f-b6c9-0a90c58ffff",
+ )
+
+ response = client.skus.list_by_project(
+ resource_group_name="rg1",
+ project_name="myProject",
+ )
+ for item in response:
+ print(item)
+
+
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Skus_ListByProject.json
+if __name__ == "__main__":
+ main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/skus_list_by_subscription.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/skus_list_by_subscription.py
index 5659b3d68ad3..499d720b4398 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/skus_list_by_subscription.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/skus_list_by_subscription.py
@@ -35,6 +35,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Skus_ListBySubscription.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Skus_ListBySubscription.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/usages_list_by_location.py b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/usages_list_by_location.py
index 73ee56219576..057b06304d4e 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/generated_samples/usages_list_by_location.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_samples/usages_list_by_location.py
@@ -37,6 +37,6 @@ def main():
print(item)
-# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/stable/2024-02-01/examples/Usages_ListByLocation.json
+# x-ms-original-file: specification/devcenter/resource-manager/Microsoft.DevCenter/preview/2025-04-01-preview/examples/Usages_ListByLocation.json
if __name__ == "__main__":
main()
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/conftest.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/conftest.py
new file mode 100644
index 000000000000..ca99a230832c
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/conftest.py
@@ -0,0 +1,35 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import os
+import pytest
+from dotenv import load_dotenv
+from devtools_testutils import (
+ test_proxy,
+ add_general_regex_sanitizer,
+ add_body_key_sanitizer,
+ add_header_regex_sanitizer,
+)
+
+load_dotenv()
+
+
+# For security, please avoid record sensitive identity information in recordings
+@pytest.fixture(scope="session", autouse=True)
+def add_sanitizers(test_proxy):
+ devcentermgmt_subscription_id = os.environ.get("AZURE_SUBSCRIPTION_ID", "00000000-0000-0000-0000-000000000000")
+ devcentermgmt_tenant_id = os.environ.get("AZURE_TENANT_ID", "00000000-0000-0000-0000-000000000000")
+ devcentermgmt_client_id = os.environ.get("AZURE_CLIENT_ID", "00000000-0000-0000-0000-000000000000")
+ devcentermgmt_client_secret = os.environ.get("AZURE_CLIENT_SECRET", "00000000-0000-0000-0000-000000000000")
+ add_general_regex_sanitizer(regex=devcentermgmt_subscription_id, value="00000000-0000-0000-0000-000000000000")
+ add_general_regex_sanitizer(regex=devcentermgmt_tenant_id, value="00000000-0000-0000-0000-000000000000")
+ add_general_regex_sanitizer(regex=devcentermgmt_client_id, value="00000000-0000-0000-0000-000000000000")
+ add_general_regex_sanitizer(regex=devcentermgmt_client_secret, value="00000000-0000-0000-0000-000000000000")
+
+ add_header_regex_sanitizer(key="Set-Cookie", value="[set-cookie;]")
+ add_header_regex_sanitizer(key="Cookie", value="cookie;")
+ add_body_key_sanitizer(json_path="$..access_token", value="access_token")
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_attached_networks_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_attached_networks_operations.py
new file mode 100644
index 000000000000..f0412496af3e
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_attached_networks_operations.py
@@ -0,0 +1,113 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtAttachedNetworksOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attached_networks_list_by_project(self, resource_group):
+ response = self.client.attached_networks.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attached_networks_get_by_project(self, resource_group):
+ response = self.client.attached_networks.get_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ attached_network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attached_networks_list_by_dev_center(self, resource_group):
+ response = self.client.attached_networks.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attached_networks_get_by_dev_center(self, resource_group):
+ response = self.client.attached_networks.get_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ attached_network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attached_networks_begin_create_or_update(self, resource_group):
+ response = self.client.attached_networks.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ attached_network_connection_name="str",
+ body={
+ "domainJoinType": "str",
+ "healthCheckStatus": "str",
+ "id": "str",
+ "name": "str",
+ "networkConnectionId": "str",
+ "networkConnectionLocation": "str",
+ "provisioningState": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_attached_networks_begin_delete(self, resource_group):
+ response = self.client.attached_networks.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ attached_network_connection_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_attached_networks_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_attached_networks_operations_async.py
new file mode 100644
index 000000000000..5e761c465c31
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_attached_networks_operations_async.py
@@ -0,0 +1,118 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtAttachedNetworksOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attached_networks_list_by_project(self, resource_group):
+ response = self.client.attached_networks.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attached_networks_get_by_project(self, resource_group):
+ response = await self.client.attached_networks.get_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ attached_network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attached_networks_list_by_dev_center(self, resource_group):
+ response = self.client.attached_networks.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attached_networks_get_by_dev_center(self, resource_group):
+ response = await self.client.attached_networks.get_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ attached_network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attached_networks_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.attached_networks.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ attached_network_connection_name="str",
+ body={
+ "domainJoinType": "str",
+ "healthCheckStatus": "str",
+ "id": "str",
+ "name": "str",
+ "networkConnectionId": "str",
+ "networkConnectionLocation": "str",
+ "provisioningState": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_attached_networks_begin_delete(self, resource_group):
+ response = await (
+ await self.client.attached_networks.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ attached_network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_catalogs_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_catalogs_operations.py
new file mode 100644
index 000000000000..33fb3d9a0d35
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_catalogs_operations.py
@@ -0,0 +1,159 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtCatalogsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_catalogs_list_by_dev_center(self, resource_group):
+ response = self.client.catalogs.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_catalogs_get(self, resource_group):
+ response = self.client.catalogs.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_catalogs_begin_create_or_update(self, resource_group):
+ response = self.client.catalogs.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ body={
+ "adoGit": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "connectionState": "str",
+ "gitHub": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "id": "str",
+ "lastConnectionTime": "2020-02-20 00:00:00",
+ "lastSyncStats": {
+ "added": 0,
+ "removed": 0,
+ "syncedCatalogItemTypes": ["str"],
+ "synchronizationErrors": 0,
+ "unchanged": 0,
+ "updated": 0,
+ "validationErrors": 0,
+ },
+ "lastSyncTime": "2020-02-20 00:00:00",
+ "name": "str",
+ "provisioningState": "str",
+ "syncState": "str",
+ "syncType": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_catalogs_begin_update(self, resource_group):
+ response = self.client.catalogs.begin_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ body={
+ "adoGit": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "gitHub": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "syncType": "str",
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_catalogs_begin_delete(self, resource_group):
+ response = self.client.catalogs.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_catalogs_get_sync_error_details(self, resource_group):
+ response = self.client.catalogs.get_sync_error_details(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_catalogs_begin_sync(self, resource_group):
+ response = self.client.catalogs.begin_sync(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_catalogs_begin_connect(self, resource_group):
+ response = self.client.catalogs.begin_connect(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_catalogs_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_catalogs_operations_async.py
new file mode 100644
index 000000000000..d305f07d821a
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_catalogs_operations_async.py
@@ -0,0 +1,170 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtCatalogsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_catalogs_list_by_dev_center(self, resource_group):
+ response = self.client.catalogs.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_catalogs_get(self, resource_group):
+ response = await self.client.catalogs.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_catalogs_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.catalogs.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ body={
+ "adoGit": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "connectionState": "str",
+ "gitHub": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "id": "str",
+ "lastConnectionTime": "2020-02-20 00:00:00",
+ "lastSyncStats": {
+ "added": 0,
+ "removed": 0,
+ "syncedCatalogItemTypes": ["str"],
+ "synchronizationErrors": 0,
+ "unchanged": 0,
+ "updated": 0,
+ "validationErrors": 0,
+ },
+ "lastSyncTime": "2020-02-20 00:00:00",
+ "name": "str",
+ "provisioningState": "str",
+ "syncState": "str",
+ "syncType": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_catalogs_begin_update(self, resource_group):
+ response = await (
+ await self.client.catalogs.begin_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ body={
+ "adoGit": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "gitHub": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "syncType": "str",
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_catalogs_begin_delete(self, resource_group):
+ response = await (
+ await self.client.catalogs.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_catalogs_get_sync_error_details(self, resource_group):
+ response = await self.client.catalogs.get_sync_error_details(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_catalogs_begin_sync(self, resource_group):
+ response = await (
+ await self.client.catalogs.begin_sync(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_catalogs_begin_connect(self, resource_group):
+ response = await (
+ await self.client.catalogs.begin_connect(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_name_availability_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_name_availability_operations.py
new file mode 100644
index 000000000000..0b3a6c6bbd49
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_name_availability_operations.py
@@ -0,0 +1,30 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtCheckNameAvailabilityOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_check_name_availability_execute(self, resource_group):
+ response = self.client.check_name_availability.execute(
+ name_availability_request={"name": "str", "type": "str"},
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_name_availability_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_name_availability_operations_async.py
new file mode 100644
index 000000000000..e6de4f6818b7
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_name_availability_operations_async.py
@@ -0,0 +1,31 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtCheckNameAvailabilityOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_check_name_availability_execute(self, resource_group):
+ response = await self.client.check_name_availability.execute(
+ name_availability_request={"name": "str", "type": "str"},
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_scoped_name_availability_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_scoped_name_availability_operations.py
new file mode 100644
index 000000000000..9dd0601ab9d7
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_scoped_name_availability_operations.py
@@ -0,0 +1,30 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtCheckScopedNameAvailabilityOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_check_scoped_name_availability_execute(self, resource_group):
+ response = self.client.check_scoped_name_availability.execute(
+ name_availability_request={"name": "str", "scope": "str", "type": "str"},
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_scoped_name_availability_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_scoped_name_availability_operations_async.py
new file mode 100644
index 000000000000..aed1ebebebf3
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_check_scoped_name_availability_operations_async.py
@@ -0,0 +1,31 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtCheckScopedNameAvailabilityOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_check_scoped_name_availability_execute(self, resource_group):
+ response = await self.client.check_scoped_name_availability.execute(
+ name_availability_request={"name": "str", "scope": "str", "type": "str"},
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_customization_tasks_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_customization_tasks_operations.py
new file mode 100644
index 000000000000..72a2e95a4586
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_customization_tasks_operations.py
@@ -0,0 +1,60 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtCustomizationTasksOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_customization_tasks_list_by_catalog(self, resource_group):
+ response = self.client.customization_tasks.list_by_catalog(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_customization_tasks_get(self, resource_group):
+ response = self.client.customization_tasks.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ task_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_customization_tasks_get_error_details(self, resource_group):
+ response = self.client.customization_tasks.get_error_details(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ task_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_customization_tasks_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_customization_tasks_operations_async.py
new file mode 100644
index 000000000000..20637f61de97
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_customization_tasks_operations_async.py
@@ -0,0 +1,61 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtCustomizationTasksOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_customization_tasks_list_by_catalog(self, resource_group):
+ response = self.client.customization_tasks.list_by_catalog(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_customization_tasks_get(self, resource_group):
+ response = await self.client.customization_tasks.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ task_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_customization_tasks_get_error_details(self, resource_group):
+ response = await self.client.customization_tasks.get_error_details(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ task_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_box_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_box_definitions_operations.py
new file mode 100644
index 000000000000..c3e4c730ad2d
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_box_definitions_operations.py
@@ -0,0 +1,140 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtDevBoxDefinitionsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_box_definitions_list_by_dev_center(self, resource_group):
+ response = self.client.dev_box_definitions.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_box_definitions_get(self, resource_group):
+ response = self.client.dev_box_definitions.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ dev_box_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_box_definitions_begin_create_or_update(self, resource_group):
+ response = self.client.dev_box_definitions.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ dev_box_definition_name="str",
+ body={
+ "location": "str",
+ "activeImageReference": {"exactVersion": "str", "id": "str"},
+ "hibernateSupport": "str",
+ "id": "str",
+ "imageReference": {"exactVersion": "str", "id": "str"},
+ "imageValidationErrorDetails": {"code": "str", "message": "str"},
+ "imageValidationStatus": "str",
+ "name": "str",
+ "osStorageType": "str",
+ "provisioningState": "str",
+ "sku": {"name": "str", "capacity": 0, "family": "str", "size": "str", "tier": "str"},
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "validationStatus": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_box_definitions_begin_update(self, resource_group):
+ response = self.client.dev_box_definitions.begin_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ dev_box_definition_name="str",
+ body={
+ "hibernateSupport": "str",
+ "imageReference": {"exactVersion": "str", "id": "str"},
+ "location": "str",
+ "osStorageType": "str",
+ "sku": {"name": "str", "capacity": 0, "family": "str", "size": "str", "tier": "str"},
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_box_definitions_begin_delete(self, resource_group):
+ response = self.client.dev_box_definitions.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ dev_box_definition_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_box_definitions_list_by_project(self, resource_group):
+ response = self.client.dev_box_definitions.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_box_definitions_get_by_project(self, resource_group):
+ response = self.client.dev_box_definitions.get_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ dev_box_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_box_definitions_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_box_definitions_operations_async.py
new file mode 100644
index 000000000000..ed205c2a5b58
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_box_definitions_operations_async.py
@@ -0,0 +1,147 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtDevBoxDefinitionsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_box_definitions_list_by_dev_center(self, resource_group):
+ response = self.client.dev_box_definitions.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_box_definitions_get(self, resource_group):
+ response = await self.client.dev_box_definitions.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ dev_box_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_box_definitions_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.dev_box_definitions.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ dev_box_definition_name="str",
+ body={
+ "location": "str",
+ "activeImageReference": {"exactVersion": "str", "id": "str"},
+ "hibernateSupport": "str",
+ "id": "str",
+ "imageReference": {"exactVersion": "str", "id": "str"},
+ "imageValidationErrorDetails": {"code": "str", "message": "str"},
+ "imageValidationStatus": "str",
+ "name": "str",
+ "osStorageType": "str",
+ "provisioningState": "str",
+ "sku": {"name": "str", "capacity": 0, "family": "str", "size": "str", "tier": "str"},
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "validationStatus": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_box_definitions_begin_update(self, resource_group):
+ response = await (
+ await self.client.dev_box_definitions.begin_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ dev_box_definition_name="str",
+ body={
+ "hibernateSupport": "str",
+ "imageReference": {"exactVersion": "str", "id": "str"},
+ "location": "str",
+ "osStorageType": "str",
+ "sku": {"name": "str", "capacity": 0, "family": "str", "size": "str", "tier": "str"},
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_box_definitions_begin_delete(self, resource_group):
+ response = await (
+ await self.client.dev_box_definitions.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ dev_box_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_box_definitions_list_by_project(self, resource_group):
+ response = self.client.dev_box_definitions.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_box_definitions_get_by_project(self, resource_group):
+ response = await self.client.dev_box_definitions.get_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ dev_box_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_build_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_build_operations.py
new file mode 100644
index 000000000000..2e8f137f1ba9
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_build_operations.py
@@ -0,0 +1,64 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtDevCenterCatalogImageDefinitionBuildOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_center_catalog_image_definition_build_get(self, resource_group):
+ response = self.client.dev_center_catalog_image_definition_build.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_center_catalog_image_definition_build_begin_cancel(self, resource_group):
+ response = self.client.dev_center_catalog_image_definition_build.begin_cancel(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_center_catalog_image_definition_build_get_build_details(self, resource_group):
+ response = self.client.dev_center_catalog_image_definition_build.get_build_details(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_build_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_build_operations_async.py
new file mode 100644
index 000000000000..2ac486dce3cd
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_build_operations_async.py
@@ -0,0 +1,67 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtDevCenterCatalogImageDefinitionBuildOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_center_catalog_image_definition_build_get(self, resource_group):
+ response = await self.client.dev_center_catalog_image_definition_build.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_center_catalog_image_definition_build_begin_cancel(self, resource_group):
+ response = await (
+ await self.client.dev_center_catalog_image_definition_build.begin_cancel(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_center_catalog_image_definition_build_get_build_details(self, resource_group):
+ response = await self.client.dev_center_catalog_image_definition_build.get_build_details(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_builds_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_builds_operations.py
new file mode 100644
index 000000000000..eef93ef7085d
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_builds_operations.py
@@ -0,0 +1,33 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtDevCenterCatalogImageDefinitionBuildsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_center_catalog_image_definition_builds_list_by_image_definition(self, resource_group):
+ response = self.client.dev_center_catalog_image_definition_builds.list_by_image_definition(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_builds_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_builds_operations_async.py
new file mode 100644
index 000000000000..a92c9a54d012
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definition_builds_operations_async.py
@@ -0,0 +1,34 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtDevCenterCatalogImageDefinitionBuildsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_center_catalog_image_definition_builds_list_by_image_definition(self, resource_group):
+ response = self.client.dev_center_catalog_image_definition_builds.list_by_image_definition(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definitions_operations.py
new file mode 100644
index 000000000000..cc5b13fa9933
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definitions_operations.py
@@ -0,0 +1,74 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtDevCenterCatalogImageDefinitionsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_center_catalog_image_definitions_list_by_dev_center_catalog(self, resource_group):
+ response = self.client.dev_center_catalog_image_definitions.list_by_dev_center_catalog(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_center_catalog_image_definitions_get_by_dev_center_catalog(self, resource_group):
+ response = self.client.dev_center_catalog_image_definitions.get_by_dev_center_catalog(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_center_catalog_image_definitions_get_error_details(self, resource_group):
+ response = self.client.dev_center_catalog_image_definitions.get_error_details(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_center_catalog_image_definitions_begin_build_image(self, resource_group):
+ response = self.client.dev_center_catalog_image_definitions.begin_build_image(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definitions_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definitions_operations_async.py
new file mode 100644
index 000000000000..0d1be607d20e
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_center_catalog_image_definitions_operations_async.py
@@ -0,0 +1,77 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtDevCenterCatalogImageDefinitionsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_center_catalog_image_definitions_list_by_dev_center_catalog(self, resource_group):
+ response = self.client.dev_center_catalog_image_definitions.list_by_dev_center_catalog(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_center_catalog_image_definitions_get_by_dev_center_catalog(self, resource_group):
+ response = await self.client.dev_center_catalog_image_definitions.get_by_dev_center_catalog(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_center_catalog_image_definitions_get_error_details(self, resource_group):
+ response = await self.client.dev_center_catalog_image_definitions.get_error_details(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_center_catalog_image_definitions_begin_build_image(self, resource_group):
+ response = await (
+ await self.client.dev_center_catalog_image_definitions.begin_build_image(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_centers_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_centers_operations.py
new file mode 100644
index 000000000000..188186742814
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_centers_operations.py
@@ -0,0 +1,149 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtDevCentersOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_centers_list_by_subscription(self, resource_group):
+ response = self.client.dev_centers.list_by_subscription(
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_centers_list_by_resource_group(self, resource_group):
+ response = self.client.dev_centers.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_centers_get(self, resource_group):
+ response = self.client.dev_centers.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_centers_begin_create_or_update(self, resource_group):
+ response = self.client.dev_centers.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ body={
+ "location": "str",
+ "devBoxProvisioningSettings": {"installAzureMonitorAgentEnableStatus": "str"},
+ "devCenterUri": "str",
+ "displayName": "str",
+ "encryption": {
+ "customerManagedKeyEncryption": {
+ "keyEncryptionKeyIdentity": {
+ "delegatedIdentityClientId": "str",
+ "identityType": "str",
+ "userAssignedIdentityResourceId": "str",
+ },
+ "keyEncryptionKeyUrl": "str",
+ }
+ },
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "name": "str",
+ "networkSettings": {"microsoftHostedNetworkEnableStatus": "str"},
+ "projectCatalogSettings": {"catalogItemSyncEnableStatus": "str"},
+ "provisioningState": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_centers_begin_update(self, resource_group):
+ response = self.client.dev_centers.begin_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ body={
+ "devBoxProvisioningSettings": {"installAzureMonitorAgentEnableStatus": "str"},
+ "displayName": "str",
+ "encryption": {
+ "customerManagedKeyEncryption": {
+ "keyEncryptionKeyIdentity": {
+ "delegatedIdentityClientId": "str",
+ "identityType": "str",
+ "userAssignedIdentityResourceId": "str",
+ },
+ "keyEncryptionKeyUrl": "str",
+ }
+ },
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "location": "str",
+ "networkSettings": {"microsoftHostedNetworkEnableStatus": "str"},
+ "projectCatalogSettings": {"catalogItemSyncEnableStatus": "str"},
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_dev_centers_begin_delete(self, resource_group):
+ response = self.client.dev_centers.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_centers_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_centers_operations_async.py
new file mode 100644
index 000000000000..4767850040c3
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_dev_centers_operations_async.py
@@ -0,0 +1,156 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtDevCentersOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_centers_list_by_subscription(self, resource_group):
+ response = self.client.dev_centers.list_by_subscription(
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_centers_list_by_resource_group(self, resource_group):
+ response = self.client.dev_centers.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_centers_get(self, resource_group):
+ response = await self.client.dev_centers.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_centers_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.dev_centers.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ body={
+ "location": "str",
+ "devBoxProvisioningSettings": {"installAzureMonitorAgentEnableStatus": "str"},
+ "devCenterUri": "str",
+ "displayName": "str",
+ "encryption": {
+ "customerManagedKeyEncryption": {
+ "keyEncryptionKeyIdentity": {
+ "delegatedIdentityClientId": "str",
+ "identityType": "str",
+ "userAssignedIdentityResourceId": "str",
+ },
+ "keyEncryptionKeyUrl": "str",
+ }
+ },
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "name": "str",
+ "networkSettings": {"microsoftHostedNetworkEnableStatus": "str"},
+ "projectCatalogSettings": {"catalogItemSyncEnableStatus": "str"},
+ "provisioningState": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_centers_begin_update(self, resource_group):
+ response = await (
+ await self.client.dev_centers.begin_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ body={
+ "devBoxProvisioningSettings": {"installAzureMonitorAgentEnableStatus": "str"},
+ "displayName": "str",
+ "encryption": {
+ "customerManagedKeyEncryption": {
+ "keyEncryptionKeyIdentity": {
+ "delegatedIdentityClientId": "str",
+ "identityType": "str",
+ "userAssignedIdentityResourceId": "str",
+ },
+ "keyEncryptionKeyUrl": "str",
+ }
+ },
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "location": "str",
+ "networkSettings": {"microsoftHostedNetworkEnableStatus": "str"},
+ "projectCatalogSettings": {"catalogItemSyncEnableStatus": "str"},
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_dev_centers_begin_delete(self, resource_group):
+ response = await (
+ await self.client.dev_centers.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_encryption_sets_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_encryption_sets_operations.py
new file mode 100644
index 000000000000..d0da63d51834
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_encryption_sets_operations.py
@@ -0,0 +1,119 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtEncryptionSetsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_encryption_sets_list(self, resource_group):
+ response = self.client.encryption_sets.list(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_encryption_sets_get(self, resource_group):
+ response = self.client.encryption_sets.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ encryption_set_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_encryption_sets_begin_create_or_update(self, resource_group):
+ response = self.client.encryption_sets.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ encryption_set_name="str",
+ body={
+ "location": "str",
+ "devboxDisksEncryptionEnableStatus": "str",
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "keyEncryptionKeyUrl": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_encryption_sets_begin_update(self, resource_group):
+ response = self.client.encryption_sets.begin_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ encryption_set_name="str",
+ body={
+ "devboxDisksEncryptionEnableStatus": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "keyEncryptionKeyUrl": "str",
+ "location": "str",
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_encryption_sets_begin_delete(self, resource_group):
+ response = self.client.encryption_sets.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ encryption_set_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_encryption_sets_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_encryption_sets_operations_async.py
new file mode 100644
index 000000000000..ad770ee592a9
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_encryption_sets_operations_async.py
@@ -0,0 +1,126 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtEncryptionSetsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_encryption_sets_list(self, resource_group):
+ response = self.client.encryption_sets.list(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_encryption_sets_get(self, resource_group):
+ response = await self.client.encryption_sets.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ encryption_set_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_encryption_sets_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.encryption_sets.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ encryption_set_name="str",
+ body={
+ "location": "str",
+ "devboxDisksEncryptionEnableStatus": "str",
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "keyEncryptionKeyUrl": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_encryption_sets_begin_update(self, resource_group):
+ response = await (
+ await self.client.encryption_sets.begin_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ encryption_set_name="str",
+ body={
+ "devboxDisksEncryptionEnableStatus": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "keyEncryptionKeyUrl": "str",
+ "location": "str",
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_encryption_sets_begin_delete(self, resource_group):
+ response = await (
+ await self.client.encryption_sets.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ encryption_set_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_definitions_operations.py
new file mode 100644
index 000000000000..20ce3f57f941
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_definitions_operations.py
@@ -0,0 +1,87 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtEnvironmentDefinitionsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_environment_definitions_list_by_project_catalog(self, resource_group):
+ response = self.client.environment_definitions.list_by_project_catalog(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_environment_definitions_get_by_project_catalog(self, resource_group):
+ response = self.client.environment_definitions.get_by_project_catalog(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ environment_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_environment_definitions_list_by_catalog(self, resource_group):
+ response = self.client.environment_definitions.list_by_catalog(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_environment_definitions_get(self, resource_group):
+ response = self.client.environment_definitions.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ environment_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_environment_definitions_get_error_details(self, resource_group):
+ response = self.client.environment_definitions.get_error_details(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ environment_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_definitions_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_definitions_operations_async.py
new file mode 100644
index 000000000000..e31dba885afb
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_definitions_operations_async.py
@@ -0,0 +1,88 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtEnvironmentDefinitionsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_environment_definitions_list_by_project_catalog(self, resource_group):
+ response = self.client.environment_definitions.list_by_project_catalog(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_environment_definitions_get_by_project_catalog(self, resource_group):
+ response = await self.client.environment_definitions.get_by_project_catalog(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ environment_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_environment_definitions_list_by_catalog(self, resource_group):
+ response = self.client.environment_definitions.list_by_catalog(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_environment_definitions_get(self, resource_group):
+ response = await self.client.environment_definitions.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ environment_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_environment_definitions_get_error_details(self, resource_group):
+ response = await self.client.environment_definitions.get_error_details(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ catalog_name="str",
+ environment_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_types_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_types_operations.py
new file mode 100644
index 000000000000..65ef43bce91f
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_types_operations.py
@@ -0,0 +1,100 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtEnvironmentTypesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_environment_types_list_by_dev_center(self, resource_group):
+ response = self.client.environment_types.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_environment_types_get(self, resource_group):
+ response = self.client.environment_types.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ environment_type_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_environment_types_create_or_update(self, resource_group):
+ response = self.client.environment_types.create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ environment_type_name="str",
+ body={
+ "displayName": "str",
+ "id": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_environment_types_update(self, resource_group):
+ response = self.client.environment_types.update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ environment_type_name="str",
+ body={"displayName": "str", "tags": {"str": "str"}},
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_environment_types_delete(self, resource_group):
+ response = self.client.environment_types.delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ environment_type_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_types_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_types_operations_async.py
new file mode 100644
index 000000000000..9fc889eebb7d
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_environment_types_operations_async.py
@@ -0,0 +1,101 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtEnvironmentTypesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_environment_types_list_by_dev_center(self, resource_group):
+ response = self.client.environment_types.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_environment_types_get(self, resource_group):
+ response = await self.client.environment_types.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ environment_type_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_environment_types_create_or_update(self, resource_group):
+ response = await self.client.environment_types.create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ environment_type_name="str",
+ body={
+ "displayName": "str",
+ "id": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_environment_types_update(self, resource_group):
+ response = await self.client.environment_types.update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ environment_type_name="str",
+ body={"displayName": "str", "tags": {"str": "str"}},
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_environment_types_delete(self, resource_group):
+ response = await self.client.environment_types.delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ environment_type_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_galleries_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_galleries_operations.py
new file mode 100644
index 000000000000..5240a90c6313
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_galleries_operations.py
@@ -0,0 +1,85 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtGalleriesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_galleries_list_by_dev_center(self, resource_group):
+ response = self.client.galleries.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_galleries_get(self, resource_group):
+ response = self.client.galleries.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_galleries_begin_create_or_update(self, resource_group):
+ response = self.client.galleries.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ body={
+ "galleryResourceId": "str",
+ "id": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_galleries_begin_delete(self, resource_group):
+ response = self.client.galleries.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_galleries_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_galleries_operations_async.py
new file mode 100644
index 000000000000..a011b9c4d1d7
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_galleries_operations_async.py
@@ -0,0 +1,90 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtGalleriesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_galleries_list_by_dev_center(self, resource_group):
+ response = self.client.galleries.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_galleries_get(self, resource_group):
+ response = await self.client.galleries.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_galleries_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.galleries.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ body={
+ "galleryResourceId": "str",
+ "id": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_galleries_begin_delete(self, resource_group):
+ response = await (
+ await self.client.galleries.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_image_versions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_image_versions_operations.py
new file mode 100644
index 000000000000..cc44801b811e
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_image_versions_operations.py
@@ -0,0 +1,75 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtImageVersionsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_image_versions_list_by_image(self, resource_group):
+ response = self.client.image_versions.list_by_image(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ image_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_image_versions_get(self, resource_group):
+ response = self.client.image_versions.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ image_name="str",
+ version_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_image_versions_list_by_project(self, resource_group):
+ response = self.client.image_versions.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ image_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_image_versions_get_by_project(self, resource_group):
+ response = self.client.image_versions.get_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ image_name="str",
+ version_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_image_versions_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_image_versions_operations_async.py
new file mode 100644
index 000000000000..9d63d063930a
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_image_versions_operations_async.py
@@ -0,0 +1,76 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtImageVersionsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_image_versions_list_by_image(self, resource_group):
+ response = self.client.image_versions.list_by_image(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ image_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_image_versions_get(self, resource_group):
+ response = await self.client.image_versions.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ image_name="str",
+ version_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_image_versions_list_by_project(self, resource_group):
+ response = self.client.image_versions.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ image_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_image_versions_get_by_project(self, resource_group):
+ response = await self.client.image_versions.get_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ image_name="str",
+ version_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_images_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_images_operations.py
new file mode 100644
index 000000000000..1ecea8696d9b
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_images_operations.py
@@ -0,0 +1,83 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtImagesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_images_list_by_dev_center(self, resource_group):
+ response = self.client.images.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_images_list_by_gallery(self, resource_group):
+ response = self.client.images.list_by_gallery(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_images_get(self, resource_group):
+ response = self.client.images.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ image_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_images_list_by_project(self, resource_group):
+ response = self.client.images.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_images_get_by_project(self, resource_group):
+ response = self.client.images.get_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ image_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_images_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_images_operations_async.py
new file mode 100644
index 000000000000..5e84d440c875
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_images_operations_async.py
@@ -0,0 +1,84 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtImagesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_images_list_by_dev_center(self, resource_group):
+ response = self.client.images.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_images_list_by_gallery(self, resource_group):
+ response = self.client.images.list_by_gallery(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_images_get(self, resource_group):
+ response = await self.client.images.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ gallery_name="str",
+ image_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_images_list_by_project(self, resource_group):
+ response = self.client.images.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_images_get_by_project(self, resource_group):
+ response = await self.client.images.get_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ image_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_network_connections_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_network_connections_operations.py
new file mode 100644
index 000000000000..4e7d540ebce9
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_network_connections_operations.py
@@ -0,0 +1,169 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtNetworkConnectionsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_network_connections_list_by_subscription(self, resource_group):
+ response = self.client.network_connections.list_by_subscription(
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_network_connections_list_by_resource_group(self, resource_group):
+ response = self.client.network_connections.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_network_connections_get(self, resource_group):
+ response = self.client.network_connections.get(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_network_connections_begin_create_or_update(self, resource_group):
+ response = self.client.network_connections.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ body={
+ "location": "str",
+ "domainJoinType": "str",
+ "domainName": "str",
+ "domainPassword": "str",
+ "domainUsername": "str",
+ "healthCheckStatus": "str",
+ "id": "str",
+ "name": "str",
+ "networkingResourceGroupName": "str",
+ "organizationUnit": "str",
+ "provisioningState": "str",
+ "subnetId": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_network_connections_begin_update(self, resource_group):
+ response = self.client.network_connections.begin_update(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ body={
+ "domainName": "str",
+ "domainPassword": "str",
+ "domainUsername": "str",
+ "location": "str",
+ "organizationUnit": "str",
+ "subnetId": "str",
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_network_connections_begin_delete(self, resource_group):
+ response = self.client.network_connections.begin_delete(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_network_connections_list_health_details(self, resource_group):
+ response = self.client.network_connections.list_health_details(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_network_connections_get_health_details(self, resource_group):
+ response = self.client.network_connections.get_health_details(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_network_connections_begin_run_health_checks(self, resource_group):
+ response = self.client.network_connections.begin_run_health_checks(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_network_connections_list_outbound_network_dependencies_endpoints(self, resource_group):
+ response = self.client.network_connections.list_outbound_network_dependencies_endpoints(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_network_connections_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_network_connections_operations_async.py
new file mode 100644
index 000000000000..953f75e05c1e
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_network_connections_operations_async.py
@@ -0,0 +1,178 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtNetworkConnectionsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_network_connections_list_by_subscription(self, resource_group):
+ response = self.client.network_connections.list_by_subscription(
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_network_connections_list_by_resource_group(self, resource_group):
+ response = self.client.network_connections.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_network_connections_get(self, resource_group):
+ response = await self.client.network_connections.get(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_network_connections_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.network_connections.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ body={
+ "location": "str",
+ "domainJoinType": "str",
+ "domainName": "str",
+ "domainPassword": "str",
+ "domainUsername": "str",
+ "healthCheckStatus": "str",
+ "id": "str",
+ "name": "str",
+ "networkingResourceGroupName": "str",
+ "organizationUnit": "str",
+ "provisioningState": "str",
+ "subnetId": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_network_connections_begin_update(self, resource_group):
+ response = await (
+ await self.client.network_connections.begin_update(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ body={
+ "domainName": "str",
+ "domainPassword": "str",
+ "domainUsername": "str",
+ "location": "str",
+ "organizationUnit": "str",
+ "subnetId": "str",
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_network_connections_begin_delete(self, resource_group):
+ response = await (
+ await self.client.network_connections.begin_delete(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_network_connections_list_health_details(self, resource_group):
+ response = self.client.network_connections.list_health_details(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_network_connections_get_health_details(self, resource_group):
+ response = await self.client.network_connections.get_health_details(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_network_connections_begin_run_health_checks(self, resource_group):
+ response = await (
+ await self.client.network_connections.begin_run_health_checks(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_network_connections_list_outbound_network_dependencies_endpoints(self, resource_group):
+ response = self.client.network_connections.list_outbound_network_dependencies_endpoints(
+ resource_group_name=resource_group.name,
+ network_connection_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operation_statuses_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operation_statuses_operations.py
new file mode 100644
index 000000000000..15856874df42
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operation_statuses_operations.py
@@ -0,0 +1,31 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtOperationStatusesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_operation_statuses_get(self, resource_group):
+ response = self.client.operation_statuses.get(
+ location="str",
+ operation_id="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operation_statuses_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operation_statuses_operations_async.py
new file mode 100644
index 000000000000..68e13f7240ef
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operation_statuses_operations_async.py
@@ -0,0 +1,32 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtOperationStatusesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_operation_statuses_get(self, resource_group):
+ response = await self.client.operation_statuses.get(
+ location="str",
+ operation_id="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operations.py
new file mode 100644
index 000000000000..baa028a76829
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operations.py
@@ -0,0 +1,29 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_operations_list(self, resource_group):
+ response = self.client.operations.list(
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operations_async.py
new file mode 100644
index 000000000000..75c9e38b5a64
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_operations_async.py
@@ -0,0 +1,30 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_operations_list(self, resource_group):
+ response = self.client.operations.list(
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_pools_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_pools_operations.py
new file mode 100644
index 000000000000..e947d3f36f27
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_pools_operations.py
@@ -0,0 +1,167 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtPoolsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_pools_list_by_project(self, resource_group):
+ response = self.client.pools.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_pools_get(self, resource_group):
+ response = self.client.pools.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_pools_begin_create_or_update(self, resource_group):
+ response = self.client.pools.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ body={
+ "location": "str",
+ "activeHoursConfiguration": {
+ "autoStartEnableStatus": "str",
+ "defaultEndTimeHour": 0,
+ "defaultStartTimeHour": 0,
+ "defaultTimeZone": "str",
+ "keepAwakeEnableStatus": "str",
+ },
+ "devBoxCount": 0,
+ "devBoxDefinition": {
+ "activeImageReference": {"exactVersion": "str", "id": "str"},
+ "imageReference": {"exactVersion": "str", "id": "str"},
+ "sku": {"name": "str", "capacity": 0, "family": "str", "size": "str", "tier": "str"},
+ },
+ "devBoxDefinitionName": "str",
+ "devBoxDefinitionType": "str",
+ "devBoxTunnelEnableStatus": "str",
+ "displayName": "str",
+ "healthStatus": "str",
+ "healthStatusDetails": [{"code": "str", "message": "str"}],
+ "id": "str",
+ "licenseType": "str",
+ "localAdministrator": "str",
+ "managedVirtualNetworkRegions": ["str"],
+ "name": "str",
+ "networkConnectionName": "str",
+ "provisioningState": "str",
+ "singleSignOnStatus": "str",
+ "stopOnDisconnect": {"gracePeriodMinutes": 0, "status": "str"},
+ "stopOnNoConnect": {"gracePeriodMinutes": 0, "status": "str"},
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "virtualNetworkType": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_pools_begin_update(self, resource_group):
+ response = self.client.pools.begin_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ body={
+ "activeHoursConfiguration": {
+ "autoStartEnableStatus": "str",
+ "defaultEndTimeHour": 0,
+ "defaultStartTimeHour": 0,
+ "defaultTimeZone": "str",
+ "keepAwakeEnableStatus": "str",
+ },
+ "devBoxDefinition": {
+ "activeImageReference": {"exactVersion": "str", "id": "str"},
+ "imageReference": {"exactVersion": "str", "id": "str"},
+ "sku": {"name": "str", "capacity": 0, "family": "str", "size": "str", "tier": "str"},
+ },
+ "devBoxDefinitionName": "str",
+ "devBoxDefinitionType": "str",
+ "devBoxTunnelEnableStatus": "str",
+ "displayName": "str",
+ "licenseType": "str",
+ "localAdministrator": "str",
+ "location": "str",
+ "managedVirtualNetworkRegions": ["str"],
+ "networkConnectionName": "str",
+ "singleSignOnStatus": "str",
+ "stopOnDisconnect": {"gracePeriodMinutes": 0, "status": "str"},
+ "stopOnNoConnect": {"gracePeriodMinutes": 0, "status": "str"},
+ "tags": {"str": "str"},
+ "virtualNetworkType": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_pools_begin_delete(self, resource_group):
+ response = self.client.pools.begin_delete(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_pools_begin_run_health_checks(self, resource_group):
+ response = self.client.pools.begin_run_health_checks(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_pools_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_pools_operations_async.py
new file mode 100644
index 000000000000..4b3307a0ed03
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_pools_operations_async.py
@@ -0,0 +1,176 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtPoolsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_pools_list_by_project(self, resource_group):
+ response = self.client.pools.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_pools_get(self, resource_group):
+ response = await self.client.pools.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_pools_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.pools.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ body={
+ "location": "str",
+ "activeHoursConfiguration": {
+ "autoStartEnableStatus": "str",
+ "defaultEndTimeHour": 0,
+ "defaultStartTimeHour": 0,
+ "defaultTimeZone": "str",
+ "keepAwakeEnableStatus": "str",
+ },
+ "devBoxCount": 0,
+ "devBoxDefinition": {
+ "activeImageReference": {"exactVersion": "str", "id": "str"},
+ "imageReference": {"exactVersion": "str", "id": "str"},
+ "sku": {"name": "str", "capacity": 0, "family": "str", "size": "str", "tier": "str"},
+ },
+ "devBoxDefinitionName": "str",
+ "devBoxDefinitionType": "str",
+ "devBoxTunnelEnableStatus": "str",
+ "displayName": "str",
+ "healthStatus": "str",
+ "healthStatusDetails": [{"code": "str", "message": "str"}],
+ "id": "str",
+ "licenseType": "str",
+ "localAdministrator": "str",
+ "managedVirtualNetworkRegions": ["str"],
+ "name": "str",
+ "networkConnectionName": "str",
+ "provisioningState": "str",
+ "singleSignOnStatus": "str",
+ "stopOnDisconnect": {"gracePeriodMinutes": 0, "status": "str"},
+ "stopOnNoConnect": {"gracePeriodMinutes": 0, "status": "str"},
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "virtualNetworkType": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_pools_begin_update(self, resource_group):
+ response = await (
+ await self.client.pools.begin_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ body={
+ "activeHoursConfiguration": {
+ "autoStartEnableStatus": "str",
+ "defaultEndTimeHour": 0,
+ "defaultStartTimeHour": 0,
+ "defaultTimeZone": "str",
+ "keepAwakeEnableStatus": "str",
+ },
+ "devBoxDefinition": {
+ "activeImageReference": {"exactVersion": "str", "id": "str"},
+ "imageReference": {"exactVersion": "str", "id": "str"},
+ "sku": {"name": "str", "capacity": 0, "family": "str", "size": "str", "tier": "str"},
+ },
+ "devBoxDefinitionName": "str",
+ "devBoxDefinitionType": "str",
+ "devBoxTunnelEnableStatus": "str",
+ "displayName": "str",
+ "licenseType": "str",
+ "localAdministrator": "str",
+ "location": "str",
+ "managedVirtualNetworkRegions": ["str"],
+ "networkConnectionName": "str",
+ "singleSignOnStatus": "str",
+ "stopOnDisconnect": {"gracePeriodMinutes": 0, "status": "str"},
+ "stopOnNoConnect": {"gracePeriodMinutes": 0, "status": "str"},
+ "tags": {"str": "str"},
+ "virtualNetworkType": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_pools_begin_delete(self, resource_group):
+ response = await (
+ await self.client.pools.begin_delete(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_pools_begin_run_health_checks(self, resource_group):
+ response = await (
+ await self.client.pools.begin_run_health_checks(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_allowed_environment_types_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_allowed_environment_types_operations.py
new file mode 100644
index 000000000000..abd6e299ec20
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_allowed_environment_types_operations.py
@@ -0,0 +1,44 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectAllowedEnvironmentTypesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_allowed_environment_types_list(self, resource_group):
+ response = self.client.project_allowed_environment_types.list(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_allowed_environment_types_get(self, resource_group):
+ response = self.client.project_allowed_environment_types.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ environment_type_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_allowed_environment_types_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_allowed_environment_types_operations_async.py
new file mode 100644
index 000000000000..bc7b973d17cb
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_allowed_environment_types_operations_async.py
@@ -0,0 +1,45 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectAllowedEnvironmentTypesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_allowed_environment_types_list(self, resource_group):
+ response = self.client.project_allowed_environment_types.list(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_allowed_environment_types_get(self, resource_group):
+ response = await self.client.project_allowed_environment_types.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ environment_type_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_environment_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_environment_definitions_operations.py
new file mode 100644
index 000000000000..0433c7690eb3
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_environment_definitions_operations.py
@@ -0,0 +1,33 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectCatalogEnvironmentDefinitionsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalog_environment_definitions_get_error_details(self, resource_group):
+ response = self.client.project_catalog_environment_definitions.get_error_details(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ environment_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_environment_definitions_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_environment_definitions_operations_async.py
new file mode 100644
index 000000000000..1290a03cf161
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_environment_definitions_operations_async.py
@@ -0,0 +1,34 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectCatalogEnvironmentDefinitionsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalog_environment_definitions_get_error_details(self, resource_group):
+ response = await self.client.project_catalog_environment_definitions.get_error_details(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ environment_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_build_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_build_operations.py
new file mode 100644
index 000000000000..fbba2e081a4d
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_build_operations.py
@@ -0,0 +1,64 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectCatalogImageDefinitionBuildOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalog_image_definition_build_get(self, resource_group):
+ response = self.client.project_catalog_image_definition_build.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalog_image_definition_build_begin_cancel(self, resource_group):
+ response = self.client.project_catalog_image_definition_build.begin_cancel(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalog_image_definition_build_get_build_details(self, resource_group):
+ response = self.client.project_catalog_image_definition_build.get_build_details(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_build_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_build_operations_async.py
new file mode 100644
index 000000000000..bea9b4b9809f
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_build_operations_async.py
@@ -0,0 +1,67 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectCatalogImageDefinitionBuildOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalog_image_definition_build_get(self, resource_group):
+ response = await self.client.project_catalog_image_definition_build.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalog_image_definition_build_begin_cancel(self, resource_group):
+ response = await (
+ await self.client.project_catalog_image_definition_build.begin_cancel(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalog_image_definition_build_get_build_details(self, resource_group):
+ response = await self.client.project_catalog_image_definition_build.get_build_details(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ build_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_builds_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_builds_operations.py
new file mode 100644
index 000000000000..faacbb4b7f7c
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_builds_operations.py
@@ -0,0 +1,33 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectCatalogImageDefinitionBuildsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalog_image_definition_builds_list_by_image_definition(self, resource_group):
+ response = self.client.project_catalog_image_definition_builds.list_by_image_definition(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_builds_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_builds_operations_async.py
new file mode 100644
index 000000000000..90c3fb37b592
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definition_builds_operations_async.py
@@ -0,0 +1,34 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectCatalogImageDefinitionBuildsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalog_image_definition_builds_list_by_image_definition(self, resource_group):
+ response = self.client.project_catalog_image_definition_builds.list_by_image_definition(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definitions_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definitions_operations.py
new file mode 100644
index 000000000000..ea3330abecce
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definitions_operations.py
@@ -0,0 +1,74 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectCatalogImageDefinitionsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalog_image_definitions_list_by_project_catalog(self, resource_group):
+ response = self.client.project_catalog_image_definitions.list_by_project_catalog(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalog_image_definitions_get_by_project_catalog(self, resource_group):
+ response = self.client.project_catalog_image_definitions.get_by_project_catalog(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalog_image_definitions_get_error_details(self, resource_group):
+ response = self.client.project_catalog_image_definitions.get_error_details(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalog_image_definitions_begin_build_image(self, resource_group):
+ response = self.client.project_catalog_image_definitions.begin_build_image(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definitions_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definitions_operations_async.py
new file mode 100644
index 000000000000..a4353269b652
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalog_image_definitions_operations_async.py
@@ -0,0 +1,77 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectCatalogImageDefinitionsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalog_image_definitions_list_by_project_catalog(self, resource_group):
+ response = self.client.project_catalog_image_definitions.list_by_project_catalog(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalog_image_definitions_get_by_project_catalog(self, resource_group):
+ response = await self.client.project_catalog_image_definitions.get_by_project_catalog(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalog_image_definitions_get_error_details(self, resource_group):
+ response = await self.client.project_catalog_image_definitions.get_error_details(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalog_image_definitions_begin_build_image(self, resource_group):
+ response = await (
+ await self.client.project_catalog_image_definitions.begin_build_image(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ image_definition_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalogs_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalogs_operations.py
new file mode 100644
index 000000000000..4fa344290f5a
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalogs_operations.py
@@ -0,0 +1,159 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectCatalogsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalogs_list(self, resource_group):
+ response = self.client.project_catalogs.list(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalogs_get(self, resource_group):
+ response = self.client.project_catalogs.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalogs_begin_create_or_update(self, resource_group):
+ response = self.client.project_catalogs.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ body={
+ "adoGit": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "connectionState": "str",
+ "gitHub": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "id": "str",
+ "lastConnectionTime": "2020-02-20 00:00:00",
+ "lastSyncStats": {
+ "added": 0,
+ "removed": 0,
+ "syncedCatalogItemTypes": ["str"],
+ "synchronizationErrors": 0,
+ "unchanged": 0,
+ "updated": 0,
+ "validationErrors": 0,
+ },
+ "lastSyncTime": "2020-02-20 00:00:00",
+ "name": "str",
+ "provisioningState": "str",
+ "syncState": "str",
+ "syncType": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalogs_begin_patch(self, resource_group):
+ response = self.client.project_catalogs.begin_patch(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ body={
+ "adoGit": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "gitHub": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "syncType": "str",
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalogs_begin_delete(self, resource_group):
+ response = self.client.project_catalogs.begin_delete(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalogs_get_sync_error_details(self, resource_group):
+ response = self.client.project_catalogs.get_sync_error_details(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalogs_begin_sync(self, resource_group):
+ response = self.client.project_catalogs.begin_sync(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_catalogs_begin_connect(self, resource_group):
+ response = self.client.project_catalogs.begin_connect(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalogs_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalogs_operations_async.py
new file mode 100644
index 000000000000..f175f644b035
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_catalogs_operations_async.py
@@ -0,0 +1,170 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectCatalogsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalogs_list(self, resource_group):
+ response = self.client.project_catalogs.list(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalogs_get(self, resource_group):
+ response = await self.client.project_catalogs.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalogs_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.project_catalogs.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ body={
+ "adoGit": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "connectionState": "str",
+ "gitHub": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "id": "str",
+ "lastConnectionTime": "2020-02-20 00:00:00",
+ "lastSyncStats": {
+ "added": 0,
+ "removed": 0,
+ "syncedCatalogItemTypes": ["str"],
+ "synchronizationErrors": 0,
+ "unchanged": 0,
+ "updated": 0,
+ "validationErrors": 0,
+ },
+ "lastSyncTime": "2020-02-20 00:00:00",
+ "name": "str",
+ "provisioningState": "str",
+ "syncState": "str",
+ "syncType": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalogs_begin_patch(self, resource_group):
+ response = await (
+ await self.client.project_catalogs.begin_patch(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ body={
+ "adoGit": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "gitHub": {"branch": "str", "path": "str", "secretIdentifier": "str", "uri": "str"},
+ "syncType": "str",
+ "tags": {"str": "str"},
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalogs_begin_delete(self, resource_group):
+ response = await (
+ await self.client.project_catalogs.begin_delete(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalogs_get_sync_error_details(self, resource_group):
+ response = await self.client.project_catalogs.get_sync_error_details(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalogs_begin_sync(self, resource_group):
+ response = await (
+ await self.client.project_catalogs.begin_sync(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_catalogs_begin_connect(self, resource_group):
+ response = await (
+ await self.client.project_catalogs.begin_connect(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ catalog_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_environment_types_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_environment_types_operations.py
new file mode 100644
index 000000000000..46079cfe42a3
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_environment_types_operations.py
@@ -0,0 +1,125 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectEnvironmentTypesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_environment_types_list(self, resource_group):
+ response = self.client.project_environment_types.list(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_environment_types_get(self, resource_group):
+ response = self.client.project_environment_types.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ environment_type_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_environment_types_create_or_update(self, resource_group):
+ response = self.client.project_environment_types.create_or_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ environment_type_name="str",
+ body={
+ "creatorRoleAssignment": {"roles": {"str": {"description": "str", "roleName": "str"}}},
+ "deploymentTargetId": "str",
+ "displayName": "str",
+ "environmentCount": 0,
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "location": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "status": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "userRoleAssignments": {"str": {"roles": {"str": {"description": "str", "roleName": "str"}}}},
+ },
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_environment_types_update(self, resource_group):
+ response = self.client.project_environment_types.update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ environment_type_name="str",
+ body={
+ "creatorRoleAssignment": {"roles": {"str": {"description": "str", "roleName": "str"}}},
+ "deploymentTargetId": "str",
+ "displayName": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "status": "str",
+ "tags": {"str": "str"},
+ "userRoleAssignments": {"str": {"roles": {"str": {"description": "str", "roleName": "str"}}}},
+ },
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_environment_types_delete(self, resource_group):
+ response = self.client.project_environment_types.delete(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ environment_type_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_environment_types_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_environment_types_operations_async.py
new file mode 100644
index 000000000000..32e13b1433d8
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_environment_types_operations_async.py
@@ -0,0 +1,126 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectEnvironmentTypesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_environment_types_list(self, resource_group):
+ response = self.client.project_environment_types.list(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_environment_types_get(self, resource_group):
+ response = await self.client.project_environment_types.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ environment_type_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_environment_types_create_or_update(self, resource_group):
+ response = await self.client.project_environment_types.create_or_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ environment_type_name="str",
+ body={
+ "creatorRoleAssignment": {"roles": {"str": {"description": "str", "roleName": "str"}}},
+ "deploymentTargetId": "str",
+ "displayName": "str",
+ "environmentCount": 0,
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "location": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "status": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "userRoleAssignments": {"str": {"roles": {"str": {"description": "str", "roleName": "str"}}}},
+ },
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_environment_types_update(self, resource_group):
+ response = await self.client.project_environment_types.update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ environment_type_name="str",
+ body={
+ "creatorRoleAssignment": {"roles": {"str": {"description": "str", "roleName": "str"}}},
+ "deploymentTargetId": "str",
+ "displayName": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "status": "str",
+ "tags": {"str": "str"},
+ "userRoleAssignments": {"str": {"roles": {"str": {"description": "str", "roleName": "str"}}}},
+ },
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_environment_types_delete(self, resource_group):
+ response = await self.client.project_environment_types.delete(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ environment_type_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_policies_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_policies_operations.py
new file mode 100644
index 000000000000..af89a2e02b76
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_policies_operations.py
@@ -0,0 +1,103 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectPoliciesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_policies_list_by_dev_center(self, resource_group):
+ response = self.client.project_policies.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_policies_get(self, resource_group):
+ response = self.client.project_policies.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ project_policy_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_policies_begin_create_or_update(self, resource_group):
+ response = self.client.project_policies.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ project_policy_name="str",
+ body={
+ "id": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "resourcePolicies": [{"action": "str", "filter": "str", "resourceType": "str", "resources": "str"}],
+ "scopes": ["str"],
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_policies_begin_update(self, resource_group):
+ response = self.client.project_policies.begin_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ project_policy_name="str",
+ body={
+ "resourcePolicies": [{"action": "str", "filter": "str", "resourceType": "str", "resources": "str"}],
+ "scopes": ["str"],
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_project_policies_begin_delete(self, resource_group):
+ response = self.client.project_policies.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ project_policy_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_policies_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_policies_operations_async.py
new file mode 100644
index 000000000000..e134826efde2
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_project_policies_operations_async.py
@@ -0,0 +1,110 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectPoliciesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_policies_list_by_dev_center(self, resource_group):
+ response = self.client.project_policies.list_by_dev_center(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_policies_get(self, resource_group):
+ response = await self.client.project_policies.get(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ project_policy_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_policies_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.project_policies.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ project_policy_name="str",
+ body={
+ "id": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "resourcePolicies": [{"action": "str", "filter": "str", "resourceType": "str", "resources": "str"}],
+ "scopes": ["str"],
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_policies_begin_update(self, resource_group):
+ response = await (
+ await self.client.project_policies.begin_update(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ project_policy_name="str",
+ body={
+ "resourcePolicies": [{"action": "str", "filter": "str", "resourceType": "str", "resources": "str"}],
+ "scopes": ["str"],
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_project_policies_begin_delete(self, resource_group):
+ response = await (
+ await self.client.project_policies.begin_delete(
+ resource_group_name=resource_group.name,
+ dev_center_name="str",
+ project_policy_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_projects_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_projects_operations.py
new file mode 100644
index 000000000000..efe622e027aa
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_projects_operations.py
@@ -0,0 +1,165 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectsOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_projects_list_by_subscription(self, resource_group):
+ response = self.client.projects.list_by_subscription(
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_projects_list_by_resource_group(self, resource_group):
+ response = self.client.projects.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_projects_get(self, resource_group):
+ response = self.client.projects.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_projects_begin_create_or_update(self, resource_group):
+ response = self.client.projects.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ body={
+ "location": "str",
+ "azureAiServicesSettings": {"azureAiServicesEnableStatus": "str"},
+ "catalogSettings": {"catalogItemSyncTypes": ["str"]},
+ "customizationSettings": {
+ "identities": [{"identityResourceId": "str", "identityType": "str"}],
+ "userCustomizationsEnableStatus": "str",
+ },
+ "description": "str",
+ "devBoxAutoDeleteSettings": {"enableStatus": "str", "gracePeriod": "str", "inactiveThreshold": "str"},
+ "devCenterId": "str",
+ "devCenterUri": "str",
+ "displayName": "str",
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "maxDevBoxesPerUser": 0,
+ "name": "str",
+ "provisioningState": "str",
+ "serverlessGpuSessionsSettings": {
+ "maxConcurrentSessionsPerProject": 0,
+ "serverlessGpuSessionsEnableStatus": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "workspaceStorageSettings": {"workspaceStorageEnableStatus": "str"},
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_projects_begin_update(self, resource_group):
+ response = self.client.projects.begin_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ body={
+ "azureAiServicesSettings": {"azureAiServicesEnableStatus": "str"},
+ "catalogSettings": {"catalogItemSyncTypes": ["str"]},
+ "customizationSettings": {
+ "identities": [{"identityResourceId": "str", "identityType": "str"}],
+ "userCustomizationsEnableStatus": "str",
+ },
+ "description": "str",
+ "devBoxAutoDeleteSettings": {"enableStatus": "str", "gracePeriod": "str", "inactiveThreshold": "str"},
+ "devCenterId": "str",
+ "displayName": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "location": "str",
+ "maxDevBoxesPerUser": 0,
+ "serverlessGpuSessionsSettings": {
+ "maxConcurrentSessionsPerProject": 0,
+ "serverlessGpuSessionsEnableStatus": "str",
+ },
+ "tags": {"str": "str"},
+ "workspaceStorageSettings": {"workspaceStorageEnableStatus": "str"},
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_projects_begin_delete(self, resource_group):
+ response = self.client.projects.begin_delete(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_projects_get_inherited_settings(self, resource_group):
+ response = self.client.projects.get_inherited_settings(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_projects_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_projects_operations_async.py
new file mode 100644
index 000000000000..5eded66b73d7
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_projects_operations_async.py
@@ -0,0 +1,180 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtProjectsOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_projects_list_by_subscription(self, resource_group):
+ response = self.client.projects.list_by_subscription(
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_projects_list_by_resource_group(self, resource_group):
+ response = self.client.projects.list_by_resource_group(
+ resource_group_name=resource_group.name,
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_projects_get(self, resource_group):
+ response = await self.client.projects.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_projects_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.projects.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ body={
+ "location": "str",
+ "azureAiServicesSettings": {"azureAiServicesEnableStatus": "str"},
+ "catalogSettings": {"catalogItemSyncTypes": ["str"]},
+ "customizationSettings": {
+ "identities": [{"identityResourceId": "str", "identityType": "str"}],
+ "userCustomizationsEnableStatus": "str",
+ },
+ "description": "str",
+ "devBoxAutoDeleteSettings": {
+ "enableStatus": "str",
+ "gracePeriod": "str",
+ "inactiveThreshold": "str",
+ },
+ "devCenterId": "str",
+ "devCenterUri": "str",
+ "displayName": "str",
+ "id": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "maxDevBoxesPerUser": 0,
+ "name": "str",
+ "provisioningState": "str",
+ "serverlessGpuSessionsSettings": {
+ "maxConcurrentSessionsPerProject": 0,
+ "serverlessGpuSessionsEnableStatus": "str",
+ },
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "type": "str",
+ "workspaceStorageSettings": {"workspaceStorageEnableStatus": "str"},
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_projects_begin_update(self, resource_group):
+ response = await (
+ await self.client.projects.begin_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ body={
+ "azureAiServicesSettings": {"azureAiServicesEnableStatus": "str"},
+ "catalogSettings": {"catalogItemSyncTypes": ["str"]},
+ "customizationSettings": {
+ "identities": [{"identityResourceId": "str", "identityType": "str"}],
+ "userCustomizationsEnableStatus": "str",
+ },
+ "description": "str",
+ "devBoxAutoDeleteSettings": {
+ "enableStatus": "str",
+ "gracePeriod": "str",
+ "inactiveThreshold": "str",
+ },
+ "devCenterId": "str",
+ "displayName": "str",
+ "identity": {
+ "type": "str",
+ "principalId": "str",
+ "tenantId": "str",
+ "userAssignedIdentities": {"str": {"clientId": "str", "principalId": "str"}},
+ },
+ "location": "str",
+ "maxDevBoxesPerUser": 0,
+ "serverlessGpuSessionsSettings": {
+ "maxConcurrentSessionsPerProject": 0,
+ "serverlessGpuSessionsEnableStatus": "str",
+ },
+ "tags": {"str": "str"},
+ "workspaceStorageSettings": {"workspaceStorageEnableStatus": "str"},
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_projects_begin_delete(self, resource_group):
+ response = await (
+ await self.client.projects.begin_delete(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_projects_get_inherited_settings(self, resource_group):
+ response = await self.client.projects.get_inherited_settings(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_schedules_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_schedules_operations.py
new file mode 100644
index 000000000000..72dba9fc1651
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_schedules_operations.py
@@ -0,0 +1,117 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtSchedulesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_schedules_list_by_pool(self, resource_group):
+ response = self.client.schedules.list_by_pool(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_schedules_get(self, resource_group):
+ response = self.client.schedules.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ schedule_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_schedules_begin_create_or_update(self, resource_group):
+ response = self.client.schedules.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ schedule_name="str",
+ body={
+ "frequency": "str",
+ "id": "str",
+ "location": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "state": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "time": "str",
+ "timeZone": "str",
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_schedules_begin_update(self, resource_group):
+ response = self.client.schedules.begin_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ schedule_name="str",
+ body={
+ "frequency": "str",
+ "location": "str",
+ "state": "str",
+ "tags": {"str": "str"},
+ "time": "str",
+ "timeZone": "str",
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_schedules_begin_delete(self, resource_group):
+ response = self.client.schedules.begin_delete(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ schedule_name="str",
+ api_version="2025-04-01-preview",
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_schedules_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_schedules_operations_async.py
new file mode 100644
index 000000000000..4995d3115ef1
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_schedules_operations_async.py
@@ -0,0 +1,124 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtSchedulesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_schedules_list_by_pool(self, resource_group):
+ response = self.client.schedules.list_by_pool(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_schedules_get(self, resource_group):
+ response = await self.client.schedules.get(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ schedule_name="str",
+ api_version="2025-04-01-preview",
+ )
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_schedules_begin_create_or_update(self, resource_group):
+ response = await (
+ await self.client.schedules.begin_create_or_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ schedule_name="str",
+ body={
+ "frequency": "str",
+ "id": "str",
+ "location": "str",
+ "name": "str",
+ "provisioningState": "str",
+ "state": "str",
+ "systemData": {
+ "createdAt": "2020-02-20 00:00:00",
+ "createdBy": "str",
+ "createdByType": "str",
+ "lastModifiedAt": "2020-02-20 00:00:00",
+ "lastModifiedBy": "str",
+ "lastModifiedByType": "str",
+ },
+ "tags": {"str": "str"},
+ "time": "str",
+ "timeZone": "str",
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_schedules_begin_update(self, resource_group):
+ response = await (
+ await self.client.schedules.begin_update(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ schedule_name="str",
+ body={
+ "frequency": "str",
+ "location": "str",
+ "state": "str",
+ "tags": {"str": "str"},
+ "time": "str",
+ "timeZone": "str",
+ "type": "str",
+ },
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_schedules_begin_delete(self, resource_group):
+ response = await (
+ await self.client.schedules.begin_delete(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ pool_name="str",
+ schedule_name="str",
+ api_version="2025-04-01-preview",
+ )
+ ).result() # call '.result()' to poll until service return final result
+
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_skus_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_skus_operations.py
new file mode 100644
index 000000000000..e346477019d4
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_skus_operations.py
@@ -0,0 +1,41 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtSkusOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_skus_list_by_project(self, resource_group):
+ response = self.client.skus.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_skus_list_by_subscription(self, resource_group):
+ response = self.client.skus.list_by_subscription(
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_skus_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_skus_operations_async.py
new file mode 100644
index 000000000000..c1fc8986f050
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_skus_operations_async.py
@@ -0,0 +1,42 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtSkusOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_skus_list_by_project(self, resource_group):
+ response = self.client.skus.list_by_project(
+ resource_group_name=resource_group.name,
+ project_name="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_skus_list_by_subscription(self, resource_group):
+ response = self.client.skus.list_by_subscription(
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_usages_operations.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_usages_operations.py
new file mode 100644
index 000000000000..8acee9d74bf1
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_usages_operations.py
@@ -0,0 +1,30 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer, recorded_by_proxy
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtUsagesOperations(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy
+ def test_usages_list_by_location(self, resource_group):
+ response = self.client.usages.list_by_location(
+ location="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_usages_operations_async.py b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_usages_operations_async.py
new file mode 100644
index 000000000000..104e995fc9e2
--- /dev/null
+++ b/sdk/devcenter/azure-mgmt-devcenter/generated_tests/test_dev_center_mgmt_usages_operations_async.py
@@ -0,0 +1,31 @@
+# coding=utf-8
+# --------------------------------------------------------------------------
+# Copyright (c) Microsoft Corporation. All rights reserved.
+# Licensed under the MIT License. See License.txt in the project root for license information.
+# Code generated by Microsoft (R) AutoRest Code Generator.
+# Changes may cause incorrect behavior and will be lost if the code is regenerated.
+# --------------------------------------------------------------------------
+import pytest
+from azure.mgmt.devcenter.aio import DevCenterMgmtClient
+
+from devtools_testutils import AzureMgmtRecordedTestCase, RandomNameResourceGroupPreparer
+from devtools_testutils.aio import recorded_by_proxy_async
+
+AZURE_LOCATION = "eastus"
+
+
+@pytest.mark.skip("you may need to update the auto-generated test case before run it")
+class TestDevCenterMgmtUsagesOperationsAsync(AzureMgmtRecordedTestCase):
+ def setup_method(self, method):
+ self.client = self.create_mgmt_client(DevCenterMgmtClient, is_async=True)
+
+ @RandomNameResourceGroupPreparer(location=AZURE_LOCATION)
+ @recorded_by_proxy_async
+ async def test_usages_list_by_location(self, resource_group):
+ response = self.client.usages.list_by_location(
+ location="str",
+ api_version="2025-04-01-preview",
+ )
+ result = [r async for r in response]
+ # please add some check logic here by yourself
+ # ...
diff --git a/sdk/devcenter/azure-mgmt-devcenter/sdk_packaging.toml b/sdk/devcenter/azure-mgmt-devcenter/sdk_packaging.toml
index e3e758e2c8b7..58c431f8d67c 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/sdk_packaging.toml
+++ b/sdk/devcenter/azure-mgmt-devcenter/sdk_packaging.toml
@@ -3,7 +3,7 @@ package_name = "azure-mgmt-devcenter"
package_nspkg = "azure-mgmt-nspkg"
package_pprint_name = "Devcenter Management"
package_doc_id = ""
-is_stable = true
+is_stable = false
is_arm = true
need_msrestazure = false
need_azuremgmtcore = true
diff --git a/sdk/devcenter/azure-mgmt-devcenter/setup.py b/sdk/devcenter/azure-mgmt-devcenter/setup.py
index b6a84f25852a..e4d859ae78fe 100644
--- a/sdk/devcenter/azure-mgmt-devcenter/setup.py
+++ b/sdk/devcenter/azure-mgmt-devcenter/setup.py
@@ -49,7 +49,7 @@
url="https://github.com/Azure/azure-sdk-for-python",
keywords="azure, azure sdk", # update with search keywords relevant to the azure service / product
classifiers=[
- "Development Status :: 5 - Production/Stable",
+ "Development Status :: 4 - Beta",
"Programming Language :: Python",
"Programming Language :: Python :: 3 :: Only",
"Programming Language :: Python :: 3",
@@ -75,6 +75,7 @@
},
install_requires=[
"isodate>=0.6.1",
+ "typing-extensions>=4.6.0",
"azure-common>=1.1",
"azure-mgmt-core>=1.3.2",
],