From 95913728a15eef6714bcb8644a16209fd85a89d4 Mon Sep 17 00:00:00 2001 From: Brent Rusinow <44413020+brrusino@users.noreply.github.com> Date: Wed, 8 Jan 2025 10:12:01 -0800 Subject: [PATCH] Microsoft.Chaos TypeSpec migration (#31664) * sorted existing swagger * initial autogenerated typespec * initial TypeSpec updates to resolve warnings * added generated files * changed inputs to typespec-generated openapi * Revert "added generated files" This reverts commit c09b60a602d003f22606a64d26dd4e077963038d. Revert "initial TypeSpec updates to resolve warnings" This reverts commit 805007d2f9a078a8553853b638b246f1580dab07. * added new typespec migration api version * file format updates * reverted back unintentionally changed spec from previous api version * various modelvalidation fixes * fix * model validation fixes * linting fixes * fixes for linting * fixing swagger avocado * fixed x-ms-example for privatelink list * updated readme * fixed tspconfig formatting * updated tspconfig * updates to try to fix breaking sdk changes * trying to fix typescript client generation * updated tspconfig * another attempted fix for typescript sdk * updates to client.tsp * attempted ts fix * updated tspconfig * changed tspconfig back to original values * update to tspconfig for ts sdk * reverted back tspconfig * attempted javascript replacement for SDK operation * LintDiff fix * LintDiff fix * updated client.tsp * updated client.tsp for csharp replacements * updating metadata types for csharp client * updated csharp client replacements * updating target location visibility * updates to fix net sdk breaking changes * updated for net sdk * fixing net sdk failures * fixed client.tsp format * updated visibility for readonly properties * updated managed identity model reference * updated readme directives based on feedback * breaking change fix * split up models into separate files * changed file casing * fixed bad file reference * fixed spelling failure * fixed tsp formatting --- .../Chaos.Management/capability.models.tsp | 77 + .../chaos/Chaos.Management/capability.tsp | 61 + .../capabilityType.models.tsp | 110 + .../chaos/Chaos.Management/capabilityType.tsp | 42 + .../chaos/Chaos.Management/client.tsp | 55 + .../chaos/Chaos.Management/common.models.tsp | 100 + .../Capabilities_CreateOrUpdate.json | 55 + .../Capabilities_Delete.json | 18 + .../2024-11-01-preview/Capabilities_Get.json | 34 + .../2024-11-01-preview/Capabilities_List.json | 38 + .../CapabilityTypes_Get.json | 32 + .../CapabilityTypes_List.json | 36 + .../Experiments_Cancel.json | 18 + .../Experiments_CreateOrUpdate.json | 208 + .../Experiments_Delete.json | 19 + .../Experiments_ExecutionDetails.json | 66 + .../2024-11-01-preview/Experiments_Get.json | 76 + .../Experiments_GetExecution.json | 26 + .../2024-11-01-preview/Experiments_List.json | 81 + .../Experiments_ListAll.json | 80 + .../Experiments_ListAllExecutions.json | 40 + .../2024-11-01-preview/Experiments_Start.json | 18 + .../Experiments_Update.json | 104 + .../OperationStatuses_Get.json | 20 + .../2024-11-01-preview/Operations_List.json | 27 + ...e_Or_Update_A_Private_Access_Resource.json | 54 + ...s_Resource_With_Public_Network_Access.json | 58 + .../PrivateAccesses_Delete.json | 19 + ...sses_DeleteAPrivateEndpointConnection.json | 20 + ...ccesses_GetAPrivateEndpointConnection.json | 31 + ...ivateAccesses_GetPrivateLinkResources.json | 33 + ...ses_Get_Get_A_Private_Access_Resource.json | 28 + ...Access_Resource_With_Private_Endpoint.json | 48 + .../PrivateAccesses_List.json | 61 + .../PrivateAccesses_ListAll.json | 60 + ...cesses_ListPrivateEndpointConnections.json | 34 + .../PrivateAccesses_Update.json | 44 + .../2024-11-01-preview/TargetTypes_Get.json | 29 + .../2024-11-01-preview/TargetTypes_List.json | 34 + .../Targets_CreateOrUpdate.json | 44 + .../2024-11-01-preview/Targets_Delete.json | 17 + .../2024-11-01-preview/Targets_Get.json | 37 + .../2024-11-01-preview/Targets_List.json | 42 + .../Chaos.Management/experiment.models.tsp | 388 ++ .../chaos/Chaos.Management/experiment.tsp | 98 + .../experimentExecution.models.tsp | 304 ++ .../Chaos.Management/experimentExecution.tsp | 51 + specification/chaos/Chaos.Management/main.tsp | 49 + .../Chaos.Management/operationStatus.tsp | 39 + .../Chaos.Management/privateAccess.models.tsp | 79 + .../chaos/Chaos.Management/privateAccess.tsp | 92 + .../privateEndpointConnection.models.tsp | 162 + .../privateEndpointConnection.tsp | 46 + .../chaos/Chaos.Management/target.models.tsp | 41 + .../chaos/Chaos.Management/target.tsp | 58 + .../Chaos.Management/targetType.models.tsp | 64 + .../chaos/Chaos.Management/targetType.tsp | 42 + .../chaos/Chaos.Management/tspconfig.yaml | 42 + .../examples/Capabilities_CreateOrUpdate.json | 55 + .../examples/Capabilities_Delete.json | 18 + .../examples/Capabilities_Get.json | 34 + .../examples/Capabilities_List.json | 38 + .../examples/CapabilityTypes_Get.json | 32 + .../examples/CapabilityTypes_List.json | 36 + .../examples/Experiments_Cancel.json | 18 + .../examples/Experiments_CreateOrUpdate.json | 208 + .../examples/Experiments_Delete.json | 19 + .../Experiments_ExecutionDetails.json | 66 + .../examples/Experiments_Get.json | 76 + .../examples/Experiments_GetExecution.json | 26 + .../examples/Experiments_List.json | 81 + .../examples/Experiments_ListAll.json | 80 + .../Experiments_ListAllExecutions.json | 40 + .../examples/Experiments_Start.json | 18 + .../examples/Experiments_Update.json | 104 + .../examples/OperationStatuses_Get.json | 20 + .../examples/Operations_List.json | 27 + ...e_Or_Update_A_Private_Access_Resource.json | 54 + ...s_Resource_With_Public_Network_Access.json | 58 + .../examples/PrivateAccesses_Delete.json | 19 + ...sses_DeleteAPrivateEndpointConnection.json | 20 + ...ccesses_GetAPrivateEndpointConnection.json | 31 + ...ivateAccesses_GetPrivateLinkResources.json | 33 + ...ses_Get_Get_A_Private_Access_Resource.json | 28 + ...Access_Resource_With_Private_Endpoint.json | 48 + .../examples/PrivateAccesses_List.json | 61 + .../examples/PrivateAccesses_ListAll.json | 60 + ...cesses_ListPrivateEndpointConnections.json | 34 + .../examples/PrivateAccesses_Update.json | 44 + .../examples/TargetTypes_Get.json | 29 + .../examples/TargetTypes_List.json | 34 + .../examples/Targets_CreateOrUpdate.json | 44 + .../examples/Targets_Delete.json | 17 + .../examples/Targets_Get.json | 37 + .../examples/Targets_List.json | 42 + .../preview/2024-11-01-preview/openapi.json | 3728 +++++++++++++++++ .../chaos/resource-manager/readme.md | 61 +- 97 files changed, 9153 insertions(+), 14 deletions(-) create mode 100644 specification/chaos/Chaos.Management/capability.models.tsp create mode 100644 specification/chaos/Chaos.Management/capability.tsp create mode 100644 specification/chaos/Chaos.Management/capabilityType.models.tsp create mode 100644 specification/chaos/Chaos.Management/capabilityType.tsp create mode 100644 specification/chaos/Chaos.Management/client.tsp create mode 100644 specification/chaos/Chaos.Management/common.models.tsp create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_CreateOrUpdate.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_Delete.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_Get.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_List.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/CapabilityTypes_Get.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/CapabilityTypes_List.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Cancel.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_CreateOrUpdate.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Delete.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ExecutionDetails.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Get.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_GetExecution.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_List.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ListAll.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ListAllExecutions.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Start.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Update.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/OperationStatuses_Get.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Operations_List.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource_With_Public_Network_Access.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Delete.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_DeleteAPrivateEndpointConnection.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_GetAPrivateEndpointConnection.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_GetPrivateLinkResources.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Get_Get_A_Private_Access_Resource.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Get_Get_A_Private_Access_Resource_With_Private_Endpoint.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_List.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_ListAll.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_ListPrivateEndpointConnections.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Update.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/TargetTypes_Get.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/TargetTypes_List.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_CreateOrUpdate.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_Delete.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_Get.json create mode 100644 specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_List.json create mode 100644 specification/chaos/Chaos.Management/experiment.models.tsp create mode 100644 specification/chaos/Chaos.Management/experiment.tsp create mode 100644 specification/chaos/Chaos.Management/experimentExecution.models.tsp create mode 100644 specification/chaos/Chaos.Management/experimentExecution.tsp create mode 100644 specification/chaos/Chaos.Management/main.tsp create mode 100644 specification/chaos/Chaos.Management/operationStatus.tsp create mode 100644 specification/chaos/Chaos.Management/privateAccess.models.tsp create mode 100644 specification/chaos/Chaos.Management/privateAccess.tsp create mode 100644 specification/chaos/Chaos.Management/privateEndpointConnection.models.tsp create mode 100644 specification/chaos/Chaos.Management/privateEndpointConnection.tsp create mode 100644 specification/chaos/Chaos.Management/target.models.tsp create mode 100644 specification/chaos/Chaos.Management/target.tsp create mode 100644 specification/chaos/Chaos.Management/targetType.models.tsp create mode 100644 specification/chaos/Chaos.Management/targetType.tsp create mode 100644 specification/chaos/Chaos.Management/tspconfig.yaml create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_CreateOrUpdate.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_Delete.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_Get.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_List.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/CapabilityTypes_Get.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/CapabilityTypes_List.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Cancel.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_CreateOrUpdate.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Delete.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ExecutionDetails.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Get.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_GetExecution.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_List.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ListAll.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ListAllExecutions.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Start.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Update.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/OperationStatuses_Get.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Operations_List.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource_With_Public_Network_Access.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Delete.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_DeleteAPrivateEndpointConnection.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_GetAPrivateEndpointConnection.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_GetPrivateLinkResources.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Get_Get_A_Private_Access_Resource.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Get_Get_A_Private_Access_Resource_With_Private_Endpoint.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_List.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_ListAll.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_ListPrivateEndpointConnections.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Update.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/TargetTypes_Get.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/TargetTypes_List.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_CreateOrUpdate.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_Delete.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_Get.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_List.json create mode 100644 specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/openapi.json diff --git a/specification/chaos/Chaos.Management/capability.models.tsp b/specification/chaos/Chaos.Management/capability.models.tsp new file mode 100644 index 000000000000..7357cb6642b9 --- /dev/null +++ b/specification/chaos/Chaos.Management/capability.models.tsp @@ -0,0 +1,77 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./common.models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +/** + * Model that represents a Capability resource. + */ +@parentResource(Target) +model Capability is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = Capability, + KeyName = "capabilityName", + SegmentName = "capabilities", + NamePattern = "^[a-zA-Z0-9\\-\\.]+-\\d\\.\\d$" + >; +} + +alias CapabilityParentResourceParameters = BaseParameters & + ParentResourceParameters; + +/** + * Model that represents the Capability properties model. + */ +model CapabilityProperties { + /** + * String of the Publisher that this Capability extends. + */ + @visibility("read") + publisher?: string; + + /** + * String of the Target Type that this Capability extends. + */ + @visibility("read") + targetType?: string; + + /** + * Localized string of the description. + */ + @visibility("read") + description?: string; + + /** + * URL to retrieve JSON schema of the Capability parameters. + */ + @visibility("read") + @maxLength(2048) + parametersSchema?: string; + + /** + * String of the URN for this Capability Type. + */ + @visibility("read") + @maxLength(2048) + urn?: string; + + /** + * Resource provisioning state. Not currently in use because resource is created synchronously. + */ + @visibility("read") + provisioningState?: ProvisioningState; +} + +/** + * Model that represents a list of Capability resources and a link for pagination. + */ +model CapabilityListResult is Azure.Core.Page; diff --git a/specification/chaos/Chaos.Management/capability.tsp b/specification/chaos/Chaos.Management/capability.tsp new file mode 100644 index 000000000000..0de251d4d6b4 --- /dev/null +++ b/specification/chaos/Chaos.Management/capability.tsp @@ -0,0 +1,61 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./capability.models.tsp"; +import "./target.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +@armResourceOperations +interface Capabilities { + /** + * Get a Capability resource that extends a Target resource. + */ + get is ArmResourceRead; + + /** + * Create or update a Capability resource that extends a Target resource. + */ + createOrUpdate is ArmResourceCreateOrReplaceSync< + Capability, + CapabilityParentResourceParameters + >; + + /** + * Delete a Capability that extends a Target resource. + */ + delete is ArmResourceDeleteSync< + Capability, + CapabilityParentResourceParameters + >; + + /** + * Get a list of Capability resources that extend a Target resource. + */ + list is ArmResourceListByParent< + Capability, + { + ...CapabilityParentResourceParameters; + + /** + * String that sets the continuation token. + */ + @query("continuationToken") + continuationToken?: string; + }, + Response = CapabilityListResult + >; +} + +@@doc(Capability.name, "String that represents a Capability resource name."); +@@doc(Capability.properties, "The properties of a capability resource."); +@@doc(Capabilities.createOrUpdate::parameters.resource, + "Capability resource to be created or updated." +); diff --git a/specification/chaos/Chaos.Management/capabilityType.models.tsp b/specification/chaos/Chaos.Management/capabilityType.models.tsp new file mode 100644 index 000000000000..2557a04c2dc9 --- /dev/null +++ b/specification/chaos/Chaos.Management/capabilityType.models.tsp @@ -0,0 +1,110 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +/** + * Model that represents a Capability Type resource. + */ +@parentResource(TargetType) +model CapabilityType + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = CapabilityType, + KeyName = "capabilityTypeName", + SegmentName = "capabilityTypes", + NamePattern = "^[a-zA-Z0-9\\-\\.]+-\\d\\.\\d$" + >; +} + +/** + * Model that represents the Capability Type properties model. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "Read-only metadata resource." +model CapabilityTypeProperties { + /** + * String of the Publisher that this Capability Type extends. + */ + @visibility("read") + publisher?: string; + + /** + * String of the Target Type that this Capability Type extends. + */ + @visibility("read") + targetType?: string; + + /** + * Localized string of the display name. + */ + @visibility("read") + displayName?: string; + + /** + * Localized string of the description. + */ + @visibility("read") + description?: string; + + /** + * URL to retrieve JSON schema of the Capability Type parameters. + */ + @visibility("read") + @maxLength(2048) + parametersSchema?: string; + + /** + * String of the URN for this Capability Type. + */ + @visibility("read") + @maxLength(2048) + urn?: string; + + /** + * String of the kind of this Capability Type. + */ + @visibility("read") + kind?: string; + + /** + * Control plane actions necessary to execute capability type. + */ + @visibility("read") + azureRbacActions?: string[]; + + /** + * Data plane actions necessary to execute capability type. + */ + @visibility("read") + azureRbacDataActions?: string[]; + + /** + * Runtime properties of this Capability Type. + */ + @visibility("read") + runtimeProperties?: CapabilityTypePropertiesRuntimeProperties; +} + +/** + * Runtime properties of this Capability Type. + */ +model CapabilityTypePropertiesRuntimeProperties { + /** + * String of the kind of the resource's action type (continuous or discrete). + */ + @visibility("read") + kind?: string; +} + +/** + * Model that represents a list of Capability Type resources and a link for pagination. + */ +model CapabilityTypeListResult is Azure.Core.Page; diff --git a/specification/chaos/Chaos.Management/capabilityType.tsp b/specification/chaos/Chaos.Management/capabilityType.tsp new file mode 100644 index 000000000000..1db39b94ba78 --- /dev/null +++ b/specification/chaos/Chaos.Management/capabilityType.tsp @@ -0,0 +1,42 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./capabilityType.models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +@armResourceOperations +interface CapabilityTypes { + /** + * Get a Capability Type resource for given Target Type and location. + */ + get is ArmResourceRead; + + /** + * Get a list of Capability Type resources for given Target Type and location. + */ + list is ArmResourceListByParent< + CapabilityType, + Parameters = { + /** + * String that sets the continuation token. + */ + @query("continuationToken") + continuationToken?: string; + }, + Response = CapabilityTypeListResult + >; +} + +@@doc(CapabilityType.name, + "String that represents a Capability Type resource name." +); +@@doc(CapabilityType.properties, + "The properties of the capability type resource." +); diff --git a/specification/chaos/Chaos.Management/client.tsp b/specification/chaos/Chaos.Management/client.tsp new file mode 100644 index 000000000000..43540b6ccc95 --- /dev/null +++ b/specification/chaos/Chaos.Management/client.tsp @@ -0,0 +1,55 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.Chaos; + +// csharp +@@clientName(ExperimentExecution, "ChaosExperimentExecution", "csharp"); +@@clientName(Experiment, "ChaosExperiment", "csharp"); +@@clientName(ExperimentExecution, "ChaosExperimentExecution", "csharp"); +@@clientName(Target, "ChaosTarget", "csharp"); +@@clientName(TargetType, "ChaosTargetMetadata", "csharp"); +@@clientName(Capability, "ChaosCapability", "csharp"); +@@clientName(CapabilityType, "ChaosCapabilityMetadata", "csharp"); +@@clientName(TargetReference, "ChaosTargetReference", "csharp"); +@@clientName(TargetReferenceType, "ChaosTargetReferenceType", "csharp"); +@@clientName(ProvisioningState, "ChaosProvisioningState", "csharp"); +@@clientName(KeyValuePair, "ChaosKeyValuePair", "csharp"); +@@clientName(StepStatus, "ChaosExperimentRunStepStatus", "csharp"); +@@clientName(BranchStatus, "ChaosExperimentRunBranchStatus", "csharp"); +@@clientName(ActionStatus, "ChaosExperimentRunActionStatus", "csharp"); +@@clientName(ContinuousAction, "ChaosContinuousAction", "csharp"); +@@clientName(DiscreteAction, "ChaosDiscreteAction", "csharp"); +@@clientName(DelayAction, "ChaosDelayAction", "csharp"); +@@clientName(CapabilityTypePropertiesRuntimeProperties, + "ChaosCapabilityMetadataRuntimeProperties", + "csharp" +); +@@clientName(TargetReference.type, "ReferenceType", "csharp"); +@@clientName(ExperimentExecutions.getExecutionDetails, + "ExecutionDetails", + "csharp" +); + +// typescript +@@clientName(Microsoft.Chaos, "ChaosManagementClient", "javascript"); + +// python +@@clientName(Microsoft.Chaos, "ChaosManagementClient", "python"); + +// java +@@clientName(Microsoft.Chaos, "ChaosManagementClient", "java"); + +#suppress "deprecated" "property flatten for SDK backward compatibility" +@@flattenProperty(Experiment.properties); +#suppress "deprecated" "property flatten for SDK backward compatibility" +@@flattenProperty(ExperimentExecution.properties); +#suppress "deprecated" "property flatten for SDK backward compatibility" +@@flattenProperty(TargetType.properties); +#suppress "deprecated" "property flatten for SDK backward compatibility" +@@flattenProperty(Capability.properties); +#suppress "deprecated" "property flatten for SDK backward compatibility" +@@flattenProperty(CapabilityType.properties); +#suppress "deprecated" "property flatten for SDK backward compatibility" +@@flattenProperty(ExperimentExecutionDetails.properties); diff --git a/specification/chaos/Chaos.Management/common.models.tsp b/specification/chaos/Chaos.Management/common.models.tsp new file mode 100644 index 000000000000..169bee71fe22 --- /dev/null +++ b/specification/chaos/Chaos.Management/common.models.tsp @@ -0,0 +1,100 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +interface Operations extends Azure.ResourceManager.Operations {} +#suppress "@azure-tools/typespec-azure-core/no-openapi" "Required to avoid breaking SDK change" +@@operationId(Operations.list, "Operations_ListAll"); + +alias ParentResourceParameters = { + /** + * The parent resource provider namespace. + */ + @path + @segment("providers") + @maxLength(63) + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$") + parentProviderNamespace: string; + + /** + * The parent resource type. + */ + @path + @maxLength(63) + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$") + parentResourceType: string; + + /** + * The parent resource name. + */ + @path + @maxLength(63) + @pattern("^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$") + parentResourceName: string; +}; + +/** + * Current provisioning state for a given Azure Chaos resource. + */ +@Azure.Core.lroStatus +union ProvisioningState { + string, + ResourceProvisioningState, + + /** + * Initial creation in progress. + */ + Creating: "Creating", + + /** + * Update in progress. + */ + Updating: "Updating", + + /** + * Deletion in progress. + */ + Deleting: "Deleting", +} + +/** + * The status of operation. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +model OperationStatus extends ErrorResponse { + /** + * The operation Id. + */ + id?: string; + + /** + * The operation name. + */ + name?: string; + + /** + * The start time of the operation. + */ + @visibility("read") + startTime?: utcDateTime; + + /** + * The end time of the operation. + */ + @visibility("read") + endTime?: utcDateTime; + + /** + * The status of the operation. + */ + status?: string; +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_CreateOrUpdate.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_CreateOrUpdate.json new file mode 100644 index 000000000000..7c795f1ef542 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_CreateOrUpdate.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resource": { + "properties": {} + }, + "capabilityName": "Shutdown-1.0", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/targets/capabilities", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + }, + "systemData": { + "createdAt": "2020-05-14T05:08:38.4662189Z", + "lastModifiedAt": "2020-05-14T05:08:38.4662189Z" + } + } + }, + "201": { + "body": { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/targets/capabilities", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + }, + "systemData": { + "createdAt": "2020-05-14T05:08:38.4662189Z", + "lastModifiedAt": "2020-05-14T05:08:38.4662189Z" + } + } + } + }, + "operationId": "Capabilities_CreateOrUpdate", + "title": "Create/update a Capability that extends a virtual machine Target resource." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_Delete.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_Delete.json new file mode 100644 index 000000000000..3a2a71363a4b --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_Delete.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "capabilityName": "Shutdown-1.0", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "Capabilities_Delete", + "title": "Delete a Capability that extends a virtual machine Target resource." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_Get.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_Get.json new file mode 100644 index 000000000000..c24d50303058 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_Get.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "capabilityName": "Shutdown-1.0", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/targets/capabilities", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + }, + "systemData": { + "createdAt": "2020-05-14T05:08:38.4662189Z", + "lastModifiedAt": "2020-05-14T05:08:38.4662189Z" + } + } + } + }, + "operationId": "Capabilities_Get", + "title": "Get a Capability that extends a virtual machine Target resource." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_List.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_List.json new file mode 100644 index 000000000000..e64aa32c3650 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Capabilities_List.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/targets/capabilities", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + }, + "systemData": { + "createdAt": "2020-05-14T05:08:38.4662189Z", + "lastModifiedAt": "2020-05-14T05:08:38.4662189Z" + } + } + ] + } + } + }, + "operationId": "Capabilities_List", + "title": "List all Capabilities that extend a virtual machine Target resource." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/CapabilityTypes_Get.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/CapabilityTypes_Get.json new file mode 100644 index 000000000000..07015ac28ed8 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/CapabilityTypes_Get.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "capabilityTypeName": "Shutdown-1.0", + "location": "westus2", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetTypeName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/locations/targetTypes/capabilityTypes", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "displayName": "Shutdown VM", + "kind": "fault", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "runtimeProperties": { + "kind": "continuous" + }, + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + } + } + } + }, + "operationId": "CapabilityTypes_Get", + "title": "Get a Capability Type for a virtual machine Target resource on westus2 location." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/CapabilityTypes_List.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/CapabilityTypes_List.json new file mode 100644 index 000000000000..0b7c67fd77c9 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/CapabilityTypes_List.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "location": "westus2", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetTypeName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes/Microsoft-VirtualMachine/capabilityTypes?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/locations/targetTypes/capabilityTypes", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "displayName": "Shutdown VM", + "kind": "fault", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "runtimeProperties": { + "kind": "continuous" + }, + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + } + } + ] + } + } + }, + "operationId": "CapabilityTypes_List", + "title": "List all Capability Types for a virtual machine Target resource on westus2 location." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Cancel.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Cancel.json new file mode 100644 index 000000000000..9f1756e0fbcf --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Cancel.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "Experiments_Cancel", + "title": "Cancel a running Experiment." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_CreateOrUpdate.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_CreateOrUpdate.json new file mode 100644 index 000000000000..c5a02b85ba61 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_CreateOrUpdate.json @@ -0,0 +1,208 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resource": { + "identity": { + "type": "SystemAssigned" + }, + "tags": { + "key7131": "ryohwcoiccwsnewjigfmijz", + "key2138": "fjaeecgnvqd" + }, + "location": "eastus2euap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:microsoft:virtualMachine:shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + } + }, + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "SystemAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6" + }, + "tags": { + "key7131": "ryohwcoiccwsnewjigfmijz", + "key2138": "fjaeecgnvqd" + }, + "location": "eastus2euap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "provisioningState": "Updating", + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:microsoft:virtualMachine:shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/experiments/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "201": { + "body": { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "SystemAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6" + }, + "tags": { + "key7131": "ryohwcoiccwsnewjigfmijz", + "key2138": "fjaeecgnvqd" + }, + "location": "eastus2euap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "provisioningState": "Creating", + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:microsoft:virtualMachine:shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/experiments/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "Experiments_CreateOrUpdate", + "title": "Create/update a Experiment in a resource group." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Delete.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Delete.json new file mode 100644 index 000000000000..4924ef8efa3c --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Delete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "204": {} + }, + "operationId": "Experiments_Delete", + "title": "Delete a Experiment in a resource group." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ExecutionDetails.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ExecutionDetails.json new file mode 100644 index 000000000000..a103b628f5bc --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ExecutionDetails.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "executionId": "f24500ad-744e-4a26-864b-b76199eac333", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "f24500ad-744e-4a26-864b-b76199eac333", + "type": "Microsoft.Chaos/experiments/executions/getExecutionDetails", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment/executions/f24500ad-744e-4a26-864b-b76199eac333/getExecutionDetails", + "properties": { + "failureReason": "Dependency failure", + "lastActionAt": "2020-12-14T21:52:52.2552574Z", + "runInformation": { + "steps": [ + { + "branches": [ + { + "actions": [ + { + "actionId": "59499d33-6751-4b6e-a1f6-58f4d56a040a", + "actionName": "urn:provider:agent-v2:Microsoft.Azure.Chaos.Fault.CPUPressureAllProcessors", + "endTime": "2020-12-14T13:56:13.6270153-08:00", + "startTime": "2020-12-14T13:56:13.6270153-08:00", + "status": "failed", + "targets": [ + { + "status": "succeeded", + "target": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/VM1", + "targetCompletedTime": "2021-04-02T17:30:55+00:00", + "targetFailedTime": "2021-04-02T16:30:55+00:00" + }, + { + "status": "failed", + "target": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/VM1", + "targetCompletedTime": "2021-04-02T17:30:55+00:00", + "targetFailedTime": "2021-04-02T16:30:55+00:00" + } + ] + } + ], + "branchId": "FirstBranch", + "branchName": "FirstBranch", + "status": "failed" + } + ], + "status": "failed", + "stepId": "FirstStep", + "stepName": "FirstStep" + } + ] + }, + "startedAt": "2020-12-14T21:52:52.2552574Z", + "status": "failed", + "stoppedAt": "2020-12-14T21:56:18.9281956Z" + } + } + } + }, + "operationId": "Experiments_ExecutionDetails", + "title": "Get experiment execution details." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Get.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Get.json new file mode 100644 index 000000000000..7caafe637f85 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Get.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "SystemAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6" + }, + "location": "centraluseuap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:provider:providername:Shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + } + }, + "headers": {} + } + }, + "operationId": "Experiments_Get", + "title": "Get a Experiment in a resource group." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_GetExecution.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_GetExecution.json new file mode 100644 index 000000000000..62f3798fdb0c --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_GetExecution.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "executionId": "f24500ad-744e-4a26-864b-b76199eac333", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "f24500ad-744e-4a26-864b-b76199eac333", + "type": "Microsoft.Chaos/experiments/executions", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment/executions/f24500ad-744e-4a26-864b-b76199eac333", + "properties": { + "startedAt": "2020-12-14T21:52:52.2552574Z", + "status": "failed", + "stoppedAt": "2020-12-14T21:56:18.9281956Z" + } + }, + "headers": {} + } + }, + "operationId": "Experiments_GetExecution", + "title": "Get the execution of a Experiment." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_List.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_List.json new file mode 100644 index 000000000000..88029a8a641b --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_List.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "SystemAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6" + }, + "location": "centraluseuap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:provider:providername:Shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "Experiments_List", + "title": "List all Experiments in a resource group." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ListAll.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ListAll.json new file mode 100644 index 000000000000..143a2f3a5345 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ListAll.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/experiments?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "SystemAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6" + }, + "location": "centraluseuap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:provider:providername:Shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "Experiments_ListAll", + "title": "List all Experiments in a subscription." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ListAllExecutions.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ListAllExecutions.json new file mode 100644 index 000000000000..7b48b33f1608 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_ListAllExecutions.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment/executionDetails?continuationToken=&api-version=2025-01-01", + "value": [ + { + "name": "f24500ad-744e-4a26-864b-b76199eac333", + "type": "Microsoft.Chaos/experiments/executions", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment/executions/f24500ad-744e-4a26-864b-b76199eac333", + "properties": { + "startedAt": "2020-12-14T21:52:52.2552574Z", + "status": "failed", + "stoppedAt": "2020-12-14T21:56:18.9281956Z" + } + }, + { + "name": "14d98367-52ef-4596-be4f-53fc81bbfc33", + "type": "Microsoft.Chaos/experiments/executions", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment/executions/14d98367-52ef-4596-be4f-53fc81bbfc33", + "properties": { + "startedAt": "2020-12-14T21:52:52.2552574Z", + "status": "success", + "stoppedAt": "2020-12-14T21:56:18.9281956Z" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "Experiments_ListAllExecutions", + "title": "List all executions of an Experiment." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Start.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Start.json new file mode 100644 index 000000000000..9a68b03582ed --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Start.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "Experiments_Start", + "title": "Start a Experiment." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Update.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Update.json new file mode 100644 index 000000000000..7f7464f8f76f --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Experiments_Update.json @@ -0,0 +1,104 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "properties": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentity/exampleUMI": {} + } + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "UserAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6", + "userAssignedIdentities": { + "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentity/exampleUMI": {} + } + }, + "location": "centraluseuap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:provider:providername:Shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatuses/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "Experiments_Update", + "title": "Update an Experiment in a resource group." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/OperationStatuses_Get.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/OperationStatuses_Get.json new file mode 100644 index 000000000000..79a6af7eabd9 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/OperationStatuses_Get.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "subscriptionId": "e25c0d12-0335-4fec-8ef8-3b4f9a10649e", + "location": "westus2", + "operationId": "4bdadd97-207c-4de8-9bba-08339ae099c7" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/e25c0d12-0335-4fec-8ef8-3b4f9a10649e/providers/Microsoft.Chaos/locations/westus2/operationStatuses/4bdadd97-207c-4de8-9bba-08339ae099c7", + "name": "4bdadd97-207c-4de8-9bba-08339ae099c7", + "startTime": "2024-11-14T21:52:52.2552574Z", + "status": "Creating" + } + } + }, + "operationId": "OperationStatuses_Get", + "title": "Gets Chaos Studio async operation status." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Operations_List.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Operations_List.json new file mode 100644 index 000000000000..fd9d6a21cec4 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Operations_List.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/providers/Microsoft.Chaos/operations?continuationToken=myContinuationToken&api-version=2024-11-01-preview", + "value": [ + { + "name": "Microsoft.Chaos/experiments/read", + "display": { + "provider": "Microsoft Chaos", + "resource": "Chaos Experiment", + "operation": "Gets all Chaos Experiments.", + "description": "Gets all Chaos Experiments in a resource group." + }, + "isDataAction": false, + "origin": "user,system" + } + ] + } + } + }, + "operationId": "Operations_ListAll", + "title": "Lists all Chaos Studio operations." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource.json new file mode 100644 index 000000000000..aeefb41c67f6 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resource": { + "location": "centraluseuap", + "properties": {} + }, + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "provisioningState": "Updating" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "header": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "201": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "provisioningState": "Creating" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "header": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "PrivateAccesses_CreateOrUpdate", + "title": "Create or Update a private access resource" +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource_With_Public_Network_Access.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource_With_Public_Network_Access.json new file mode 100644 index 000000000000..a2160ef6d481 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource_With_Public_Network_Access.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resource": { + "location": "centraluseuap", + "properties": { + "publicNetworkAccess": "Enabled" + } + }, + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "provisioningState": "Updating", + "publicNetworkAccess": "Enabled" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "header": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "201": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "provisioningState": "Creating", + "publicNetworkAccess": "Enabled" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "header": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "PrivateAccesses_CreateOrUpdate", + "title": "Create or Update a private access resource with publicNetworkAccess" +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Delete.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Delete.json new file mode 100644 index 000000000000..863b73090e9a --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Delete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "204": {} + }, + "operationId": "PrivateAccesses_Delete", + "title": "Delete a private access resource" +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_DeleteAPrivateEndpointConnection.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_DeleteAPrivateEndpointConnection.json new file mode 100644 index 000000000000..918d0e468865 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_DeleteAPrivateEndpointConnection.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "privateEndpointConnectionName": "myPrivateEndpointConnection", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "204": {} + }, + "operationId": "PrivateAccesses_DeleteAPrivateEndpointConnection", + "title": "Delete a private endpoint connection under a private access resource." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_GetAPrivateEndpointConnection.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_GetAPrivateEndpointConnection.json new file mode 100644 index 000000000000..87323c558482 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_GetAPrivateEndpointConnection.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "privateEndpointConnectionName": "myPrivateEndpointConnection", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateEndpointConnection", + "type": "Microsoft.Chaos/privateAccesses/PrivateEndpointConnections", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateEndpoinConnections/myPrivateEndpointConnection", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "PrivateAccesses_GetAPrivateEndpointConnection", + "title": "Get information about a private endpoint connection under a private access resource." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_GetPrivateLinkResources.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_GetPrivateLinkResources.json new file mode 100644 index 000000000000..6061df9c8fd2 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_GetPrivateLinkResources.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "agents", + "type": "Microsoft.Chaos/privateAccesses/privateLinkResources", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateLinkResources/agents", + "location": "centraluseuap", + "properties": { + "groupId": "agents", + "requiredMembers": [ + "privateAccess_1" + ], + "requiredZoneNames": [ + "privatelink.agents.core.windows.net" + ] + } + } + ] + } + } + }, + "operationId": "PrivateAccesses_GetPrivateLinkResources", + "title": "List all possible private link resources under private access resource." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Get_Get_A_Private_Access_Resource.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Get_Get_A_Private_Access_Resource.json new file mode 100644 index 000000000000..ea241460b416 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Get_Get_A_Private_Access_Resource.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccess": { + "location": "centraluseuap" + }, + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": {}, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + } + } + }, + "operationId": "PrivateAccesses_Get", + "title": "Get a private access resource" +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Get_Get_A_Private_Access_Resource_With_Private_Endpoint.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Get_Get_A_Private_Access_Resource_With_Private_Endpoint.json new file mode 100644 index 000000000000..1ed76e7dc7df --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Get_Get_A_Private_Access_Resource_With_Private_Endpoint.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccess": { + "location": "centraluseuap" + }, + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myprivateAccess", + "location": "centraluseuap", + "properties": { + "privateEndpointConnections": [ + { + "name": "myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "type": "Microsoft.Chaos/privateAccesses/PrivateEndpointConnections", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateEndpoinConnections/myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "publicNetworkAccess": "Enabled" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + } + } + }, + "operationId": "PrivateAccesses_Get", + "title": "Get a private access resource with private endpoint" +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_List.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_List.json new file mode 100644 index 000000000000..efd80c1e9db6 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_List.json @@ -0,0 +1,61 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "myPrivateAccess2", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess2", + "location": "centraluseuap", + "properties": {}, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "privateEndpointConnections": [ + { + "name": "myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "type": "Microsoft.Chaos/privateAccesses/PrivateEndpointConnections", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateEndpoinConnections/myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + } + } + } + ], + "publicNetworkAccess": "Enabled" + }, + "systemData": { + "createdAt": "2021-08-01T00:00:00.0Z", + "lastModifiedAt": "2021-08-01T00:00:00.0Z" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PrivateAccesses_List", + "title": "List all private access in a resource group." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_ListAll.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_ListAll.json new file mode 100644 index 000000000000..30ba4d1b2020 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_ListAll.json @@ -0,0 +1,60 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/privateAccesses?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "myPrivateAccess2", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess2", + "location": "centraluseuap", + "properties": {}, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup2/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "privateEndpointConnections": [ + { + "name": "myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "type": "Microsoft.Chaos/privateAccesses/PrivateEndpointConnections", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup2/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateEndpoinConnections/myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup2/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + } + } + } + ], + "publicNetworkAccess": "Disabled" + }, + "systemData": { + "createdAt": "2021-08-01T00:00:00.0Z", + "lastModifiedAt": "2021-08-01T00:00:00.0Z" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PrivateAccesses_ListAll", + "title": "List all private accesses in a subscription." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_ListPrivateEndpointConnections.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_ListPrivateEndpointConnections.json new file mode 100644 index 000000000000..67b7aa77c9a0 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_ListPrivateEndpointConnections.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myPrivateEndpointConnection", + "type": "Microsoft.Chaos/privateAccesses/PrivateEndpointConnections", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateEndpoinConnections/myPrivateEndpointConnection", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + }, + "operationId": "PrivateAccesses_ListPrivateEndpointConnections", + "title": "List all private endpoint connections under a private access resource." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Update.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Update.json new file mode 100644 index 000000000000..b36d4a84e3a7 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/PrivateAccesses_Update.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "properties": { + "tags": { + "tag1": "value1", + "tag2": "value2" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + }, + "tags": { + "tag1": "value1", + "tag2": "value2" + } + }, + "headers": {} + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "PrivateAccesses_Update", + "title": "Update a private access resource's tags" +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/TargetTypes_Get.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/TargetTypes_Get.json new file mode 100644 index 000000000000..af955b51e062 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/TargetTypes_Get.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "location": "westus2", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetTypeName": "Microsoft-Agent" + }, + "responses": { + "200": { + "body": { + "name": "Microsoft-Agent", + "type": "Microsoft.Chaos/locations/targetTypes", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes/Microsoft-Agent", + "properties": { + "description": "A target represents Chaos Agent.", + "displayName": "Chaos Agent", + "propertiesSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine.json", + "resourceTypes": [ + "Microsoft.Compute/virtualMachines", + "Microsoft.Compute/virtualMachineScaleSets" + ] + } + }, + "headers": {} + } + }, + "operationId": "TargetTypes_Get", + "title": "Get a Target Type for westus2 location" +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/TargetTypes_List.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/TargetTypes_List.json new file mode 100644 index 000000000000..492aa68949b0 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/TargetTypes_List.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "location": "westus2", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "Microsoft-Agent", + "type": "Microsoft.Chaos/locations/targetTypes", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes/Microsoft-Agent", + "properties": { + "description": "A target represents Chaos Agent.", + "displayName": "Chaos Agent", + "propertiesSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine.json", + "resourceTypes": [ + "Microsoft.Compute/virtualMachines", + "Microsoft.Compute/virtualMachineScaleSets" + ] + } + } + ] + }, + "headers": {} + } + }, + "operationId": "TargetTypes_List", + "title": "List all Target Types for westus2 location." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_CreateOrUpdate.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_CreateOrUpdate.json new file mode 100644 index 000000000000..08ebc03da8ef --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_CreateOrUpdate.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "resource": { + "properties": {} + }, + "targetName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "name": "Microsoft-VirtualMachine", + "type": "Microsoft.Chaos/targets", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine", + "properties": {}, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "Microsoft-VirtualMachine", + "type": "Microsoft.Chaos/targets", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine", + "properties": {}, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "headers": {} + } + }, + "operationId": "Targets_CreateOrUpdate", + "title": "Create/update a Target that extends a virtual machine resource." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_Delete.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_Delete.json new file mode 100644 index 000000000000..a0b0b0e241c7 --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_Delete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-Agent" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "Targets_Delete", + "title": "Delete a Target that extends a virtual machine resource." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_Get.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_Get.json new file mode 100644 index 000000000000..dd8a8c27670e --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_Get.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-Agent" + }, + "responses": { + "200": { + "body": { + "name": "Microsoft-Agent", + "type": "Microsoft.Chaos/targets", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-Agent", + "location": "centraluseuap", + "properties": { + "agentProfileId": "ac4e8251-fdc9-4277-8e87-dc57fe5794cf", + "identities": [ + { + "type": "CertificateSubjectIssuer", + "subject": "CN=example.subject" + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "headers": {} + } + }, + "operationId": "Targets_Get", + "title": "Get a Target that extends a virtual machine resource." +} diff --git a/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_List.json b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_List.json new file mode 100644 index 000000000000..0f2686b7b39f --- /dev/null +++ b/specification/chaos/Chaos.Management/examples/2024-11-01-preview/Targets_List.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "Microsoft-Agent", + "type": "Microsoft.Chaos/targets", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-Agent", + "location": "centraluseuap", + "properties": { + "agentProfileId": "ac4e8251-fdc9-4277-8e87-dc57fe5794cf", + "identities": [ + { + "type": "CertificateSubjectIssuer", + "subject": "CN=example.subject" + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "Targets_List", + "title": "List all Targets that extend a virtual machine resource." +} diff --git a/specification/chaos/Chaos.Management/experiment.models.tsp b/specification/chaos/Chaos.Management/experiment.models.tsp new file mode 100644 index 000000000000..631c9d87bc2f --- /dev/null +++ b/specification/chaos/Chaos.Management/experiment.models.tsp @@ -0,0 +1,388 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./common.models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; +/** + * Model that represents a Experiment resource. + */ +#suppress "@azure-tools/typespec-azure-core/no-private-usage" "Required implementation to avoid breaking .NET SDK changes" +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "Required implementation to avoid breaking .NET SDK changes" +@Azure.ResourceManager.Private.armResourceInternal(ExperimentProperties) +@includeInapplicableMetadataInPayload(false) +model Experiment extends Azure.ResourceManager.Foundations.TrackedResource { + ...ResourceNameParameter< + Resource = Experiment, + KeyName = "experimentName", + SegmentName = "experiments", + NamePattern = "^[^<>%&:?#/\\\\]+$" + >; + ...Azure.ResourceManager.ManagedServiceIdentityProperty; + + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "Required implementation to avoid breaking .NET SDK changes" + @doc("The resource-specific properties for this resource.") + @Azure.ResourceManager.Private.conditionalClientFlatten + @Azure.ResourceManager.Private.armResourcePropertiesOptionality(false) + properties?: ExperimentProperties; +} + +/** + * Enum of the selector type. + */ +union SelectorType { + string, + + /** + * List selector type. + */ + List: "List", + + /** + * Query selector type. + */ + Query: "Query", +} + +/** + * Enum that discriminates between filter types. Currently only `Simple` type is supported. + */ +union FilterType { + string, + + /** + * Simple filter type. + */ + Simple: "Simple", +} + +/** + * Enum of the Target reference type. + */ +union TargetReferenceType { + string, + + /** + * Chaos target reference type. + */ + ChaosTarget: "ChaosTarget", +} + +/** + * Enum union of Chaos experiment action types. + */ +union ExperimentActionType { + string, + delay: "delay", + discrete: "discrete", + continuous: "continuous", +} + +/** + * Model that represents a list of Experiment resources and a link for pagination. + */ +model ExperimentListResult is Azure.Core.Page; + +/** + * Model that represents the Experiment properties model. + */ +model ExperimentProperties { + /** + * Most recent provisioning state for the given experiment resource. + */ + @visibility("read") + provisioningState?: ProvisioningState; + + /** + * List of steps. + */ + @OpenAPI.extension("x-ms-identifiers", ["name"]) + steps: ChaosExperimentStep[]; + + /** + * List of selectors. + */ + selectors: ChaosTargetSelector[]; + + /** + * Optional customer-managed Storage account where Experiment schema will be stored. + */ + customerDataStorage?: CustomerDataStorageProperties; +} + +/** + * Model that represents a step in the Experiment resource. + */ +model ChaosExperimentStep { + /** + * String of the step name. + */ + @minLength(1) + name: string; + + /** + * List of branches. + */ + @OpenAPI.extension("x-ms-identifiers", ["name"]) + branches: ChaosExperimentBranch[]; +} + +/** + * Model that represents a branch in the step. 9 total per experiment. + */ +model ChaosExperimentBranch { + /** + * String of the branch name. + */ + @minLength(1) + name: string; + + /** + * List of actions. + */ + @OpenAPI.extension("x-ms-identifiers", ["name"]) + actions: ChaosExperimentAction[]; +} + +/** + * Model that represents the base action model. 9 total per experiment. + */ +@discriminator("type") +model ChaosExperimentAction { + /** + * String that represents a Capability URN. + */ + @maxLength(2048) + name: string; + + /** + * Chaos experiment action discriminator type + */ + type: ExperimentActionType; +} + +/** + * Model that represents a selector in the Experiment resource. + */ +@discriminator("type") +model ChaosTargetSelector { + /** + * String of the selector ID. + */ + @minLength(1) + id: string; + + /** + * Chaos target selector discriminator type + */ + type: SelectorType; + + /** + * Model that represents available filter types that can be applied to a targets list. + */ + filter?: ChaosTargetFilter; +} + +/** + * Model that represents available filter types that can be applied to a targets list. + */ +@discriminator("type") +model ChaosTargetFilter { + /** + * Chaos target filter discriminator type + */ + type: FilterType; +} + +/** + * Model that represents the Customer Managed Storage for an Experiment. + */ +model CustomerDataStorageProperties { + /** + * ARM Resource ID of the Storage account to use for Customer Data storage. + */ + storageAccountResourceId?: Azure.Core.armResourceIdentifier<[ + { + type: "Microsoft.Storage/storageAccounts"; + } + ]>; + + /** + * Name of the Azure Blob Storage container to use or create. + */ + @maxLength(63) + @minLength(3) + @pattern("^[a-z0-9]([a-z0-9]|(-(?!-))){1,61}[a-z0-9]$") + blobContainerName?: string; +} + +/** + * Describes an experiment update. + */ +model ExperimentUpdate { + ...Azure.ResourceManager.Foundations.TagsUpdateModel; + ...Azure.ResourceManager.ManagedServiceIdentityProperty; +} + +/** + * Model that represents a continuous action. + */ +model ContinuousAction extends ChaosExperimentAction { + /** + * ISO8601 formatted string that represents a duration. + */ + duration: duration; + + /** + * List of key value pairs. + */ + @OpenAPI.extension("x-ms-identifiers", ["key"]) + parameters: KeyValuePair[]; + + /** + * String that represents a selector. + */ + @minLength(1) + selectorId: string; + + /** + * Enum that discriminates between action models. + */ + type: "continuous"; +} + +/** + * A map to describe the settings of an action. + */ +model KeyValuePair { + /** + * The name of the setting for the action. + */ + @minLength(1) + key: string; + + /** + * The value of the setting for the action. + */ + @minLength(1) + value: string; +} + +/** + * Model that represents a delay action. + */ +model DelayAction extends ChaosExperimentAction { + /** + * ISO8601 formatted string that represents a duration. + */ + duration: duration; + + /** + * Enum that discriminates between action models. + */ + type: "delay"; +} + +/** + * Model that represents a discrete action. + */ +model DiscreteAction extends ChaosExperimentAction { + /** + * List of key value pairs. + */ + @OpenAPI.extension("x-ms-identifiers", ["key"]) + parameters: KeyValuePair[]; + + /** + * String that represents a selector. + */ + @minLength(1) + selectorId: string; + + /** + * Enum that discriminates between action models. + */ + type: "discrete"; +} + +/** + * Model that represents a list selector. + */ +model ChaosTargetListSelector extends ChaosTargetSelector { + /** + * List of Target references. + */ + targets: TargetReference[]; + + /** + * Enum of the selector type. + */ + type: "List"; +} + +/** + * Model that represents a reference to a Target in the selector. + */ +model TargetReference { + /** + * Enum of the Target reference type. + */ + type: TargetReferenceType; + + /** + * String of the resource ID of a Target resource. + */ + id: Azure.Core.armResourceIdentifier; +} + +/** + * Model that represents a query selector. + */ +model ChaosTargetQuerySelector extends ChaosTargetSelector { + /** + * Azure Resource Graph (ARG) Query Language query for target resources. + */ + queryString: string; + + /** + * Subscription id list to scope resource query. + */ + subscriptionIds: string[]; + + /** + * Enum of the selector type. + */ + type: "Query"; +} + +/** + * Model that represents a simple target filter. + */ +model ChaosTargetSimpleFilter extends ChaosTargetFilter { + /** + * Model that represents the Simple filter parameters. + */ + parameters?: ChaosTargetSimpleFilterParameters; + + /** + * Enum that discriminates between filter types. Currently only `Simple` type is supported. + */ + type: "Simple"; +} + +/** + * Model that represents the Simple filter parameters. + */ +model ChaosTargetSimpleFilterParameters { + /** + * List of Azure availability zones to filter targets by. + */ + zones?: string[]; +} diff --git a/specification/chaos/Chaos.Management/experiment.tsp b/specification/chaos/Chaos.Management/experiment.tsp new file mode 100644 index 000000000000..97144fd131b0 --- /dev/null +++ b/specification/chaos/Chaos.Management/experiment.tsp @@ -0,0 +1,98 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./experiment.models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +@armResourceOperations +interface Experiments { + /** + * Get a Experiment resource. + */ + get is ArmResourceRead; + + /** + * Create or update a Experiment resource. + */ + createOrUpdate is ArmResourceCreateOrReplaceAsync; + + /** + * The operation to update an experiment. + */ + @parameterVisibility + update is ArmCustomPatchAsync; + + /** + * Delete a Experiment resource. + */ + delete is ArmResourceDeleteWithoutOkAsync; + + /** + * Get a list of Experiment resources in a resource group. + */ + list is ArmResourceListByParent< + Experiment, + Parameters = { + /** + * Optional value that indicates whether to filter results based on if the Experiment is currently running. If null, then the results will not be filtered. + */ + @query("running") + running?: boolean; + + /** + * String that sets the continuation token. + */ + @query("continuationToken") + continuationToken?: string; + }, + Response = ExperimentListResult + >; + + /** + * Get a list of Experiment resources in a subscription. + */ + listAll is ArmListBySubscription< + Experiment, + Parameters = { + /** + * Optional value that indicates whether to filter results based on if the Experiment is currently running. If null, then the results will not be filtered. + */ + @query("running") + running?: boolean; + + /** + * String that sets the continuation token. + */ + @query("continuationToken") + continuationToken?: string; + }, + Response = ExperimentListResult + >; + + /** + * Cancel a running Experiment resource. + */ + cancel is ArmResourceActionNoResponseContentAsync; + + /** + * Start a Experiment resource. + */ + start is ArmResourceActionNoResponseContentAsync; +} + +@@minLength(Experiment.name, 1); +@@doc(Experiment.name, "String that represents a Experiment resource name."); +@@doc(Experiment.properties, "The properties of the experiment resource."); +@@doc(Experiments.createOrUpdate::parameters.resource, + "Experiment resource to be created or updated." +); +@@doc(Experiments.update::parameters.properties, + "Parameters supplied to the Update experiment operation." +); diff --git a/specification/chaos/Chaos.Management/experimentExecution.models.tsp b/specification/chaos/Chaos.Management/experimentExecution.models.tsp new file mode 100644 index 000000000000..3c05a918440e --- /dev/null +++ b/specification/chaos/Chaos.Management/experimentExecution.models.tsp @@ -0,0 +1,304 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./experiment.models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +/** + * Model that represents the execution of a Experiment. + */ +@parentResource(Experiment) +model ExperimentExecution + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = ExperimentExecution, + KeyName = "executionId", + SegmentName = "executions", + NamePattern = "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" + >; +} + +/** + * Model that represents the execution properties of an Experiment. + */ +model ExperimentExecutionProperties { + /** + * The status of the execution. + */ + @visibility("read") + status?: string; + + /** + * String that represents the start date time. + */ + @visibility("read") + startedAt?: utcDateTime; + + /** + * String that represents the stop date time. + */ + @visibility("read") + stoppedAt?: utcDateTime; + + /** + * Resource provisioning state. Not currently in use for executions. + */ + @visibility("read") + provisioningState?: ProvisioningState; +} + +/** + * Model that represents the execution details of an Experiment. + */ +model ExperimentExecutionDetails { + /** + * String of the resource type. + */ + @visibility("read") + type?: string; + + /** + * String of the fully qualified resource ID. + */ + @visibility("read") + id?: string; + + /** + * String of the resource name. + */ + @visibility("read") + name?: string; + + /** + * The properties of the experiment execution details. + */ + @visibility("read") + properties?: ExperimentExecutionDetailsProperties; +} + +/** + * Model that represents the extended properties of an experiment execution. + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +model ExperimentExecutionDetailsProperties { + /** + * The status of the execution. + */ + @visibility("read") + status?: string; + + /** + * String that represents the start date time. + */ + @visibility("read") + startedAt?: utcDateTime; + + /** + * String that represents the stop date time. + */ + @visibility("read") + stoppedAt?: utcDateTime; + + /** + * Resource provisioning state. Not currently in use for executions. + */ + @visibility("read") + provisioningState?: ProvisioningState; + + /** + * The reason why the execution failed. + */ + @visibility("read") + failureReason?: string; + + /** + * String that represents the last action date time. + */ + @visibility("read") + lastActionAt?: utcDateTime; + + /** + * The information of the experiment run. + */ + @visibility("read") + runInformation?: ExperimentExecutionDetailsPropertiesRunInformation; +} + +/** + * The information of the experiment run. + */ +model ExperimentExecutionDetailsPropertiesRunInformation { + /** + * The steps of the experiment run. + */ + @visibility("read") + @OpenAPI.extension("x-ms-identifiers", ["stepName"]) + steps?: StepStatus[]; +} + +/** + * Model that represents the a list of branches and branch statuses. + */ +model StepStatus { + /** + * The name of the step. + */ + @visibility("read") + stepName?: string; + + /** + * The id of the step. + */ + @visibility("read") + stepId?: string; + + /** + * The value of the status of the step. + */ + @visibility("read") + status?: string; + + /** + * The array of branches. + */ + @visibility("read") + @OpenAPI.extension("x-ms-identifiers", ["branchName"]) + branches?: BranchStatus[]; +} + +/** + * Model that represents the a list of actions and action statuses. + */ +model BranchStatus { + /** + * The name of the branch status. + */ + @visibility("read") + branchName?: string; + + /** + * The id of the branch status. + */ + @visibility("read") + branchId?: string; + + /** + * The status of the branch. + */ + @visibility("read") + status?: string; + + /** + * The array of actions. + */ + @visibility("read") + @OpenAPI.extension("x-ms-identifiers", ["actionId"]) + actions?: ActionStatus[]; +} + +/** + * Model that represents the an action and its status. + */ +model ActionStatus { + /** + * The name of the action status. + */ + @visibility("read") + actionName?: string; + + /** + * The id of the action status. + */ + @visibility("read") + actionId?: string; + + /** + * The status of the action. + */ + @visibility("read") + status?: string; + + /** + * String that represents the start time of the action. + */ + @visibility("read") + startTime?: utcDateTime; + + /** + * String that represents the end time of the action. + */ + @visibility("read") + endTime?: utcDateTime; + + /** + * The array of targets. + */ + @visibility("read") + @OpenAPI.extension("x-ms-identifiers", []) + targets?: ExperimentExecutionActionTargetDetailsProperties[]; +} + +/** + * Model that represents the Experiment action target details properties model. + */ +model ExperimentExecutionActionTargetDetailsProperties { + /** + * The status of the execution. + */ + @visibility("read") + status?: string; + + /** + * The target for the action. + */ + @visibility("read") + target?: string; + + /** + * String that represents the failed date time. + */ + @visibility("read") + targetFailedTime?: utcDateTime; + + /** + * String that represents the completed date time. + */ + @visibility("read") + targetCompletedTime?: utcDateTime; + + /** + * The error of the action. + */ + @visibility("read") + error?: ExperimentExecutionActionTargetDetailsError; +} + +/** + * Model that represents the Experiment action target details error model. + */ +model ExperimentExecutionActionTargetDetailsError { + /** + * The error code. + */ + @visibility("read") + code?: string; + + /** + * The error message + */ + @visibility("read") + message?: string; +} + +/** + * Model that represents a list of Experiment executions and a link for pagination. + */ +model ExperimentExecutionListResult is Azure.Core.Page; diff --git a/specification/chaos/Chaos.Management/experimentExecution.tsp b/specification/chaos/Chaos.Management/experimentExecution.tsp new file mode 100644 index 000000000000..48ca911c6641 --- /dev/null +++ b/specification/chaos/Chaos.Management/experimentExecution.tsp @@ -0,0 +1,51 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./experiment.tsp"; +import "./experimentExecution.models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +@armResourceOperations +interface ExperimentExecutions { + /** + * Get an execution of an Experiment resource. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "Required to not break existing SDKs" + @operationId("Experiments_GetExecution") + getExecution is ArmResourceRead; + + /** + * Get a list of executions of an Experiment resource. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "Required to not break existing SDKs" + @operationId("Experiments_ListAllExecutions") + listAllExecutions is ArmResourceListByParent< + ExperimentExecution, + Response = ExperimentExecutionListResult + >; + + /** + * Execution details of an experiment resource. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "Required to not break existing SDKs" + @operationId("Experiments_ExecutionDetails") + getExecutionDetails is ArmResourceActionSync< + ExperimentExecution, + void, + ExperimentExecutionDetails + >; +} + +@@doc(ExperimentExecution.name, + "GUID that represents a Experiment execution detail." +); +@@doc(ExperimentExecution.properties, + "The properties of experiment execution status." +); diff --git a/specification/chaos/Chaos.Management/main.tsp b/specification/chaos/Chaos.Management/main.tsp new file mode 100644 index 000000000000..efc4110303f3 --- /dev/null +++ b/specification/chaos/Chaos.Management/main.tsp @@ -0,0 +1,49 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Version: 0.10.3 + * Date: 2024-11-25T19:03:17.069Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./capability.tsp"; +import "./capabilityType.tsp"; +import "./experiment.tsp"; +import "./experimentExecution.tsp"; +import "./privateAccess.tsp"; +import "./privateEndpointConnection.tsp"; +import "./target.tsp"; +import "./targetType.tsp"; +import "./operationStatus.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * Chaos Management Client + */ +@armProviderNamespace +@service({ + title: "ChaosManagementClient", + description: "Chaos Management Client", +}) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v5) +namespace Microsoft.Chaos; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2024-11-01-preview API version. + */ + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(Azure.Core.Versions.v1_0_Preview_1) + v2024_11_01_preview: "2024-11-01-preview", +} diff --git a/specification/chaos/Chaos.Management/operationStatus.tsp b/specification/chaos/Chaos.Management/operationStatus.tsp new file mode 100644 index 000000000000..5354d99a3737 --- /dev/null +++ b/specification/chaos/Chaos.Management/operationStatus.tsp @@ -0,0 +1,39 @@ +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "./common.models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +/** + * Chaos Studio async operation status resource operations. + */ +@armResourceOperations +interface OperationStatuses { + /** + * Returns the current status of an async operation. + */ + @autoRoute + get( + ...ApiVersionParameter, + ...SubscriptionIdParameter, + + /** + * The provider namespace (this parameter will not show up in operations). + */ + @path + @segment("providers") + provider: "Microsoft.Chaos", + + ...LocationParameter, + ...Foundations.OperationIdParameter, + ): ArmResponse | ErrorResponse; +} + +@@segment(OperationStatuses.get::parameters.operationId, "operationStatuses"); diff --git a/specification/chaos/Chaos.Management/privateAccess.models.tsp b/specification/chaos/Chaos.Management/privateAccess.models.tsp new file mode 100644 index 000000000000..369ff94232a0 --- /dev/null +++ b/specification/chaos/Chaos.Management/privateAccess.models.tsp @@ -0,0 +1,79 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +/** + * PrivateAccesses tracked resource. + */ +model PrivateAccess + is Azure.ResourceManager.TrackedResource { + ...ResourceNameParameter< + Resource = PrivateAccess, + KeyName = "privateAccessName", + SegmentName = "privateAccesses", + NamePattern = "^[^<>%&:?#/\\\\]+$" + >; +} + +/** + * Describes a private access update. + */ +model PrivateAccessPatch { + /** + * The tags of the private access resource. + */ + ...Azure.ResourceManager.Foundations.TagsUpdateModel; +} + +/** + * The properties of a private access resource + */ +model PrivateAccessProperties { + /** + * Most recent provisioning state for the given privateAccess resource. + */ + @visibility("read") + provisioningState?: ProvisioningState; + + /** + * A readonly collection of private endpoint connection. Currently only one endpoint connection is supported. + */ + @visibility("read") + privateEndpointConnections?: PrivateEndpointConnection[]; + + /** + * Public Network Access Control for PrivateAccess resource. + */ + publicNetworkAccess?: PublicNetworkAccessOption; +} + +/** + * Public Network Access Control for PrivateAccess resource. + */ +union PublicNetworkAccessOption { + string, + + /** + * Enabled access. + */ + Enabled: "Enabled", + + /** + * Disabled access. + */ + Disabled: "Disabled", +} + +/** + * Model that represents a list of private access resources and a link for pagination. + */ +model PrivateAccessListResult is Azure.Core.Page; diff --git a/specification/chaos/Chaos.Management/privateAccess.tsp b/specification/chaos/Chaos.Management/privateAccess.tsp new file mode 100644 index 000000000000..a640514ac77e --- /dev/null +++ b/specification/chaos/Chaos.Management/privateAccess.tsp @@ -0,0 +1,92 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./privateAccess.models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +@armResourceOperations +interface PrivateAccesses { + /** + * Get a private access resource + */ + get is ArmResourceRead; + + /** + * Create or update a private access + */ + createOrUpdate is ArmResourceCreateOrReplaceAsync; + + /** + * Patch a private access tags + */ + @parameterVisibility + update is ArmCustomPatchAsync; + + /** + * Delete a private access + */ + delete is ArmResourceDeleteWithoutOkAsync; + + /** + * Get a list of private access resources in a resource group. + */ + list is ArmResourceListByParent< + PrivateAccess, + Parameters = { + /** + * String that sets the continuation token. + */ + @query("continuationToken") + continuationToken?: string; + }, + Response = PrivateAccessListResult + >; + + /** + * Get a list of private access resources in a subscription. + */ + listAll is ArmListBySubscription< + PrivateAccess, + Parameters = { + /** + * String that sets the continuation token. + */ + @query("continuationToken") + continuationToken?: string; + }, + Response = PrivateAccessListResult + >; + + /** + * Gets the private link resources possible under private access resource + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "Required to not break existing SDKs" + @operationId("PrivateAccesses_GetPrivateLinkResources") + @get + privateLinkResources is ArmResourceActionSync< + PrivateAccess, + void, + PrivateLinkResourceListResult + >; +} + +@@minLength(PrivateAccess.name, 1); +@@doc(PrivateAccess.name, + "The name of the private access resource that is being created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters." +); +@@doc(PrivateAccess.properties, + "The resource-specific properties for this resource." +); +@@doc(PrivateAccesses.createOrUpdate::parameters.resource, + "private access resource to be created or updated." +); +@@doc(PrivateAccesses.update::parameters.properties, + "private access resource's tags to be updated." +); diff --git a/specification/chaos/Chaos.Management/privateEndpointConnection.models.tsp b/specification/chaos/Chaos.Management/privateEndpointConnection.models.tsp new file mode 100644 index 000000000000..304a66dd3a92 --- /dev/null +++ b/specification/chaos/Chaos.Management/privateEndpointConnection.models.tsp @@ -0,0 +1,162 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./privateAccess.models.tsp"; +import "./common.models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; +/** + * The private endpoint connection resource. + */ +@parentResource(PrivateAccess) +model PrivateEndpointConnection + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = PrivateEndpointConnection, + KeyName = "privateEndpointConnectionName", + SegmentName = "privateEndpointConnections", + NamePattern = "^[^<>%&:?#/\\\\]+$" + >; +} + +/** + * Properties of the private endpoint connection. + */ +model PrivateEndpointConnectionProperties { + /** + * The group ids for the private endpoint resource. + */ + @visibility("read") + groupIds?: string[]; + + /** + * The private endpoint resource. + */ + privateEndpoint?: PrivateEndpoint; + + /** + * A collection of information about the state of the connection between service consumer and provider. + */ + privateLinkServiceConnectionState: PrivateLinkServiceConnectionState; + + /** + * The provisioning state of the private endpoint connection resource. + */ + @visibility("read") + provisioningState?: ProvisioningState; +} + +/** + * The private endpoint resource. + */ +model PrivateEndpoint { + /** + * The ARM identifier for private endpoint. + */ + @visibility("read") + id?: string; +} + +/** + * A collection of information about the state of the connection between service consumer and provider. + */ +model PrivateLinkServiceConnectionState { + /** + * Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + */ + status?: PrivateEndpointServiceConnectionStatus; + + /** + * The reason for approval/rejection of the connection. + */ + description?: string; + + /** + * A message indicating if changes on the service provider require any updates on the consumer. + */ + actionsRequired?: string; +} + +/** + * The private endpoint connection status. + */ +union PrivateEndpointServiceConnectionStatus { + string, + + /** + * Pending status. + */ + Pending: "Pending", + + /** + * Approved status. + */ + Approved: "Approved", + + /** + * Rejected status. + */ + Rejected: "Rejected", +} + +/** + * A list of private link resources + */ +model PrivateEndpointConnectionListResult + is Azure.Core.Page; + +/** + * A private link resource. + */ +model PrivateLinkResource + is Azure.ResourceManager.TrackedResource< + PrivateLinkResourceProperties, + false + > { + ...ResourceNameParameter< + Resource = PrivateLinkResource, + KeyName = "privateLinkName", + SegmentName = "privateLinkResources", + NamePattern = "^[^<>%&:?#/\\\\]+$" + >; +} + +/** + * Properties of a private link resource. + */ +model PrivateLinkResourceProperties { + /** + * The private link resource group id. + */ + @visibility("read") + groupId?: string; + + /** + * The private link resource required member names. + */ + @visibility("read") + requiredMembers?: string[]; + + /** + * The private link resource private link DNS zone name. + */ + requiredZoneNames?: string[]; + + /** + * Resource provisioning state. Not currently in use. + */ + @visibility("read") + provisioningState?: ProvisioningState; +} + +/** + * A list of private link resources + */ +model PrivateLinkResourceListResult is Azure.Core.Page; diff --git a/specification/chaos/Chaos.Management/privateEndpointConnection.tsp b/specification/chaos/Chaos.Management/privateEndpointConnection.tsp new file mode 100644 index 000000000000..5c053e8d2085 --- /dev/null +++ b/specification/chaos/Chaos.Management/privateEndpointConnection.tsp @@ -0,0 +1,46 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./privateEndpointConnection.models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +@armResourceOperations +interface PrivateEndpointConnections { + /** + * Gets information about a private endpoint connection under a private access resource. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Linting error - is actually camel-case." + #suppress "@azure-tools/typespec-azure-core/no-openapi" "Required to not break existing SDKs" + @operationId("PrivateAccesses_GetAPrivateEndpointConnection") + getAPrivateEndpointConnection is ArmResourceRead; + + /** + * Deletes a private endpoint connection under a private access resource. + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "Linting error - is actually camel-case." + #suppress "@azure-tools/typespec-azure-core/no-openapi" "Required to not break existing SDKs" + @operationId("PrivateAccesses_DeleteAPrivateEndpointConnection") + deleteAPrivateEndpointConnection is ArmResourceDeleteWithoutOkAsync; + + /** + * List information about private endpoint connections under a private access resource + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "Required to not break existing SDKs" + @operationId("PrivateAccesses_ListPrivateEndpointConnections") + listPrivateEndpointConnections is ArmResourceListByParent< + PrivateEndpointConnection, + Response = PrivateEndpointConnectionListResult + >; +} + +@@doc(PrivateEndpointConnection.name, + "The name of the private endpoint connection." +); +@@doc(PrivateEndpointConnection.properties, "Resource properties."); diff --git a/specification/chaos/Chaos.Management/target.models.tsp b/specification/chaos/Chaos.Management/target.models.tsp new file mode 100644 index 000000000000..f15a2310e2a4 --- /dev/null +++ b/specification/chaos/Chaos.Management/target.models.tsp @@ -0,0 +1,41 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./common.models.tsp"; +import "./capabilityType.models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.Http; +using TypeSpec.OpenAPI; +using Azure.Core; + +namespace Microsoft.Chaos; + +/** + * Model that represents a Target resource. + */ +model Target is Azure.ResourceManager.ProxyResource> { + ...ResourceNameParameter< + Resource = Target, + KeyName = "targetName", + SegmentName = "targets", + NamePattern = "^[a-zA-Z0-9_\\-\\.]+$" + >; + + /** + * Azure resource location. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "Required to avoid SDK breaking change." + location?: azureLocation; +} + +alias TargetParentResourceParameters = BaseParameters & + ParentResourceParameters; + +/** + * Model that represents a list of Target resources and a link for pagination. + */ +model TargetListResult is Azure.Core.Page; diff --git a/specification/chaos/Chaos.Management/target.tsp b/specification/chaos/Chaos.Management/target.tsp new file mode 100644 index 000000000000..f329fd2b7ed2 --- /dev/null +++ b/specification/chaos/Chaos.Management/target.tsp @@ -0,0 +1,58 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./target.models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.Http; +using TypeSpec.OpenAPI; +using Azure.Core; + +namespace Microsoft.Chaos; + +@armResourceOperations +interface Targets { + /** + * Get a Target resource that extends a tracked regional resource. + */ + get is ArmResourceRead; + + /** + * Create or update a Target resource that extends a tracked regional resource. + */ + createOrUpdate is ArmResourceCreateOrReplaceSync< + Target, + TargetParentResourceParameters + >; + + /** + * Delete a Target resource that extends a tracked regional resource. + */ + delete is ArmResourceDeleteSync; + + /** + * Get a list of Target resources that extend a tracked regional resource. + */ + list is ArmResourceListByParent< + Target, + { + ...TargetParentResourceParameters; + + /** + * String that sets the continuation token. + */ + @query("continuationToken") + continuationToken?: string; + }, + Response = TargetListResult + >; +} + +@@doc(Target.name, "String that represents a Target resource name."); +@@doc(Target.properties, "The properties of the target resource."); +@@doc(Targets.createOrUpdate::parameters.resource, + "Target resource to be created or updated." +); diff --git a/specification/chaos/Chaos.Management/targetType.models.tsp b/specification/chaos/Chaos.Management/targetType.models.tsp new file mode 100644 index 000000000000..5e20fcc0d42a --- /dev/null +++ b/specification/chaos/Chaos.Management/targetType.models.tsp @@ -0,0 +1,64 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./experiment.models.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +/** + * Model that represents a Target Type resource. + */ +@subscriptionResource +@parentResource(SubscriptionLocationResource) +model TargetType + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = TargetType, + KeyName = "targetTypeName", + SegmentName = "targetTypes", + NamePattern = "^[a-zA-Z0-9_\\-\\.]+$" + >; +} + +/** + * Model that represents the base Target Type properties model. + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "Read-only metadata resource." +model TargetTypeProperties { + /** + * Localized string of the display name. + */ + @visibility("read") + displayName?: string; + + /** + * Localized string of the description. + */ + @visibility("read") + description?: string; + + /** + * URL to retrieve JSON schema of the Target Type properties. + */ + @visibility("read") + @maxLength(2048) + propertiesSchema?: string; + + /** + * List of resource types this Target Type can extend. + */ + @visibility("read") + resourceTypes?: string[]; +} + +/** + * Model that represents a list of Target Type resources and a link for pagination. + */ +model TargetTypeListResult is Azure.Core.Page; diff --git a/specification/chaos/Chaos.Management/targetType.tsp b/specification/chaos/Chaos.Management/targetType.tsp new file mode 100644 index 000000000000..742f07b3daf5 --- /dev/null +++ b/specification/chaos/Chaos.Management/targetType.tsp @@ -0,0 +1,42 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./targetType.models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.Chaos; + +@armResourceOperations +interface TargetTypes { + /** + * Get a Target Type resources for given location. + */ + get is ArmResourceRead< + TargetType, + Azure.ResourceManager.Foundations.SubscriptionBaseParameters + >; + + /** + * Get a list of Target Type resources for given location. + */ + list is ArmResourceListByParent< + TargetType, + Azure.ResourceManager.Foundations.SubscriptionBaseParameters, + Parameters = { + /** + * String that sets the continuation token. + */ + @query("continuationToken") + continuationToken?: string; + }, + Response = TargetTypeListResult + >; +} + +@@doc(TargetType.name, "String that represents a Target Type resource name."); +@@doc(TargetType.properties, "The properties of the target type resource."); diff --git a/specification/chaos/Chaos.Management/tspconfig.yaml b/specification/chaos/Chaos.Management/tspconfig.yaml new file mode 100644 index 000000000000..65dee593e807 --- /dev/null +++ b/specification/chaos/Chaos.Management/tspconfig.yaml @@ -0,0 +1,42 @@ +parameters: + "service-dir": + default: "sdk/chaos" +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + azure-resource-provider-folder: "resource-manager" + emit-common-types-schema: "never" + # `arm-resource-flattening` is only used for back-compat for specs existed on July 2024. All new service spec should NOT use this flag + arm-resource-flattening: true + emitter-output-dir: "{project-root}/.." + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/openapi.json" + omit-unreachable-types: true + use-read-only-status-schema: true + "@azure-tools/typespec-ts": + azureSdkForJs: true + isModularLibrary: true + generateMetadata: true + hierarchyClient: false + experimentalExtensibleEnums: true + enableOperationGroup: true + clear-output-folder: true + package-dir: "arm-chaos" + flavor: "azure" + packageDetails: + name: "@azure/arm-chaos" + "@azure-tools/typespec-python": + package-dir: "azure-mgmt-chaos" + package-name: "{package-dir}" + flavor: "azure" + generate-test: true + generate-sample: true + "@azure-tools/typespec-csharp": + flavor: azure + package-dir: "Azure.ResourceManager.Chaos" + clear-output-folder: true + model-namespace: false + namespace: "{package-dir}" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_CreateOrUpdate.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_CreateOrUpdate.json new file mode 100644 index 000000000000..7c795f1ef542 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_CreateOrUpdate.json @@ -0,0 +1,55 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resource": { + "properties": {} + }, + "capabilityName": "Shutdown-1.0", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/targets/capabilities", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + }, + "systemData": { + "createdAt": "2020-05-14T05:08:38.4662189Z", + "lastModifiedAt": "2020-05-14T05:08:38.4662189Z" + } + } + }, + "201": { + "body": { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/targets/capabilities", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + }, + "systemData": { + "createdAt": "2020-05-14T05:08:38.4662189Z", + "lastModifiedAt": "2020-05-14T05:08:38.4662189Z" + } + } + } + }, + "operationId": "Capabilities_CreateOrUpdate", + "title": "Create/update a Capability that extends a virtual machine Target resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_Delete.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_Delete.json new file mode 100644 index 000000000000..3a2a71363a4b --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_Delete.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "capabilityName": "Shutdown-1.0", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "Capabilities_Delete", + "title": "Delete a Capability that extends a virtual machine Target resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_Get.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_Get.json new file mode 100644 index 000000000000..c24d50303058 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_Get.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "capabilityName": "Shutdown-1.0", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/targets/capabilities", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + }, + "systemData": { + "createdAt": "2020-05-14T05:08:38.4662189Z", + "lastModifiedAt": "2020-05-14T05:08:38.4662189Z" + } + } + } + }, + "operationId": "Capabilities_Get", + "title": "Get a Capability that extends a virtual machine Target resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_List.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_List.json new file mode 100644 index 000000000000..e64aa32c3650 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Capabilities_List.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/targets/capabilities", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + }, + "systemData": { + "createdAt": "2020-05-14T05:08:38.4662189Z", + "lastModifiedAt": "2020-05-14T05:08:38.4662189Z" + } + } + ] + } + } + }, + "operationId": "Capabilities_List", + "title": "List all Capabilities that extend a virtual machine Target resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/CapabilityTypes_Get.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/CapabilityTypes_Get.json new file mode 100644 index 000000000000..07015ac28ed8 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/CapabilityTypes_Get.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "capabilityTypeName": "Shutdown-1.0", + "location": "westus2", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetTypeName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/locations/targetTypes/capabilityTypes", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "displayName": "Shutdown VM", + "kind": "fault", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "runtimeProperties": { + "kind": "continuous" + }, + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + } + } + } + }, + "operationId": "CapabilityTypes_Get", + "title": "Get a Capability Type for a virtual machine Target resource on westus2 location." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/CapabilityTypes_List.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/CapabilityTypes_List.json new file mode 100644 index 000000000000..0b7c67fd77c9 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/CapabilityTypes_List.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "location": "westus2", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetTypeName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes/Microsoft-VirtualMachine/capabilityTypes?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "Shutdown-1.0", + "type": "Microsoft.Chaos/locations/targetTypes/capabilityTypes", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes/Microsoft-VirtualMachine/capabilityTypes/Shutdown-1.0", + "properties": { + "description": "Shutdown an Azure Virtual Machine for a defined period of time.", + "displayName": "Shutdown VM", + "kind": "fault", + "parametersSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine/capabilities/Shutdown-1.0.json", + "publisher": "Microsoft", + "runtimeProperties": { + "kind": "continuous" + }, + "targetType": "VirtualMachine", + "urn": "urn:csci:microsoft:virtualMachine:shutdown/1.0" + } + } + ] + } + } + }, + "operationId": "CapabilityTypes_List", + "title": "List all Capability Types for a virtual machine Target resource on westus2 location." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Cancel.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Cancel.json new file mode 100644 index 000000000000..9f1756e0fbcf --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Cancel.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "Experiments_Cancel", + "title": "Cancel a running Experiment." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_CreateOrUpdate.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_CreateOrUpdate.json new file mode 100644 index 000000000000..c5a02b85ba61 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_CreateOrUpdate.json @@ -0,0 +1,208 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resource": { + "identity": { + "type": "SystemAssigned" + }, + "tags": { + "key7131": "ryohwcoiccwsnewjigfmijz", + "key2138": "fjaeecgnvqd" + }, + "location": "eastus2euap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:microsoft:virtualMachine:shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + } + }, + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "SystemAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6" + }, + "tags": { + "key7131": "ryohwcoiccwsnewjigfmijz", + "key2138": "fjaeecgnvqd" + }, + "location": "eastus2euap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "provisioningState": "Updating", + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:microsoft:virtualMachine:shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/experiments/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "201": { + "body": { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "SystemAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6" + }, + "tags": { + "key7131": "ryohwcoiccwsnewjigfmijz", + "key2138": "fjaeecgnvqd" + }, + "location": "eastus2euap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "provisioningState": "Creating", + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:microsoft:virtualMachine:shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/experiments/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "Experiments_CreateOrUpdate", + "title": "Create/update a Experiment in a resource group." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Delete.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Delete.json new file mode 100644 index 000000000000..4924ef8efa3c --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Delete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "204": {} + }, + "operationId": "Experiments_Delete", + "title": "Delete a Experiment in a resource group." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ExecutionDetails.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ExecutionDetails.json new file mode 100644 index 000000000000..a103b628f5bc --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ExecutionDetails.json @@ -0,0 +1,66 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "executionId": "f24500ad-744e-4a26-864b-b76199eac333", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "f24500ad-744e-4a26-864b-b76199eac333", + "type": "Microsoft.Chaos/experiments/executions/getExecutionDetails", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment/executions/f24500ad-744e-4a26-864b-b76199eac333/getExecutionDetails", + "properties": { + "failureReason": "Dependency failure", + "lastActionAt": "2020-12-14T21:52:52.2552574Z", + "runInformation": { + "steps": [ + { + "branches": [ + { + "actions": [ + { + "actionId": "59499d33-6751-4b6e-a1f6-58f4d56a040a", + "actionName": "urn:provider:agent-v2:Microsoft.Azure.Chaos.Fault.CPUPressureAllProcessors", + "endTime": "2020-12-14T13:56:13.6270153-08:00", + "startTime": "2020-12-14T13:56:13.6270153-08:00", + "status": "failed", + "targets": [ + { + "status": "succeeded", + "target": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/VM1", + "targetCompletedTime": "2021-04-02T17:30:55+00:00", + "targetFailedTime": "2021-04-02T16:30:55+00:00" + }, + { + "status": "failed", + "target": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/VM1", + "targetCompletedTime": "2021-04-02T17:30:55+00:00", + "targetFailedTime": "2021-04-02T16:30:55+00:00" + } + ] + } + ], + "branchId": "FirstBranch", + "branchName": "FirstBranch", + "status": "failed" + } + ], + "status": "failed", + "stepId": "FirstStep", + "stepName": "FirstStep" + } + ] + }, + "startedAt": "2020-12-14T21:52:52.2552574Z", + "status": "failed", + "stoppedAt": "2020-12-14T21:56:18.9281956Z" + } + } + } + }, + "operationId": "Experiments_ExecutionDetails", + "title": "Get experiment execution details." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Get.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Get.json new file mode 100644 index 000000000000..7caafe637f85 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Get.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "SystemAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6" + }, + "location": "centraluseuap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:provider:providername:Shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + } + }, + "headers": {} + } + }, + "operationId": "Experiments_Get", + "title": "Get a Experiment in a resource group." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_GetExecution.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_GetExecution.json new file mode 100644 index 000000000000..62f3798fdb0c --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_GetExecution.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "executionId": "f24500ad-744e-4a26-864b-b76199eac333", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "f24500ad-744e-4a26-864b-b76199eac333", + "type": "Microsoft.Chaos/experiments/executions", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment/executions/f24500ad-744e-4a26-864b-b76199eac333", + "properties": { + "startedAt": "2020-12-14T21:52:52.2552574Z", + "status": "failed", + "stoppedAt": "2020-12-14T21:56:18.9281956Z" + } + }, + "headers": {} + } + }, + "operationId": "Experiments_GetExecution", + "title": "Get the execution of a Experiment." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_List.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_List.json new file mode 100644 index 000000000000..88029a8a641b --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_List.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "SystemAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6" + }, + "location": "centraluseuap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:provider:providername:Shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "Experiments_List", + "title": "List all Experiments in a resource group." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ListAll.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ListAll.json new file mode 100644 index 000000000000..143a2f3a5345 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ListAll.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/experiments?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "SystemAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6" + }, + "location": "centraluseuap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:provider:providername:Shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "Experiments_ListAll", + "title": "List all Experiments in a subscription." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ListAllExecutions.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ListAllExecutions.json new file mode 100644 index 000000000000..7b48b33f1608 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_ListAllExecutions.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment/executionDetails?continuationToken=&api-version=2025-01-01", + "value": [ + { + "name": "f24500ad-744e-4a26-864b-b76199eac333", + "type": "Microsoft.Chaos/experiments/executions", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment/executions/f24500ad-744e-4a26-864b-b76199eac333", + "properties": { + "startedAt": "2020-12-14T21:52:52.2552574Z", + "status": "failed", + "stoppedAt": "2020-12-14T21:56:18.9281956Z" + } + }, + { + "name": "14d98367-52ef-4596-be4f-53fc81bbfc33", + "type": "Microsoft.Chaos/experiments/executions", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment/executions/14d98367-52ef-4596-be4f-53fc81bbfc33", + "properties": { + "startedAt": "2020-12-14T21:52:52.2552574Z", + "status": "success", + "stoppedAt": "2020-12-14T21:56:18.9281956Z" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "Experiments_ListAllExecutions", + "title": "List all executions of an Experiment." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Start.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Start.json new file mode 100644 index 000000000000..9a68b03582ed --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Start.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "Experiments_Start", + "title": "Start a Experiment." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Update.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Update.json new file mode 100644 index 000000000000..7f7464f8f76f --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Experiments_Update.json @@ -0,0 +1,104 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "properties": { + "identity": { + "type": "UserAssigned", + "userAssignedIdentities": { + "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentity/exampleUMI": {} + } + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "experimentName": "exampleExperiment", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "exampleExperiment", + "type": "Microsoft.Chaos/experiments", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Chaos/experiments/exampleExperiment", + "identity": { + "type": "UserAssigned", + "principalId": "d04ab567-2c07-43ef-a7f4-4527626b7f56", + "tenantId": "8c3e2fb2-fe7a-4bf1-b779-d73990782fe6", + "userAssignedIdentities": { + "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.ManagedIdentity/userAssignedIdentity/exampleUMI": {} + } + }, + "location": "centraluseuap", + "properties": { + "customerDataStorage": { + "blobContainerName": "azurechaosstudioexperiments", + "storageAccountResourceId": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Storage/storageAccounts/exampleStorage" + }, + "selectors": [ + { + "type": "List", + "id": "selector1", + "targets": [ + { + "type": "ChaosTarget", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine" + } + ] + } + ], + "steps": [ + { + "name": "step1", + "branches": [ + { + "name": "branch1", + "actions": [ + { + "name": "urn:csci:provider:providername:Shutdown/1.0", + "type": "continuous", + "duration": "PT10M", + "parameters": [ + { + "key": "abruptShutdown", + "value": "false" + } + ], + "selectorId": "selector1" + } + ] + } + ] + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "createdBy": "User", + "createdByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976", + "lastModifiedAt": "2021-07-01T00:00:00.0Z", + "lastModifiedBy": "User", + "lastModifiedByType": "b3a41dba-4415-4d36-9ee8-e5eaa86db976" + }, + "tags": { + "key1": "value1", + "key2": "value2" + } + }, + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatuses/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "Experiments_Update", + "title": "Update an Experiment in a resource group." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/OperationStatuses_Get.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/OperationStatuses_Get.json new file mode 100644 index 000000000000..79a6af7eabd9 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/OperationStatuses_Get.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "subscriptionId": "e25c0d12-0335-4fec-8ef8-3b4f9a10649e", + "location": "westus2", + "operationId": "4bdadd97-207c-4de8-9bba-08339ae099c7" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/e25c0d12-0335-4fec-8ef8-3b4f9a10649e/providers/Microsoft.Chaos/locations/westus2/operationStatuses/4bdadd97-207c-4de8-9bba-08339ae099c7", + "name": "4bdadd97-207c-4de8-9bba-08339ae099c7", + "startTime": "2024-11-14T21:52:52.2552574Z", + "status": "Creating" + } + } + }, + "operationId": "OperationStatuses_Get", + "title": "Gets Chaos Studio async operation status." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Operations_List.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Operations_List.json new file mode 100644 index 000000000000..fd9d6a21cec4 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Operations_List.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/providers/Microsoft.Chaos/operations?continuationToken=myContinuationToken&api-version=2024-11-01-preview", + "value": [ + { + "name": "Microsoft.Chaos/experiments/read", + "display": { + "provider": "Microsoft Chaos", + "resource": "Chaos Experiment", + "operation": "Gets all Chaos Experiments.", + "description": "Gets all Chaos Experiments in a resource group." + }, + "isDataAction": false, + "origin": "user,system" + } + ] + } + } + }, + "operationId": "Operations_ListAll", + "title": "Lists all Chaos Studio operations." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource.json new file mode 100644 index 000000000000..aeefb41c67f6 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resource": { + "location": "centraluseuap", + "properties": {} + }, + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "provisioningState": "Updating" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "header": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "201": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "provisioningState": "Creating" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "header": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "PrivateAccesses_CreateOrUpdate", + "title": "Create or Update a private access resource" +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource_With_Public_Network_Access.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource_With_Public_Network_Access.json new file mode 100644 index 000000000000..a2160ef6d481 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource_With_Public_Network_Access.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resource": { + "location": "centraluseuap", + "properties": { + "publicNetworkAccess": "Enabled" + } + }, + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "provisioningState": "Updating", + "publicNetworkAccess": "Enabled" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "header": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "201": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "provisioningState": "Creating", + "publicNetworkAccess": "Enabled" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "header": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "PrivateAccesses_CreateOrUpdate", + "title": "Create or Update a private access resource with publicNetworkAccess" +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Delete.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Delete.json new file mode 100644 index 000000000000..863b73090e9a --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Delete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "204": {} + }, + "operationId": "PrivateAccesses_Delete", + "title": "Delete a private access resource" +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_DeleteAPrivateEndpointConnection.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_DeleteAPrivateEndpointConnection.json new file mode 100644 index 000000000000..918d0e468865 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_DeleteAPrivateEndpointConnection.json @@ -0,0 +1,20 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "privateEndpointConnectionName": "myPrivateEndpointConnection", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + }, + "204": {} + }, + "operationId": "PrivateAccesses_DeleteAPrivateEndpointConnection", + "title": "Delete a private endpoint connection under a private access resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_GetAPrivateEndpointConnection.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_GetAPrivateEndpointConnection.json new file mode 100644 index 000000000000..87323c558482 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_GetAPrivateEndpointConnection.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "privateEndpointConnectionName": "myPrivateEndpointConnection", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateEndpointConnection", + "type": "Microsoft.Chaos/privateAccesses/PrivateEndpointConnections", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateEndpoinConnections/myPrivateEndpointConnection", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "PrivateAccesses_GetAPrivateEndpointConnection", + "title": "Get information about a private endpoint connection under a private access resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_GetPrivateLinkResources.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_GetPrivateLinkResources.json new file mode 100644 index 000000000000..6061df9c8fd2 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_GetPrivateLinkResources.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "agents", + "type": "Microsoft.Chaos/privateAccesses/privateLinkResources", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateLinkResources/agents", + "location": "centraluseuap", + "properties": { + "groupId": "agents", + "requiredMembers": [ + "privateAccess_1" + ], + "requiredZoneNames": [ + "privatelink.agents.core.windows.net" + ] + } + } + ] + } + } + }, + "operationId": "PrivateAccesses_GetPrivateLinkResources", + "title": "List all possible private link resources under private access resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Get_Get_A_Private_Access_Resource.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Get_Get_A_Private_Access_Resource.json new file mode 100644 index 000000000000..ea241460b416 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Get_Get_A_Private_Access_Resource.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccess": { + "location": "centraluseuap" + }, + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": {}, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + } + } + }, + "operationId": "PrivateAccesses_Get", + "title": "Get a private access resource" +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Get_Get_A_Private_Access_Resource_With_Private_Endpoint.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Get_Get_A_Private_Access_Resource_With_Private_Endpoint.json new file mode 100644 index 000000000000..1ed76e7dc7df --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Get_Get_A_Private_Access_Resource_With_Private_Endpoint.json @@ -0,0 +1,48 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccess": { + "location": "centraluseuap" + }, + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myprivateAccess", + "location": "centraluseuap", + "properties": { + "privateEndpointConnections": [ + { + "name": "myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "type": "Microsoft.Chaos/privateAccesses/PrivateEndpointConnections", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateEndpoinConnections/myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "publicNetworkAccess": "Enabled" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + } + } + }, + "operationId": "PrivateAccesses_Get", + "title": "Get a private access resource with private endpoint" +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_List.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_List.json new file mode 100644 index 000000000000..efd80c1e9db6 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_List.json @@ -0,0 +1,61 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "myPrivateAccess2", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess2", + "location": "centraluseuap", + "properties": {}, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "privateEndpointConnections": [ + { + "name": "myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "type": "Microsoft.Chaos/privateAccesses/PrivateEndpointConnections", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateEndpoinConnections/myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + } + } + } + ], + "publicNetworkAccess": "Enabled" + }, + "systemData": { + "createdAt": "2021-08-01T00:00:00.0Z", + "lastModifiedAt": "2021-08-01T00:00:00.0Z" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PrivateAccesses_List", + "title": "List all private access in a resource group." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_ListAll.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_ListAll.json new file mode 100644 index 000000000000..30ba4d1b2020 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_ListAll.json @@ -0,0 +1,60 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/privateAccesses?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "myPrivateAccess2", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess2", + "location": "centraluseuap", + "properties": {}, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup2/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "privateEndpointConnections": [ + { + "name": "myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "type": "Microsoft.Chaos/privateAccesses/PrivateEndpointConnections", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup2/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateEndpoinConnections/myPrivateAccess.d4914cfa-6bc2-4049-a57c-3d1f622d8eef", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup2/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + } + } + } + ], + "publicNetworkAccess": "Disabled" + }, + "systemData": { + "createdAt": "2021-08-01T00:00:00.0Z", + "lastModifiedAt": "2021-08-01T00:00:00.0Z" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "PrivateAccesses_ListAll", + "title": "List all private accesses in a subscription." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_ListPrivateEndpointConnections.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_ListPrivateEndpointConnections.json new file mode 100644 index 000000000000..67b7aa77c9a0 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_ListPrivateEndpointConnections.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myPrivateEndpointConnection", + "type": "Microsoft.Chaos/privateAccesses/PrivateEndpointConnections", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess/privateEndpoinConnections/myPrivateEndpointConnection", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Network/privateEndpoints/myPrivateEndpoint" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-Approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + }, + "operationId": "PrivateAccesses_ListPrivateEndpointConnections", + "title": "List all private endpoint connections under a private access resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Update.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Update.json new file mode 100644 index 000000000000..b36d4a84e3a7 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/PrivateAccesses_Update.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateAccessName": "myPrivateAccess", + "properties": { + "tags": { + "tag1": "value1", + "tag2": "value2" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "name": "myPrivateAccess", + "type": "Microsoft.Chaos/privateAccesses", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourcegroup/providers/Microsoft.Chaos/privateAccesses/myPrivateAccess", + "location": "centraluseuap", + "properties": { + "provisioningState": "Succeeded" + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + }, + "tags": { + "tag1": "value1", + "tag2": "value2" + } + }, + "headers": {} + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationStatus/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview", + "Location": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/myResourceGroup/providers/Microsoft.Chaos/locations/eastus/operationResults/00000000-0000-0000-0000-000000000000?api-version=2024-11-01-preview" + } + } + }, + "operationId": "PrivateAccesses_Update", + "title": "Update a private access resource's tags" +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/TargetTypes_Get.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/TargetTypes_Get.json new file mode 100644 index 000000000000..af955b51e062 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/TargetTypes_Get.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "location": "westus2", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetTypeName": "Microsoft-Agent" + }, + "responses": { + "200": { + "body": { + "name": "Microsoft-Agent", + "type": "Microsoft.Chaos/locations/targetTypes", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes/Microsoft-Agent", + "properties": { + "description": "A target represents Chaos Agent.", + "displayName": "Chaos Agent", + "propertiesSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine.json", + "resourceTypes": [ + "Microsoft.Compute/virtualMachines", + "Microsoft.Compute/virtualMachineScaleSets" + ] + } + }, + "headers": {} + } + }, + "operationId": "TargetTypes_Get", + "title": "Get a Target Type for westus2 location" +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/TargetTypes_List.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/TargetTypes_List.json new file mode 100644 index 000000000000..492aa68949b0 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/TargetTypes_List.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "location": "westus2", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "Microsoft-Agent", + "type": "Microsoft.Chaos/locations/targetTypes", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/providers/Microsoft.Chaos/locations/westus2/targetTypes/Microsoft-Agent", + "properties": { + "description": "A target represents Chaos Agent.", + "displayName": "Chaos Agent", + "propertiesSchema": "https://schema.centralus.chaos-prod.azure.com/targets/Microsoft-VirtualMachine.json", + "resourceTypes": [ + "Microsoft.Compute/virtualMachines", + "Microsoft.Compute/virtualMachineScaleSets" + ] + } + } + ] + }, + "headers": {} + } + }, + "operationId": "TargetTypes_List", + "title": "List all Target Types for westus2 location." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_CreateOrUpdate.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_CreateOrUpdate.json new file mode 100644 index 000000000000..08ebc03da8ef --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_CreateOrUpdate.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "resource": { + "properties": {} + }, + "targetName": "Microsoft-VirtualMachine" + }, + "responses": { + "200": { + "body": { + "name": "Microsoft-VirtualMachine", + "type": "Microsoft.Chaos/targets", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine", + "properties": {}, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "headers": {} + }, + "201": { + "body": { + "name": "Microsoft-VirtualMachine", + "type": "Microsoft.Chaos/targets", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-VirtualMachine", + "properties": {}, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "headers": {} + } + }, + "operationId": "Targets_CreateOrUpdate", + "title": "Create/update a Target that extends a virtual machine resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_Delete.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_Delete.json new file mode 100644 index 000000000000..a0b0b0e241c7 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_Delete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-Agent" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "Targets_Delete", + "title": "Delete a Target that extends a virtual machine resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_Get.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_Get.json new file mode 100644 index 000000000000..dd8a8c27670e --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_Get.json @@ -0,0 +1,37 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291", + "targetName": "Microsoft-Agent" + }, + "responses": { + "200": { + "body": { + "name": "Microsoft-Agent", + "type": "Microsoft.Chaos/targets", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-Agent", + "location": "centraluseuap", + "properties": { + "agentProfileId": "ac4e8251-fdc9-4277-8e87-dc57fe5794cf", + "identities": [ + { + "type": "CertificateSubjectIssuer", + "subject": "CN=example.subject" + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + }, + "headers": {} + } + }, + "operationId": "Targets_Get", + "title": "Get a Target that extends a virtual machine resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_List.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_List.json new file mode 100644 index 000000000000..0f2686b7b39f --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/examples/Targets_List.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "continuationToken": null, + "parentProviderNamespace": "Microsoft.Compute", + "parentResourceName": "exampleVM", + "parentResourceType": "virtualMachines", + "resourceGroupName": "exampleRG", + "subscriptionId": "6b052e15-03d3-4f17-b2e1-be7f07588291" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets?continuationToken=&api-version=2024-11-01-preview", + "value": [ + { + "name": "Microsoft-Agent", + "type": "Microsoft.Chaos/targets", + "id": "/subscriptions/6b052e15-03d3-4f17-b2e1-be7f07588291/resourceGroups/exampleRG/providers/Microsoft.Compute/virtualMachines/exampleVM/providers/Microsoft.Chaos/targets/Microsoft-Agent", + "location": "centraluseuap", + "properties": { + "agentProfileId": "ac4e8251-fdc9-4277-8e87-dc57fe5794cf", + "identities": [ + { + "type": "CertificateSubjectIssuer", + "subject": "CN=example.subject" + } + ] + }, + "systemData": { + "createdAt": "2021-07-01T00:00:00.0Z", + "lastModifiedAt": "2021-07-01T00:00:00.0Z" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "Targets_List", + "title": "List all Targets that extend a virtual machine resource." +} diff --git a/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/openapi.json b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/openapi.json new file mode 100644 index 000000000000..76bb1a796296 --- /dev/null +++ b/specification/chaos/resource-manager/Microsoft.Chaos/preview/2024-11-01-preview/openapi.json @@ -0,0 +1,3728 @@ +{ + "swagger": "2.0", + "info": { + "title": "ChaosManagementClient", + "version": "2024-11-01-preview", + "description": "Chaos Management Client", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Capabilities" + }, + { + "name": "Operations" + }, + { + "name": "Targets" + }, + { + "name": "CapabilityTypes" + }, + { + "name": "Experiments" + }, + { + "name": "ExperimentExecutions" + }, + { + "name": "PrivateAccesses" + }, + { + "name": "PrivateEndpointConnections" + }, + { + "name": "TargetTypes" + }, + { + "name": "OperationStatuses" + } + ], + "paths": { + "/providers/Microsoft.Chaos/operations": { + "get": { + "operationId": "Operations_ListAll", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Lists all Chaos Studio operations.": { + "$ref": "./examples/Operations_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/experiments": { + "get": { + "operationId": "Experiments_ListAll", + "tags": [ + "Experiments" + ], + "description": "Get a list of Experiment resources in a subscription.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "running", + "in": "query", + "description": "Optional value that indicates whether to filter results based on if the Experiment is currently running. If null, then the results will not be filtered.", + "required": false, + "type": "boolean" + }, + { + "name": "continuationToken", + "in": "query", + "description": "String that sets the continuation token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ExperimentListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all Experiments in a subscription.": { + "$ref": "./examples/Experiments_ListAll.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{location}/operationStatuses/{operationId}": { + "get": { + "operationId": "OperationStatuses_Get", + "tags": [ + "OperationStatuses" + ], + "description": "Returns the current status of an async operation.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/OperationIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/OperationStatusResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Gets Chaos Studio async operation status.": { + "$ref": "./examples/OperationStatuses_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{location}/targetTypes": { + "get": { + "operationId": "TargetTypes_List", + "tags": [ + "TargetTypes" + ], + "description": "Get a list of Target Type resources for given location.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "continuationToken", + "in": "query", + "description": "String that sets the continuation token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/TargetTypeListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all Target Types for westus2 location.": { + "$ref": "./examples/TargetTypes_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{location}/targetTypes/{targetTypeName}": { + "get": { + "operationId": "TargetTypes_Get", + "tags": [ + "TargetTypes" + ], + "description": "Get a Target Type resources for given location.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "targetTypeName", + "in": "path", + "description": "String that represents a Target Type resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\.]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/TargetType" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a Target Type for westus2 location": { + "$ref": "./examples/TargetTypes_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{location}/targetTypes/{targetTypeName}/capabilityTypes": { + "get": { + "operationId": "CapabilityTypes_List", + "tags": [ + "CapabilityTypes" + ], + "description": "Get a list of Capability Type resources for given Target Type and location.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "targetTypeName", + "in": "path", + "description": "String that represents a Target Type resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\.]+$" + }, + { + "name": "continuationToken", + "in": "query", + "description": "String that sets the continuation token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/CapabilityTypeListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all Capability Types for a virtual machine Target resource on westus2 location.": { + "$ref": "./examples/CapabilityTypes_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/locations/{location}/targetTypes/{targetTypeName}/capabilityTypes/{capabilityTypeName}": { + "get": { + "operationId": "CapabilityTypes_Get", + "tags": [ + "CapabilityTypes" + ], + "description": "Get a Capability Type resource for given Target Type and location.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "targetTypeName", + "in": "path", + "description": "String that represents a Target Type resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\.]+$" + }, + { + "name": "capabilityTypeName", + "in": "path", + "description": "String that represents a Capability Type resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9\\-\\.]+-\\d\\.\\d$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/CapabilityType" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a Capability Type for a virtual machine Target resource on westus2 location.": { + "$ref": "./examples/CapabilityTypes_Get.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Chaos/privateAccesses": { + "get": { + "operationId": "PrivateAccesses_ListAll", + "tags": [ + "PrivateAccesses" + ], + "description": "Get a list of private access resources in a subscription.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "name": "continuationToken", + "in": "query", + "description": "String that sets the continuation token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PrivateAccessListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all private accesses in a subscription.": { + "$ref": "./examples/PrivateAccesses_ListAll.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{parentProviderNamespace}/{parentResourceType}/{parentResourceName}/providers/Microsoft.Chaos/targets": { + "get": { + "operationId": "Targets_List", + "tags": [ + "Targets" + ], + "description": "Get a list of Target resources that extend a tracked regional resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "parentProviderNamespace", + "in": "path", + "description": "The parent resource provider namespace.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceType", + "in": "path", + "description": "The parent resource type.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceName", + "in": "path", + "description": "The parent resource name.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "continuationToken", + "in": "query", + "description": "String that sets the continuation token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/TargetListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all Targets that extend a virtual machine resource.": { + "$ref": "./examples/Targets_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{parentProviderNamespace}/{parentResourceType}/{parentResourceName}/providers/Microsoft.Chaos/targets/{targetName}": { + "get": { + "operationId": "Targets_Get", + "tags": [ + "Targets" + ], + "description": "Get a Target resource that extends a tracked regional resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "parentProviderNamespace", + "in": "path", + "description": "The parent resource provider namespace.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceType", + "in": "path", + "description": "The parent resource type.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceName", + "in": "path", + "description": "The parent resource name.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "targetName", + "in": "path", + "description": "String that represents a Target resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\.]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Target" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a Target that extends a virtual machine resource.": { + "$ref": "./examples/Targets_Get.json" + } + } + }, + "put": { + "operationId": "Targets_CreateOrUpdate", + "tags": [ + "Targets" + ], + "description": "Create or update a Target resource that extends a tracked regional resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "parentProviderNamespace", + "in": "path", + "description": "The parent resource provider namespace.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceType", + "in": "path", + "description": "The parent resource type.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceName", + "in": "path", + "description": "The parent resource name.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "targetName", + "in": "path", + "description": "String that represents a Target resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\.]+$" + }, + { + "name": "resource", + "in": "body", + "description": "Target resource to be created or updated.", + "required": true, + "schema": { + "$ref": "#/definitions/Target" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Target' update operation succeeded", + "schema": { + "$ref": "#/definitions/Target" + } + }, + "201": { + "description": "Resource 'Target' create operation succeeded", + "schema": { + "$ref": "#/definitions/Target" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create/update a Target that extends a virtual machine resource.": { + "$ref": "./examples/Targets_CreateOrUpdate.json" + } + } + }, + "delete": { + "operationId": "Targets_Delete", + "tags": [ + "Targets" + ], + "description": "Delete a Target resource that extends a tracked regional resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "parentProviderNamespace", + "in": "path", + "description": "The parent resource provider namespace.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceType", + "in": "path", + "description": "The parent resource type.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceName", + "in": "path", + "description": "The parent resource name.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "targetName", + "in": "path", + "description": "String that represents a Target resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\.]+$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a Target that extends a virtual machine resource.": { + "$ref": "./examples/Targets_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{parentProviderNamespace}/{parentResourceType}/{parentResourceName}/providers/Microsoft.Chaos/targets/{targetName}/capabilities": { + "get": { + "operationId": "Capabilities_List", + "tags": [ + "Capabilities" + ], + "description": "Get a list of Capability resources that extend a Target resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "parentProviderNamespace", + "in": "path", + "description": "The parent resource provider namespace.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceType", + "in": "path", + "description": "The parent resource type.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceName", + "in": "path", + "description": "The parent resource name.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "continuationToken", + "in": "query", + "description": "String that sets the continuation token.", + "required": false, + "type": "string" + }, + { + "name": "targetName", + "in": "path", + "description": "String that represents a Target resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\.]+$" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/CapabilityListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all Capabilities that extend a virtual machine Target resource.": { + "$ref": "./examples/Capabilities_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{parentProviderNamespace}/{parentResourceType}/{parentResourceName}/providers/Microsoft.Chaos/targets/{targetName}/capabilities/{capabilityName}": { + "get": { + "operationId": "Capabilities_Get", + "tags": [ + "Capabilities" + ], + "description": "Get a Capability resource that extends a Target resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "parentProviderNamespace", + "in": "path", + "description": "The parent resource provider namespace.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceType", + "in": "path", + "description": "The parent resource type.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceName", + "in": "path", + "description": "The parent resource name.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "targetName", + "in": "path", + "description": "String that represents a Target resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\.]+$" + }, + { + "name": "capabilityName", + "in": "path", + "description": "String that represents a Capability resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9\\-\\.]+-\\d\\.\\d$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Capability" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a Capability that extends a virtual machine Target resource.": { + "$ref": "./examples/Capabilities_Get.json" + } + } + }, + "put": { + "operationId": "Capabilities_CreateOrUpdate", + "tags": [ + "Capabilities" + ], + "description": "Create or update a Capability resource that extends a Target resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "parentProviderNamespace", + "in": "path", + "description": "The parent resource provider namespace.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceType", + "in": "path", + "description": "The parent resource type.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceName", + "in": "path", + "description": "The parent resource name.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "targetName", + "in": "path", + "description": "String that represents a Target resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\.]+$" + }, + { + "name": "capabilityName", + "in": "path", + "description": "String that represents a Capability resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9\\-\\.]+-\\d\\.\\d$" + }, + { + "name": "resource", + "in": "body", + "description": "Capability resource to be created or updated.", + "required": true, + "schema": { + "$ref": "#/definitions/Capability" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Capability' update operation succeeded", + "schema": { + "$ref": "#/definitions/Capability" + } + }, + "201": { + "description": "Resource 'Capability' create operation succeeded", + "schema": { + "$ref": "#/definitions/Capability" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create/update a Capability that extends a virtual machine Target resource.": { + "$ref": "./examples/Capabilities_CreateOrUpdate.json" + } + } + }, + "delete": { + "operationId": "Capabilities_Delete", + "tags": [ + "Capabilities" + ], + "description": "Delete a Capability that extends a Target resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "parentProviderNamespace", + "in": "path", + "description": "The parent resource provider namespace.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceType", + "in": "path", + "description": "The parent resource type.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "parentResourceName", + "in": "path", + "description": "The parent resource name.", + "required": true, + "type": "string", + "maxLength": 63, + "pattern": "^[a-zA-Z0-9][a-zA-Z0-9-_.]{2,62}$" + }, + { + "name": "targetName", + "in": "path", + "description": "String that represents a Target resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9_\\-\\.]+$" + }, + { + "name": "capabilityName", + "in": "path", + "description": "String that represents a Capability resource name.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z0-9\\-\\.]+-\\d\\.\\d$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a Capability that extends a virtual machine Target resource.": { + "$ref": "./examples/Capabilities_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/experiments": { + "get": { + "operationId": "Experiments_List", + "tags": [ + "Experiments" + ], + "description": "Get a list of Experiment resources in a resource group.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "running", + "in": "query", + "description": "Optional value that indicates whether to filter results based on if the Experiment is currently running. If null, then the results will not be filtered.", + "required": false, + "type": "boolean" + }, + { + "name": "continuationToken", + "in": "query", + "description": "String that sets the continuation token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ExperimentListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all Experiments in a resource group.": { + "$ref": "./examples/Experiments_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/experiments/{experimentName}": { + "get": { + "operationId": "Experiments_Get", + "tags": [ + "Experiments" + ], + "description": "Get a Experiment resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "String that represents a Experiment resource name.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Experiment" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a Experiment in a resource group.": { + "$ref": "./examples/Experiments_Get.json" + } + } + }, + "put": { + "operationId": "Experiments_CreateOrUpdate", + "tags": [ + "Experiments" + ], + "description": "Create or update a Experiment resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "String that represents a Experiment resource name.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + }, + { + "name": "resource", + "in": "body", + "description": "Experiment resource to be created or updated.", + "required": true, + "schema": { + "$ref": "#/definitions/Experiment" + } + } + ], + "responses": { + "200": { + "description": "Resource 'Experiment' update operation succeeded", + "schema": { + "$ref": "#/definitions/Experiment" + } + }, + "201": { + "description": "Resource 'Experiment' create operation succeeded", + "schema": { + "$ref": "#/definitions/Experiment" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create/update a Experiment in a resource group.": { + "$ref": "./examples/Experiments_CreateOrUpdate.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Experiments_Update", + "tags": [ + "Experiments" + ], + "description": "The operation to update an experiment.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "String that represents a Experiment resource name.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + }, + { + "name": "properties", + "in": "body", + "description": "Parameters supplied to the Update experiment operation.", + "required": true, + "schema": { + "$ref": "#/definitions/ExperimentUpdate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/Experiment" + } + }, + "202": { + "description": "Resource update request accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update an Experiment in a resource group.": { + "$ref": "./examples/Experiments_Update.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Experiments_Delete", + "tags": [ + "Experiments" + ], + "description": "Delete a Experiment resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "String that represents a Experiment resource name.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a Experiment in a resource group.": { + "$ref": "./examples/Experiments_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/experiments/{experimentName}/cancel": { + "post": { + "operationId": "Experiments_Cancel", + "tags": [ + "Experiments" + ], + "description": "Cancel a running Experiment resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "String that represents a Experiment resource name.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Cancel a running Experiment.": { + "$ref": "./examples/Experiments_Cancel.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/experiments/{experimentName}/executions": { + "get": { + "operationId": "Experiments_ListAllExecutions", + "tags": [ + "ExperimentExecutions" + ], + "description": "Get a list of executions of an Experiment resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "String that represents a Experiment resource name.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/ExperimentExecutionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all executions of an Experiment.": { + "$ref": "./examples/Experiments_ListAllExecutions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/experiments/{experimentName}/executions/{executionId}": { + "get": { + "operationId": "Experiments_GetExecution", + "tags": [ + "ExperimentExecutions" + ], + "description": "Get an execution of an Experiment resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "String that represents a Experiment resource name.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + }, + { + "name": "executionId", + "in": "path", + "description": "GUID that represents a Experiment execution detail.", + "required": true, + "type": "string", + "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ExperimentExecution" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get the execution of a Experiment.": { + "$ref": "./examples/Experiments_GetExecution.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/experiments/{experimentName}/executions/{executionId}/getExecutionDetails": { + "post": { + "operationId": "Experiments_ExecutionDetails", + "tags": [ + "ExperimentExecutions" + ], + "description": "Execution details of an experiment resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "String that represents a Experiment resource name.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + }, + { + "name": "executionId", + "in": "path", + "description": "GUID that represents a Experiment execution detail.", + "required": true, + "type": "string", + "pattern": "^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/ExperimentExecutionDetails" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get experiment execution details.": { + "$ref": "./examples/Experiments_ExecutionDetails.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/experiments/{experimentName}/start": { + "post": { + "operationId": "Experiments_Start", + "tags": [ + "Experiments" + ], + "description": "Start a Experiment resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "experimentName", + "in": "path", + "description": "String that represents a Experiment resource name.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + } + ], + "responses": { + "202": { + "description": "Resource operation accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Start a Experiment.": { + "$ref": "./examples/Experiments_Start.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/privateAccesses": { + "get": { + "operationId": "PrivateAccesses_List", + "tags": [ + "PrivateAccesses" + ], + "description": "Get a list of private access resources in a resource group.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "continuationToken", + "in": "query", + "description": "String that sets the continuation token.", + "required": false, + "type": "string" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PrivateAccessListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all private access in a resource group.": { + "$ref": "./examples/PrivateAccesses_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/privateAccesses/{privateAccessName}": { + "get": { + "operationId": "PrivateAccesses_Get", + "tags": [ + "PrivateAccesses" + ], + "description": "Get a private access resource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "privateAccessName", + "in": "path", + "description": "The name of the private access resource that is being created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PrivateAccess" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get a private access resource": { + "$ref": "./examples/PrivateAccesses_Get_Get_A_Private_Access_Resource.json" + }, + "Get a private access resource with private endpoint": { + "$ref": "./examples/PrivateAccesses_Get_Get_A_Private_Access_Resource_With_Private_Endpoint.json" + } + } + }, + "put": { + "operationId": "PrivateAccesses_CreateOrUpdate", + "tags": [ + "PrivateAccesses" + ], + "description": "Create or update a private access", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "privateAccessName", + "in": "path", + "description": "The name of the private access resource that is being created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + }, + { + "name": "resource", + "in": "body", + "description": "private access resource to be created or updated.", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateAccess" + } + } + ], + "responses": { + "200": { + "description": "Resource 'PrivateAccess' update operation succeeded", + "schema": { + "$ref": "#/definitions/PrivateAccess" + } + }, + "201": { + "description": "Resource 'PrivateAccess' create operation succeeded", + "schema": { + "$ref": "#/definitions/PrivateAccess" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or Update a private access resource": { + "$ref": "./examples/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource.json" + }, + "Create or Update a private access resource with publicNetworkAccess": { + "$ref": "./examples/PrivateAccesses_CreateOrUpdate_Create_Or_Update_A_Private_Access_Resource_With_Public_Network_Access.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "PrivateAccesses_Update", + "tags": [ + "PrivateAccesses" + ], + "description": "Patch a private access tags", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "privateAccessName", + "in": "path", + "description": "The name of the private access resource that is being created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + }, + { + "name": "properties", + "in": "body", + "description": "private access resource's tags to be updated.", + "required": true, + "schema": { + "$ref": "#/definitions/PrivateAccessPatch" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PrivateAccess" + } + }, + "202": { + "description": "Resource update request accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update a private access resource's tags": { + "$ref": "./examples/PrivateAccesses_Update.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "PrivateAccesses_Delete", + "tags": [ + "PrivateAccesses" + ], + "description": "Delete a private access", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "privateAccessName", + "in": "path", + "description": "The name of the private access resource that is being created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a private access resource": { + "$ref": "./examples/PrivateAccesses_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/privateAccesses/{privateAccessName}/privateEndpointConnections": { + "get": { + "operationId": "PrivateAccesses_ListPrivateEndpointConnections", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "List information about private endpoint connections under a private access resource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "privateAccessName", + "in": "path", + "description": "The name of the private access resource that is being created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + } + ], + "responses": { + "200": { + "description": "The request has succeeded.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnectionListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all private endpoint connections under a private access resource.": { + "$ref": "./examples/PrivateAccesses_ListPrivateEndpointConnections.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/privateAccesses/{privateAccessName}/privateEndpointConnections/{privateEndpointConnectionName}": { + "get": { + "operationId": "PrivateAccesses_GetAPrivateEndpointConnection", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "Gets information about a private endpoint connection under a private access resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "privateAccessName", + "in": "path", + "description": "The name of the private access resource that is being created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + }, + { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection.", + "required": true, + "type": "string", + "pattern": "^[^<>%&:?#/\\\\]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get information about a private endpoint connection under a private access resource.": { + "$ref": "./examples/PrivateAccesses_GetAPrivateEndpointConnection.json" + } + } + }, + "delete": { + "operationId": "PrivateAccesses_DeleteAPrivateEndpointConnection", + "tags": [ + "PrivateEndpointConnections" + ], + "description": "Deletes a private endpoint connection under a private access resource.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "privateAccessName", + "in": "path", + "description": "The name of the private access resource that is being created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + }, + { + "name": "privateEndpointConnectionName", + "in": "path", + "description": "The name of the private endpoint connection.", + "required": true, + "type": "string", + "pattern": "^[^<>%&:?#/\\\\]+$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete a private endpoint connection under a private access resource.": { + "$ref": "./examples/PrivateAccesses_DeleteAPrivateEndpointConnection.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Chaos/privateAccesses/{privateAccessName}/privateLinkResources": { + "get": { + "operationId": "PrivateAccesses_GetPrivateLinkResources", + "tags": [ + "PrivateAccesses" + ], + "description": "Gets the private link resources possible under private access resource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "privateAccessName", + "in": "path", + "description": "The name of the private access resource that is being created. Supported characters for the name are a-z, A-Z, 0-9, _ and -. The maximum name length is 80 characters.", + "required": true, + "type": "string", + "minLength": 1, + "pattern": "^[^<>%&:?#/\\\\]+$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/PrivateLinkResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List all possible private link resources under private access resource.": { + "$ref": "./examples/PrivateAccesses_GetPrivateLinkResources.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + } + }, + "definitions": { + "ActionStatus": { + "type": "object", + "description": "Model that represents the an action and its status.", + "properties": { + "actionName": { + "type": "string", + "description": "The name of the action status.", + "readOnly": true + }, + "actionId": { + "type": "string", + "description": "The id of the action status.", + "readOnly": true + }, + "status": { + "type": "string", + "description": "The status of the action.", + "readOnly": true + }, + "startTime": { + "type": "string", + "format": "date-time", + "description": "String that represents the start time of the action.", + "readOnly": true + }, + "endTime": { + "type": "string", + "format": "date-time", + "description": "String that represents the end time of the action.", + "readOnly": true + }, + "targets": { + "type": "array", + "description": "The array of targets.", + "items": { + "$ref": "#/definitions/ExperimentExecutionActionTargetDetailsProperties" + }, + "readOnly": true, + "x-ms-identifiers": [] + } + } + }, + "Azure.Core.azureLocation": { + "type": "string", + "description": "Represents an Azure geography region where supported resource providers live." + }, + "BranchStatus": { + "type": "object", + "description": "Model that represents the a list of actions and action statuses.", + "properties": { + "branchName": { + "type": "string", + "description": "The name of the branch status.", + "readOnly": true + }, + "branchId": { + "type": "string", + "description": "The id of the branch status.", + "readOnly": true + }, + "status": { + "type": "string", + "description": "The status of the branch.", + "readOnly": true + }, + "actions": { + "type": "array", + "description": "The array of actions.", + "items": { + "$ref": "#/definitions/ActionStatus" + }, + "readOnly": true, + "x-ms-identifiers": [ + "actionId" + ] + } + } + }, + "Capability": { + "type": "object", + "description": "Model that represents a Capability resource.", + "properties": { + "properties": { + "$ref": "#/definitions/CapabilityProperties", + "description": "The properties of a capability resource.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "CapabilityListResult": { + "type": "object", + "description": "Model that represents a list of Capability resources and a link for pagination.", + "properties": { + "value": { + "type": "array", + "description": "The Capability items on this page", + "items": { + "$ref": "#/definitions/Capability" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "CapabilityProperties": { + "type": "object", + "description": "Model that represents the Capability properties model.", + "properties": { + "publisher": { + "type": "string", + "description": "String of the Publisher that this Capability extends.", + "readOnly": true + }, + "targetType": { + "type": "string", + "description": "String of the Target Type that this Capability extends.", + "readOnly": true + }, + "description": { + "type": "string", + "description": "Localized string of the description.", + "readOnly": true + }, + "parametersSchema": { + "type": "string", + "description": "URL to retrieve JSON schema of the Capability parameters.", + "maxLength": 2048, + "readOnly": true + }, + "urn": { + "type": "string", + "description": "String of the URN for this Capability Type.", + "maxLength": 2048, + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Resource provisioning state. Not currently in use because resource is created synchronously.", + "readOnly": true + } + } + }, + "CapabilityType": { + "type": "object", + "description": "Model that represents a Capability Type resource.", + "properties": { + "properties": { + "$ref": "#/definitions/CapabilityTypeProperties", + "description": "The properties of the capability type resource.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "CapabilityTypeListResult": { + "type": "object", + "description": "Model that represents a list of Capability Type resources and a link for pagination.", + "properties": { + "value": { + "type": "array", + "description": "The CapabilityType items on this page", + "items": { + "$ref": "#/definitions/CapabilityType" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "CapabilityTypeProperties": { + "type": "object", + "description": "Model that represents the Capability Type properties model.", + "properties": { + "publisher": { + "type": "string", + "description": "String of the Publisher that this Capability Type extends.", + "readOnly": true + }, + "targetType": { + "type": "string", + "description": "String of the Target Type that this Capability Type extends.", + "readOnly": true + }, + "displayName": { + "type": "string", + "description": "Localized string of the display name.", + "readOnly": true + }, + "description": { + "type": "string", + "description": "Localized string of the description.", + "readOnly": true + }, + "parametersSchema": { + "type": "string", + "description": "URL to retrieve JSON schema of the Capability Type parameters.", + "maxLength": 2048, + "readOnly": true + }, + "urn": { + "type": "string", + "description": "String of the URN for this Capability Type.", + "maxLength": 2048, + "readOnly": true + }, + "kind": { + "type": "string", + "description": "String of the kind of this Capability Type.", + "readOnly": true + }, + "azureRbacActions": { + "type": "array", + "description": "Control plane actions necessary to execute capability type.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "azureRbacDataActions": { + "type": "array", + "description": "Data plane actions necessary to execute capability type.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "runtimeProperties": { + "$ref": "#/definitions/CapabilityTypePropertiesRuntimeProperties", + "description": "Runtime properties of this Capability Type.", + "readOnly": true + } + } + }, + "CapabilityTypePropertiesRuntimeProperties": { + "type": "object", + "description": "Runtime properties of this Capability Type.", + "properties": { + "kind": { + "type": "string", + "description": "String of the kind of the resource's action type (continuous or discrete).", + "readOnly": true + } + } + }, + "ChaosExperimentAction": { + "type": "object", + "description": "Model that represents the base action model. 9 total per experiment.", + "properties": { + "name": { + "type": "string", + "description": "String that represents a Capability URN.", + "maxLength": 2048 + }, + "type": { + "$ref": "#/definitions/ExperimentActionType", + "description": "Chaos experiment action discriminator type" + } + }, + "discriminator": "type", + "required": [ + "name", + "type" + ] + }, + "ChaosExperimentBranch": { + "type": "object", + "description": "Model that represents a branch in the step. 9 total per experiment.", + "properties": { + "name": { + "type": "string", + "description": "String of the branch name.", + "minLength": 1 + }, + "actions": { + "type": "array", + "description": "List of actions.", + "items": { + "$ref": "#/definitions/ChaosExperimentAction" + }, + "x-ms-identifiers": [ + "name" + ] + } + }, + "required": [ + "name", + "actions" + ] + }, + "ChaosExperimentStep": { + "type": "object", + "description": "Model that represents a step in the Experiment resource.", + "properties": { + "name": { + "type": "string", + "description": "String of the step name.", + "minLength": 1 + }, + "branches": { + "type": "array", + "description": "List of branches.", + "items": { + "$ref": "#/definitions/ChaosExperimentBranch" + }, + "x-ms-identifiers": [ + "name" + ] + } + }, + "required": [ + "name", + "branches" + ] + }, + "ChaosTargetFilter": { + "type": "object", + "description": "Model that represents available filter types that can be applied to a targets list.", + "properties": { + "type": { + "$ref": "#/definitions/FilterType", + "description": "Chaos target filter discriminator type" + } + }, + "discriminator": "type", + "required": [ + "type" + ] + }, + "ChaosTargetListSelector": { + "type": "object", + "description": "Model that represents a list selector.", + "properties": { + "targets": { + "type": "array", + "description": "List of Target references.", + "items": { + "$ref": "#/definitions/TargetReference" + } + } + }, + "required": [ + "targets" + ], + "allOf": [ + { + "$ref": "#/definitions/ChaosTargetSelector" + } + ], + "x-ms-discriminator-value": "List" + }, + "ChaosTargetQuerySelector": { + "type": "object", + "description": "Model that represents a query selector.", + "properties": { + "queryString": { + "type": "string", + "description": "Azure Resource Graph (ARG) Query Language query for target resources." + }, + "subscriptionIds": { + "type": "array", + "description": "Subscription id list to scope resource query.", + "items": { + "type": "string" + } + } + }, + "required": [ + "queryString", + "subscriptionIds" + ], + "allOf": [ + { + "$ref": "#/definitions/ChaosTargetSelector" + } + ], + "x-ms-discriminator-value": "Query" + }, + "ChaosTargetSelector": { + "type": "object", + "description": "Model that represents a selector in the Experiment resource.", + "properties": { + "id": { + "type": "string", + "description": "String of the selector ID.", + "minLength": 1 + }, + "type": { + "$ref": "#/definitions/SelectorType", + "description": "Chaos target selector discriminator type" + }, + "filter": { + "$ref": "#/definitions/ChaosTargetFilter", + "description": "Model that represents available filter types that can be applied to a targets list." + } + }, + "discriminator": "type", + "required": [ + "id", + "type" + ] + }, + "ChaosTargetSimpleFilter": { + "type": "object", + "description": "Model that represents a simple target filter.", + "properties": { + "parameters": { + "$ref": "#/definitions/ChaosTargetSimpleFilterParameters", + "description": "Model that represents the Simple filter parameters." + } + }, + "allOf": [ + { + "$ref": "#/definitions/ChaosTargetFilter" + } + ], + "x-ms-discriminator-value": "Simple" + }, + "ChaosTargetSimpleFilterParameters": { + "type": "object", + "description": "Model that represents the Simple filter parameters.", + "properties": { + "zones": { + "type": "array", + "description": "List of Azure availability zones to filter targets by.", + "items": { + "type": "string" + } + } + } + }, + "ContinuousAction": { + "type": "object", + "description": "Model that represents a continuous action.", + "properties": { + "duration": { + "type": "string", + "format": "duration", + "description": "ISO8601 formatted string that represents a duration." + }, + "parameters": { + "type": "array", + "description": "List of key value pairs.", + "items": { + "$ref": "#/definitions/KeyValuePair" + }, + "x-ms-identifiers": [ + "key" + ] + }, + "selectorId": { + "type": "string", + "description": "String that represents a selector.", + "minLength": 1 + } + }, + "required": [ + "duration", + "parameters", + "selectorId" + ], + "allOf": [ + { + "$ref": "#/definitions/ChaosExperimentAction" + } + ], + "x-ms-discriminator-value": "continuous" + }, + "CustomerDataStorageProperties": { + "type": "object", + "description": "Model that represents the Customer Managed Storage for an Experiment.", + "properties": { + "storageAccountResourceId": { + "type": "string", + "format": "arm-id", + "description": "ARM Resource ID of the Storage account to use for Customer Data storage.", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.Storage/storageAccounts" + } + ] + } + }, + "blobContainerName": { + "type": "string", + "description": "Name of the Azure Blob Storage container to use or create.", + "minLength": 3, + "maxLength": 63, + "pattern": "^[a-z0-9]([a-z0-9]|(-(?!-))){1,61}[a-z0-9]$" + } + } + }, + "DelayAction": { + "type": "object", + "description": "Model that represents a delay action.", + "properties": { + "duration": { + "type": "string", + "format": "duration", + "description": "ISO8601 formatted string that represents a duration." + } + }, + "required": [ + "duration" + ], + "allOf": [ + { + "$ref": "#/definitions/ChaosExperimentAction" + } + ], + "x-ms-discriminator-value": "delay" + }, + "DiscreteAction": { + "type": "object", + "description": "Model that represents a discrete action.", + "properties": { + "parameters": { + "type": "array", + "description": "List of key value pairs.", + "items": { + "$ref": "#/definitions/KeyValuePair" + }, + "x-ms-identifiers": [ + "key" + ] + }, + "selectorId": { + "type": "string", + "description": "String that represents a selector.", + "minLength": 1 + } + }, + "required": [ + "parameters", + "selectorId" + ], + "allOf": [ + { + "$ref": "#/definitions/ChaosExperimentAction" + } + ], + "x-ms-discriminator-value": "discrete" + }, + "Experiment": { + "type": "object", + "description": "Model that represents a Experiment resource.", + "properties": { + "identity": { + "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource." + }, + "properties": { + "$ref": "#/definitions/ExperimentProperties", + "description": "The properties of the experiment resource.", + "x-ms-client-flatten": true + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "ExperimentActionType": { + "type": "string", + "description": "Enum union of Chaos experiment action types.", + "enum": [ + "delay", + "discrete", + "continuous" + ], + "x-ms-enum": { + "name": "ExperimentActionType", + "modelAsString": true, + "values": [ + { + "name": "delay", + "value": "delay" + }, + { + "name": "discrete", + "value": "discrete" + }, + { + "name": "continuous", + "value": "continuous" + } + ] + } + }, + "ExperimentExecution": { + "type": "object", + "description": "Model that represents the execution of a Experiment.", + "properties": { + "properties": { + "$ref": "#/definitions/ExperimentExecutionProperties", + "description": "The properties of experiment execution status.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "ExperimentExecutionActionTargetDetailsError": { + "type": "object", + "description": "Model that represents the Experiment action target details error model.", + "properties": { + "code": { + "type": "string", + "description": "The error code.", + "readOnly": true + }, + "message": { + "type": "string", + "description": "The error message", + "readOnly": true + } + } + }, + "ExperimentExecutionActionTargetDetailsProperties": { + "type": "object", + "description": "Model that represents the Experiment action target details properties model.", + "properties": { + "status": { + "type": "string", + "description": "The status of the execution.", + "readOnly": true + }, + "target": { + "type": "string", + "description": "The target for the action.", + "readOnly": true + }, + "targetFailedTime": { + "type": "string", + "format": "date-time", + "description": "String that represents the failed date time.", + "readOnly": true + }, + "targetCompletedTime": { + "type": "string", + "format": "date-time", + "description": "String that represents the completed date time.", + "readOnly": true + }, + "error": { + "$ref": "#/definitions/ExperimentExecutionActionTargetDetailsError", + "description": "The error of the action.", + "readOnly": true + } + } + }, + "ExperimentExecutionDetails": { + "type": "object", + "description": "Model that represents the execution details of an Experiment.", + "properties": { + "type": { + "type": "string", + "description": "String of the resource type.", + "readOnly": true + }, + "id": { + "type": "string", + "description": "String of the fully qualified resource ID.", + "readOnly": true + }, + "name": { + "type": "string", + "description": "String of the resource name.", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/ExperimentExecutionDetailsProperties", + "description": "The properties of the experiment execution details.", + "readOnly": true + } + } + }, + "ExperimentExecutionDetailsProperties": { + "type": "object", + "description": "Model that represents the extended properties of an experiment execution.", + "properties": { + "status": { + "type": "string", + "description": "The status of the execution.", + "readOnly": true + }, + "startedAt": { + "type": "string", + "format": "date-time", + "description": "String that represents the start date time.", + "readOnly": true + }, + "stoppedAt": { + "type": "string", + "format": "date-time", + "description": "String that represents the stop date time.", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Resource provisioning state. Not currently in use for executions.", + "readOnly": true + }, + "failureReason": { + "type": "string", + "description": "The reason why the execution failed.", + "readOnly": true + }, + "lastActionAt": { + "type": "string", + "format": "date-time", + "description": "String that represents the last action date time.", + "readOnly": true + }, + "runInformation": { + "$ref": "#/definitions/ExperimentExecutionDetailsPropertiesRunInformation", + "description": "The information of the experiment run.", + "readOnly": true + } + } + }, + "ExperimentExecutionDetailsPropertiesRunInformation": { + "type": "object", + "description": "The information of the experiment run.", + "properties": { + "steps": { + "type": "array", + "description": "The steps of the experiment run.", + "items": { + "$ref": "#/definitions/StepStatus" + }, + "readOnly": true, + "x-ms-identifiers": [ + "stepName" + ] + } + } + }, + "ExperimentExecutionListResult": { + "type": "object", + "description": "Model that represents a list of Experiment executions and a link for pagination.", + "properties": { + "value": { + "type": "array", + "description": "The ExperimentExecution items on this page", + "items": { + "$ref": "#/definitions/ExperimentExecution" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ExperimentExecutionProperties": { + "type": "object", + "description": "Model that represents the execution properties of an Experiment.", + "properties": { + "status": { + "type": "string", + "description": "The status of the execution.", + "readOnly": true + }, + "startedAt": { + "type": "string", + "format": "date-time", + "description": "String that represents the start date time.", + "readOnly": true + }, + "stoppedAt": { + "type": "string", + "format": "date-time", + "description": "String that represents the stop date time.", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Resource provisioning state. Not currently in use for executions.", + "readOnly": true + } + } + }, + "ExperimentListResult": { + "type": "object", + "description": "Model that represents a list of Experiment resources and a link for pagination.", + "properties": { + "value": { + "type": "array", + "description": "The Experiment items on this page", + "items": { + "$ref": "#/definitions/Experiment" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "ExperimentProperties": { + "type": "object", + "description": "Model that represents the Experiment properties model.", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Most recent provisioning state for the given experiment resource.", + "readOnly": true + }, + "steps": { + "type": "array", + "description": "List of steps.", + "items": { + "$ref": "#/definitions/ChaosExperimentStep" + }, + "x-ms-identifiers": [ + "name" + ] + }, + "selectors": { + "type": "array", + "description": "List of selectors.", + "items": { + "$ref": "#/definitions/ChaosTargetSelector" + } + }, + "customerDataStorage": { + "$ref": "#/definitions/CustomerDataStorageProperties", + "description": "Optional customer-managed Storage account where Experiment schema will be stored." + } + }, + "required": [ + "steps", + "selectors" + ] + }, + "ExperimentUpdate": { + "type": "object", + "description": "Describes an experiment update.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + }, + "identity": { + "$ref": "../../../../../common-types/resource-management/v5/managedidentity.json#/definitions/ManagedServiceIdentity", + "description": "The managed service identities assigned to this resource." + } + } + }, + "FilterType": { + "type": "string", + "description": "Enum that discriminates between filter types. Currently only `Simple` type is supported.", + "enum": [ + "Simple" + ], + "x-ms-enum": { + "name": "FilterType", + "modelAsString": true, + "values": [ + { + "name": "Simple", + "value": "Simple", + "description": "Simple filter type." + } + ] + } + }, + "KeyValuePair": { + "type": "object", + "description": "A map to describe the settings of an action.", + "properties": { + "key": { + "type": "string", + "description": "The name of the setting for the action.", + "minLength": 1 + }, + "value": { + "type": "string", + "description": "The value of the setting for the action.", + "minLength": 1 + } + }, + "required": [ + "key", + "value" + ] + }, + "PrivateAccess": { + "type": "object", + "description": "PrivateAccesses tracked resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateAccessProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "PrivateAccessListResult": { + "type": "object", + "description": "Model that represents a list of private access resources and a link for pagination.", + "properties": { + "value": { + "type": "array", + "description": "The PrivateAccess items on this page", + "items": { + "$ref": "#/definitions/PrivateAccess" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PrivateAccessPatch": { + "type": "object", + "description": "Describes a private access update.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags.", + "additionalProperties": { + "type": "string" + } + } + } + }, + "PrivateAccessProperties": { + "type": "object", + "description": "The properties of a private access resource", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Most recent provisioning state for the given privateAccess resource.", + "readOnly": true + }, + "privateEndpointConnections": { + "type": "array", + "description": "A readonly collection of private endpoint connection. Currently only one endpoint connection is supported.", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + }, + "readOnly": true + }, + "publicNetworkAccess": { + "$ref": "#/definitions/PublicNetworkAccessOption", + "description": "Public Network Access Control for PrivateAccess resource." + } + } + }, + "PrivateEndpoint": { + "type": "object", + "description": "The private endpoint resource.", + "properties": { + "id": { + "type": "string", + "description": "The ARM identifier for private endpoint.", + "readOnly": true + } + } + }, + "PrivateEndpointConnection": { + "type": "object", + "description": "The private endpoint connection resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateEndpointConnectionProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "PrivateEndpointConnectionListResult": { + "type": "object", + "description": "A list of private link resources", + "properties": { + "value": { + "type": "array", + "description": "The PrivateEndpointConnection items on this page", + "items": { + "$ref": "#/definitions/PrivateEndpointConnection" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PrivateEndpointConnectionProperties": { + "type": "object", + "description": "Properties of the private endpoint connection.", + "properties": { + "groupIds": { + "type": "array", + "description": "The group ids for the private endpoint resource.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "privateEndpoint": { + "$ref": "#/definitions/PrivateEndpoint", + "description": "The private endpoint resource." + }, + "privateLinkServiceConnectionState": { + "$ref": "#/definitions/PrivateLinkServiceConnectionState", + "description": "A collection of information about the state of the connection between service consumer and provider." + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "The provisioning state of the private endpoint connection resource.", + "readOnly": true + } + }, + "required": [ + "privateLinkServiceConnectionState" + ] + }, + "PrivateEndpointServiceConnectionStatus": { + "type": "string", + "description": "The private endpoint connection status.", + "enum": [ + "Pending", + "Approved", + "Rejected" + ], + "x-ms-enum": { + "name": "PrivateEndpointServiceConnectionStatus", + "modelAsString": true, + "values": [ + { + "name": "Pending", + "value": "Pending", + "description": "Pending status." + }, + { + "name": "Approved", + "value": "Approved", + "description": "Approved status." + }, + { + "name": "Rejected", + "value": "Rejected", + "description": "Rejected status." + } + ] + } + }, + "PrivateLinkResource": { + "type": "object", + "description": "A private link resource.", + "properties": { + "properties": { + "$ref": "#/definitions/PrivateLinkResourceProperties", + "description": "The resource-specific properties for this resource.", + "x-ms-client-flatten": true + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ] + }, + "PrivateLinkResourceListResult": { + "type": "object", + "description": "A list of private link resources", + "properties": { + "value": { + "type": "array", + "description": "The PrivateLinkResource items on this page", + "items": { + "$ref": "#/definitions/PrivateLinkResource" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "PrivateLinkResourceProperties": { + "type": "object", + "description": "Properties of a private link resource.", + "properties": { + "groupId": { + "type": "string", + "description": "The private link resource group id.", + "readOnly": true + }, + "requiredMembers": { + "type": "array", + "description": "The private link resource required member names.", + "items": { + "type": "string" + }, + "readOnly": true + }, + "requiredZoneNames": { + "type": "array", + "description": "The private link resource private link DNS zone name.", + "items": { + "type": "string" + } + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Resource provisioning state. Not currently in use.", + "readOnly": true + } + } + }, + "PrivateLinkServiceConnectionState": { + "type": "object", + "description": "A collection of information about the state of the connection between service consumer and provider.", + "properties": { + "status": { + "$ref": "#/definitions/PrivateEndpointServiceConnectionStatus", + "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service." + }, + "description": { + "type": "string", + "description": "The reason for approval/rejection of the connection." + }, + "actionsRequired": { + "type": "string", + "description": "A message indicating if changes on the service provider require any updates on the consumer." + } + } + }, + "ProvisioningState": { + "type": "string", + "description": "Current provisioning state for a given Azure Chaos resource.", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Creating", + "Updating", + "Deleting" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Resource has been created." + }, + { + "name": "Failed", + "value": "Failed", + "description": "Resource creation failed." + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Resource creation was canceled." + }, + { + "name": "Creating", + "value": "Creating", + "description": "Initial creation in progress." + }, + { + "name": "Updating", + "value": "Updating", + "description": "Update in progress." + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Deletion in progress." + } + ] + }, + "readOnly": true + }, + "PublicNetworkAccessOption": { + "type": "string", + "description": "Public Network Access Control for PrivateAccess resource.", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "PublicNetworkAccessOption", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Enabled access." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Disabled access." + } + ] + } + }, + "SelectorType": { + "type": "string", + "description": "Enum of the selector type.", + "enum": [ + "List", + "Query" + ], + "x-ms-enum": { + "name": "SelectorType", + "modelAsString": true, + "values": [ + { + "name": "List", + "value": "List", + "description": "List selector type." + }, + { + "name": "Query", + "value": "Query", + "description": "Query selector type." + } + ] + } + }, + "StepStatus": { + "type": "object", + "description": "Model that represents the a list of branches and branch statuses.", + "properties": { + "stepName": { + "type": "string", + "description": "The name of the step.", + "readOnly": true + }, + "stepId": { + "type": "string", + "description": "The id of the step.", + "readOnly": true + }, + "status": { + "type": "string", + "description": "The value of the status of the step.", + "readOnly": true + }, + "branches": { + "type": "array", + "description": "The array of branches.", + "items": { + "$ref": "#/definitions/BranchStatus" + }, + "readOnly": true, + "x-ms-identifiers": [ + "branchName" + ] + } + } + }, + "Target": { + "type": "object", + "description": "Model that represents a Target resource.", + "properties": { + "properties": { + "type": "object", + "description": "The properties of the target resource.", + "additionalProperties": {}, + "x-ms-client-flatten": true + }, + "location": { + "$ref": "#/definitions/Azure.Core.azureLocation", + "description": "Azure resource location." + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "TargetListResult": { + "type": "object", + "description": "Model that represents a list of Target resources and a link for pagination.", + "properties": { + "value": { + "type": "array", + "description": "The Target items on this page", + "items": { + "$ref": "#/definitions/Target" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "TargetReference": { + "type": "object", + "description": "Model that represents a reference to a Target in the selector.", + "properties": { + "type": { + "$ref": "#/definitions/TargetReferenceType", + "description": "Enum of the Target reference type." + }, + "id": { + "type": "string", + "format": "arm-id", + "description": "String of the resource ID of a Target resource." + } + }, + "required": [ + "type", + "id" + ] + }, + "TargetReferenceType": { + "type": "string", + "description": "Enum of the Target reference type.", + "enum": [ + "ChaosTarget" + ], + "x-ms-enum": { + "name": "TargetReferenceType", + "modelAsString": true, + "values": [ + { + "name": "ChaosTarget", + "value": "ChaosTarget", + "description": "Chaos target reference type." + } + ] + } + }, + "TargetType": { + "type": "object", + "description": "Model that represents a Target Type resource.", + "properties": { + "properties": { + "$ref": "#/definitions/TargetTypeProperties", + "description": "The properties of the target type resource.", + "x-ms-client-flatten": true + } + }, + "required": [ + "properties" + ], + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ] + }, + "TargetTypeListResult": { + "type": "object", + "description": "Model that represents a list of Target Type resources and a link for pagination.", + "properties": { + "value": { + "type": "array", + "description": "The TargetType items on this page", + "items": { + "$ref": "#/definitions/TargetType" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "TargetTypeProperties": { + "type": "object", + "description": "Model that represents the base Target Type properties model.", + "properties": { + "displayName": { + "type": "string", + "description": "Localized string of the display name.", + "readOnly": true + }, + "description": { + "type": "string", + "description": "Localized string of the description.", + "readOnly": true + }, + "propertiesSchema": { + "type": "string", + "description": "URL to retrieve JSON schema of the Target Type properties.", + "maxLength": 2048, + "readOnly": true + }, + "resourceTypes": { + "type": "array", + "description": "List of resource types this Target Type can extend.", + "items": { + "type": "string" + }, + "readOnly": true + } + } + } + }, + "parameters": {} +} diff --git a/specification/chaos/resource-manager/readme.md b/specification/chaos/resource-manager/readme.md index d2cf20655c9e..a538728efaa5 100644 --- a/specification/chaos/resource-manager/readme.md +++ b/specification/chaos/resource-manager/readme.md @@ -24,13 +24,45 @@ For other options on installation see [Installing AutoRest](https://aka.ms/autor These are the global settings for the chaos. -``` yaml +```yaml title: ChaosManagementClient description: Chaos Management Client openapi-type: arm -tag: package-preview-2024-03 +tag: package-preview-2024-11 ``` +### Tag: package-preview-2024-11 + +These settings apply only when `--tag=package-preview-2024-11` is specified on the command line. + +```yaml $(tag) == 'package-preview-2024-11' +input-file: + - Microsoft.Chaos/preview/2024-11-01-preview/openapi.json +suppressions: + - code: TrackedExtensionResourcesAreNotAllowed + from: openapi.json + where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{parentProviderNamespace}/{parentResourceType}/{parentResourceName}/providers/Microsoft.Chaos/targets/{targetName}"].get + reason: Not actually a tracked resource, but location property is required to avoid breaking changes + - code: RequestSchemaForTrackedResourcesMustHaveTags + from: openapi.json + where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{parentProviderNamespace}/{parentResourceType}/{parentResourceName}/providers/Microsoft.Chaos/targets/{targetName}"].put + reason: Not actually a tracked resource, but location property is required to avoid breaking changes + - code: TrackedExtensionResourcesAreNotAllowed + from: openapi.json + where: $.paths["/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{parentProviderNamespace}/{parentResourceType}/{parentResourceName}/providers/Microsoft.Chaos/targets/{targetName}"].put + reason: Not actually a tracked resource, but location property is required to avoid breaking changes + - code: TrackedResourcePatchOperation + from: openapi.json + where: $.definitions.Target + reason: Not actually a tracked resource, but location property is required to avoid breaking changes + - code: AvoidAdditionalProperties + from: openapi.json + where: $.definitions.Target.properties.properties + reason: Existing GA-exposed resource which relies on additionalProperties currently. Our RP will release a V2 in the future. + - code: PatchBodyParametersSchema + from: openapi.json + reason: already used in GA api version, fixing it will cause breaking change +``` ### Tag: package-preview-2024-03 @@ -84,11 +116,12 @@ directive: transform: > $["x-ms-client-name"] = "ChaosTargetQuerySelector"; ``` + ### Tag: package-2024-01 These settings apply only when `--tag=package-2024-01` is specified on the command line. -``` yaml $(tag) == 'package-2024-01' +```yaml $(tag) == 'package-2024-01' input-file: - Microsoft.Chaos/stable/2024-01-01/capabilities.json - Microsoft.Chaos/stable/2024-01-01/capabilityTypes.json @@ -140,7 +173,7 @@ directive: These settings apply only when `--tag=package-2023-11` is specified on the command line. -``` yaml $(tag) == 'package-2023-11' +```yaml $(tag) == 'package-2023-11' input-file: - Microsoft.Chaos/stable/2023-11-01/capabilities.json - Microsoft.Chaos/stable/2023-11-01/capabilityTypes.json @@ -192,7 +225,7 @@ directive: These settings apply only when `--tag=package-preview-2023-10` is specified on the command line. -``` yaml $(tag) == 'package-preview-2023-10' +```yaml $(tag) == 'package-preview-2023-10' input-file: - Microsoft.Chaos/preview/2023-10-27-preview/capabilities.json - Microsoft.Chaos/preview/2023-10-27-preview/capabilityTypes.json @@ -245,7 +278,7 @@ directive: These settings apply only when `--tag=package-preview-2023-09` is specified on the command line. -``` yaml $(tag) == 'package-preview-2023-09' +```yaml $(tag) == 'package-preview-2023-09' input-file: - Microsoft.Chaos/preview/2023-09-01-preview/capabilities.json - Microsoft.Chaos/preview/2023-09-01-preview/capabilityTypes.json @@ -297,7 +330,7 @@ directive: These settings apply only when `--tag=package-2023-04-15-preview` is specified on the command line. -``` yaml $(tag) == 'package-2023-04-15-preview' +```yaml $(tag) == 'package-2023-04-15-preview' input-file: - Microsoft.Chaos/preview/2023-04-15-preview/capabilities.json - Microsoft.Chaos/preview/2023-04-15-preview/capabilityTypes.json @@ -311,7 +344,7 @@ input-file: These settings apply only when `--tag=package-2023-04-01-preview` is specified on the command line. -``` yaml $(tag) == 'package-2023-04-01-preview' +```yaml $(tag) == 'package-2023-04-01-preview' input-file: - Microsoft.Chaos/preview/2023-04-01-preview/capabilities.json - Microsoft.Chaos/preview/2023-04-01-preview/capabilityTypes.json @@ -325,7 +358,7 @@ input-file: These settings apply only when `--tag=package-2022-10-01-preview` is specified on the command line. -``` yaml $(tag) == 'package-2022-10-01-preview' +```yaml $(tag) == 'package-2022-10-01-preview' directive: - suppress: R3026 reason: Patch is not implemented in this version. @@ -345,7 +378,7 @@ input-file: These settings apply only when `--tag=package-2022-07-01-preview` is specified on the command line. -``` yaml $(tag) == 'package-2022-07-01-preview' +```yaml $(tag) == 'package-2022-07-01-preview' directive: - suppress: R3026 reason: Patch is not implemented in this version. @@ -365,7 +398,7 @@ input-file: These settings apply only when `--tag=package-2021-09-15-preview` is specified on the command line. -``` yaml $(tag) == 'package-2021-09-15-preview' +```yaml $(tag) == 'package-2021-09-15-preview' directive: - suppress: R3026 reason: Patch is not implemented in this version. @@ -390,7 +423,7 @@ input-file: This section describes what SDK should be generated by the automatic system. This is not used by Autorest itself. -``` yaml $(swagger-to-sdk) +```yaml $(swagger-to-sdk) swagger-to-sdk: - repo: azure-sdk-for-python - repo: azure-sdk-for-java @@ -423,7 +456,7 @@ See configuration in [readme.csharp.md](./readme.csharp.md) ## Suppression -``` yaml +```yaml directive: - suppress: TopLevelResourcesListBySubscription where: $.definitions.target @@ -436,7 +469,7 @@ directive: where: $.definitions.target from: targets.json reason: |- - we defined the toplevelresourcelistbysubscription here: + we defined the the top level resource list here: https://github.com/mariohdez/azure-rest-api-specs/blob/5a870f3163ae6e9cc5ed33d40cfff61764050213/specification/chaos/resource-manager/Microsoft.Chaos/preview/2021-09-15-preview/targets.json#L37 - suppress: EnumInsteadOfBoolean