From 708e336e817bb65c1da5068d3fdfc827b71b076d Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Wed, 7 Jan 2026 16:50:43 +0800 Subject: [PATCH 01/66] all converted --- .../extensionTypes/ExtensionType.tsp | 194 +++ .../ExtensionTypeVersionForReleaseTrain.tsp | 209 +++ .../extensionTypes/back-compatible.tsp | 23 + .../2024-11-01-preview/GetExtensionType.json | 50 + .../GetExtensionTypeByLocation.json | 47 + .../GetExtensionTypeVersion.json | 75 + .../GetExtensionTypeVersionByLocation.json | 72 + .../ListExtensionTypeVersions.json | 137 ++ .../ListExtensionTypeVersionsByLocation.json | 135 ++ .../ListExtensionTypes.json | 58 + .../ListExtensionTypesByLocation.json | 56 + .../extensionTypes/main.tsp | 43 + .../extensionTypes/models.tsp | 171 ++ .../extensionTypes/tspconfig.yaml | 13 + .../extensions/Extension.tsp | 131 ++ .../extensions/back-compatible.tsp | 14 + .../examples/2024-11-01/CreateExtension.json | 113 ++ .../2024-11-01/CreateExtensionWithPlan.json | 108 ++ .../examples/2024-11-01/DeleteExtension.json | 24 + .../examples/2024-11-01/GetExtension.json | 51 + .../GetExtensionAsyncOperationStatus.json | 26 + .../2024-11-01/GetExtensionWithPlan.json | 56 + .../examples/2024-11-01/ListExtensions.json | 119 ++ .../examples/2024-11-01/PatchExtension.json | 77 + .../extensions/main.tsp | 42 + .../extensions/models.tsp | 369 +++++ .../extensions/tspconfig.yaml | 13 + .../fluxConfigurations/FluxConfiguration.tsp | 125 ++ .../fluxConfigurations/back-compatible.tsp | 20 + .../2025-04-01/CreateFluxConfiguration.json | 405 +++++ .../CreateFluxConfigurationWithBucket.json | 305 ++++ ...ateFluxConfigurationWithOCIRepository.json | 306 ++++ .../CreateFluxConfigurationWithProvider.json | 406 +++++ .../2025-04-01/DeleteFluxConfiguration.json | 25 + .../2025-04-01/GetFluxConfiguration.json | 176 ++ ...FluxConfigurationAsyncOperationStatus.json | 26 + .../2025-04-01/ListFluxConfigurations.json | 216 +++ .../2025-04-01/PatchFluxConfiguration.json | 266 +++ .../fluxConfigurations/main.tsp | 42 + .../fluxConfigurations/models.tsp | 1422 +++++++++++++++++ .../fluxConfigurations/tspconfig.yaml | 13 + .../operations/back-compatible.tsp | 6 + .../2025-04-01/ListAsyncOperationStatus.json | 35 + .../examples/2025-04-01/OperationsList.json | 158 ++ .../operations/main.tsp | 44 + .../operations/models.tsp | 100 ++ .../operations/routes.tsp | 52 + .../operations/tspconfig.yaml | 13 + ...ubernetesConfigurationPrivateLinkScope.tsp | 86 + .../PrivateEndpointConnection.tsp | 63 + .../privateLinkScopes/PrivateLinkResource.tsp | 45 + .../privateLinkScopes/back-compatible.tsp | 38 + .../PrivateEndpointConnectionDelete.json | 15 + .../PrivateEndpointConnectionGet.json | 31 + .../PrivateEndpointConnectionList.json | 50 + .../PrivateEndpointConnectionUpdate.json | 40 + ...rivateLinkScopePrivateLinkResourceGet.json | 33 + ...teLinkScopePrivateLinkResourceListGet.json | 36 + .../PrivateLinkScopesCreate.json | 81 + .../PrivateLinkScopesDelete.json | 14 + .../PrivateLinkScopesGet.json | 45 + .../PrivateLinkScopesList.json | 60 + .../PrivateLinkScopesListByResourceGroup.json | 80 + .../PrivateLinkScopesUpdate.json | 88 + .../PrivateLinkScopesUpdateTagsOnly.json | 54 + .../privateLinkScopes/main.tsp | 43 + .../privateLinkScopes/models.tsp | 135 ++ .../privateLinkScopes/tspconfig.yaml | 13 + 68 files changed, 7637 insertions(+) create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionType.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeByLocation.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersion.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersionByLocation.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersions.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersionsByLocation.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypes.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypesByLocation.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/back-compatible.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtension.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtensionWithPlan.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/DeleteExtension.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtension.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionAsyncOperationStatus.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionWithPlan.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/ListExtensions.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/PatchExtension.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/main.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfiguration.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithBucket.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithOCIRepository.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithProvider.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/DeleteFluxConfiguration.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfiguration.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfigurationAsyncOperationStatus.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/ListFluxConfigurations.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/PatchFluxConfiguration.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/main.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/ListAsyncOperationStatus.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/OperationsList.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/tspconfig.yaml create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateLinkResource.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionDelete.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionGet.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionList.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionUpdate.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceGet.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceListGet.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesCreate.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesDelete.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesGet.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesList.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesListByResourceGroup.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdate.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdateTagsOnly.json create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/main.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/models.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp new file mode 100644 index 000000000000..ecb8b52087c0 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp @@ -0,0 +1,194 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.KubernetesConfiguration; +/** + * The Extension Type object. + */ +@subscriptionResource +model ExtensionType + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = ExtensionType, + KeyName = "extensionTypeName", + SegmentName = "extensionTypes", + NamePattern = "^[a-zA-Z][a-zA-Z0-9-_]*$" + >; +} + +alias ExtensionTypeOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.KubernetesConfiguration"; + + ...LocationParameter; + }, + {}, + { + /** Name of the Extension Type. */ + @path + @segment("extensionTypes") + @key + @pattern("^[a-zA-Z][a-zA-Z0-9-_]*$") + extensionTypeName: string; + } +>; + +@armResourceOperations +interface ExtensionTypes { + /** + * Get an extension type for the location. + */ + locationGet is ExtensionTypeOps.Read; + + /** + * List all Extension Types for the location. + */ + locationList is ExtensionTypeOps.List< + ExtensionType, + Parameters = { + /** + * Filter results by Publisher ID of a marketplace extension type + */ + @query("publisherId") + publisherId?: string; + + /** + * Filter results by Offer or Product ID of a marketplace extension type + */ + @query("offerId") + offerId?: string; + + /** + * Filter results by Plan ID of a marketplace extension type + */ + @query("planId") + planId?: string; + + /** + * Filter results by release train (default value is stable) + */ + @query("releaseTrain") + releaseTrain?: string; + + /** + * Filter results by the cluster type for extension types + */ + @query("clusterType") + clusterType?: string; + }, + Response = ArmResponse + >; +} +alias ExtensionTypeOperationGroupOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + ...ResourceGroupParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "clusterRp"; + + /** The name of the kubernetes cluster. */ + @path + @segment("{clusterResourceName}") + @key + @pattern("^.*") + clusterName: string; + }, + { + ...Extension.ExtensionProviderNamespace; + }, + { + ...Extension.ExtensionProviderNamespace; + + /** Name of the Extension Type. */ + @path + @segment("extensionTypes") + @key + @pattern("^[a-zA-Z][a-zA-Z0-9-_]*$") + extensionTypeName: string; + } +>; + +@armResourceOperations +interface ExtensionTypeOperationGroup { + /** + * Get an Extension Type installable to the cluster based region and type for the cluster. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("ExtensionTypes_Get") + get is ExtensionTypeOperationGroupOps.Read< + ExtensionType, + Parameters = { + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. + */ + @pattern("^[a-zA-Z]*$") + @path + clusterResourceName: string; + } + >; + + /** + * List installable Extension Types for the cluster based region and type for the cluster. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("ExtensionTypes_List") + list is ExtensionTypeOperationGroupOps.List< + ExtensionType, + Parameters = { + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. + */ + @pattern("^[a-zA-Z]*$") + @path + clusterResourceName: string; + + /** + * Filter results by Publisher ID of a marketplace extension type + */ + @query("publisherId") + publisherId?: string; + + /** + * Filter results by Offer or Product ID of a marketplace extension type + */ + @query("offerId") + offerId?: string; + + /** + * Filter results by Plan ID of a marketplace extension type + */ + @query("planId") + planId?: string; + + /** + * Filter results by release train (default value is stable) + */ + @query("releaseTrain") + releaseTrain?: string; + }, + Response = ArmResponse + >; +} + +@@doc(ExtensionType.name, "Name of the Extension Type."); +@@doc(ExtensionType.properties, ""); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp new file mode 100644 index 000000000000..224c46efab1f --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp @@ -0,0 +1,209 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./ExtensionType.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.KubernetesConfiguration; +/** + * The Extension Type Version object. + */ +@subscriptionResource +@parentResource(ExtensionType) +model ExtensionTypeVersionForReleaseTrain + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = ExtensionTypeVersionForReleaseTrain, + KeyName = "versionNumber", + SegmentName = "versions", + NamePattern = "" + >; +} + +alias ExtensionTypeVersionForReleaseTrainOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "Microsoft.KubernetesConfiguration"; + + ...LocationParameter; + + /** Name of the Extension Type. */ + @path + @segment("extensionTypes") + @key + @pattern("^[a-zA-Z][a-zA-Z0-9-_]*$") + extensionTypeName: string; + }, + {}, + { + /** Version number of the Extension Type. */ + @path + @segment("versions") + @key + versionNumber: string; + } +>; + +@armResourceOperations +interface ExtensionTypeVersionForReleaseTrains { + /** + * Get details of a version for an extension type and location + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("ExtensionTypes_GetVersion") + getVersion is ExtensionTypeVersionForReleaseTrainOps.Read; + + /** + * List the versions for an extension type and location. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("ExtensionTypes_ListVersions") + listVersions is ExtensionTypeVersionForReleaseTrainOps.List< + ExtensionTypeVersionForReleaseTrain, + Parameters = { + /** + * Filter results by release train (default value is stable) + */ + @query("releaseTrain") + releaseTrain?: string; + + /** + * Filter results by the cluster type for extension types + */ + @query("clusterType") + clusterType?: string; + + /** + * Filter results by the major version of an extension type + */ + @query("majorVersion") + majorVersion?: string; + + /** + * Filter results by only the latest version (based on other query parameters) + */ + @query("showLatest") + showLatest?: boolean; + }, + Response = ArmResponse + >; +} +alias ExtensionTypeVersionForReleaseTrainOperationGroupOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + ...ResourceGroupParameter; + + /** the provider namespace */ + @path + @segment("providers") + @key + providerNamespace: "clusterRp"; + + /** The name of the kubernetes cluster. */ + @path + @segment("{clusterResourceName}") + @key + @pattern("^.*") + clusterName: string; + }, + { + ...Extension.ExtensionProviderNamespace; + + /** Name of the Extension Type. */ + @path + @segment("extensionTypes") + @key + @pattern("^[a-zA-Z][a-zA-Z0-9-_]*$") + extensionTypeName: string; + }, + { + ...Extension.ExtensionProviderNamespace; + + /** Name of the Extension Type. */ + @path + @segment("extensionTypes") + @key + @pattern("^[a-zA-Z][a-zA-Z0-9-_]*$") + extensionTypeName: string; + + /** Version number of the Extension Type. */ + @path + @segment("versions") + @key + versionNumber: string; + } +>; + +@armResourceOperations +interface ExtensionTypeVersionForReleaseTrainOperationGroup { + /** + * Get details of a version for an Extension Type installable to the cluster. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("ExtensionTypes_ClusterGetVersion") + clusterGetVersion is ExtensionTypeVersionForReleaseTrainOperationGroupOps.Read< + ExtensionTypeVersionForReleaseTrain, + Parameters = { + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. + */ + @pattern("^[a-zA-Z]*$") + @path + clusterResourceName: string; + } + >; + + /** + * List the version for an Extension Type installable to the cluster. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("ExtensionTypes_ClusterListVersions") + clusterListVersions is ExtensionTypeVersionForReleaseTrainOperationGroupOps.List< + ExtensionTypeVersionForReleaseTrain, + Parameters = { + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. + */ + @pattern("^[a-zA-Z]*$") + @path + clusterResourceName: string; + + /** + * Filter results by release train (default value is stable) + */ + @query("releaseTrain") + releaseTrain?: string; + + /** + * Filter results by the major version of an extension type + */ + @query("majorVersion") + majorVersion?: string; + + /** + * Filter results by only the latest version (based on other query parameters) + */ + @query("showLatest") + showLatest?: boolean; + }, + Response = ArmResponse + >; +} + +@@doc(ExtensionTypeVersionForReleaseTrain.name, + "Version number of the Extension Type." +); +@@doc(ExtensionTypeVersionForReleaseTrain.properties, ""); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp new file mode 100644 index 000000000000..54fa81c6baa5 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp @@ -0,0 +1,23 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.KubernetesConfiguration; + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(ClusterScopeSettings.properties); + +@@clientLocation(ExtensionTypeOperationGroup.get, ExtensionTypes); +@@clientLocation(ExtensionTypeOperationGroup.list, ExtensionTypes); + +@@clientLocation(ExtensionTypeVersionForReleaseTrains.getVersion, + ExtensionTypes +); +@@clientLocation(ExtensionTypeVersionForReleaseTrains.listVersions, + ExtensionTypes +); +@@clientLocation(ExtensionTypeVersionForReleaseTrainOperationGroup.clusterGetVersion, + ExtensionTypes +); +@@clientLocation(ExtensionTypeVersionForReleaseTrainOperationGroup.clusterListVersions, + ExtensionTypes +); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionType.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionType.json new file mode 100644 index 000000000000..f2507c0fc1c2 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionType.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "clusterName": "my-cluster", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extensionTypeName": "my-extension-type", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the extension type", + "body": { + "name": "bbbb", + "type": "cccc", + "id": "aaaa", + "properties": { + "description": "My extension type!", + "isManagedIdentityRequired": true, + "isSystemExtension": false, + "planInfo": { + "offerId": "3333333", + "planId": "222222", + "publisherId": "111111" + }, + "publisher": "Microsoft", + "supportedClusterTypes": [ + "connectedClusters" + ], + "supportedScopes": { + "clusterScopeSettings": { + "name": "bbbbbbbbbbbbb", + "type": "ccccccccccccccccccccccccc", + "id": "aaaaaaaaaaaaaaaaaa", + "properties": { + "allowMultipleInstances": true, + "defaultReleaseNamespace": "kube-system" + } + }, + "defaultScope": "cluster" + } + } + }, + "headers": {} + } + }, + "operationId": "ExtensionTypes_Get", + "title": "Get Extension Types" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeByLocation.json new file mode 100644 index 000000000000..99f1c7f67608 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeByLocation.json @@ -0,0 +1,47 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "extensionTypeName": "extensionType1", + "location": "westus2", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the extension type", + "body": { + "name": "bbbb", + "type": "cccc", + "id": "aaaa", + "properties": { + "description": "My extension type!", + "isManagedIdentityRequired": true, + "isSystemExtension": false, + "planInfo": { + "offerId": "myOfferId", + "planId": "myPlanId", + "publisherId": "myPublisherId" + }, + "publisher": "Microsoft", + "supportedClusterTypes": [ + "connectedClusters" + ], + "supportedScopes": { + "clusterScopeSettings": { + "name": "bbbbbbbbbbbbb", + "type": "ccccccccccccccccccccccccc", + "id": "aaaaaaaaaaaaaaaaaa", + "properties": { + "allowMultipleInstances": true, + "defaultReleaseNamespace": "kube-system" + } + }, + "defaultScope": "cluster" + } + } + }, + "headers": {} + } + }, + "operationId": "ExtensionTypes_LocationGet", + "title": "Get Extension Type" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersion.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersion.json new file mode 100644 index 000000000000..03f81d53ea03 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersion.json @@ -0,0 +1,75 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "clusterName": "my-cluster", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extensionTypeName": "my-extension-type", + "resourceGroupName": "rg1", + "subscriptionId": "subId1", + "versionNumber": "v1.3.2" + }, + "responses": { + "200": { + "description": "Versions for the Extension Type", + "body": { + "name": "bbbb", + "type": "cccc", + "id": "aaaa", + "properties": { + "supportedClusterTypes": [ + "connectedCluster" + ], + "unsupportedKubernetesVersions": { + "appliances": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [ + "1.18..1.21" + ] + } + ], + "connectedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], + "unsupportedVersions": [ + ">1.22" + ] + } + ], + "managedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ], + "provisionedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ] + }, + "version": "1.1.0" + } + }, + "headers": {} + } + }, + "operationId": "ExtensionTypes_ClusterGetVersion", + "title": "List Extension Type Versions" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersionByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersionByLocation.json new file mode 100644 index 000000000000..a6067e188e46 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersionByLocation.json @@ -0,0 +1,72 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "extensionTypeName": "extensionType1", + "location": "westus", + "subscriptionId": "subId1", + "versionNumber": "1.20.0" + }, + "responses": { + "200": { + "description": "Versions for the Extension Type", + "body": { + "name": "bbbb", + "type": "cccc", + "id": "aaaa", + "properties": { + "supportedClusterTypes": [ + "connectedCluster" + ], + "unsupportedKubernetesVersions": { + "appliances": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [ + "1.18..1.21" + ] + } + ], + "connectedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], + "unsupportedVersions": [ + ">1.22" + ] + } + ], + "managedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ], + "provisionedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ] + }, + "version": "1.1.0" + } + }, + "headers": {} + } + }, + "operationId": "ExtensionTypes_GetVersion", + "title": "List Extension Type Versions" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersions.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersions.json new file mode 100644 index 000000000000..6300d9f5f56c --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersions.json @@ -0,0 +1,137 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "clusterName": "my-cluster", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extensionTypeName": "my-extension-type", + "majorVersion": "2", + "releaseTrain": "stable", + "resourceGroupName": "rg1", + "showLatest": true, + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Versions for the Extension Type", + "body": { + "nextLink": null, + "value": [ + { + "name": "bbbb", + "type": "cccc", + "id": "aaaa", + "properties": { + "supportedClusterTypes": [ + "connectedCluster" + ], + "unsupportedKubernetesVersions": { + "appliances": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [ + "1.18..1.21" + ] + } + ], + "connectedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], + "unsupportedVersions": [ + ">1.22" + ] + } + ], + "managedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ], + "provisionedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ] + }, + "version": "1.1.0" + } + }, + { + "name": "bbbb", + "type": "cccc", + "id": "aaaa", + "properties": { + "supportedClusterTypes": [ + "connectedCluster" + ], + "unsupportedKubernetesVersions": { + "appliances": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [ + "1.18..1.21" + ] + } + ], + "connectedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], + "unsupportedVersions": [ + ">1.22" + ] + } + ], + "managedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ], + "provisionedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ] + }, + "version": "1.2.0" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "ExtensionTypes_ClusterListVersions", + "title": "List Extension Type Versions" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersionsByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersionsByLocation.json new file mode 100644 index 000000000000..261bd4b9e753 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersionsByLocation.json @@ -0,0 +1,135 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "clusterType": "connectedCluster", + "extensionTypeName": "extensionType1", + "location": "westus", + "majorVersion": "2", + "releaseTrain": "stable", + "showLatest": true, + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Versions for the Extension Type", + "body": { + "nextLink": null, + "value": [ + { + "name": "bbbb", + "type": "cccc", + "id": "aaaa", + "properties": { + "supportedClusterTypes": [ + "connectedCluster" + ], + "unsupportedKubernetesVersions": { + "appliances": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [ + "1.18..1.21" + ] + } + ], + "connectedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], + "unsupportedVersions": [ + ">1.22" + ] + } + ], + "managedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ], + "provisionedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ] + }, + "version": "1.1.0" + } + }, + { + "name": "bbbb", + "type": "cccc", + "id": "aaaa", + "properties": { + "supportedClusterTypes": [ + "connectedCluster" + ], + "unsupportedKubernetesVersions": { + "appliances": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [ + "1.18..1.21" + ] + } + ], + "connectedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], + "unsupportedVersions": [ + ">1.22" + ] + } + ], + "managedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ], + "provisionedCluster": [ + { + "distributions": [ + "AKS" + ], + "unsupportedVersions": [] + } + ] + }, + "version": "1.2.0" + } + } + ] + }, + "headers": {} + } + }, + "operationId": "ExtensionTypes_ListVersions", + "title": "List Extension Type Versions" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypes.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypes.json new file mode 100644 index 000000000000..b15d15686605 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypes.json @@ -0,0 +1,58 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "clusterName": "my-cluster", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "offerId": "myOfferId", + "planId": "myPlanId", + "publisherId": "myPublisherId", + "releaseTrain": "stable", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the extension types registered for the given region", + "body": { + "nextLink": null, + "value": [ + { + "name": "bbbb", + "type": "cccc", + "id": "aaaa", + "properties": { + "description": "My extension type!", + "isManagedIdentityRequired": true, + "isSystemExtension": false, + "planInfo": { + "offerId": "myOfferId", + "planId": "myPlanId", + "publisherId": "myPublisherId" + }, + "publisher": "Microsoft", + "supportedClusterTypes": [ + "connectedClusters" + ], + "supportedScopes": { + "clusterScopeSettings": { + "name": "bbbbbbbbbbbbb", + "type": "ccccccccccccccccccccccccc", + "id": "aaaaaaaaaaaaaaaaaa", + "properties": { + "allowMultipleInstances": true, + "defaultReleaseNamespace": "kube-system" + } + }, + "defaultScope": "cluster" + } + } + } + ] + }, + "headers": {} + } + }, + "operationId": "ExtensionTypes_List", + "title": "Get Extension Types" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypesByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypesByLocation.json new file mode 100644 index 000000000000..21b9d369042b --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypesByLocation.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "clusterType": "connectedCluster", + "location": "westus2", + "offerId": "myOfferId", + "planId": "myPlanId", + "publisherId": "myPublisherId", + "releaseTrain": "stable", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the extension types registered for the given region", + "body": { + "nextLink": null, + "value": [ + { + "name": "bbbb", + "type": "cccc", + "id": "aaaa", + "properties": { + "description": "My extension type!", + "isManagedIdentityRequired": true, + "isSystemExtension": false, + "planInfo": { + "offerId": "myOfferId", + "planId": "myPlanId", + "publisherId": "myPublisherId" + }, + "publisher": "Microsoft", + "supportedClusterTypes": [ + "connectedClusters" + ], + "supportedScopes": { + "clusterScopeSettings": { + "name": "bbbbbbbbbbbbb", + "type": "ccccccccccccccccccccccccc", + "id": "aaaaaaaaaaaaaaaaaa", + "properties": { + "allowMultipleInstances": true, + "defaultReleaseNamespace": "kube-system" + } + }, + "defaultScope": "cluster" + } + } + } + ] + }, + "headers": {} + } + }, + "operationId": "ExtensionTypes_LocationList", + "title": "List Extension Types" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp new file mode 100644 index 000000000000..1798c8e94942 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp @@ -0,0 +1,43 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.12 + * Date: 2026-01-07T08:37:34.332Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./ExtensionType.tsp"; +import "./ExtensionTypeVersionForReleaseTrain.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * KubernetesConfiguration Extension Types Client + */ +@armProviderNamespace +@service(#{ title: "ExtensionTypesClient" }) +@versioned(Versions) +// FIXME: Common type version v2 is not supported for now. Set to v3. +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) +namespace Microsoft.KubernetesConfiguration; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2024-11-01-preview API version. + */ + v2024_11_01_preview: "2024-11-01-preview", +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp new file mode 100644 index 000000000000..559af11f7b49 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp @@ -0,0 +1,171 @@ +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; + +namespace Microsoft.KubernetesConfiguration; + +/** + * List Extension Types. It contains a list of ExtensionType objects and a URL link to get the next set of results. + */ +model ExtensionTypesList is Azure.Core.Page; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" +model ExtensionTypeProperties { + /** + * Is this Extension Type a system extension. + */ + isSystemExtension?: boolean; + + /** + * Should an identity for this cluster resource be created + */ + isManagedIdentityRequired?: boolean; + + /** + * Description of the extension type + */ + description?: string; + + /** + * Name of the publisher for the Extension Type + */ + publisher?: string; + + /** + * Plan information only for the Marketplace Extension Type. + */ + planInfo?: ExtensionTypePropertiesPlanInfo; + + /** + * Cluster Types supported for this Extension Type. + */ + supportedClusterTypes?: string[]; + + /** + * Supported Kubernetes Scopes for this Extension Type. + */ + supportedScopes?: ExtensionTypePropertiesSupportedScopes; +} + +/** + * Plan information only for the Marketplace Extension Type. + */ +model ExtensionTypePropertiesPlanInfo { + /** + * Publisher ID of the Marketplace Extension Type. + */ + publisherId?: string; + + /** + * Plan ID of the Marketplace Extension Type. + */ + planId?: string; + + /** + * Offer or Product ID of the Marketplace Extension Type. + */ + offerId?: string; +} + +/** + * Supported Kubernetes Scopes for this Extension Type. + */ +model ExtensionTypePropertiesSupportedScopes { + /** + * The default scope of the extension type. This scope will be used if the user does not provide a scope while creating an extension. + */ + defaultScope?: string; + + /** + * Extension scope settings + */ + clusterScopeSettings?: ClusterScopeSettings; +} + +/** + * Extension scope settings + */ +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +model ClusterScopeSettings + extends Azure.ResourceManager.CommonTypes.ProxyResource { + /** + * Extension scope settings + */ + properties?: ClusterScopeSettingsProperties; +} + +/** + * Extension scope settings + */ +model ClusterScopeSettingsProperties { + /** + * Describes if multiple instances of the extension are allowed + */ + allowMultipleInstances?: boolean; + + /** + * Default extension release namespace + */ + defaultReleaseNamespace?: string; +} + +/** + * List Extension Type Versions. It contains a list of ExtensionTypeVersionForReleaseTrain objects. + */ +model ExtensionTypeVersionsList + is Azure.Core.Page; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" +model ExtensionTypeVersionForReleaseTrainProperties { + /** + * The version number for the extension type + */ + version?: string; + + /** + * The list of supported Kubernetes cluster versions for this extension type + */ + unsupportedKubernetesVersions?: ExtensionTypeVersionForReleaseTrainPropertiesUnsupportedKubernetesVersions; + + /** + * A list of supported cluster types for this version of the Extension Type + */ + supportedClusterTypes?: string[]; +} + +/** + * The list of supported Kubernetes cluster versions for this extension type + */ +model ExtensionTypeVersionForReleaseTrainPropertiesUnsupportedKubernetesVersions { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + connectedCluster?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + appliances?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + provisionedCluster?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + managedCluster?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; +} + +/** + * The list of Kubernetes Distribution and Versions that are not supported by this version of this Extension Type + */ +model ExtensionTypeVersionUnsupportedKubernetesMatrixItem { + /** + * The list of Kubernetes Cluster Distribution Names not supported + */ + distributions?: string[]; + + /** + * The list of Kubernetes Versions not supported by the list of Kubernetes Cluster Distribution names in this object + */ + unsupportedVersions?: string[]; +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml new file mode 100644 index 000000000000..5f32e374a78e --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -0,0 +1,13 @@ +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/extensionTypes.json" + emit-lro-options: "all" + examples-dir: "{project-root}/examples" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp new file mode 100644 index 000000000000..4cd5036ff0a9 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp @@ -0,0 +1,131 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + + +namespace Microsoft.KubernetesConfiguration; +/** +* The Extension object. +*/ +model Extension is Azure.ResourceManager.ProxyResource { +...ResourceNameParameter +/** +* Identity of the Extension resource +*/ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" +"identity"?: Azure.ResourceManager.CommonTypes.Identity; +...Azure.ResourceManager.ResourcePlanProperty +} + + + +alias {clusterResourceName}ExternalResource = Extension.ExternalResource<"{clusterRp}" + , "{clusterResourceName}", "{clusterName}">; + +@armResourceOperations +interface Extensions { +/** +* Gets Kubernetes Cluster Extension. +*/ +get is ArmResourceRead; + + +/** +* Create a new Kubernetes Cluster Extension. +*/ +create is ArmResourceCreateOrReplaceAsync; + + +/** +* Patch an existing Kubernetes Cluster Extension. +*/ +@patch(#{ implicitOptionality: false }) +#suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" +update is ArmCustomPatchAsync | ArmAcceptedLroResponse & Azure.Core.Foundations.RetryAfterHeader> & { @bodyRoot +"_": Extension; } + >; + + +/** +* Delete a Kubernetes Cluster Extension. This will cause the Agent to Uninstall the extension from the cluster. +*/ +#suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" +delete is ArmResourceDeleteWithoutOkAsync | ArmDeletedNoContentResponse + >; + + +/** +* List all Extensions in the cluster. +*/ +list is ArmResourceListByParent + >; + + +/** +* Get Async Operation status +*/ +#suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" +@operationId("OperationStatus_Get") +@get +@action("{operationId}") +operationStatusGet is ArmResourceActionSync, Parameters = { /** +* The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. +*/ +@pattern("^[a-zA-Z]*$") +@path +"clusterResourceName": string, +/** +* operation Id +*/ +@path +"operationId": string }>; + + +} + + +@@doc(Extension.name, "Name of the Extension.") +@@doc(Extension.properties, "Properties of an Extension resource") +@@doc(Extensions.`create`::parameters.resource, "Properties necessary to Create an Extension."); +@@doc(Extensions.`update`::parameters.properties, "Properties to Patch in an existing Extension."); \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/back-compatible.tsp new file mode 100644 index 000000000000..8e03903b24fe --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/back-compatible.tsp @@ -0,0 +1,14 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.KubernetesConfiguration; + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(PatchExtension.properties); + +@@clientName(Extensions.create::parameters.resource, "extension"); +@@clientName(Extensions.update::parameters.properties, "patchExtension"); +@@clientLocation(Extensions.operationStatusGet, "OperationStatus"); +@@clientName(Extensions.operationStatusGet, "Get"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(Extension.properties); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtension.json new file mode 100644 index 000000000000..842e0d910b42 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtension.json @@ -0,0 +1,113 @@ +{ + "parameters": { + "api-version": "2024-11-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extension": { + "properties": { + "autoUpgradeMinorVersion": true, + "configurationProtectedSettings": { + "omsagent.secret.key": "secretKeyValue01" + }, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "extensionType": "azuremonitor-containers", + "releaseTrain": "Preview", + "scope": { + "cluster": { + "releaseNamespace": "kube-system" + } + } + } + }, + "extensionName": "ClusterMonitor", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the Kubernetes Extension's current status.", + "body": { + "name": "ClusterMonitor", + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", + "properties": { + "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": "0.1.4", + "extensionType": "azuremonitor-containers", + "isSystemExtension": false, + "provisioningState": "Succeeded", + "releaseTrain": "Preview", + "scope": { + "cluster": { + "releaseNamespace": "kube-system" + } + }, + "statuses": [], + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + }, + "201": { + "description": "Details of the Kubernetes Extension's current status.", + "body": { + "name": "ClusterMonitor", + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", + "properties": { + "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": null, + "extensionType": "azuremonitor-containers", + "isSystemExtension": false, + "provisioningState": "Creating", + "releaseTrain": "Preview", + "scope": { + "cluster": { + "releaseNamespace": "kube-system" + } + }, + "statuses": [], + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId?api-version=2024-11-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + } + }, + "operationId": "Extensions_Create", + "title": "Create Extension" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtensionWithPlan.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtensionWithPlan.json new file mode 100644 index 000000000000..f89b12875af9 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtensionWithPlan.json @@ -0,0 +1,108 @@ +{ + "parameters": { + "api-version": "2024-11-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extension": { + "plan": { + "name": "azure-vote-standard", + "product": "azure-vote-standard-offer-id", + "publisher": "Microsoft" + }, + "properties": { + "autoUpgradeMinorVersion": true, + "extensionType": "azure-vote", + "releaseTrain": "Preview" + } + }, + "extensionName": "azureVote", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the Kubernetes Extension's current status.", + "body": { + "name": "azureVote", + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", + "plan": { + "name": "azure-vote-standard", + "product": "azure-vote-standard-offer-id", + "publisher": "Microsoft" + }, + "properties": { + "autoUpgradeMinorVersion": true, + "currentVersion": "0.1.4", + "extensionType": "azure-vote", + "isSystemExtension": false, + "provisioningState": "Creating", + "releaseTrain": "Preview", + "scope": { + "cluster": { + "releaseNamespace": "kube-system" + } + }, + "statuses": [], + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote/operations/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + }, + "201": { + "description": "Details of the Kubernetes Extension's current status.", + "body": { + "name": "azureVote", + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", + "plan": { + "name": "azure-vote-standard", + "product": "azure-vote-standard-offer-id", + "publisher": "Microsoft" + }, + "properties": { + "autoUpgradeMinorVersion": true, + "currentVersion": null, + "extensionType": "azure-vote", + "isSystemExtension": false, + "provisioningState": "Creating", + "releaseTrain": "Preview", + "scope": { + "cluster": { + "releaseNamespace": "kube-system" + } + }, + "statuses": [], + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote/operations/operationId?api-version=2024-11-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote/operations/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + } + }, + "operationId": "Extensions_Create", + "title": "Create Extension with Plan" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/DeleteExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/DeleteExtension.json new file mode 100644 index 000000000000..3ff83ebc540e --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/DeleteExtension.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2024-11-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extensionName": "ClusterMonitor", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId?api-version=2024-11-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/{operationId}", + "x-ms-async-operation-timeout": "PT1H" + } + }, + "204": {} + }, + "operationId": "Extensions_Delete", + "title": "Delete Extension" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtension.json new file mode 100644 index 000000000000..8ec5d7f85b12 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtension.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "api-version": "2024-11-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extensionName": "ClusterMonitor", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the Kubernetes Extension's current status.", + "body": { + "name": "ClusterMonitor", + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", + "properties": { + "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": "0.1.4", + "extensionType": "azuremonitor-containers", + "isSystemExtension": false, + "provisioningState": "Succeeded", + "releaseTrain": "Preview", + "scope": { + "cluster": { + "releaseNamespace": "kube-system" + } + }, + "statuses": [], + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": {} + } + }, + "operationId": "Extensions_Get", + "title": "Get Extension" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionAsyncOperationStatus.json new file mode 100644 index 000000000000..df58d08adbe4 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionAsyncOperationStatus.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "operationId": "99999999-9999-9999-9999-999999999999", + "api-version": "2024-11-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extensionName": "ClusterMonitor", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "body": { + "name": "99999999-9999-9999-9999-999999999999", + "error": null, + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/99999999-9999-9999-9999-999999999999", + "properties": {}, + "status": "Succeeded" + }, + "headers": {} + } + }, + "operationId": "OperationStatus_Get", + "title": "ExtensionAsyncOperationStatus Get" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionWithPlan.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionWithPlan.json new file mode 100644 index 000000000000..35748a4210f3 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionWithPlan.json @@ -0,0 +1,56 @@ +{ + "parameters": { + "api-version": "2024-11-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extensionName": "azureVote", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the Kubernetes Extension's current status.", + "body": { + "name": "azureVote", + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", + "plan": { + "name": "azure-vote-standard", + "product": "azure-vote-standard-offer-id", + "publisher": "Microsoft" + }, + "properties": { + "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": "0.1.4", + "extensionType": "azure-vote", + "isSystemExtension": false, + "provisioningState": "Succeeded", + "releaseTrain": "Preview", + "scope": { + "cluster": { + "releaseNamespace": "kube-system" + } + }, + "statuses": [], + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": {} + } + }, + "operationId": "Extensions_Get", + "title": "Get Extension with Plan" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/ListExtensions.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/ListExtensions.json new file mode 100644 index 000000000000..0f07f0b84e38 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/ListExtensions.json @@ -0,0 +1,119 @@ +{ + "parameters": { + "api-version": "2024-11-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "ClusterMonitor", + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", + "properties": { + "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": "0.1.4", + "extensionType": "azuremonitor-containers", + "isSystemExtension": false, + "provisioningState": "Succeeded", + "releaseTrain": "Preview", + "scope": { + "cluster": { + "releaseNamespace": "kube-system" + } + }, + "statuses": [], + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + { + "name": "App1Monitor", + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/BackupVault01", + "properties": { + "autoUpgradeMinorVersion": true, + "configurationSettings": {}, + "currentVersion": "1.0.1", + "extensionType": "Microsoft.RecoveryServices/recoveryVault", + "isSystemExtension": false, + "provisioningState": "Succeeded", + "releaseTrain": "Stable", + "scope": { + "cluster": { + "releaseNamespace": "myKVNamespace" + } + }, + "statuses": [], + "version": null + }, + "systemData": { + "createdAt": "2021-09-08T04:09:23.011Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T04:09:23.011Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + { + "name": "azureVote", + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", + "plan": { + "name": "azure-vote-standard", + "product": "azure-vote-standard-offer-id", + "publisher": "Microsoft" + }, + "properties": { + "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": "0.1.4", + "extensionType": "azure-vote", + "isSystemExtension": false, + "provisioningState": "Succeeded", + "releaseTrain": "Preview", + "scope": { + "cluster": { + "releaseNamespace": "kube-system" + } + }, + "statuses": [], + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + } + ] + } + } + }, + "operationId": "Extensions_List", + "title": "List Extensions" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/PatchExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/PatchExtension.json new file mode 100644 index 000000000000..ffe640eaae68 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/PatchExtension.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "api-version": "2024-11-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extensionName": "ClusterMonitor", + "patchExtension": { + "properties": { + "autoUpgradeMinorVersion": true, + "configurationProtectedSettings": { + "omsagent.secret.key": "secretKeyValue01" + }, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "releaseTrain": "Preview" + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Extension properties from not updating any property values.", + "body": { + "properties": { + "autoUpgradeMinorVersion": true, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "extensionType": "azuremonitor-containers", + "provisioningState": "Succeeded", + "releaseTrain": "Preview", + "scope": { + "cluster": { + "releaseNamespace": "kube-system" + } + }, + "statuses": [], + "version": "0.1.4" + } + } + }, + "202": { + "description": "Extension properties and details of the Patch operation, including AsyncOperation url.", + "body": { + "properties": { + "autoUpgradeMinorVersion": true, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "extensionType": "azuremonitor-containers", + "provisioningState": "Updating", + "releaseTrain": "Preview", + "scope": { + "cluster": { + "releaseNamespace": "kube-system" + } + }, + "statuses": [], + "version": "0.1.4" + } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId?api-version=2024-11-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId", + "x-ms-async-operation-timeout": "PT48H" + } + } + }, + "operationId": "Extensions_Update", + "title": "Update Extension" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/main.tsp new file mode 100644 index 000000000000..1374caa0f67a --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/main.tsp @@ -0,0 +1,42 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.12 + * Date: 2026-01-07T08:37:06.379Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./Extension.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * KubernetesConfiguration Extensions Client + */ +@armProviderNamespace +@service(#{ title: "ExtensionsClient" }) +@versioned(Versions) +// FIXME: Common type version v2 is not supported for now. Set to v3. +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) +namespace Microsoft.KubernetesConfiguration; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2024-11-01 API version. + */ + v2024_11_01: "2024-11-01", +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp new file mode 100644 index 000000000000..093cfc52d250 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp @@ -0,0 +1,369 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@azure-tools/typespec-azure-core"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Microsoft.KubernetesConfiguration; + +/** + * The provisioning state of the resource. + */ +union ProvisioningState { + string, + + /** + * Succeeded + */ + Succeeded: "Succeeded", + + /** + * Failed + */ + Failed: "Failed", + + /** + * Canceled + */ + Canceled: "Canceled", + + /** + * Creating + */ + Creating: "Creating", + + /** + * Updating + */ + Updating: "Updating", + + /** + * Deleting + */ + Deleting: "Deleting", +} + +/** + * Level of the status. + */ +union LevelType { + string, + + /** + * Error + */ + Error: "Error", + + /** + * Warning + */ + Warning: "Warning", + + /** + * Information + */ + Information: "Information", +} + +/** + * The type of identity that created the resource. + */ +union CreatedByType { + string, + + /** + * User + */ + User: "User", + + /** + * Application + */ + Application: "Application", + + /** + * ManagedIdentity + */ + ManagedIdentity: "ManagedIdentity", + + /** + * Key + */ + Key: "Key", +} + +/** + * The identity type. + */ +#suppress "@azure-tools/typespec-azure-core/no-enum" "For backward compatibility" +enum AKSIdentityType { + /** + * SystemAssigned + */ + SystemAssigned, + + /** + * UserAssigned + */ + UserAssigned, +} + +/** + * Properties of an Extension resource + */ +model ExtensionProperties { + /** + * Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types registered with Microsoft.KubernetesConfiguration by the Extension publisher. + */ + extensionType?: string; + + /** + * Flag to note if this extension participates in auto upgrade of minor version, or not. + */ + autoUpgradeMinorVersion?: boolean = true; + + /** + * ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if autoUpgradeMinorVersion is 'true'. + */ + releaseTrain?: string = "Stable"; + + /** + * User-specified version of the extension for this extension to 'pin'. To use 'version', autoUpgradeMinorVersion must be 'false'. + */ + version?: string; + + /** + * Scope at which the extension is installed. + */ + scope?: Scope; + + /** + * Configuration settings, as name-value pairs for configuring this extension. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + configurationSettings?: Record; + + /** + * Configuration settings that are sensitive, as name-value pairs for configuring this extension. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + configurationProtectedSettings?: Record; + + /** + * Currently installed version of the extension. + */ + @visibility(Lifecycle.Read) + currentVersion?: string; + + /** + * Status of installation of this extension. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Status from this extension. + */ + @identifiers(#[]) + statuses?: ExtensionStatus[]; + + /** + * Error information from the Agent - e.g. errors during installation. + */ + @visibility(Lifecycle.Read) + errorInfo?: Azure.ResourceManager.CommonTypes.ErrorDetail; + + /** + * Custom Location settings properties. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + @visibility(Lifecycle.Read) + customLocationSettings?: Record; + + /** + * Uri of the Helm package + */ + @visibility(Lifecycle.Read) + packageUri?: string; + + /** + * Identity of the Extension resource in an AKS cluster + */ + aksAssignedIdentity?: ExtensionPropertiesAksAssignedIdentity; + + /** + * Flag to note if this extension is a system extension + */ + @visibility(Lifecycle.Read) + isSystemExtension?: boolean; +} + +/** + * Scope of the extension. It can be either Cluster or Namespace; but not both. + */ +model Scope { + /** + * Specifies that the scope of the extension is Cluster + */ + cluster?: ScopeCluster; + + /** + * Specifies that the scope of the extension is Namespace + */ + `namespace`?: ScopeNamespace; +} + +/** + * Specifies that the scope of the extension is Cluster + */ +model ScopeCluster { + /** + * Namespace where the extension Release must be placed, for a Cluster scoped extension. If this namespace does not exist, it will be created + */ + releaseNamespace?: string; +} + +/** + * Specifies that the scope of the extension is Namespace + */ +model ScopeNamespace { + /** + * Namespace where the extension will be created for an Namespace scoped extension. If this namespace does not exist, it will be created + */ + targetNamespace?: string; +} + +/** + * Status from the extension. + */ +model ExtensionStatus { + /** + * Status code provided by the Extension + */ + code?: string; + + /** + * Short description of status of the extension. + */ + displayStatus?: string; + + /** + * Level of the status. + */ + level?: LevelType = LevelType.Information; + + /** + * Detailed message of the status from the Extension. + */ + message?: string; + + /** + * DateLiteral (per ISO8601) noting the time of installation status. + */ + time?: string; +} + +/** + * Identity of the Extension resource in an AKS cluster + */ +model ExtensionPropertiesAksAssignedIdentity { + /** + * The principal ID of resource identity. + */ + @visibility(Lifecycle.Read) + principalId?: string; + + /** + * The tenant ID of resource. + */ + @visibility(Lifecycle.Read) + tenantId?: string; + + /** + * The identity type. + */ + type?: AKSIdentityType; +} + +/** + * The Extension Patch Request object. + */ +model PatchExtension { + /** + * Updatable properties of an Extension Patch Request + */ + properties?: PatchExtensionProperties; +} + +/** + * Updatable properties of an Extension Patch Request + */ +model PatchExtensionProperties { + /** + * Flag to note if this extension participates in auto upgrade of minor version, or not. + */ + autoUpgradeMinorVersion?: boolean = true; + + /** + * ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if autoUpgradeMinorVersion is 'true'. + */ + releaseTrain?: string = "Stable"; + + /** + * Version of the extension for this extension, if it is 'pinned' to a specific version. autoUpgradeMinorVersion must be 'false'. + */ + version?: string; + + /** + * Configuration settings, as name-value pairs for configuring this extension. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + configurationSettings?: Record; + + /** + * Configuration settings that are sensitive, as name-value pairs for configuring this extension. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + configurationProtectedSettings?: Record; +} + +/** + * Result of the request to list Extensions. It contains a list of Extension objects and a URL link to get the next set of results. + */ +model ExtensionsList is Azure.Core.Page; + +/** + * The current status of an async operation. + */ +model OperationStatusResult { + /** + * Fully qualified ID for the async operation. + */ + id?: string; + + /** + * Name of the async operation. + */ + name?: string; + + /** + * Operation status. + */ + status: string; + + /** + * Additional information, if available. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + properties?: Record; + + /** + * If present, details of the operation error. + */ + @visibility(Lifecycle.Read) + error?: Azure.ResourceManager.CommonTypes.ErrorDetail; +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml new file mode 100644 index 000000000000..1af9d1469535 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -0,0 +1,13 @@ +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/extensions.json" + emit-lro-options: "all" + examples-dir: "{project-root}/examples" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp new file mode 100644 index 000000000000..d7431ccb3ca6 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp @@ -0,0 +1,125 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + + +namespace Microsoft.KubernetesConfiguration; +/** +* The Flux Configuration object returned in Get & Put response. +*/ +model FluxConfiguration is Azure.ResourceManager.ProxyResource { +...ResourceNameParameter +} + + + +alias {clusterResourceName}ExternalResource = Extension.ExternalResource<"{clusterRp}" + , "{clusterResourceName}", "{clusterName}">; + +@armResourceOperations +interface FluxConfigurations { +/** +* Gets details of the Flux Configuration. +*/ +get is ArmResourceRead; + + +/** +* Create a new Kubernetes Flux Configuration. +*/ +createOrUpdate is ArmResourceCreateOrReplaceAsync; + + +/** +* Update an existing Kubernetes Flux Configuration. +*/ +@patch(#{ implicitOptionality: false }) +#suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" +update is ArmCustomPatchAsync | ArmAcceptedLroResponse & Azure.Core.Foundations.RetryAfterHeader> & { @bodyRoot +"_": FluxConfiguration; } + >; + + +/** +* This will delete the YAML file used to set up the Flux Configuration, thus stopping future sync from the source repo. +*/ +#suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" +delete is ArmResourceDeleteWithoutOkAsync | ArmDeletedNoContentResponse + >; + + +/** +* List all Flux Configurations. +*/ +list is ArmResourceListByParent + >; + + +/** +* Get Async Operation status +*/ +#suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" +@operationId("FluxConfigOperationStatus_Get") +@get +@action("{operationId}") +fluxConfigOperationStatusGet is ArmResourceActionSync, Parameters = { /** +* The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. +*/ +@pattern("^[a-zA-Z]*$") +@path +"clusterResourceName": string, +/** +* operation Id +*/ +@path +"operationId": string }>; + + +} + + +@@doc(FluxConfiguration.name, "Name of the Flux Configuration.") +@@doc(FluxConfiguration.properties, "Properties to create a Flux Configuration resource") +@@doc(FluxConfigurations.`createOrUpdate`::parameters.resource, "Properties necessary to Create a FluxConfiguration."); +@@doc(FluxConfigurations.`update`::parameters.properties, "Properties to Patch in an existing Flux Configuration."); \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp new file mode 100644 index 000000000000..30df81575888 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp @@ -0,0 +1,20 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.KubernetesConfiguration; + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(FluxConfigurationPatch.properties); + +@@clientName(FluxConfigurations.createOrUpdate::parameters.resource, + "fluxConfiguration" +); +@@clientName(FluxConfigurations.update::parameters.properties, + "fluxConfigurationPatch" +); +@@clientLocation(FluxConfigurations.fluxConfigOperationStatusGet, + "FluxConfigOperationStatus" +); +@@clientName(FluxConfigurations.fluxConfigOperationStatusGet, "Get"); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(FluxConfiguration.properties); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfiguration.json new file mode 100644 index 000000000000..eecf940a4afc --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfiguration.json @@ -0,0 +1,405 @@ +{ + "parameters": { + "api-version": "2025-04-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "fluxConfiguration": { + "properties": { + "gitRepository": { + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", + "repositoryRef": { + "branch": "master" + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" + }, + "kustomizations": { + "srs-kustomization1": { + "path": "./test/path", + "dependsOn": [], + "postBuild": { + "substitute": { + "cluster_env": "prod", + "replica_count": "2" + }, + "substituteFrom": [ + { + "name": "cluster-test", + "kind": "ConfigMap", + "optional": true + } + ] + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true + }, + "srs-kustomization2": { + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "postBuild": { + "substituteFrom": [ + { + "name": "cluster-values", + "kind": "ConfigMap", + "optional": true + }, + { + "name": "secret-name", + "kind": "Secret", + "optional": false + } + ] + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false + } + }, + "namespace": "srs-namespace", + "reconciliationWaitDuration": "PT30M", + "scope": "cluster", + "sourceKind": "GitRepository", + "suspend": false, + "waitForReconciliation": true + } + }, + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the Kubernetes Flux Configuration's current status.", + "body": { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", + "properties": { + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": { + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", + "repositoryRef": { + "branch": "master", + "commit": null, + "semver": null, + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" + }, + "kustomizations": { + "srs-kustomization1": { + "name": "srs-kustomization1", + "path": "./test/path", + "dependsOn": [], + "postBuild": { + "substitute": { + "cluster_env": "prod", + "replica_count": "2" + }, + "substituteFrom": [ + { + "name": "cluster-test", + "kind": "ConfigMap", + "optional": true + } + ] + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true + }, + "srs-kustomization2": { + "name": "srs-kustomization2", + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "postBuild": { + "substituteFrom": [ + { + "name": "cluster-values", + "kind": "ConfigMap", + "optional": true + }, + { + "name": "secret-name", + "kind": "Secret", + "optional": false + } + ] + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false + } + }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "GitRepository", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "GitOperationSucceed", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + } + ], + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + }, + "201": { + "description": "Details of the Kubernetes Flux Configuration's current status.", + "body": { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", + "properties": { + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": { + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", + "repositoryRef": { + "branch": "master", + "commit": null, + "semver": null, + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" + }, + "kustomizations": { + "srs-kustomization1": { + "name": "srs-", + "path": "./test/path", + "dependsOn": [], + "postBuild": { + "substitute": { + "cluster_env": "prod", + "replica_count": "2" + }, + "substituteFrom": [ + { + "name": "cluster-test", + "kind": "ConfigMap", + "optional": true + } + ] + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true + }, + "srs-kustomization2": { + "name": "srs-kustomization2", + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "postBuild": { + "substituteFrom": [ + { + "name": "cluster-values", + "kind": "ConfigMap", + "optional": true + }, + { + "name": "secret-name", + "kind": "Secret", + "optional": false + } + ] + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false + } + }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "kind": "GitRepository", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "GitOperationSucceed", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + } + ], + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId?api-version=2025-04-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + } + }, + "operationId": "FluxConfigurations_CreateOrUpdate", + "title": "Create Flux Configuration" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithBucket.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithBucket.json new file mode 100644 index 000000000000..6b1c52eced79 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithBucket.json @@ -0,0 +1,305 @@ +{ + "parameters": { + "api-version": "2025-04-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "fluxConfiguration": { + "properties": { + "bucket": { + "accessKey": "fluxminiotest", + "bucketName": "flux", + "syncIntervalInSeconds": 1000, + "timeoutInSeconds": 1000, + "url": "https://fluxminiotest.az.minio.io" + }, + "kustomizations": { + "srs-kustomization1": { + "path": "./test/path", + "dependsOn": [], + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + }, + "srs-kustomization2": { + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + } + }, + "namespace": "srs-namespace", + "scope": "cluster", + "sourceKind": "Bucket", + "suspend": false + } + }, + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the Kubernetes Flux Configuration's current status.", + "body": { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", + "properties": { + "bucket": { + "accessKey": "fluxminiotest", + "bucketName": "flux", + "syncIntervalInSeconds": 1000, + "timeoutInSeconds": 1000, + "url": "https://fluxminiotest.az.minio.io" + }, + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": null, + "kustomizations": { + "srs-kustomization1": { + "name": "srs-kustomization1", + "path": "./test/path", + "dependsOn": [], + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + }, + "srs-kustomization2": { + "name": "srs-kustomization2", + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + } + }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "", + "scope": "cluster", + "sourceKind": "Bucket", + "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "Bucket", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2022-05-04T07:17:30+00:00", + "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'", + "reason": "Succeeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + } + ], + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + }, + "201": { + "description": "Details of the Kubernetes Flux Configuration's current status.", + "body": { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", + "properties": { + "bucket": { + "accessKey": "fluxminiotest", + "bucketName": "flux", + "syncIntervalInSeconds": 1000, + "timeoutInSeconds": 1000, + "url": "https://fluxminiotest.az.minio.io" + }, + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": null, + "kustomizations": { + "srs-kustomization1": { + "name": "srs-kustomization1", + "path": "./test/path", + "dependsOn": [], + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + }, + "srs-kustomization2": { + "name": "srs-kustomization2", + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + } + }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "", + "scope": "cluster", + "sourceKind": "Bucket", + "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "kind": "Bucket", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2022-05-04T07:17:30+00:00", + "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'", + "reason": "Succeeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + } + ], + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + } + }, + "operationId": "FluxConfigurations_CreateOrUpdate", + "title": "Create Flux Configuration with Bucket Source Kind" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithOCIRepository.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithOCIRepository.json new file mode 100644 index 000000000000..0b54e141b975 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithOCIRepository.json @@ -0,0 +1,306 @@ +{ + "parameters": { + "api-version": "2025-04-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "fluxConfiguration": { + "properties": { + "kustomizations": { + "srs-kustomization1": { + "path": "./test/path", + "dependsOn": [], + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + }, + "srs-kustomization2": { + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + } + }, + "namespace": "srs-namespace", + "ociRepository": { + "serviceAccountName": "testserviceaccount", + "syncIntervalInSeconds": 1000, + "timeoutInSeconds": 1000, + "url": "oci://ghcr.io/stefanprodan/manifests/podinfo" + }, + "scope": "cluster", + "sourceKind": "OCIRepository", + "suspend": false + } + }, + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the Kubernetes Flux Configuration's current status.", + "body": { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", + "properties": { + "azureBlob": null, + "bucket": null, + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": null, + "kustomizations": { + "srs-kustomization1": { + "name": "srs-kustomization1", + "path": "./test/path", + "dependsOn": [], + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + }, + "srs-kustomization2": { + "name": "srs-kustomization2", + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + } + }, + "namespace": "srs-namespace", + "ociRepository": { + "serviceAccountName": "testserviceaccount", + "syncIntervalInSeconds": 1000, + "timeoutInSeconds": 1000, + "url": "oci://ghcr.io/stefanprodan/manifests/podinfo" + }, + "provisioningState": "Succeeded", + "repositoryPublicKey": "", + "scope": "cluster", + "sourceKind": "OCIRepository", + "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "OCIRepository", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2022-05-04T07:17:30+00:00", + "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'", + "reason": "Succeeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + } + ], + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + }, + "201": { + "description": "Details of the Kubernetes Flux Configuration's current status.", + "body": { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", + "properties": { + "azureBlob": null, + "bucket": null, + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": null, + "kustomizations": { + "srs-kustomization1": { + "name": "srs-kustomization1", + "path": "./test/path", + "dependsOn": [], + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + }, + "srs-kustomization2": { + "name": "srs-kustomization2", + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + } + }, + "namespace": "srs-namespace", + "ociRepository": { + "serviceAccountName": "testserviceaccount", + "syncIntervalInSeconds": 1000, + "timeoutInSeconds": 1000, + "url": "oci://ghcr.io/stefanprodan/manifests/podinfo" + }, + "provisioningState": "Succeeded", + "repositoryPublicKey": "", + "scope": "cluster", + "sourceKind": "OCIRepository", + "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "kind": "OCIRepository", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2022-05-04T07:17:30+00:00", + "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'", + "reason": "Succeeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + } + ], + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + } + }, + "operationId": "FluxConfigurations_CreateOrUpdate", + "title": "Create Flux Configuration with OCIRepository Source Kind" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithProvider.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithProvider.json new file mode 100644 index 000000000000..07c6ee60ee3a --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithProvider.json @@ -0,0 +1,406 @@ +{ + "parameters": { + "api-version": "2025-04-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "fluxConfiguration": { + "properties": { + "gitRepository": { + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", + "provider": "Azure", + "repositoryRef": { + "branch": "master" + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://dev.azure.com/org/proj/_git/arc-k8s-demo" + }, + "kustomizations": { + "srs-kustomization1": { + "path": "./test/path", + "dependsOn": [], + "postBuild": { + "substitute": { + "cluster_env": "prod", + "replica_count": "2" + }, + "substituteFrom": [ + { + "name": "cluster-test", + "kind": "ConfigMap", + "optional": true + } + ] + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true + }, + "srs-kustomization2": { + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "postBuild": { + "substituteFrom": [ + { + "name": "cluster-values", + "kind": "ConfigMap", + "optional": true + }, + { + "name": "secret-name", + "kind": "Secret", + "optional": false + } + ] + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false + } + }, + "namespace": "srs-namespace", + "reconciliationWaitDuration": "PT30M", + "scope": "cluster", + "sourceKind": "GitRepository", + "suspend": false, + "waitForReconciliation": true + } + }, + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the Kubernetes Flux Configuration's current status.", + "body": { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", + "properties": { + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": { + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", + "repositoryRef": { + "branch": "master", + "commit": null, + "semver": null, + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" + }, + "kustomizations": { + "srs-kustomization1": { + "name": "srs-kustomization1", + "path": "./test/path", + "dependsOn": [], + "postBuild": { + "substitute": { + "cluster_env": "prod", + "replica_count": "2" + }, + "substituteFrom": [ + { + "name": "cluster-test", + "kind": "ConfigMap", + "optional": true + } + ] + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true + }, + "srs-kustomization2": { + "name": "srs-kustomization2", + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "postBuild": { + "substituteFrom": [ + { + "name": "cluster-values", + "kind": "ConfigMap", + "optional": true + }, + { + "name": "secret-name", + "kind": "Secret", + "optional": false + } + ] + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false + } + }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "GitRepository", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "GitOperationSucceed", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + } + ], + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + }, + "201": { + "description": "Details of the Kubernetes Flux Configuration's current status.", + "body": { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", + "properties": { + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": { + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", + "repositoryRef": { + "branch": "master", + "commit": null, + "semver": null, + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" + }, + "kustomizations": { + "srs-kustomization1": { + "name": "srs-", + "path": "./test/path", + "dependsOn": [], + "postBuild": { + "substitute": { + "cluster_env": "prod", + "replica_count": "2" + }, + "substituteFrom": [ + { + "name": "cluster-test", + "kind": "ConfigMap", + "optional": true + } + ] + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true + }, + "srs-kustomization2": { + "name": "srs-kustomization2", + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "postBuild": { + "substituteFrom": [ + { + "name": "cluster-values", + "kind": "ConfigMap", + "optional": true + }, + { + "name": "secret-name", + "kind": "Secret", + "optional": false + } + ] + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false + } + }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "kind": "GitRepository", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "GitOperationSucceed", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + } + ], + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId?api-version=2025-04-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" + } + } + }, + "operationId": "FluxConfigurations_CreateOrUpdate", + "title": "Create Flux Configuration with Git Repository Provider" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/DeleteFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/DeleteFluxConfiguration.json new file mode 100644 index 000000000000..2e10e7d6666d --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/DeleteFluxConfiguration.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-04-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": {}, + "202": { + "description": "Details of the Kubernetes Flux Configuration's current status.", + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId?api-version=2025-04-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/{operationId}", + "x-ms-async-operation-timeout": "PT1H" + } + }, + "204": {} + }, + "operationId": "FluxConfigurations_Delete", + "title": "Delete Flux Configuration" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfiguration.json new file mode 100644 index 000000000000..01ab95f7a437 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfiguration.json @@ -0,0 +1,176 @@ +{ + "parameters": { + "api-version": "2025-04-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "Details of the Kubernetes Flux Configuration's current status.", + "body": { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", + "properties": { + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": { + "repositoryRef": { + "branch": "master", + "commit": null, + "semver": null, + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" + }, + "kustomizations": { + "srs-kustomization1": { + "name": "srs-kustomization1", + "path": "./test/path", + "dependsOn": [], + "postBuild": { + "substitute": { + "cluster_env": "prod", + "replica_count": "2" + }, + "substituteFrom": [ + { + "name": "cluster-test", + "kind": "ConfigMap", + "optional": true + } + ] + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true + }, + "srs-kustomization2": { + "name": "srs-kustomization2", + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "postBuild": { + "substituteFrom": [ + { + "name": "cluster-values", + "kind": "ConfigMap", + "optional": true + }, + { + "name": "secret-name", + "kind": "Secret", + "optional": false + } + ] + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false + } + }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "GitRepository", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "GitOperationSucceed", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": { + "name": "my-name", + "namespace": "my-namespace" + }, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + } + ], + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + "headers": {} + } + }, + "operationId": "FluxConfigurations_Get", + "title": "Get Flux Configuration" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfigurationAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfigurationAsyncOperationStatus.json new file mode 100644 index 000000000000..58f4f0ee6869 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfigurationAsyncOperationStatus.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "operationId": "99999999-9999-9999-9999-999999999999", + "api-version": "2025-04-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "body": { + "name": "99999999-9999-9999-9999-999999999999", + "error": null, + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/99999999-9999-9999-9999-999999999999", + "properties": {}, + "status": "Succeeded" + }, + "headers": {} + } + }, + "operationId": "FluxConfigOperationStatus_Get", + "title": "FluxConfigurationAsyncOperationStatus Get" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/ListFluxConfigurations.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/ListFluxConfigurations.json new file mode 100644 index 000000000000..3e143d29c897 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/ListFluxConfigurations.json @@ -0,0 +1,216 @@ +{ + "parameters": { + "api-version": "2025-04-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", + "properties": { + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": { + "repositoryRef": { + "branch": "master", + "commit": null, + "semver": null, + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" + }, + "kustomizations": { + "srs-kustomization1": { + "name": "srs-kustomization1", + "path": "./test/path", + "dependsOn": [], + "postBuild": { + "substitute": { + "cluster_env": "prod", + "replica_count": "2" + }, + "substituteFrom": [ + { + "name": "cluster-test", + "kind": "ConfigMap", + "optional": true + } + ] + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true + }, + "srs-kustomization2": { + "name": "srs-kustomization2", + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "postBuild": { + "substituteFrom": [ + { + "name": "cluster-values", + "kind": "ConfigMap", + "optional": true + }, + { + "name": "secret-name", + "kind": "Secret", + "optional": false + } + ] + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false + } + }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "GitRepository", + "statusConditions": null + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "Kustomization", + "statusConditions": null + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "Kustomization", + "statusConditions": null + } + ], + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + }, + { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", + "properties": { + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": { + "repositoryRef": { + "branch": "master", + "commit": null, + "semver": null, + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" + }, + "kustomizations": { + "srs-kustomization1": { + "name": "srs-kustomization1", + "path": "./test/path", + "dependsOn": [], + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + }, + "srs-kustomization2": { + "name": "srs-kustomization2", + "path": "./other/test/path", + "dependsOn": [ + "srs-kustomization1" + ], + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 + } + }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "GitRepository", + "statusConditions": null + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "Kustomization", + "statusConditions": null + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "Kustomization", + "statusConditions": null + } + ], + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" + } + } + ] + } + } + }, + "operationId": "FluxConfigurations_List", + "title": "List Flux Configuration" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/PatchFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/PatchFluxConfiguration.json new file mode 100644 index 000000000000..988e29520e3e --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/PatchFluxConfiguration.json @@ -0,0 +1,266 @@ +{ + "parameters": { + "api-version": "2025-04-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "fluxConfigurationName": "srs-fluxconfig", + "fluxConfigurationPatch": { + "properties": { + "gitRepository": { + "url": "https://github.com/jonathan-innis/flux2-kustomize-helm-example.git" + }, + "kustomizations": { + "srs-kustomization1": null, + "srs-kustomization2": { + "path": "./test/alt-path", + "dependsOn": null, + "syncIntervalInSeconds": 300 + }, + "srs-kustomization3": { + "path": "./test/another-path", + "syncIntervalInSeconds": 300 + } + }, + "suspend": true + } + }, + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "description": "FluxConfiguration properties from not updating any property values.", + "body": { + "properties": { + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": { + "repositoryRef": { + "branch": "master", + "commit": null, + "semver": null, + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/jonathan-innis/flux2-kustomize-helm-example.git" + }, + "kustomizations": { + "srs-kustomization2": { + "path": "./test/alt-path", + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 300, + "timeoutInSeconds": 600 + }, + "srs-kustomization3": { + "path": "./test/another-path", + "prune": false, + "retryIntervalInSeconds": null, + "syncIntervalInSeconds": 300, + "timeoutInSeconds": 600 + } + }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "GitRepository", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "GitOperationSucceed", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + } + ], + "suspend": false + } + } + }, + "202": { + "description": "FluxConfiguration properties and details of the Patch operation, including AsyncOperation url.", + "body": { + "properties": { + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": { + "repositoryRef": { + "branch": "master", + "commit": null, + "semver": null, + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/jonathan-innis/flux2-kustomize-helm-example.git" + }, + "kustomizations": { + "srs-kustomization2": { + "path": "./test/alt-path", + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 300, + "timeoutInSeconds": 600 + }, + "srs-kustomization3": { + "path": "./test/another-path", + "prune": false, + "retryIntervalInSeconds": null, + "syncIntervalInSeconds": 300, + "timeoutInSeconds": 600 + } + }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", + "statuses": [ + { + "name": "srs-fluxconfig", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "GitRepository", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "GitOperationSucceed", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization1", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + }, + { + "name": "srs-fluxconfig-srs-kustomization2", + "appliedBy": null, + "complianceState": "Compliant", + "helmReleaseProperties": { + "failureCount": null, + "helmChartRef": { + "name": "myname", + "namespace": "mynamespace" + }, + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null + }, + "kind": "Kustomization", + "statusConditions": [ + { + "type": "Ready", + "lastTransitionTime": "2021-05-19T18:12:40Z", + "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", + "reason": "ReconciliationSucceeded", + "status": "True" + } + ] + } + ], + "suspend": false + } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId?api-version=2025-04-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId", + "x-ms-async-operation-timeout": "PT48H" + } + } + }, + "operationId": "FluxConfigurations_Update", + "title": "Patch Flux Configuration" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/main.tsp new file mode 100644 index 000000000000..ab216e596e01 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/main.tsp @@ -0,0 +1,42 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.12 + * Date: 2026-01-07T08:38:05.675Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./FluxConfiguration.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * KubernetesConfiguration Flux Client + */ +@armProviderNamespace +@service(#{ title: "FluxConfigurationClient" }) +@versioned(Versions) +// FIXME: Common type version v2 is not supported for now. Set to v3. +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) +namespace Microsoft.KubernetesConfiguration; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2025-04-01 API version. + */ + v2025_04_01: "2025-04-01", +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp new file mode 100644 index 000000000000..6460a5d89afe --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp @@ -0,0 +1,1422 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@azure-tools/typespec-azure-core"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Microsoft.KubernetesConfiguration; + +/** + * Scope at which the configuration will be installed. + */ +union ScopeType { + string, + + /** + * cluster + */ + cluster: "cluster", + + /** + * namespace + */ + `namespace`: "namespace", +} + +/** + * Source Kind to pull the configuration data from. + */ +union SourceKindType { + string, + + /** + * GitRepository + */ + GitRepository: "GitRepository", + + /** + * Bucket + */ + Bucket: "Bucket", + + /** + * AzureBlob + */ + AzureBlob: "AzureBlob", + + /** + * OCIRepository + */ + OCIRepository: "OCIRepository", +} + +/** + * Name of the provider used for authentication. + */ +union ProviderType { + string, + + /** + * Azure provider can be used to authenticate to Azure DevOps repositories using Managed Identity. + */ + Azure: "Azure", + + /** + * GitHub provider can be used to authenticate + */ + GitHub: "GitHub", + + /** + * Generic is the default provider that indicates secret-based authentication mechanism. + */ + Generic: "Generic", +} + +/** + * The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'. + */ +union OperationType { + string, + + /** + * extract + */ + extract: "extract", + + /** + * copy + */ + copy: "copy", +} + +/** + * Compliance state of the cluster object. + */ +union FluxComplianceState { + string, + + /** + * Compliant + */ + Compliant: "Compliant", + + /** + * Non-Compliant + */ + `Non-Compliant`: "Non-Compliant", + + /** + * Pending + */ + Pending: "Pending", + + /** + * Suspended + */ + Suspended: "Suspended", + + /** + * Unknown + */ + Unknown: "Unknown", +} + +/** + * The provisioning state of the resource. + */ +union ProvisioningState { + string, + + /** + * Succeeded + */ + Succeeded: "Succeeded", + + /** + * Failed + */ + Failed: "Failed", + + /** + * Canceled + */ + Canceled: "Canceled", + + /** + * Creating + */ + Creating: "Creating", + + /** + * Updating + */ + Updating: "Updating", + + /** + * Deleting + */ + Deleting: "Deleting", +} + +/** + * The type of identity that created the resource. + */ +union CreatedByType { + string, + + /** + * User + */ + User: "User", + + /** + * Application + */ + Application: "Application", + + /** + * ManagedIdentity + */ + ManagedIdentity: "ManagedIdentity", + + /** + * Key + */ + Key: "Key", +} + +/** + * Specify whether to validate the Kubernetes objects referenced in the Kustomization before applying them to the cluster. + */ +union KustomizationValidationType { + string, + + /** + * none + */ + none: "none", + + /** + * client + */ + client: "client", + + /** + * server + */ + server: "server", +} + +/** + * Properties to create a Flux Configuration resource + */ +model FluxConfigurationProperties { + /** + * Scope at which the operator will be installed. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + scope?: ScopeType = ScopeType.cluster; + + /** + * The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, hyphen and period only. + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + `namespace`?: string = "default"; + + /** + * Source Kind to pull the configuration data from. + */ + sourceKind?: SourceKindType; + + /** + * Whether this configuration should suspend its reconciliation of its kustomizations and sources. + */ + suspend?: boolean; + + /** + * Parameters to reconcile to the GitRepository source kind type. + */ + gitRepository?: GitRepositoryDefinition; + + /** + * Parameters to reconcile to the Bucket source kind type. + */ + bucket?: BucketDefinition; + + /** + * Parameters to reconcile to the AzureBlob source kind type. + */ + azureBlob?: AzureBlobDefinition; + + /** + * Parameters to reconcile to the OCIRepository source kind type. + */ + ociRepository?: OCIRepositoryDefinition; + + /** + * Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + kustomizations?: Record; + + /** + * Key-value pairs of protected configuration settings for the configuration + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + configurationProtectedSettings?: Record; + + /** + * Statuses of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects provisioned by the fluxConfiguration. + */ + @visibility(Lifecycle.Read) + @identifiers(#["name", "namespace", "kind"]) + statuses?: ObjectStatusDefinition[]; + + /** + * Public Key associated with this fluxConfiguration (either generated within the cluster or provided by the user). + */ + @visibility(Lifecycle.Read) + repositoryPublicKey?: string; + + /** + * Branch and/or SHA of the source commit synced with the cluster. + */ + @visibility(Lifecycle.Read) + sourceSyncedCommitId?: string; + + /** + * Datetime the fluxConfiguration synced its source on the cluster. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + sourceUpdatedAt?: utcDateTime; + + /** + * Datetime the fluxConfiguration synced its status on the cluster with Azure. + */ + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + statusUpdatedAt?: utcDateTime; + + /** + * Whether flux configuration deployment should wait for cluster to reconcile the kustomizations. + */ + waitForReconciliation?: boolean; + + /** + * Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D + */ + reconciliationWaitDuration?: string; + + /** + * Combined status of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects. + */ + @visibility(Lifecycle.Read) + complianceState?: FluxComplianceState = FluxComplianceState.Unknown; + + /** + * Status of the creation of the fluxConfiguration. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Error message returned to the user in the case of provisioning failure. + */ + @visibility(Lifecycle.Read) + errorMessage?: string; +} + +/** + * Parameters to reconcile to the GitRepository source kind type. + */ +model GitRepositoryDefinition { + /** + * The URL to sync for the flux configuration git repository. + */ + url?: string; + + /** + * The maximum time to attempt to reconcile the cluster git repository source with the remote. + */ + timeoutInSeconds?: int64 = 600; + + /** + * The interval at which to re-reconcile the cluster git repository source with the remote. + */ + syncIntervalInSeconds?: int64 = 600; + + /** + * The source reference for the GitRepository object. + */ + repositoryRef?: RepositoryRefDefinition; + + /** + * Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH + */ + sshKnownHosts?: string; + + /** + * Plaintext HTTPS username used to access private git repositories over HTTPS + */ + httpsUser?: string; + + /** + * Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS + */ + httpsCACert?: string; + + /** + * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. + */ + localAuthRef?: string; + + /** + * Name of the provider used for authentication. + */ + provider?: ProviderType; +} + +/** + * The source reference for the GitRepository object. + */ +model RepositoryRefDefinition { + /** + * The git repository branch name to checkout. + */ + branch?: string; + + /** + * The git repository tag name to checkout. This takes precedence over branch. + */ + tag?: string; + + /** + * The semver range used to match against git repository tags. This takes precedence over tag. + */ + semver?: string; + + /** + * The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence over semver. + */ + commit?: string; +} + +/** + * Parameters to reconcile to the Bucket source kind type. + */ +model BucketDefinition { + /** + * The URL to sync for the flux configuration S3 bucket. + */ + url?: string; + + /** + * The bucket name to sync from the url endpoint for the flux configuration. + */ + bucketName?: string; + + /** + * Specify whether to use insecure communication when puling data from the S3 bucket. + */ + insecure?: boolean = true; + + /** + * The maximum time to attempt to reconcile the cluster bucket source with the remote. + */ + timeoutInSeconds?: int64 = 600; + + /** + * The interval at which to re-reconcile the cluster bucket source with the remote. + */ + syncIntervalInSeconds?: int64 = 600; + + /** + * Plaintext access key used to securely access the S3 bucket + */ + accessKey?: string; + + /** + * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. + */ + localAuthRef?: string; +} + +/** + * Parameters to reconcile to the AzureBlob source kind type. + */ +model AzureBlobDefinition { + /** + * The URL to sync for the flux configuration Azure Blob storage account. + */ + url?: string; + + /** + * The Azure Blob container name to sync from the url endpoint for the flux configuration. + */ + containerName?: string; + + /** + * The maximum time to attempt to reconcile the cluster Azure Blob source with the remote. + */ + timeoutInSeconds?: int64 = 600; + + /** + * The interval at which to re-reconcile the cluster Azure Blob source with the remote. + */ + syncIntervalInSeconds?: int64 = 600; + + /** + * Parameters to authenticate using Service Principal. + */ + servicePrincipal?: ServicePrincipalDefinition; + + /** + * The account key (shared key) to access the storage account + */ + accountKey?: string; + + /** + * The Shared Access token to access the storage container + */ + sasToken?: string; + + /** + * Parameters to authenticate using a Managed Identity. + */ + managedIdentity?: ManagedIdentityDefinition; + + /** + * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. + */ + localAuthRef?: string; +} + +/** + * Parameters to authenticate using Service Principal. + */ +model ServicePrincipalDefinition { + /** + * The client Id for authenticating a Service Principal. + */ + clientId?: string; + + /** + * The tenant Id for authenticating a Service Principal + */ + tenantId?: string; + + /** + * The client secret for authenticating a Service Principal + */ + clientSecret?: string; + + /** + * Base64-encoded certificate used to authenticate a Service Principal + */ + clientCertificate?: string; + + /** + * The password for the certificate used to authenticate a Service Principal + */ + clientCertificatePassword?: string; + + /** + * Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the Client Certificate + */ + clientCertificateSendChain?: boolean; +} + +/** + * Parameters to authenticate using a Managed Identity. + */ +model ManagedIdentityDefinition { + /** + * The client Id for authenticating a Managed Identity. + */ + clientId?: string; +} + +/** + * Parameters to reconcile to the OCIRepository source kind type. + */ +model OCIRepositoryDefinition { + /** + * The URL to sync for the flux configuration OCI repository. + */ + url?: url; + + /** + * The maximum time to attempt to reconcile the cluster OCI repository source with the remote. + */ + timeoutInSeconds?: int64 = 600; + + /** + * The interval at which to re-reconcile the cluster OCI repository source with the remote. + */ + syncIntervalInSeconds?: int64 = 600; + + /** + * The source reference for the OCIRepository object. + */ + repositoryRef?: OCIRepositoryRefDefinition; + + /** + * The layer to be pulled from the OCI artifact. + */ + layerSelector?: LayerSelectorDefinition; + + /** + * Verification of the authenticity of an OCI Artifact. + */ + verify?: VerifyDefinition; + + /** + * Specify whether to allow connecting to a non-TLS HTTP container registry. + */ + insecure?: boolean; + + /** + * Specifies whether to use Workload Identity to authenticate with the OCI repository. + */ + useWorkloadIdentity?: boolean; + + /** + * The service account name to authenticate with the OCI repository. + */ + serviceAccountName?: string; + + /** + * Parameters to authenticate using TLS config for OCI repository. + */ + tlsConfig?: TlsConfigDefinition; + + /** + * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. + */ + localAuthRef?: string; +} + +/** + * The source reference for the OCIRepository object. + */ +model OCIRepositoryRefDefinition { + /** + * The OCI repository image tag name to pull. This defaults to 'latest'. + */ + tag?: string; + + /** + * The semver range used to match against OCI repository tags. This takes precedence over tag. + */ + semver?: string; + + /** + * The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver. + */ + digest?: string; +} + +/** + * Parameters to specify which layer to pull from the OCI artifact. By default, the first layer in the artifact is pulled. + */ +model LayerSelectorDefinition { + /** + * The first layer matching the specified media type will be used. + */ + mediaType?: string; + + /** + * The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'. + */ + operation?: OperationType; +} + +/** + * Parameters to verify the authenticity of an OCI Artifact. + */ +model VerifyDefinition { + /** + * Verification provider name. + */ + provider?: string; + + /** + * An object containing trusted public keys of trusted authors. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + verificationConfig?: Record; + + /** + * Array defining the criteria for matching the identity while verifying an OCI artifact. + */ + @identifiers(#[]) + matchOidcIdentity?: MatchOidcIdentityDefinition[]; +} + +/** + * MatchOIDCIdentity defines the criteria for matching the identity while verifying an OCI artifact. + */ +model MatchOidcIdentityDefinition { + /** + * The regex pattern to match against to verify the OIDC issuer. + */ + issuer?: string; + + /** + * The regex pattern to match against to verify the identity subject. + */ + subject?: string; +} + +/** + * Parameters to authenticate using TLS config for OCI repository. + */ +model TlsConfigDefinition { + /** + * Base64-encoded certificate used to authenticate a client with the OCI repository. + */ + clientCertificate?: string; + + /** + * Base64-encoded private key used to authenticate a client with the OCI repository. + */ + privateKey?: string; + + /** + * Base64-encoded CA certificate used to verify the server. + */ + caCertificate?: string; +} + +/** + * The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster. + */ +model KustomizationDefinition { + /** + * Name of the Kustomization, matching the key in the Kustomizations object map. + */ + @visibility(Lifecycle.Read) + name?: string; + + /** + * The path in the source reference to reconcile on the cluster. + */ + path?: string = ""; + + /** + * Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation. + */ + dependsOn?: string[]; + + /** + * The maximum time to attempt to reconcile the Kustomization on the cluster. + */ + timeoutInSeconds?: int64 = 600; + + /** + * The interval at which to re-reconcile the Kustomization on the cluster. + */ + syncIntervalInSeconds?: int64 = 600; + + /** + * The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation. + */ + retryIntervalInSeconds?: int64; + + /** + * Enable/disable garbage collections of Kubernetes objects created by this Kustomization. + */ + prune?: boolean; + + /** + * Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change. + */ + force?: boolean; + + /** + * Enable/disable health check for all Kubernetes objects created by this Kustomization. + */ + wait?: boolean = true; + + /** + * Used for variable substitution for this Kustomization after kustomize build. + */ + postBuild?: PostBuildDefinition; +} + +/** + * The postBuild definitions defining variable substitutions for this Kustomization after kustomize build. + */ +model PostBuildDefinition { + /** + * Key/value pairs holding the variables to be substituted in this Kustomization. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + substitute?: Record; + + /** + * Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization. + */ + @identifiers(#[]) + substituteFrom?: SubstituteFromDefinition[]; +} + +/** + * Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization. + */ +model SubstituteFromDefinition { + /** + * Define whether it is ConfigMap or Secret that holds the variables to be used in substitution. + */ + kind?: string; + + /** + * Name of the ConfigMap/Secret that holds the variables to be used in substitution. + */ + name?: string; + + /** + * Set to True to proceed without ConfigMap/Secret, if it is not present. + */ + optional?: boolean; +} + +/** + * Statuses of objects deployed by the user-specified kustomizations from the git repository. + */ +model ObjectStatusDefinition { + /** + * Name of the applied object + */ + name?: string; + + /** + * Namespace of the applied object + */ + `namespace`?: string; + + /** + * Kind of the applied object + */ + kind?: string; + + /** + * Compliance state of the applied object showing whether the applied object has come into a ready state on the cluster. + */ + complianceState?: FluxComplianceState = FluxComplianceState.Unknown; + + /** + * Object reference to the Kustomization that applied this object + */ + appliedBy?: ObjectReferenceDefinition; + + /** + * List of Kubernetes object status conditions present on the cluster + */ + @identifiers(#["type"]) + statusConditions?: ObjectStatusConditionDefinition[]; + + /** + * Additional properties that are provided from objects of the HelmRelease kind + */ + helmReleaseProperties?: HelmReleasePropertiesDefinition; +} + +/** + * Object reference to a Kubernetes object on a cluster + */ +model ObjectReferenceDefinition { + /** + * Name of the object + */ + name?: string; + + /** + * Namespace of the object + */ + `namespace`?: string; +} + +/** + * Status condition of Kubernetes object + */ +model ObjectStatusConditionDefinition { + /** + * Last time this status condition has changed + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + lastTransitionTime?: utcDateTime; + + /** + * A more verbose description of the object status condition + */ + message?: string; + + /** + * Reason for the specified status condition type status + */ + reason?: string; + + /** + * Status of the Kubernetes object condition type + */ + status?: string; + + /** + * Object status condition type for this object + */ + type?: string; +} + +/** + * Properties for HelmRelease objects + */ +model HelmReleasePropertiesDefinition { + /** + * The revision number of the last released object change + */ + lastRevisionApplied?: int64; + + /** + * The reference to the HelmChart object used as the source to this HelmRelease + */ + helmChartRef?: ObjectReferenceDefinition; + + /** + * Total number of times that the HelmRelease failed to install or upgrade + */ + failureCount?: int64; + + /** + * Number of times that the HelmRelease failed to install + */ + installFailureCount?: int64; + + /** + * Number of times that the HelmRelease failed to upgrade + */ + upgradeFailureCount?: int64; +} + +/** + * The Flux Configuration Patch Request object. + */ +model FluxConfigurationPatch { + /** + * Updatable properties of an Flux Configuration Patch Request + */ + properties?: FluxConfigurationPatchProperties; +} + +/** + * Updatable properties of an Flux Configuration Patch Request + */ +model FluxConfigurationPatchProperties { + /** + * Source Kind to pull the configuration data from. + */ + sourceKind?: SourceKindType; + + /** + * Whether this configuration should suspend its reconciliation of its kustomizations and sources. + */ + suspend?: boolean; + + /** + * Parameters to reconcile to the GitRepository source kind type. + */ + gitRepository?: GitRepositoryPatchDefinition; + + /** + * Parameters to reconcile to the Bucket source kind type. + */ + bucket?: BucketPatchDefinition; + + /** + * Parameters to reconcile to the AzureBlob source kind type. + */ + azureBlob?: AzureBlobPatchDefinition; + + /** + * Parameters to reconcile to the OCIRepository source kind type. + */ + ociRepository?: OCIRepositoryPatchDefinition; + + /** + * Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + kustomizations?: Record; + + /** + * Key-value pairs of protected configuration settings for the configuration + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + configurationProtectedSettings?: Record; +} + +/** + * Parameters to reconcile to the GitRepository source kind type. + */ +model GitRepositoryPatchDefinition { + /** + * The URL to sync for the flux configuration git repository. + */ + url?: string; + + /** + * The maximum time to attempt to reconcile the cluster git repository source with the remote. + */ + timeoutInSeconds?: int64; + + /** + * The interval at which to re-reconcile the cluster git repository source with the remote. + */ + syncIntervalInSeconds?: int64; + + /** + * The source reference for the GitRepository object. + */ + repositoryRef?: RepositoryRefDefinition; + + /** + * Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH + */ + sshKnownHosts?: string; + + /** + * Plaintext HTTPS username used to access private git repositories over HTTPS + */ + httpsUser?: string; + + /** + * Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS + */ + httpsCACert?: string; + + /** + * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. + */ + localAuthRef?: string; + + /** + * Name of the provider used for authentication. + */ + provider?: ProviderType; +} + +/** + * Parameters to reconcile to the Bucket source kind type. + */ +model BucketPatchDefinition { + /** + * The URL to sync for the flux configuration S3 bucket. + */ + url?: string; + + /** + * The bucket name to sync from the url endpoint for the flux configuration. + */ + bucketName?: string; + + /** + * Specify whether to use insecure communication when puling data from the S3 bucket. + */ + insecure?: boolean; + + /** + * The maximum time to attempt to reconcile the cluster bucket source with the remote. + */ + timeoutInSeconds?: int64; + + /** + * The interval at which to re-reconcile the cluster bucket source with the remote. + */ + syncIntervalInSeconds?: int64; + + /** + * Plaintext access key used to securely access the S3 bucket + */ + accessKey?: string; + + /** + * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. + */ + localAuthRef?: string; +} + +/** + * Parameters to reconcile to the AzureBlob source kind type. + */ +model AzureBlobPatchDefinition { + /** + * The URL to sync for the flux configuration Azure Blob storage account. + */ + url?: string; + + /** + * The Azure Blob container name to sync from the url endpoint for the flux configuration. + */ + containerName?: string; + + /** + * The maximum time to attempt to reconcile the cluster Azure Blob source with the remote. + */ + timeoutInSeconds?: int64; + + /** + * The interval at which to re-reconcile the cluster Azure Blob source with the remote. + */ + syncIntervalInSeconds?: int64; + + /** + * Parameters to authenticate using Service Principal. + */ + servicePrincipal?: ServicePrincipalPatchDefinition; + + /** + * The account key (shared key) to access the storage account + */ + accountKey?: string; + + /** + * The Shared Access token to access the storage container + */ + sasToken?: string; + + /** + * Parameters to authenticate using a Managed Identity. + */ + managedIdentity?: ManagedIdentityPatchDefinition; + + /** + * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. + */ + localAuthRef?: string; +} + +/** + * Parameters to authenticate using Service Principal. + */ +model ServicePrincipalPatchDefinition { + /** + * The client Id for authenticating a Service Principal. + */ + clientId?: string; + + /** + * The tenant Id for authenticating a Service Principal + */ + tenantId?: string; + + /** + * The client secret for authenticating a Service Principal + */ + clientSecret?: string; + + /** + * Base64-encoded certificate used to authenticate a Service Principal + */ + clientCertificate?: string; + + /** + * The password for the certificate used to authenticate a Service Principal + */ + clientCertificatePassword?: string; + + /** + * Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the Client Certificate + */ + clientCertificateSendChain?: boolean; +} + +/** + * Parameters to authenticate using a Managed Identity. + */ +model ManagedIdentityPatchDefinition { + /** + * The client Id for authenticating a Managed Identity. + */ + clientId?: string; +} + +/** + * Parameters to reconcile to the OCIRepository source kind type. + */ +model OCIRepositoryPatchDefinition { + /** + * The URL to sync for the flux configuration OCI repository. + */ + url?: url; + + /** + * The maximum time to attempt to reconcile the cluster OCI repository source with the remote. + */ + timeoutInSeconds?: int64; + + /** + * The interval at which to re-reconcile the cluster OCI repository source with the remote. + */ + syncIntervalInSeconds?: int64; + + /** + * The source reference for the OCIRepository object. + */ + repositoryRef?: OCIRepositoryRefPatchDefinition; + + /** + * The layer to be pulled from the OCI artifact. + */ + layerSelector?: LayerSelectorPatchDefinition; + + /** + * Verification of the authenticity of an OCI Artifact. + */ + verify?: VerifyPatchDefinition; + + /** + * Specify whether to allow connecting to a non-TLS HTTP container registry. + */ + insecure?: boolean; + + /** + * Specifies whether to use Workload Identity to authenticate with the OCI repository. + */ + useWorkloadIdentity?: boolean; + + /** + * The service account name to authenticate with the OCI repository. + */ + serviceAccountName?: string; + + /** + * Parameters to authenticate using TLS config for OCI repository. + */ + tlsConfig?: TlsConfigPatchDefinition; + + /** + * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. + */ + localAuthRef?: string; +} + +/** + * The source reference for the OCIRepository object. + */ +model OCIRepositoryRefPatchDefinition { + /** + * The OCI repository image tag name to pull. This defaults to 'latest'. + */ + tag?: string; + + /** + * The semver range used to match against OCI repository tags. This takes precedence over tag. + */ + semver?: string; + + /** + * The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver. + */ + digest?: string; +} + +/** + * Parameters to specify which layer to pull from the OCI artifact. By default, the first layer in the artifact is pulled. + */ +model LayerSelectorPatchDefinition { + /** + * The first layer matching the specified media type will be used. + */ + mediaType?: string; + + /** + * The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'. + */ + operation?: OperationType; +} + +/** + * Parameters to verify the authenticity of an OCI Artifact. + */ +model VerifyPatchDefinition { + /** + * Verification provider name. + */ + provider?: string; + + /** + * An object containing trusted public keys of trusted authors. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + verificationConfig?: Record; + + /** + * Array defining the criteria for matching the OIDC identity while verifying an OCI artifact. + */ + @identifiers(#[]) + matchOidcIdentity?: MatchOidcIdentityPatchDefinition[]; +} + +/** + * MatchOIDCIdentity defines the criteria for matching the identity while verifying an OCI artifact. + */ +model MatchOidcIdentityPatchDefinition { + /** + * The regex pattern to match against to verify the OIDC issuer. + */ + issuer?: string; + + /** + * The regex pattern to match against to verify the identity subject. + */ + subject?: string; +} + +/** + * Parameters to authenticate using TLS config for OCI repository. + */ +model TlsConfigPatchDefinition { + /** + * Base64-encoded certificate used to authenticate a client with the OCI repository. + */ + clientCertificate?: string; + + /** + * Base64-encoded private key used to authenticate a client with the OCI repository. + */ + privateKey?: string; + + /** + * Base64-encoded CA certificate used to verify the server. + */ + caCertificate?: string; +} + +/** + * The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster. + */ +model KustomizationPatchDefinition { + /** + * The path in the source reference to reconcile on the cluster. + */ + path?: string; + + /** + * Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation. + */ + dependsOn?: string[]; + + /** + * The maximum time to attempt to reconcile the Kustomization on the cluster. + */ + timeoutInSeconds?: int64; + + /** + * The interval at which to re-reconcile the Kustomization on the cluster. + */ + syncIntervalInSeconds?: int64; + + /** + * The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation. + */ + retryIntervalInSeconds?: int64; + + /** + * Enable/disable garbage collections of Kubernetes objects created by this Kustomization. + */ + prune?: boolean; + + /** + * Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change. + */ + force?: boolean; + + /** + * Enable/disable health check for all Kubernetes objects created by this Kustomization. + */ + wait?: boolean; + + /** + * Used for variable substitution for this Kustomization after kustomize build. + */ + postBuild?: PostBuildPatchDefinition; +} + +/** + * The postBuild definitions defining variable substitutions for this Kustomization after kustomize build. + */ +model PostBuildPatchDefinition { + /** + * Key/value pairs holding the variables to be substituted in this Kustomization. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + substitute?: Record; + + /** + * Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization. + */ + @identifiers(#[]) + substituteFrom?: SubstituteFromPatchDefinition[]; +} + +/** + * Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization. + */ +model SubstituteFromPatchDefinition { + /** + * Define whether it is ConfigMap or Secret that holds the variables to be used in substitution. + */ + kind?: string; + + /** + * Name of the ConfigMap/Secret that holds the variables to be used in substitution. + */ + name?: string; + + /** + * Set to True to proceed without ConfigMap/Secret, if it is not present. + */ + optional?: boolean; +} + +/** + * Result of the request to list Flux Configurations. It contains a list of FluxConfiguration objects and a URL link to get the next set of results. + */ +model FluxConfigurationsList is Azure.Core.Page; + +/** + * The current status of an async operation. + */ +model OperationStatusResult { + /** + * Fully qualified ID for the async operation. + */ + id?: string; + + /** + * Name of the async operation. + */ + name?: string; + + /** + * Operation status. + */ + status: string; + + /** + * Additional information, if available. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + properties?: Record; + + /** + * If present, details of the operation error. + */ + @visibility(Lifecycle.Read) + error?: Azure.ResourceManager.CommonTypes.ErrorDetail; +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml new file mode 100644 index 000000000000..7fc958bcca2b --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -0,0 +1,13 @@ +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/fluxconfiguration.json" + emit-lro-options: "all" + examples-dir: "{project-root}/examples" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp new file mode 100644 index 000000000000..3c57493c5907 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp @@ -0,0 +1,6 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using OperationsClient; + +@@clientLocation(OperationStatusOperationGroup.list, "OperationStatus"); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/ListAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/ListAsyncOperationStatus.json new file mode 100644 index 000000000000..d387fab3158b --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/ListAsyncOperationStatus.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2025-04-01", + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "99999999-9999-9999-9999-999999999999", + "error": null, + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/99999999-9999-9999-9999-999999999999", + "properties": {}, + "status": "Deleting" + }, + { + "name": "88888888-8888-8888-8888-888888888888", + "error": null, + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/cassandraExtension1/operations/88888888-8888-8888-8888-888888888888", + "properties": {}, + "status": "Creating" + } + ] + } + } + }, + "operationId": "OperationStatus_List", + "title": "AsyncOperationStatus List" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/OperationsList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/OperationsList.json new file mode 100644 index 000000000000..fd848d134007 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/OperationsList.json @@ -0,0 +1,158 @@ +{ + "parameters": { + "api-version": "2025-04-01" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/write", + "display": { + "description": "Creates or updates source control configuration.", + "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/write", + "provider": "Microsoft Kubernetes Configuration", + "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/read", + "display": { + "description": "Gets source control configuration.", + "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/read", + "provider": "Microsoft Kubernetes Configuration", + "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/delete", + "display": { + "description": "Deletes source control configuration.", + "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/delete", + "provider": "Microsoft Kubernetes Configuration", + "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/extensions/read", + "display": { + "description": "Get the specified Extension.", + "operation": "Get extension", + "provider": "Microsoft KubernetesConfiguration", + "resource": "extensions" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/extensions/write", + "display": { + "description": "Create the Extension specified.", + "operation": "Create a Extension", + "provider": "Microsoft KubernetesConfiguration", + "resource": "extensions" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/extensions/delete", + "display": { + "description": "Delete the specified Extension.", + "operation": "Delete Extension", + "provider": "Microsoft KubernetesConfiguration", + "resource": "extensions" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/extensions/operations/read", + "display": { + "description": "Get the Status of the Extension Async Operation.", + "operation": "Get Extension Async Operation Status", + "provider": "Microsoft KubernetesConfiguration", + "resource": "extensions" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/fluxConfigurations/read", + "display": { + "description": "Get the specified Flux Configuration.", + "operation": "Get fluxConfiguration", + "provider": "Microsoft KubernetesConfiguration", + "resource": "fluxConfigurations" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/fluxConfigurations/write", + "display": { + "description": "Create the Flux Configuration specified.", + "operation": "Create a fluxConfiguration", + "provider": "Microsoft KubernetesConfiguration", + "resource": "fluxConfigurations" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/fluxConfigurations/delete", + "display": { + "description": "Delete the specified Flux Configuration.", + "operation": "Delete Flux Configuration", + "provider": "Microsoft KubernetesConfiguration", + "resource": "fluxConfigurations" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/fluxConfigurations/operations/read", + "display": { + "description": "Get the Status of the Flux Configuration Async Operation.", + "operation": "Get Flux Configuration Async Operation Status", + "provider": "Microsoft KubernetesConfiguration", + "resource": "fluxConfigurations" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/register/action", + "display": { + "description": "Registers subscription to Microsoft.KubernetesConfiguration resource provider.", + "operation": "Microsoft.KubernetesConfiguration/register/action", + "provider": "Microsoft Kubernetes Configuration", + "resource": "Register" + }, + "isDataAction": false, + "origin": "user,system" + }, + { + "name": "Microsoft.KubernetesConfiguration/extensionTypes/read", + "display": { + "description": "Get Kubernetes Configuration Available Extensions", + "operation": "Microsoft.KubernetesConfiguration/extensionTypes/read", + "provider": "Microsoft KubernetesConfiguration", + "resource": "extensionTypes" + }, + "isDataAction": false, + "origin": "user,system" + } + ] + } + } + }, + "operationId": "Operations_List", + "title": "BatchAccountDelete" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp new file mode 100644 index 000000000000..5d3b9915232d --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp @@ -0,0 +1,44 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.12 + * Date: 2026-01-07T08:40:13.928Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./routes.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * Operations Client + */ +@armProviderNamespace +@service(#{ title: "OperationsClient" }) +@versioned(Versions) +// FIXME: Common type version v2 is not supported for now. Set to v3. +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) +namespace OperationsClient; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2025-04-01 API version. + */ + v2025_04_01: "2025-04-01", +} + +interface Operations extends Azure.ResourceManager.Operations {} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp new file mode 100644 index 000000000000..ce9548c0a0a1 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/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; + +namespace OperationsClient; + +/** + * The async operations in progress, in the cluster. + */ +model OperationStatusList is Azure.Core.Page; + +/** + * The current status of an async operation. + */ +model OperationStatusResult { + /** + * Fully qualified ID for the async operation. + */ + id?: string; + + /** + * Name of the async operation. + */ + name?: string; + + /** + * Operation status. + */ + status: string; + + /** + * Additional information, if available. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + properties?: Record; + + /** + * If present, details of the operation error. + */ + @visibility(Lifecycle.Read) + error?: Azure.ResourceManager.CommonTypes.ErrorDetail; +} + +/** + * Supported operation of this resource provider. + */ +model ResourceProviderOperation { + /** + * Operation name, in format of {provider}/{resource}/{operation} + */ + name?: string; + + /** + * Display metadata associated with the operation. + */ + display?: ResourceProviderOperationDisplay; + + /** + * The flag that indicates whether the operation applies to data plane. + */ + @visibility(Lifecycle.Read) + isDataAction?: boolean; + + /** + * Origin of the operation + */ + @visibility(Lifecycle.Read) + origin?: string; +} + +/** + * Display metadata associated with the operation. + */ +model ResourceProviderOperationDisplay { + /** + * Resource provider: Microsoft KubernetesConfiguration. + */ + provider?: string; + + /** + * Resource on which the operation is performed. + */ + resource?: string; + + /** + * Type of operation: get, read, delete, etc. + */ + operation?: string; + + /** + * Description of this operation. + */ + description?: string; +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp new file mode 100644 index 000000000000..0f90cc4cdd3c --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp @@ -0,0 +1,52 @@ +// FIXME: Operations in this file are not detected as a resource operation, please confirm the conversion result manually + +import "@azure-tools/typespec-azure-core"; +import "@typespec/rest"; +import "./models.tsp"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using TypeSpec.OpenAPI; + +namespace OperationsClient; + +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "For backward compatibility" +interface OperationStatusOperationGroup { + /** + * List Async Operations, currently in progress, in a cluster + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("OperationStatus_List") + @autoRoute + @get + @action("operations") + list is ArmProviderActionSync< + Response = OperationStatusList, + Scope = Extension.ResourceGroup, + Parameters = { + /** + * The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService. + */ + @path + @segment("providers") + clusterRp: string; + + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters. + */ + @path + @segment("{clusterRp}") + clusterResourceName: string; + + /** + * The name of the kubernetes cluster. + */ + @path + @segment("{clusterResourceName}") + clusterName: string; + } + >; +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/tspconfig.yaml new file mode 100644 index 000000000000..cd6395b93237 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/tspconfig.yaml @@ -0,0 +1,13 @@ +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/operations.json" + emit-lro-options: "all" + examples-dir: "{project-root}/examples" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp new file mode 100644 index 000000000000..19692bbbcb2b --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp @@ -0,0 +1,86 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.KubernetesConfiguration; +/** + * An Azure Arc PrivateLinkScope definition. + */ +model KubernetesConfigurationPrivateLinkScope + is Azure.ResourceManager.TrackedResource { + ...ResourceNameParameter< + Resource = KubernetesConfigurationPrivateLinkScope, + KeyName = "scopeName", + SegmentName = "privateLinkScopes", + NamePattern = "" + >; +} + +@armResourceOperations +interface KubernetesConfigurationPrivateLinkScopes { + /** + * Returns a Azure Arc PrivateLinkScope. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("PrivateLinkScopes_Get") + get is ArmResourceRead; + + /** + * Creates (or updates) a Azure Arc PrivateLinkScope. Note: You cannot specify a different value for InstrumentationKey nor AppId in the Put operation. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("PrivateLinkScopes_CreateOrUpdate") + createOrUpdate is ArmResourceCreateOrReplaceSync; + + /** + * Updates an existing PrivateLinkScope's tags. To update other fields use the CreateOrUpdate method. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("PrivateLinkScopes_UpdateTags") + @patch(#{ implicitOptionality: false }) + updateTags is ArmCustomPatchSync< + KubernetesConfigurationPrivateLinkScope, + PatchModel = TagsResource + >; + + /** + * Deletes a Azure Arc PrivateLinkScope. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("PrivateLinkScopes_Delete") + delete is ArmResourceDeleteSync; + + /** + * Gets a list of Azure Arc PrivateLinkScopes within a resource group. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("PrivateLinkScopes_ListByResourceGroup") + listByResourceGroup is ArmResourceListByParent; + + /** + * Gets a list of all Azure Arc PrivateLinkScopes within a subscription. + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("PrivateLinkScopes_List") + list is ArmListBySubscription; +} + +@@doc(KubernetesConfigurationPrivateLinkScope.name, + "The name of the Azure Arc PrivateLinkScope resource." +); +@@doc(KubernetesConfigurationPrivateLinkScope.properties, + "Properties that define a Azure Arc PrivateLinkScope resource." +); +@@doc(KubernetesConfigurationPrivateLinkScopes.createOrUpdate::parameters.resource, + "Properties that need to be specified to create or update a Azure Arc for Servers and Clusters PrivateLinkScope." +); +@@doc(KubernetesConfigurationPrivateLinkScopes.updateTags::parameters.properties, + "Updated tag information to set into the PrivateLinkScope instance." +); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp new file mode 100644 index 000000000000..6ec6b91f0386 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp @@ -0,0 +1,63 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./KubernetesConfigurationPrivateLinkScope.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.KubernetesConfiguration; +/** + * The Private Endpoint Connection resource. + */ +model PrivateEndpointConnection is PrivateEndpointConnectionResource; +alias PrivateEndpointOperations = PrivateEndpoints; + +@armResourceOperations +interface PrivateEndpointConnections { + /** + * Gets a private endpoint connection. + */ + get is PrivateEndpointOperations.Read< + KubernetesConfigurationPrivateLinkScope, + PrivateEndpointConnection + >; + + /** + * Approve or reject a private endpoint connection with a given name. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + createOrUpdate is PrivateEndpointOperations.CreateOrReplaceAsync< + KubernetesConfigurationPrivateLinkScope, + PrivateEndpointConnection, + Response = ArmResourceUpdatedResponse | ArmAcceptedLroResponse, + LroHeaders = ArmLroLocationHeader & + Azure.Core.Foundations.RetryAfterHeader + >; + + /** + * Deletes a private endpoint connection with a given name. + */ + delete is PrivateEndpointOperations.DeleteSync< + KubernetesConfigurationPrivateLinkScope, + PrivateEndpointConnection + >; + + /** + * Gets all private endpoint connections on a private link scope. + */ + listByPrivateLinkScope is PrivateEndpointOperations.ListByParent< + KubernetesConfigurationPrivateLinkScope, + PrivateEndpointConnection, + Response = ArmResponse + >; +} + +@@doc(PrivateEndpointConnection.properties, "Resource properties."); +@@doc(PrivateEndpointConnections.createOrUpdate::parameters.resource, + "The private endpoint connection properties." +); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateLinkResource.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateLinkResource.tsp new file mode 100644 index 000000000000..a5eaf41bd42e --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateLinkResource.tsp @@ -0,0 +1,45 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./KubernetesConfigurationPrivateLinkScope.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Microsoft.KubernetesConfiguration; +/** + * A private link resource + */ +@parentResource(KubernetesConfigurationPrivateLinkScope) +model PrivateLinkResource + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = PrivateLinkResource, + KeyName = "groupName", + SegmentName = "privateLinkResources", + NamePattern = "" + >; +} + +@armResourceOperations +interface PrivateLinkResources { + /** + * Gets the private link resources that need to be created for a Azure Monitor PrivateLinkScope. + */ + get is ArmResourceRead; + + /** + * Gets the private link resources that need to be created for a Azure Monitor PrivateLinkScope. + */ + listByPrivateLinkScope is ArmResourceListByParent< + PrivateLinkResource, + Response = ArmResponse + >; +} + +@@doc(PrivateLinkResource.name, "The name of the private link resource."); +@@doc(PrivateLinkResource.properties, "Resource properties."); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp new file mode 100644 index 000000000000..e06db5f91071 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp @@ -0,0 +1,38 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Microsoft.KubernetesConfiguration; + +@@clientLocation(KubernetesConfigurationPrivateLinkScopes.get, + "PrivateLinkScopes" +); +@@clientLocation(KubernetesConfigurationPrivateLinkScopes.createOrUpdate, + "PrivateLinkScopes" +); +@@clientName(KubernetesConfigurationPrivateLinkScopes.createOrUpdate::parameters.resource, + "parameters" +); +@@clientLocation(KubernetesConfigurationPrivateLinkScopes.updateTags, + "PrivateLinkScopes" +); +@@clientName(KubernetesConfigurationPrivateLinkScopes.updateTags::parameters.properties, + "PrivateLinkScopeTags" +); +@@clientLocation(KubernetesConfigurationPrivateLinkScopes.delete, + "PrivateLinkScopes" +); +@@clientLocation(KubernetesConfigurationPrivateLinkScopes.listByResourceGroup, + "PrivateLinkScopes" +); +@@clientLocation(KubernetesConfigurationPrivateLinkScopes.list, + "PrivateLinkScopes" +); + +@@clientName(PrivateEndpointConnections.createOrUpdate::parameters.resource, + "properties" +); +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(PrivateEndpointConnection.properties); + +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +@@Legacy.flattenProperty(PrivateLinkResource.properties); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionDelete.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionDelete.json new file mode 100644 index 000000000000..78594b44691f --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionDelete.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateEndpointConnectionName": "private-endpoint-connection-name", + "resourceGroupName": "myResourceGroup", + "scopeName": "myPrivateLinkScope", + "subscriptionId": "00000000-1111-2222-3333-444444444444" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "PrivateEndpointConnections_Delete", + "title": "Deletes a private endpoint connection with a given name." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionGet.json new file mode 100644 index 000000000000..6af429ad7cf1 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionGet.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateEndpointConnectionName": "private-endpoint-connection-name", + "resourceGroupName": "myResourceGroup", + "scopeName": "myPrivateLinkScope", + "subscriptionId": "00000000-1111-2222-3333-444444444444" + }, + "responses": { + "200": { + "body": { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers//privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "PrivateEndpointConnections_Get", + "title": "Gets private endpoint connection." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionList.json new file mode 100644 index 000000000000..1ae46646bd59 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionList.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resourceGroupName": "myResourceGroup", + "scopeName": "myPrivateLinkScope", + "subscriptionId": "00000000-1111-2222-3333-444444444444" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name-2", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + }, + { + "name": "private-endpoint-connection-name-2", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name-2", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name-2" + }, + "privateLinkServiceConnectionState": { + "description": "Please approve my connection.", + "actionsRequired": "None", + "status": "Pending" + }, + "provisioningState": "Succeeded" + } + } + ] + } + } + }, + "operationId": "PrivateEndpointConnections_ListByPrivateLinkScope", + "title": "Gets list of private endpoint connections on a private link scope." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionUpdate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionUpdate.json new file mode 100644 index 000000000000..4a8681f42b68 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionUpdate.json @@ -0,0 +1,40 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "privateEndpointConnectionName": "private-endpoint-connection-name", + "properties": { + "properties": { + "privateLinkServiceConnectionState": { + "description": "Approved by johndoe@contoso.com", + "status": "Approved" + } + } + }, + "resourceGroupName": "myResourceGroup", + "scopeName": "myPrivateLinkScope", + "subscriptionId": "00000000-1111-2222-3333-444444444444" + }, + "responses": { + "200": { + "body": { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Approved by johndoe@contoso.com", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + }, + "202": {} + }, + "operationId": "PrivateEndpointConnections_CreateOrUpdate", + "title": "Approve or reject a private endpoint connection with a given name." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceGet.json new file mode 100644 index 000000000000..4bceefb77dfa --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceGet.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "groupName": "KubernetesConfiguration", + "resourceGroupName": "myResourceGroup", + "scopeName": "myPrivateLinkScope", + "subscriptionId": "00000000-1111-2222-3333-444444444444" + }, + "responses": { + "200": { + "body": { + "name": "KubernetesConfiguration", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateLinkResources", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateLinkResources/KubernetesConfiguration", + "properties": { + "groupId": "KubernetesConfiguration", + "requiredMembers": [ + "KubernetesConfiguration.Server", + "KubernetesConfiguration.K8sConfiguration", + "GuestConfig.DP" + ], + "requiredZoneNames": [ + "privatelink.his.arc.azure.com", + "privatelink.kubernetesconfiguration.azure.com", + "privatelink.Guestconfiguration.azure.com" + ] + } + } + } + }, + "operationId": "PrivateLinkResources_Get", + "title": "Gets private endpoint connection." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceListGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceListGet.json new file mode 100644 index 000000000000..34e54c189421 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceListGet.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resourceGroupName": "myResourceGroup", + "scopeName": "myPrivateLinkScope", + "subscriptionId": "00000000-1111-2222-3333-444444444444" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "KubernetesConfiguration", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateLinkResources", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateLinkResources/KubernetesConfiguration", + "properties": { + "groupId": "KubernetesConfiguration", + "requiredMembers": [ + "KubernetesConfiguration.ServerDP", + "KubernetesConfiguration.K8sConfigurationDP", + "KubernetesConfiguration.GuestConfigDP" + ], + "requiredZoneNames": [ + "privatelink.his.arc.azure.com", + "privatelink.kubernetesconfiguration.azure.com", + "privatelink.Guestconfiguration.azure.com" + ] + } + } + ] + } + } + }, + "operationId": "PrivateLinkResources_ListByPrivateLinkScope", + "title": "Gets private endpoint connection." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesCreate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesCreate.json new file mode 100644 index 000000000000..0317f94dbf68 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesCreate.json @@ -0,0 +1,81 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "parameters": { + "location": "westus" + }, + "resourceGroupName": "my-resource-group", + "scopeName": "my-privatelinkscope", + "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919" + }, + "responses": { + "200": { + "body": { + "name": "my-privatelinkscope", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", + "location": "westus", + "properties": { + "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", + "privateEndpointConnections": [ + { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} + } + }, + "201": { + "body": { + "name": "my-privatelinkscope", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", + "location": "westus", + "properties": { + "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", + "privateEndpointConnections": [ + { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} + } + } + }, + "operationId": "PrivateLinkScopes_CreateOrUpdate", + "title": "PrivateLinkScopeCreate" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesDelete.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesDelete.json new file mode 100644 index 000000000000..42272fff34d4 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesDelete.json @@ -0,0 +1,14 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resourceGroupName": "my-resource-group", + "scopeName": "my-privatelinkscope", + "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "PrivateLinkScopes_Delete", + "title": "PrivateLinkScopesDelete" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesGet.json new file mode 100644 index 000000000000..df97b940820a --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesGet.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resourceGroupName": "my-resource-group", + "scopeName": "my-privatelinkscope", + "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919" + }, + "responses": { + "200": { + "body": { + "name": "my-privatelinkscope", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", + "location": "westus", + "properties": { + "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", + "privateEndpointConnections": [ + { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "privateLinkScopeId": "f5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} + } + } + }, + "operationId": "PrivateLinkScopes_Get", + "title": "PrivateLinkScopeGet" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesList.json new file mode 100644 index 000000000000..ade9d183bba9 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesList.json @@ -0,0 +1,60 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "my-privatelinkscope", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", + "location": "westus", + "properties": { + "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", + "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} + }, + { + "name": "my-other-privatelinkscope", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-other-privatelinkscope", + "location": "westus", + "properties": { + "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", + "privateEndpointConnections": [ + { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "privateLinkScopeId": "f5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} + } + ] + } + } + }, + "operationId": "PrivateLinkScopes_List", + "title": "PrivateLinkScopesList.json" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesListByResourceGroup.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesListByResourceGroup.json new file mode 100644 index 000000000000..74381c419677 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesListByResourceGroup.json @@ -0,0 +1,80 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "resourceGroupName": "my-resource-group", + "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "my-privatelinkscope", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", + "location": "westus", + "properties": { + "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", + "privateEndpointConnections": [ + { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "privateLinkScopeId": "f5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} + }, + { + "name": "my-other-privatelinkscope", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-other-privatelinkscope", + "location": "westus", + "properties": { + "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", + "privateEndpointConnections": [ + { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "privateLinkScopeId": "a5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} + } + ] + } + } + }, + "operationId": "PrivateLinkScopes_ListByResourceGroup", + "title": "PrivateLinkScopeListByResourceGroup" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdate.json new file mode 100644 index 000000000000..e0b894f26601 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdate.json @@ -0,0 +1,88 @@ +{ + "parameters": { + "api-version": "2024-11-01-preview", + "parameters": { + "location": "westus", + "tags": { + "Tag1": "Value1" + } + }, + "resourceGroupName": "my-resource-group", + "scopeName": "my-privatelinkscope", + "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919" + }, + "responses": { + "200": { + "body": { + "name": "my-privatelinkscope", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", + "location": "westus", + "properties": { + "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", + "privateEndpointConnections": [ + { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": { + "Tag1": "Value1" + } + } + }, + "201": { + "body": { + "name": "my-privatelinkscope", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", + "location": "westus", + "properties": { + "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", + "privateEndpointConnections": [ + { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": { + "Tag1": "Value1" + } + } + } + }, + "operationId": "PrivateLinkScopes_CreateOrUpdate", + "title": "PrivateLinkScopeUpdate" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdateTagsOnly.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdateTagsOnly.json new file mode 100644 index 000000000000..106fd79bb251 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdateTagsOnly.json @@ -0,0 +1,54 @@ +{ + "parameters": { + "PrivateLinkScopeTags": { + "tags": { + "Tag1": "Value1", + "Tag2": "Value2" + } + }, + "api-version": "2024-11-01-preview", + "resourceGroupName": "my-resource-group", + "scopeName": "my-privatelinkscope", + "subscriptionId": "subid" + }, + "responses": { + "200": { + "body": { + "name": "my-privatelinkscope", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", + "location": "westus", + "properties": { + "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", + "privateEndpointConnections": [ + { + "name": "private-endpoint-connection-name", + "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", + "properties": { + "privateEndpoint": { + "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" + }, + "privateLinkServiceConnectionState": { + "description": "Auto-approved", + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" + } + } + ], + "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": { + "Tag1": "Value1", + "Tag2": "Value2" + } + } + } + }, + "operationId": "PrivateLinkScopes_UpdateTags", + "title": "PrivateLinkScopeUpdateTagsOnly" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/main.tsp new file mode 100644 index 000000000000..d3760355dd58 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/main.tsp @@ -0,0 +1,43 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.12 + * Date: 2026-01-07T08:38:57.162Z + */ +import "@typespec/rest"; +import "@typespec/versioning"; +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "./models.tsp"; +import "./back-compatible.tsp"; +import "./KubernetesConfigurationPrivateLinkScope.tsp"; +import "./PrivateLinkResource.tsp"; +import "./PrivateEndpointConnection.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; +/** + * PrivateLinkScopes Client + */ +@armProviderNamespace +@service(#{ title: "PrivateLinkScopesClient" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) +namespace Microsoft.KubernetesConfiguration; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2024-11-01-preview API version. + */ + v2024_11_01_preview: "2024-11-01-preview", +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/models.tsp new file mode 100644 index 000000000000..8d0bf9207585 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/models.tsp @@ -0,0 +1,135 @@ +import "@typespec/rest"; +import "@typespec/http"; +import "@azure-tools/typespec-azure-resource-manager"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager; +using Azure.ResourceManager.Foundations; + +namespace Microsoft.KubernetesConfiguration; + +/** + * The network access policy to determine if Azure Arc agents can use public Azure Arc service endpoints. Defaults to disabled (access to Azure Arc services only via private link). + */ +union PublicNetworkAccessType { + string, + + /** + * Allows Azure Arc agents to communicate with Azure Arc services over both public (internet) and private endpoints. + */ + Enabled: "Enabled", + + /** + * Does not allow Azure Arc agents to communicate with Azure Arc services over public (internet) endpoints. The agents must use the private link. + */ + Disabled: "Disabled", +} + +/** + * The provisioning state of the resource. + */ +union ProvisioningState { + string, + + /** + * Succeeded + */ + Succeeded: "Succeeded", + + /** + * Failed + */ + Failed: "Failed", + + /** + * Canceled + */ + Canceled: "Canceled", + + /** + * Creating + */ + Creating: "Creating", + + /** + * Updating + */ + Updating: "Updating", + + /** + * Deleting + */ + Deleting: "Deleting", +} + +/** + * The type of identity that created the resource. + */ +union CreatedByType { + string, + + /** + * User + */ + User: "User", + + /** + * Application + */ + Application: "Application", + + /** + * ManagedIdentity + */ + ManagedIdentity: "ManagedIdentity", + + /** + * Key + */ + Key: "Key", +} + +/** + * Properties that define a Azure Arc PrivateLinkScope resource. + */ +model KubernetesConfigurationPrivateLinkScopeProperties { + /** + * Indicates whether machines associated with the private link scope can also use public Azure Arc service endpoints. + */ + publicNetworkAccess?: PublicNetworkAccessType = PublicNetworkAccessType.Disabled; + + /** + * Current state of this PrivateLinkScope: whether or not is has been provisioned within the resource group it is defined. Users cannot change this value but are able to read from it. Values will include Provisioning ,Succeeded, Canceled and Failed. + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Managed Cluster ARM ID for the private link scope (Required) + */ + clusterResourceId: string; + + /** + * The Guid id of the private link scope. + */ + @visibility(Lifecycle.Read) + privateLinkScopeId?: string; + + /** + * The collection of associated Private Endpoint Connections. + */ + @visibility(Lifecycle.Read) + privateEndpointConnections?: PrivateEndpointConnection[]; +} + +/** + * A container holding only the Tags for a resource, allowing the user to update the tags on a PrivateLinkScope instance. + */ +model TagsResource { + /** + * Resource tags + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + tags?: Record; +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml new file mode 100644 index 000000000000..c55d55553a98 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -0,0 +1,13 @@ +emit: + - "@azure-tools/typespec-autorest" +options: + "@azure-tools/typespec-autorest": + omit-unreachable-types: true + emitter-output-dir: "{project-root}/.." + azure-resource-provider-folder: "resource-manager" + output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/privateLinkScopes.json" + emit-lro-options: "all" + examples-dir: "{project-root}/examples" +linter: + extends: + - "@azure-tools/typespec-azure-rulesets/resource-manager" From f7ca5185c69e65de9858e99088fb6647e9376663 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 9 Jan 2026 08:56:16 +0800 Subject: [PATCH 02/66] update --- .../extensions/Extension.tsp | 283 +++-- .../extensions/main.tsp | 3 +- .../extensions/models.tsp | 48 +- .../2024-11-01/examples/CreateExtension.json | 130 +- .../examples/CreateExtensionWithPlan.json | 118 +- .../2024-11-01/examples/DeleteExtension.json | 20 +- .../2024-11-01/examples/GetExtension.json | 58 +- .../GetExtensionAsyncOperationStatus.json | 28 +- .../examples/GetExtensionWithPlan.json | 62 +- .../2024-11-01/examples/ListExtensions.json | 132 +- .../2024-11-01/examples/PatchExtension.json | 72 +- .../stable/2024-11-01/extensions.json | 1126 +++++++++++------ .../extensions/tspconfig.yaml | 7 +- .../operations/main.tsp | 2 +- 14 files changed, 1251 insertions(+), 838 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp index 4cd5036ff0a9..a190e667fc63 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp @@ -4,128 +4,187 @@ import "@typespec/openapi"; import "@typespec/rest"; import "./models.tsp"; - using TypeSpec.Rest; using Azure.ResourceManager; using TypeSpec.Http; using TypeSpec.OpenAPI; - namespace Microsoft.KubernetesConfiguration; /** -* The Extension object. -*/ + * The Extension object. + */ model Extension is Azure.ResourceManager.ProxyResource { -...ResourceNameParameter -/** -* Identity of the Extension resource -*/ -#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" -"identity"?: Azure.ResourceManager.CommonTypes.Identity; -...Azure.ResourceManager.ResourcePlanProperty + ...ResourceNameParameter< + Resource = Extension, + KeyName = "extensionName", + SegmentName = "extensions", + NamePattern = "" + >; + + /** + * Identity of the Extension resource + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" + identity?: Azure.ResourceManager.CommonTypes.Identity; + + ...Azure.ResourceManager.ResourcePlanProperty; } - - -alias {clusterResourceName}ExternalResource = Extension.ExternalResource<"{clusterRp}" - , "{clusterResourceName}", "{clusterName}">; - -@armResourceOperations +alias ExtensionOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + ...ResourceGroupParameter; + + /** + * The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService. + */ + @path + @segment("providers") + @key + clusterRp: string; + + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. + */ + @key + @path + @pattern("^[a-zA-Z]*$") + clusterResourceName: string; + + /** + * The name of the kubernetes cluster. + */ + @key + @path + @pattern("^.*") + clusterName: string; + }, + { + ...Azure.ResourceManager.Extension.ExtensionProviderNamespace; + ...ParentKeysOf; + }, + { + ...Azure.ResourceManager.Extension.ExtensionProviderNamespace; + ...KeysOf; + } +>; + +alias ExtensionBuildingOps = Azure.ResourceManager.Legacy.RoutedOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + ...ResourceGroupParameter; + + /** + * The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService. + */ + @path + @segment("providers") + @key + clusterRp: string; + + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. + */ + @key + @path + @pattern("^[a-zA-Z]*$") + clusterResourceName: string; + + /** + * The name of the kubernetes cluster. + */ + @pattern("^.*") + @key + @path + clusterName: string; + + ...KeysOf; + }, + { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @path + @segment("operations") + @key + operationId: string; + }, + ResourceRoute = #{ + route: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensions", + } +>; + +@armResourceOperations(#{ allowStaticRoutes: true }) interface Extensions { -/** -* Gets Kubernetes Cluster Extension. -*/ -get is ArmResourceRead; - - -/** -* Create a new Kubernetes Cluster Extension. -*/ -create is ArmResourceCreateOrReplaceAsync; - - -/** -* Patch an existing Kubernetes Cluster Extension. -*/ -@patch(#{ implicitOptionality: false }) -#suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" -update is ArmCustomPatchAsync | ArmAcceptedLroResponse & Azure.Core.Foundations.RetryAfterHeader> & { @bodyRoot -"_": Extension; } - >; - - -/** -* Delete a Kubernetes Cluster Extension. This will cause the Agent to Uninstall the extension from the cluster. -*/ -#suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "For backward compatibility" -#suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" -delete is ArmResourceDeleteWithoutOkAsync | ArmDeletedNoContentResponse - >; - - -/** -* List all Extensions in the cluster. -*/ -list is ArmResourceListByParent - >; - - -/** -* Get Async Operation status -*/ -#suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" -@operationId("OperationStatus_Get") -@get -@action("{operationId}") -operationStatusGet is ArmResourceActionSync, Parameters = { /** -* The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. -*/ -@pattern("^[a-zA-Z]*$") -@path -"clusterResourceName": string, -/** -* operation Id -*/ -@path -"operationId": string }>; - - + /** + * Gets Kubernetes Cluster Extension. + */ + get is ExtensionOps.Read; + + /** + * Create a new Kubernetes Cluster Extension. + */ + create is ExtensionOps.CreateOrUpdateAsync; + + /** + * Patch an existing Kubernetes Cluster Extension. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" + @patch(#{ implicitOptionality: false }) + update is ExtensionOps.CustomPatchAsync< + Extension, + PatchModel = PatchExtension, + Parameters = {}, + Response = ArmResponse | (ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> & { + @bodyRoot + _: Extension; + }) + >; + + /** + * Delete a Kubernetes Cluster Extension. This will cause the Agent to Uninstall the extension from the cluster. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + delete is ExtensionOps.DeleteWithoutOkAsync< + Extension, + Parameters = { + /** + * Delete the extension resource in Azure - not the normal asynchronous delete. + */ + @query("forceDelete") + forceDelete?: boolean; + }, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * List all Extensions in the cluster. + */ + list is ExtensionOps.List>; + + /** + * Get Async Operation status + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("OperationStatus_Get") + @get + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensions/{extensionName}/operations/{operationId}") + operationStatusGet is ExtensionBuildingOps.ActionSync< + Extension, + void, + ArmResponse + >; } - -@@doc(Extension.name, "Name of the Extension.") -@@doc(Extension.properties, "Properties of an Extension resource") -@@doc(Extensions.`create`::parameters.resource, "Properties necessary to Create an Extension."); -@@doc(Extensions.`update`::parameters.properties, "Properties to Patch in an existing Extension."); \ No newline at end of file +@@doc(Extension.name, "Name of the Extension."); +@@doc(Extension.properties, "Properties of an Extension resource"); +@@doc(Extensions.create::parameters.resource, + "Properties necessary to Create an Extension." +); +@@doc(Extensions.update::parameters.properties, + "Properties to Patch in an existing Extension." +); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/main.tsp index 1374caa0f67a..e19e534ebedb 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/main.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/main.tsp @@ -22,8 +22,9 @@ using Azure.Core; using Azure.ResourceManager; using TypeSpec.Versioning; /** - * KubernetesConfiguration Extensions Client + * Use these APIs to create extension resources through ARM, for Kubernetes Clusters. */ +#suppress "@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @armProviderNamespace @service(#{ title: "ExtensionsClient" }) @versioned(Versions) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp index 093cfc52d250..3ad37efbcfb5 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp @@ -134,7 +134,8 @@ model ExtensionProperties { /** * User-specified version of the extension for this extension to 'pin'. To use 'version', autoUpgradeMinorVersion must be 'false'. */ - version?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + version?: string | null; /** * Scope at which the extension is installed. @@ -144,20 +145,23 @@ model ExtensionProperties { /** * Configuration settings, as name-value pairs for configuring this extension. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" - configurationSettings?: Record; + configurationSettings?: Record | null; /** * Configuration settings that are sensitive, as name-value pairs for configuring this extension. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" - configurationProtectedSettings?: Record; + configurationProtectedSettings?: Record | null; /** * Currently installed version of the extension. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" @visibility(Lifecycle.Read) - currentVersion?: string; + currentVersion?: string | null; /** * Status of installation of this extension. @@ -174,32 +178,36 @@ model ExtensionProperties { /** * Error information from the Agent - e.g. errors during installation. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" @visibility(Lifecycle.Read) - errorInfo?: Azure.ResourceManager.CommonTypes.ErrorDetail; + errorInfo?: Azure.ResourceManager.CommonTypes.ErrorDetail | null; /** * Custom Location settings properties. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" @visibility(Lifecycle.Read) - customLocationSettings?: Record; + customLocationSettings?: Record | null; /** * Uri of the Helm package */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" @visibility(Lifecycle.Read) - packageUri?: string; + packageUri?: string | null; /** * Identity of the Extension resource in an AKS cluster */ - aksAssignedIdentity?: ExtensionPropertiesAksAssignedIdentity; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + aksAssignedIdentity?: ExtensionPropertiesAksAssignedIdentity | null; /** * Flag to note if this extension is a system extension */ @visibility(Lifecycle.Read) - isSystemExtension?: boolean; + isSystemExtension?: boolean = false; } /** @@ -209,12 +217,14 @@ model Scope { /** * Specifies that the scope of the extension is Cluster */ - cluster?: ScopeCluster; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + cluster?: ScopeCluster | null; /** * Specifies that the scope of the extension is Namespace */ - `namespace`?: ScopeNamespace; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + `namespace`?: ScopeNamespace | null; } /** @@ -316,19 +326,23 @@ model PatchExtensionProperties { /** * Version of the extension for this extension, if it is 'pinned' to a specific version. autoUpgradeMinorVersion must be 'false'. */ - version?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + version?: string | null; /** * Configuration settings, as name-value pairs for configuring this extension. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" - configurationSettings?: Record; + configurationSettings?: Record | null; /** * Configuration settings that are sensitive, as name-value pairs for configuring this extension. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" - configurationProtectedSettings?: Record; + @secret + configurationProtectedSettings?: Record | null; } /** @@ -358,12 +372,14 @@ model OperationStatusResult { /** * Additional information, if available. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" - properties?: Record; + properties?: Record | null; /** * If present, details of the operation error. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" @visibility(Lifecycle.Read) - error?: Azure.ResourceManager.CommonTypes.ErrorDetail; + error?: Azure.ResourceManager.CommonTypes.ErrorDetail | null; } diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtension.json index 86ca5e8ab086..842e0d910b42 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtension.json @@ -1,111 +1,113 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", - "extensionName": "ClusterMonitor", "api-version": "2024-11-01", "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "extension": { "properties": { - "extensionType": "azuremonitor-containers", "autoUpgradeMinorVersion": true, + "configurationProtectedSettings": { + "omsagent.secret.key": "secretKeyValue01" + }, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "extensionType": "azuremonitor-containers", "releaseTrain": "Preview", "scope": { "cluster": { "releaseNamespace": "kube-system" } - }, - "configurationSettings": { - "omsagent.secret.wsid": "fakeTokenPlaceholder", - "omsagent.env.clusterName": "clusterName1" - }, - "configurationProtectedSettings": { - "omsagent.secret.key": "secretKeyValue01" } } - } + }, + "extensionName": "ClusterMonitor", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { - "201": { - "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/{operationId}", - "x-ms-async-operation-timeout": "PT48H", - "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId?api-version=2024-11-01" - }, + "200": { "description": "Details of the Kubernetes Extension's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", - "type": "Microsoft.KubernetesConfiguration/extensions", "name": "ClusterMonitor", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-09-08T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2021-09-08T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", "properties": { - "extensionType": "azuremonitor-containers", "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": "0.1.4", + "extensionType": "azuremonitor-containers", + "isSystemExtension": false, + "provisioningState": "Succeeded", "releaseTrain": "Preview", - "version": "0.1.4", "scope": { "cluster": { "releaseNamespace": "kube-system" } }, - "configurationSettings": { - "omsagent.secret.wsid": "fakeTokenPlaceholder", - "omsagent.env.clusterName": "clusterName1" - }, - "provisioningState": "Creating", - "currentVersion": null, "statuses": [], - "isSystemExtension": false + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } - } - }, - "200": { + }, "headers": { "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/{operationId}", "x-ms-async-operation-timeout": "PT48H" - }, + } + }, + "201": { "description": "Details of the Kubernetes Extension's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", - "type": "Microsoft.KubernetesConfiguration/extensions", "name": "ClusterMonitor", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-09-08T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2021-09-08T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", "properties": { - "extensionType": "azuremonitor-containers", "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": null, + "extensionType": "azuremonitor-containers", + "isSystemExtension": false, + "provisioningState": "Creating", "releaseTrain": "Preview", - "version": "0.1.4", "scope": { "cluster": { "releaseNamespace": "kube-system" } }, - "configurationSettings": { - "omsagent.secret.wsid": "fakeTokenPlaceholder", - "omsagent.env.clusterName": "clusterName1" - }, - "provisioningState": "Succeeded", - "currentVersion": "0.1.4", "statuses": [], - "isSystemExtension": false + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId?api-version=2024-11-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/{operationId}", + "x-ms-async-operation-timeout": "PT48H" } } - } -} + }, + "operationId": "Extensions_Create", + "title": "Create Extension" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtensionWithPlan.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtensionWithPlan.json index 25405f30da36..f89b12875af9 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtensionWithPlan.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtensionWithPlan.json @@ -1,106 +1,108 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", - "extensionName": "azureVote", "api-version": "2024-11-01", "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "extension": { + "plan": { + "name": "azure-vote-standard", + "product": "azure-vote-standard-offer-id", + "publisher": "Microsoft" + }, "properties": { - "extensionType": "azure-vote", "autoUpgradeMinorVersion": true, + "extensionType": "azure-vote", "releaseTrain": "Preview" - }, - "plan": { - "name": "azure-vote-standard", - "publisher": "Microsoft", - "product": "azure-vote-standard-offer-id" } - } + }, + "extensionName": "azureVote", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { - "201": { - "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote/operations/{operationId}", - "x-ms-async-operation-timeout": "PT48H", - "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote/operations/operationId?api-version=2024-11-01" - }, + "200": { "description": "Details of the Kubernetes Extension's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", - "type": "Microsoft.KubernetesConfiguration/extensions", "name": "azureVote", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-09-08T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2021-09-08T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", "plan": { "name": "azure-vote-standard", - "publisher": "Microsoft", - "product": "azure-vote-standard-offer-id" + "product": "azure-vote-standard-offer-id", + "publisher": "Microsoft" }, "properties": { - "extensionType": "azure-vote", "autoUpgradeMinorVersion": true, + "currentVersion": "0.1.4", + "extensionType": "azure-vote", + "isSystemExtension": false, + "provisioningState": "Creating", "releaseTrain": "Preview", - "version": "0.1.4", "scope": { "cluster": { "releaseNamespace": "kube-system" } }, - "provisioningState": "Creating", "statuses": [], - "currentVersion": null, - "isSystemExtension": false + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } - } - }, - "200": { + }, "headers": { "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote/operations/{operationId}", "x-ms-async-operation-timeout": "PT48H" - }, + } + }, + "201": { "description": "Details of the Kubernetes Extension's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", - "type": "Microsoft.KubernetesConfiguration/extensions", "name": "azureVote", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-09-08T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2021-09-08T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", "plan": { "name": "azure-vote-standard", - "publisher": "Microsoft", - "product": "azure-vote-standard-offer-id" + "product": "azure-vote-standard-offer-id", + "publisher": "Microsoft" }, "properties": { - "extensionType": "azure-vote", "autoUpgradeMinorVersion": true, + "currentVersion": null, + "extensionType": "azure-vote", + "isSystemExtension": false, + "provisioningState": "Creating", "releaseTrain": "Preview", - "version": "0.1.4", "scope": { "cluster": { "releaseNamespace": "kube-system" } }, - "provisioningState": "Creating", "statuses": [], - "currentVersion": "0.1.4", - "isSystemExtension": false + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote/operations/operationId?api-version=2024-11-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote/operations/{operationId}", + "x-ms-async-operation-timeout": "PT48H" } } - } -} + }, + "operationId": "Extensions_Create", + "title": "Create Extension with Plan" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/DeleteExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/DeleteExtension.json index 9b294adb4fd4..3ff83ebc540e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/DeleteExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/DeleteExtension.json @@ -1,22 +1,24 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", + "api-version": "2024-11-01", + "clusterName": "clusterName1", "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "extensionName": "ClusterMonitor", - "api-version": "2024-11-01", - "clusterName": "clusterName1" + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { + "200": {}, "202": { "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/{operationId}", "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId?api-version=2024-11-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/{operationId}", "x-ms-async-operation-timeout": "PT1H" } }, - "200": {}, "204": {} - } -} + }, + "operationId": "Extensions_Delete", + "title": "Delete Extension" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtension.json index 499ca6b52236..8ec5d7f85b12 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtension.json @@ -1,49 +1,51 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", + "api-version": "2024-11-01", + "clusterName": "clusterName1", "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "extensionName": "ClusterMonitor", - "api-version": "2024-11-01", - "clusterName": "clusterName1" + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": {}, "description": "Details of the Kubernetes Extension's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", - "type": "Microsoft.KubernetesConfiguration/extensions", "name": "ClusterMonitor", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-09-08T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2021-09-08T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", "properties": { - "extensionType": "azuremonitor-containers", "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": "0.1.4", + "extensionType": "azuremonitor-containers", + "isSystemExtension": false, + "provisioningState": "Succeeded", "releaseTrain": "Preview", - "version": "0.1.4", "scope": { "cluster": { "releaseNamespace": "kube-system" } }, - "configurationSettings": { - "omsagent.secret.wsid": "fakeTokenPlaceholder", - "omsagent.env.clusterName": "clusterName1" - }, - "provisioningState": "Succeeded", - "currentVersion": "0.1.4", "statuses": [], - "isSystemExtension": false + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } - } + }, + "headers": {} } - } -} + }, + "operationId": "Extensions_Get", + "title": "Get Extension" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionAsyncOperationStatus.json index 99452f9b8a87..df58d08adbe4 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionAsyncOperationStatus.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionAsyncOperationStatus.json @@ -1,24 +1,26 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", - "extensionName": "ClusterMonitor", + "operationId": "99999999-9999-9999-9999-999999999999", "api-version": "2024-11-01", "clusterName": "clusterName1", - "operationId": "99999999-9999-9999-9999-999999999999" + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extensionName": "ClusterMonitor", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/99999999-9999-9999-9999-999999999999", "name": "99999999-9999-9999-9999-999999999999", - "status": "Succeeded", + "error": null, + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/99999999-9999-9999-9999-999999999999", "properties": {}, - "error": null - } + "status": "Succeeded" + }, + "headers": {} } - } -} + }, + "operationId": "OperationStatus_Get", + "title": "ExtensionAsyncOperationStatus Get" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionWithPlan.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionWithPlan.json index 3f1a78625597..35748a4210f3 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionWithPlan.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionWithPlan.json @@ -1,54 +1,56 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", + "api-version": "2024-11-01", + "clusterName": "clusterName1", "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "extensionName": "azureVote", - "api-version": "2024-11-01", - "clusterName": "clusterName1" + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": {}, "description": "Details of the Kubernetes Extension's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", - "type": "Microsoft.KubernetesConfiguration/extensions", "name": "azureVote", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-09-08T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2021-09-08T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", "plan": { "name": "azure-vote-standard", - "publisher": "Microsoft", - "product": "azure-vote-standard-offer-id" + "product": "azure-vote-standard-offer-id", + "publisher": "Microsoft" }, "properties": { - "extensionType": "azure-vote", "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": "0.1.4", + "extensionType": "azure-vote", + "isSystemExtension": false, + "provisioningState": "Succeeded", "releaseTrain": "Preview", - "version": "0.1.4", "scope": { "cluster": { "releaseNamespace": "kube-system" } }, - "configurationSettings": { - "omsagent.secret.wsid": "fakeTokenPlaceholder", - "omsagent.env.clusterName": "clusterName1" - }, - "provisioningState": "Succeeded", - "currentVersion": "0.1.4", "statuses": [], - "isSystemExtension": false + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } - } + }, + "headers": {} } - } -} + }, + "operationId": "Extensions_Get", + "title": "Get Extension with Plan" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/ListExtensions.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/ListExtensions.json index c8ba347519ba..0f07f0b84e38 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/ListExtensions.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/ListExtensions.json @@ -1,117 +1,119 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", "api-version": "2024-11-01", - "clusterName": "clusterName1" + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", - "type": "Microsoft.KubernetesConfiguration/extensions", "name": "ClusterMonitor", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-09-08T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2021-09-08T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor", "properties": { - "extensionType": "azuremonitor-containers", "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": "0.1.4", + "extensionType": "azuremonitor-containers", + "isSystemExtension": false, + "provisioningState": "Succeeded", "releaseTrain": "Preview", - "version": "0.1.4", "scope": { "cluster": { "releaseNamespace": "kube-system" } }, - "configurationSettings": { - "omsagent.secret.wsid": "fakeTokenPlaceholder", - "omsagent.env.clusterName": "clusterName1" - }, - "provisioningState": "Succeeded", - "currentVersion": "0.1.4", "statuses": [], - "isSystemExtension": false - } - }, - { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/BackupVault01", - "type": "Microsoft.KubernetesConfiguration/extensions", - "name": "App1Monitor", + "version": "0.1.4" + }, "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", "createdBy": "string", "createdByType": "Application", - "createdAt": "2021-09-08T04:09:23.011Z", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2021-09-08T04:09:23.011Z" - }, + "lastModifiedByType": "Application" + } + }, + { + "name": "App1Monitor", + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/BackupVault01", "properties": { - "extensionType": "Microsoft.RecoveryServices/recoveryVault", "autoUpgradeMinorVersion": true, + "configurationSettings": {}, + "currentVersion": "1.0.1", + "extensionType": "Microsoft.RecoveryServices/recoveryVault", + "isSystemExtension": false, + "provisioningState": "Succeeded", "releaseTrain": "Stable", - "version": null, "scope": { "cluster": { "releaseNamespace": "myKVNamespace" } }, - "configurationSettings": {}, - "provisioningState": "Succeeded", - "currentVersion": "1.0.1", "statuses": [], - "isSystemExtension": false - } - }, - { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", - "type": "Microsoft.KubernetesConfiguration/extensions", - "name": "azureVote", + "version": null + }, "systemData": { + "createdAt": "2021-09-08T04:09:23.011Z", "createdBy": "string", "createdByType": "Application", - "createdAt": "2021-09-08T05:10:57.027Z", + "lastModifiedAt": "2021-09-08T04:09:23.011Z", "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2021-09-08T05:10:57.027Z" - }, + "lastModifiedByType": "Application" + } + }, + { + "name": "azureVote", + "type": "Microsoft.KubernetesConfiguration/extensions", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/azureVote", "plan": { "name": "azure-vote-standard", - "publisher": "Microsoft", - "product": "azure-vote-standard-offer-id" + "product": "azure-vote-standard-offer-id", + "publisher": "Microsoft" }, "properties": { - "extensionType": "azure-vote", "autoUpgradeMinorVersion": false, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "currentVersion": "0.1.4", + "extensionType": "azure-vote", + "isSystemExtension": false, + "provisioningState": "Succeeded", "releaseTrain": "Preview", - "version": "0.1.4", "scope": { "cluster": { "releaseNamespace": "kube-system" } }, - "configurationSettings": { - "omsagent.secret.wsid": "fakeTokenPlaceholder", - "omsagent.env.clusterName": "clusterName1" - }, - "provisioningState": "Succeeded", - "currentVersion": "0.1.4", "statuses": [], - "isSystemExtension": false + "version": "0.1.4" + }, + "systemData": { + "createdAt": "2021-09-08T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2021-09-08T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } } - ], - "nextLink": null + ] } } - } -} + }, + "operationId": "Extensions_List", + "title": "List Extensions" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/PatchExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/PatchExtension.json index fe36f9429e84..ffe640eaae68 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/PatchExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/PatchExtension.json @@ -1,75 +1,77 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", - "extensionName": "ClusterMonitor", "api-version": "2024-11-01", "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "extensionName": "ClusterMonitor", "patchExtension": { "properties": { "autoUpgradeMinorVersion": true, - "releaseTrain": "Preview", - "configurationSettings": { - "omsagent.secret.wsid": "fakeTokenPlaceholder", - "omsagent.env.clusterName": "clusterName1" - }, "configurationProtectedSettings": { "omsagent.secret.key": "secretKeyValue01" - } + }, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "releaseTrain": "Preview" } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { "description": "Extension properties from not updating any property values.", "body": { "properties": { - "extensionType": "azuremonitor-containers", "autoUpgradeMinorVersion": true, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "extensionType": "azuremonitor-containers", + "provisioningState": "Succeeded", "releaseTrain": "Preview", - "version": "0.1.4", "scope": { "cluster": { "releaseNamespace": "kube-system" } }, - "configurationSettings": { - "omsagent.secret.wsid": "fakeTokenPlaceholder", - "omsagent.env.clusterName": "clusterName1" - }, - "provisioningState": "Succeeded", - "statuses": [] + "statuses": [], + "version": "0.1.4" } } }, "202": { - "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId", - "x-ms-async-operation-timeout": "PT48H", - "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId?api-version=2024-11-01" - }, "description": "Extension properties and details of the Patch operation, including AsyncOperation url.", "body": { "properties": { - "extensionType": "azuremonitor-containers", "autoUpgradeMinorVersion": true, + "configurationSettings": { + "omsagent.env.clusterName": "clusterName1", + "omsagent.secret.wsid": "fakeTokenPlaceholder" + }, + "extensionType": "azuremonitor-containers", + "provisioningState": "Updating", "releaseTrain": "Preview", - "version": "0.1.4", "scope": { "cluster": { "releaseNamespace": "kube-system" } }, - "configurationSettings": { - "omsagent.secret.wsid": "fakeTokenPlaceholder", - "omsagent.env.clusterName": "clusterName1" - }, - "provisioningState": "Updating", - "statuses": [] + "statuses": [], + "version": "0.1.4" } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId?api-version=2024-11-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId", + "x-ms-async-operation-timeout": "PT48H" } } - } -} + }, + "operationId": "Extensions_Update", + "title": "Update Extension" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json index 8195f3510c52..0b54b9d6548e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json @@ -1,18 +1,23 @@ { "swagger": "2.0", "info": { - "version": "2024-11-01", "title": "ExtensionsClient", - "description": "Use these APIs to create extension resources through ARM, for Kubernetes Clusters." + "version": "2024-11-01", + "description": "Use these APIs to create extension resources through ARM, for Kubernetes Clusters.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, - "host": "management.azure.com", "schemes": [ "https" ], - "consumes": [ + "host": "management.azure.com", + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], "security": [ @@ -25,428 +30,728 @@ "securityDefinitions": { "azure_auth": { "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "description": "Azure Active Directory OAuth2 Flow.", "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } } }, + "tags": [ + { + "name": "Extensions" + } + ], "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensions/{extensionName}": { - "put": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensions": { + "get": { + "operationId": "Extensions_List", "tags": [ - "Extensions", - "ClusterExtensions" + "Extensions" ], - "description": "Create a new Kubernetes Cluster Extension.", - "operationId": "Extensions_Create", - "x-ms-examples": { - "Create Extension": { - "$ref": "./examples/CreateExtension.json" - }, - "Create Extension with Plan": { - "$ref": "./examples/CreateExtensionWithPlan.json" - } - }, + "description": "List all Extensions in the cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/ExtensionNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "name": "extension", - "in": "body", + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", "required": true, - "schema": { - "$ref": "#/definitions/Extension" - }, - "description": "Properties necessary to Create an Extension." + "type": "string", + "pattern": "^.*" } ], "responses": { - "201": { - "description": "Request received successfully.", - "schema": { - "$ref": "#/definitions/Extension" - } - }, "200": { - "description": "Request received successfully for an existing resource.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "#/definitions/Extension" + "$ref": "#/definitions/ExtensionsList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" + "x-ms-examples": { + "List Extensions": { + "$ref": "./examples/ListExtensions.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" } - }, + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensions/{extensionName}": { "get": { + "operationId": "Extensions_Get", "tags": [ - "Extensions", - "ClusterExtensions" + "Extensions" ], "description": "Gets Kubernetes Cluster Extension.", - "operationId": "Extensions_Get", - "x-ms-examples": { - "Get Extension": { - "$ref": "./examples/GetExtension.json" - }, - "Get Extension with Plan": { - "$ref": "./examples/GetExtensionWithPlan.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "#/parameters/ExtensionNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "extensionName", + "in": "path", + "description": "Name of the Extension.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/Extension" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "Get Extension": { + "$ref": "./examples/GetExtension.json" + }, + "Get Extension with Plan": { + "$ref": "./examples/GetExtensionWithPlan.json" + } } }, - "delete": { + "put": { + "operationId": "Extensions_Create", "tags": [ - "Extensions", - "ClusterExtensions" + "Extensions" ], - "description": "Delete a Kubernetes Cluster Extension. This will cause the Agent to Uninstall the extension from the cluster.", - "operationId": "Extensions_Delete", - "x-ms-examples": { - "Delete Extension": { - "$ref": "./examples/DeleteExtension.json" - } - }, + "description": "Create a new Kubernetes Cluster Extension.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "#/parameters/ExtensionNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "extensionName", + "in": "path", + "description": "Name of the Extension.", + "required": true, + "type": "string" }, { - "name": "forceDelete", - "in": "query", - "description": "Delete the extension resource in Azure - not the normal asynchronous delete.", - "type": "boolean" + "name": "extension", + "in": "body", + "description": "Properties necessary to Create an Extension.", + "required": true, + "schema": { + "$ref": "#/definitions/Extension" + } } ], "responses": { "200": { - "description": "OK" - }, - "202": { - "description": "Accepted. The request has been accepted for processing." + "description": "Resource 'Extension' update operation succeeded", + "schema": { + "$ref": "#/definitions/Extension" + } }, - "204": { - "description": "No Content. The request has been accepted but the extension was not found." + "201": { + "description": "Resource 'Extension' create operation succeeded", + "schema": { + "$ref": "#/definitions/Extension" + }, + "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": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, + "x-ms-examples": { + "Create Extension": { + "$ref": "./examples/CreateExtension.json" + }, + "Create Extension with Plan": { + "$ref": "./examples/CreateExtensionWithPlan.json" + } + }, "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/Extension" + }, + "x-ms-long-running-operation": true }, "patch": { + "operationId": "Extensions_Update", "tags": [ - "Extensions", - "ClusterExtensions" + "Extensions" ], "description": "Patch an existing Kubernetes Cluster Extension.", - "operationId": "Extensions_Update", - "x-ms-examples": { - "Update Extension": { - "$ref": "./examples/PatchExtension.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "#/parameters/ExtensionNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "extensionName", + "in": "path", + "description": "Name of the Extension.", + "required": true, + "type": "string" }, { "name": "patchExtension", "in": "body", + "description": "Properties to Patch in an existing Extension.", "required": true, "schema": { - "$ref": "#/definitions/patchExtension" - }, - "description": "Properties to Patch in an existing Extension." + "$ref": "#/definitions/PatchExtension" + } } ], "responses": { - "202": { - "description": "Request received successfully, and the resource will be updated asynchronously.", + "200": { + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/Extension" } }, - "200": { - "description": "No update is done to extension so return OK.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "schema": { "$ref": "#/definitions/Extension" + }, + "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": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensions": { - "get": { - "tags": [ - "Extensions", - "ClusterExtensions" - ], - "description": "List all Extensions in the cluster.", - "operationId": "Extensions_List", "x-ms-examples": { - "List Extensions": { - "$ref": "./examples/ListExtensions.json" + "Update Extension": { + "$ref": "./examples/PatchExtension.json" } }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/Extension" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Extensions_Delete", + "tags": [ + "Extensions" + ], + "description": "Delete a Kubernetes Cluster Extension. This will cause the Agent to Uninstall the extension from the cluster.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "extensionName", + "in": "path", + "description": "Name of the Extension.", + "required": true, + "type": "string" + }, + { + "name": "forceDelete", + "in": "query", + "description": "Delete the extension resource in Azure - not the normal asynchronous delete.", + "required": false, + "type": "boolean" } ], "responses": { "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/ExtensionsList" + "description": "Resource deleted successfully." + }, + "202": { + "description": "Resource deletion accepted.", + "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." + } } }, + "204": { + "description": "Resource does not exist." + }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } + "x-ms-examples": { + "Delete Extension": { + "$ref": "./examples/DeleteExtension.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-long-running-operation": true } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensions/{extensionName}/operations/{operationId}": { "get": { + "operationId": "OperationStatus_Get", "tags": [ - "Extension Operation Status" + "Extensions" ], - "operationId": "OperationStatus_Get", "description": "Get Async Operation status", - "x-ms-examples": { - "ExtensionAsyncOperationStatus Get": { - "$ref": "./examples/GetExtensionAsyncOperationStatus.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "#/parameters/ExtensionNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "extensionName", + "in": "path", + "description": "Name of the Extension.", + "required": true, + "type": "string" }, { "name": "operationId", "in": "path", - "description": "operation Id", "required": true, "type": "string" } ], "responses": { "200": { - "description": "Extension Operation Status", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../common/2022-03-01/definitions.json#/definitions/OperationStatusResult" + "$ref": "#/definitions/OperationStatusResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "ExtensionAsyncOperationStatus Get": { + "$ref": "./examples/GetExtensionAsyncOperationStatus.json" + } } } } }, "definitions": { - "ScopeCluster": { - "description": "Specifies that the scope of the extension is Cluster", - "type": "object", - "properties": { - "releaseNamespace": { - "description": "Namespace where the extension Release must be placed, for a Cluster scoped extension. If this namespace does not exist, it will be created", - "type": "string" - } + "AKSIdentityType": { + "type": "string", + "description": "The identity type.", + "enum": [ + "SystemAssigned", + "UserAssigned" + ], + "x-ms-enum": { + "name": "AKSIdentityType", + "modelAsString": false, + "values": [ + { + "name": "SystemAssigned", + "value": "SystemAssigned", + "description": "SystemAssigned" + }, + { + "name": "UserAssigned", + "value": "UserAssigned", + "description": "UserAssigned" + } + ] } }, - "ScopeNamespace": { - "description": "Specifies that the scope of the extension is Namespace", + "CreatedByType": { + "type": "string", + "description": "The type of identity that created the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "CreatedByType", + "modelAsString": true, + "values": [ + { + "name": "User", + "value": "User", + "description": "User" + }, + { + "name": "Application", + "value": "Application", + "description": "Application" + }, + { + "name": "ManagedIdentity", + "value": "ManagedIdentity", + "description": "ManagedIdentity" + }, + { + "name": "Key", + "value": "Key", + "description": "Key" + } + ] + } + }, + "Extension": { "type": "object", + "description": "The Extension object.", "properties": { - "targetNamespace": { - "description": "Namespace where the extension will be created for an Namespace scoped extension. If this namespace does not exist, it will be created", - "type": "string" + "properties": { + "$ref": "#/definitions/ExtensionProperties", + "description": "Properties of an Extension resource", + "x-ms-client-flatten": true + }, + "identity": { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/Identity", + "description": "Identity of the Extension resource" + }, + "plan": { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/Plan", + "description": "Details of the resource plan." } - } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] }, - "Scope": { - "description": "Scope of the extension. It can be either Cluster or Namespace; but not both.", + "ExtensionProperties": { "type": "object", + "description": "Properties of an Extension resource", "properties": { - "cluster": { + "extensionType": { + "type": "string", + "description": "Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types registered with Microsoft.KubernetesConfiguration by the Extension publisher." + }, + "autoUpgradeMinorVersion": { + "type": "boolean", + "description": "Flag to note if this extension participates in auto upgrade of minor version, or not.", + "default": true + }, + "releaseTrain": { + "type": "string", + "description": "ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if autoUpgradeMinorVersion is 'true'.", + "default": "Stable" + }, + "version": { + "type": "string", + "description": "User-specified version of the extension for this extension to 'pin'. To use 'version', autoUpgradeMinorVersion must be 'false'.", + "x-nullable": true + }, + "scope": { + "$ref": "#/definitions/Scope", + "description": "Scope at which the extension is installed." + }, + "configurationSettings": { "type": "object", + "description": "Configuration settings, as name-value pairs for configuring this extension.", "x-nullable": true, - "description": "Specifies that the scope of the extension is Cluster", - "$ref": "#/definitions/ScopeCluster" + "additionalProperties": { + "type": "string" + } }, - "namespace": { + "configurationProtectedSettings": { "type": "object", + "description": "Configuration settings that are sensitive, as name-value pairs for configuring this extension.", "x-nullable": true, - "description": "Specifies that the scope of the extension is Namespace", - "$ref": "#/definitions/ScopeNamespace" + "additionalProperties": { + "type": "string" + } + }, + "currentVersion": { + "type": "string", + "description": "Currently installed version of the extension.", + "x-nullable": true, + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Status of installation of this extension.", + "readOnly": true + }, + "statuses": { + "type": "array", + "description": "Status from this extension.", + "items": { + "$ref": "#/definitions/ExtensionStatus" + }, + "x-ms-identifiers": [] + }, + "errorInfo": { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorDetail", + "description": "Error information from the Agent - e.g. errors during installation.", + "x-nullable": true, + "readOnly": true + }, + "customLocationSettings": { + "type": "object", + "description": "Custom Location settings properties.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + }, + "readOnly": true + }, + "packageUri": { + "type": "string", + "description": "Uri of the Helm package", + "x-nullable": true, + "readOnly": true + }, + "aksAssignedIdentity": { + "$ref": "#/definitions/ExtensionPropertiesAksAssignedIdentity", + "description": "Identity of the Extension resource in an AKS cluster", + "x-nullable": true + }, + "isSystemExtension": { + "type": "boolean", + "description": "Flag to note if this extension is a system extension", + "default": false, + "readOnly": true + } + } + }, + "ExtensionPropertiesAksAssignedIdentity": { + "type": "object", + "description": "Identity of the Extension resource in an AKS cluster", + "properties": { + "principalId": { + "type": "string", + "description": "The principal ID of resource identity.", + "readOnly": true + }, + "tenantId": { + "type": "string", + "description": "The tenant ID of resource.", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/AKSIdentityType", + "description": "The identity type." } } }, "ExtensionStatus": { - "description": "Status from the extension.", "type": "object", - "readOnly": true, + "description": "Status from the extension.", "properties": { "code": { "type": "string", @@ -459,15 +764,32 @@ "level": { "type": "string", "description": "Level of the status.", + "default": "Information", "enum": [ "Error", "Warning", "Information" ], - "default": "Information", "x-ms-enum": { "name": "LevelType", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "name": "Error", + "value": "Error", + "description": "Error" + }, + { + "name": "Warning", + "value": "Warning", + "description": "Warning" + }, + { + "name": "Information", + "value": "Information", + "description": "Information" + } + ] } }, "message": { @@ -480,228 +802,226 @@ } } }, - "Extension": { - "description": "The Extension object.", + "ExtensionsList": { + "type": "object", + "description": "Result of the request to list Extensions. It contains a list of Extension objects and a URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "description": "The Extension items on this page", + "items": { + "$ref": "#/definitions/Extension" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "LevelType": { + "type": "string", + "description": "Level of the status.", + "enum": [ + "Error", + "Warning", + "Information" + ], + "x-ms-enum": { + "name": "LevelType", + "modelAsString": true, + "values": [ + { + "name": "Error", + "value": "Error", + "description": "Error" + }, + { + "name": "Warning", + "value": "Warning", + "description": "Warning" + }, + { + "name": "Information", + "value": "Information", + "description": "Information" + } + ] + } + }, + "OperationStatusResult": { "type": "object", + "description": "The current status of an async operation.", "properties": { + "id": { + "type": "string", + "description": "Fully qualified ID for the async operation." + }, + "name": { + "type": "string", + "description": "Name of the async operation." + }, + "status": { + "type": "string", + "description": "Operation status." + }, "properties": { "type": "object", - "x-ms-client-flatten": true, - "description": "Properties of an Extension resource", - "properties": { - "extensionType": { - "description": "Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types registered with Microsoft.KubernetesConfiguration by the Extension publisher.", - "type": "string" - }, - "autoUpgradeMinorVersion": { - "description": "Flag to note if this extension participates in auto upgrade of minor version, or not.", - "type": "boolean", - "default": true - }, - "releaseTrain": { - "description": "ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if autoUpgradeMinorVersion is 'true'.", - "type": "string", - "default": "Stable" - }, - "version": { - "description": "User-specified version of the extension for this extension to 'pin'. To use 'version', autoUpgradeMinorVersion must be 'false'.", - "type": "string", - "x-nullable": true - }, - "scope": { - "description": "Scope at which the extension is installed.", - "$ref": "#/definitions/Scope" - }, - "configurationSettings": { - "description": "Configuration settings, as name-value pairs for configuring this extension.", - "type": "object", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - }, - "configurationProtectedSettings": { - "description": "Configuration settings that are sensitive, as name-value pairs for configuring this extension.", - "type": "object", - "x-nullable": true, - "x-ms-secret": true, - "additionalProperties": { - "type": "string" - } - }, - "currentVersion": { - "description": "Currently installed version of the extension.", - "type": "string", - "readOnly": true, - "x-nullable": true - }, - "provisioningState": { - "description": "Status of installation of this extension.", - "type": "string", - "readOnly": true, - "$ref": "../../../common/2023-05-01-preview/definitions.json#/definitions/ProvisioningStateDefinition" - }, - "statuses": { - "description": "Status from this extension.", - "type": "array", - "x-nullable": true, - "items": { - "$ref": "#/definitions/ExtensionStatus" - }, - "x-ms-identifiers": [] - }, - "errorInfo": { - "description": "Error information from the Agent - e.g. errors during installation.", - "type": "object", - "readOnly": true, - "x-nullable": true, - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorDetail" - }, - "customLocationSettings": { - "description": "Custom Location settings properties.", - "type": "object", - "readOnly": true, - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - }, - "packageUri": { - "description": "Uri of the Helm package", - "type": "string", - "readOnly": true, - "x-nullable": true - }, - "aksAssignedIdentity": { - "description": "Identity of the Extension resource in an AKS cluster", - "x-nullable": true, - "type": "object", - "properties": { - "principalId": { - "readOnly": true, - "type": "string", - "description": "The principal ID of resource identity." - }, - "tenantId": { - "readOnly": true, - "type": "string", - "description": "The tenant ID of resource." - }, - "type": { - "type": "string", - "description": "The identity type.", - "enum": [ - "SystemAssigned", - "UserAssigned" - ], - "x-ms-enum": { - "name": "AKSIdentityType", - "modelAsString": false - } - } - } - }, - "isSystemExtension": { - "readOnly": true, - "description": "Flag to note if this extension is a system extension", - "type": "boolean", - "default": false - } + "description": "Additional information, if available.", + "x-nullable": true, + "additionalProperties": { + "type": "string" } }, - "identity": { - "description": "Identity of the Extension resource", + "error": { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorDetail", + "description": "If present, details of the operation error.", "x-nullable": true, - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/Identity" - }, - "systemData": { - "description": "Top level metadata https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources", - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData" - }, - "plan": { - "description": "The plan information.", - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/Plan" + "readOnly": true } }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" - } + "required": [ + "status" ] }, - "ExtensionsList": { - "description": "Result of the request to list Extensions. It contains a list of Extension objects and a URL link to get the next set of results.", + "PatchExtension": { "type": "object", + "description": "The Extension Patch Request object.", "properties": { - "value": { - "type": "array", - "readOnly": true, - "items": { - "$ref": "#/definitions/Extension" + "properties": { + "$ref": "#/definitions/PatchExtensionProperties", + "description": "Updatable properties of an Extension Patch Request", + "x-ms-client-flatten": true + } + } + }, + "PatchExtensionProperties": { + "type": "object", + "description": "Updatable properties of an Extension Patch Request", + "properties": { + "autoUpgradeMinorVersion": { + "type": "boolean", + "description": "Flag to note if this extension participates in auto upgrade of minor version, or not.", + "default": true + }, + "releaseTrain": { + "type": "string", + "description": "ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if autoUpgradeMinorVersion is 'true'.", + "default": "Stable" + }, + "version": { + "type": "string", + "description": "Version of the extension for this extension, if it is 'pinned' to a specific version. autoUpgradeMinorVersion must be 'false'.", + "x-nullable": true + }, + "configurationSettings": { + "type": "object", + "description": "Configuration settings, as name-value pairs for configuring this extension.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "configurationProtectedSettings": { + "type": "object", + "format": "password", + "description": "Configuration settings that are sensitive, as name-value pairs for configuring this extension.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + }, + "x-ms-secret": true + } + } + }, + "ProvisioningState": { + "type": "string", + "description": "The provisioning state of the resource.", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Creating", + "Updating", + "Deleting" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Failed" }, - "description": "List of Extensions within a Kubernetes cluster." + { + "name": "Canceled", + "value": "Canceled", + "description": "Canceled" + }, + { + "name": "Creating", + "value": "Creating", + "description": "Creating" + }, + { + "name": "Updating", + "value": "Updating", + "description": "Updating" + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Deleting" + } + ] + } + }, + "Scope": { + "type": "object", + "description": "Scope of the extension. It can be either Cluster or Namespace; but not both.", + "properties": { + "cluster": { + "$ref": "#/definitions/ScopeCluster", + "description": "Specifies that the scope of the extension is Cluster", + "x-nullable": true }, - "nextLink": { + "namespace": { + "$ref": "#/definitions/ScopeNamespace", + "description": "Specifies that the scope of the extension is Namespace", + "x-nullable": true + } + } + }, + "ScopeCluster": { + "type": "object", + "description": "Specifies that the scope of the extension is Cluster", + "properties": { + "releaseNamespace": { "type": "string", - "readOnly": true, - "description": "URL to get the next set of extension objects, if any." + "description": "Namespace where the extension Release must be placed, for a Cluster scoped extension. If this namespace does not exist, it will be created" } } }, - "patchExtension": { - "description": "The Extension Patch Request object.", + "ScopeNamespace": { "type": "object", + "description": "Specifies that the scope of the extension is Namespace", "properties": { - "properties": { - "type": "object", - "x-ms-client-flatten": true, - "description": "Updatable properties of an Extension Patch Request", - "properties": { - "autoUpgradeMinorVersion": { - "description": "Flag to note if this extension participates in auto upgrade of minor version, or not.", - "type": "boolean", - "default": true - }, - "releaseTrain": { - "description": "ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if autoUpgradeMinorVersion is 'true'.", - "type": "string", - "default": "Stable" - }, - "version": { - "description": "Version of the extension for this extension, if it is 'pinned' to a specific version. autoUpgradeMinorVersion must be 'false'.", - "type": "string", - "x-nullable": true - }, - "configurationSettings": { - "description": "Configuration settings, as name-value pairs for configuring this extension.", - "type": "object", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - }, - "configurationProtectedSettings": { - "description": "Configuration settings that are sensitive, as name-value pairs for configuring this extension.", - "type": "object", - "x-nullable": true, - "x-ms-secret": true, - "additionalProperties": { - "type": "string" - } - } - } + "targetNamespace": { + "type": "string", + "description": "Namespace where the extension will be created for an Namespace scoped extension. If this namespace does not exist, it will be created" } } } }, - "parameters": { - "ExtensionNameParameter": { - "name": "extensionName", - "in": "path", - "description": "Name of the Extension.", - "required": true, - "type": "string", - "x-ms-parameter-location": "method" - } - } + "parameters": {} } diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml index 1af9d1469535..4b5727cf26ec 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -2,10 +2,11 @@ emit: - "@azure-tools/typespec-autorest" options: "@azure-tools/typespec-autorest": - omit-unreachable-types: true - emitter-output-dir: "{project-root}/.." + omit-unreachable-types: false + emitter-output-dir: "{project-root}" azure-resource-provider-folder: "resource-manager" - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/extensions.json" + output-file: "{version-status}/{version}/extensions.json" + arm-types-dir: "{project-root}/../../../../common-types/resource-management" emit-lro-options: "all" examples-dir: "{project-root}/examples" linter: diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp index 5d3b9915232d..14ac0af6a702 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp @@ -5,7 +5,7 @@ * isFullCompatible: true * guessResourceKey: false * Version: 0.11.12 - * Date: 2026-01-07T08:40:13.928Z + * Date: 2026-01-08T07:23:46.567Z */ import "@typespec/rest"; import "@typespec/versioning"; From 711c34ef1cf3750fe7f45b8d656576a79d83cdad Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 9 Jan 2026 15:11:45 +0800 Subject: [PATCH 03/66] update --- .../extensionTypes/ExtensionType.tsp | 47 +- .../ExtensionTypeVersionForReleaseTrain.tsp | 54 +- .../extensionTypes/main.tsp | 3 +- .../extensionTypes/models.tsp | 7 + .../examples/GetExtensionType.json | 44 +- .../examples/GetExtensionTypeByLocation.json | 40 +- .../examples/GetExtensionTypeVersion.json | 56 +- .../GetExtensionTypeVersionByLocation.json | 52 +- .../examples/ListExtensionTypeVersions.json | 94 +-- .../ListExtensionTypeVersionsByLocation.json | 92 +-- .../examples/ListExtensionTypes.json | 50 +- .../ListExtensionTypesByLocation.json | 46 +- .../2024-11-01-preview/extensionTypes.json | 749 ++++++++++-------- .../extensionTypes/tspconfig.yaml | 7 +- 14 files changed, 730 insertions(+), 611 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp index ecb8b52087c0..89ad30426c2d 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp @@ -100,31 +100,37 @@ alias ExtensionTypeOperationGroupOps = Azure.ResourceManager.Legacy.ExtensionOpe ...SubscriptionIdParameter; ...ResourceGroupParameter; - /** the provider namespace */ + /** + * The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService. + */ @path @segment("providers") @key - providerNamespace: "clusterRp"; + clusterRp: string; - /** The name of the kubernetes cluster. */ + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. + */ + @key @path - @segment("{clusterResourceName}") + @pattern("^[a-zA-Z]*$") + clusterResourceName: string; + + /** + * The name of the kubernetes cluster. + */ @key + @path @pattern("^.*") clusterName: string; }, { ...Extension.ExtensionProviderNamespace; + ...ParentKeysOf; }, { ...Extension.ExtensionProviderNamespace; - - /** Name of the Extension Type. */ - @path - @segment("extensionTypes") - @key - @pattern("^[a-zA-Z][a-zA-Z0-9-_]*$") - extensionTypeName: string; + ...KeysOf; } >; @@ -135,17 +141,7 @@ interface ExtensionTypeOperationGroup { */ #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" @operationId("ExtensionTypes_Get") - get is ExtensionTypeOperationGroupOps.Read< - ExtensionType, - Parameters = { - /** - * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. - */ - @pattern("^[a-zA-Z]*$") - @path - clusterResourceName: string; - } - >; + get is ExtensionTypeOperationGroupOps.Read; /** * List installable Extension Types for the cluster based region and type for the cluster. @@ -155,13 +151,6 @@ interface ExtensionTypeOperationGroup { list is ExtensionTypeOperationGroupOps.List< ExtensionType, Parameters = { - /** - * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. - */ - @pattern("^[a-zA-Z]*$") - @path - clusterResourceName: string; - /** * Filter results by Publisher ID of a marketplace extension type */ diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp index 224c46efab1f..8bd1e0bf5709 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp @@ -106,38 +106,37 @@ alias ExtensionTypeVersionForReleaseTrainOperationGroupOps = Azure.ResourceManag ...SubscriptionIdParameter; ...ResourceGroupParameter; - /** the provider namespace */ + /** + * The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService. + */ @path @segment("providers") @key - providerNamespace: "clusterRp"; + clusterRp: string; - /** The name of the kubernetes cluster. */ + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. + */ + @key @path - @segment("{clusterResourceName}") + @pattern("^[a-zA-Z]*$") + clusterResourceName: string; + + /** + * The name of the kubernetes cluster. + */ @key + @path @pattern("^.*") clusterName: string; }, { ...Extension.ExtensionProviderNamespace; - - /** Name of the Extension Type. */ - @path - @segment("extensionTypes") - @key - @pattern("^[a-zA-Z][a-zA-Z0-9-_]*$") - extensionTypeName: string; + ...KeysOf; }, { ...Extension.ExtensionProviderNamespace; - - /** Name of the Extension Type. */ - @path - @segment("extensionTypes") - @key - @pattern("^[a-zA-Z][a-zA-Z0-9-_]*$") - extensionTypeName: string; + ...KeysOf; /** Version number of the Extension Type. */ @path @@ -154,17 +153,7 @@ interface ExtensionTypeVersionForReleaseTrainOperationGroup { */ #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" @operationId("ExtensionTypes_ClusterGetVersion") - clusterGetVersion is ExtensionTypeVersionForReleaseTrainOperationGroupOps.Read< - ExtensionTypeVersionForReleaseTrain, - Parameters = { - /** - * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. - */ - @pattern("^[a-zA-Z]*$") - @path - clusterResourceName: string; - } - >; + clusterGetVersion is ExtensionTypeVersionForReleaseTrainOperationGroupOps.Read; /** * List the version for an Extension Type installable to the cluster. @@ -174,13 +163,6 @@ interface ExtensionTypeVersionForReleaseTrainOperationGroup { clusterListVersions is ExtensionTypeVersionForReleaseTrainOperationGroupOps.List< ExtensionTypeVersionForReleaseTrain, Parameters = { - /** - * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. - */ - @pattern("^[a-zA-Z]*$") - @path - clusterResourceName: string; - /** * Filter results by release train (default value is stable) */ diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp index 1798c8e94942..95cc38b86fb6 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp @@ -23,8 +23,9 @@ using Azure.Core; using Azure.ResourceManager; using TypeSpec.Versioning; /** - * KubernetesConfiguration Extension Types Client + * Use these APIs to view extension type resources through ARM, for Kubernetes Clusters. */ +#suppress "@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint" "For backward compatibility" @armProviderNamespace @service(#{ title: "ExtensionTypesClient" }) @versioned(Versions) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp index 559af11f7b49..52ce9396a08a 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp @@ -146,12 +146,19 @@ model ExtensionTypeVersionForReleaseTrainProperties { */ model ExtensionTypeVersionForReleaseTrainPropertiesUnsupportedKubernetesVersions { #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + @identifiers(#[]) connectedCluster?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + @identifiers(#[]) appliances?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + @identifiers(#[]) provisionedCluster?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + @identifiers(#[]) managedCluster?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; } diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionType.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionType.json index bf613c7218f0..f2507c0fc1c2 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionType.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionType.json @@ -1,48 +1,50 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", + "api-version": "2024-11-01-preview", "clusterName": "my-cluster", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "extensionTypeName": "my-extension-type", - "api-version": "2024-11-01-preview" + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": {}, "description": "Details of the extension type", "body": { - "id": "aaaa", "name": "bbbb", "type": "cccc", + "id": "aaaa", "properties": { - "isSystemExtension": false, - "isManagedIdentityRequired": true, "description": "My extension type!", - "publisher": "Microsoft", + "isManagedIdentityRequired": true, + "isSystemExtension": false, "planInfo": { - "publisherId": "111111", + "offerId": "3333333", "planId": "222222", - "offerId": "3333333" + "publisherId": "111111" }, + "publisher": "Microsoft", "supportedClusterTypes": [ "connectedClusters" ], "supportedScopes": { - "defaultScope": "cluster", "clusterScopeSettings": { + "name": "bbbbbbbbbbbbb", + "type": "ccccccccccccccccccccccccc", + "id": "aaaaaaaaaaaaaaaaaa", "properties": { "allowMultipleInstances": true, "defaultReleaseNamespace": "kube-system" - }, - "id": "aaaaaaaaaaaaaaaaaa", - "name": "bbbbbbbbbbbbb", - "type": "ccccccccccccccccccccccccc" - } + } + }, + "defaultScope": "cluster" } } - } + }, + "headers": {} } - } -} + }, + "operationId": "ExtensionTypes_Get", + "title": "Get Extension Types" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeByLocation.json index 822f8ecba63c..99f1c7f67608 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeByLocation.json @@ -1,45 +1,47 @@ { "parameters": { - "subscriptionId": "subId1", - "location": "westus2", + "api-version": "2024-11-01-preview", "extensionTypeName": "extensionType1", - "api-version": "2024-11-01-preview" + "location": "westus2", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": {}, "description": "Details of the extension type", "body": { - "id": "aaaa", "name": "bbbb", "type": "cccc", + "id": "aaaa", "properties": { - "isSystemExtension": false, - "isManagedIdentityRequired": true, "description": "My extension type!", - "publisher": "Microsoft", + "isManagedIdentityRequired": true, + "isSystemExtension": false, "planInfo": { - "publisherId": "myPublisherId", + "offerId": "myOfferId", "planId": "myPlanId", - "offerId": "myOfferId" + "publisherId": "myPublisherId" }, + "publisher": "Microsoft", "supportedClusterTypes": [ "connectedClusters" ], "supportedScopes": { - "defaultScope": "cluster", "clusterScopeSettings": { + "name": "bbbbbbbbbbbbb", + "type": "ccccccccccccccccccccccccc", + "id": "aaaaaaaaaaaaaaaaaa", "properties": { "allowMultipleInstances": true, "defaultReleaseNamespace": "kube-system" - }, - "id": "aaaaaaaaaaaaaaaaaa", - "name": "bbbbbbbbbbbbb", - "type": "ccccccccccccccccccccccccc" - } + } + }, + "defaultScope": "cluster" } } - } + }, + "headers": {} } - } -} + }, + "operationId": "ExtensionTypes_LocationGet", + "title": "Get Extension Type" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersion.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersion.json index b6db1c9ccc12..03f81d53ea03 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersion.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersion.json @@ -1,52 +1,53 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", + "api-version": "2024-11-01-preview", "clusterName": "my-cluster", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "extensionTypeName": "my-extension-type", - "versionNumber": "v1.3.2", - "api-version": "2024-11-01-preview" + "resourceGroupName": "rg1", + "subscriptionId": "subId1", + "versionNumber": "v1.3.2" }, "responses": { "200": { - "headers": {}, "description": "Versions for the Extension Type", "body": { - "id": "aaaa", "name": "bbbb", "type": "cccc", + "id": "aaaa", "properties": { - "version": "1.1.0", + "supportedClusterTypes": [ + "connectedCluster" + ], "unsupportedKubernetesVersions": { - "connectedCluster": [ + "appliances": [ { "distributions": [ "AKS" ], - "unsupportedVersions": [] - }, - { - "distributions": [ - "GKE" - ], "unsupportedVersions": [ - ">1.22" + "1.18..1.21" ] } ], - "appliances": [ + "connectedCluster": [ { "distributions": [ "AKS" ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], "unsupportedVersions": [ - "1.18..1.21" + ">1.22" ] } ], - "provisionedCluster": [ + "managedCluster": [ { "distributions": [ "AKS" @@ -54,7 +55,7 @@ "unsupportedVersions": [] } ], - "managedCluster": [ + "provisionedCluster": [ { "distributions": [ "AKS" @@ -63,11 +64,12 @@ } ] }, - "supportedClusterTypes": [ - "connectedCluster" - ] + "version": "1.1.0" } - } + }, + "headers": {} } - } -} + }, + "operationId": "ExtensionTypes_ClusterGetVersion", + "title": "List Extension Type Versions" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersionByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersionByLocation.json index 0f4f717e0a58..a6067e188e46 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersionByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersionByLocation.json @@ -1,49 +1,50 @@ { "parameters": { - "subscriptionId": "subId1", - "location": "westus", + "api-version": "2024-11-01-preview", "extensionTypeName": "extensionType1", - "versionNumber": "1.20.0", - "api-version": "2024-11-01-preview" + "location": "westus", + "subscriptionId": "subId1", + "versionNumber": "1.20.0" }, "responses": { "200": { - "headers": {}, "description": "Versions for the Extension Type", "body": { - "id": "aaaa", "name": "bbbb", "type": "cccc", + "id": "aaaa", "properties": { - "version": "1.1.0", + "supportedClusterTypes": [ + "connectedCluster" + ], "unsupportedKubernetesVersions": { - "connectedCluster": [ + "appliances": [ { "distributions": [ "AKS" ], - "unsupportedVersions": [] - }, - { - "distributions": [ - "GKE" - ], "unsupportedVersions": [ - ">1.22" + "1.18..1.21" ] } ], - "appliances": [ + "connectedCluster": [ { "distributions": [ "AKS" ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], "unsupportedVersions": [ - "1.18..1.21" + ">1.22" ] } ], - "provisionedCluster": [ + "managedCluster": [ { "distributions": [ "AKS" @@ -51,7 +52,7 @@ "unsupportedVersions": [] } ], - "managedCluster": [ + "provisionedCluster": [ { "distributions": [ "AKS" @@ -60,11 +61,12 @@ } ] }, - "supportedClusterTypes": [ - "connectedCluster" - ] + "version": "1.1.0" } - } + }, + "headers": {} } - } -} + }, + "operationId": "ExtensionTypes_GetVersion", + "title": "List Extension Type Versions" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersions.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersions.json index 8ae66a287881..6300d9f5f56c 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersions.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersions.json @@ -1,56 +1,58 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", + "api-version": "2024-11-01-preview", "clusterName": "my-cluster", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "extensionTypeName": "my-extension-type", - "releaseTrain": "stable", "majorVersion": "2", + "releaseTrain": "stable", + "resourceGroupName": "rg1", "showLatest": true, - "api-version": "2024-11-01-preview" + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": {}, "description": "Versions for the Extension Type", "body": { + "nextLink": null, "value": [ { - "id": "aaaa", "name": "bbbb", "type": "cccc", + "id": "aaaa", "properties": { - "version": "1.1.0", + "supportedClusterTypes": [ + "connectedCluster" + ], "unsupportedKubernetesVersions": { - "connectedCluster": [ + "appliances": [ { "distributions": [ "AKS" ], - "unsupportedVersions": [] - }, - { - "distributions": [ - "GKE" - ], "unsupportedVersions": [ - ">1.22" + "1.18..1.21" ] } ], - "appliances": [ + "connectedCluster": [ { "distributions": [ "AKS" ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], "unsupportedVersions": [ - "1.18..1.21" + ">1.22" ] } ], - "provisionedCluster": [ + "managedCluster": [ { "distributions": [ "AKS" @@ -58,7 +60,7 @@ "unsupportedVersions": [] } ], - "managedCluster": [ + "provisionedCluster": [ { "distributions": [ "AKS" @@ -67,45 +69,45 @@ } ] }, - "supportedClusterTypes": [ - "connectedCluster" - ] + "version": "1.1.0" } }, { - "id": "aaaa", "name": "bbbb", "type": "cccc", + "id": "aaaa", "properties": { - "version": "1.2.0", + "supportedClusterTypes": [ + "connectedCluster" + ], "unsupportedKubernetesVersions": { - "connectedCluster": [ + "appliances": [ { "distributions": [ "AKS" ], - "unsupportedVersions": [] - }, - { - "distributions": [ - "GKE" - ], "unsupportedVersions": [ - ">1.22" + "1.18..1.21" ] } ], - "appliances": [ + "connectedCluster": [ { "distributions": [ "AKS" ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], "unsupportedVersions": [ - "1.18..1.21" + ">1.22" ] } ], - "provisionedCluster": [ + "managedCluster": [ { "distributions": [ "AKS" @@ -113,7 +115,7 @@ "unsupportedVersions": [] } ], - "managedCluster": [ + "provisionedCluster": [ { "distributions": [ "AKS" @@ -122,14 +124,14 @@ } ] }, - "supportedClusterTypes": [ - "connectedCluster" - ] + "version": "1.2.0" } } - ], - "nextLink": null - } + ] + }, + "headers": {} } - } -} + }, + "operationId": "ExtensionTypes_ClusterListVersions", + "title": "List Extension Type Versions" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersionsByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersionsByLocation.json index 2ac452355c87..261bd4b9e753 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersionsByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersionsByLocation.json @@ -1,54 +1,56 @@ { "parameters": { - "subscriptionId": "subId1", - "location": "westus", - "extensionTypeName": "extensionType1", - "releaseTrain": "stable", + "api-version": "2024-11-01-preview", "clusterType": "connectedCluster", + "extensionTypeName": "extensionType1", + "location": "westus", "majorVersion": "2", + "releaseTrain": "stable", "showLatest": true, - "api-version": "2024-11-01-preview" + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": {}, "description": "Versions for the Extension Type", "body": { + "nextLink": null, "value": [ { - "id": "aaaa", "name": "bbbb", "type": "cccc", + "id": "aaaa", "properties": { - "version": "1.1.0", + "supportedClusterTypes": [ + "connectedCluster" + ], "unsupportedKubernetesVersions": { - "connectedCluster": [ + "appliances": [ { "distributions": [ "AKS" ], - "unsupportedVersions": [] - }, - { - "distributions": [ - "GKE" - ], "unsupportedVersions": [ - ">1.22" + "1.18..1.21" ] } ], - "appliances": [ + "connectedCluster": [ { "distributions": [ "AKS" ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], "unsupportedVersions": [ - "1.18..1.21" + ">1.22" ] } ], - "provisionedCluster": [ + "managedCluster": [ { "distributions": [ "AKS" @@ -56,7 +58,7 @@ "unsupportedVersions": [] } ], - "managedCluster": [ + "provisionedCluster": [ { "distributions": [ "AKS" @@ -65,45 +67,45 @@ } ] }, - "supportedClusterTypes": [ - "connectedCluster" - ] + "version": "1.1.0" } }, { - "id": "aaaa", "name": "bbbb", "type": "cccc", + "id": "aaaa", "properties": { - "version": "1.2.0", + "supportedClusterTypes": [ + "connectedCluster" + ], "unsupportedKubernetesVersions": { - "connectedCluster": [ + "appliances": [ { "distributions": [ "AKS" ], - "unsupportedVersions": [] - }, - { - "distributions": [ - "GKE" - ], "unsupportedVersions": [ - ">1.22" + "1.18..1.21" ] } ], - "appliances": [ + "connectedCluster": [ { "distributions": [ "AKS" ], + "unsupportedVersions": [] + }, + { + "distributions": [ + "GKE" + ], "unsupportedVersions": [ - "1.18..1.21" + ">1.22" ] } ], - "provisionedCluster": [ + "managedCluster": [ { "distributions": [ "AKS" @@ -111,7 +113,7 @@ "unsupportedVersions": [] } ], - "managedCluster": [ + "provisionedCluster": [ { "distributions": [ "AKS" @@ -120,14 +122,14 @@ } ] }, - "supportedClusterTypes": [ - "connectedCluster" - ] + "version": "1.2.0" } } - ], - "nextLink": null - } + ] + }, + "headers": {} } - } -} + }, + "operationId": "ExtensionTypes_ListVersions", + "title": "List Extension Type Versions" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypes.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypes.json index 16defef79b84..b15d15686605 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypes.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypes.json @@ -1,56 +1,58 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", + "api-version": "2024-11-01-preview", "clusterName": "my-cluster", - "publisherId": "myPublisherId", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "offerId": "myOfferId", "planId": "myPlanId", + "publisherId": "myPublisherId", "releaseTrain": "stable", - "api-version": "2024-11-01-preview" + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": {}, "description": "Details of the extension types registered for the given region", "body": { + "nextLink": null, "value": [ { - "id": "aaaa", "name": "bbbb", "type": "cccc", + "id": "aaaa", "properties": { - "isSystemExtension": false, - "isManagedIdentityRequired": true, "description": "My extension type!", - "publisher": "Microsoft", + "isManagedIdentityRequired": true, + "isSystemExtension": false, "planInfo": { - "publisherId": "myPublisherId", + "offerId": "myOfferId", "planId": "myPlanId", - "offerId": "myOfferId" + "publisherId": "myPublisherId" }, + "publisher": "Microsoft", "supportedClusterTypes": [ "connectedClusters" ], "supportedScopes": { - "defaultScope": "cluster", "clusterScopeSettings": { + "name": "bbbbbbbbbbbbb", + "type": "ccccccccccccccccccccccccc", + "id": "aaaaaaaaaaaaaaaaaa", "properties": { "allowMultipleInstances": true, "defaultReleaseNamespace": "kube-system" - }, - "id": "aaaaaaaaaaaaaaaaaa", - "name": "bbbbbbbbbbbbb", - "type": "ccccccccccccccccccccccccc" - } + } + }, + "defaultScope": "cluster" } } } - ], - "nextLink": null - } + ] + }, + "headers": {} } - } -} + }, + "operationId": "ExtensionTypes_List", + "title": "Get Extension Types" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypesByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypesByLocation.json index 741c01dbc81f..21b9d369042b 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypesByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypesByLocation.json @@ -1,54 +1,56 @@ { "parameters": { - "subscriptionId": "subId1", + "api-version": "2024-11-01-preview", + "clusterType": "connectedCluster", "location": "westus2", - "publisherId": "myPublisherId", "offerId": "myOfferId", "planId": "myPlanId", - "clusterType": "connectedCluster", + "publisherId": "myPublisherId", "releaseTrain": "stable", - "api-version": "2024-11-01-preview" + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": {}, "description": "Details of the extension types registered for the given region", "body": { + "nextLink": null, "value": [ { - "id": "aaaa", "name": "bbbb", "type": "cccc", + "id": "aaaa", "properties": { - "isSystemExtension": false, - "isManagedIdentityRequired": true, "description": "My extension type!", - "publisher": "Microsoft", + "isManagedIdentityRequired": true, + "isSystemExtension": false, "planInfo": { - "publisherId": "myPublisherId", + "offerId": "myOfferId", "planId": "myPlanId", - "offerId": "myOfferId" + "publisherId": "myPublisherId" }, + "publisher": "Microsoft", "supportedClusterTypes": [ "connectedClusters" ], "supportedScopes": { - "defaultScope": "cluster", "clusterScopeSettings": { + "name": "bbbbbbbbbbbbb", + "type": "ccccccccccccccccccccccccc", + "id": "aaaaaaaaaaaaaaaaaa", "properties": { "allowMultipleInstances": true, "defaultReleaseNamespace": "kube-system" - }, - "id": "aaaaaaaaaaaaaaaaaa", - "name": "bbbbbbbbbbbbb", - "type": "ccccccccccccccccccccccccc" - } + } + }, + "defaultScope": "cluster" } } } - ], - "nextLink": null - } + ] + }, + "headers": {} } - } -} + }, + "operationId": "ExtensionTypes_LocationList", + "title": "List Extension Types" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json index a0086589ff6a..760ab1976fb5 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json @@ -1,18 +1,23 @@ { "swagger": "2.0", "info": { - "version": "2024-11-01-preview", "title": "ExtensionTypesClient", - "description": "Use these APIs to view extension type resources through ARM, for Kubernetes Clusters." + "version": "2024-11-01-preview", + "description": "Use these APIs to view extension type resources through ARM, for Kubernetes Clusters.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, - "host": "management.azure.com", "schemes": [ "https" ], - "consumes": [ + "host": "management.azure.com", + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], "security": [ @@ -25,31 +30,42 @@ "securityDefinitions": { "azure_auth": { "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "description": "Azure Active Directory OAuth2 Flow.", "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } } }, + "tags": [ + { + "name": "ExtensionTypes" + }, + { + "name": "ExtensionTypeOperationGroup" + }, + { + "name": "ExtensionTypeVersionForReleaseTrains" + }, + { + "name": "ExtensionTypeVersionForReleaseTrainOperationGroup" + } + ], "paths": { "/subscriptions/{subscriptionId}/providers/Microsoft.KubernetesConfiguration/locations/{location}/extensionTypes": { "get": { + "operationId": "ExtensionTypes_LocationList", "tags": [ - "ExtensionTypes", - "ClusterExtensionTypes" + "ExtensionTypes" ], "description": "List all Extension Types for the location.", - "operationId": "ExtensionTypes_LocationList", - "x-ms-examples": { - "List Extension Types": { - "$ref": "./examples/ListExtensionTypesByLocation.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" @@ -88,25 +104,27 @@ "description": "Filter results by the cluster type for extension types", "required": false, "type": "string" - }, - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ExtensionTypesList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, + "x-ms-examples": { + "List Extension Types": { + "$ref": "./examples/ListExtensionTypesByLocation.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -114,69 +132,75 @@ }, "/subscriptions/{subscriptionId}/providers/Microsoft.KubernetesConfiguration/locations/{location}/extensionTypes/{extensionTypeName}": { "get": { + "operationId": "ExtensionTypes_LocationGet", "tags": [ - "ExtensionTypes", - "ClusterExtensionTypes" + "ExtensionTypes" ], "description": "Get an extension type for the location.", - "operationId": "ExtensionTypes_LocationGet", - "x-ms-examples": { - "Get Extension Type": { - "$ref": "./examples/GetExtensionTypeByLocation.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ExtensionTypeNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "extensionTypeName", + "in": "path", + "description": "Name of the Extension Type.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-_]*$" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ExtensionType" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "Get Extension Type": { + "$ref": "./examples/GetExtensionTypeByLocation.json" + } } } }, "/subscriptions/{subscriptionId}/providers/Microsoft.KubernetesConfiguration/locations/{location}/extensionTypes/{extensionTypeName}/versions": { "get": { + "operationId": "ExtensionTypes_ListVersions", "tags": [ - "ExtensionTypes", - "ClusterExtensionTypes" + "ExtensionTypeVersionForReleaseTrains" ], "description": "List the versions for an extension type and location.", - "operationId": "ExtensionTypes_ListVersions", - "x-ms-examples": { - "List Extension Type Versions": { - "$ref": "./examples/ListExtensionTypeVersionsByLocation.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" }, { - "$ref": "#/parameters/ExtensionTypeNameParameter" + "name": "extensionTypeName", + "in": "path", + "description": "Name of the Extension Type.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-_]*$" }, { "name": "releaseTrain", @@ -205,25 +229,27 @@ "description": "Filter results by only the latest version (based on other query parameters)", "required": false, "type": "boolean" - }, - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ExtensionTypeVersionsList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, + "x-ms-examples": { + "List Extension Type Versions": { + "$ref": "./examples/ListExtensionTypeVersionsByLocation.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -231,78 +257,97 @@ }, "/subscriptions/{subscriptionId}/providers/Microsoft.KubernetesConfiguration/locations/{location}/extensionTypes/{extensionTypeName}/versions/{versionNumber}": { "get": { + "operationId": "ExtensionTypes_GetVersion", "tags": [ - "ExtensionTypes", - "ClusterExtensionTypes" + "ExtensionTypeVersionForReleaseTrains" ], "description": "Get details of a version for an extension type and location", - "operationId": "ExtensionTypes_GetVersion", - "x-ms-examples": { - "List Extension Type Versions": { - "$ref": "./examples/GetExtensionTypeVersionByLocation.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/ExtensionTypeNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/LocationParameter" }, { - "$ref": "#/parameters/VersionNumberParameter" + "name": "extensionTypeName", + "in": "path", + "description": "Name of the Extension Type.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-_]*$" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "versionNumber", + "in": "path", + "description": "Version number of the Extension Type.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ExtensionTypeVersionForReleaseTrain" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "List Extension Type Versions": { + "$ref": "./examples/GetExtensionTypeVersionByLocation.json" + } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensionTypes": { "get": { + "operationId": "ExtensionTypes_List", "tags": [ - "ExtensionTypes", - "ClusterExtensionTypes" + "ExtensionTypeOperationGroup" ], "description": "List installable Extension Types for the cluster based region and type for the cluster.", - "operationId": "ExtensionTypes_List", - "x-ms-examples": { - "Get Extension Types": { - "$ref": "./examples/ListExtensionTypes.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { "name": "publisherId", @@ -331,25 +376,27 @@ "description": "Filter results by release train (default value is stable)", "required": false, "type": "string" - }, - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ExtensionTypesList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, + "x-ms-examples": { + "Get Extension Types": { + "$ref": "./examples/ListExtensionTypes.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -357,87 +404,121 @@ }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensionTypes/{extensionTypeName}": { "get": { + "operationId": "ExtensionTypes_Get", "tags": [ - "ExtensionTypes", - "ClusterExtensionTypes" + "ExtensionTypeOperationGroup" ], "description": "Get an Extension Type installable to the cluster based region and type for the cluster.", - "operationId": "ExtensionTypes_Get", - "x-ms-examples": { - "Get Extension Types": { - "$ref": "./examples/GetExtensionType.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "#/parameters/ExtensionTypeNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "extensionTypeName", + "in": "path", + "description": "Name of the Extension Type.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-_]*$" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ExtensionType" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "Get Extension Types": { + "$ref": "./examples/GetExtensionType.json" + } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensionTypes/{extensionTypeName}/versions": { "get": { + "operationId": "ExtensionTypes_ClusterListVersions", "tags": [ - "ExtensionTypes", - "ClusterExtensionTypes" + "ExtensionTypeVersionForReleaseTrainOperationGroup" ], "description": "List the version for an Extension Type installable to the cluster.", - "operationId": "ExtensionTypes_ClusterListVersions", - "x-ms-examples": { - "List Extension Type Versions": { - "$ref": "./examples/ListExtensionTypeVersions.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" + }, + { + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "#/parameters/ExtensionTypeNameParameter" + "name": "extensionTypeName", + "in": "path", + "description": "Name of the Extension Type.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-_]*$" }, { "name": "releaseTrain", @@ -459,25 +540,27 @@ "description": "Filter results by only the latest version (based on other query parameters)", "required": false, "type": "boolean" - }, - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ExtensionTypeVersionsList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, + "x-ms-examples": { + "List Extension Type Versions": { + "$ref": "./examples/ListExtensionTypeVersions.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } @@ -485,285 +568,325 @@ }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensionTypes/{extensionTypeName}/versions/{versionNumber}": { "get": { + "operationId": "ExtensionTypes_ClusterGetVersion", "tags": [ - "ExtensionTypes", - "ClusterExtensionTypes" + "ExtensionTypeVersionForReleaseTrainOperationGroup" ], "description": "Get details of a version for an Extension Type installable to the cluster.", - "operationId": "ExtensionTypes_ClusterGetVersion", - "x-ms-examples": { - "List Extension Type Versions": { - "$ref": "./examples/GetExtensionTypeVersion.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "#/parameters/ExtensionTypeNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "#/parameters/VersionNumberParameter" + "name": "extensionTypeName", + "in": "path", + "description": "Name of the Extension Type.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z][a-zA-Z0-9-_]*$" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "versionNumber", + "in": "path", + "description": "Version number of the Extension Type.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/ExtensionTypeVersionForReleaseTrain" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "List Extension Type Versions": { + "$ref": "./examples/GetExtensionTypeVersion.json" + } } } } }, "definitions": { - "ExtensionType": { - "description": "The Extension Type object.", + "ClusterScopeSettings": { "type": "object", + "description": "Extension scope settings", "properties": { "properties": { - "type": "object", - "properties": { - "isSystemExtension": { - "type": "boolean", - "description": "Is this Extension Type a system extension." - }, - "isManagedIdentityRequired": { - "type": "boolean", - "description": "Should an identity for this cluster resource be created" - }, - "description": { - "type": "string", - "description": "Description of the extension type" - }, - "publisher": { - "type": "string", - "description": "Name of the publisher for the Extension Type" - }, - "planInfo": { - "description": "Plan information only for the Marketplace Extension Type.", - "type": "object", - "properties": { - "publisherId": { - "type": "string", - "description": "Publisher ID of the Marketplace Extension Type." - }, - "planId": { - "type": "string", - "description": "Plan ID of the Marketplace Extension Type." - }, - "offerId": { - "type": "string", - "description": "Offer or Product ID of the Marketplace Extension Type." - } - } - }, - "supportedClusterTypes": { - "description": "Cluster Types supported for this Extension Type.", - "type": "array", - "items": { - "type": "string" - } - }, - "supportedScopes": { - "description": "Supported Kubernetes Scopes for this Extension Type.", - "type": "object", - "properties": { - "defaultScope": { - "description": "The default scope of the extension type. This scope will be used if the user does not provide a scope while creating an extension.", - "type": "string" - }, - "clusterScopeSettings": { - "$ref": "#/definitions/ClusterScopeSettings" - } - } - } - } + "$ref": "#/definitions/ClusterScopeSettingsProperties", + "description": "Extension scope settings", + "x-ms-client-flatten": true } }, "allOf": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" } ] }, - "ClusterScopeSettings": { + "ClusterScopeSettingsProperties": { "type": "object", "description": "Extension scope settings", + "properties": { + "allowMultipleInstances": { + "type": "boolean", + "description": "Describes if multiple instances of the extension are allowed" + }, + "defaultReleaseNamespace": { + "type": "string", + "description": "Default extension release namespace" + } + } + }, + "ExtensionType": { + "type": "object", + "description": "The Extension Type object.", "properties": { "properties": { - "type": "object", - "x-ms-client-flatten": true, - "description": "Extension scope settings", - "properties": { - "allowMultipleInstances": { - "type": "boolean", - "description": "Describes if multiple instances of the extension are allowed" - }, - "defaultReleaseNamespace": { - "type": "string", - "description": "Default extension release namespace" - } - } + "$ref": "#/definitions/ExtensionTypeProperties" } }, "allOf": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" } ] }, + "ExtensionTypeProperties": { + "type": "object", + "properties": { + "isSystemExtension": { + "type": "boolean", + "description": "Is this Extension Type a system extension." + }, + "isManagedIdentityRequired": { + "type": "boolean", + "description": "Should an identity for this cluster resource be created" + }, + "description": { + "type": "string", + "description": "Description of the extension type" + }, + "publisher": { + "type": "string", + "description": "Name of the publisher for the Extension Type" + }, + "planInfo": { + "$ref": "#/definitions/ExtensionTypePropertiesPlanInfo", + "description": "Plan information only for the Marketplace Extension Type." + }, + "supportedClusterTypes": { + "type": "array", + "description": "Cluster Types supported for this Extension Type.", + "items": { + "type": "string" + } + }, + "supportedScopes": { + "$ref": "#/definitions/ExtensionTypePropertiesSupportedScopes", + "description": "Supported Kubernetes Scopes for this Extension Type." + } + } + }, + "ExtensionTypePropertiesPlanInfo": { + "type": "object", + "description": "Plan information only for the Marketplace Extension Type.", + "properties": { + "publisherId": { + "type": "string", + "description": "Publisher ID of the Marketplace Extension Type." + }, + "planId": { + "type": "string", + "description": "Plan ID of the Marketplace Extension Type." + }, + "offerId": { + "type": "string", + "description": "Offer or Product ID of the Marketplace Extension Type." + } + } + }, + "ExtensionTypePropertiesSupportedScopes": { + "type": "object", + "description": "Supported Kubernetes Scopes for this Extension Type.", + "properties": { + "defaultScope": { + "type": "string", + "description": "The default scope of the extension type. This scope will be used if the user does not provide a scope while creating an extension." + }, + "clusterScopeSettings": { + "$ref": "#/definitions/ClusterScopeSettings", + "description": "Extension scope settings" + } + } + }, "ExtensionTypeVersionForReleaseTrain": { - "description": "The Extension Type Version object.", "type": "object", + "description": "The Extension Type Version object.", "properties": { "properties": { - "type": "object", - "properties": { - "version": { - "type": "string", - "description": "The version number for the extension type" - }, - "unsupportedKubernetesVersions": { - "description": "The list of supported Kubernetes cluster versions for this extension type", - "type": "object", - "properties": { - "connectedCluster": { - "$ref": "#/definitions/ExtensionTypeVersionUnsupportedKubernetesMatrix" - }, - "appliances": { - "$ref": "#/definitions/ExtensionTypeVersionUnsupportedKubernetesMatrix" - }, - "provisionedCluster": { - "$ref": "#/definitions/ExtensionTypeVersionUnsupportedKubernetesMatrix" - }, - "managedCluster": { - "$ref": "#/definitions/ExtensionTypeVersionUnsupportedKubernetesMatrix" - } - } - }, - "supportedClusterTypes": { - "type": "array", - "description": "A list of supported cluster types for this version of the Extension Type", - "items": { - "description": "The individual cluster type that is supported by this extension", - "type": "string" - } - } - } + "$ref": "#/definitions/ExtensionTypeVersionForReleaseTrainProperties" } }, "allOf": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" } ] }, - "ExtensionTypesList": { - "description": "List Extension Types. It contains a list of ExtensionType objects and a URL link to get the next set of results.", + "ExtensionTypeVersionForReleaseTrainProperties": { "type": "object", "properties": { - "value": { + "version": { + "type": "string", + "description": "The version number for the extension type" + }, + "unsupportedKubernetesVersions": { + "$ref": "#/definitions/ExtensionTypeVersionForReleaseTrainPropertiesUnsupportedKubernetesVersions", + "description": "The list of supported Kubernetes cluster versions for this extension type" + }, + "supportedClusterTypes": { "type": "array", - "readOnly": true, + "description": "A list of supported cluster types for this version of the Extension Type", "items": { - "$ref": "#/definitions/ExtensionType" + "type": "string" + } + } + } + }, + "ExtensionTypeVersionForReleaseTrainPropertiesUnsupportedKubernetesVersions": { + "type": "object", + "description": "The list of supported Kubernetes cluster versions for this extension type", + "properties": { + "connectedCluster": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtensionTypeVersionUnsupportedKubernetesMatrixItem" }, - "description": "List of Extension Types." + "x-ms-identifiers": [] }, - "nextLink": { - "type": "string", - "readOnly": true, - "description": "URL to get the next set of extension type objects, if any." + "appliances": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtensionTypeVersionUnsupportedKubernetesMatrixItem" + }, + "x-ms-identifiers": [] + }, + "provisionedCluster": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtensionTypeVersionUnsupportedKubernetesMatrixItem" + }, + "x-ms-identifiers": [] + }, + "managedCluster": { + "type": "array", + "items": { + "$ref": "#/definitions/ExtensionTypeVersionUnsupportedKubernetesMatrixItem" + }, + "x-ms-identifiers": [] + } + } + }, + "ExtensionTypeVersionUnsupportedKubernetesMatrixItem": { + "type": "object", + "description": "The list of Kubernetes Distribution and Versions that are not supported by this version of this Extension Type", + "properties": { + "distributions": { + "type": "array", + "description": "The list of Kubernetes Cluster Distribution Names not supported", + "items": { + "type": "string" + } + }, + "unsupportedVersions": { + "type": "array", + "description": "The list of Kubernetes Versions not supported by the list of Kubernetes Cluster Distribution names in this object", + "items": { + "type": "string" + } } } }, "ExtensionTypeVersionsList": { - "description": "List Extension Type Versions. It contains a list of ExtensionTypeVersionForReleaseTrain objects.", "type": "object", + "description": "List Extension Type Versions. It contains a list of ExtensionTypeVersionForReleaseTrain objects.", "properties": { "value": { "type": "array", - "readOnly": true, + "description": "The ExtensionTypeVersionForReleaseTrain items on this page", "items": { "$ref": "#/definitions/ExtensionTypeVersionForReleaseTrain" - }, - "description": "List of Extension Type Versions for an Extension Type in a Release Train." + } }, "nextLink": { "type": "string", - "readOnly": true, - "description": "URL to get the next set of extension objects, if any." + "format": "uri", + "description": "The link to the next page of items" } - } + }, + "required": [ + "value" + ] }, - "ExtensionTypeVersionUnsupportedKubernetesMatrix": { - "type": "array", - "items": { - "type": "object", - "description": "The list of Kubernetes Distribution and Versions that are not supported by this version of this Extension Type", - "properties": { - "distributions": { - "type": "array", - "description": "The list of Kubernetes Cluster Distribution Names not supported", - "items": { - "description": "A single Kubernetes Cluster Distribution Name", - "type": "string" - } - }, - "unsupportedVersions": { - "type": "array", - "description": "The list of Kubernetes Versions not supported by the list of Kubernetes Cluster Distribution names in this object", - "items": { - "type": "string", - "description": "A Kubernetes Version not supported by the list of Kubernetes Cluster Distribution names" - } + "ExtensionTypesList": { + "type": "object", + "description": "List Extension Types. It contains a list of ExtensionType objects and a URL link to get the next set of results.", + "properties": { + "value": { + "type": "array", + "description": "The ExtensionType items on this page", + "items": { + "$ref": "#/definitions/ExtensionType" } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" } }, - "x-ms-identifiers": [] + "required": [ + "value" + ] } }, - "parameters": { - "ExtensionTypeNameParameter": { - "name": "extensionTypeName", - "in": "path", - "required": true, - "type": "string", - "pattern": "^[a-zA-Z][a-zA-Z0-9-_]*$", - "description": "Name of the Extension Type.", - "x-ms-parameter-location": "method" - }, - "VersionNumberParameter": { - "name": "versionNumber", - "in": "path", - "required": true, - "type": "string", - "description": "Version number of the Extension Type.", - "x-ms-parameter-location": "method" - } - } + "parameters": {} } diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index 5f32e374a78e..53d9058d459c 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -2,10 +2,11 @@ emit: - "@azure-tools/typespec-autorest" options: "@azure-tools/typespec-autorest": - omit-unreachable-types: true - emitter-output-dir: "{project-root}/.." + omit-unreachable-types: false + emitter-output-dir: "{project-root}" azure-resource-provider-folder: "resource-manager" - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/extensionTypes.json" + output-file: "{version-status}/{version}/extensionTypes.json" + arm-types-dir: "{project-root}/../../../../common-types/resource-management" emit-lro-options: "all" examples-dir: "{project-root}/examples" linter: From 43c2cb5475fd38976c1e595fe63a5abaf7247a6c Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Mon, 12 Jan 2026 17:26:30 +0800 Subject: [PATCH 04/66] update --- .../fluxConfigurations/FluxConfiguration.tsp | 276 +- .../fluxConfigurations/main.tsp | 3 +- .../fluxConfigurations/models.tsp | 352 +- .../examples/CreateFluxConfiguration.json | 322 +- .../CreateFluxConfigurationWithBucket.json | 254 +- ...ateFluxConfigurationWithOCIRepository.json | 282 +- .../CreateFluxConfigurationWithProvider.json | 322 +- .../examples/DeleteFluxConfiguration.json | 24 +- .../examples/GetFluxConfiguration.json | 140 +- ...FluxConfigurationAsyncOperationStatus.json | 28 +- .../examples/ListFluxConfigurations.json | 212 +- .../examples/PatchFluxConfiguration.json | 208 +- .../stable/2025-04-01/fluxconfiguration.json | 2818 ++++++++++------- .../fluxConfigurations/tspconfig.yaml | 7 +- 14 files changed, 2917 insertions(+), 2331 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp index d7431ccb3ca6..52680cff56f5 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp @@ -4,122 +4,184 @@ import "@typespec/openapi"; import "@typespec/rest"; import "./models.tsp"; - using TypeSpec.Rest; using Azure.ResourceManager; using TypeSpec.Http; using TypeSpec.OpenAPI; - namespace Microsoft.KubernetesConfiguration; /** -* The Flux Configuration object returned in Get & Put response. -*/ -model FluxConfiguration is Azure.ResourceManager.ProxyResource { -...ResourceNameParameter + * The Flux Configuration object returned in Get & Put response. + */ +model FluxConfiguration + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = FluxConfiguration, + KeyName = "fluxConfigurationName", + SegmentName = "fluxConfigurations", + NamePattern = "" + >; } - - -alias {clusterResourceName}ExternalResource = Extension.ExternalResource<"{clusterRp}" - , "{clusterResourceName}", "{clusterName}">; - -@armResourceOperations +alias FluxConfigurationOperationGroupOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + ...ResourceGroupParameter; + + /** + * The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService. + */ + @path + @segment("providers") + @key + clusterRp: string; + + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. + */ + @key + @path + @pattern("^[a-zA-Z]*$") + clusterResourceName: string; + + /** + * The name of the kubernetes cluster. + */ + @key + @path + @pattern("^.*") + clusterName: string; + }, + { + ...Extension.ExtensionProviderNamespace; + ...ParentKeysOf; + }, + { + ...Extension.ExtensionProviderNamespace; + ...KeysOf; + } +>; + +alias FluxConfigurationsBuildingOps = Azure.ResourceManager.Legacy.RoutedOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + ...ResourceGroupParameter; + + /** + * The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService. + */ + @path + @segment("providers") + @key + clusterRp: string; + + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. + */ + @key + @path + @pattern("^[a-zA-Z]*$") + clusterResourceName: string; + + /** + * The name of the kubernetes cluster. + */ + @pattern("^.*") + @key + @path + clusterName: string; + + ...KeysOf; + }, + { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @path + @segment("operations") + @key + operationId: string; + }, + ResourceRoute = #{ + route: "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations", + } +>; + +@armResourceOperations(#{ allowStaticRoutes: true }) interface FluxConfigurations { -/** -* Gets details of the Flux Configuration. -*/ -get is ArmResourceRead; - - -/** -* Create a new Kubernetes Flux Configuration. -*/ -createOrUpdate is ArmResourceCreateOrReplaceAsync; - - -/** -* Update an existing Kubernetes Flux Configuration. -*/ -@patch(#{ implicitOptionality: false }) -#suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" -update is ArmCustomPatchAsync | ArmAcceptedLroResponse & Azure.Core.Foundations.RetryAfterHeader> & { @bodyRoot -"_": FluxConfiguration; } - >; - - -/** -* This will delete the YAML file used to set up the Flux Configuration, thus stopping future sync from the source repo. -*/ -#suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "For backward compatibility" -#suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" -delete is ArmResourceDeleteWithoutOkAsync | ArmDeletedNoContentResponse - >; - - -/** -* List all Flux Configurations. -*/ -list is ArmResourceListByParent - >; - - -/** -* Get Async Operation status -*/ -#suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" -@operationId("FluxConfigOperationStatus_Get") -@get -@action("{operationId}") -fluxConfigOperationStatusGet is ArmResourceActionSync, Parameters = { /** -* The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. -*/ -@pattern("^[a-zA-Z]*$") -@path -"clusterResourceName": string, -/** -* operation Id -*/ -@path -"operationId": string }>; - - + /** + * Gets details of the Flux Configuration. + */ + get is FluxConfigurationOperationGroupOps.Read; + + /** + * Create a new Kubernetes Flux Configuration. + */ + createOrUpdate is FluxConfigurationOperationGroupOps.CreateOrUpdateAsync; + + /** + * Update an existing Kubernetes Flux Configuration. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" + @patch(#{ implicitOptionality: false }) + update is FluxConfigurationOperationGroupOps.CustomPatchAsync< + FluxConfiguration, + PatchModel = FluxConfigurationPatch, + Response = ArmResponse | (ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader> & { + @bodyRoot + _: FluxConfiguration; + }) + >; + + /** + * This will delete the YAML file used to set up the Flux Configuration, thus stopping future sync from the source repo. + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + delete is FluxConfigurationOperationGroupOps.DeleteWithoutOkAsync< + FluxConfiguration, + Parameters = { + /** + * Delete the extension resource in Azure - not the normal asynchronous delete. + */ + @query("forceDelete") + forceDelete?: boolean; + }, + Response = ArmDeletedResponse | ArmDeleteAcceptedLroResponse | ArmDeletedNoContentResponse + >; + + /** + * List all Flux Configurations. + */ + list is FluxConfigurationOperationGroupOps.List< + FluxConfiguration, + Response = ArmResponse + >; + + /** + * Get Async Operation status + */ + #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" + @operationId("FluxConfigOperationStatus_Get") + @get + @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/{fluxConfigurationName}/operations/{operationId}") + fluxConfigOperationStatusGet is FluxConfigurationsBuildingOps.ActionSync< + FluxConfiguration, + void, + ArmResponse + >; } - -@@doc(FluxConfiguration.name, "Name of the Flux Configuration.") -@@doc(FluxConfiguration.properties, "Properties to create a Flux Configuration resource") -@@doc(FluxConfigurations.`createOrUpdate`::parameters.resource, "Properties necessary to Create a FluxConfiguration."); -@@doc(FluxConfigurations.`update`::parameters.properties, "Properties to Patch in an existing Flux Configuration."); \ No newline at end of file +@@doc(FluxConfiguration.name, "Name of the Flux Configuration."); +@@doc(FluxConfiguration.properties, + "Properties to create a Flux Configuration resource" +); +@@doc(FluxConfigurations.createOrUpdate::parameters.resource, + "Properties necessary to Create a FluxConfiguration." +); +@@doc(FluxConfigurations.update::parameters.properties, + "Properties to Patch in an existing Flux Configuration." +); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/main.tsp index ab216e596e01..b313f9ff14ee 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/main.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/main.tsp @@ -22,8 +22,9 @@ using Azure.Core; using Azure.ResourceManager; using TypeSpec.Versioning; /** - * KubernetesConfiguration Flux Client + * Use these APIs to create Flux Configuration resources through ARM, for Kubernetes Clusters. */ +#suppress "@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @armProviderNamespace @service(#{ title: "FluxConfigurationClient" }) @versioned(Versions) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp index 6460a5d89afe..31c7944c0bf2 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp @@ -230,12 +230,12 @@ model FluxConfigurationProperties { /** * Source Kind to pull the configuration data from. */ - sourceKind?: SourceKindType; + sourceKind?: SourceKindType = SourceKindType.GitRepository; /** * Whether this configuration should suspend its reconciliation of its kustomizations and sources. */ - suspend?: boolean; + suspend?: boolean = false; /** * Parameters to reconcile to the GitRepository source kind type. @@ -260,14 +260,17 @@ model FluxConfigurationProperties { /** * Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" - kustomizations?: Record; + kustomizations?: Record | null; /** * Key-value pairs of protected configuration settings for the configuration */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" - configurationProtectedSettings?: Record; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + configurationProtectedSettings?: Record | null; /** * Statuses of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects provisioned by the fluxConfiguration. @@ -279,38 +282,44 @@ model FluxConfigurationProperties { /** * Public Key associated with this fluxConfiguration (either generated within the cluster or provided by the user). */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" @visibility(Lifecycle.Read) - repositoryPublicKey?: string; + repositoryPublicKey?: string | null; /** * Branch and/or SHA of the source commit synced with the cluster. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" @visibility(Lifecycle.Read) - sourceSyncedCommitId?: string; + sourceSyncedCommitId?: string | null; /** * Datetime the fluxConfiguration synced its source on the cluster. */ - @visibility(Lifecycle.Read) + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. - sourceUpdatedAt?: utcDateTime; + @visibility(Lifecycle.Read) + sourceUpdatedAt?: utcDateTime | null; /** * Datetime the fluxConfiguration synced its status on the cluster with Azure. */ - @visibility(Lifecycle.Read) + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. - statusUpdatedAt?: utcDateTime; + @visibility(Lifecycle.Read) + statusUpdatedAt?: utcDateTime | null; /** * Whether flux configuration deployment should wait for cluster to reconcile the kustomizations. */ - waitForReconciliation?: boolean; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + waitForReconciliation?: boolean | null; /** * Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D */ - reconciliationWaitDuration?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + reconciliationWaitDuration?: string | null; /** * Combined status of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects. @@ -327,8 +336,9 @@ model FluxConfigurationProperties { /** * Error message returned to the user in the case of provisioning failure. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" @visibility(Lifecycle.Read) - errorMessage?: string; + errorMessage?: string | null; } /** @@ -338,7 +348,8 @@ model GitRepositoryDefinition { /** * The URL to sync for the flux configuration git repository. */ - url?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + url?: string | null; /** * The maximum time to attempt to reconcile the cluster git repository source with the remote. @@ -358,22 +369,27 @@ model GitRepositoryDefinition { /** * Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH */ - sshKnownHosts?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + sshKnownHosts?: string | null; /** * Plaintext HTTPS username used to access private git repositories over HTTPS */ - httpsUser?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + httpsUser?: string | null; /** * Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS */ - httpsCACert?: string; + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + httpsCACert?: string | null; /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - localAuthRef?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + localAuthRef?: string | null; /** * Name of the provider used for authentication. @@ -388,22 +404,26 @@ model RepositoryRefDefinition { /** * The git repository branch name to checkout. */ - branch?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + branch?: string | null; /** * The git repository tag name to checkout. This takes precedence over branch. */ - tag?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + tag?: string | null; /** * The semver range used to match against git repository tags. This takes precedence over tag. */ - semver?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + semver?: string | null; /** * The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence over semver. */ - commit?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + commit?: string | null; } /** @@ -438,12 +458,14 @@ model BucketDefinition { /** * Plaintext access key used to securely access the S3 bucket */ - accessKey?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + accessKey?: string | null; /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - localAuthRef?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + localAuthRef?: string | null; } /** @@ -453,12 +475,14 @@ model AzureBlobDefinition { /** * The URL to sync for the flux configuration Azure Blob storage account. */ - url?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + url?: string | null; /** * The Azure Blob container name to sync from the url endpoint for the flux configuration. */ - containerName?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + containerName?: string | null; /** * The maximum time to attempt to reconcile the cluster Azure Blob source with the remote. @@ -478,12 +502,15 @@ model AzureBlobDefinition { /** * The account key (shared key) to access the storage account */ - accountKey?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + accountKey?: string | null; /** * The Shared Access token to access the storage container */ - sasToken?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + sasToken?: string | null; /** * Parameters to authenticate using a Managed Identity. @@ -493,7 +520,8 @@ model AzureBlobDefinition { /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - localAuthRef?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + localAuthRef?: string | null; } /** @@ -503,32 +531,40 @@ model ServicePrincipalDefinition { /** * The client Id for authenticating a Service Principal. */ - clientId?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + clientId?: string | null; /** * The tenant Id for authenticating a Service Principal */ - tenantId?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + tenantId?: string | null; /** * The client secret for authenticating a Service Principal */ - clientSecret?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + clientSecret?: string | null; /** * Base64-encoded certificate used to authenticate a Service Principal */ - clientCertificate?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + clientCertificate?: string | null; /** * The password for the certificate used to authenticate a Service Principal */ - clientCertificatePassword?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + clientCertificatePassword?: string | null; /** * Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the Client Certificate */ - clientCertificateSendChain?: boolean; + clientCertificateSendChain?: boolean = false; } /** @@ -538,17 +574,20 @@ model ManagedIdentityDefinition { /** * The client Id for authenticating a Managed Identity. */ - clientId?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + clientId?: string | null; } /** * Parameters to reconcile to the OCIRepository source kind type. */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model OCIRepositoryDefinition { /** * The URL to sync for the flux configuration OCI repository. */ - url?: url; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + url?: url | null; /** * The maximum time to attempt to reconcile the cluster OCI repository source with the remote. @@ -578,17 +617,18 @@ model OCIRepositoryDefinition { /** * Specify whether to allow connecting to a non-TLS HTTP container registry. */ - insecure?: boolean; + insecure?: boolean = false; /** * Specifies whether to use Workload Identity to authenticate with the OCI repository. */ - useWorkloadIdentity?: boolean; + useWorkloadIdentity?: boolean = false; /** * The service account name to authenticate with the OCI repository. */ - serviceAccountName?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + serviceAccountName?: string | null; /** * Parameters to authenticate using TLS config for OCI repository. @@ -598,27 +638,32 @@ model OCIRepositoryDefinition { /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - localAuthRef?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + localAuthRef?: string | null; } /** * The source reference for the OCIRepository object. */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model OCIRepositoryRefDefinition { /** * The OCI repository image tag name to pull. This defaults to 'latest'. */ - tag?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + tag?: string | null; /** * The semver range used to match against OCI repository tags. This takes precedence over tag. */ - semver?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + semver?: string | null; /** * The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver. */ - digest?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + digest?: string | null; } /** @@ -628,12 +673,14 @@ model LayerSelectorDefinition { /** * The first layer matching the specified media type will be used. */ - mediaType?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + mediaType?: string | null; /** * The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'. */ - operation?: OperationType; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + operation?: OperationType | null; } /** @@ -680,17 +727,23 @@ model TlsConfigDefinition { /** * Base64-encoded certificate used to authenticate a client with the OCI repository. */ - clientCertificate?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + clientCertificate?: string | null; /** * Base64-encoded private key used to authenticate a client with the OCI repository. */ - privateKey?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + privateKey?: string | null; /** * Base64-encoded CA certificate used to verify the server. */ - caCertificate?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + caCertificate?: string | null; } /** @@ -711,7 +764,8 @@ model KustomizationDefinition { /** * Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation. */ - dependsOn?: string[]; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + dependsOn?: string[] | null; /** * The maximum time to attempt to reconcile the Kustomization on the cluster. @@ -726,17 +780,18 @@ model KustomizationDefinition { /** * The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation. */ - retryIntervalInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + retryIntervalInSeconds?: int64 | null; /** * Enable/disable garbage collections of Kubernetes objects created by this Kustomization. */ - prune?: boolean; + prune?: boolean = false; /** * Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change. */ - force?: boolean; + force?: boolean = false; /** * Enable/disable health check for all Kubernetes objects created by this Kustomization. @@ -746,7 +801,8 @@ model KustomizationDefinition { /** * Used for variable substitution for this Kustomization after kustomize build. */ - postBuild?: PostBuildDefinition; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + postBuild?: PostBuildDefinition | null; } /** @@ -756,8 +812,9 @@ model PostBuildDefinition { /** * Key/value pairs holding the variables to be substituted in this Kustomization. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" - substitute?: Record; + substitute?: Record | null; /** * Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization. @@ -783,7 +840,7 @@ model SubstituteFromDefinition { /** * Set to True to proceed without ConfigMap/Secret, if it is not present. */ - optional?: boolean; + optional?: boolean = false; } /** @@ -813,7 +870,8 @@ model ObjectStatusDefinition { /** * Object reference to the Kustomization that applied this object */ - appliedBy?: ObjectReferenceDefinition; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + appliedBy?: ObjectReferenceDefinition | null; /** * List of Kubernetes object status conditions present on the cluster @@ -880,7 +938,8 @@ model HelmReleasePropertiesDefinition { /** * The revision number of the last released object change */ - lastRevisionApplied?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + lastRevisionApplied?: int64 | null; /** * The reference to the HelmChart object used as the source to this HelmRelease @@ -890,17 +949,20 @@ model HelmReleasePropertiesDefinition { /** * Total number of times that the HelmRelease failed to install or upgrade */ - failureCount?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + failureCount?: int64 | null; /** * Number of times that the HelmRelease failed to install */ - installFailureCount?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + installFailureCount?: int64 | null; /** * Number of times that the HelmRelease failed to upgrade */ - upgradeFailureCount?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + upgradeFailureCount?: int64 | null; } /** @@ -967,17 +1029,20 @@ model GitRepositoryPatchDefinition { /** * The URL to sync for the flux configuration git repository. */ - url?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + url?: string | null; /** * The maximum time to attempt to reconcile the cluster git repository source with the remote. */ - timeoutInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + timeoutInSeconds?: int64 | null; /** * The interval at which to re-reconcile the cluster git repository source with the remote. */ - syncIntervalInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + syncIntervalInSeconds?: int64 | null; /** * The source reference for the GitRepository object. @@ -987,27 +1052,33 @@ model GitRepositoryPatchDefinition { /** * Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH */ - sshKnownHosts?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + sshKnownHosts?: string | null; /** * Plaintext HTTPS username used to access private git repositories over HTTPS */ - httpsUser?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + httpsUser?: string | null; /** * Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS */ - httpsCACert?: string; + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + httpsCACert?: string | null; /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - localAuthRef?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + localAuthRef?: string | null; /** * Name of the provider used for authentication. */ - provider?: ProviderType; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + provider?: ProviderType | null; } /** @@ -1017,37 +1088,44 @@ model BucketPatchDefinition { /** * The URL to sync for the flux configuration S3 bucket. */ - url?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + url?: string | null; /** * The bucket name to sync from the url endpoint for the flux configuration. */ - bucketName?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + bucketName?: string | null; /** * Specify whether to use insecure communication when puling data from the S3 bucket. */ - insecure?: boolean; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + insecure?: boolean | null; /** * The maximum time to attempt to reconcile the cluster bucket source with the remote. */ - timeoutInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + timeoutInSeconds?: int64 | null; /** * The interval at which to re-reconcile the cluster bucket source with the remote. */ - syncIntervalInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + syncIntervalInSeconds?: int64 | null; /** * Plaintext access key used to securely access the S3 bucket */ - accessKey?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + accessKey?: string | null; /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - localAuthRef?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + localAuthRef?: string | null; } /** @@ -1057,22 +1135,26 @@ model AzureBlobPatchDefinition { /** * The URL to sync for the flux configuration Azure Blob storage account. */ - url?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + url?: string | null; /** * The Azure Blob container name to sync from the url endpoint for the flux configuration. */ - containerName?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + containerName?: string | null; /** * The maximum time to attempt to reconcile the cluster Azure Blob source with the remote. */ - timeoutInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + timeoutInSeconds?: int64 | null; /** * The interval at which to re-reconcile the cluster Azure Blob source with the remote. */ - syncIntervalInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + syncIntervalInSeconds?: int64 | null; /** * Parameters to authenticate using Service Principal. @@ -1082,12 +1164,16 @@ model AzureBlobPatchDefinition { /** * The account key (shared key) to access the storage account */ - accountKey?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + accountKey?: string | null; /** * The Shared Access token to access the storage container */ - sasToken?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + sasToken?: string | null; /** * Parameters to authenticate using a Managed Identity. @@ -1097,7 +1183,8 @@ model AzureBlobPatchDefinition { /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - localAuthRef?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + localAuthRef?: string | null; } /** @@ -1107,27 +1194,35 @@ model ServicePrincipalPatchDefinition { /** * The client Id for authenticating a Service Principal. */ - clientId?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + clientId?: string | null; /** * The tenant Id for authenticating a Service Principal */ - tenantId?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + tenantId?: string | null; /** * The client secret for authenticating a Service Principal */ - clientSecret?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + clientSecret?: string | null; /** * Base64-encoded certificate used to authenticate a Service Principal */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret clientCertificate?: string; /** * The password for the certificate used to authenticate a Service Principal */ - clientCertificatePassword?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + clientCertificatePassword?: string | null; /** * Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the Client Certificate @@ -1142,27 +1237,32 @@ model ManagedIdentityPatchDefinition { /** * The client Id for authenticating a Managed Identity. */ - clientId?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + clientId?: string | null; } /** * Parameters to reconcile to the OCIRepository source kind type. */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model OCIRepositoryPatchDefinition { /** * The URL to sync for the flux configuration OCI repository. */ - url?: url; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + url?: url | null; /** * The maximum time to attempt to reconcile the cluster OCI repository source with the remote. */ - timeoutInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + timeoutInSeconds?: int64 | null; /** * The interval at which to re-reconcile the cluster OCI repository source with the remote. */ - syncIntervalInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + syncIntervalInSeconds?: int64 | null; /** * The source reference for the OCIRepository object. @@ -1182,17 +1282,20 @@ model OCIRepositoryPatchDefinition { /** * Specify whether to allow connecting to a non-TLS HTTP container registry. */ - insecure?: boolean; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + insecure?: boolean = false; /** * Specifies whether to use Workload Identity to authenticate with the OCI repository. */ - useWorkloadIdentity?: boolean; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + useWorkloadIdentity?: boolean = false; /** * The service account name to authenticate with the OCI repository. */ - serviceAccountName?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + serviceAccountName?: string | null; /** * Parameters to authenticate using TLS config for OCI repository. @@ -1202,27 +1305,32 @@ model OCIRepositoryPatchDefinition { /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - localAuthRef?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + localAuthRef?: string | null; } /** * The source reference for the OCIRepository object. */ +#suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model OCIRepositoryRefPatchDefinition { /** * The OCI repository image tag name to pull. This defaults to 'latest'. */ - tag?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + tag?: string | null; /** * The semver range used to match against OCI repository tags. This takes precedence over tag. */ - semver?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + semver?: string | null; /** * The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver. */ - digest?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + digest?: string | null; } /** @@ -1232,12 +1340,14 @@ model LayerSelectorPatchDefinition { /** * The first layer matching the specified media type will be used. */ - mediaType?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + mediaType?: string | null; /** * The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'. */ - operation?: OperationType; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + operation?: OperationType | null; } /** @@ -1284,17 +1394,23 @@ model TlsConfigPatchDefinition { /** * Base64-encoded certificate used to authenticate a client with the OCI repository. */ - clientCertificate?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + clientCertificate?: string | null; /** * Base64-encoded private key used to authenticate a client with the OCI repository. */ - privateKey?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + privateKey?: string | null; /** * Base64-encoded CA certificate used to verify the server. */ - caCertificate?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret + caCertificate?: string | null; } /** @@ -1304,47 +1420,57 @@ model KustomizationPatchDefinition { /** * The path in the source reference to reconcile on the cluster. */ - path?: string; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + path?: string | null; /** * Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation. */ - dependsOn?: string[]; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + dependsOn?: string[] | null; /** * The maximum time to attempt to reconcile the Kustomization on the cluster. */ - timeoutInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + timeoutInSeconds?: int64 | null; /** * The interval at which to re-reconcile the Kustomization on the cluster. */ - syncIntervalInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + syncIntervalInSeconds?: int64 | null; /** * The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation. */ - retryIntervalInSeconds?: int64; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + retryIntervalInSeconds?: int64 | null; /** * Enable/disable garbage collections of Kubernetes objects created by this Kustomization. */ - prune?: boolean; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + prune?: boolean | null; /** * Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change. */ - force?: boolean; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + force?: boolean | null; /** * Enable/disable health check for all Kubernetes objects created by this Kustomization. */ - wait?: boolean; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + wait?: boolean | null; /** * Used for variable substitution for this Kustomization after kustomize build. */ - postBuild?: PostBuildPatchDefinition; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + postBuild?: PostBuildPatchDefinition | null; } /** @@ -1381,7 +1507,7 @@ model SubstituteFromPatchDefinition { /** * Set to True to proceed without ConfigMap/Secret, if it is not present. */ - optional?: boolean; + optional?: boolean = false; } /** diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfiguration.json index 9abe6fd7b30b..eecf940a4afc 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfiguration.json @@ -1,34 +1,24 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", - "fluxConfigurationName": "srs-fluxconfig", "api-version": "2025-04-01", "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "fluxConfiguration": { "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "GitRepository", - "suspend": false, "gitRepository": { - "url": "https://github.com/Azure/arc-k8s-demo", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", "repositoryRef": { "branch": "master" }, - "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl" + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" }, "kustomizations": { "srs-kustomization1": { "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "wait": true, "postBuild": { "substitute": { "cluster_env": "prod", @@ -36,88 +26,81 @@ }, "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-test", + "kind": "ConfigMap", "optional": true } ] - } + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true }, "srs-kustomization2": { "path": "./other/test/path", "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "retryIntervalInSeconds": 600, - "prune": false, - "wait": false, "postBuild": { "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-values", + "kind": "ConfigMap", "optional": true }, { - "kind": "Secret", "name": "secret-name", + "kind": "Secret", "optional": false } ] - } + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false } }, - "waitForReconciliation": true, - "reconciliationWaitDuration": "PT30M" + "namespace": "srs-namespace", + "reconciliationWaitDuration": "PT30M", + "scope": "cluster", + "sourceKind": "GitRepository", + "suspend": false, + "waitForReconciliation": true } - } + }, + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", - "x-ms-async-operation-timeout": "PT48H" - }, "description": "Details of the Kubernetes Flux Configuration's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", - "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", "name": "srs-fluxconfig", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-05-19T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-05-19T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "GitRepository", - "suspend": false, + "complianceState": "Compliant", + "errorMessage": "", "gitRepository": { - "url": "https://github.com/Azure/arc-k8s-demo", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", "repositoryRef": { "branch": "master", - "tag": null, + "commit": null, "semver": null, - "commit": null + "tag": null }, - "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl" + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" }, "kustomizations": { "srs-kustomization1": { "name": "srs-kustomization1", "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "wait": true, "postBuild": { "substitute": { "cluster_env": "prod", @@ -125,12 +108,15 @@ }, "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-test", + "kind": "ConfigMap", "optional": true } ] - } + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true }, "srs-kustomization2": { "name": "srs-kustomization2", @@ -138,149 +124,145 @@ "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "retryIntervalInSeconds": 600, - "prune": false, - "wait": false, "postBuild": { "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-values", + "kind": "ConfigMap", "optional": true }, { - "kind": "Secret", "name": "secret-name", + "kind": "Secret", "optional": false } ] - } + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false } }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "GitRepository", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": null, + "kind": "GitRepository", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "GitOperationSucceed", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] } ], - "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", - "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" } }, "201": { - "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", - "x-ms-async-operation-timeout": "PT48H", - "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId?api-version=2025-04-01" - }, "description": "Details of the Kubernetes Flux Configuration's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", - "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", "name": "srs-fluxconfig", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-05-19T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-05-19T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "GitRepository", - "suspend": false, + "complianceState": "Compliant", + "errorMessage": "", "gitRepository": { - "url": "https://github.com/Azure/arc-k8s-demo", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", "repositoryRef": { "branch": "master", - "tag": null, + "commit": null, "semver": null, - "commit": null + "tag": null }, - "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl" + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" }, "kustomizations": { "srs-kustomization1": { "name": "srs-", "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "wait": true, "postBuild": { "substitute": { "cluster_env": "prod", @@ -288,12 +270,15 @@ }, "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-test", + "kind": "ConfigMap", "optional": true } ] - } + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true }, "srs-kustomization2": { "name": "srs-kustomization2", @@ -301,103 +286,120 @@ "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "retryIntervalInSeconds": 600, - "prune": false, - "wait": false, "postBuild": { "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-values", + "kind": "ConfigMap", "optional": true }, { - "kind": "Secret", "name": "secret-name", + "kind": "Secret", "optional": false } ] - } + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false } }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "GitRepository", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", + "kind": "GitRepository", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "GitOperationSucceed", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] } ], - "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", - "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId?api-version=2025-04-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" } } - } -} + }, + "operationId": "FluxConfigurations_CreateOrUpdate", + "title": "Create Flux Configuration" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithBucket.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithBucket.json index 043a8bd1e364..6b1c52eced79 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithBucket.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithBucket.json @@ -1,85 +1,71 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", - "fluxConfigurationName": "srs-fluxconfig", "api-version": "2025-04-01", "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "fluxConfiguration": { "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "Bucket", - "suspend": false, "bucket": { - "url": "https://fluxminiotest.az.minio.io", + "accessKey": "fluxminiotest", "bucketName": "flux", "syncIntervalInSeconds": 1000, "timeoutInSeconds": 1000, - "accessKey": "fluxminiotest" + "url": "https://fluxminiotest.az.minio.io" }, "kustomizations": { "srs-kustomization1": { "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600 + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 }, "srs-kustomization2": { "path": "./other/test/path", "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "prune": false, "retryIntervalInSeconds": 600, - "prune": false + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 } - } + }, + "namespace": "srs-namespace", + "scope": "cluster", + "sourceKind": "Bucket", + "suspend": false } - } + }, + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", - "x-ms-async-operation-timeout": "PT48H" - }, "description": "Details of the Kubernetes Flux Configuration's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", - "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", "name": "srs-fluxconfig", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-05-19T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-05-19T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "Bucket", - "suspend": false, - "gitRepository": null, "bucket": { - "url": "https://fluxminiotest.az.minio.io", + "accessKey": "fluxminiotest", "bucketName": "flux", "syncIntervalInSeconds": 1000, "timeoutInSeconds": 1000, - "accessKey": "fluxminiotest" + "url": "https://fluxminiotest.az.minio.io" }, + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": null, "kustomizations": { "srs-kustomization1": { "name": "srs-kustomization1", "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600 + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 }, "srs-kustomization2": { "name": "srs-kustomization2", @@ -87,128 +73,128 @@ "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "prune": false, "retryIntervalInSeconds": 600, - "prune": false + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 } }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "", + "scope": "cluster", + "sourceKind": "Bucket", + "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "Bucket", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": null, + "kind": "Bucket", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2022-05-04T07:17:30+00:00", "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'", "reason": "Succeeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] } ], - "repositoryPublicKey": "", - "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } - } - }, - "201": { + }, "headers": { "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", "x-ms-async-operation-timeout": "PT48H" - }, + } + }, + "201": { "description": "Details of the Kubernetes Flux Configuration's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", - "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", "name": "srs-fluxconfig", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-05-19T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-05-19T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "Bucket", - "suspend": false, - "gitRepository": null, "bucket": { - "url": "https://fluxminiotest.az.minio.io", + "accessKey": "fluxminiotest", "bucketName": "flux", "syncIntervalInSeconds": 1000, "timeoutInSeconds": 1000, - "accessKey": "fluxminiotest" + "url": "https://fluxminiotest.az.minio.io" }, + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": null, "kustomizations": { "srs-kustomization1": { "name": "srs-kustomization1", "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600 + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 }, "srs-kustomization2": { "name": "srs-kustomization2", @@ -216,88 +202,104 @@ "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "prune": false, "retryIntervalInSeconds": 600, - "prune": false + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 } }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "", + "scope": "cluster", + "sourceKind": "Bucket", + "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "Bucket", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", + "kind": "Bucket", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2022-05-04T07:17:30+00:00", "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'", "reason": "Succeeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] } ], - "repositoryPublicKey": "", - "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" } } - } -} + }, + "operationId": "FluxConfigurations_CreateOrUpdate", + "title": "Create Flux Configuration with Bucket Source Kind" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithOCIRepository.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithOCIRepository.json index 326038d9b6d5..0b54e141b975 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithOCIRepository.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithOCIRepository.json @@ -1,85 +1,65 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", - "fluxConfigurationName": "srs-fluxconfig", "api-version": "2025-04-01", "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "fluxConfiguration": { "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "OCIRepository", - "suspend": false, - "ociRepository": { - "url": "oci://ghcr.io/stefanprodan/manifests/podinfo", - "syncIntervalInSeconds": 1000, - "timeoutInSeconds": 1000, - "serviceAccountName": "testserviceaccount" - }, "kustomizations": { "srs-kustomization1": { "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600 + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 }, "srs-kustomization2": { "path": "./other/test/path", "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "prune": false, "retryIntervalInSeconds": 600, - "prune": false + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 } - } + }, + "namespace": "srs-namespace", + "ociRepository": { + "serviceAccountName": "testserviceaccount", + "syncIntervalInSeconds": 1000, + "timeoutInSeconds": 1000, + "url": "oci://ghcr.io/stefanprodan/manifests/podinfo" + }, + "scope": "cluster", + "sourceKind": "OCIRepository", + "suspend": false } - } + }, + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", - "x-ms-async-operation-timeout": "PT48H" - }, "description": "Details of the Kubernetes Flux Configuration's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", - "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", "name": "srs-fluxconfig", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-05-19T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-05-19T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "OCIRepository", - "suspend": false, - "gitRepository": null, - "bucket": null, "azureBlob": null, - "ociRepository": { - "url": "oci://ghcr.io/stefanprodan/manifests/podinfo", - "syncIntervalInSeconds": 1000, - "timeoutInSeconds": 1000, - "serviceAccountName": "testserviceaccount" - }, + "bucket": null, + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": null, "kustomizations": { "srs-kustomization1": { "name": "srs-kustomization1", "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600 + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 }, "srs-kustomization2": { "name": "srs-kustomization2", @@ -87,129 +67,129 @@ "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "prune": false, "retryIntervalInSeconds": 600, - "prune": false + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 } }, + "namespace": "srs-namespace", + "ociRepository": { + "serviceAccountName": "testserviceaccount", + "syncIntervalInSeconds": 1000, + "timeoutInSeconds": 1000, + "url": "oci://ghcr.io/stefanprodan/manifests/podinfo" + }, + "provisioningState": "Succeeded", + "repositoryPublicKey": "", + "scope": "cluster", + "sourceKind": "OCIRepository", + "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "OCIRepository", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": null, + "kind": "OCIRepository", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2022-05-04T07:17:30+00:00", "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'", "reason": "Succeeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] } ], - "repositoryPublicKey": "", - "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } - } - }, - "201": { + }, "headers": { "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", "x-ms-async-operation-timeout": "PT48H" - }, + } + }, + "201": { "description": "Details of the Kubernetes Flux Configuration's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", - "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", "name": "srs-fluxconfig", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-05-19T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-05-19T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "OCIRepository", - "suspend": false, - "gitRepository": null, - "bucket": null, "azureBlob": null, - "ociRepository": { - "url": "oci://ghcr.io/stefanprodan/manifests/podinfo", - "syncIntervalInSeconds": 1000, - "timeoutInSeconds": 1000, - "serviceAccountName": "testserviceaccount" - }, + "bucket": null, + "complianceState": "Compliant", + "errorMessage": "", + "gitRepository": null, "kustomizations": { "srs-kustomization1": { "name": "srs-kustomization1", "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600 + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 }, "srs-kustomization2": { "name": "srs-kustomization2", @@ -217,88 +197,110 @@ "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "prune": false, "retryIntervalInSeconds": 600, - "prune": false + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 } }, + "namespace": "srs-namespace", + "ociRepository": { + "serviceAccountName": "testserviceaccount", + "syncIntervalInSeconds": 1000, + "timeoutInSeconds": 1000, + "url": "oci://ghcr.io/stefanprodan/manifests/podinfo" + }, + "provisioningState": "Succeeded", + "repositoryPublicKey": "", + "scope": "cluster", + "sourceKind": "OCIRepository", + "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "OCIRepository", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", + "kind": "OCIRepository", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2022-05-04T07:17:30+00:00", "message": "stored artifact for revision '55396be14f18fa2b977c1f22becef26a94d1d9a7ccb1e19d12f9cac52d757a84'", "reason": "Succeeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: 0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] } ], - "repositoryPublicKey": "", - "sourceSyncedCommitId": "0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" } } - } -} + }, + "operationId": "FluxConfigurations_CreateOrUpdate", + "title": "Create Flux Configuration with OCIRepository Source Kind" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithProvider.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithProvider.json index 3a1dac164026..07c6ee60ee3a 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithProvider.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithProvider.json @@ -1,35 +1,25 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", - "fluxConfigurationName": "srs-fluxconfig", "api-version": "2025-04-01", "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "fluxConfiguration": { "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "GitRepository", - "suspend": false, "gitRepository": { - "url": "https://dev.azure.com/org/proj/_git/arc-k8s-demo", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", "provider": "Azure", "repositoryRef": { "branch": "master" }, - "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl" + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://dev.azure.com/org/proj/_git/arc-k8s-demo" }, "kustomizations": { "srs-kustomization1": { "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "wait": true, "postBuild": { "substitute": { "cluster_env": "prod", @@ -37,88 +27,81 @@ }, "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-test", + "kind": "ConfigMap", "optional": true } ] - } + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true }, "srs-kustomization2": { "path": "./other/test/path", "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "retryIntervalInSeconds": 600, - "prune": false, - "wait": false, "postBuild": { "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-values", + "kind": "ConfigMap", "optional": true }, { - "kind": "Secret", "name": "secret-name", + "kind": "Secret", "optional": false } ] - } + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false } }, - "waitForReconciliation": true, - "reconciliationWaitDuration": "PT30M" + "namespace": "srs-namespace", + "reconciliationWaitDuration": "PT30M", + "scope": "cluster", + "sourceKind": "GitRepository", + "suspend": false, + "waitForReconciliation": true } - } + }, + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", - "x-ms-async-operation-timeout": "PT48H" - }, "description": "Details of the Kubernetes Flux Configuration's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", - "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", "name": "srs-fluxconfig", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-05-19T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-05-19T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "GitRepository", - "suspend": false, + "complianceState": "Compliant", + "errorMessage": "", "gitRepository": { - "url": "https://github.com/Azure/arc-k8s-demo", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", "repositoryRef": { "branch": "master", - "tag": null, + "commit": null, "semver": null, - "commit": null + "tag": null }, - "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl" + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" }, "kustomizations": { "srs-kustomization1": { "name": "srs-kustomization1", "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "wait": true, "postBuild": { "substitute": { "cluster_env": "prod", @@ -126,12 +109,15 @@ }, "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-test", + "kind": "ConfigMap", "optional": true } ] - } + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true }, "srs-kustomization2": { "name": "srs-kustomization2", @@ -139,149 +125,145 @@ "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "retryIntervalInSeconds": 600, - "prune": false, - "wait": false, "postBuild": { "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-values", + "kind": "ConfigMap", "optional": true }, { - "kind": "Secret", "name": "secret-name", + "kind": "Secret", "optional": false } ] - } + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false } }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "GitRepository", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": null, + "kind": "GitRepository", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "GitOperationSucceed", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] } ], - "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", - "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } + }, + "headers": { + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" } }, "201": { - "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", - "x-ms-async-operation-timeout": "PT48H", - "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId?api-version=2025-04-01" - }, "description": "Details of the Kubernetes Flux Configuration's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", - "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", "name": "srs-fluxconfig", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-05-19T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-05-19T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "GitRepository", - "suspend": false, + "complianceState": "Compliant", + "errorMessage": "", "gitRepository": { - "url": "https://github.com/Azure/arc-k8s-demo", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl", "repositoryRef": { "branch": "master", - "tag": null, + "commit": null, "semver": null, - "commit": null + "tag": null }, - "httpsCACert": "ZXhhbXBsZWNlcnRpZmljYXRl" + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" }, "kustomizations": { "srs-kustomization1": { "name": "srs-", "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "wait": true, "postBuild": { "substitute": { "cluster_env": "prod", @@ -289,12 +271,15 @@ }, "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-test", + "kind": "ConfigMap", "optional": true } ] - } + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true }, "srs-kustomization2": { "name": "srs-kustomization2", @@ -302,103 +287,120 @@ "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "retryIntervalInSeconds": 600, - "prune": false, - "wait": false, "postBuild": { "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-values", + "kind": "ConfigMap", "optional": true }, { - "kind": "Secret", "name": "secret-name", + "kind": "Secret", "optional": false } ] - } + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false } }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "GitRepository", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", + "kind": "GitRepository", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "GitOperationSucceed", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] } ], - "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", - "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId?api-version=2025-04-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/ClusterMonitor/srs-fluxconfig/{operationId}", + "x-ms-async-operation-timeout": "PT48H" } } - } -} + }, + "operationId": "FluxConfigurations_CreateOrUpdate", + "title": "Create Flux Configuration with Git Repository Provider" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/DeleteFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/DeleteFluxConfiguration.json index a450bba9511a..2e10e7d6666d 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/DeleteFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/DeleteFluxConfiguration.json @@ -1,23 +1,25 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", + "api-version": "2025-04-01", + "clusterName": "clusterName1", "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "fluxConfigurationName": "srs-fluxconfig", - "api-version": "2025-04-01", - "clusterName": "clusterName1" + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { + "200": {}, "202": { + "description": "Details of the Kubernetes Flux Configuration's current status.", "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/{operationId}", "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/operationId?api-version=2025-04-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/{operationId}", "x-ms-async-operation-timeout": "PT1H" - }, - "description": "Details of the Kubernetes Flux Configuration's current status." + } }, - "200": {}, "204": {} - } -} + }, + "operationId": "FluxConfigurations_Delete", + "title": "Delete Flux Configuration" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfiguration.json index 6562db61a025..01ab95f7a437 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfiguration.json @@ -1,53 +1,39 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", + "api-version": "2025-04-01", + "clusterName": "clusterName1", "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", "fluxConfigurationName": "srs-fluxconfig", - "api-version": "2025-04-01", - "clusterName": "clusterName1" + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": {}, "description": "Details of the Kubernetes Flux Configuration's current status.", "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", - "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", "name": "srs-fluxconfig", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-05-19T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-05-19T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "GitRepository", - "suspend": false, + "complianceState": "Compliant", + "errorMessage": "", "gitRepository": { - "url": "https://github.com/Azure/arc-k8s-demo", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, "repositoryRef": { "branch": "master", - "tag": null, + "commit": null, "semver": null, - "commit": null - } + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" }, "kustomizations": { "srs-kustomization1": { "name": "srs-kustomization1", "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "wait": true, "postBuild": { "substitute": { "cluster_env": "prod", @@ -55,12 +41,15 @@ }, "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-test", + "kind": "ConfigMap", "optional": true } ] - } + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true }, "srs-kustomization2": { "name": "srs-kustomization2", @@ -68,107 +57,120 @@ "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "retryIntervalInSeconds": 600, - "prune": false, - "wait": false, "postBuild": { "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-values", + "kind": "ConfigMap", "optional": true }, { - "kind": "Secret", "name": "secret-name", + "kind": "Secret", "optional": false } ] - } + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false } }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "GitRepository", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": null, + "kind": "GitRepository", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "GitOperationSucceed", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": { "name": "my-name", "namespace": "my-namespace" }, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] } ], - "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", - "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } - } + }, + "headers": {} } - } -} + }, + "operationId": "FluxConfigurations_Get", + "title": "Get Flux Configuration" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfigurationAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfigurationAsyncOperationStatus.json index 3b8fe802c59d..58f4f0ee6869 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfigurationAsyncOperationStatus.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfigurationAsyncOperationStatus.json @@ -1,24 +1,26 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", - "fluxConfigurationName": "srs-fluxconfig", + "operationId": "99999999-9999-9999-9999-999999999999", "api-version": "2025-04-01", "clusterName": "clusterName1", - "operationId": "99999999-9999-9999-9999-999999999999" + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "fluxConfigurationName": "srs-fluxconfig", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { - "headers": {}, "body": { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/99999999-9999-9999-9999-999999999999", "name": "99999999-9999-9999-9999-999999999999", - "status": "Succeeded", + "error": null, + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/99999999-9999-9999-9999-999999999999", "properties": {}, - "error": null - } + "status": "Succeeded" + }, + "headers": {} } - } -} + }, + "operationId": "FluxConfigOperationStatus_Get", + "title": "FluxConfigurationAsyncOperationStatus Get" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/ListFluxConfigurations.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/ListFluxConfigurations.json index 5cc84f40749d..3e143d29c897 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/ListFluxConfigurations.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/ListFluxConfigurations.json @@ -1,52 +1,40 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", "api-version": "2025-04-01", - "clusterName": "clusterName1" + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", - "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", "name": "srs-fluxconfig", - "systemData": { - "createdBy": "string", - "createdByType": "Application", - "createdAt": "2021-05-19T05:10:57.027Z", - "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-05-19T05:10:57.027Z" - }, + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "GitRepository", - "suspend": false, + "complianceState": "Compliant", + "errorMessage": "", "gitRepository": { - "url": "https://github.com/Azure/arc-k8s-demo", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, "repositoryRef": { "branch": "master", - "tag": null, + "commit": null, "semver": null, - "commit": null - } + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" }, "kustomizations": { "srs-kustomization1": { "name": "srs-kustomization1", "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "wait": true, "postBuild": { "substitute": { "cluster_env": "prod", @@ -54,12 +42,15 @@ }, "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-test", + "kind": "ConfigMap", "optional": true } ] - } + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": true }, "srs-kustomization2": { "name": "srs-kustomization2", @@ -67,97 +58,97 @@ "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, - "retryIntervalInSeconds": 600, - "prune": false, - "wait": false, "postBuild": { "substituteFrom": [ { - "kind": "ConfigMap", "name": "cluster-values", + "kind": "ConfigMap", "optional": true }, { - "kind": "Secret", "name": "secret-name", + "kind": "Secret", "optional": false } ] - } + }, + "prune": false, + "retryIntervalInSeconds": 600, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "wait": false } }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "GitRepository", - "complianceState": "Compliant", "appliedBy": null, - "statusConditions": null, - "helmReleaseProperties": null + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "GitRepository", + "statusConditions": null }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, - "statusConditions": null, - "helmReleaseProperties": null + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "Kustomization", + "statusConditions": null }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, - "statusConditions": null, - "helmReleaseProperties": null + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "Kustomization", + "statusConditions": null } ], - "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", - "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" - } - }, - { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", - "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", - "name": "srs-fluxconfig", + "suspend": false + }, "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", "createdBy": "string", "createdByType": "Application", - "createdAt": "2021-05-19T05:10:57.027Z", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", "lastModifiedBy": "string", - "lastModifiedByType": "Application", - "lastModifiedAt": "2020-05-19T05:10:57.027Z" - }, + "lastModifiedByType": "Application" + } + }, + { + "name": "srs-fluxconfig", + "type": "Microsoft.KubernetesConfiguration/fluxConfigurations", + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig", "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "GitRepository", - "suspend": false, + "complianceState": "Compliant", + "errorMessage": "", "gitRepository": { - "url": "https://github.com/Azure/arc-k8s-demo", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, "repositoryRef": { "branch": "master", - "tag": null, + "commit": null, "semver": null, - "commit": null - } + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/Azure/arc-k8s-demo" }, "kustomizations": { "srs-kustomization1": { "name": "srs-kustomization1", "path": "./test/path", "dependsOn": [], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600 + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 }, "srs-kustomization2": { "name": "srs-kustomization2", @@ -165,50 +156,61 @@ "dependsOn": [ "srs-kustomization1" ], - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, + "prune": false, "retryIntervalInSeconds": 600, - "prune": false + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600 } }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "GitRepository", - "complianceState": "Compliant", "appliedBy": null, - "statusConditions": null, - "helmReleaseProperties": null + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "GitRepository", + "statusConditions": null }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, - "statusConditions": null, - "helmReleaseProperties": null + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "Kustomization", + "statusConditions": null }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, - "statusConditions": null, - "helmReleaseProperties": null + "complianceState": "Compliant", + "helmReleaseProperties": null, + "kind": "Kustomization", + "statusConditions": null } ], - "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", - "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false + }, + "systemData": { + "createdAt": "2021-05-19T05:10:57.027Z", + "createdBy": "string", + "createdByType": "Application", + "lastModifiedAt": "2020-05-19T05:10:57.027Z", + "lastModifiedBy": "string", + "lastModifiedByType": "Application" } } - ], - "nextLink": null + ] } } - } -} + }, + "operationId": "FluxConfigurations_List", + "title": "List Flux Configuration" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/PatchFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/PatchFluxConfiguration.json index 702be7224bbd..988e29520e3e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/PatchFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/PatchFluxConfiguration.json @@ -1,15 +1,12 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", - "fluxConfigurationName": "srs-fluxconfig", "api-version": "2025-04-01", "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "fluxConfigurationName": "srs-fluxconfig", "fluxConfigurationPatch": { "properties": { - "suspend": true, "gitRepository": { "url": "https://github.com/jonathan-innis/flux2-kustomize-helm-example.git" }, @@ -17,248 +14,253 @@ "srs-kustomization1": null, "srs-kustomization2": { "path": "./test/alt-path", - "syncIntervalInSeconds": 300, - "dependsOn": null + "dependsOn": null, + "syncIntervalInSeconds": 300 }, "srs-kustomization3": { "path": "./test/another-path", "syncIntervalInSeconds": 300 } - } + }, + "suspend": true } - } + }, + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { "description": "FluxConfiguration properties from not updating any property values.", "body": { "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "GitRepository", - "suspend": false, + "complianceState": "Compliant", + "errorMessage": "", "gitRepository": { - "url": "https://github.com/jonathan-innis/flux2-kustomize-helm-example.git", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, "repositoryRef": { "branch": "master", - "tag": null, + "commit": null, "semver": null, - "commit": null - } + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/jonathan-innis/flux2-kustomize-helm-example.git" }, "kustomizations": { "srs-kustomization2": { "path": "./test/alt-path", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 300, + "prune": false, "retryIntervalInSeconds": 600, - "prune": false + "syncIntervalInSeconds": 300, + "timeoutInSeconds": 600 }, "srs-kustomization3": { "path": "./test/another-path", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 300, + "prune": false, "retryIntervalInSeconds": null, - "prune": false + "syncIntervalInSeconds": 300, + "timeoutInSeconds": 600 } }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "GitRepository", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": null, + "kind": "GitRepository", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "GitOperationSucceed", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] } ], - "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", - "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false } } }, "202": { - "headers": { - "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId", - "x-ms-async-operation-timeout": "PT48H", - "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId?api-version=2025-04-01" - }, "description": "FluxConfiguration properties and details of the Patch operation, including AsyncOperation url.", "body": { "properties": { - "scope": "cluster", - "namespace": "srs-namespace", - "sourceKind": "GitRepository", - "suspend": false, + "complianceState": "Compliant", + "errorMessage": "", "gitRepository": { - "url": "https://github.com/jonathan-innis/flux2-kustomize-helm-example.git", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 600, "repositoryRef": { "branch": "master", - "tag": null, + "commit": null, "semver": null, - "commit": null - } + "tag": null + }, + "syncIntervalInSeconds": 600, + "timeoutInSeconds": 600, + "url": "https://github.com/jonathan-innis/flux2-kustomize-helm-example.git" }, "kustomizations": { "srs-kustomization2": { "path": "./test/alt-path", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 300, + "prune": false, "retryIntervalInSeconds": 600, - "prune": false + "syncIntervalInSeconds": 300, + "timeoutInSeconds": 600 }, "srs-kustomization3": { "path": "./test/another-path", - "timeoutInSeconds": 600, - "syncIntervalInSeconds": 300, + "prune": false, "retryIntervalInSeconds": null, - "prune": false + "syncIntervalInSeconds": 300, + "timeoutInSeconds": 600 } }, + "namespace": "srs-namespace", + "provisioningState": "Succeeded", + "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", + "scope": "cluster", + "sourceKind": "GitRepository", + "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", + "sourceUpdatedAt": "2021-05-19T18:17:12Z", + "statusUpdatedAt": "2021-05-19T18:17:12Z", "statuses": [ { "name": "srs-fluxconfig", - "kind": "GitRepository", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": null, + "kind": "GitRepository", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Fetched revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "GitOperationSucceed", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization1", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] }, { "name": "srs-fluxconfig-srs-kustomization2", - "kind": "Kustomization", - "complianceState": "Compliant", "appliedBy": null, + "complianceState": "Compliant", "helmReleaseProperties": { - "lastRevisionApplied": 1, + "failureCount": null, "helmChartRef": { "name": "myname", "namespace": "mynamespace" }, - "failureCount": null, - "upgradeFailureCount": null, - "installFailureCount": null + "installFailureCount": null, + "lastRevisionApplied": 1, + "upgradeFailureCount": null }, + "kind": "Kustomization", "statusConditions": [ { + "type": "Ready", "lastTransitionTime": "2021-05-19T18:12:40Z", "message": "'Applied revision: master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590'", "reason": "ReconciliationSucceeded", - "status": "True", - "type": "Ready" + "status": "True" } ] } ], - "repositoryPublicKey": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDiNkrANrhtRy+02Xc7b5bwvgOKvQMbqUQaXeB6FCDkbLaavw/zO/vIhIBEQu+vbBt6IlI/Pui0rMFr5JjA8Vwwd85oabzU07TPzbFvKSU9eCXqWRKWf0DHNQj/kxPJNtyPYFv3lGoiZZ6QzejOxlW/lPPokUePN0oI10daWwqznm2q0Cmh1EgPUYveq3J5KCWncZXCdwY36zWYulCWFaqazoaGy4kxcqlVy+mPjE/UJthaoLm3mq+23uhlmmfCc1j7W6+H6fcOwTyOtcbimxz2Ug8HlTzSTXBPtEe7qyllMyk62EPNUUq4bVoVsex9sKBK6/hW0Cn2P5i5jslUPCQF", - "sourceSyncedCommitId": "master/0ba6f0d30760d567de0bac86c8c4eec13ce1a590", - "sourceUpdatedAt": "2021-05-19T18:17:12Z", - "statusUpdatedAt": "2021-05-19T18:17:12Z", - "complianceState": "Compliant", - "provisioningState": "Succeeded", - "errorMessage": "" + "suspend": false } + }, + "headers": { + "Azure-AsyncOperation": "http://management.azure.com/subscriptions/subId/resourceGroups/rg1/providers/Microsoft.Kubernetes/ConnectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId?api-version=2025-04-01", + "Operation-Location": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/srs-fluxconfig/operations/operationId", + "x-ms-async-operation-timeout": "PT48H" } } - } -} + }, + "operationId": "FluxConfigurations_Update", + "title": "Patch Flux Configuration" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json index 2b8550207144..65c94f1b9fcd 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json @@ -1,18 +1,23 @@ { "swagger": "2.0", "info": { - "version": "2025-04-01", "title": "FluxConfigurationClient", - "description": "Use these APIs to create Flux Configuration resources through ARM, for Kubernetes Clusters." + "version": "2025-04-01", + "description": "Use these APIs to create Flux Configuration resources through ARM, for Kubernetes Clusters.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, - "host": "management.azure.com", "schemes": [ "https" ], - "consumes": [ + "host": "management.azure.com", + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], "security": [ @@ -25,1880 +30,2253 @@ "securityDefinitions": { "azure_auth": { "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "description": "Azure Active Directory OAuth2 Flow.", "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } } }, + "tags": [ + { + "name": "FluxConfigurations" + } + ], "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/{fluxConfigurationName}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations": { "get": { + "operationId": "FluxConfigurations_List", "tags": [ - "FluxConfiguration", - "Flux" + "FluxConfigurations" ], - "description": "Gets details of the Flux Configuration.", - "operationId": "FluxConfigurations_Get", + "description": "List all Flux Configurations.", + "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" + }, + { + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/FluxConfigurationsList" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, "x-ms-examples": { - "Get Flux Configuration": { - "$ref": "./examples/GetFluxConfiguration.json" + "List Flux Configuration": { + "$ref": "./examples/ListFluxConfigurations.json" } }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/{fluxConfigurationName}": { + "get": { + "operationId": "FluxConfigurations_Get", + "tags": [ + "FluxConfigurations" + ], + "description": "Gets details of the Flux Configuration.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "#/parameters/FluxConfigurationNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "fluxConfigurationName", + "in": "path", + "description": "Name of the Flux Configuration.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/FluxConfiguration" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "Get Flux Configuration": { + "$ref": "./examples/GetFluxConfiguration.json" + } } }, "put": { + "operationId": "FluxConfigurations_CreateOrUpdate", "tags": [ - "FluxConfiguration", - "Flux" + "FluxConfigurations" ], "description": "Create a new Kubernetes Flux Configuration.", - "operationId": "FluxConfigurations_CreateOrUpdate", - "x-ms-examples": { - "Create Flux Configuration": { - "$ref": "./examples/CreateFluxConfiguration.json" - }, - "Create Flux Configuration with Bucket Source Kind": { - "$ref": "./examples/CreateFluxConfigurationWithBucket.json" - }, - "Create Flux Configuration with OCIRepository Source Kind": { - "$ref": "./examples/CreateFluxConfigurationWithOCIRepository.json" - }, - "Create Flux Configuration with Git Repository Provider": { - "$ref": "./examples/CreateFluxConfigurationWithProvider.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "#/parameters/FluxConfigurationNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "fluxConfigurationName", + "in": "path", + "description": "Name of the Flux Configuration.", + "required": true, + "type": "string" }, { "name": "fluxConfiguration", "in": "body", + "description": "Properties necessary to Create a FluxConfiguration.", "required": true, "schema": { "$ref": "#/definitions/FluxConfiguration" - }, - "description": "Properties necessary to Create a FluxConfiguration." + } } ], "responses": { "200": { - "description": "Request received successfully for an existing resource.", + "description": "Resource 'FluxConfiguration' update operation succeeded", "schema": { "$ref": "#/definitions/FluxConfiguration" } }, "201": { - "description": "Request received successfully.", + "description": "Resource 'FluxConfiguration' create operation succeeded", "schema": { "$ref": "#/definitions/FluxConfiguration" + }, + "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": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, + "x-ms-examples": { + "Create Flux Configuration": { + "$ref": "./examples/CreateFluxConfiguration.json" + }, + "Create Flux Configuration with Bucket Source Kind": { + "$ref": "./examples/CreateFluxConfigurationWithBucket.json" + }, + "Create Flux Configuration with Git Repository Provider": { + "$ref": "./examples/CreateFluxConfigurationWithProvider.json" + }, + "Create Flux Configuration with OCIRepository Source Kind": { + "$ref": "./examples/CreateFluxConfigurationWithOCIRepository.json" + } + }, "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/FluxConfiguration" + }, + "x-ms-long-running-operation": true }, "patch": { + "operationId": "FluxConfigurations_Update", "tags": [ - "FluxConfiguration", - "Flux" + "FluxConfigurations" ], "description": "Update an existing Kubernetes Flux Configuration.", - "operationId": "FluxConfigurations_Update", - "x-ms-examples": { - "Patch Flux Configuration": { - "$ref": "./examples/PatchFluxConfiguration.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "#/parameters/FluxConfigurationNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "fluxConfigurationName", + "in": "path", + "description": "Name of the Flux Configuration.", + "required": true, + "type": "string" }, { "name": "fluxConfigurationPatch", "in": "body", + "description": "Properties to Patch in an existing Flux Configuration.", "required": true, "schema": { "$ref": "#/definitions/FluxConfigurationPatch" - }, - "description": "Properties to Patch in an existing Flux Configuration." + } } ], "responses": { - "202": { - "description": "Request received successfully, and the resource will be updated asynchronously.", + "200": { + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/FluxConfiguration" } }, - "200": { - "description": "No update is done to fluxConfiguration so return OK.", + "202": { + "description": "The request has been accepted for processing, but processing has not yet completed.", "schema": { "$ref": "#/definitions/FluxConfiguration" + }, + "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": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, + "x-ms-examples": { + "Patch Flux Configuration": { + "$ref": "./examples/PatchFluxConfiguration.json" + } + }, "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/FluxConfiguration" + }, + "x-ms-long-running-operation": true }, "delete": { + "operationId": "FluxConfigurations_Delete", "tags": [ - "FluxConfiguration", - "Flux" + "FluxConfigurations" ], "description": "This will delete the YAML file used to set up the Flux Configuration, thus stopping future sync from the source repo.", - "operationId": "FluxConfigurations_Delete", - "x-ms-examples": { - "Delete Flux Configuration": { - "$ref": "./examples/DeleteFluxConfiguration.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "#/parameters/FluxConfigurationNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "fluxConfigurationName", + "in": "path", + "description": "Name of the Flux Configuration.", + "required": true, + "type": "string" }, { "name": "forceDelete", "in": "query", "description": "Delete the extension resource in Azure - not the normal asynchronous delete.", + "required": false, "type": "boolean" } ], "responses": { "200": { - "description": "OK. The request has been completed successfully." + "description": "Resource deleted successfully." }, "202": { - "description": "Accepted. The request has been accepted for processing." + "description": "Resource deletion accepted.", + "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." + } + } }, "204": { - "description": "No Content. The request has been accepted but the configuration was not found." + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, - "x-ms-long-running-operation-options": { - "final-state-via": "azure-async-operation" - } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations": { - "get": { - "tags": [ - "FluxConfiguration", - "Flux" - ], - "description": "List all Flux Configurations.", - "operationId": "FluxConfigurations_List", "x-ms-examples": { - "List Flux Configuration": { - "$ref": "./examples/ListFluxConfigurations.json" + "Delete Flux Configuration": { + "$ref": "./examples/DeleteFluxConfiguration.json" } }, - "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" - }, - { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" - }, - { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" - } - ], - "responses": { - "200": { - "description": "OK", - "schema": { - "$ref": "#/definitions/FluxConfigurationsList" - } - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - } - } + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" }, - "x-ms-pageable": { - "nextLinkName": "nextLink" - } + "x-ms-long-running-operation": true } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/{fluxConfigurationName}/operations/{operationId}": { "get": { + "operationId": "FluxConfigOperationStatus_Get", "tags": [ - "FluxConfiguration Operation Status" + "FluxConfigurations" ], - "operationId": "FluxConfigOperationStatus_Get", "description": "Get Async Operation status", - "x-ms-examples": { - "FluxConfigurationAsyncOperationStatus Get": { - "$ref": "./examples/GetFluxConfigurationAsyncOperationStatus.json" - } - }, "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterRpParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterResourceNameParameter" + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" }, { - "$ref": "../../../common/2023-05-01-preview/parameters.json#/parameters/ClusterNameParameter" + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string", + "pattern": "^[a-zA-Z]*$" }, { - "$ref": "#/parameters/FluxConfigurationNameParameter" + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string", + "pattern": "^.*" }, { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "name": "fluxConfigurationName", + "in": "path", + "description": "Name of the Flux Configuration.", + "required": true, + "type": "string" }, { "name": "operationId", "in": "path", - "description": "operation Id", "required": true, "type": "string" } ], "responses": { "200": { - "description": "FluxConfiguration Operation Status", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../common/2022-03-01/definitions.json#/definitions/OperationStatusResult" + "$ref": "#/definitions/OperationStatusResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } + }, + "x-ms-examples": { + "FluxConfigurationAsyncOperationStatus Get": { + "$ref": "./examples/GetFluxConfigurationAsyncOperationStatus.json" + } } } } }, "definitions": { - "ScopeDefinition": { - "description": "Scope at which the configuration will be installed.", - "type": "string", - "enum": [ - "cluster", - "namespace" - ], - "default": "cluster", - "x-ms-enum": { - "name": "ScopeType", - "modelAsString": true - } - }, - "SourceKindDefinition": { - "description": "Source Kind to pull the configuration data from.", - "type": "string", - "enum": [ - "GitRepository", - "Bucket", - "AzureBlob", - "OCIRepository" - ], - "x-ms-enum": { - "name": "SourceKindType", - "modelAsString": true - } - }, - "GitRepositoryDefinition": { - "description": "Parameters to reconcile to the GitRepository source kind type.", + "AzureBlobDefinition": { "type": "object", - "x-nullable": true, + "description": "Parameters to reconcile to the AzureBlob source kind type.", "properties": { "url": { - "description": "The URL to sync for the flux configuration git repository.", "type": "string", + "description": "The URL to sync for the flux configuration Azure Blob storage account.", + "x-nullable": true + }, + "containerName": { + "type": "string", + "description": "The Azure Blob container name to sync from the url endpoint for the flux configuration.", "x-nullable": true }, "timeoutInSeconds": { - "description": "The maximum time to attempt to reconcile the cluster git repository source with the remote.", "type": "integer", "format": "int64", - "default": 600, - "x-nullable": true + "description": "The maximum time to attempt to reconcile the cluster Azure Blob source with the remote.", + "default": 600 }, "syncIntervalInSeconds": { - "description": "The interval at which to re-reconcile the cluster git repository source with the remote.", "type": "integer", "format": "int64", - "default": 600, - "x-nullable": true + "description": "The interval at which to re-reconcile the cluster Azure Blob source with the remote.", + "default": 600 }, - "repositoryRef": { - "description": "The source reference for the GitRepository object.", - "$ref": "#/definitions/RepositoryRefDefinition" + "servicePrincipal": { + "$ref": "#/definitions/ServicePrincipalDefinition", + "description": "Parameters to authenticate using Service Principal." }, - "sshKnownHosts": { - "description": "Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH", + "accountKey": { "type": "string", + "description": "The account key (shared key) to access the storage account", "x-nullable": true }, - "httpsUser": { - "description": "Plaintext HTTPS username used to access private git repositories over HTTPS", + "sasToken": { "type": "string", - "x-nullable": true + "format": "password", + "description": "The Shared Access token to access the storage container", + "x-nullable": true, + "x-ms-secret": true }, - "httpsCACert": { - "description": "Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS", - "type": "string", - "x-nullable": true + "managedIdentity": { + "$ref": "#/definitions/ManagedIdentityDefinition", + "description": "Parameters to authenticate using a Managed Identity." }, "localAuthRef": { - "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", + "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "x-nullable": true - }, - "provider": { - "description": "Name of the provider used for authentication.", - "type": "string", - "x-nullable": true, - "enum": [ - "Azure", - "GitHub", - "Generic" - ], - "x-ms-enum": { - "name": "ProviderType", - "modelAsString": true, - "values": [ - { - "name": "Azure", - "value": "Azure", - "description": "Azure provider can be used to authenticate to Azure DevOps repositories using Managed Identity." - }, - { - "name": "GitHub", - "value": "GitHub", - "description": "GitHub provider can be used to authenticate " - }, - { - "name": "Generic", - "value": "Generic", - "description": "Generic is the default provider that indicates secret-based authentication mechanism." - } - ] - } } } }, - "GitRepositoryPatchDefinition": { - "description": "Parameters to reconcile to the GitRepository source kind type.", + "AzureBlobPatchDefinition": { "type": "object", - "x-nullable": true, + "description": "Parameters to reconcile to the AzureBlob source kind type.", "properties": { "url": { - "description": "The URL to sync for the flux configuration git repository.", "type": "string", + "description": "The URL to sync for the flux configuration Azure Blob storage account.", + "x-nullable": true + }, + "containerName": { + "type": "string", + "description": "The Azure Blob container name to sync from the url endpoint for the flux configuration.", "x-nullable": true }, "timeoutInSeconds": { - "description": "The maximum time to attempt to reconcile the cluster git repository source with the remote.", "type": "integer", "format": "int64", + "description": "The maximum time to attempt to reconcile the cluster Azure Blob source with the remote.", "x-nullable": true }, "syncIntervalInSeconds": { - "description": "The interval at which to re-reconcile the cluster git repository source with the remote.", "type": "integer", "format": "int64", + "description": "The interval at which to re-reconcile the cluster Azure Blob source with the remote.", "x-nullable": true }, - "repositoryRef": { - "description": "The source reference for the GitRepository object.", - "$ref": "#/definitions/RepositoryRefDefinition" - }, - "sshKnownHosts": { - "description": "Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH", - "type": "string", - "x-nullable": true - }, - "httpsUser": { - "description": "Plaintext HTTPS username used to access private git repositories over HTTPS", - "type": "string", - "x-nullable": true - }, - "httpsCACert": { - "description": "Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS", - "type": "string", - "x-nullable": true - }, - "localAuthRef": { - "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", - "type": "string", - "x-nullable": true + "servicePrincipal": { + "$ref": "#/definitions/ServicePrincipalPatchDefinition", + "description": "Parameters to authenticate using Service Principal." }, - "provider": { - "description": "Name of the provider used for authentication.", + "accountKey": { "type": "string", + "format": "password", + "description": "The account key (shared key) to access the storage account", "x-nullable": true, - "enum": [ - "Azure", - "GitHub", - "Generic" - ], - "x-ms-enum": { - "name": "ProviderType", - "modelAsString": true, - "values": [ - { - "name": "Azure", - "value": "Azure", - "description": "Azure provider can be used to authenticate to Azure DevOps repositories using Managed Identity." - }, - { - "name": "GitHub", - "value": "GitHub", - "description": "GitHub provider can be used to authenticate " - }, - { - "name": "Generic", - "value": "Generic", - "description": "Generic is the default provider that indicates secret-based authentication mechanism." - } - ] - } - } - } - }, - "RepositoryRefDefinition": { - "description": "The source reference for the GitRepository object.", - "type": "object", - "x-nullable": true, - "properties": { - "branch": { - "description": "The git repository branch name to checkout.", - "type": "string", - "x-nullable": true + "x-ms-secret": true }, - "tag": { - "description": "The git repository tag name to checkout. This takes precedence over branch.", + "sasToken": { "type": "string", - "x-nullable": true + "format": "password", + "description": "The Shared Access token to access the storage container", + "x-nullable": true, + "x-ms-secret": true }, - "semver": { - "description": "The semver range used to match against git repository tags. This takes precedence over tag.", - "type": "string", - "x-nullable": true + "managedIdentity": { + "$ref": "#/definitions/ManagedIdentityPatchDefinition", + "description": "Parameters to authenticate using a Managed Identity." }, - "commit": { - "description": "The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence over semver.", + "localAuthRef": { "type": "string", + "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "x-nullable": true } } }, "BucketDefinition": { - "description": "Parameters to reconcile to the Bucket source kind type.", "type": "object", - "x-nullable": true, + "description": "Parameters to reconcile to the Bucket source kind type.", "properties": { "url": { - "description": "The URL to sync for the flux configuration S3 bucket.", - "type": "string" + "type": "string", + "description": "The URL to sync for the flux configuration S3 bucket." }, "bucketName": { - "description": "The bucket name to sync from the url endpoint for the flux configuration.", - "type": "string" + "type": "string", + "description": "The bucket name to sync from the url endpoint for the flux configuration." }, "insecure": { - "description": "Specify whether to use insecure communication when puling data from the S3 bucket.", "type": "boolean", + "description": "Specify whether to use insecure communication when puling data from the S3 bucket.", "default": true }, "timeoutInSeconds": { - "description": "The maximum time to attempt to reconcile the cluster bucket source with the remote.", "type": "integer", "format": "int64", - "default": 600, - "x-nullable": true + "description": "The maximum time to attempt to reconcile the cluster bucket source with the remote.", + "default": 600 }, "syncIntervalInSeconds": { - "description": "The interval at which to re-reconcile the cluster bucket source with the remote.", "type": "integer", "format": "int64", - "default": 600, - "x-nullable": true + "description": "The interval at which to re-reconcile the cluster bucket source with the remote.", + "default": 600 }, "accessKey": { - "description": "Plaintext access key used to securely access the S3 bucket", "type": "string", + "description": "Plaintext access key used to securely access the S3 bucket", "x-nullable": true }, "localAuthRef": { - "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", + "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "x-nullable": true } } }, "BucketPatchDefinition": { - "description": "Parameters to reconcile to the Bucket source kind type.", "type": "object", - "x-nullable": true, + "description": "Parameters to reconcile to the Bucket source kind type.", "properties": { "url": { - "description": "The URL to sync for the flux configuration S3 bucket.", "type": "string", + "description": "The URL to sync for the flux configuration S3 bucket.", "x-nullable": true }, "bucketName": { - "description": "The bucket name to sync from the url endpoint for the flux configuration.", "type": "string", + "description": "The bucket name to sync from the url endpoint for the flux configuration.", "x-nullable": true }, "insecure": { - "description": "Specify whether to use insecure communication when puling data from the S3 bucket.", "type": "boolean", + "description": "Specify whether to use insecure communication when puling data from the S3 bucket.", "x-nullable": true }, "timeoutInSeconds": { - "description": "The maximum time to attempt to reconcile the cluster bucket source with the remote.", "type": "integer", "format": "int64", + "description": "The maximum time to attempt to reconcile the cluster bucket source with the remote.", "x-nullable": true }, "syncIntervalInSeconds": { - "description": "The interval at which to re-reconcile the cluster bucket source with the remote.", "type": "integer", "format": "int64", + "description": "The interval at which to re-reconcile the cluster bucket source with the remote.", "x-nullable": true }, "accessKey": { - "description": "Plaintext access key used to securely access the S3 bucket", "type": "string", + "description": "Plaintext access key used to securely access the S3 bucket", "x-nullable": true }, "localAuthRef": { - "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", + "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "x-nullable": true } } }, - "AzureBlobDefinition": { - "description": "Parameters to reconcile to the AzureBlob source kind type.", + "CreatedByType": { + "type": "string", + "description": "The type of identity that created the resource.", + "enum": [ + "User", + "Application", + "ManagedIdentity", + "Key" + ], + "x-ms-enum": { + "name": "CreatedByType", + "modelAsString": true, + "values": [ + { + "name": "User", + "value": "User", + "description": "User" + }, + { + "name": "Application", + "value": "Application", + "description": "Application" + }, + { + "name": "ManagedIdentity", + "value": "ManagedIdentity", + "description": "ManagedIdentity" + }, + { + "name": "Key", + "value": "Key", + "description": "Key" + } + ] + } + }, + "FluxComplianceState": { + "type": "string", + "description": "Compliance state of the cluster object.", + "enum": [ + "Compliant", + "Non-Compliant", + "Pending", + "Suspended", + "Unknown" + ], + "x-ms-enum": { + "name": "FluxComplianceState", + "modelAsString": true, + "values": [ + { + "name": "Compliant", + "value": "Compliant", + "description": "Compliant" + }, + { + "name": "Non-Compliant", + "value": "Non-Compliant", + "description": "Non-Compliant" + }, + { + "name": "Pending", + "value": "Pending", + "description": "Pending" + }, + { + "name": "Suspended", + "value": "Suspended", + "description": "Suspended" + }, + { + "name": "Unknown", + "value": "Unknown", + "description": "Unknown" + } + ] + } + }, + "FluxConfiguration": { "type": "object", - "x-nullable": true, + "description": "The Flux Configuration object returned in Get & Put response.", "properties": { - "url": { - "description": "The URL to sync for the flux configuration Azure Blob storage account.", - "type": "string", - "x-nullable": true + "properties": { + "$ref": "#/definitions/FluxConfigurationProperties", + "description": "Properties to create a Flux Configuration resource", + "x-ms-client-flatten": true + } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] + }, + "FluxConfigurationPatch": { + "type": "object", + "description": "The Flux Configuration Patch Request object.", + "properties": { + "properties": { + "$ref": "#/definitions/FluxConfigurationPatchProperties", + "description": "Updatable properties of an Flux Configuration Patch Request", + "x-ms-client-flatten": true + } + } + }, + "FluxConfigurationPatchProperties": { + "type": "object", + "description": "Updatable properties of an Flux Configuration Patch Request", + "properties": { + "sourceKind": { + "$ref": "#/definitions/SourceKindType", + "description": "Source Kind to pull the configuration data from." }, - "containerName": { - "description": "The Azure Blob container name to sync from the url endpoint for the flux configuration.", - "type": "string", - "x-nullable": true - }, - "timeoutInSeconds": { - "description": "The maximum time to attempt to reconcile the cluster Azure Blob source with the remote.", - "type": "integer", - "format": "int64", - "default": 600, - "x-nullable": true + "suspend": { + "type": "boolean", + "description": "Whether this configuration should suspend its reconciliation of its kustomizations and sources." }, - "syncIntervalInSeconds": { - "description": "The interval at which to re-reconcile the cluster Azure Blob source with the remote.", - "type": "integer", - "format": "int64", - "default": 600, - "x-nullable": true + "gitRepository": { + "$ref": "#/definitions/GitRepositoryPatchDefinition", + "description": "Parameters to reconcile to the GitRepository source kind type." }, - "servicePrincipal": { - "description": "Parameters to authenticate using Service Principal.", - "type": "object", - "$ref": "#/definitions/ServicePrincipalDefinition" + "bucket": { + "$ref": "#/definitions/BucketPatchDefinition", + "description": "Parameters to reconcile to the Bucket source kind type." }, - "accountKey": { - "description": "The account key (shared key) to access the storage account", - "type": "string", - "x-nullable": true, - "x-ms-secret": true + "azureBlob": { + "$ref": "#/definitions/AzureBlobPatchDefinition", + "description": "Parameters to reconcile to the AzureBlob source kind type." }, - "sasToken": { - "description": "The Shared Access token to access the storage container", - "type": "string", - "x-nullable": true, - "x-ms-secret": true + "ociRepository": { + "$ref": "#/definitions/OCIRepositoryPatchDefinition", + "description": "Parameters to reconcile to the OCIRepository source kind type." }, - "managedIdentity": { - "description": "Parameters to authenticate using a Managed Identity.", + "kustomizations": { "type": "object", - "$ref": "#/definitions/ManagedIdentityDefinition" + "description": "Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster.", + "additionalProperties": { + "$ref": "#/definitions/KustomizationPatchDefinition" + } }, - "localAuthRef": { - "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", - "type": "string", - "x-nullable": true + "configurationProtectedSettings": { + "type": "object", + "description": "Key-value pairs of protected configuration settings for the configuration", + "additionalProperties": { + "type": "string" + } } } }, - "AzureBlobPatchDefinition": { - "description": "Parameters to reconcile to the AzureBlob source kind type.", + "FluxConfigurationProperties": { "type": "object", - "x-nullable": true, + "description": "Properties to create a Flux Configuration resource", "properties": { - "url": { - "description": "The URL to sync for the flux configuration Azure Blob storage account.", + "scope": { "type": "string", - "x-nullable": true + "description": "Scope at which the operator will be installed.", + "default": "cluster", + "enum": [ + "cluster", + "namespace" + ], + "x-ms-enum": { + "name": "ScopeType", + "modelAsString": true, + "values": [ + { + "name": "cluster", + "value": "cluster", + "description": "cluster" + }, + { + "name": "namespace", + "value": "namespace", + "description": "namespace" + } + ] + }, + "x-ms-mutability": [ + "read", + "create" + ] }, - "containerName": { - "description": "The Azure Blob container name to sync from the url endpoint for the flux configuration.", + "namespace": { "type": "string", - "x-nullable": true + "description": "The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, hyphen and period only.", + "default": "default", + "x-ms-mutability": [ + "read", + "create" + ] }, - "timeoutInSeconds": { - "description": "The maximum time to attempt to reconcile the cluster Azure Blob source with the remote.", - "type": "integer", - "format": "int64", - "x-nullable": true + "sourceKind": { + "type": "string", + "description": "Source Kind to pull the configuration data from.", + "default": "GitRepository", + "enum": [ + "GitRepository", + "Bucket", + "AzureBlob", + "OCIRepository" + ], + "x-ms-enum": { + "name": "SourceKindType", + "modelAsString": true, + "values": [ + { + "name": "GitRepository", + "value": "GitRepository", + "description": "GitRepository" + }, + { + "name": "Bucket", + "value": "Bucket", + "description": "Bucket" + }, + { + "name": "AzureBlob", + "value": "AzureBlob", + "description": "AzureBlob" + }, + { + "name": "OCIRepository", + "value": "OCIRepository", + "description": "OCIRepository" + } + ] + } }, - "syncIntervalInSeconds": { - "description": "The interval at which to re-reconcile the cluster Azure Blob source with the remote.", - "type": "integer", - "format": "int64", - "x-nullable": true + "suspend": { + "type": "boolean", + "description": "Whether this configuration should suspend its reconciliation of its kustomizations and sources.", + "default": false }, - "servicePrincipal": { - "description": "Parameters to authenticate using Service Principal.", - "type": "object", - "$ref": "#/definitions/ServicePrincipalPatchDefinition" + "gitRepository": { + "$ref": "#/definitions/GitRepositoryDefinition", + "description": "Parameters to reconcile to the GitRepository source kind type." }, - "accountKey": { - "description": "The account key (shared key) to access the storage account", - "type": "string", - "x-nullable": true, - "x-ms-secret": true + "bucket": { + "$ref": "#/definitions/BucketDefinition", + "description": "Parameters to reconcile to the Bucket source kind type." }, - "sasToken": { - "description": "The Shared Access token to access the storage container", - "type": "string", + "azureBlob": { + "$ref": "#/definitions/AzureBlobDefinition", + "description": "Parameters to reconcile to the AzureBlob source kind type." + }, + "ociRepository": { + "$ref": "#/definitions/OCIRepositoryDefinition", + "description": "Parameters to reconcile to the OCIRepository source kind type." + }, + "kustomizations": { + "type": "object", + "description": "Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster.", "x-nullable": true, - "x-ms-secret": true + "additionalProperties": { + "$ref": "#/definitions/KustomizationDefinition" + } }, - "managedIdentity": { - "description": "Parameters to authenticate using a Managed Identity.", + "configurationProtectedSettings": { "type": "object", - "$ref": "#/definitions/ManagedIdentityPatchDefinition" + "format": "password", + "description": "Key-value pairs of protected configuration settings for the configuration", + "x-nullable": true, + "additionalProperties": { + "type": "string" + }, + "x-ms-secret": true }, - "localAuthRef": { - "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", - "type": "string", - "x-nullable": true - } - } - }, - "ServicePrincipalDefinition": { - "description": "Parameters to authenticate using Service Principal.", - "type": "object", - "x-nullable": true, - "properties": { - "clientId": { - "description": "The client Id for authenticating a Service Principal.", - "type": "string", - "x-nullable": true + "statuses": { + "type": "array", + "description": "Statuses of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects provisioned by the fluxConfiguration.", + "items": { + "$ref": "#/definitions/ObjectStatusDefinition" + }, + "readOnly": true, + "x-ms-identifiers": [ + "name", + "namespace", + "kind" + ] }, - "tenantId": { - "description": "The tenant Id for authenticating a Service Principal", + "repositoryPublicKey": { "type": "string", - "x-nullable": true + "description": "Public Key associated with this fluxConfiguration (either generated within the cluster or provided by the user).", + "x-nullable": true, + "readOnly": true }, - "clientSecret": { - "description": "The client secret for authenticating a Service Principal", + "sourceSyncedCommitId": { "type": "string", + "description": "Branch and/or SHA of the source commit synced with the cluster.", "x-nullable": true, - "x-ms-secret": true + "readOnly": true }, - "clientCertificate": { - "description": "Base64-encoded certificate used to authenticate a Service Principal ", + "sourceUpdatedAt": { "type": "string", + "format": "date-time", + "description": "Datetime the fluxConfiguration synced its source on the cluster.", "x-nullable": true, - "x-ms-secret": true + "readOnly": true }, - "clientCertificatePassword": { - "description": "The password for the certificate used to authenticate a Service Principal ", + "statusUpdatedAt": { "type": "string", + "format": "date-time", + "description": "Datetime the fluxConfiguration synced its status on the cluster with Azure.", "x-nullable": true, - "x-ms-secret": true + "readOnly": true }, - "clientCertificateSendChain": { - "description": "Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the Client Certificate", + "waitForReconciliation": { "type": "boolean", - "default": false - } - } - }, - "ServicePrincipalPatchDefinition": { - "description": "Parameters to authenticate using Service Principal.", - "type": "object", - "x-nullable": true, - "properties": { - "clientId": { - "description": "The client Id for authenticating a Service Principal.", - "type": "string", + "description": "Whether flux configuration deployment should wait for cluster to reconcile the kustomizations.", "x-nullable": true }, - "tenantId": { - "description": "The tenant Id for authenticating a Service Principal", + "reconciliationWaitDuration": { "type": "string", + "description": "Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D", "x-nullable": true }, - "clientSecret": { - "description": "The client secret for authenticating a Service Principal", + "complianceState": { "type": "string", - "x-nullable": true, - "x-ms-secret": true + "description": "Combined status of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects.", + "default": "Unknown", + "enum": [ + "Compliant", + "Non-Compliant", + "Pending", + "Suspended", + "Unknown" + ], + "x-ms-enum": { + "name": "FluxComplianceState", + "modelAsString": true, + "values": [ + { + "name": "Compliant", + "value": "Compliant", + "description": "Compliant" + }, + { + "name": "Non-Compliant", + "value": "Non-Compliant", + "description": "Non-Compliant" + }, + { + "name": "Pending", + "value": "Pending", + "description": "Pending" + }, + { + "name": "Suspended", + "value": "Suspended", + "description": "Suspended" + }, + { + "name": "Unknown", + "value": "Unknown", + "description": "Unknown" + } + ] + }, + "readOnly": true }, - "clientCertificate": { - "description": "Base64-encoded certificate used to authenticate a Service Principal ", - "type": "string", - "x-nullable": true, - "x-ms-secret": true + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Status of the creation of the fluxConfiguration.", + "readOnly": true }, - "clientCertificatePassword": { - "description": "The password for the certificate used to authenticate a Service Principal ", + "errorMessage": { "type": "string", + "description": "Error message returned to the user in the case of provisioning failure.", "x-nullable": true, - "x-ms-secret": true - }, - "clientCertificateSendChain": { - "description": "Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the Client Certificate", - "type": "boolean" - } - } - }, - "ManagedIdentityDefinition": { - "description": "Parameters to authenticate using a Managed Identity.", - "type": "object", - "x-nullable": true, - "properties": { - "clientId": { - "description": "The client Id for authenticating a Managed Identity.", - "type": "string", - "x-nullable": true + "readOnly": true } } }, - "ManagedIdentityPatchDefinition": { - "description": "Parameters to authenticate using a Managed Identity.", + "FluxConfigurationsList": { "type": "object", - "x-nullable": true, + "description": "Result of the request to list Flux Configurations. It contains a list of FluxConfiguration objects and a URL link to get the next set of results.", "properties": { - "clientId": { - "description": "The client Id for authenticating a Managed Identity.", + "value": { + "type": "array", + "description": "The FluxConfiguration items on this page", + "items": { + "$ref": "#/definitions/FluxConfiguration" + } + }, + "nextLink": { "type": "string", - "x-nullable": true + "format": "uri", + "description": "The link to the next page of items" } - } + }, + "required": [ + "value" + ] }, - "OCIRepositoryDefinition": { - "description": "Parameters to reconcile to the OCIRepository source kind type.", + "GitRepositoryDefinition": { "type": "object", - "x-nullable": true, + "description": "Parameters to reconcile to the GitRepository source kind type.", "properties": { "url": { - "description": "The URL to sync for the flux configuration OCI repository.", "type": "string", - "format": "uri", + "description": "The URL to sync for the flux configuration git repository.", "x-nullable": true }, "timeoutInSeconds": { - "description": "The maximum time to attempt to reconcile the cluster OCI repository source with the remote.", "type": "integer", "format": "int64", - "default": 600, - "x-nullable": true + "description": "The maximum time to attempt to reconcile the cluster git repository source with the remote.", + "default": 600 }, "syncIntervalInSeconds": { - "description": "The interval at which to re-reconcile the cluster OCI repository source with the remote.", "type": "integer", "format": "int64", - "default": 600, - "x-nullable": true + "description": "The interval at which to re-reconcile the cluster git repository source with the remote.", + "default": 600 }, "repositoryRef": { - "description": "The source reference for the OCIRepository object.", - "$ref": "#/definitions/OCIRepositoryRefDefinition" - }, - "layerSelector": { - "description": "The layer to be pulled from the OCI artifact.", - "$ref": "#/definitions/LayerSelectorDefinition" - }, - "verify": { - "description": "Verification of the authenticity of an OCI Artifact.", - "$ref": "#/definitions/VerifyDefinition" - }, - "insecure": { - "description": "Specify whether to allow connecting to a non-TLS HTTP container registry.", - "type": "boolean", - "default": false + "$ref": "#/definitions/RepositoryRefDefinition", + "description": "The source reference for the GitRepository object." }, - "useWorkloadIdentity": { - "description": "Specifies whether to use Workload Identity to authenticate with the OCI repository.", - "type": "boolean", - "default": false + "sshKnownHosts": { + "type": "string", + "description": "Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH", + "x-nullable": true }, - "serviceAccountName": { - "description": "The service account name to authenticate with the OCI repository.", + "httpsUser": { "type": "string", + "description": "Plaintext HTTPS username used to access private git repositories over HTTPS", "x-nullable": true }, - "tlsConfig": { - "description": "Parameters to authenticate using TLS config for OCI repository.", - "type": "object", - "$ref": "#/definitions/TlsConfigDefinition" + "httpsCACert": { + "type": "string", + "description": "Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS", + "x-nullable": true }, "localAuthRef": { - "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", + "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "x-nullable": true + }, + "provider": { + "$ref": "#/definitions/ProviderType", + "description": "Name of the provider used for authentication." } } }, - "OCIRepositoryPatchDefinition": { - "description": "Parameters to reconcile to the OCIRepository source kind type.", + "GitRepositoryPatchDefinition": { "type": "object", - "x-nullable": true, + "description": "Parameters to reconcile to the GitRepository source kind type.", "properties": { "url": { - "description": "The URL to sync for the flux configuration OCI repository.", "type": "string", - "format": "uri", + "description": "The URL to sync for the flux configuration git repository.", "x-nullable": true }, "timeoutInSeconds": { - "description": "The maximum time to attempt to reconcile the cluster OCI repository source with the remote.", "type": "integer", "format": "int64", + "description": "The maximum time to attempt to reconcile the cluster git repository source with the remote.", "x-nullable": true }, "syncIntervalInSeconds": { - "description": "The interval at which to re-reconcile the cluster OCI repository source with the remote.", "type": "integer", "format": "int64", + "description": "The interval at which to re-reconcile the cluster git repository source with the remote.", "x-nullable": true }, "repositoryRef": { - "description": "The source reference for the OCIRepository object.", - "$ref": "#/definitions/OCIRepositoryRefPatchDefinition" - }, - "layerSelector": { - "description": "The layer to be pulled from the OCI artifact.", - "$ref": "#/definitions/LayerSelectorPatchDefinition" - }, - "verify": { - "description": "Verification of the authenticity of an OCI Artifact.", - "$ref": "#/definitions/VerifyPatchDefinition" + "$ref": "#/definitions/RepositoryRefDefinition", + "description": "The source reference for the GitRepository object." }, - "insecure": { - "description": "Specify whether to allow connecting to a non-TLS HTTP container registry.", - "type": "boolean", - "default": false - }, - "useWorkloadIdentity": { - "description": "Specifies whether to use Workload Identity to authenticate with the OCI repository.", - "type": "boolean", - "default": false + "sshKnownHosts": { + "type": "string", + "description": "Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH", + "x-nullable": true }, - "serviceAccountName": { - "description": "The service account name to authenticate with the OCI repository.", + "httpsUser": { "type": "string", + "description": "Plaintext HTTPS username used to access private git repositories over HTTPS", "x-nullable": true }, - "tlsConfig": { - "description": "Parameters to authenticate using TLS config for OCI repository.", - "type": "object", - "$ref": "#/definitions/TlsConfigPatchDefinition" + "httpsCACert": { + "type": "string", + "description": "Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS", + "x-nullable": true }, "localAuthRef": { - "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "type": "string", + "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", + "x-nullable": true + }, + "provider": { + "$ref": "#/definitions/ProviderType", + "description": "Name of the provider used for authentication.", "x-nullable": true } } }, - "TlsConfigDefinition": { - "description": "Parameters to authenticate using TLS config for OCI repository.", + "HelmReleasePropertiesDefinition": { "type": "object", - "x-nullable": true, + "description": "Properties for HelmRelease objects", "properties": { - "clientCertificate": { - "description": "Base64-encoded certificate used to authenticate a client with the OCI repository.", - "type": "string", - "x-nullable": true, - "x-ms-secret": true + "lastRevisionApplied": { + "type": "integer", + "format": "int64", + "description": "The revision number of the last released object change", + "x-nullable": true }, - "privateKey": { - "description": "Base64-encoded private key used to authenticate a client with the OCI repository.", - "type": "string", - "x-nullable": true, - "x-ms-secret": true + "helmChartRef": { + "$ref": "#/definitions/ObjectReferenceDefinition", + "description": "The reference to the HelmChart object used as the source to this HelmRelease" }, - "caCertificate": { - "description": "Base64-encoded CA certificate used to verify the server.", - "type": "string", - "x-nullable": true, - "x-ms-secret": true + "failureCount": { + "type": "integer", + "format": "int64", + "description": "Total number of times that the HelmRelease failed to install or upgrade", + "x-nullable": true + }, + "installFailureCount": { + "type": "integer", + "format": "int64", + "description": "Number of times that the HelmRelease failed to install", + "x-nullable": true + }, + "upgradeFailureCount": { + "type": "integer", + "format": "int64", + "description": "Number of times that the HelmRelease failed to upgrade", + "x-nullable": true } } }, - "TlsConfigPatchDefinition": { - "description": "Parameters to authenticate using TLS config for OCI repository.", + "KustomizationDefinition": { "type": "object", - "x-nullable": true, + "description": "The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.", "properties": { - "clientCertificate": { - "description": "Base64-encoded certificate used to authenticate a client with the OCI repository.", + "name": { "type": "string", - "x-nullable": true, - "x-ms-secret": true + "description": "Name of the Kustomization, matching the key in the Kustomizations object map.", + "readOnly": true }, - "privateKey": { - "description": "Base64-encoded private key used to authenticate a client with the OCI repository.", + "path": { "type": "string", - "x-nullable": true, - "x-ms-secret": true + "description": "The path in the source reference to reconcile on the cluster.", + "default": "" }, - "caCertificate": { - "description": "Base64-encoded CA certificate used to verify the server.", - "type": "string", + "dependsOn": { + "type": "array", + "description": "Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation.", "x-nullable": true, - "x-ms-secret": true + "items": { + "type": "string" + } + }, + "timeoutInSeconds": { + "type": "integer", + "format": "int64", + "description": "The maximum time to attempt to reconcile the Kustomization on the cluster.", + "default": 600 + }, + "syncIntervalInSeconds": { + "type": "integer", + "format": "int64", + "description": "The interval at which to re-reconcile the Kustomization on the cluster.", + "default": 600 + }, + "retryIntervalInSeconds": { + "type": "integer", + "format": "int64", + "description": "The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation.", + "x-nullable": true + }, + "prune": { + "type": "boolean", + "description": "Enable/disable garbage collections of Kubernetes objects created by this Kustomization.", + "default": false + }, + "force": { + "type": "boolean", + "description": "Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change.", + "default": false + }, + "wait": { + "type": "boolean", + "description": "Enable/disable health check for all Kubernetes objects created by this Kustomization.", + "default": true + }, + "postBuild": { + "$ref": "#/definitions/PostBuildDefinition", + "description": "Used for variable substitution for this Kustomization after kustomize build.", + "x-nullable": true } } }, - "OCIRepositoryRefDefinition": { - "description": "The source reference for the OCIRepository object.", + "KustomizationPatchDefinition": { "type": "object", - "x-nullable": true, + "description": "The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.", "properties": { - "tag": { - "description": "The OCI repository image tag name to pull. This defaults to 'latest'.", + "path": { "type": "string", + "description": "The path in the source reference to reconcile on the cluster.", "x-nullable": true }, - "semver": { - "description": "The semver range used to match against OCI repository tags. This takes precedence over tag.", - "type": "string", + "dependsOn": { + "type": "array", + "description": "Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation.", + "x-nullable": true, + "items": { + "type": "string" + } + }, + "timeoutInSeconds": { + "type": "integer", + "format": "int64", + "description": "The maximum time to attempt to reconcile the Kustomization on the cluster.", "x-nullable": true }, - "digest": { - "description": "The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver.", - "type": "string", + "syncIntervalInSeconds": { + "type": "integer", + "format": "int64", + "description": "The interval at which to re-reconcile the Kustomization on the cluster.", "x-nullable": true - } - } - }, - "OCIRepositoryRefPatchDefinition": { - "description": "The source reference for the OCIRepository object.", - "type": "object", - "x-nullable": true, - "properties": { - "tag": { - "description": "The OCI repository image tag name to pull. This defaults to 'latest'.", - "type": "string", + }, + "retryIntervalInSeconds": { + "type": "integer", + "format": "int64", + "description": "The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation.", "x-nullable": true }, - "semver": { - "description": "The semver range used to match against OCI repository tags. This takes precedence over tag.", - "type": "string", + "prune": { + "type": "boolean", + "description": "Enable/disable garbage collections of Kubernetes objects created by this Kustomization.", "x-nullable": true }, - "digest": { - "description": "The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver.", - "type": "string", + "force": { + "type": "boolean", + "description": "Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change.", + "x-nullable": true + }, + "wait": { + "type": "boolean", + "description": "Enable/disable health check for all Kubernetes objects created by this Kustomization.", + "x-nullable": true + }, + "postBuild": { + "$ref": "#/definitions/PostBuildPatchDefinition", + "description": "Used for variable substitution for this Kustomization after kustomize build.", "x-nullable": true } } }, + "KustomizationValidationType": { + "type": "string", + "description": "Specify whether to validate the Kubernetes objects referenced in the Kustomization before applying them to the cluster.", + "enum": [ + "none", + "client", + "server" + ], + "x-ms-enum": { + "name": "KustomizationValidationType", + "modelAsString": true, + "values": [ + { + "name": "none", + "value": "none", + "description": "none" + }, + { + "name": "client", + "value": "client", + "description": "client" + }, + { + "name": "server", + "value": "server", + "description": "server" + } + ] + } + }, "LayerSelectorDefinition": { - "description": "Parameters to specify which layer to pull from the OCI artifact. By default, the first layer in the artifact is pulled.", "type": "object", - "x-nullable": true, + "description": "Parameters to specify which layer to pull from the OCI artifact. By default, the first layer in the artifact is pulled.", "properties": { "mediaType": { - "description": "The first layer matching the specified media type will be used.", "type": "string", + "description": "The first layer matching the specified media type will be used.", "x-nullable": true }, "operation": { + "$ref": "#/definitions/OperationType", "description": "The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'.", - "$ref": "#/definitions/OperationDefinition", "x-nullable": true } } }, "LayerSelectorPatchDefinition": { - "description": "Parameters to specify which layer to pull from the OCI artifact. By default, the first layer in the artifact is pulled.", "type": "object", - "x-nullable": true, + "description": "Parameters to specify which layer to pull from the OCI artifact. By default, the first layer in the artifact is pulled.", "properties": { "mediaType": { - "description": "The first layer matching the specified media type will be used.", "type": "string", + "description": "The first layer matching the specified media type will be used.", "x-nullable": true }, "operation": { + "$ref": "#/definitions/OperationType", "description": "The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'.", - "$ref": "#/definitions/OperationDefinition", "x-nullable": true } } }, - "OperationDefinition": { - "description": "The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'.", - "type": "string", - "enum": [ - "extract", - "copy" - ], - "x-ms-enum": { - "name": "OperationType", - "modelAsString": true - } - }, - "VerifyDefinition": { - "description": "Parameters to verify the authenticity of an OCI Artifact.", + "ManagedIdentityDefinition": { "type": "object", - "x-nullable": true, + "description": "Parameters to authenticate using a Managed Identity.", "properties": { - "provider": { - "description": "Verification provider name.", - "type": "string" - }, - "verificationConfig": { - "description": "An object containing trusted public keys of trusted authors.", - "type": "object", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - }, - "matchOidcIdentity": { - "description": "Array defining the criteria for matching the identity while verifying an OCI artifact.", - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/MatchOidcIdentityDefinition" - }, - "x-ms-identifiers": [], + "clientId": { + "type": "string", + "description": "The client Id for authenticating a Managed Identity.", "x-nullable": true } } }, - "VerifyPatchDefinition": { - "description": "Parameters to verify the authenticity of an OCI Artifact.", + "ManagedIdentityPatchDefinition": { "type": "object", - "x-nullable": true, + "description": "Parameters to authenticate using a Managed Identity.", "properties": { - "provider": { - "description": "Verification provider name.", - "type": "string" - }, - "verificationConfig": { - "description": "An object containing trusted public keys of trusted authors.", - "type": "object", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - }, - "matchOidcIdentity": { - "description": "Array defining the criteria for matching the OIDC identity while verifying an OCI artifact.", - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/MatchOidcIdentityPatchDefinition" - }, - "x-ms-identifiers": [], + "clientId": { + "type": "string", + "description": "The client Id for authenticating a Managed Identity.", "x-nullable": true } } }, "MatchOidcIdentityDefinition": { - "description": "MatchOIDCIdentity defines the criteria for matching the identity while verifying an OCI artifact.", "type": "object", - "x-nullable": true, + "description": "MatchOIDCIdentity defines the criteria for matching the identity while verifying an OCI artifact.", "properties": { "issuer": { - "description": "The regex pattern to match against to verify the OIDC issuer.", - "type": "string" + "type": "string", + "description": "The regex pattern to match against to verify the OIDC issuer." }, "subject": { - "description": "The regex pattern to match against to verify the identity subject.", - "type": "string" + "type": "string", + "description": "The regex pattern to match against to verify the identity subject." } } }, "MatchOidcIdentityPatchDefinition": { - "description": "MatchOIDCIdentity defines the criteria for matching the identity while verifying an OCI artifact.", "type": "object", - "x-nullable": true, + "description": "MatchOIDCIdentity defines the criteria for matching the identity while verifying an OCI artifact.", "properties": { "issuer": { - "description": "The regex pattern to match against to verify the OIDC issuer.", - "type": "string" + "type": "string", + "description": "The regex pattern to match against to verify the OIDC issuer." }, "subject": { - "description": "The regex pattern to match against to verify the identity subject.", - "type": "string" - } - } - }, - "PostBuildDefinition": { - "description": "The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.", - "type": "object", - "x-nullable": true, - "properties": { - "substitute": { - "description": "Key/value pairs holding the variables to be substituted in this Kustomization.", - "type": "object", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - }, - "substituteFrom": { - "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/SubstituteFromDefinition" - }, - "x-ms-identifiers": [], - "x-nullable": true - } - } - }, - "PostBuildPatchDefinition": { - "description": "The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.", - "type": "object", - "x-nullable": true, - "properties": { - "substitute": { - "description": "Key/value pairs holding the variables to be substituted in this Kustomization.", - "type": "object", - "x-nullable": true, - "additionalProperties": { - "type": "string" - } - }, - "substituteFrom": { - "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/SubstituteFromPatchDefinition" - }, - "x-ms-identifiers": [], - "x-nullable": true - } - } - }, - "SubstituteFromDefinition": { - "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", - "type": "object", - "x-nullable": true, - "properties": { - "kind": { - "description": "Define whether it is ConfigMap or Secret that holds the variables to be used in substitution.", - "type": "string" - }, - "name": { - "description": "Name of the ConfigMap/Secret that holds the variables to be used in substitution.", - "type": "string" - }, - "optional": { - "description": "Set to True to proceed without ConfigMap/Secret, if it is not present.", - "type": "boolean", - "default": false - } - } - }, - "SubstituteFromPatchDefinition": { - "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", - "type": "object", - "x-nullable": true, - "properties": { - "kind": { - "description": "Define whether it is ConfigMap or Secret that holds the variables to be used in substitution.", - "type": "string" - }, - "name": { - "description": "Name of the ConfigMap/Secret that holds the variables to be used in substitution.", - "type": "string" - }, - "optional": { - "description": "Set to True to proceed without ConfigMap/Secret, if it is not present.", - "type": "boolean", - "default": false + "type": "string", + "description": "The regex pattern to match against to verify the identity subject." } } }, - "KustomizationDefinition": { - "description": "The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.", + "OCIRepositoryDefinition": { "type": "object", - "x-nullable": true, + "description": "Parameters to reconcile to the OCIRepository source kind type.", "properties": { - "name": { - "description": "Name of the Kustomization, matching the key in the Kustomizations object map.", - "type": "string", - "readOnly": true - }, - "path": { - "description": "The path in the source reference to reconcile on the cluster.", + "url": { "type": "string", - "default": "" - }, - "dependsOn": { - "description": "Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation.", - "type": "array", - "items": { - "description": "Kustomization name of dependency.", - "type": "string" - }, + "format": "uri", + "description": "The URL to sync for the flux configuration OCI repository.", "x-nullable": true }, "timeoutInSeconds": { - "description": "The maximum time to attempt to reconcile the Kustomization on the cluster.", "type": "integer", "format": "int64", - "default": 600, - "x-nullable": true + "description": "The maximum time to attempt to reconcile the cluster OCI repository source with the remote.", + "default": 600 }, "syncIntervalInSeconds": { - "description": "The interval at which to re-reconcile the Kustomization on the cluster.", "type": "integer", "format": "int64", - "default": 600, - "x-nullable": true + "description": "The interval at which to re-reconcile the cluster OCI repository source with the remote.", + "default": 600 }, - "retryIntervalInSeconds": { - "description": "The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation.", - "type": "integer", - "format": "int64", - "x-nullable": true + "repositoryRef": { + "$ref": "#/definitions/OCIRepositoryRefDefinition", + "description": "The source reference for the OCIRepository object." }, - "prune": { - "description": "Enable/disable garbage collections of Kubernetes objects created by this Kustomization.", + "layerSelector": { + "$ref": "#/definitions/LayerSelectorDefinition", + "description": "The layer to be pulled from the OCI artifact." + }, + "verify": { + "$ref": "#/definitions/VerifyDefinition", + "description": "Verification of the authenticity of an OCI Artifact." + }, + "insecure": { "type": "boolean", + "description": "Specify whether to allow connecting to a non-TLS HTTP container registry.", "default": false }, - "force": { - "description": "Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change.", + "useWorkloadIdentity": { "type": "boolean", + "description": "Specifies whether to use Workload Identity to authenticate with the OCI repository.", "default": false }, - "wait": { - "description": "Enable/disable health check for all Kubernetes objects created by this Kustomization.", - "type": "boolean", - "default": true + "serviceAccountName": { + "type": "string", + "description": "The service account name to authenticate with the OCI repository.", + "x-nullable": true }, - "postBuild": { - "description": "Used for variable substitution for this Kustomization after kustomize build.", - "type": "object", - "$ref": "#/definitions/PostBuildDefinition", + "tlsConfig": { + "$ref": "#/definitions/TlsConfigDefinition", + "description": "Parameters to authenticate using TLS config for OCI repository." + }, + "localAuthRef": { + "type": "string", + "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "x-nullable": true } } }, - "KustomizationPatchDefinition": { - "description": "The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.", + "OCIRepositoryPatchDefinition": { "type": "object", - "x-nullable": true, + "description": "Parameters to reconcile to the OCIRepository source kind type.", "properties": { - "path": { - "description": "The path in the source reference to reconcile on the cluster.", + "url": { "type": "string", - "x-nullable": true - }, - "dependsOn": { - "description": "Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation.", - "type": "array", - "items": { - "description": "Kustomization name of dependency.", - "type": "string" - }, + "format": "uri", + "description": "The URL to sync for the flux configuration OCI repository.", "x-nullable": true }, "timeoutInSeconds": { - "description": "The maximum time to attempt to reconcile the Kustomization on the cluster.", "type": "integer", "format": "int64", + "description": "The maximum time to attempt to reconcile the cluster OCI repository source with the remote.", "x-nullable": true }, "syncIntervalInSeconds": { - "description": "The interval at which to re-reconcile the Kustomization on the cluster.", "type": "integer", "format": "int64", + "description": "The interval at which to re-reconcile the cluster OCI repository source with the remote.", "x-nullable": true }, - "retryIntervalInSeconds": { - "description": "The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation.", - "type": "integer", - "format": "int64", - "x-nullable": true + "repositoryRef": { + "$ref": "#/definitions/OCIRepositoryRefPatchDefinition", + "description": "The source reference for the OCIRepository object." }, - "prune": { - "description": "Enable/disable garbage collections of Kubernetes objects created by this Kustomization.", - "type": "boolean", - "x-nullable": true + "layerSelector": { + "$ref": "#/definitions/LayerSelectorPatchDefinition", + "description": "The layer to be pulled from the OCI artifact." }, - "force": { - "description": "Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change.", + "verify": { + "$ref": "#/definitions/VerifyPatchDefinition", + "description": "Verification of the authenticity of an OCI Artifact." + }, + "insecure": { "type": "boolean", - "x-nullable": true + "description": "Specify whether to allow connecting to a non-TLS HTTP container registry.", + "default": false }, - "wait": { - "description": "Enable/disable health check for all Kubernetes objects created by this Kustomization.", + "useWorkloadIdentity": { "type": "boolean", + "description": "Specifies whether to use Workload Identity to authenticate with the OCI repository.", + "default": false + }, + "serviceAccountName": { + "type": "string", + "description": "The service account name to authenticate with the OCI repository.", "x-nullable": true }, - "postBuild": { - "description": "Used for variable substitution for this Kustomization after kustomize build.", - "type": "object", - "$ref": "#/definitions/PostBuildPatchDefinition", + "tlsConfig": { + "$ref": "#/definitions/TlsConfigPatchDefinition", + "description": "Parameters to authenticate using TLS config for OCI repository." + }, + "localAuthRef": { + "type": "string", + "description": "Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets.", "x-nullable": true } } }, - "KustomizationValidationDefinition": { - "description": "Specify whether to validate the Kubernetes objects referenced in the Kustomization before applying them to the cluster.", - "type": "string", - "enum": [ - "none", - "client", - "server" - ], - "default": "none", - "x-ms-enum": { - "name": "KustomizationValidationType", - "modelAsString": true - } - }, - "ObjectStatusDefinition": { - "description": "Statuses of objects deployed by the user-specified kustomizations from the git repository.", + "OCIRepositoryRefDefinition": { "type": "object", - "x-nullable": true, + "description": "The source reference for the OCIRepository object.", "properties": { - "name": { - "description": "Name of the applied object", - "type": "string" - }, - "namespace": { - "description": "Namespace of the applied object", - "type": "string" - }, - "kind": { - "description": "Kind of the applied object", - "type": "string" + "tag": { + "type": "string", + "description": "The OCI repository image tag name to pull. This defaults to 'latest'.", + "x-nullable": true }, - "complianceState": { - "description": "Compliance state of the applied object showing whether the applied object has come into a ready state on the cluster.", + "semver": { "type": "string", - "$ref": "#/definitions/FluxComplianceStateDefinition" + "description": "The semver range used to match against OCI repository tags. This takes precedence over tag.", + "x-nullable": true }, - "appliedBy": { - "description": "Object reference to the Kustomization that applied this object", - "type": "object", - "$ref": "#/definitions/ObjectReferenceDefinition", + "digest": { + "type": "string", + "description": "The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver.", + "x-nullable": true + } + } + }, + "OCIRepositoryRefPatchDefinition": { + "type": "object", + "description": "The source reference for the OCIRepository object.", + "properties": { + "tag": { + "type": "string", + "description": "The OCI repository image tag name to pull. This defaults to 'latest'.", "x-nullable": true }, - "statusConditions": { - "description": "List of Kubernetes object status conditions present on the cluster", - "type": "array", - "items": { - "type": "object", - "$ref": "#/definitions/ObjectStatusConditionDefinition" - }, - "x-nullable": true, - "x-ms-identifiers": [ - "type" - ] + "semver": { + "type": "string", + "description": "The semver range used to match against OCI repository tags. This takes precedence over tag.", + "x-nullable": true }, - "helmReleaseProperties": { - "description": "Additional properties that are provided from objects of the HelmRelease kind", - "type": "object", - "$ref": "#/definitions/HelmReleasePropertiesDefinition", + "digest": { + "type": "string", + "description": "The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver.", "x-nullable": true } } }, "ObjectReferenceDefinition": { - "description": "Object reference to a Kubernetes object on a cluster", "type": "object", - "x-nullable": true, + "description": "Object reference to a Kubernetes object on a cluster", "properties": { "name": { - "description": "Name of the object", - "type": "string" + "type": "string", + "description": "Name of the object" }, "namespace": { - "description": "Namespace of the object", - "type": "string" + "type": "string", + "description": "Namespace of the object" } } }, "ObjectStatusConditionDefinition": { - "description": "Status condition of Kubernetes object", "type": "object", + "description": "Status condition of Kubernetes object", "properties": { "lastTransitionTime": { - "description": "Last time this status condition has changed", "type": "string", - "format": "date-time" + "format": "date-time", + "description": "Last time this status condition has changed" }, "message": { - "description": "A more verbose description of the object status condition", - "type": "string" + "type": "string", + "description": "A more verbose description of the object status condition" }, "reason": { - "description": "Reason for the specified status condition type status", - "type": "string" + "type": "string", + "description": "Reason for the specified status condition type status" }, "status": { - "description": "Status of the Kubernetes object condition type", - "type": "string" + "type": "string", + "description": "Status of the Kubernetes object condition type" }, "type": { - "description": "Object status condition type for this object", - "type": "string" + "type": "string", + "description": "Object status condition type for this object" } } }, - "HelmReleasePropertiesDefinition": { - "description": "Properties for HelmRelease objects", + "ObjectStatusDefinition": { "type": "object", - "x-nullable": true, + "description": "Statuses of objects deployed by the user-specified kustomizations from the git repository.", "properties": { - "lastRevisionApplied": { - "description": "The revision number of the last released object change", - "type": "integer", - "format": "int64", - "x-nullable": true + "name": { + "type": "string", + "description": "Name of the applied object" }, - "helmChartRef": { - "description": "The reference to the HelmChart object used as the source to this HelmRelease", - "type": "object", - "$ref": "#/definitions/ObjectReferenceDefinition" + "namespace": { + "type": "string", + "description": "Namespace of the applied object" }, - "failureCount": { - "description": "Total number of times that the HelmRelease failed to install or upgrade", - "type": "integer", - "format": "int64", - "x-nullable": true + "kind": { + "type": "string", + "description": "Kind of the applied object" }, - "installFailureCount": { - "description": "Number of times that the HelmRelease failed to install", - "type": "integer", - "format": "int64", - "x-nullable": true + "complianceState": { + "type": "string", + "description": "Compliance state of the applied object showing whether the applied object has come into a ready state on the cluster.", + "default": "Unknown", + "enum": [ + "Compliant", + "Non-Compliant", + "Pending", + "Suspended", + "Unknown" + ], + "x-ms-enum": { + "name": "FluxComplianceState", + "modelAsString": true, + "values": [ + { + "name": "Compliant", + "value": "Compliant", + "description": "Compliant" + }, + { + "name": "Non-Compliant", + "value": "Non-Compliant", + "description": "Non-Compliant" + }, + { + "name": "Pending", + "value": "Pending", + "description": "Pending" + }, + { + "name": "Suspended", + "value": "Suspended", + "description": "Suspended" + }, + { + "name": "Unknown", + "value": "Unknown", + "description": "Unknown" + } + ] + } }, - "upgradeFailureCount": { - "description": "Number of times that the HelmRelease failed to upgrade", - "type": "integer", - "format": "int64", + "appliedBy": { + "$ref": "#/definitions/ObjectReferenceDefinition", + "description": "Object reference to the Kustomization that applied this object", "x-nullable": true + }, + "statusConditions": { + "type": "array", + "description": "List of Kubernetes object status conditions present on the cluster", + "items": { + "$ref": "#/definitions/ObjectStatusConditionDefinition" + }, + "x-ms-identifiers": [ + "type" + ] + }, + "helmReleaseProperties": { + "$ref": "#/definitions/HelmReleasePropertiesDefinition", + "description": "Additional properties that are provided from objects of the HelmRelease kind" } } }, - "FluxComplianceStateDefinition": { - "description": "Compliance state of the cluster object.", - "type": "string", - "enum": [ - "Compliant", - "Non-Compliant", - "Pending", - "Suspended", - "Unknown" - ], - "default": "Unknown", - "x-ms-enum": { - "name": "FluxComplianceState", - "modelAsString": true - } - }, - "FluxConfiguration": { + "OperationStatusResult": { "type": "object", - "description": "The Flux Configuration object returned in Get & Put response.", + "description": "The current status of an async operation.", "properties": { + "id": { + "type": "string", + "description": "Fully qualified ID for the async operation." + }, + "name": { + "type": "string", + "description": "Name of the async operation." + }, + "status": { + "type": "string", + "description": "Operation status." + }, "properties": { "type": "object", - "x-ms-client-flatten": true, - "description": "Properties to create a Flux Configuration resource", - "properties": { - "scope": { - "description": "Scope at which the operator will be installed.", - "$ref": "#/definitions/ScopeDefinition", - "x-ms-mutability": [ - "create", - "read" - ] - }, - "namespace": { - "description": "The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, hyphen and period only.", - "type": "string", - "default": "default", - "x-ms-mutability": [ - "create", - "read" - ] - }, - "sourceKind": { - "description": "Source Kind to pull the configuration data from.", - "$ref": "#/definitions/SourceKindDefinition", - "default": "GitRepository" - }, - "suspend": { - "description": "Whether this configuration should suspend its reconciliation of its kustomizations and sources.", - "type": "boolean", - "default": false - }, - "gitRepository": { - "description": "Parameters to reconcile to the GitRepository source kind type.", - "type": "object", - "$ref": "#/definitions/GitRepositoryDefinition" - }, - "bucket": { - "description": "Parameters to reconcile to the Bucket source kind type.", - "type": "object", - "$ref": "#/definitions/BucketDefinition" - }, - "azureBlob": { - "description": "Parameters to reconcile to the AzureBlob source kind type.", - "type": "object", - "$ref": "#/definitions/AzureBlobDefinition" - }, - "ociRepository": { - "description": "Parameters to reconcile to the OCIRepository source kind type.", - "type": "object", - "$ref": "#/definitions/OCIRepositoryDefinition" - }, - "kustomizations": { - "description": "Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster.", - "type": "object", - "x-nullable": true, - "additionalProperties": { - "type": "object", - "$ref": "#/definitions/KustomizationDefinition" - } - }, - "configurationProtectedSettings": { - "description": "Key-value pairs of protected configuration settings for the configuration", - "type": "object", - "x-nullable": true, - "x-ms-secret": true, - "additionalProperties": { - "type": "string" - } - }, - "statuses": { - "description": "Statuses of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects provisioned by the fluxConfiguration.", - "type": "array", - "readOnly": true, - "x-nullable": true, - "items": { - "type": "object", - "$ref": "#/definitions/ObjectStatusDefinition" - }, - "x-ms-identifiers": [ - "name", - "namespace", - "kind" - ] - }, - "repositoryPublicKey": { - "description": "Public Key associated with this fluxConfiguration (either generated within the cluster or provided by the user).", - "type": "string", - "x-nullable": true, - "readOnly": true - }, - "sourceSyncedCommitId": { - "description": "Branch and/or SHA of the source commit synced with the cluster.", - "type": "string", - "x-nullable": true, - "readOnly": true - }, - "sourceUpdatedAt": { - "description": "Datetime the fluxConfiguration synced its source on the cluster.", - "type": "string", - "format": "date-time", - "x-nullable": true, - "readOnly": true - }, - "statusUpdatedAt": { - "description": "Datetime the fluxConfiguration synced its status on the cluster with Azure.", - "type": "string", - "format": "date-time", - "x-nullable": true, - "readOnly": true - }, - "waitForReconciliation": { - "description": "Whether flux configuration deployment should wait for cluster to reconcile the kustomizations.", - "type": "boolean", - "x-nullable": true - }, - "reconciliationWaitDuration": { - "description": "Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D", - "type": "string", - "x-nullable": true - }, - "complianceState": { - "description": "Combined status of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects.", - "type": "string", - "readOnly": true, - "$ref": "#/definitions/FluxComplianceStateDefinition" - }, - "provisioningState": { - "description": "Status of the creation of the fluxConfiguration.", - "type": "string", - "readOnly": true, - "$ref": "../../../common/2023-05-01-preview/definitions.json#/definitions/ProvisioningStateDefinition" - }, - "errorMessage": { - "description": "Error message returned to the user in the case of provisioning failure.", - "type": "string", - "x-nullable": true, - "readOnly": true - } + "description": "Additional information, if available.", + "additionalProperties": { + "type": "string" } }, - "systemData": { - "description": "Top level metadata https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources", - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/systemData" + "error": { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorDetail", + "description": "If present, details of the operation error.", + "readOnly": true } }, - "allOf": [ - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ProxyResource" - } + "required": [ + "status" ] }, - "FluxConfigurationPatch": { - "description": "The Flux Configuration Patch Request object.", + "OperationType": { + "type": "string", + "description": "The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'.", + "enum": [ + "extract", + "copy" + ], + "x-ms-enum": { + "name": "OperationType", + "modelAsString": true, + "values": [ + { + "name": "extract", + "value": "extract", + "description": "extract" + }, + { + "name": "copy", + "value": "copy", + "description": "copy" + } + ] + } + }, + "PostBuildDefinition": { "type": "object", + "description": "The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.", "properties": { - "properties": { + "substitute": { "type": "object", - "x-ms-client-flatten": true, - "description": "Updatable properties of an Flux Configuration Patch Request", - "properties": { - "sourceKind": { - "description": "Source Kind to pull the configuration data from.", - "$ref": "#/definitions/SourceKindDefinition", - "x-nullable": true - }, - "suspend": { - "description": "Whether this configuration should suspend its reconciliation of its kustomizations and sources.", - "type": "boolean", - "x-nullable": true - }, - "gitRepository": { - "description": "Parameters to reconcile to the GitRepository source kind type.", - "type": "object", - "$ref": "#/definitions/GitRepositoryPatchDefinition" - }, - "bucket": { - "description": "Parameters to reconcile to the Bucket source kind type.", - "type": "object", - "$ref": "#/definitions/BucketPatchDefinition" - }, - "azureBlob": { - "description": "Parameters to reconcile to the AzureBlob source kind type.", - "type": "object", - "$ref": "#/definitions/AzureBlobPatchDefinition" - }, - "ociRepository": { - "description": "Parameters to reconcile to the OCIRepository source kind type.", - "type": "object", - "$ref": "#/definitions/OCIRepositoryPatchDefinition" - }, - "kustomizations": { - "description": "Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster.", - "type": "object", - "x-nullable": true, - "additionalProperties": { - "type": "object", - "$ref": "#/definitions/KustomizationPatchDefinition" - } - }, - "configurationProtectedSettings": { - "description": "Key-value pairs of protected configuration settings for the configuration", - "type": "object", - "x-nullable": true, - "x-ms-secret": true, - "additionalProperties": { - "type": "string" - } - } + "description": "Key/value pairs holding the variables to be substituted in this Kustomization.", + "x-nullable": true, + "additionalProperties": { + "type": "string" } + }, + "substituteFrom": { + "type": "array", + "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", + "items": { + "$ref": "#/definitions/SubstituteFromDefinition" + }, + "x-ms-identifiers": [] } } }, - "FluxConfigurationsList": { - "description": "Result of the request to list Flux Configurations. It contains a list of FluxConfiguration objects and a URL link to get the next set of results.", + "PostBuildPatchDefinition": { "type": "object", + "description": "The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.", "properties": { - "value": { + "substitute": { + "type": "object", + "description": "Key/value pairs holding the variables to be substituted in this Kustomization.", + "additionalProperties": { + "type": "string" + } + }, + "substituteFrom": { "type": "array", - "readOnly": true, + "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", "items": { - "$ref": "#/definitions/FluxConfiguration" + "$ref": "#/definitions/SubstituteFromPatchDefinition" }, - "description": "List of Flux Configurations within a Kubernetes cluster." - }, - "nextLink": { + "x-ms-identifiers": [] + } + } + }, + "ProviderType": { + "type": "string", + "description": "Name of the provider used for authentication.", + "enum": [ + "Azure", + "GitHub", + "Generic" + ], + "x-ms-enum": { + "name": "ProviderType", + "modelAsString": true, + "values": [ + { + "name": "Azure", + "value": "Azure", + "description": "Azure provider can be used to authenticate to Azure DevOps repositories using Managed Identity." + }, + { + "name": "GitHub", + "value": "GitHub", + "description": "GitHub provider can be used to authenticate" + }, + { + "name": "Generic", + "value": "Generic", + "description": "Generic is the default provider that indicates secret-based authentication mechanism." + } + ] + } + }, + "ProvisioningState": { + "type": "string", + "description": "The provisioning state of the resource.", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Creating", + "Updating", + "Deleting" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Succeeded", + "value": "Succeeded", + "description": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Failed" + }, + { + "name": "Canceled", + "value": "Canceled", + "description": "Canceled" + }, + { + "name": "Creating", + "value": "Creating", + "description": "Creating" + }, + { + "name": "Updating", + "value": "Updating", + "description": "Updating" + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Deleting" + } + ] + } + }, + "RepositoryRefDefinition": { + "type": "object", + "description": "The source reference for the GitRepository object.", + "properties": { + "branch": { "type": "string", - "readOnly": true, - "description": "URL to get the next set of configuration objects, if any." + "description": "The git repository branch name to checkout.", + "x-nullable": true + }, + "tag": { + "type": "string", + "description": "The git repository tag name to checkout. This takes precedence over branch.", + "x-nullable": true + }, + "semver": { + "type": "string", + "description": "The semver range used to match against git repository tags. This takes precedence over tag.", + "x-nullable": true + }, + "commit": { + "type": "string", + "description": "The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence over semver.", + "x-nullable": true } } - } - }, - "parameters": { - "FluxConfigurationNameParameter": { - "name": "fluxConfigurationName", - "in": "path", - "description": "Name of the Flux Configuration.", - "required": true, + }, + "ScopeType": { + "type": "string", + "description": "Scope at which the configuration will be installed.", + "enum": [ + "cluster", + "namespace" + ], + "x-ms-enum": { + "name": "ScopeType", + "modelAsString": true, + "values": [ + { + "name": "cluster", + "value": "cluster", + "description": "cluster" + }, + { + "name": "namespace", + "value": "namespace", + "description": "namespace" + } + ] + } + }, + "ServicePrincipalDefinition": { + "type": "object", + "description": "Parameters to authenticate using Service Principal.", + "properties": { + "clientId": { + "type": "string", + "description": "The client Id for authenticating a Service Principal.", + "x-nullable": true + }, + "tenantId": { + "type": "string", + "description": "The tenant Id for authenticating a Service Principal", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "format": "password", + "description": "The client secret for authenticating a Service Principal", + "x-nullable": true, + "x-ms-secret": true + }, + "clientCertificate": { + "type": "string", + "format": "password", + "description": "Base64-encoded certificate used to authenticate a Service Principal", + "x-nullable": true, + "x-ms-secret": true + }, + "clientCertificatePassword": { + "type": "string", + "format": "password", + "description": "The password for the certificate used to authenticate a Service Principal", + "x-nullable": true, + "x-ms-secret": true + }, + "clientCertificateSendChain": { + "type": "boolean", + "description": "Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the Client Certificate", + "default": false + } + } + }, + "ServicePrincipalPatchDefinition": { + "type": "object", + "description": "Parameters to authenticate using Service Principal.", + "properties": { + "clientId": { + "type": "string", + "description": "The client Id for authenticating a Service Principal.", + "x-nullable": true + }, + "tenantId": { + "type": "string", + "description": "The tenant Id for authenticating a Service Principal", + "x-nullable": true + }, + "clientSecret": { + "type": "string", + "format": "password", + "description": "The client secret for authenticating a Service Principal", + "x-nullable": true, + "x-ms-secret": true + }, + "clientCertificate": { + "type": "string", + "format": "password", + "description": "Base64-encoded certificate used to authenticate a Service Principal", + "x-ms-secret": true + }, + "clientCertificatePassword": { + "type": "string", + "format": "password", + "description": "The password for the certificate used to authenticate a Service Principal", + "x-nullable": true, + "x-ms-secret": true + }, + "clientCertificateSendChain": { + "type": "boolean", + "description": "Specifies whether to include x5c header in client claims when acquiring a token to enable subject name / issuer based authentication for the Client Certificate" + } + } + }, + "SourceKindType": { "type": "string", - "x-ms-parameter-location": "method" + "description": "Source Kind to pull the configuration data from.", + "enum": [ + "GitRepository", + "Bucket", + "AzureBlob", + "OCIRepository" + ], + "x-ms-enum": { + "name": "SourceKindType", + "modelAsString": true, + "values": [ + { + "name": "GitRepository", + "value": "GitRepository", + "description": "GitRepository" + }, + { + "name": "Bucket", + "value": "Bucket", + "description": "Bucket" + }, + { + "name": "AzureBlob", + "value": "AzureBlob", + "description": "AzureBlob" + }, + { + "name": "OCIRepository", + "value": "OCIRepository", + "description": "OCIRepository" + } + ] + } + }, + "SubstituteFromDefinition": { + "type": "object", + "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", + "properties": { + "kind": { + "type": "string", + "description": "Define whether it is ConfigMap or Secret that holds the variables to be used in substitution." + }, + "name": { + "type": "string", + "description": "Name of the ConfigMap/Secret that holds the variables to be used in substitution." + }, + "optional": { + "type": "boolean", + "description": "Set to True to proceed without ConfigMap/Secret, if it is not present.", + "default": false + } + } + }, + "SubstituteFromPatchDefinition": { + "type": "object", + "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", + "properties": { + "kind": { + "type": "string", + "description": "Define whether it is ConfigMap or Secret that holds the variables to be used in substitution." + }, + "name": { + "type": "string", + "description": "Name of the ConfigMap/Secret that holds the variables to be used in substitution." + }, + "optional": { + "type": "boolean", + "description": "Set to True to proceed without ConfigMap/Secret, if it is not present.", + "default": false + } + } + }, + "TlsConfigDefinition": { + "type": "object", + "description": "Parameters to authenticate using TLS config for OCI repository.", + "properties": { + "clientCertificate": { + "type": "string", + "format": "password", + "description": "Base64-encoded certificate used to authenticate a client with the OCI repository.", + "x-nullable": true, + "x-ms-secret": true + }, + "privateKey": { + "type": "string", + "format": "password", + "description": "Base64-encoded private key used to authenticate a client with the OCI repository.", + "x-nullable": true, + "x-ms-secret": true + }, + "caCertificate": { + "type": "string", + "format": "password", + "description": "Base64-encoded CA certificate used to verify the server.", + "x-nullable": true, + "x-ms-secret": true + } + } + }, + "TlsConfigPatchDefinition": { + "type": "object", + "description": "Parameters to authenticate using TLS config for OCI repository.", + "properties": { + "clientCertificate": { + "type": "string", + "format": "password", + "description": "Base64-encoded certificate used to authenticate a client with the OCI repository.", + "x-nullable": true, + "x-ms-secret": true + }, + "privateKey": { + "type": "string", + "format": "password", + "description": "Base64-encoded private key used to authenticate a client with the OCI repository.", + "x-nullable": true, + "x-ms-secret": true + }, + "caCertificate": { + "type": "string", + "format": "password", + "description": "Base64-encoded CA certificate used to verify the server.", + "x-nullable": true, + "x-ms-secret": true + } + } + }, + "VerifyDefinition": { + "type": "object", + "description": "Parameters to verify the authenticity of an OCI Artifact.", + "properties": { + "provider": { + "type": "string", + "description": "Verification provider name." + }, + "verificationConfig": { + "type": "object", + "description": "An object containing trusted public keys of trusted authors.", + "additionalProperties": { + "type": "string" + } + }, + "matchOidcIdentity": { + "type": "array", + "description": "Array defining the criteria for matching the identity while verifying an OCI artifact.", + "items": { + "$ref": "#/definitions/MatchOidcIdentityDefinition" + }, + "x-ms-identifiers": [] + } + } + }, + "VerifyPatchDefinition": { + "type": "object", + "description": "Parameters to verify the authenticity of an OCI Artifact.", + "properties": { + "provider": { + "type": "string", + "description": "Verification provider name." + }, + "verificationConfig": { + "type": "object", + "description": "An object containing trusted public keys of trusted authors.", + "additionalProperties": { + "type": "string" + } + }, + "matchOidcIdentity": { + "type": "array", + "description": "Array defining the criteria for matching the OIDC identity while verifying an OCI artifact.", + "items": { + "$ref": "#/definitions/MatchOidcIdentityPatchDefinition" + }, + "x-ms-identifiers": [] + } + } } - } + }, + "parameters": {} } diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index 7fc958bcca2b..5c36fc0c3694 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -2,10 +2,11 @@ emit: - "@azure-tools/typespec-autorest" options: "@azure-tools/typespec-autorest": - omit-unreachable-types: true - emitter-output-dir: "{project-root}/.." + omit-unreachable-types: false + emitter-output-dir: "{project-root}" azure-resource-provider-folder: "resource-manager" - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/fluxconfiguration.json" + output-file: "{version-status}/{version}/fluxconfiguration.json" + arm-types-dir: "{project-root}/../../../../common-types/resource-management" emit-lro-options: "all" examples-dir: "{project-root}/examples" linter: From dfda94c3541460465342945e6801ffb3d08b08eb Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Tue, 13 Jan 2026 10:21:23 +0800 Subject: [PATCH 05/66] Update fluxconfiguration.json --- .../stable/2025-04-01/fluxconfiguration.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json index 65c94f1b9fcd..7f8dd8144c19 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json @@ -584,8 +584,10 @@ }, "accountKey": { "type": "string", + "format": "password", "description": "The account key (shared key) to access the storage account", - "x-nullable": true + "x-nullable": true, + "x-ms-secret": true }, "sasToken": { "type": "string", From a16c15b61e16d4360176237d084da6bb4b9d3af6 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Tue, 13 Jan 2026 10:21:49 +0800 Subject: [PATCH 06/66] Update models.tsp --- .../fluxConfigurations/models.tsp | 1 + 1 file changed, 1 insertion(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp index 31c7944c0bf2..43e4a9d35a3e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp @@ -503,6 +503,7 @@ model AzureBlobDefinition { * The account key (shared key) to access the storage account */ #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + @secret accountKey?: string | null; /** From 993e6a98613a83c2b059823dffe96e73c73f05dc Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Tue, 13 Jan 2026 10:51:04 +0800 Subject: [PATCH 07/66] update --- .../fluxConfigurations/models.tsp | 20 ++++++------- .../stable/2025-04-01/fluxconfiguration.json | 30 ++++++++++++------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp index 43e4a9d35a3e..ba9152f47b44 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp @@ -354,12 +354,12 @@ model GitRepositoryDefinition { /** * The maximum time to attempt to reconcile the cluster git repository source with the remote. */ - timeoutInSeconds?: int64 = 600; + timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster git repository source with the remote. */ - syncIntervalInSeconds?: int64 = 600; + syncIntervalInSeconds?: int64 | null = 600; /** * The source reference for the GitRepository object. @@ -448,12 +448,12 @@ model BucketDefinition { /** * The maximum time to attempt to reconcile the cluster bucket source with the remote. */ - timeoutInSeconds?: int64 = 600; + timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster bucket source with the remote. */ - syncIntervalInSeconds?: int64 = 600; + syncIntervalInSeconds?: int64 | null = 600; /** * Plaintext access key used to securely access the S3 bucket @@ -487,12 +487,12 @@ model AzureBlobDefinition { /** * The maximum time to attempt to reconcile the cluster Azure Blob source with the remote. */ - timeoutInSeconds?: int64 = 600; + timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster Azure Blob source with the remote. */ - syncIntervalInSeconds?: int64 = 600; + syncIntervalInSeconds?: int64 | null = 600; /** * Parameters to authenticate using Service Principal. @@ -593,12 +593,12 @@ model OCIRepositoryDefinition { /** * The maximum time to attempt to reconcile the cluster OCI repository source with the remote. */ - timeoutInSeconds?: int64 = 600; + timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster OCI repository source with the remote. */ - syncIntervalInSeconds?: int64 = 600; + syncIntervalInSeconds?: int64 | null = 600; /** * The source reference for the OCIRepository object. @@ -771,12 +771,12 @@ model KustomizationDefinition { /** * The maximum time to attempt to reconcile the Kustomization on the cluster. */ - timeoutInSeconds?: int64 = 600; + timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the Kustomization on the cluster. */ - syncIntervalInSeconds?: int64 = 600; + syncIntervalInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation. diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json index 7f8dd8144c19..5cfdc6334ceb 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json @@ -570,13 +570,15 @@ "type": "integer", "format": "int64", "description": "The maximum time to attempt to reconcile the cluster Azure Blob source with the remote.", - "default": 600 + "default": 600, + "x-nullable": true }, "syncIntervalInSeconds": { "type": "integer", "format": "int64", "description": "The interval at which to re-reconcile the cluster Azure Blob source with the remote.", - "default": 600 + "default": 600, + "x-nullable": true }, "servicePrincipal": { "$ref": "#/definitions/ServicePrincipalDefinition", @@ -683,13 +685,15 @@ "type": "integer", "format": "int64", "description": "The maximum time to attempt to reconcile the cluster bucket source with the remote.", - "default": 600 + "default": 600, + "x-nullable": true }, "syncIntervalInSeconds": { "type": "integer", "format": "int64", "description": "The interval at which to re-reconcile the cluster bucket source with the remote.", - "default": 600 + "default": 600, + "x-nullable": true }, "accessKey": { "type": "string", @@ -1153,13 +1157,15 @@ "type": "integer", "format": "int64", "description": "The maximum time to attempt to reconcile the cluster git repository source with the remote.", - "default": 600 + "default": 600, + "x-nullable": true }, "syncIntervalInSeconds": { "type": "integer", "format": "int64", "description": "The interval at which to re-reconcile the cluster git repository source with the remote.", - "default": 600 + "default": 600, + "x-nullable": true }, "repositoryRef": { "$ref": "#/definitions/RepositoryRefDefinition", @@ -1303,13 +1309,15 @@ "type": "integer", "format": "int64", "description": "The maximum time to attempt to reconcile the Kustomization on the cluster.", - "default": 600 + "default": 600, + "x-nullable": true }, "syncIntervalInSeconds": { "type": "integer", "format": "int64", "description": "The interval at which to re-reconcile the Kustomization on the cluster.", - "default": 600 + "default": 600, + "x-nullable": true }, "retryIntervalInSeconds": { "type": "integer", @@ -1522,13 +1530,15 @@ "type": "integer", "format": "int64", "description": "The maximum time to attempt to reconcile the cluster OCI repository source with the remote.", - "default": 600 + "default": 600, + "x-nullable": true }, "syncIntervalInSeconds": { "type": "integer", "format": "int64", "description": "The interval at which to re-reconcile the cluster OCI repository source with the remote.", - "default": 600 + "default": 600, + "x-nullable": true }, "repositoryRef": { "$ref": "#/definitions/OCIRepositoryRefDefinition", From 4447f52b6d6e0ccd6df0da77aa1c02738200ec2f Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Wed, 14 Jan 2026 15:00:14 +0800 Subject: [PATCH 08/66] update --- .../operations/back-compatible.tsp | 2 +- .../operations/main.tsp | 7 +- .../operations/models.tsp | 47 ++++- .../operations/routes.tsp | 68 ++++--- .../examples/ListAsyncOperationStatus.json | 32 ++-- .../2025-04-01/examples/OperationsList.json | 84 ++++---- .../stable/2025-04-01/operations.json | 181 +++++++++++++----- .../operations/tspconfig.yaml | 5 +- 8 files changed, 284 insertions(+), 142 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp index 3c57493c5907..e3bcab8e1605 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp @@ -1,6 +1,6 @@ import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; -using OperationsClient; +using microsoft.KubernetesConfiguration; @@clientLocation(OperationStatusOperationGroup.list, "OperationStatus"); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp index 14ac0af6a702..2b0c98c15ee9 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp @@ -22,14 +22,14 @@ using Azure.Core; using Azure.ResourceManager; using TypeSpec.Versioning; /** - * Operations Client + * Use these APIs to create extension resources through ARM, for Kubernetes Clusters. */ @armProviderNamespace @service(#{ title: "OperationsClient" }) @versioned(Versions) // FIXME: Common type version v2 is not supported for now. Set to v3. @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) -namespace OperationsClient; +namespace microsoft.KubernetesConfiguration; /** * The available API versions. @@ -42,3 +42,6 @@ enum Versions { } interface Operations extends Azure.ResourceManager.Operations {} +@@doc(Operations.list, + "List all the available operations the KubernetesConfiguration resource provider supports." +); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp index ce9548c0a0a1..467016dfa998 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp @@ -8,7 +8,50 @@ using TypeSpec.Http; using Azure.ResourceManager; using Azure.ResourceManager.Foundations; -namespace OperationsClient; +namespace microsoft.KubernetesConfiguration; + +/** + * Result of the request to list operations. + */ +model ResourceProviderOperationList { + /** + * List of operations supported by this resource provider. + */ + @visibility(Lifecycle.Read) + @identifiers(["name"]) + value: ResourceProviderOperation[]; + + /** + * URL to the next set of results, if any. + */ + @visibility(Lifecycle.Read) + nextLink?: string; +} + +/** + * Supported operation of this resource provider. + */ +model ResourceProviderOperation { + /** + * Operation name, in format of {provider}/{resource}/{operation} + */ + name: string; + + /** + * Display metadata associated with the operation. + */ + display?: ResourceProviderOperationDisplay; + + /** + * The flag that indicates whether the operation applies to data plane. + */ + isDataAction?: boolean; + + /** + * Origin of the operation. + */ + origin?: string; +} /** * The async operations in progress, in the cluster. @@ -38,7 +81,7 @@ model OperationStatusResult { * Additional information, if available. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" - properties?: Record; + properties?: Record | null; /** * If present, details of the operation error. diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp index 0f90cc4cdd3c..5040f08a3557 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp @@ -11,7 +11,45 @@ using TypeSpec.Http; using Azure.ResourceManager; using TypeSpec.OpenAPI; -namespace OperationsClient; +namespace microsoft.KubernetesConfiguration; + +alias OperationStatusOperationGroupOps = Azure.ResourceManager.Legacy.ExtensionOperations< + { + ...ApiVersionParameter; + ...SubscriptionIdParameter; + ...ResourceGroupParameter; + + /** + * The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService. + */ + @path + @segment("providers") + @key + clusterRp: string; + + /** + * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances. + */ + @key + @path + clusterResourceName: string; + + /** + * The name of the kubernetes cluster. + */ + @key + @path + clusterName: string; + }, + { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + @path + @key + @segment("providers") + providers: "Microsoft.KubernetesConfiguration"; + }, + {} +>; #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "For backward compatibility" interface OperationStatusOperationGroup { @@ -23,30 +61,8 @@ interface OperationStatusOperationGroup { @autoRoute @get @action("operations") - list is ArmProviderActionSync< - Response = OperationStatusList, - Scope = Extension.ResourceGroup, - Parameters = { - /** - * The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService. - */ - @path - @segment("providers") - clusterRp: string; - - /** - * The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters. - */ - @path - @segment("{clusterRp}") - clusterResourceName: string; - - /** - * The name of the kubernetes cluster. - */ - @path - @segment("{clusterResourceName}") - clusterName: string; - } + list is OperationStatusOperationGroupOps.List< + {}, + Response = OperationStatusList >; } diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/ListAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/ListAsyncOperationStatus.json index 38f7d8e213b1..d387fab3158b 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/ListAsyncOperationStatus.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/ListAsyncOperationStatus.json @@ -1,33 +1,35 @@ { "parameters": { - "subscriptionId": "subId1", - "resourceGroupName": "rg1", - "clusterRp": "Microsoft.Kubernetes", - "clusterResourceName": "connectedClusters", "api-version": "2025-04-01", - "clusterName": "clusterName1" + "clusterName": "clusterName1", + "clusterResourceName": "connectedClusters", + "clusterRp": "Microsoft.Kubernetes", + "resourceGroupName": "rg1", + "subscriptionId": "subId1" }, "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/99999999-9999-9999-9999-999999999999", "name": "99999999-9999-9999-9999-999999999999", - "status": "Deleting", + "error": null, + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/ClusterMonitor/operations/99999999-9999-9999-9999-999999999999", "properties": {}, - "error": null + "status": "Deleting" }, { - "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/cassandraExtension1/operations/88888888-8888-8888-8888-888888888888", "name": "88888888-8888-8888-8888-888888888888", - "status": "Creating", + "error": null, + "id": "/subscriptions/subId1/resourceGroups/rg1/providers/Microsoft.Kubernetes/connectedClusters/clusterName1/providers/Microsoft.KubernetesConfiguration/extensions/cassandraExtension1/operations/88888888-8888-8888-8888-888888888888", "properties": {}, - "error": null + "status": "Creating" } - ], - "nextLink": null + ] } } - } -} + }, + "operationId": "OperationStatus_List", + "title": "AsyncOperationStatus List" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/OperationsList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/OperationsList.json index d3b70ad2ba65..fd848d134007 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/OperationsList.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/OperationsList.json @@ -9,10 +9,10 @@ { "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/write", "display": { - "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/write", - "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations", "description": "Creates or updates source control configuration.", - "provider": "Microsoft Kubernetes Configuration" + "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/write", + "provider": "Microsoft Kubernetes Configuration", + "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations" }, "isDataAction": false, "origin": "user,system" @@ -20,10 +20,10 @@ { "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/read", "display": { - "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/read", - "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations", "description": "Gets source control configuration.", - "provider": "Microsoft Kubernetes Configuration" + "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/read", + "provider": "Microsoft Kubernetes Configuration", + "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations" }, "isDataAction": false, "origin": "user,system" @@ -31,10 +31,10 @@ { "name": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/delete", "display": { - "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/delete", - "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations", "description": "Deletes source control configuration.", - "provider": "Microsoft Kubernetes Configuration" + "operation": "Microsoft.KubernetesConfiguration/sourceControlConfigurations/delete", + "provider": "Microsoft Kubernetes Configuration", + "resource": "Microsoft.KubernetesConfiguration/sourceControlConfigurations" }, "isDataAction": false, "origin": "user,system" @@ -42,10 +42,10 @@ { "name": "Microsoft.KubernetesConfiguration/extensions/read", "display": { - "provider": "Microsoft KubernetesConfiguration", - "resource": "extensions", + "description": "Get the specified Extension.", "operation": "Get extension", - "description": "Get the specified Extension." + "provider": "Microsoft KubernetesConfiguration", + "resource": "extensions" }, "isDataAction": false, "origin": "user,system" @@ -53,10 +53,10 @@ { "name": "Microsoft.KubernetesConfiguration/extensions/write", "display": { - "provider": "Microsoft KubernetesConfiguration", - "resource": "extensions", + "description": "Create the Extension specified.", "operation": "Create a Extension", - "description": "Create the Extension specified." + "provider": "Microsoft KubernetesConfiguration", + "resource": "extensions" }, "isDataAction": false, "origin": "user,system" @@ -64,10 +64,10 @@ { "name": "Microsoft.KubernetesConfiguration/extensions/delete", "display": { - "provider": "Microsoft KubernetesConfiguration", - "resource": "extensions", + "description": "Delete the specified Extension.", "operation": "Delete Extension", - "description": "Delete the specified Extension." + "provider": "Microsoft KubernetesConfiguration", + "resource": "extensions" }, "isDataAction": false, "origin": "user,system" @@ -75,10 +75,10 @@ { "name": "Microsoft.KubernetesConfiguration/extensions/operations/read", "display": { - "provider": "Microsoft KubernetesConfiguration", - "resource": "extensions", + "description": "Get the Status of the Extension Async Operation.", "operation": "Get Extension Async Operation Status", - "description": "Get the Status of the Extension Async Operation." + "provider": "Microsoft KubernetesConfiguration", + "resource": "extensions" }, "isDataAction": false, "origin": "user,system" @@ -86,10 +86,10 @@ { "name": "Microsoft.KubernetesConfiguration/fluxConfigurations/read", "display": { - "provider": "Microsoft KubernetesConfiguration", - "resource": "fluxConfigurations", + "description": "Get the specified Flux Configuration.", "operation": "Get fluxConfiguration", - "description": "Get the specified Flux Configuration." + "provider": "Microsoft KubernetesConfiguration", + "resource": "fluxConfigurations" }, "isDataAction": false, "origin": "user,system" @@ -97,10 +97,10 @@ { "name": "Microsoft.KubernetesConfiguration/fluxConfigurations/write", "display": { - "provider": "Microsoft KubernetesConfiguration", - "resource": "fluxConfigurations", + "description": "Create the Flux Configuration specified.", "operation": "Create a fluxConfiguration", - "description": "Create the Flux Configuration specified." + "provider": "Microsoft KubernetesConfiguration", + "resource": "fluxConfigurations" }, "isDataAction": false, "origin": "user,system" @@ -108,10 +108,10 @@ { "name": "Microsoft.KubernetesConfiguration/fluxConfigurations/delete", "display": { - "provider": "Microsoft KubernetesConfiguration", - "resource": "fluxConfigurations", + "description": "Delete the specified Flux Configuration.", "operation": "Delete Flux Configuration", - "description": "Delete the specified Flux Configuration." + "provider": "Microsoft KubernetesConfiguration", + "resource": "fluxConfigurations" }, "isDataAction": false, "origin": "user,system" @@ -119,10 +119,10 @@ { "name": "Microsoft.KubernetesConfiguration/fluxConfigurations/operations/read", "display": { - "provider": "Microsoft KubernetesConfiguration", - "resource": "fluxConfigurations", + "description": "Get the Status of the Flux Configuration Async Operation.", "operation": "Get Flux Configuration Async Operation Status", - "description": "Get the Status of the Flux Configuration Async Operation." + "provider": "Microsoft KubernetesConfiguration", + "resource": "fluxConfigurations" }, "isDataAction": false, "origin": "user,system" @@ -130,10 +130,10 @@ { "name": "Microsoft.KubernetesConfiguration/register/action", "display": { - "operation": "Microsoft.KubernetesConfiguration/register/action", - "resource": "Register", "description": "Registers subscription to Microsoft.KubernetesConfiguration resource provider.", - "provider": "Microsoft Kubernetes Configuration" + "operation": "Microsoft.KubernetesConfiguration/register/action", + "provider": "Microsoft Kubernetes Configuration", + "resource": "Register" }, "isDataAction": false, "origin": "user,system" @@ -141,10 +141,10 @@ { "name": "Microsoft.KubernetesConfiguration/extensionTypes/read", "display": { - "operation": "Microsoft.KubernetesConfiguration/extensionTypes/read", - "resource": "extensionTypes", "description": "Get Kubernetes Configuration Available Extensions", - "provider": "Microsoft KubernetesConfiguration" + "operation": "Microsoft.KubernetesConfiguration/extensionTypes/read", + "provider": "Microsoft KubernetesConfiguration", + "resource": "extensionTypes" }, "isDataAction": false, "origin": "user,system" @@ -152,5 +152,7 @@ ] } } - } -} + }, + "operationId": "Operations_List", + "title": "BatchAccountDelete" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json index 9ab5f8b81ce6..03ea367c6bac 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json @@ -1,18 +1,23 @@ { "swagger": "2.0", "info": { - "version": "2025-04-01", "title": "OperationsClient", - "description": "Use these APIs to create extension resources through ARM, for Kubernetes Clusters." + "version": "2025-04-01", + "description": "Use these APIs to create extension resources through ARM, for Kubernetes Clusters.", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, - "host": "management.azure.com", "schemes": [ "https" ], - "consumes": [ + "host": "management.azure.com", + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], "security": [ @@ -25,103 +30,173 @@ "securityDefinitions": { "azure_auth": { "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "description": "Azure Active Directory OAuth2 Flow.", "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } } }, + "tags": [ + { + "name": "Operations" + } + ], "paths": { - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/operations": { + "/providers/microsoft.KubernetesConfiguration/operations": { "get": { + "operationId": "Operations_List", "tags": [ - "Operations in a Cluster" + "Operations" ], - "operationId": "OperationStatus_List", - "description": "List Async Operations, currently in progress, in a cluster", - "x-ms-examples": { - "AsyncOperationStatus List": { - "$ref": "./examples/ListAsyncOperationStatus.json" - } - }, + "description": "List all the available operations the KubernetesConfiguration resource provider supports.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../common/2022-03-01/parameters.json#/parameters/ClusterRpParameter" - }, - { - "$ref": "../../../common/2022-03-01/parameters.json#/parameters/ClusterResourceNameParameter" - }, - { - "$ref": "../../../common/2022-03-01/parameters.json#/parameters/ClusterNameParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" } ], "responses": { "200": { - "description": "Operations in a cluster", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../common/2022-03-01/definitions.json#/definitions/OperationStatusList" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/OperationListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, + "x-ms-examples": { + "BatchAccountDelete": { + "$ref": "./examples/OperationsList.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } } }, - "/providers/Microsoft.KubernetesConfiguration/operations": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/operations": { "get": { - "tags": [ - "Operations" - ], - "operationId": "Operations_List", - "x-ms-examples": { - "BatchAccountDelete": { - "$ref": "./examples/OperationsList.json" - } - }, - "description": "List all the available operations the KubernetesConfiguration resource provider supports.", + "operationId": "OperationStatus_List", + "description": "List Async Operations, currently in progress, in a cluster", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "clusterRp", + "in": "path", + "description": "The Kubernetes cluster RP - i.e. Microsoft.ContainerService, Microsoft.Kubernetes, Microsoft.HybridContainerService.", + "required": true, + "type": "string" + }, + { + "name": "clusterResourceName", + "in": "path", + "description": "The Kubernetes cluster resource name - i.e. managedClusters, connectedClusters, provisionedClusters, appliances.", + "required": true, + "type": "string" + }, + { + "name": "clusterName", + "in": "path", + "description": "The name of the kubernetes cluster.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "OK response definition.", + "description": "The request has succeeded.", "schema": { - "$ref": "../../../common/2023-05-01-preview/definitions.json#/definitions/ResourceProviderOperationList" + "$ref": "#/definitions/OperationStatusList" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, + "x-ms-examples": { + "AsyncOperationStatus List": { + "$ref": "./examples/ListAsyncOperationStatus.json" + } + }, "x-ms-pageable": { "nextLinkName": "nextLink" } } } }, - "definitions": {}, + "definitions": { + "OperationStatusList": { + "type": "object", + "description": "The async operations in progress, in the cluster.", + "properties": { + "value": { + "type": "array", + "description": "The OperationStatusResult items on this page", + "items": { + "$ref": "#/definitions/OperationStatusResult" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "OperationStatusResult": { + "type": "object", + "description": "The current status of an async operation.", + "properties": { + "id": { + "type": "string", + "description": "Fully qualified ID for the async operation." + }, + "name": { + "type": "string", + "description": "Name of the async operation." + }, + "status": { + "type": "string", + "description": "Operation status." + }, + "properties": { + "type": "object", + "description": "Additional information, if available.", + "x-nullable": true, + "additionalProperties": { + "type": "string" + } + }, + "error": { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorDetail", + "description": "If present, details of the operation error.", + "readOnly": true + } + }, + "required": [ + "status" + ] + } + }, "parameters": {} } diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/tspconfig.yaml index cd6395b93237..d86afdd776f0 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/tspconfig.yaml @@ -3,9 +3,10 @@ emit: options: "@azure-tools/typespec-autorest": omit-unreachable-types: true - emitter-output-dir: "{project-root}/.." + emitter-output-dir: "{project-root}" azure-resource-provider-folder: "resource-manager" - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/operations.json" + output-file: "{version-status}/{version}/operations.json" + arm-types-dir: "{project-root}/../../../../common-types/resource-management" emit-lro-options: "all" examples-dir: "{project-root}/examples" linter: From d5da9e66b5bd1be53f99d1627fbb610c4587b5e5 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Wed, 14 Jan 2026 16:34:59 +0800 Subject: [PATCH 09/66] update --- .../operations/back-compatible.tsp | 2 +- .../operations/main.tsp | 8 +- .../operations/models.tsp | 32 ++------ .../operations/routes.tsp | 2 +- .../stable/2025-04-01/operations.json | 75 ++++++++++++++++++- 5 files changed, 86 insertions(+), 33 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp index e3bcab8e1605..7f3b0edb18fd 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/back-compatible.tsp @@ -1,6 +1,6 @@ import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; -using microsoft.KubernetesConfiguration; +using Microsoft.KubernetesConfiguration; @@clientLocation(OperationStatusOperationGroup.list, "OperationStatus"); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp index 2b0c98c15ee9..5d9b20ff2490 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/main.tsp @@ -29,7 +29,7 @@ using TypeSpec.Versioning; @versioned(Versions) // FIXME: Common type version v2 is not supported for now. Set to v3. @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) -namespace microsoft.KubernetesConfiguration; +namespace Microsoft.KubernetesConfiguration; /** * The available API versions. @@ -41,7 +41,11 @@ enum Versions { v2025_04_01: "2025-04-01", } -interface Operations extends Azure.ResourceManager.Operations {} +interface Operations + extends Azure.ResourceManager.Legacy.Operations< + ArmResponse, + ErrorResponse + > {} @@doc(Operations.list, "List all the available operations the KubernetesConfiguration resource provider supports." ); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp index 467016dfa998..2b41b037fa94 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp @@ -8,7 +8,7 @@ using TypeSpec.Http; using Azure.ResourceManager; using Azure.ResourceManager.Foundations; -namespace microsoft.KubernetesConfiguration; +namespace Microsoft.KubernetesConfiguration; /** * Result of the request to list operations. @@ -18,41 +18,18 @@ model ResourceProviderOperationList { * List of operations supported by this resource provider. */ @visibility(Lifecycle.Read) - @identifiers(["name"]) + @identifiers(#["name"]) + @pageItems value: ResourceProviderOperation[]; /** * URL to the next set of results, if any. */ + @nextLink @visibility(Lifecycle.Read) nextLink?: string; } -/** - * Supported operation of this resource provider. - */ -model ResourceProviderOperation { - /** - * Operation name, in format of {provider}/{resource}/{operation} - */ - name: string; - - /** - * Display metadata associated with the operation. - */ - display?: ResourceProviderOperationDisplay; - - /** - * The flag that indicates whether the operation applies to data plane. - */ - isDataAction?: boolean; - - /** - * Origin of the operation. - */ - origin?: string; -} - /** * The async operations in progress, in the cluster. */ @@ -81,6 +58,7 @@ model OperationStatusResult { * Additional information, if available. */ #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" properties?: Record | null; /** diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp index 5040f08a3557..83be432ca72f 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp @@ -11,7 +11,7 @@ using TypeSpec.Http; using Azure.ResourceManager; using TypeSpec.OpenAPI; -namespace microsoft.KubernetesConfiguration; +namespace Microsoft.KubernetesConfiguration; alias OperationStatusOperationGroupOps = Azure.ResourceManager.Legacy.ExtensionOperations< { diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json index 03ea367c6bac..4183bb6ea8b2 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json @@ -44,7 +44,7 @@ } ], "paths": { - "/providers/microsoft.KubernetesConfiguration/operations": { + "/providers/Microsoft.KubernetesConfiguration/operations": { "get": { "operationId": "Operations_List", "tags": [ @@ -60,7 +60,7 @@ "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/OperationListResult" + "$ref": "#/definitions/ResourceProviderOperationList" } }, "default": { @@ -196,6 +196,77 @@ "required": [ "status" ] + }, + "ResourceProviderOperation": { + "type": "object", + "description": "Supported operation of this resource provider.", + "properties": { + "name": { + "type": "string", + "description": "Operation name, in format of {provider}/{resource}/{operation}" + }, + "display": { + "$ref": "#/definitions/ResourceProviderOperationDisplay", + "description": "Display metadata associated with the operation." + }, + "isDataAction": { + "type": "boolean", + "description": "The flag that indicates whether the operation applies to data plane.", + "readOnly": true + }, + "origin": { + "type": "string", + "description": "Origin of the operation", + "readOnly": true + } + } + }, + "ResourceProviderOperationDisplay": { + "type": "object", + "description": "Display metadata associated with the operation.", + "properties": { + "provider": { + "type": "string", + "description": "Resource provider: Microsoft KubernetesConfiguration." + }, + "resource": { + "type": "string", + "description": "Resource on which the operation is performed." + }, + "operation": { + "type": "string", + "description": "Type of operation: get, read, delete, etc." + }, + "description": { + "type": "string", + "description": "Description of this operation." + } + } + }, + "ResourceProviderOperationList": { + "type": "object", + "description": "Result of the request to list operations.", + "properties": { + "value": { + "type": "array", + "description": "List of operations supported by this resource provider.", + "items": { + "$ref": "#/definitions/ResourceProviderOperation" + }, + "readOnly": true, + "x-ms-identifiers": [ + "name" + ] + }, + "nextLink": { + "type": "string", + "description": "URL to the next set of results, if any.", + "readOnly": true + } + }, + "required": [ + "value" + ] } }, "parameters": {} From 0e9fd46f3c0bcecdbd00893aa4fea0baec5fc2bf Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Thu, 15 Jan 2026 10:44:51 +0800 Subject: [PATCH 10/66] update --- .../PrivateEndpointConnection.tsp | 3 +- .../privateLinkScopes/main.tsp | 5 +- .../PrivateEndpointConnectionDelete.json | 12 +- .../PrivateEndpointConnectionGet.json | 22 +- .../PrivateEndpointConnectionList.json | 30 +- .../PrivateEndpointConnectionUpdate.json | 30 +- ...rivateLinkScopePrivateLinkResourceGet.json | 14 +- ...teLinkScopePrivateLinkResourceListGet.json | 12 +- .../examples/PrivateLinkScopesCreate.json | 62 +- .../examples/PrivateLinkScopesDelete.json | 10 +- .../examples/PrivateLinkScopesGet.json | 34 +- .../examples/PrivateLinkScopesList.json | 40 +- .../PrivateLinkScopesListByResourceGroup.json | 62 +- .../examples/PrivateLinkScopesUpdate.json | 66 +- .../PrivateLinkScopesUpdateTagsOnly.json | 44 +- .../2024-11-01-preview/privateLinkScopes.json | 603 +++++++++++------- .../privateLinkScopes/tspconfig.yaml | 5 +- 17 files changed, 609 insertions(+), 445 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp index 6ec6b91f0386..fc333905e9ee 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp @@ -34,7 +34,8 @@ interface PrivateEndpointConnections { createOrUpdate is PrivateEndpointOperations.CreateOrReplaceAsync< KubernetesConfigurationPrivateLinkScope, PrivateEndpointConnection, - Response = ArmResourceUpdatedResponse | ArmAcceptedLroResponse, + Response = ArmResourceUpdatedResponse | ArmAcceptedLroResponse & + Azure.Core.Foundations.RetryAfterHeader>, LroHeaders = ArmLroLocationHeader & Azure.Core.Foundations.RetryAfterHeader >; diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/main.tsp index d3760355dd58..b57f31ff7b37 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/main.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/main.tsp @@ -24,10 +24,11 @@ using Azure.Core; using Azure.ResourceManager; using TypeSpec.Versioning; /** - * PrivateLinkScopes Client + * Azure Arc K8s Clusters API reference for Private Link's Scopes management. */ +#suppress "@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @armProviderNamespace -@service(#{ title: "PrivateLinkScopesClient" }) +@service(#{ title: "MicrosoftKubernetesConfigurationClient" }) @versioned(Versions) @armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v3) namespace Microsoft.KubernetesConfiguration; diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionDelete.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionDelete.json index e2bf3f3b78b9..78594b44691f 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionDelete.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionDelete.json @@ -1,13 +1,15 @@ { "parameters": { - "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2024-11-01-preview", + "privateEndpointConnectionName": "private-endpoint-connection-name", "resourceGroupName": "myResourceGroup", "scopeName": "myPrivateLinkScope", - "privateEndpointConnectionName": "private-endpoint-connection-name", - "api-version": "2024-11-01-preview" + "subscriptionId": "00000000-1111-2222-3333-444444444444" }, "responses": { "200": {}, "204": {} - } -} + }, + "operationId": "PrivateEndpointConnections_Delete", + "title": "Deletes a private endpoint connection with a given name." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionGet.json index 484bacfde9a3..6af429ad7cf1 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionGet.json @@ -1,29 +1,31 @@ { "parameters": { - "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2024-11-01-preview", + "privateEndpointConnectionName": "private-endpoint-connection-name", "resourceGroupName": "myResourceGroup", "scopeName": "myPrivateLinkScope", - "privateEndpointConnectionName": "private-endpoint-connection-name", - "api-version": "2024-11-01-preview" + "subscriptionId": "00000000-1111-2222-3333-444444444444" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers//privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers//privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } } - } -} + }, + "operationId": "PrivateEndpointConnections_Get", + "title": "Gets private endpoint connection." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionList.json index c82661c91821..1ae46646bd59 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionList.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionList.json @@ -1,48 +1,50 @@ { "parameters": { - "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2024-11-01-preview", "resourceGroupName": "myResourceGroup", "scopeName": "myPrivateLinkScope", - "api-version": "2024-11-01-preview" + "subscriptionId": "00000000-1111-2222-3333-444444444444" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name-2", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name-2", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } }, { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name-2", "name": "private-endpoint-connection-name-2", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name-2", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name-2" }, "privateLinkServiceConnectionState": { - "status": "Pending", "description": "Please approve my connection.", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Pending" + }, + "provisioningState": "Succeeded" } } ] } } - } -} + }, + "operationId": "PrivateEndpointConnections_ListByPrivateLinkScope", + "title": "Gets list of private endpoint connections on a private link scope." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionUpdate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionUpdate.json index 4a593ada75cc..4a8681f42b68 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionUpdate.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionUpdate.json @@ -1,38 +1,40 @@ { "parameters": { - "subscriptionId": "00000000-1111-2222-3333-444444444444", - "resourceGroupName": "myResourceGroup", - "scopeName": "myPrivateLinkScope", - "privateEndpointConnectionName": "private-endpoint-connection-name", "api-version": "2024-11-01-preview", + "privateEndpointConnectionName": "private-endpoint-connection-name", "properties": { "properties": { "privateLinkServiceConnectionState": { - "status": "Approved", - "description": "Approved by johndoe@contoso.com" + "description": "Approved by johndoe@contoso.com", + "status": "Approved" } } - } + }, + "resourceGroupName": "myResourceGroup", + "scopeName": "myPrivateLinkScope", + "subscriptionId": "00000000-1111-2222-3333-444444444444" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Approved by johndoe@contoso.com", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } }, "202": {} - } -} + }, + "operationId": "PrivateEndpointConnections_CreateOrUpdate", + "title": "Approve or reject a private endpoint connection with a given name." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json index 86e291200784..4bceefb77dfa 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json @@ -1,17 +1,17 @@ { "parameters": { - "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2024-11-01-preview", + "groupName": "KubernetesConfiguration", "resourceGroupName": "myResourceGroup", "scopeName": "myPrivateLinkScope", - "api-version": "2024-11-01-preview", - "groupName": "KubernetesConfiguration" + "subscriptionId": "00000000-1111-2222-3333-444444444444" }, "responses": { "200": { "body": { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateLinkResources/KubernetesConfiguration", "name": "KubernetesConfiguration", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateLinkResources", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateLinkResources/KubernetesConfiguration", "properties": { "groupId": "KubernetesConfiguration", "requiredMembers": [ @@ -27,5 +27,7 @@ } } } - } -} + }, + "operationId": "PrivateLinkResources_Get", + "title": "Gets private endpoint connection." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json index b49117446bff..34e54c189421 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json @@ -1,18 +1,18 @@ { "parameters": { - "subscriptionId": "00000000-1111-2222-3333-444444444444", + "api-version": "2024-11-01-preview", "resourceGroupName": "myResourceGroup", "scopeName": "myPrivateLinkScope", - "api-version": "2024-11-01-preview" + "subscriptionId": "00000000-1111-2222-3333-444444444444" }, "responses": { "200": { "body": { "value": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateLinkResources/KubernetesConfiguration", "name": "KubernetesConfiguration", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateLinkResources", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateLinkResources/KubernetesConfiguration", "properties": { "groupId": "KubernetesConfiguration", "requiredMembers": [ @@ -30,5 +30,7 @@ ] } } - } -} + }, + "operationId": "PrivateLinkResources_ListByPrivateLinkScope", + "title": "Gets private endpoint connection." +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesCreate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesCreate.json index 532b8e9505a3..0317f94dbf68 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesCreate.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesCreate.json @@ -1,79 +1,81 @@ { "parameters": { "api-version": "2024-11-01-preview", - "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919", - "resourceGroupName": "my-resource-group", - "scopeName": "my-privatelinkscope", "parameters": { "location": "westus" - } + }, + "resourceGroupName": "my-resource-group", + "scopeName": "my-privatelinkscope", + "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919" }, "responses": { "200": { "body": { - "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "name": "my-privatelinkscope", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "location": "westus", - "tags": {}, "properties": { - "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", - "provisioningState": "Succeeded", - "publicNetworkAccess": "Disabled", "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", "privateEndpointConnections": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } - ] - } + ], + "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} } }, "201": { "body": { - "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "name": "my-privatelinkscope", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "location": "westus", - "tags": {}, "properties": { - "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", - "provisioningState": "Succeeded", - "publicNetworkAccess": "Disabled", "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", "privateEndpointConnections": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } - ] - } + ], + "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} } } - } -} + }, + "operationId": "PrivateLinkScopes_CreateOrUpdate", + "title": "PrivateLinkScopeCreate" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesDelete.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesDelete.json index 3cd94c6f6546..42272fff34d4 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesDelete.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesDelete.json @@ -1,12 +1,14 @@ { "parameters": { "api-version": "2024-11-01-preview", - "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919", "resourceGroupName": "my-resource-group", - "scopeName": "my-privatelinkscope" + "scopeName": "my-privatelinkscope", + "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919" }, "responses": { "200": {}, "204": {} - } -} + }, + "operationId": "PrivateLinkScopes_Delete", + "title": "PrivateLinkScopesDelete" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesGet.json index 34a7c1dde97b..df97b940820a 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesGet.json @@ -1,43 +1,45 @@ { "parameters": { "api-version": "2024-11-01-preview", - "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919", "resourceGroupName": "my-resource-group", - "scopeName": "my-privatelinkscope" + "scopeName": "my-privatelinkscope", + "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919" }, "responses": { "200": { "body": { - "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "name": "my-privatelinkscope", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "location": "westus", - "tags": {}, "properties": { - "privateLinkScopeId": "f5dc51d3-92ed-4d7e-947a-775ea79b4919", - "provisioningState": "Succeeded", - "publicNetworkAccess": "Disabled", "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", "privateEndpointConnections": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } - ] - } + ], + "privateLinkScopeId": "f5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} } } - } -} + }, + "operationId": "PrivateLinkScopes_Get", + "title": "PrivateLinkScopeGet" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesList.json index 51b0a6a0d309..ade9d183bba9 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesList.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesList.json @@ -8,51 +8,53 @@ "body": { "value": [ { - "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "name": "my-privatelinkscope", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "location": "westus", - "tags": {}, "properties": { + "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", "provisioningState": "Succeeded", - "publicNetworkAccess": "Disabled", - "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName" - } + "publicNetworkAccess": "Disabled" + }, + "tags": {} }, { - "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-other-privatelinkscope", "name": "my-other-privatelinkscope", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-other-privatelinkscope", "location": "westus", - "tags": {}, "properties": { - "privateLinkScopeId": "f5dc51d3-92ed-4d7e-947a-775ea79b4919", - "provisioningState": "Succeeded", - "publicNetworkAccess": "Disabled", "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", "privateEndpointConnections": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } - ] - } + ], + "privateLinkScopeId": "f5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} } ] } } - } -} + }, + "operationId": "PrivateLinkScopes_List", + "title": "PrivateLinkScopesList.json" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesListByResourceGroup.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesListByResourceGroup.json index 97621ce31da7..74381c419677 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesListByResourceGroup.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesListByResourceGroup.json @@ -1,78 +1,80 @@ { "parameters": { "api-version": "2024-11-01-preview", - "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919", - "resourceGroupName": "my-resource-group" + "resourceGroupName": "my-resource-group", + "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919" }, "responses": { "200": { "body": { + "nextLink": null, "value": [ { - "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "name": "my-privatelinkscope", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "location": "westus", - "tags": {}, "properties": { - "privateLinkScopeId": "f5dc51d3-92ed-4d7e-947a-775ea79b4919", - "provisioningState": "Succeeded", - "publicNetworkAccess": "Disabled", "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", "privateEndpointConnections": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } - ] - } + ], + "privateLinkScopeId": "f5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} }, { - "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-other-privatelinkscope", "name": "my-other-privatelinkscope", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-other-privatelinkscope", "location": "westus", - "tags": {}, "properties": { - "privateLinkScopeId": "a5dc51d3-92ed-4d7e-947a-775ea79b4919", - "provisioningState": "Succeeded", - "publicNetworkAccess": "Disabled", "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", "privateEndpointConnections": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } - ] - } + ], + "privateLinkScopeId": "a5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": {} } - ], - "nextLink": null + ] } } - } -} + }, + "operationId": "PrivateLinkScopes_ListByResourceGroup", + "title": "PrivateLinkScopeListByResourceGroup" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdate.json index 92f98ec70add..e0b894f26601 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdate.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdate.json @@ -1,86 +1,88 @@ { "parameters": { "api-version": "2024-11-01-preview", - "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919", - "resourceGroupName": "my-resource-group", - "scopeName": "my-privatelinkscope", "parameters": { "location": "westus", "tags": { "Tag1": "Value1" } - } + }, + "resourceGroupName": "my-resource-group", + "scopeName": "my-privatelinkscope", + "subscriptionId": "86dc51d3-92ed-4d7e-947a-775ea79b4919" }, "responses": { "200": { "body": { - "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "name": "my-privatelinkscope", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "location": "westus", - "tags": { - "Tag1": "Value1" - }, "properties": { - "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", - "provisioningState": "Succeeded", - "publicNetworkAccess": "Disabled", "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", "privateEndpointConnections": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } - ] + ], + "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": { + "Tag1": "Value1" } } }, "201": { "body": { - "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "name": "my-privatelinkscope", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/86dc51d3-92ed-4d7e-947a-775ea79b4919/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "location": "westus", - "tags": { - "Tag1": "Value1" - }, "properties": { - "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", - "provisioningState": "Succeeded", - "publicNetworkAccess": "Disabled", "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", "privateEndpointConnections": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } - ] + ], + "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": { + "Tag1": "Value1" } } } - } -} + }, + "operationId": "PrivateLinkScopes_CreateOrUpdate", + "title": "PrivateLinkScopeUpdate" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdateTagsOnly.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdateTagsOnly.json index 9c1a927631bc..106fd79bb251 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdateTagsOnly.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdateTagsOnly.json @@ -1,52 +1,54 @@ { "parameters": { - "api-version": "2024-11-01-preview", - "subscriptionId": "subid", - "resourceGroupName": "my-resource-group", - "scopeName": "my-privatelinkscope", "PrivateLinkScopeTags": { "tags": { "Tag1": "Value1", "Tag2": "Value2" } - } + }, + "api-version": "2024-11-01-preview", + "resourceGroupName": "my-resource-group", + "scopeName": "my-privatelinkscope", + "subscriptionId": "subid" }, "responses": { "200": { "body": { - "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "name": "my-privatelinkscope", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes", + "id": "/subscriptions/subid/resourceGroups/my-resource-group/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/my-privatelinkscope", "location": "westus", - "tags": { - "Tag1": "Value1", - "Tag2": "Value2" - }, "properties": { - "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", - "provisioningState": "Succeeded", - "publicNetworkAccess": "Disabled", "clusterResourceId": "/subscriptions/e9c17b5c-b7ef-4c29-aae7-9338ed5dcb43/resourceGroups/my-resource-group/providers/Microsoft.Kubernetes/ConnectedClusters/my-clusterName", "privateEndpointConnections": [ { - "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "name": "private-endpoint-connection-name", "type": "Microsoft.KubernetesConfiguration/privateLinkScopes/privateEndpointConnections", + "id": "/subscriptions/00000000-1111-2222-3333-444444444444/resourceGroups/myResourceGroup/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/myPrivateLinkScope/privateEndpointConnections/private-endpoint-connection-name", "properties": { - "provisioningState": "Succeeded", "privateEndpoint": { "id": "/subscriptions/55555555-6666-7777-8888-999999999999/resourceGroups/Default-Network/providers/Microsoft.Network/privateEndpoints/private-endpoint-name" }, "privateLinkServiceConnectionState": { - "status": "Approved", "description": "Auto-approved", - "actionsRequired": "None" - } + "actionsRequired": "None", + "status": "Approved" + }, + "provisioningState": "Succeeded" } } - ] + ], + "privateLinkScopeId": "e5dc51d3-92ed-4d7e-947a-775ea79b4919", + "provisioningState": "Succeeded", + "publicNetworkAccess": "Disabled" + }, + "tags": { + "Tag1": "Value1", + "Tag2": "Value2" } } } - } -} + }, + "operationId": "PrivateLinkScopes_UpdateTags", + "title": "PrivateLinkScopeUpdateTagsOnly" +} \ No newline at end of file diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json index c4bd807b40c9..cbb79d3ef059 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json @@ -2,20 +2,22 @@ "swagger": "2.0", "info": { "title": "MicrosoftKubernetesConfigurationClient", - "x-ms-code-generation-settings": { - "name": "MicrosoftKubernetesConfigurationClient" - }, + "version": "2024-11-01-preview", "description": "Azure Arc K8s Clusters API reference for Private Link's Scopes management.", - "version": "2024-11-01-preview" + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] }, - "host": "management.azure.com", "schemes": [ "https" ], - "consumes": [ + "host": "management.azure.com", + "produces": [ "application/json" ], - "produces": [ + "consumes": [ "application/json" ], "security": [ @@ -28,19 +30,33 @@ "securityDefinitions": { "azure_auth": { "type": "oauth2", - "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "description": "Azure Active Directory OAuth2 Flow.", "flow": "implicit", - "description": "Azure Active Directory OAuth2 Flow", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", "scopes": { "user_impersonation": "impersonate your user account" } } }, + "tags": [ + { + "name": "KubernetesConfigurationPrivateLinkScopes" + }, + { + "name": "PrivateLinkResources" + }, + { + "name": "PrivateEndpointConnections" + } + ], "paths": { "/subscriptions/{subscriptionId}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes": { "get": { - "description": "Gets a list of all Azure Arc PrivateLinkScopes within a subscription.", "operationId": "PrivateLinkScopes_List", + "tags": [ + "KubernetesConfigurationPrivateLinkScopes" + ], + "description": "Gets a list of all Azure Arc PrivateLinkScopes within a subscription.", "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" @@ -51,15 +67,15 @@ ], "responses": { "200": { - "description": "A list containing 0 or more Azure Arc PrivateLinkScope definitions.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/KubernetesConfigurationPrivateLinkScopeListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -75,30 +91,33 @@ }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes": { "get": { - "description": "Gets a list of Azure Arc PrivateLinkScopes within a resource group.", "operationId": "PrivateLinkScopes_ListByResourceGroup", + "tags": [ + "KubernetesConfigurationPrivateLinkScopes" + ], + "description": "Gets a list of Azure Arc PrivateLinkScopes within a resource group.", "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" } ], "responses": { "200": { - "description": "A list containing 0 or more Azure Arc PrivateLinkScope definitions.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/KubernetesConfigurationPrivateLinkScopeListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -113,71 +132,41 @@ } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/{scopeName}": { - "delete": { - "description": "Deletes a Azure Arc PrivateLinkScope.", - "operationId": "PrivateLinkScopes_Delete", + "get": { + "operationId": "PrivateLinkScopes_Get", + "tags": [ + "KubernetesConfigurationPrivateLinkScopes" + ], + "description": "Returns a Azure Arc PrivateLinkScope.", "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, - { - "$ref": "#/parameters/PrivateLinkScopeName" - } - ], - "responses": { - "200": { - "description": "Successful request when deleting an Azure Arc PrivateLinkScope." - }, - "204": { - "description": "The specified PrivateLinkScope does not exist." - }, - "default": { - "description": "Error response describing why the operation failed.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" - } - } - }, - "x-ms-examples": { - "PrivateLinkScopesDelete": { - "$ref": "./examples/PrivateLinkScopesDelete.json" - } - } - }, - "get": { - "description": "Returns a Azure Arc PrivateLinkScope.", - "operationId": "PrivateLinkScopes_Get", - "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "#/parameters/PrivateLinkScopeName" + "name": "scopeName", + "in": "path", + "description": "The name of the Azure Arc PrivateLinkScope resource.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "Azure Arc PrivateLinkScope definition.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/KubernetesConfigurationPrivateLinkScope" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -188,12 +177,12 @@ } }, "put": { - "description": "Creates (or updates) a Azure Arc PrivateLinkScope. Note: You cannot specify a different value for InstrumentationKey nor AppId in the Put operation.", "operationId": "PrivateLinkScopes_CreateOrUpdate", + "tags": [ + "KubernetesConfigurationPrivateLinkScopes" + ], + "description": "Creates (or updates) a Azure Arc PrivateLinkScope. Note: You cannot specify a different value for InstrumentationKey nor AppId in the Put operation.", "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, @@ -201,12 +190,19 @@ "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/PrivateLinkScopeName" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "scopeName", + "in": "path", + "description": "The name of the Azure Arc PrivateLinkScope resource.", + "required": true, + "type": "string" }, { "name": "parameters", - "description": "Properties that need to be specified to create or update a Azure Arc for Servers and Clusters PrivateLinkScope.", "in": "body", + "description": "Properties that need to be specified to create or update a Azure Arc for Servers and Clusters PrivateLinkScope.", "required": true, "schema": { "$ref": "#/definitions/KubernetesConfigurationPrivateLinkScope" @@ -215,21 +211,21 @@ ], "responses": { "200": { - "description": "Successful request when creating or updating a Azure Arc PrivateLinkScope. The updated PrivateLinkScope is returned.", + "description": "Resource 'KubernetesConfigurationPrivateLinkScope' update operation succeeded", "schema": { "$ref": "#/definitions/KubernetesConfigurationPrivateLinkScope" } }, "201": { - "description": "Successful request when creating or updating a Azure Arc PrivateLinkScope. The updated PrivateLinkScope was created and is returned.", + "description": "Resource 'KubernetesConfigurationPrivateLinkScope' create operation succeeded", "schema": { "$ref": "#/definitions/KubernetesConfigurationPrivateLinkScope" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -243,12 +239,12 @@ } }, "patch": { - "description": "Updates an existing PrivateLinkScope's tags. To update other fields use the CreateOrUpdate method.", "operationId": "PrivateLinkScopes_UpdateTags", + "tags": [ + "KubernetesConfigurationPrivateLinkScopes" + ], + "description": "Updates an existing PrivateLinkScope's tags. To update other fields use the CreateOrUpdate method.", "parameters": [ - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" - }, { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, @@ -256,12 +252,19 @@ "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/PrivateLinkScopeName" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "scopeName", + "in": "path", + "description": "The name of the Azure Arc PrivateLinkScope resource.", + "required": true, + "type": "string" }, { "name": "PrivateLinkScopeTags", - "description": "Updated tag information to set into the PrivateLinkScope instance.", "in": "body", + "description": "Updated tag information to set into the PrivateLinkScope instance.", "required": true, "schema": { "$ref": "#/definitions/TagsResource" @@ -270,15 +273,15 @@ ], "responses": { "200": { - "description": "Updating the Azure Arc PrivateLinkScope's tags was successful. PrivateLinkScope tags are updated and returned with the rest of the PrivateLinkScope's object properties.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "#/definitions/KubernetesConfigurationPrivateLinkScope" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -287,114 +290,121 @@ "$ref": "./examples/PrivateLinkScopesUpdateTagsOnly.json" } } - } - }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/{scopeName}/privateLinkResources": { - "get": { + }, + "delete": { + "operationId": "PrivateLinkScopes_Delete", "tags": [ - "PrivateLinkResources" + "KubernetesConfigurationPrivateLinkScopes" ], - "description": "Gets the private link resources that need to be created for a Azure Monitor PrivateLinkScope.", - "operationId": "PrivateLinkResources_ListByPrivateLinkScope", + "description": "Deletes a Azure Arc PrivateLinkScope.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/PrivateLinkScopeName" + "name": "scopeName", + "in": "path", + "description": "The name of the Azure Arc PrivateLinkScope resource.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "Successfully retrieved private link resources.", - "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateLinkResourceListResult" - } + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Gets private endpoint connection.": { - "$ref": "./examples/PrivateLinkScopePrivateLinkResourceListGet.json" + "PrivateLinkScopesDelete": { + "$ref": "./examples/PrivateLinkScopesDelete.json" } } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/{scopeName}/privateLinkResources/{groupName}": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/{scopeName}/privateEndpointConnections": { "get": { + "operationId": "PrivateEndpointConnections_ListByPrivateLinkScope", "tags": [ - "PrivateLinkResources" + "PrivateEndpointConnections" ], - "description": "Gets the private link resources that need to be created for a Azure Monitor PrivateLinkScope.", - "operationId": "PrivateLinkResources_Get", + "description": "Gets all private endpoint connections on a private link scope.", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "#/parameters/PrivateLinkScopeName" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/GroupNameParameter" + "name": "scopeName", + "in": "path", + "description": "The name of the Azure Arc PrivateLinkScope resource.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "Successfully retrieved a specified private link resource.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateLinkResource" + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnectionListResult" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Gets private endpoint connection.": { - "$ref": "./examples/PrivateLinkScopePrivateLinkResourceGet.json" + "Gets list of private endpoint connections on a private link scope.": { + "$ref": "./examples/PrivateEndpointConnectionList.json" } } } }, "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/{scopeName}/privateEndpointConnections/{privateEndpointConnectionName}": { "get": { + "operationId": "PrivateEndpointConnections_Get", "tags": [ "PrivateEndpointConnections" ], "description": "Gets a private endpoint connection.", - "operationId": "PrivateEndpointConnections_Get", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/PrivateLinkScopeName" + "name": "scopeName", + "in": "path", + "description": "The name of the Azure Arc PrivateLinkScope resource.", + "required": true, + "type": "string" }, { "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/parameters/PrivateEndpointConnectionName" @@ -402,15 +412,15 @@ ], "responses": { "200": { - "description": "Successfully retrieved a specified private endpoint connection.", + "description": "Azure operation completed successfully.", "schema": { "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -421,23 +431,27 @@ } }, "put": { + "operationId": "PrivateEndpointConnections_CreateOrUpdate", "tags": [ "PrivateEndpointConnections" ], "description": "Approve or reject a private endpoint connection with a given name.", - "operationId": "PrivateEndpointConnections_CreateOrUpdate", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/PrivateLinkScopeName" + "name": "scopeName", + "in": "path", + "description": "The name of the Azure Arc PrivateLinkScope resource.", + "required": true, + "type": "string" }, { "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/parameters/PrivateEndpointConnectionName" @@ -445,55 +459,74 @@ { "name": "properties", "in": "body", + "description": "The private endpoint connection properties.", "required": true, "schema": { "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnection" - }, - "description": "The private endpoint connection properties." + } } ], "responses": { "200": { - "description": "Successfully approved or rejected private endpoint connection.", + "description": "Resource 'PrivateEndpointConnection' update operation succeeded", "schema": { "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnection" } }, "202": { - "description": "Accepted" + "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": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, - "x-ms-long-running-operation": true, "x-ms-examples": { "Approve or reject a private endpoint connection with a given name.": { "$ref": "./examples/PrivateEndpointConnectionUpdate.json" } - } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location", + "final-state-schema": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnection" + }, + "x-ms-long-running-operation": true }, "delete": { + "operationId": "PrivateEndpointConnections_Delete", "tags": [ "PrivateEndpointConnections" ], "description": "Deletes a private endpoint connection with a given name.", - "operationId": "PrivateEndpointConnections_Delete", "parameters": [ { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { - "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, { - "$ref": "#/parameters/PrivateLinkScopeName" + "name": "scopeName", + "in": "path", + "description": "The name of the Azure Arc PrivateLinkScope resource.", + "required": true, + "type": "string" }, { "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/parameters/PrivateEndpointConnectionName" @@ -501,15 +534,15 @@ ], "responses": { "200": { - "description": "Successfully deleted private endpoint connection." + "description": "Resource deleted successfully." }, "204": { - "description": "Private endpoint connection does not exist." + "description": "Resource does not exist." }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, @@ -520,174 +553,276 @@ } } }, - "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/{scopeName}/privateEndpointConnections": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/{scopeName}/privateLinkResources": { "get": { + "operationId": "PrivateLinkResources_ListByPrivateLinkScope", "tags": [ - "PrivateEndpointConnections" + "PrivateLinkResources" ], - "description": "Gets all private endpoint connections on a private link scope.", - "operationId": "PrivateEndpointConnections_ListByPrivateLinkScope", + "description": "Gets the private link resources that need to be created for a Azure Monitor PrivateLinkScope.", "parameters": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + }, { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" }, { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" }, + { + "name": "scopeName", + "in": "path", + "description": "The name of the Azure Arc PrivateLinkScope resource.", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateLinkResourceListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Gets private endpoint connection.": { + "$ref": "./examples/PrivateLinkScopePrivateLinkResourceListGet.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/{scopeName}/privateLinkResources/{groupName}": { + "get": { + "operationId": "PrivateLinkResources_Get", + "tags": [ + "PrivateLinkResources" + ], + "description": "Gets the private link resources that need to be created for a Azure Monitor PrivateLinkScope.", + "parameters": [ { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" }, { - "$ref": "#/parameters/PrivateLinkScopeName" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "scopeName", + "in": "path", + "description": "The name of the Azure Arc PrivateLinkScope resource.", + "required": true, + "type": "string" + }, + { + "name": "groupName", + "in": "path", + "description": "The name of the private link resource.", + "required": true, + "type": "string" } ], "responses": { "200": { - "description": "Successfully retrieved private endpoint connections.", + "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnectionListResult" + "$ref": "#/definitions/PrivateLinkResource" } }, "default": { - "description": "Error response describing why the operation failed.", + "description": "An unexpected error response.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v2/types.json#/definitions/ErrorResponse" + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorResponse" } } }, "x-ms-examples": { - "Gets list of private endpoint connections on a private link scope.": { - "$ref": "./examples/PrivateEndpointConnectionList.json" + "Gets private endpoint connection.": { + "$ref": "./examples/PrivateLinkScopePrivateLinkResourceGet.json" } } } } }, "definitions": { - "TagsResource": { - "type": "object", - "properties": { - "tags": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Resource tags" - } - }, - "description": "A container holding only the Tags for a resource, allowing the user to update the tags on a PrivateLinkScope instance." - }, "KubernetesConfigurationPrivateLinkScope": { "type": "object", + "description": "An Azure Arc PrivateLinkScope definition.", "properties": { "properties": { - "description": "Properties that define a Azure Arc PrivateLinkScope resource.", - "$ref": "#/definitions/KubernetesConfigurationPrivateLinkScopeProperties" + "$ref": "#/definitions/KubernetesConfigurationPrivateLinkScopeProperties", + "description": "Properties that define a Azure Arc PrivateLinkScope resource." } }, "allOf": [ { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/TrackedResource" } - ], - "description": "An Azure Arc PrivateLinkScope definition." + ] + }, + "KubernetesConfigurationPrivateLinkScopeListResult": { + "type": "object", + "description": "The response of a KubernetesConfigurationPrivateLinkScope list operation.", + "properties": { + "value": { + "type": "array", + "description": "The KubernetesConfigurationPrivateLinkScope items on this page", + "items": { + "$ref": "#/definitions/KubernetesConfigurationPrivateLinkScope" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] }, "KubernetesConfigurationPrivateLinkScopeProperties": { "type": "object", "description": "Properties that define a Azure Arc PrivateLinkScope resource.", - "required": [ - "clusterResourceId" - ], "properties": { "publicNetworkAccess": { + "type": "string", "description": "Indicates whether machines associated with the private link scope can also use public Azure Arc service endpoints.", - "$ref": "#/definitions/PublicNetworkAccessType" + "default": "Disabled", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "PublicNetworkAccessType", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled", + "description": "Allows Azure Arc agents to communicate with Azure Arc services over both public (internet) and private endpoints." + }, + { + "name": "Disabled", + "value": "Disabled", + "description": "Does not allow Azure Arc agents to communicate with Azure Arc services over public (internet) endpoints. The agents must use the private link." + } + ] + } }, "provisioningState": { + "$ref": "#/definitions/ProvisioningState", "description": "Current state of this PrivateLinkScope: whether or not is has been provisioned within the resource group it is defined. Users cannot change this value but are able to read from it. Values will include Provisioning ,Succeeded, Canceled and Failed.", - "type": "string", - "readOnly": true, - "$ref": "../../../common/2022-03-01/definitions.json#/definitions/ProvisioningStateDefinition" + "readOnly": true }, "clusterResourceId": { "type": "string", "description": "Managed Cluster ARM ID for the private link scope (Required)" }, "privateLinkScopeId": { - "readOnly": true, + "type": "string", "description": "The Guid id of the private link scope.", - "type": "string" + "readOnly": true }, "privateEndpointConnections": { - "readOnly": true, - "description": "The collection of associated Private Endpoint Connections.", "type": "array", + "description": "The collection of associated Private Endpoint Connections.", "items": { "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnection" - } + }, + "readOnly": true } - } + }, + "required": [ + "clusterResourceId" + ] }, - "KubernetesConfigurationPrivateLinkScopeListResult": { + "PrivateLinkResource": { "type": "object", - "description": "Describes the list of Azure Arc PrivateLinkScope resources.", - "required": [ - "value" - ], + "description": "A private link resource", "properties": { - "value": { - "type": "array", - "description": "List of Azure Arc PrivateLinkScope definitions.", - "items": { - "$ref": "#/definitions/KubernetesConfigurationPrivateLinkScope" - } - }, - "nextLink": { - "type": "string", - "description": "The URI to get the next set of Azure Arc PrivateLinkScope definitions if too many PrivateLinkScopes where returned in the result set." + "properties": { + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateLinkResourceProperties", + "description": "Resource properties.", + "x-ms-client-flatten": true } - } + }, + "allOf": [ + { + "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ] }, - "PublicNetworkAccessType": { + "ProvisioningState": { "type": "string", - "description": "The network access policy to determine if Azure Arc agents can use public Azure Arc service endpoints. Defaults to disabled (access to Azure Arc services only via private link).", - "default": "Disabled", + "description": "The provisioning state of the resource.", "enum": [ - "Enabled", - "Disabled" + "Succeeded", + "Failed", + "Canceled", + "Creating", + "Updating", + "Deleting" ], "x-ms-enum": { - "name": "PublicNetworkAccessType", + "name": "ProvisioningState", "modelAsString": true, "values": [ { - "value": "Enabled", - "description": "Allows Azure Arc agents to communicate with Azure Arc services over both public (internet) and private endpoints." + "name": "Succeeded", + "value": "Succeeded", + "description": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed", + "description": "Failed" }, { - "value": "Disabled", - "description": "Does not allow Azure Arc agents to communicate with Azure Arc services over public (internet) endpoints. The agents must use the private link." + "name": "Canceled", + "value": "Canceled", + "description": "Canceled" + }, + { + "name": "Creating", + "value": "Creating", + "description": "Creating" + }, + { + "name": "Updating", + "value": "Updating", + "description": "Updating" + }, + { + "name": "Deleting", + "value": "Deleting", + "description": "Deleting" } ] } - } - }, - "parameters": { - "PrivateLinkScopeName": { - "name": "scopeName", - "in": "path", - "required": true, - "type": "string", - "description": "The name of the Azure Arc PrivateLinkScope resource.", - "x-ms-parameter-location": "method" }, - "GroupNameParameter": { - "name": "groupName", - "in": "path", - "description": "The name of the private link resource.", - "required": true, - "x-ms-parameter-location": "method", - "type": "string" + "TagsResource": { + "type": "object", + "description": "A container holding only the Tags for a resource, allowing the user to update the tags on a PrivateLinkScope instance.", + "properties": { + "tags": { + "type": "object", + "description": "Resource tags", + "additionalProperties": { + "type": "string" + } + } + } } - } + }, + "parameters": {} } diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index c55d55553a98..60a9081f2013 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -3,9 +3,10 @@ emit: options: "@azure-tools/typespec-autorest": omit-unreachable-types: true - emitter-output-dir: "{project-root}/.." + emitter-output-dir: "{project-root}" azure-resource-provider-folder: "resource-manager" - output-file: "{azure-resource-provider-folder}/{service-name}/{version-status}/{version}/privateLinkScopes.json" + output-file: "{version-status}/{version}/privateLinkScopes.json" + arm-types-dir: "{project-root}/../../../../common-types/resource-management" emit-lro-options: "all" examples-dir: "{project-root}/examples" linter: From b0cd796eba6439bb8fabb4f776a045995ece1718 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Thu, 15 Jan 2026 15:20:09 +0800 Subject: [PATCH 11/66] update --- .../PrivateEndpointConnection.tsp | 8 ++-- .../privateLinkScopes/PrivateLinkResource.tsp | 5 +- .../2024-11-01-preview/privateLinkScopes.json | 46 ++++++++++++++++++- 3 files changed, 48 insertions(+), 11 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp index fc333905e9ee..c493107addd8 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp @@ -14,6 +14,7 @@ namespace Microsoft.KubernetesConfiguration; /** * The Private Endpoint Connection resource. */ +@parentResource(KubernetesConfigurationPrivateLinkScope) model PrivateEndpointConnection is PrivateEndpointConnectionResource; alias PrivateEndpointOperations = PrivateEndpoints; @@ -51,11 +52,8 @@ interface PrivateEndpointConnections { /** * Gets all private endpoint connections on a private link scope. */ - listByPrivateLinkScope is PrivateEndpointOperations.ListByParent< - KubernetesConfigurationPrivateLinkScope, - PrivateEndpointConnection, - Response = ArmResponse - >; + @action("privateEndpointConnections") + listByPrivateLinkScope is Azure.ResourceManager.Legacy.ArmListSinglePageByParent; } @@doc(PrivateEndpointConnection.properties, "Resource properties."); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateLinkResource.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateLinkResource.tsp index a5eaf41bd42e..14f6fce75912 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateLinkResource.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateLinkResource.tsp @@ -35,10 +35,7 @@ interface PrivateLinkResources { /** * Gets the private link resources that need to be created for a Azure Monitor PrivateLinkScope. */ - listByPrivateLinkScope is ArmResourceListByParent< - PrivateLinkResource, - Response = ArmResponse - >; + listByPrivateLinkScope is Azure.ResourceManager.Legacy.ArmListSinglePageByParent; } @@doc(PrivateLinkResource.name, "The name of the private link resource."); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json index cbb79d3ef059..b8c11d1ccc2e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json @@ -365,7 +365,7 @@ "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnectionListResult" + "$ref": "#/definitions/PrivateEndpointConnectionListResult" } }, "default": { @@ -582,7 +582,7 @@ "200": { "description": "Azure operation completed successfully.", "schema": { - "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateLinkResourceListResult" + "$ref": "#/definitions/PrivateLinkResourceListResult" } }, "default": { @@ -746,6 +746,27 @@ "clusterResourceId" ] }, + "PrivateEndpointConnectionListResult": { + "type": "object", + "description": "The response of a PrivateEndpointConnection list operation.", + "properties": { + "value": { + "type": "array", + "description": "The PrivateEndpointConnection items on this page", + "items": { + "$ref": "../../../../../../common-types/resource-management/v3/privatelinks.json#/definitions/PrivateEndpointConnection" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, "PrivateLinkResource": { "type": "object", "description": "A private link resource", @@ -762,6 +783,27 @@ } ] }, + "PrivateLinkResourceListResult": { + "type": "object", + "description": "The response of a PrivateLinkResource list operation.", + "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" + ] + }, "ProvisioningState": { "type": "string", "description": "The provisioning state of the resource.", From e39a26e81a2d2a76307ae999c4c1c0799b5a8eb2 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Thu, 15 Jan 2026 16:18:24 +0800 Subject: [PATCH 12/66] update tspconfig.yaml --- .../extensionTypes/tspconfig.yaml | 32 +++++++++++++++++++ .../extensions/tspconfig.yaml | 32 +++++++++++++++++++ .../fluxConfigurations/tspconfig.yaml | 32 +++++++++++++++++++ .../privateLinkScopes/tspconfig.yaml | 32 +++++++++++++++++++ 4 files changed, 128 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index 53d9058d459c..9282ad34faf7 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -1,3 +1,6 @@ +parameters: + "service-dir": + default: "sdk/extensiontypes" emit: - "@azure-tools/typespec-autorest" options: @@ -9,6 +12,35 @@ options: arm-types-dir: "{project-root}/../../../../common-types/resource-management" emit-lro-options: "all" examples-dir: "{project-root}/examples" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-kubernetesconfiguration-extensiontypes" + namespace: "azure.mgmt.kubernetesconfiguration.extensiontypes" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-extensiontypes " + namespace: "com.azure.resourcemanager.kubernetesconfiguration.extensiontypes" + service-name: "KubernetesConfigurationExtensionTypes" # human-readable service name, whitespace allowed + flavor: azure + "@azure-tools/typespec-ts": + service-dir: sdk/extensiontypes + emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-extensiontypes" + is-modular-library: true + flavor: "azure" + experimental-extensible-enums: true + package-details: + name: "@azure/arm-kubernetesconfiguration-extensiontypes" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/kubernetesconfiguration/armextensiontypes" + emitter-output-dir: "{output-dir}/{service-dir}/kubernetesconfiguration/armextensiontypes" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/kubernetesconfiguration/armextensiontypes" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml index 4b5727cf26ec..35e703a3f75a 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -1,3 +1,6 @@ +parameters: + "service-dir": + default: "sdk/extensions" emit: - "@azure-tools/typespec-autorest" options: @@ -9,6 +12,35 @@ options: arm-types-dir: "{project-root}/../../../../common-types/resource-management" emit-lro-options: "all" examples-dir: "{project-root}/examples" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-kubernetesconfiguration-extensions" + namespace: "azure.mgmt.kubernetesconfiguration.extensions" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-extensions" + namespace: "com.azure.resourcemanager.kubernetesconfiguration.extensions" + service-name: "KubernetesConfigurationExtensions" # human-readable service name, whitespace allowed + flavor: azure + "@azure-tools/typespec-ts": + service-dir: sdk/extensions + emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-extensions" + is-modular-library: true + flavor: "azure" + experimental-extensible-enums: true + package-details: + name: "@azure/arm-kubernetesconfiguration-extensions" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/kubernetesconfiguration/armextensions" + emitter-output-dir: "{output-dir}/{service-dir}/kubernetesconfiguration/armextensions" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/kubernetesconfiguration/armextensions" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index 5c36fc0c3694..337f96197f24 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -1,3 +1,6 @@ +parameters: + "service-dir": + default: "sdk/fluxconfigurations" emit: - "@azure-tools/typespec-autorest" options: @@ -9,6 +12,35 @@ options: arm-types-dir: "{project-root}/../../../../common-types/resource-management" emit-lro-options: "all" examples-dir: "{project-root}/examples" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-kubernetesconfiguration-fluxconfigurations" + namespace: "azure.mgmt.kubernetesconfiguration.fluxconfigurations" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-fluxconfigurations " + namespace: "com.azure.resourcemanager.kubernetesconfiguration.fluxconfigurations" + service-name: "KubernetesConfigurationFluxConfigurations" # human-readable service name, whitespace allowed + flavor: azure + "@azure-tools/typespec-ts": + service-dir: sdk/fluxconfigurations + emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-fluxconfigurations" + is-modular-library: true + flavor: "azure" + experimental-extensible-enums: true + package-details: + name: "@azure/arm-kubernetesconfiguration-fluxconfigurations" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/kubernetesconfiguration/armfluxconfigurations" + emitter-output-dir: "{output-dir}/{service-dir}/kubernetesconfiguration/armfluxconfigurations" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/kubernetesconfiguration/armfluxconfigurations" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 60a9081f2013..46ef77ca1907 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -1,3 +1,6 @@ +parameters: + "service-dir": + default: "sdk/privatelinkscopes" emit: - "@azure-tools/typespec-autorest" options: @@ -9,6 +12,35 @@ options: arm-types-dir: "{project-root}/../../../../common-types/resource-management" emit-lro-options: "all" examples-dir: "{project-root}/examples" + "@azure-tools/typespec-python": + emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-kubernetesconfiguration-privatelinkscopes" + namespace: "azure.mgmt.kubernetesconfiguration.privatelinkscopes" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-privatelinkscopes " + namespace: "com.azure.resourcemanager.kubernetesconfiguration.privatelinkscopes" + service-name: "KubernetesConfigurationPrivateLinkScopes" # human-readable service name, whitespace allowed + flavor: azure + "@azure-tools/typespec-ts": + service-dir: sdk/privatelinkscopes + emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-privatelinkscopes" + is-modular-library: true + flavor: "azure" + experimental-extensible-enums: true + package-details: + name: "@azure/arm-kubernetesconfiguration-privatelinkscopes" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/kubernetesconfiguration/armprivatelinkscopes" + emitter-output-dir: "{output-dir}/{service-dir}/kubernetesconfiguration/armprivatelinkscopes" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/kubernetesconfiguration/armprivatelinkscopes" + fix-const-stuttering: true + flavor: "azure" + generate-samples: true + generate-fakes: true + head-as-boolean: true + inject-spans: true linter: extends: - "@azure-tools/typespec-azure-rulesets/resource-manager" From 9366b10b35424b94e8ca97321b485cda0cd0d6cd Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 16 Jan 2026 09:08:09 +0800 Subject: [PATCH 13/66] prettier --- .../examples/2024-11-01-preview/GetExtensionType.json | 2 +- .../examples/2024-11-01-preview/GetExtensionTypeByLocation.json | 2 +- .../examples/2024-11-01-preview/GetExtensionTypeVersion.json | 2 +- .../2024-11-01-preview/GetExtensionTypeVersionByLocation.json | 2 +- .../examples/2024-11-01-preview/ListExtensionTypeVersions.json | 2 +- .../2024-11-01-preview/ListExtensionTypeVersionsByLocation.json | 2 +- .../examples/2024-11-01-preview/ListExtensionTypes.json | 2 +- .../2024-11-01-preview/ListExtensionTypesByLocation.json | 2 +- .../preview/2024-11-01-preview/examples/GetExtensionType.json | 2 +- .../2024-11-01-preview/examples/GetExtensionTypeByLocation.json | 2 +- .../2024-11-01-preview/examples/GetExtensionTypeVersion.json | 2 +- .../examples/GetExtensionTypeVersionByLocation.json | 2 +- .../2024-11-01-preview/examples/ListExtensionTypeVersions.json | 2 +- .../examples/ListExtensionTypeVersionsByLocation.json | 2 +- .../preview/2024-11-01-preview/examples/ListExtensionTypes.json | 2 +- .../examples/ListExtensionTypesByLocation.json | 2 +- .../extensions/examples/2024-11-01/CreateExtension.json | 2 +- .../extensions/examples/2024-11-01/CreateExtensionWithPlan.json | 2 +- .../extensions/examples/2024-11-01/DeleteExtension.json | 2 +- .../extensions/examples/2024-11-01/GetExtension.json | 2 +- .../examples/2024-11-01/GetExtensionAsyncOperationStatus.json | 2 +- .../extensions/examples/2024-11-01/GetExtensionWithPlan.json | 2 +- .../extensions/examples/2024-11-01/ListExtensions.json | 2 +- .../extensions/examples/2024-11-01/PatchExtension.json | 2 +- .../extensions/stable/2024-11-01/examples/CreateExtension.json | 2 +- .../stable/2024-11-01/examples/CreateExtensionWithPlan.json | 2 +- .../extensions/stable/2024-11-01/examples/DeleteExtension.json | 2 +- .../extensions/stable/2024-11-01/examples/GetExtension.json | 2 +- .../2024-11-01/examples/GetExtensionAsyncOperationStatus.json | 2 +- .../stable/2024-11-01/examples/GetExtensionWithPlan.json | 2 +- .../extensions/stable/2024-11-01/examples/ListExtensions.json | 2 +- .../extensions/stable/2024-11-01/examples/PatchExtension.json | 2 +- .../examples/2025-04-01/CreateFluxConfiguration.json | 2 +- .../examples/2025-04-01/CreateFluxConfigurationWithBucket.json | 2 +- .../2025-04-01/CreateFluxConfigurationWithOCIRepository.json | 2 +- .../2025-04-01/CreateFluxConfigurationWithProvider.json | 2 +- .../examples/2025-04-01/DeleteFluxConfiguration.json | 2 +- .../examples/2025-04-01/GetFluxConfiguration.json | 2 +- .../2025-04-01/GetFluxConfigurationAsyncOperationStatus.json | 2 +- .../examples/2025-04-01/ListFluxConfigurations.json | 2 +- .../examples/2025-04-01/PatchFluxConfiguration.json | 2 +- .../stable/2025-04-01/examples/CreateFluxConfiguration.json | 2 +- .../2025-04-01/examples/CreateFluxConfigurationWithBucket.json | 2 +- .../examples/CreateFluxConfigurationWithOCIRepository.json | 2 +- .../examples/CreateFluxConfigurationWithProvider.json | 2 +- .../stable/2025-04-01/examples/DeleteFluxConfiguration.json | 2 +- .../stable/2025-04-01/examples/GetFluxConfiguration.json | 2 +- .../examples/GetFluxConfigurationAsyncOperationStatus.json | 2 +- .../stable/2025-04-01/examples/ListFluxConfigurations.json | 2 +- .../stable/2025-04-01/examples/PatchFluxConfiguration.json | 2 +- .../examples/2025-04-01/ListAsyncOperationStatus.json | 2 +- .../operations/examples/2025-04-01/OperationsList.json | 2 +- .../stable/2025-04-01/examples/ListAsyncOperationStatus.json | 2 +- .../operations/stable/2025-04-01/examples/OperationsList.json | 2 +- .../2024-11-01-preview/PrivateEndpointConnectionDelete.json | 2 +- .../2024-11-01-preview/PrivateEndpointConnectionGet.json | 2 +- .../2024-11-01-preview/PrivateEndpointConnectionList.json | 2 +- .../2024-11-01-preview/PrivateEndpointConnectionUpdate.json | 2 +- .../PrivateLinkScopePrivateLinkResourceGet.json | 2 +- .../PrivateLinkScopePrivateLinkResourceListGet.json | 2 +- .../examples/2024-11-01-preview/PrivateLinkScopesCreate.json | 2 +- .../examples/2024-11-01-preview/PrivateLinkScopesDelete.json | 2 +- .../examples/2024-11-01-preview/PrivateLinkScopesGet.json | 2 +- .../examples/2024-11-01-preview/PrivateLinkScopesList.json | 2 +- .../PrivateLinkScopesListByResourceGroup.json | 2 +- .../examples/2024-11-01-preview/PrivateLinkScopesUpdate.json | 2 +- .../2024-11-01-preview/PrivateLinkScopesUpdateTagsOnly.json | 2 +- .../examples/PrivateEndpointConnectionDelete.json | 2 +- .../examples/PrivateEndpointConnectionGet.json | 2 +- .../examples/PrivateEndpointConnectionList.json | 2 +- .../examples/PrivateEndpointConnectionUpdate.json | 2 +- .../examples/PrivateLinkScopePrivateLinkResourceGet.json | 2 +- .../examples/PrivateLinkScopePrivateLinkResourceListGet.json | 2 +- .../2024-11-01-preview/examples/PrivateLinkScopesCreate.json | 2 +- .../2024-11-01-preview/examples/PrivateLinkScopesDelete.json | 2 +- .../2024-11-01-preview/examples/PrivateLinkScopesGet.json | 2 +- .../2024-11-01-preview/examples/PrivateLinkScopesList.json | 2 +- .../examples/PrivateLinkScopesListByResourceGroup.json | 2 +- .../2024-11-01-preview/examples/PrivateLinkScopesUpdate.json | 2 +- .../examples/PrivateLinkScopesUpdateTagsOnly.json | 2 +- 80 files changed, 80 insertions(+), 80 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionType.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionType.json index f2507c0fc1c2..7b1fc0b5d961 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionType.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionType.json @@ -47,4 +47,4 @@ }, "operationId": "ExtensionTypes_Get", "title": "Get Extension Types" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeByLocation.json index 99f1c7f67608..05b24a833806 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeByLocation.json @@ -44,4 +44,4 @@ }, "operationId": "ExtensionTypes_LocationGet", "title": "Get Extension Type" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersion.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersion.json index 03f81d53ea03..bb62bbf8430c 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersion.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersion.json @@ -72,4 +72,4 @@ }, "operationId": "ExtensionTypes_ClusterGetVersion", "title": "List Extension Type Versions" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersionByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersionByLocation.json index a6067e188e46..4bccd0c605e8 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersionByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/GetExtensionTypeVersionByLocation.json @@ -69,4 +69,4 @@ }, "operationId": "ExtensionTypes_GetVersion", "title": "List Extension Type Versions" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersions.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersions.json index 6300d9f5f56c..ced006f12409 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersions.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersions.json @@ -134,4 +134,4 @@ }, "operationId": "ExtensionTypes_ClusterListVersions", "title": "List Extension Type Versions" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersionsByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersionsByLocation.json index 261bd4b9e753..07e1e551d3a6 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersionsByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypeVersionsByLocation.json @@ -132,4 +132,4 @@ }, "operationId": "ExtensionTypes_ListVersions", "title": "List Extension Type Versions" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypes.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypes.json index b15d15686605..17c88c2a045a 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypes.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypes.json @@ -55,4 +55,4 @@ }, "operationId": "ExtensionTypes_List", "title": "Get Extension Types" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypesByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypesByLocation.json index 21b9d369042b..2aad9192e445 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypesByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/examples/2024-11-01-preview/ListExtensionTypesByLocation.json @@ -53,4 +53,4 @@ }, "operationId": "ExtensionTypes_LocationList", "title": "List Extension Types" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionType.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionType.json index f2507c0fc1c2..7b1fc0b5d961 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionType.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionType.json @@ -47,4 +47,4 @@ }, "operationId": "ExtensionTypes_Get", "title": "Get Extension Types" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeByLocation.json index 99f1c7f67608..05b24a833806 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeByLocation.json @@ -44,4 +44,4 @@ }, "operationId": "ExtensionTypes_LocationGet", "title": "Get Extension Type" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersion.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersion.json index 03f81d53ea03..bb62bbf8430c 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersion.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersion.json @@ -72,4 +72,4 @@ }, "operationId": "ExtensionTypes_ClusterGetVersion", "title": "List Extension Type Versions" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersionByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersionByLocation.json index a6067e188e46..4bccd0c605e8 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersionByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/GetExtensionTypeVersionByLocation.json @@ -69,4 +69,4 @@ }, "operationId": "ExtensionTypes_GetVersion", "title": "List Extension Type Versions" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersions.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersions.json index 6300d9f5f56c..ced006f12409 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersions.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersions.json @@ -134,4 +134,4 @@ }, "operationId": "ExtensionTypes_ClusterListVersions", "title": "List Extension Type Versions" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersionsByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersionsByLocation.json index 261bd4b9e753..07e1e551d3a6 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersionsByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypeVersionsByLocation.json @@ -132,4 +132,4 @@ }, "operationId": "ExtensionTypes_ListVersions", "title": "List Extension Type Versions" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypes.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypes.json index b15d15686605..17c88c2a045a 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypes.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypes.json @@ -55,4 +55,4 @@ }, "operationId": "ExtensionTypes_List", "title": "Get Extension Types" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypesByLocation.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypesByLocation.json index 21b9d369042b..2aad9192e445 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypesByLocation.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/examples/ListExtensionTypesByLocation.json @@ -53,4 +53,4 @@ }, "operationId": "ExtensionTypes_LocationList", "title": "List Extension Types" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtension.json index 842e0d910b42..a129db1f5f07 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtension.json @@ -110,4 +110,4 @@ }, "operationId": "Extensions_Create", "title": "Create Extension" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtensionWithPlan.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtensionWithPlan.json index f89b12875af9..c6369432a286 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtensionWithPlan.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/CreateExtensionWithPlan.json @@ -105,4 +105,4 @@ }, "operationId": "Extensions_Create", "title": "Create Extension with Plan" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/DeleteExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/DeleteExtension.json index 3ff83ebc540e..2c0a6bdfa3fb 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/DeleteExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/DeleteExtension.json @@ -21,4 +21,4 @@ }, "operationId": "Extensions_Delete", "title": "Delete Extension" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtension.json index 8ec5d7f85b12..ee6e83fe45ce 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtension.json @@ -48,4 +48,4 @@ }, "operationId": "Extensions_Get", "title": "Get Extension" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionAsyncOperationStatus.json index df58d08adbe4..bdd8f220c122 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionAsyncOperationStatus.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionAsyncOperationStatus.json @@ -23,4 +23,4 @@ }, "operationId": "OperationStatus_Get", "title": "ExtensionAsyncOperationStatus Get" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionWithPlan.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionWithPlan.json index 35748a4210f3..5a1e48ae7103 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionWithPlan.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/GetExtensionWithPlan.json @@ -53,4 +53,4 @@ }, "operationId": "Extensions_Get", "title": "Get Extension with Plan" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/ListExtensions.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/ListExtensions.json index 0f07f0b84e38..ff9f00369302 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/ListExtensions.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/ListExtensions.json @@ -116,4 +116,4 @@ }, "operationId": "Extensions_List", "title": "List Extensions" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/PatchExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/PatchExtension.json index ffe640eaae68..01b63a173b11 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/PatchExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/examples/2024-11-01/PatchExtension.json @@ -74,4 +74,4 @@ }, "operationId": "Extensions_Update", "title": "Update Extension" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtension.json index 842e0d910b42..a129db1f5f07 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtension.json @@ -110,4 +110,4 @@ }, "operationId": "Extensions_Create", "title": "Create Extension" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtensionWithPlan.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtensionWithPlan.json index f89b12875af9..c6369432a286 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtensionWithPlan.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/CreateExtensionWithPlan.json @@ -105,4 +105,4 @@ }, "operationId": "Extensions_Create", "title": "Create Extension with Plan" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/DeleteExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/DeleteExtension.json index 3ff83ebc540e..2c0a6bdfa3fb 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/DeleteExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/DeleteExtension.json @@ -21,4 +21,4 @@ }, "operationId": "Extensions_Delete", "title": "Delete Extension" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtension.json index 8ec5d7f85b12..ee6e83fe45ce 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtension.json @@ -48,4 +48,4 @@ }, "operationId": "Extensions_Get", "title": "Get Extension" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionAsyncOperationStatus.json index df58d08adbe4..bdd8f220c122 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionAsyncOperationStatus.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionAsyncOperationStatus.json @@ -23,4 +23,4 @@ }, "operationId": "OperationStatus_Get", "title": "ExtensionAsyncOperationStatus Get" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionWithPlan.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionWithPlan.json index 35748a4210f3..5a1e48ae7103 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionWithPlan.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/GetExtensionWithPlan.json @@ -53,4 +53,4 @@ }, "operationId": "Extensions_Get", "title": "Get Extension with Plan" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/ListExtensions.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/ListExtensions.json index 0f07f0b84e38..ff9f00369302 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/ListExtensions.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/ListExtensions.json @@ -116,4 +116,4 @@ }, "operationId": "Extensions_List", "title": "List Extensions" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/PatchExtension.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/PatchExtension.json index ffe640eaae68..01b63a173b11 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/PatchExtension.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/examples/PatchExtension.json @@ -74,4 +74,4 @@ }, "operationId": "Extensions_Update", "title": "Update Extension" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfiguration.json index eecf940a4afc..854f4a681b62 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfiguration.json @@ -402,4 +402,4 @@ }, "operationId": "FluxConfigurations_CreateOrUpdate", "title": "Create Flux Configuration" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithBucket.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithBucket.json index 6b1c52eced79..8bcebe9c9ee3 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithBucket.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithBucket.json @@ -302,4 +302,4 @@ }, "operationId": "FluxConfigurations_CreateOrUpdate", "title": "Create Flux Configuration with Bucket Source Kind" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithOCIRepository.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithOCIRepository.json index 0b54e141b975..8118e198e0fe 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithOCIRepository.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithOCIRepository.json @@ -303,4 +303,4 @@ }, "operationId": "FluxConfigurations_CreateOrUpdate", "title": "Create Flux Configuration with OCIRepository Source Kind" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithProvider.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithProvider.json index 07c6ee60ee3a..c34a08f834c7 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithProvider.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/CreateFluxConfigurationWithProvider.json @@ -403,4 +403,4 @@ }, "operationId": "FluxConfigurations_CreateOrUpdate", "title": "Create Flux Configuration with Git Repository Provider" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/DeleteFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/DeleteFluxConfiguration.json index 2e10e7d6666d..d20f81907ebb 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/DeleteFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/DeleteFluxConfiguration.json @@ -22,4 +22,4 @@ }, "operationId": "FluxConfigurations_Delete", "title": "Delete Flux Configuration" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfiguration.json index 01ab95f7a437..702e88f811e8 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfiguration.json @@ -173,4 +173,4 @@ }, "operationId": "FluxConfigurations_Get", "title": "Get Flux Configuration" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfigurationAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfigurationAsyncOperationStatus.json index 58f4f0ee6869..7a4cd514c841 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfigurationAsyncOperationStatus.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/GetFluxConfigurationAsyncOperationStatus.json @@ -23,4 +23,4 @@ }, "operationId": "FluxConfigOperationStatus_Get", "title": "FluxConfigurationAsyncOperationStatus Get" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/ListFluxConfigurations.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/ListFluxConfigurations.json index 3e143d29c897..db673f34a6cc 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/ListFluxConfigurations.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/ListFluxConfigurations.json @@ -213,4 +213,4 @@ }, "operationId": "FluxConfigurations_List", "title": "List Flux Configuration" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/PatchFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/PatchFluxConfiguration.json index 988e29520e3e..1508db6fe9d9 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/PatchFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/examples/2025-04-01/PatchFluxConfiguration.json @@ -263,4 +263,4 @@ }, "operationId": "FluxConfigurations_Update", "title": "Patch Flux Configuration" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfiguration.json index eecf940a4afc..854f4a681b62 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfiguration.json @@ -402,4 +402,4 @@ }, "operationId": "FluxConfigurations_CreateOrUpdate", "title": "Create Flux Configuration" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithBucket.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithBucket.json index 6b1c52eced79..8bcebe9c9ee3 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithBucket.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithBucket.json @@ -302,4 +302,4 @@ }, "operationId": "FluxConfigurations_CreateOrUpdate", "title": "Create Flux Configuration with Bucket Source Kind" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithOCIRepository.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithOCIRepository.json index 0b54e141b975..8118e198e0fe 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithOCIRepository.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithOCIRepository.json @@ -303,4 +303,4 @@ }, "operationId": "FluxConfigurations_CreateOrUpdate", "title": "Create Flux Configuration with OCIRepository Source Kind" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithProvider.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithProvider.json index 07c6ee60ee3a..c34a08f834c7 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithProvider.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/CreateFluxConfigurationWithProvider.json @@ -403,4 +403,4 @@ }, "operationId": "FluxConfigurations_CreateOrUpdate", "title": "Create Flux Configuration with Git Repository Provider" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/DeleteFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/DeleteFluxConfiguration.json index 2e10e7d6666d..d20f81907ebb 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/DeleteFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/DeleteFluxConfiguration.json @@ -22,4 +22,4 @@ }, "operationId": "FluxConfigurations_Delete", "title": "Delete Flux Configuration" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfiguration.json index 01ab95f7a437..702e88f811e8 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfiguration.json @@ -173,4 +173,4 @@ }, "operationId": "FluxConfigurations_Get", "title": "Get Flux Configuration" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfigurationAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfigurationAsyncOperationStatus.json index 58f4f0ee6869..7a4cd514c841 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfigurationAsyncOperationStatus.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/GetFluxConfigurationAsyncOperationStatus.json @@ -23,4 +23,4 @@ }, "operationId": "FluxConfigOperationStatus_Get", "title": "FluxConfigurationAsyncOperationStatus Get" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/ListFluxConfigurations.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/ListFluxConfigurations.json index 3e143d29c897..db673f34a6cc 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/ListFluxConfigurations.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/ListFluxConfigurations.json @@ -213,4 +213,4 @@ }, "operationId": "FluxConfigurations_List", "title": "List Flux Configuration" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/PatchFluxConfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/PatchFluxConfiguration.json index 988e29520e3e..1508db6fe9d9 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/PatchFluxConfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/examples/PatchFluxConfiguration.json @@ -263,4 +263,4 @@ }, "operationId": "FluxConfigurations_Update", "title": "Patch Flux Configuration" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/ListAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/ListAsyncOperationStatus.json index d387fab3158b..2aed71b9b35e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/ListAsyncOperationStatus.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/ListAsyncOperationStatus.json @@ -32,4 +32,4 @@ }, "operationId": "OperationStatus_List", "title": "AsyncOperationStatus List" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/OperationsList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/OperationsList.json index fd848d134007..45de394596d5 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/OperationsList.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/examples/2025-04-01/OperationsList.json @@ -155,4 +155,4 @@ }, "operationId": "Operations_List", "title": "BatchAccountDelete" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/ListAsyncOperationStatus.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/ListAsyncOperationStatus.json index d387fab3158b..2aed71b9b35e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/ListAsyncOperationStatus.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/ListAsyncOperationStatus.json @@ -32,4 +32,4 @@ }, "operationId": "OperationStatus_List", "title": "AsyncOperationStatus List" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/OperationsList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/OperationsList.json index fd848d134007..45de394596d5 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/OperationsList.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/examples/OperationsList.json @@ -155,4 +155,4 @@ }, "operationId": "Operations_List", "title": "BatchAccountDelete" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionDelete.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionDelete.json index 78594b44691f..d258d5cd6951 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionDelete.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionDelete.json @@ -12,4 +12,4 @@ }, "operationId": "PrivateEndpointConnections_Delete", "title": "Deletes a private endpoint connection with a given name." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionGet.json index 6af429ad7cf1..2bc03902aab2 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionGet.json @@ -28,4 +28,4 @@ }, "operationId": "PrivateEndpointConnections_Get", "title": "Gets private endpoint connection." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionList.json index 1ae46646bd59..956a923606a8 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionList.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionList.json @@ -47,4 +47,4 @@ }, "operationId": "PrivateEndpointConnections_ListByPrivateLinkScope", "title": "Gets list of private endpoint connections on a private link scope." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionUpdate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionUpdate.json index 4a8681f42b68..869b33a24868 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionUpdate.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateEndpointConnectionUpdate.json @@ -37,4 +37,4 @@ }, "operationId": "PrivateEndpointConnections_CreateOrUpdate", "title": "Approve or reject a private endpoint connection with a given name." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceGet.json index 4bceefb77dfa..0993663bca6c 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceGet.json @@ -30,4 +30,4 @@ }, "operationId": "PrivateLinkResources_Get", "title": "Gets private endpoint connection." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceListGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceListGet.json index 34e54c189421..52ed887a585e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceListGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopePrivateLinkResourceListGet.json @@ -33,4 +33,4 @@ }, "operationId": "PrivateLinkResources_ListByPrivateLinkScope", "title": "Gets private endpoint connection." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesCreate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesCreate.json index 0317f94dbf68..cf5772c6f9f7 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesCreate.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesCreate.json @@ -78,4 +78,4 @@ }, "operationId": "PrivateLinkScopes_CreateOrUpdate", "title": "PrivateLinkScopeCreate" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesDelete.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesDelete.json index 42272fff34d4..32ae38822922 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesDelete.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesDelete.json @@ -11,4 +11,4 @@ }, "operationId": "PrivateLinkScopes_Delete", "title": "PrivateLinkScopesDelete" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesGet.json index df97b940820a..b759739aa547 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesGet.json @@ -42,4 +42,4 @@ }, "operationId": "PrivateLinkScopes_Get", "title": "PrivateLinkScopeGet" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesList.json index ade9d183bba9..195d598d6d0d 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesList.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesList.json @@ -57,4 +57,4 @@ }, "operationId": "PrivateLinkScopes_List", "title": "PrivateLinkScopesList.json" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesListByResourceGroup.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesListByResourceGroup.json index 74381c419677..7209d8e58abd 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesListByResourceGroup.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesListByResourceGroup.json @@ -77,4 +77,4 @@ }, "operationId": "PrivateLinkScopes_ListByResourceGroup", "title": "PrivateLinkScopeListByResourceGroup" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdate.json index e0b894f26601..e6a55f07cbe2 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdate.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdate.json @@ -85,4 +85,4 @@ }, "operationId": "PrivateLinkScopes_CreateOrUpdate", "title": "PrivateLinkScopeUpdate" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdateTagsOnly.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdateTagsOnly.json index 106fd79bb251..42bc48e9eccc 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdateTagsOnly.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/examples/2024-11-01-preview/PrivateLinkScopesUpdateTagsOnly.json @@ -51,4 +51,4 @@ }, "operationId": "PrivateLinkScopes_UpdateTags", "title": "PrivateLinkScopeUpdateTagsOnly" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionDelete.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionDelete.json index 78594b44691f..d258d5cd6951 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionDelete.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionDelete.json @@ -12,4 +12,4 @@ }, "operationId": "PrivateEndpointConnections_Delete", "title": "Deletes a private endpoint connection with a given name." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionGet.json index 6af429ad7cf1..2bc03902aab2 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionGet.json @@ -28,4 +28,4 @@ }, "operationId": "PrivateEndpointConnections_Get", "title": "Gets private endpoint connection." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionList.json index 1ae46646bd59..956a923606a8 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionList.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionList.json @@ -47,4 +47,4 @@ }, "operationId": "PrivateEndpointConnections_ListByPrivateLinkScope", "title": "Gets list of private endpoint connections on a private link scope." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionUpdate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionUpdate.json index 4a8681f42b68..869b33a24868 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionUpdate.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateEndpointConnectionUpdate.json @@ -37,4 +37,4 @@ }, "operationId": "PrivateEndpointConnections_CreateOrUpdate", "title": "Approve or reject a private endpoint connection with a given name." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json index 4bceefb77dfa..0993663bca6c 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceGet.json @@ -30,4 +30,4 @@ }, "operationId": "PrivateLinkResources_Get", "title": "Gets private endpoint connection." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json index 34e54c189421..52ed887a585e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopePrivateLinkResourceListGet.json @@ -33,4 +33,4 @@ }, "operationId": "PrivateLinkResources_ListByPrivateLinkScope", "title": "Gets private endpoint connection." -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesCreate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesCreate.json index 0317f94dbf68..cf5772c6f9f7 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesCreate.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesCreate.json @@ -78,4 +78,4 @@ }, "operationId": "PrivateLinkScopes_CreateOrUpdate", "title": "PrivateLinkScopeCreate" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesDelete.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesDelete.json index 42272fff34d4..32ae38822922 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesDelete.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesDelete.json @@ -11,4 +11,4 @@ }, "operationId": "PrivateLinkScopes_Delete", "title": "PrivateLinkScopesDelete" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesGet.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesGet.json index df97b940820a..b759739aa547 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesGet.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesGet.json @@ -42,4 +42,4 @@ }, "operationId": "PrivateLinkScopes_Get", "title": "PrivateLinkScopeGet" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesList.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesList.json index ade9d183bba9..195d598d6d0d 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesList.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesList.json @@ -57,4 +57,4 @@ }, "operationId": "PrivateLinkScopes_List", "title": "PrivateLinkScopesList.json" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesListByResourceGroup.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesListByResourceGroup.json index 74381c419677..7209d8e58abd 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesListByResourceGroup.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesListByResourceGroup.json @@ -77,4 +77,4 @@ }, "operationId": "PrivateLinkScopes_ListByResourceGroup", "title": "PrivateLinkScopeListByResourceGroup" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdate.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdate.json index e0b894f26601..e6a55f07cbe2 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdate.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdate.json @@ -85,4 +85,4 @@ }, "operationId": "PrivateLinkScopes_CreateOrUpdate", "title": "PrivateLinkScopeUpdate" -} \ No newline at end of file +} diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdateTagsOnly.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdateTagsOnly.json index 106fd79bb251..42bc48e9eccc 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdateTagsOnly.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/examples/PrivateLinkScopesUpdateTagsOnly.json @@ -51,4 +51,4 @@ }, "operationId": "PrivateLinkScopes_UpdateTags", "title": "PrivateLinkScopeUpdateTagsOnly" -} \ No newline at end of file +} From 12b93fcad9132ad4560c5bb95e60f3fd27a41192 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 16 Jan 2026 09:20:51 +0800 Subject: [PATCH 14/66] update --- .../extensionTypes/tspconfig.yaml | 6 +++--- .../extensions/tspconfig.yaml | 6 +++--- .../fluxConfigurations/tspconfig.yaml | 6 +++--- .../privateLinkScopes/tspconfig.yaml | 6 +++--- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index 9282ad34faf7..f1cae5b7eb2c 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -32,9 +32,9 @@ options: package-details: name: "@azure/arm-kubernetesconfiguration-extensiontypes" "@azure-tools/typespec-go": - service-dir: "sdk/resourcemanager/kubernetesconfiguration/armextensiontypes" - emitter-output-dir: "{output-dir}/{service-dir}/kubernetesconfiguration/armextensiontypes" - module: "github.com/Azure/azure-sdk-for-go/{service-dir}/kubernetesconfiguration/armextensiontypes" + service-dir: "sdk/resourcemanager/armextensiontypes" + emitter-output-dir: "{output-dir}/{service-dir}/armextensiontypes" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armextensiontypes" fix-const-stuttering: true flavor: "azure" generate-samples: true diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml index 35e703a3f75a..909214e7eb70 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -32,9 +32,9 @@ options: package-details: name: "@azure/arm-kubernetesconfiguration-extensions" "@azure-tools/typespec-go": - service-dir: "sdk/resourcemanager/kubernetesconfiguration/armextensions" - emitter-output-dir: "{output-dir}/{service-dir}/kubernetesconfiguration/armextensions" - module: "github.com/Azure/azure-sdk-for-go/{service-dir}/kubernetesconfiguration/armextensions" + service-dir: "sdk/resourcemanager/extensions" + emitter-output-dir: "{output-dir}/{service-dir}/armextensions" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armextensions" fix-const-stuttering: true flavor: "azure" generate-samples: true diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index 337f96197f24..13137fa1e198 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -32,9 +32,9 @@ options: package-details: name: "@azure/arm-kubernetesconfiguration-fluxconfigurations" "@azure-tools/typespec-go": - service-dir: "sdk/resourcemanager/kubernetesconfiguration/armfluxconfigurations" - emitter-output-dir: "{output-dir}/{service-dir}/kubernetesconfiguration/armfluxconfigurations" - module: "github.com/Azure/azure-sdk-for-go/{service-dir}/kubernetesconfiguration/armfluxconfigurations" + service-dir: "sdk/resourcemanager/armfluxconfigurations" + emitter-output-dir: "{output-dir}/{service-dir}/armfluxconfigurations" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armfluxconfigurations" fix-const-stuttering: true flavor: "azure" generate-samples: true diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 46ef77ca1907..12699e3f386a 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -32,9 +32,9 @@ options: package-details: name: "@azure/arm-kubernetesconfiguration-privatelinkscopes" "@azure-tools/typespec-go": - service-dir: "sdk/resourcemanager/kubernetesconfiguration/armprivatelinkscopes" - emitter-output-dir: "{output-dir}/{service-dir}/kubernetesconfiguration/armprivatelinkscopes" - module: "github.com/Azure/azure-sdk-for-go/{service-dir}/kubernetesconfiguration/armprivatelinkscopes" + service-dir: "sdk/resourcemanager/armprivatelinkscopes" + emitter-output-dir: "{output-dir}/{service-dir}/armprivatelinkscopes" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armprivatelinkscopes" fix-const-stuttering: true flavor: "azure" generate-samples: true From 04e4ead4c00b0002f77d478b8c2a16627bb93d26 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 16 Jan 2026 09:27:16 +0800 Subject: [PATCH 15/66] update --- .../extensionTypes/tspconfig.yaml | 2 +- .../Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml | 2 +- .../fluxConfigurations/tspconfig.yaml | 2 +- .../privateLinkScopes/tspconfig.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index f1cae5b7eb2c..eab650d808ab 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -19,7 +19,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": - emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-extensiontypes " + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-extensiontypes " namespace: "com.azure.resourcemanager.kubernetesconfiguration.extensiontypes" service-name: "KubernetesConfigurationExtensionTypes" # human-readable service name, whitespace allowed flavor: azure diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml index 909214e7eb70..15153c29ee9e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -19,7 +19,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": - emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-extensions" + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-extensions" namespace: "com.azure.resourcemanager.kubernetesconfiguration.extensions" service-name: "KubernetesConfigurationExtensions" # human-readable service name, whitespace allowed flavor: azure diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index 13137fa1e198..a324d9267ada 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -19,7 +19,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": - emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-fluxconfigurations " + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-fluxconfigurations " namespace: "com.azure.resourcemanager.kubernetesconfiguration.fluxconfigurations" service-name: "KubernetesConfigurationFluxConfigurations" # human-readable service name, whitespace allowed flavor: azure diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 12699e3f386a..7d2a173fd3d4 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -19,7 +19,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": - emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-privatelinkscopes " + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-privatelinkscopes " namespace: "com.azure.resourcemanager.kubernetesconfiguration.privatelinkscopes" service-name: "KubernetesConfigurationPrivateLinkScopes" # human-readable service name, whitespace allowed flavor: azure From 412ac4ce76288b5f5633888c41d7aa1bbdc6c21f Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 16 Jan 2026 09:38:57 +0800 Subject: [PATCH 16/66] update --- .../extensionTypes/tspconfig.yaml | 2 +- .../Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml | 2 +- .../fluxConfigurations/tspconfig.yaml | 2 +- .../privateLinkScopes/tspconfig.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index eab650d808ab..2270d5aca394 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -19,7 +19,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": - emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-extensiontypes " + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-extensiontypes" namespace: "com.azure.resourcemanager.kubernetesconfiguration.extensiontypes" service-name: "KubernetesConfigurationExtensionTypes" # human-readable service name, whitespace allowed flavor: azure diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml index 15153c29ee9e..909214e7eb70 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -19,7 +19,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": - emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-extensions" + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-extensions" namespace: "com.azure.resourcemanager.kubernetesconfiguration.extensions" service-name: "KubernetesConfigurationExtensions" # human-readable service name, whitespace allowed flavor: azure diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index a324d9267ada..b131c16e9350 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -19,7 +19,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": - emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-fluxconfigurations " + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-fluxconfigurations" namespace: "com.azure.resourcemanager.kubernetesconfiguration.fluxconfigurations" service-name: "KubernetesConfigurationFluxConfigurations" # human-readable service name, whitespace allowed flavor: azure diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 7d2a173fd3d4..94e23ff5cee2 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -19,7 +19,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": - emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-privatelinkscopes " + emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-privatelinkscopes" namespace: "com.azure.resourcemanager.kubernetesconfiguration.privatelinkscopes" service-name: "KubernetesConfigurationPrivateLinkScopes" # human-readable service name, whitespace allowed flavor: azure From 8ff01508de3bc3be505e9d3b61dae955dee414e4 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 16 Jan 2026 09:45:52 +0800 Subject: [PATCH 17/66] Update models.tsp --- .../fluxConfigurations/models.tsp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp index ba9152f47b44..a86a4c785c21 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp @@ -354,11 +354,13 @@ model GitRepositoryDefinition { /** * The maximum time to attempt to reconcile the cluster git repository source with the remote. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster git repository source with the remote. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" syncIntervalInSeconds?: int64 | null = 600; /** @@ -448,11 +450,13 @@ model BucketDefinition { /** * The maximum time to attempt to reconcile the cluster bucket source with the remote. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster bucket source with the remote. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" syncIntervalInSeconds?: int64 | null = 600; /** @@ -487,11 +491,13 @@ model AzureBlobDefinition { /** * The maximum time to attempt to reconcile the cluster Azure Blob source with the remote. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster Azure Blob source with the remote. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" syncIntervalInSeconds?: int64 | null = 600; /** @@ -593,11 +599,13 @@ model OCIRepositoryDefinition { /** * The maximum time to attempt to reconcile the cluster OCI repository source with the remote. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster OCI repository source with the remote. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" syncIntervalInSeconds?: int64 | null = 600; /** @@ -771,11 +779,13 @@ model KustomizationDefinition { /** * The maximum time to attempt to reconcile the Kustomization on the cluster. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the Kustomization on the cluster. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" syncIntervalInSeconds?: int64 | null = 600; /** From 456494698cb0d5288b0919d95497ab898b3cc88b Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 16 Jan 2026 09:59:50 +0800 Subject: [PATCH 18/66] update --- .../extensionTypes/ExtensionType.tsp | 4 - .../ExtensionTypeVersionForReleaseTrain.tsp | 8 - .../extensionTypes/back-compatible.tsp | 2 +- .../extensionTypes/main.tsp | 2 +- .../extensionTypes/models.tsp | 18 +- .../extensions/Extension.tsp | 10 +- .../extensions/back-compatible.tsp | 4 +- .../extensions/models.tsp | 44 ++-- .../fluxConfigurations/FluxConfiguration.tsp | 8 +- .../fluxConfigurations/back-compatible.tsp | 4 +- .../fluxConfigurations/models.tsp | 246 +++++++++--------- .../operations/models.tsp | 4 +- .../operations/routes.tsp | 6 +- ...ubernetesConfigurationPrivateLinkScope.tsp | 12 - .../PrivateEndpointConnection.tsp | 2 +- .../privateLinkScopes/back-compatible.tsp | 4 +- .../privateLinkScopes/models.tsp | 2 +- 17 files changed, 175 insertions(+), 205 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp index 89ad30426c2d..b5cfdc31a33d 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp @@ -139,15 +139,11 @@ interface ExtensionTypeOperationGroup { /** * Get an Extension Type installable to the cluster based region and type for the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("ExtensionTypes_Get") get is ExtensionTypeOperationGroupOps.Read; /** * List installable Extension Types for the cluster based region and type for the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("ExtensionTypes_List") list is ExtensionTypeOperationGroupOps.List< ExtensionType, Parameters = { diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp index 8bd1e0bf5709..35607a218caa 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp @@ -61,15 +61,11 @@ interface ExtensionTypeVersionForReleaseTrains { /** * Get details of a version for an extension type and location */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("ExtensionTypes_GetVersion") getVersion is ExtensionTypeVersionForReleaseTrainOps.Read; /** * List the versions for an extension type and location. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("ExtensionTypes_ListVersions") listVersions is ExtensionTypeVersionForReleaseTrainOps.List< ExtensionTypeVersionForReleaseTrain, Parameters = { @@ -151,15 +147,11 @@ interface ExtensionTypeVersionForReleaseTrainOperationGroup { /** * Get details of a version for an Extension Type installable to the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("ExtensionTypes_ClusterGetVersion") clusterGetVersion is ExtensionTypeVersionForReleaseTrainOperationGroupOps.Read; /** * List the version for an Extension Type installable to the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("ExtensionTypes_ClusterListVersions") clusterListVersions is ExtensionTypeVersionForReleaseTrainOperationGroupOps.List< ExtensionTypeVersionForReleaseTrain, Parameters = { diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp index 54fa81c6baa5..29729b2d0926 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp @@ -3,7 +3,7 @@ import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; using Microsoft.KubernetesConfiguration; -#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @@Legacy.flattenProperty(ClusterScopeSettings.properties); @@clientLocation(ExtensionTypeOperationGroup.get, ExtensionTypes); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp index 95cc38b86fb6..85024b1aba3a 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/main.tsp @@ -25,7 +25,7 @@ using TypeSpec.Versioning; /** * Use these APIs to view extension type resources through ARM, for Kubernetes Clusters. */ -#suppress "@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @armProviderNamespace @service(#{ title: "ExtensionTypesClient" }) @versioned(Versions) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp index 52ce9396a08a..c9fcb4c2487e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/models.tsp @@ -15,8 +15,8 @@ namespace Microsoft.KubernetesConfiguration; */ model ExtensionTypesList is Azure.Core.Page; -#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" -#suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ExtensionTypeProperties { /** * Is this Extension Type a system extension. @@ -92,7 +92,7 @@ model ExtensionTypePropertiesSupportedScopes { /** * Extension scope settings */ -#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-core/composition-over-inheritance" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ClusterScopeSettings extends Azure.ResourceManager.CommonTypes.ProxyResource { /** @@ -122,8 +122,8 @@ model ClusterScopeSettingsProperties { model ExtensionTypeVersionsList is Azure.Core.Page; -#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "For backward compatibility" -#suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" model ExtensionTypeVersionForReleaseTrainProperties { /** * The version number for the extension type @@ -145,19 +145,19 @@ model ExtensionTypeVersionForReleaseTrainProperties { * The list of supported Kubernetes cluster versions for this extension type */ model ExtensionTypeVersionForReleaseTrainPropertiesUnsupportedKubernetesVersions { - #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) connectedCluster?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; - #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) appliances?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; - #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) provisionedCluster?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; - #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @identifiers(#[]) managedCluster?: ExtensionTypeVersionUnsupportedKubernetesMatrixItem[]; } diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp index a190e667fc63..afa626592db3 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp @@ -24,7 +24,7 @@ model Extension is Azure.ResourceManager.ProxyResource { /** * Identity of the Extension resource */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" identity?: Azure.ResourceManager.CommonTypes.Identity; ...Azure.ResourceManager.ResourcePlanProperty; @@ -130,7 +130,7 @@ interface Extensions { * Patch an existing Kubernetes Cluster Extension. */ #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" - #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @patch(#{ implicitOptionality: false }) update is ExtensionOps.CustomPatchAsync< Extension, @@ -146,8 +146,8 @@ interface Extensions { /** * Delete a Kubernetes Cluster Extension. This will cause the Agent to Uninstall the extension from the cluster. */ - #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" delete is ExtensionOps.DeleteWithoutOkAsync< Extension, Parameters = { @@ -169,8 +169,6 @@ interface Extensions { /** * Get Async Operation status */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("OperationStatus_Get") @get @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensions/{extensionName}/operations/{operationId}") operationStatusGet is ExtensionBuildingOps.ActionSync< diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/back-compatible.tsp index 8e03903b24fe..7c8af0780921 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/back-compatible.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/back-compatible.tsp @@ -3,12 +3,12 @@ import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; using Microsoft.KubernetesConfiguration; -#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @@Legacy.flattenProperty(PatchExtension.properties); @@clientName(Extensions.create::parameters.resource, "extension"); @@clientName(Extensions.update::parameters.properties, "patchExtension"); @@clientLocation(Extensions.operationStatusGet, "OperationStatus"); @@clientName(Extensions.operationStatusGet, "Get"); -#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @@Legacy.flattenProperty(Extension.properties); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp index 3ad37efbcfb5..7f7803a1febc 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp @@ -99,7 +99,7 @@ union CreatedByType { /** * The identity type. */ -#suppress "@azure-tools/typespec-azure-core/no-enum" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-core/no-enum" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" enum AKSIdentityType { /** * SystemAssigned @@ -134,7 +134,7 @@ model ExtensionProperties { /** * User-specified version of the extension for this extension to 'pin'. To use 'version', autoUpgradeMinorVersion must be 'false'. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" version?: string | null; /** @@ -145,21 +145,21 @@ model ExtensionProperties { /** * Configuration settings, as name-value pairs for configuring this extension. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" configurationSettings?: Record | null; /** * Configuration settings that are sensitive, as name-value pairs for configuring this extension. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" configurationProtectedSettings?: Record | null; /** * Currently installed version of the extension. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) currentVersion?: string | null; @@ -178,29 +178,29 @@ model ExtensionProperties { /** * Error information from the Agent - e.g. errors during installation. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) errorInfo?: Azure.ResourceManager.CommonTypes.ErrorDetail | null; /** * Custom Location settings properties. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) customLocationSettings?: Record | null; /** * Uri of the Helm package */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) packageUri?: string | null; /** * Identity of the Extension resource in an AKS cluster */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" aksAssignedIdentity?: ExtensionPropertiesAksAssignedIdentity | null; /** @@ -217,13 +217,13 @@ model Scope { /** * Specifies that the scope of the extension is Cluster */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" cluster?: ScopeCluster | null; /** * Specifies that the scope of the extension is Namespace */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" `namespace`?: ScopeNamespace | null; } @@ -326,21 +326,21 @@ model PatchExtensionProperties { /** * Version of the extension for this extension, if it is 'pinned' to a specific version. autoUpgradeMinorVersion must be 'false'. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" version?: string | null; /** * Configuration settings, as name-value pairs for configuring this extension. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" configurationSettings?: Record | null; /** * Configuration settings that are sensitive, as name-value pairs for configuring this extension. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret configurationProtectedSettings?: Record | null; } @@ -372,14 +372,14 @@ model OperationStatusResult { /** * Additional information, if available. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" properties?: Record | null; /** * If present, details of the operation error. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) error?: Azure.ResourceManager.CommonTypes.ErrorDetail | null; } diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp index 52680cff56f5..0ffd4ad0ae93 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp @@ -123,7 +123,7 @@ interface FluxConfigurations { * Update an existing Kubernetes Flux Configuration. */ #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" - #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @patch(#{ implicitOptionality: false }) update is FluxConfigurationOperationGroupOps.CustomPatchAsync< FluxConfiguration, @@ -138,8 +138,8 @@ interface FluxConfigurations { /** * This will delete the YAML file used to set up the Flux Configuration, thus stopping future sync from the source repo. */ - #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" delete is FluxConfigurationOperationGroupOps.DeleteWithoutOkAsync< FluxConfiguration, Parameters = { @@ -164,8 +164,6 @@ interface FluxConfigurations { /** * Get Async Operation status */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("FluxConfigOperationStatus_Get") @get @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/{fluxConfigurationName}/operations/{operationId}") fluxConfigOperationStatusGet is FluxConfigurationsBuildingOps.ActionSync< diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp index 30df81575888..bfc1331d9e15 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp @@ -3,7 +3,7 @@ import "@azure-tools/typespec-client-generator-core"; using Azure.ClientGenerator.Core; using Microsoft.KubernetesConfiguration; -#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @@Legacy.flattenProperty(FluxConfigurationPatch.properties); @@clientName(FluxConfigurations.createOrUpdate::parameters.resource, @@ -16,5 +16,5 @@ using Microsoft.KubernetesConfiguration; "FluxConfigOperationStatus" ); @@clientName(FluxConfigurations.fluxConfigOperationStatusGet, "Get"); -#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @@Legacy.flattenProperty(FluxConfiguration.properties); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp index a86a4c785c21..7e541a2b340e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp @@ -260,15 +260,15 @@ model FluxConfigurationProperties { /** * Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" kustomizations?: Record | null; /** * Key-value pairs of protected configuration settings for the configuration */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret configurationProtectedSettings?: Record | null; @@ -282,21 +282,21 @@ model FluxConfigurationProperties { /** * Public Key associated with this fluxConfiguration (either generated within the cluster or provided by the user). */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) repositoryPublicKey?: string | null; /** * Branch and/or SHA of the source commit synced with the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) sourceSyncedCommitId?: string | null; /** * Datetime the fluxConfiguration synced its source on the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. @visibility(Lifecycle.Read) sourceUpdatedAt?: utcDateTime | null; @@ -304,7 +304,7 @@ model FluxConfigurationProperties { /** * Datetime the fluxConfiguration synced its status on the cluster with Azure. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. @visibility(Lifecycle.Read) statusUpdatedAt?: utcDateTime | null; @@ -312,13 +312,13 @@ model FluxConfigurationProperties { /** * Whether flux configuration deployment should wait for cluster to reconcile the kustomizations. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" waitForReconciliation?: boolean | null; /** * Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" reconciliationWaitDuration?: string | null; /** @@ -336,7 +336,7 @@ model FluxConfigurationProperties { /** * Error message returned to the user in the case of provisioning failure. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) errorMessage?: string | null; } @@ -348,19 +348,19 @@ model GitRepositoryDefinition { /** * The URL to sync for the flux configuration git repository. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" url?: string | null; /** * The maximum time to attempt to reconcile the cluster git repository source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster git repository source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" syncIntervalInSeconds?: int64 | null = 600; /** @@ -371,26 +371,26 @@ model GitRepositoryDefinition { /** * Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" sshKnownHosts?: string | null; /** * Plaintext HTTPS username used to access private git repositories over HTTPS */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" httpsUser?: string | null; /** * Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" httpsCACert?: string | null; /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" localAuthRef?: string | null; /** @@ -406,25 +406,25 @@ model RepositoryRefDefinition { /** * The git repository branch name to checkout. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" branch?: string | null; /** * The git repository tag name to checkout. This takes precedence over branch. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" tag?: string | null; /** * The semver range used to match against git repository tags. This takes precedence over tag. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" semver?: string | null; /** * The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence over semver. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" commit?: string | null; } @@ -450,25 +450,25 @@ model BucketDefinition { /** * The maximum time to attempt to reconcile the cluster bucket source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster bucket source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" syncIntervalInSeconds?: int64 | null = 600; /** * Plaintext access key used to securely access the S3 bucket */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" accessKey?: string | null; /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" localAuthRef?: string | null; } @@ -479,25 +479,25 @@ model AzureBlobDefinition { /** * The URL to sync for the flux configuration Azure Blob storage account. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" url?: string | null; /** * The Azure Blob container name to sync from the url endpoint for the flux configuration. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" containerName?: string | null; /** * The maximum time to attempt to reconcile the cluster Azure Blob source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster Azure Blob source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" syncIntervalInSeconds?: int64 | null = 600; /** @@ -508,14 +508,14 @@ model AzureBlobDefinition { /** * The account key (shared key) to access the storage account */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret accountKey?: string | null; /** * The Shared Access token to access the storage container */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret sasToken?: string | null; @@ -527,7 +527,7 @@ model AzureBlobDefinition { /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" localAuthRef?: string | null; } @@ -538,33 +538,33 @@ model ServicePrincipalDefinition { /** * The client Id for authenticating a Service Principal. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" clientId?: string | null; /** * The tenant Id for authenticating a Service Principal */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" tenantId?: string | null; /** * The client secret for authenticating a Service Principal */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret clientSecret?: string | null; /** * Base64-encoded certificate used to authenticate a Service Principal */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret clientCertificate?: string | null; /** * The password for the certificate used to authenticate a Service Principal */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret clientCertificatePassword?: string | null; @@ -581,7 +581,7 @@ model ManagedIdentityDefinition { /** * The client Id for authenticating a Managed Identity. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" clientId?: string | null; } @@ -593,19 +593,19 @@ model OCIRepositoryDefinition { /** * The URL to sync for the flux configuration OCI repository. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" url?: url | null; /** * The maximum time to attempt to reconcile the cluster OCI repository source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the cluster OCI repository source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" syncIntervalInSeconds?: int64 | null = 600; /** @@ -636,7 +636,7 @@ model OCIRepositoryDefinition { /** * The service account name to authenticate with the OCI repository. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" serviceAccountName?: string | null; /** @@ -647,7 +647,7 @@ model OCIRepositoryDefinition { /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" localAuthRef?: string | null; } @@ -659,19 +659,19 @@ model OCIRepositoryRefDefinition { /** * The OCI repository image tag name to pull. This defaults to 'latest'. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" tag?: string | null; /** * The semver range used to match against OCI repository tags. This takes precedence over tag. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" semver?: string | null; /** * The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" digest?: string | null; } @@ -682,13 +682,13 @@ model LayerSelectorDefinition { /** * The first layer matching the specified media type will be used. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" mediaType?: string | null; /** * The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" operation?: OperationType | null; } @@ -704,7 +704,7 @@ model VerifyDefinition { /** * An object containing trusted public keys of trusted authors. */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" verificationConfig?: Record; /** @@ -736,21 +736,21 @@ model TlsConfigDefinition { /** * Base64-encoded certificate used to authenticate a client with the OCI repository. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret clientCertificate?: string | null; /** * Base64-encoded private key used to authenticate a client with the OCI repository. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret privateKey?: string | null; /** * Base64-encoded CA certificate used to verify the server. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret caCertificate?: string | null; } @@ -773,25 +773,25 @@ model KustomizationDefinition { /** * Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dependsOn?: string[] | null; /** * The maximum time to attempt to reconcile the Kustomization on the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" timeoutInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the Kustomization on the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" syncIntervalInSeconds?: int64 | null = 600; /** * The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" retryIntervalInSeconds?: int64 | null; /** @@ -812,7 +812,7 @@ model KustomizationDefinition { /** * Used for variable substitution for this Kustomization after kustomize build. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" postBuild?: PostBuildDefinition | null; } @@ -823,8 +823,8 @@ model PostBuildDefinition { /** * Key/value pairs holding the variables to be substituted in this Kustomization. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" substitute?: Record | null; /** @@ -881,7 +881,7 @@ model ObjectStatusDefinition { /** * Object reference to the Kustomization that applied this object */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" appliedBy?: ObjectReferenceDefinition | null; /** @@ -949,7 +949,7 @@ model HelmReleasePropertiesDefinition { /** * The revision number of the last released object change */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" lastRevisionApplied?: int64 | null; /** @@ -960,19 +960,19 @@ model HelmReleasePropertiesDefinition { /** * Total number of times that the HelmRelease failed to install or upgrade */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" failureCount?: int64 | null; /** * Number of times that the HelmRelease failed to install */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" installFailureCount?: int64 | null; /** * Number of times that the HelmRelease failed to upgrade */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" upgradeFailureCount?: int64 | null; } @@ -1023,13 +1023,13 @@ model FluxConfigurationPatchProperties { /** * Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster. */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" kustomizations?: Record; /** * Key-value pairs of protected configuration settings for the configuration */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" configurationProtectedSettings?: Record; } @@ -1040,19 +1040,19 @@ model GitRepositoryPatchDefinition { /** * The URL to sync for the flux configuration git repository. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" url?: string | null; /** * The maximum time to attempt to reconcile the cluster git repository source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" timeoutInSeconds?: int64 | null; /** * The interval at which to re-reconcile the cluster git repository source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" syncIntervalInSeconds?: int64 | null; /** @@ -1063,32 +1063,32 @@ model GitRepositoryPatchDefinition { /** * Base64-encoded known_hosts value containing public SSH keys required to access private git repositories over SSH */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" sshKnownHosts?: string | null; /** * Plaintext HTTPS username used to access private git repositories over HTTPS */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" httpsUser?: string | null; /** * Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS */ #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" httpsCACert?: string | null; /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" localAuthRef?: string | null; /** * Name of the provider used for authentication. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" provider?: ProviderType | null; } @@ -1099,43 +1099,43 @@ model BucketPatchDefinition { /** * The URL to sync for the flux configuration S3 bucket. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" url?: string | null; /** * The bucket name to sync from the url endpoint for the flux configuration. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" bucketName?: string | null; /** * Specify whether to use insecure communication when puling data from the S3 bucket. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" insecure?: boolean | null; /** * The maximum time to attempt to reconcile the cluster bucket source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" timeoutInSeconds?: int64 | null; /** * The interval at which to re-reconcile the cluster bucket source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" syncIntervalInSeconds?: int64 | null; /** * Plaintext access key used to securely access the S3 bucket */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" accessKey?: string | null; /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" localAuthRef?: string | null; } @@ -1146,25 +1146,25 @@ model AzureBlobPatchDefinition { /** * The URL to sync for the flux configuration Azure Blob storage account. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" url?: string | null; /** * The Azure Blob container name to sync from the url endpoint for the flux configuration. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" containerName?: string | null; /** * The maximum time to attempt to reconcile the cluster Azure Blob source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" timeoutInSeconds?: int64 | null; /** * The interval at which to re-reconcile the cluster Azure Blob source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" syncIntervalInSeconds?: int64 | null; /** @@ -1175,14 +1175,14 @@ model AzureBlobPatchDefinition { /** * The account key (shared key) to access the storage account */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret accountKey?: string | null; /** * The Shared Access token to access the storage container */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret sasToken?: string | null; @@ -1194,7 +1194,7 @@ model AzureBlobPatchDefinition { /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" localAuthRef?: string | null; } @@ -1205,33 +1205,33 @@ model ServicePrincipalPatchDefinition { /** * The client Id for authenticating a Service Principal. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" clientId?: string | null; /** * The tenant Id for authenticating a Service Principal */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" tenantId?: string | null; /** * The client secret for authenticating a Service Principal */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret clientSecret?: string | null; /** * Base64-encoded certificate used to authenticate a Service Principal */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret clientCertificate?: string; /** * The password for the certificate used to authenticate a Service Principal */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret clientCertificatePassword?: string | null; @@ -1248,7 +1248,7 @@ model ManagedIdentityPatchDefinition { /** * The client Id for authenticating a Managed Identity. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" clientId?: string | null; } @@ -1260,19 +1260,19 @@ model OCIRepositoryPatchDefinition { /** * The URL to sync for the flux configuration OCI repository. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" url?: url | null; /** * The maximum time to attempt to reconcile the cluster OCI repository source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" timeoutInSeconds?: int64 | null; /** * The interval at which to re-reconcile the cluster OCI repository source with the remote. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" syncIntervalInSeconds?: int64 | null; /** @@ -1293,19 +1293,19 @@ model OCIRepositoryPatchDefinition { /** * Specify whether to allow connecting to a non-TLS HTTP container registry. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" insecure?: boolean = false; /** * Specifies whether to use Workload Identity to authenticate with the OCI repository. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" useWorkloadIdentity?: boolean = false; /** * The service account name to authenticate with the OCI repository. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" serviceAccountName?: string | null; /** @@ -1316,7 +1316,7 @@ model OCIRepositoryPatchDefinition { /** * Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the managed or user-provided configuration secrets. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" localAuthRef?: string | null; } @@ -1328,19 +1328,19 @@ model OCIRepositoryRefPatchDefinition { /** * The OCI repository image tag name to pull. This defaults to 'latest'. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" tag?: string | null; /** * The semver range used to match against OCI repository tags. This takes precedence over tag. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" semver?: string | null; /** * The image digest to pull from OCI repository, the value should be in the format ‘sha256:’. This takes precedence over semver. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" digest?: string | null; } @@ -1351,13 +1351,13 @@ model LayerSelectorPatchDefinition { /** * The first layer matching the specified media type will be used. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" mediaType?: string | null; /** * The operation to be performed on the selected layer. The default value is 'extract', but it can be set to 'copy'. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" operation?: OperationType | null; } @@ -1373,7 +1373,7 @@ model VerifyPatchDefinition { /** * An object containing trusted public keys of trusted authors. */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" verificationConfig?: Record; /** @@ -1405,21 +1405,21 @@ model TlsConfigPatchDefinition { /** * Base64-encoded certificate used to authenticate a client with the OCI repository. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret clientCertificate?: string | null; /** * Base64-encoded private key used to authenticate a client with the OCI repository. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret privateKey?: string | null; /** * Base64-encoded CA certificate used to verify the server. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @secret caCertificate?: string | null; } @@ -1431,56 +1431,56 @@ model KustomizationPatchDefinition { /** * The path in the source reference to reconcile on the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" path?: string | null; /** * Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile until all dependencies have completed their reconciliation. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" dependsOn?: string[] | null; /** * The maximum time to attempt to reconcile the Kustomization on the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" timeoutInSeconds?: int64 | null; /** * The interval at which to re-reconcile the Kustomization on the cluster. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" syncIntervalInSeconds?: int64 | null; /** * The interval at which to re-reconcile the Kustomization on the cluster in the event of failure on reconciliation. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" retryIntervalInSeconds?: int64 | null; /** * Enable/disable garbage collections of Kubernetes objects created by this Kustomization. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" prune?: boolean | null; /** * Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field change. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" force?: boolean | null; /** * Enable/disable health check for all Kubernetes objects created by this Kustomization. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" wait?: boolean | null; /** * Used for variable substitution for this Kustomization after kustomize build. */ - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" postBuild?: PostBuildPatchDefinition | null; } @@ -1491,7 +1491,7 @@ model PostBuildPatchDefinition { /** * Key/value pairs holding the variables to be substituted in this Kustomization. */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" substitute?: Record; /** @@ -1548,7 +1548,7 @@ model OperationStatusResult { /** * Additional information, if available. */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" properties?: Record; /** diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp index 2b41b037fa94..a320fe4bcaef 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/models.tsp @@ -57,8 +57,8 @@ model OperationStatusResult { /** * Additional information, if available. */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" - #suppress "@azure-tools/typespec-azure-core/no-nullable" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" properties?: Record | null; /** diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp index 83be432ca72f..fec7a582c508 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp @@ -42,7 +42,7 @@ alias OperationStatusOperationGroupOps = Azure.ResourceManager.Legacy.ExtensionO clusterName: string; }, { - #suppress "@azure-tools/typespec-azure-core/documentation-required" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @path @key @segment("providers") @@ -51,13 +51,11 @@ alias OperationStatusOperationGroupOps = Azure.ResourceManager.Legacy.ExtensionO {} >; -#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "For backward compatibility" +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" interface OperationStatusOperationGroup { /** * List Async Operations, currently in progress, in a cluster */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("OperationStatus_List") @autoRoute @get @action("operations") diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp index 19692bbbcb2b..d9b1bcf755a4 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp @@ -28,22 +28,16 @@ interface KubernetesConfigurationPrivateLinkScopes { /** * Returns a Azure Arc PrivateLinkScope. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("PrivateLinkScopes_Get") get is ArmResourceRead; /** * Creates (or updates) a Azure Arc PrivateLinkScope. Note: You cannot specify a different value for InstrumentationKey nor AppId in the Put operation. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("PrivateLinkScopes_CreateOrUpdate") createOrUpdate is ArmResourceCreateOrReplaceSync; /** * Updates an existing PrivateLinkScope's tags. To update other fields use the CreateOrUpdate method. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("PrivateLinkScopes_UpdateTags") @patch(#{ implicitOptionality: false }) updateTags is ArmCustomPatchSync< KubernetesConfigurationPrivateLinkScope, @@ -53,22 +47,16 @@ interface KubernetesConfigurationPrivateLinkScopes { /** * Deletes a Azure Arc PrivateLinkScope. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("PrivateLinkScopes_Delete") delete is ArmResourceDeleteSync; /** * Gets a list of Azure Arc PrivateLinkScopes within a resource group. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("PrivateLinkScopes_ListByResourceGroup") listByResourceGroup is ArmResourceListByParent; /** * Gets a list of all Azure Arc PrivateLinkScopes within a subscription. */ - #suppress "@azure-tools/typespec-azure-core/no-openapi" "non-standard operations" - @operationId("PrivateLinkScopes_List") list is ArmListBySubscription; } diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp index c493107addd8..a531c23e91f8 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp @@ -31,7 +31,7 @@ interface PrivateEndpointConnections { /** * Approve or reject a private endpoint connection with a given name. */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" createOrUpdate is PrivateEndpointOperations.CreateOrReplaceAsync< KubernetesConfigurationPrivateLinkScope, PrivateEndpointConnection, diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp index e06db5f91071..aed5675f64c8 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp @@ -31,8 +31,8 @@ using Microsoft.KubernetesConfiguration; @@clientName(PrivateEndpointConnections.createOrUpdate::parameters.resource, "properties" ); -#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @@Legacy.flattenProperty(PrivateEndpointConnection.properties); -#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "Property flatten for SDK backward compatibility." +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @@Legacy.flattenProperty(PrivateLinkResource.properties); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/models.tsp index 8d0bf9207585..f4f81c9a1f3f 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/models.tsp @@ -130,6 +130,6 @@ model TagsResource { /** * Resource tags */ - #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "For backward compatibility" + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" tags?: Record; } From 276f44ae68f2fabbb401af62445caa142a601496 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 16 Jan 2026 10:38:09 +0800 Subject: [PATCH 19/66] update --- .../extensionTypes/back-compatible.tsp | 2 ++ .../preview/2024-11-01-preview/extensionTypes.json | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp index 29729b2d0926..c0ecf2a2c2b1 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/back-compatible.tsp @@ -21,3 +21,5 @@ using Microsoft.KubernetesConfiguration; @@clientLocation(ExtensionTypeVersionForReleaseTrainOperationGroup.clusterListVersions, ExtensionTypes ); +@@visibility(ExtensionTypeVersionsList.value, Lifecycle.Read); +@@visibility(ExtensionTypesList.value, Lifecycle.Read); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json index 760ab1976fb5..80411d636eb0 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json @@ -854,7 +854,8 @@ "description": "The ExtensionTypeVersionForReleaseTrain items on this page", "items": { "$ref": "#/definitions/ExtensionTypeVersionForReleaseTrain" - } + }, + "readOnly": true }, "nextLink": { "type": "string", @@ -875,7 +876,8 @@ "description": "The ExtensionType items on this page", "items": { "$ref": "#/definitions/ExtensionType" - } + }, + "readOnly": true }, "nextLink": { "type": "string", From 18770e7e271d039c46406a7b398b72881deb554d Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 16 Jan 2026 10:56:01 +0800 Subject: [PATCH 20/66] update --- .../fluxConfigurations/back-compatible.tsp | 1 + .../fluxConfigurations/models.tsp | 20 +++++++++++-------- .../stable/2025-04-01/fluxconfiguration.json | 17 ++++++++++------ 3 files changed, 24 insertions(+), 14 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp index bfc1331d9e15..792da50c772b 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp @@ -18,3 +18,4 @@ using Microsoft.KubernetesConfiguration; @@clientName(FluxConfigurations.fluxConfigOperationStatusGet, "Get"); #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @@Legacy.flattenProperty(FluxConfiguration.properties); +@@visibility(FluxConfigurationsList.value, Lifecycle.Read); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp index 7e541a2b340e..cdf52a4da9f7 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp @@ -396,7 +396,8 @@ model GitRepositoryDefinition { /** * Name of the provider used for authentication. */ - provider?: ProviderType; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + provider?: ProviderType | null; } /** @@ -704,14 +705,15 @@ model VerifyDefinition { /** * An object containing trusted public keys of trusted authors. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" - verificationConfig?: Record; + verificationConfig?: Record | null; /** * Array defining the criteria for matching the identity while verifying an OCI artifact. */ - @identifiers(#[]) - matchOidcIdentity?: MatchOidcIdentityDefinition[]; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + matchOidcIdentity?: MatchOidcIdentityDefinition[] | null; } /** @@ -1373,14 +1375,15 @@ model VerifyPatchDefinition { /** * An object containing trusted public keys of trusted authors. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" - verificationConfig?: Record; + verificationConfig?: Record | null; /** * Array defining the criteria for matching the OIDC identity while verifying an OCI artifact. */ - @identifiers(#[]) - matchOidcIdentity?: MatchOidcIdentityPatchDefinition[]; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + matchOidcIdentity?: MatchOidcIdentityPatchDefinition[] | null; } /** @@ -1491,8 +1494,9 @@ model PostBuildPatchDefinition { /** * Key/value pairs holding the variables to be substituted in this Kustomization. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" - substitute?: Record; + substitute?: Record | null; /** * Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization. diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json index 5cfdc6334ceb..e2d86ac68417 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json @@ -1132,7 +1132,8 @@ "description": "The FluxConfiguration items on this page", "items": { "$ref": "#/definitions/FluxConfiguration" - } + }, + "readOnly": true }, "nextLink": { "type": "string", @@ -1193,7 +1194,8 @@ }, "provider": { "$ref": "#/definitions/ProviderType", - "description": "Name of the provider used for authentication." + "description": "Name of the provider used for authentication.", + "x-nullable": true } } }, @@ -1887,6 +1889,7 @@ "substitute": { "type": "object", "description": "Key/value pairs holding the variables to be substituted in this Kustomization.", + "x-nullable": true, "additionalProperties": { "type": "string" } @@ -2250,6 +2253,7 @@ "verificationConfig": { "type": "object", "description": "An object containing trusted public keys of trusted authors.", + "x-nullable": true, "additionalProperties": { "type": "string" } @@ -2257,10 +2261,10 @@ "matchOidcIdentity": { "type": "array", "description": "Array defining the criteria for matching the identity while verifying an OCI artifact.", + "x-nullable": true, "items": { "$ref": "#/definitions/MatchOidcIdentityDefinition" - }, - "x-ms-identifiers": [] + } } } }, @@ -2275,6 +2279,7 @@ "verificationConfig": { "type": "object", "description": "An object containing trusted public keys of trusted authors.", + "x-nullable": true, "additionalProperties": { "type": "string" } @@ -2282,10 +2287,10 @@ "matchOidcIdentity": { "type": "array", "description": "Array defining the criteria for matching the OIDC identity while verifying an OCI artifact.", + "x-nullable": true, "items": { "$ref": "#/definitions/MatchOidcIdentityPatchDefinition" - }, - "x-ms-identifiers": [] + } } } } From b9b517f5940f8ba451d3031149491fd73789019f Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 16 Jan 2026 14:54:41 +0800 Subject: [PATCH 21/66] fix nullable work with identifiers https://github.com/Azure/typespec-azure/issues/2868 --- .../extensions/models.tsp | 4 ++-- .../stable/2024-11-01/extensions.json | 4 ++-- .../fluxConfigurations/models.tsp | 12 ++++++------ .../stable/2025-04-01/fluxconfiguration.json | 18 ++++++------------ 4 files changed, 16 insertions(+), 22 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp index 7f7803a1febc..86b86bf6dd58 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/models.tsp @@ -172,8 +172,8 @@ model ExtensionProperties { /** * Status from this extension. */ - @identifiers(#[]) - statuses?: ExtensionStatus[]; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + statuses?: ExtensionStatus[] | null; /** * Error information from the Agent - e.g. errors during installation. diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json index 0b54b9d6548e..bfe5a9136da4 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json @@ -690,10 +690,10 @@ "statuses": { "type": "array", "description": "Status from this extension.", + "x-nullable": true, "items": { "$ref": "#/definitions/ExtensionStatus" - }, - "x-ms-identifiers": [] + } }, "errorInfo": { "$ref": "../../../../../../common-types/resource-management/v3/types.json#/definitions/ErrorDetail", diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp index cdf52a4da9f7..91c0e61ee388 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/models.tsp @@ -275,9 +275,9 @@ model FluxConfigurationProperties { /** * Statuses of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects provisioned by the fluxConfiguration. */ + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" @visibility(Lifecycle.Read) - @identifiers(#["name", "namespace", "kind"]) - statuses?: ObjectStatusDefinition[]; + statuses?: ObjectStatusDefinition[] | null; /** * Public Key associated with this fluxConfiguration (either generated within the cluster or provided by the user). @@ -889,8 +889,8 @@ model ObjectStatusDefinition { /** * List of Kubernetes object status conditions present on the cluster */ - @identifiers(#["type"]) - statusConditions?: ObjectStatusConditionDefinition[]; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + statusConditions?: ObjectStatusConditionDefinition[] | null; /** * Additional properties that are provided from objects of the HelmRelease kind @@ -1501,8 +1501,8 @@ model PostBuildPatchDefinition { /** * Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization. */ - @identifiers(#[]) - substituteFrom?: SubstituteFromPatchDefinition[]; + #suppress "@azure-tools/typespec-azure-core/no-nullable" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + substituteFrom?: SubstituteFromPatchDefinition[] | null; } /** diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json index e2d86ac68417..a9c667393941 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json @@ -1020,15 +1020,11 @@ "statuses": { "type": "array", "description": "Statuses of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects provisioned by the fluxConfiguration.", + "x-nullable": true, "items": { "$ref": "#/definitions/ObjectStatusDefinition" }, - "readOnly": true, - "x-ms-identifiers": [ - "name", - "namespace", - "kind" - ] + "readOnly": true }, "repositoryPublicKey": { "type": "string", @@ -1790,12 +1786,10 @@ "statusConditions": { "type": "array", "description": "List of Kubernetes object status conditions present on the cluster", + "x-nullable": true, "items": { "$ref": "#/definitions/ObjectStatusConditionDefinition" - }, - "x-ms-identifiers": [ - "type" - ] + } }, "helmReleaseProperties": { "$ref": "#/definitions/HelmReleasePropertiesDefinition", @@ -1897,10 +1891,10 @@ "substituteFrom": { "type": "array", "description": "Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.", + "x-nullable": true, "items": { "$ref": "#/definitions/SubstituteFromPatchDefinition" - }, - "x-ms-identifiers": [] + } } } }, From 168bf2b1bd772ce0c2a6e26831d14c31f33de225 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 23 Jan 2026 15:17:36 +0800 Subject: [PATCH 22/66] Update suppressions.yaml --- .../suppressions.yaml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/suppressions.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/suppressions.yaml index 771e1e1b619d..7ea6e0c50cca 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/suppressions.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/suppressions.yaml @@ -20,4 +20,17 @@ - tool: TypeSpecRequirement path: ./operations/stable/2024-11-01/**/*.json - reason: Brownfield service not ready to migrate \ No newline at end of file + reason: Brownfield service not ready to migrate + +- tool: TypeSpecValidation + reason: `operations` has no sdk generation then tspconfig.yaml does not have language emitter settings, so typespec validation would fail. + rules: [SdkTspConfigValidation] + sub-rules: + - options.@azure-tools/typespec-java.* + - options.@azure-tools/typespec-python.* + - options.@azure-tools/typespec-ts.* + - options.@azure-tools/typespec-go.* + - options.@azure-typespec/http-client-csharp.* + - parameters.service-dir.default + paths: + - ./operations/**/tspconfig.yaml From 13ef5345f27d509d02b67cbeb0cfe605c0dc54f3 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Fri, 23 Jan 2026 15:30:51 +0800 Subject: [PATCH 23/66] Update suppressions.yaml --- .../Microsoft.KubernetesConfiguration/suppressions.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/suppressions.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/suppressions.yaml index 7ea6e0c50cca..4a035f87a2fe 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/suppressions.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/suppressions.yaml @@ -23,7 +23,7 @@ reason: Brownfield service not ready to migrate - tool: TypeSpecValidation - reason: `operations` has no sdk generation then tspconfig.yaml does not have language emitter settings, so typespec validation would fail. + reason: operations has no sdk generation then tspconfig.yaml does not have language emitter settings, so typespec validation would fail. rules: [SdkTspConfigValidation] sub-rules: - options.@azure-tools/typespec-java.* From f106d9c667f470a8b7d6f4e06f80b72e5d0a4ff0 Mon Sep 17 00:00:00 2001 From: ChenxiJiang333 Date: Mon, 26 Jan 2026 14:51:56 +0800 Subject: [PATCH 24/66] python tsp config --- .../extensionTypes/client.tsp | 9 +++++++++ .../extensionTypes/tspconfig.yaml | 1 + .../extensions/client.tsp | 9 +++++++++ .../extensions/tspconfig.yaml | 1 + .../fluxConfigurations/client.tsp | 9 +++++++++ .../fluxConfigurations/tspconfig.yaml | 1 + .../privateLinkScopes/client.tsp | 13 +++++++++++++ .../privateLinkScopes/tspconfig.yaml | 1 + 8 files changed, 44 insertions(+) create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp create mode 100644 specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp new file mode 100644 index 000000000000..3ab6ca9fe287 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp @@ -0,0 +1,9 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@@clientName(Microsoft.KubernetesConfiguration, + "KubernetesConfigurationExtensionTypesMgmtClient", + "python" +); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index 2270d5aca394..80e31db28b29 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -13,6 +13,7 @@ options: emit-lro-options: "all" examples-dir: "{project-root}/examples" "@azure-tools/typespec-python": + service-dir: "sdk/kubernetesconfiguration" emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-kubernetesconfiguration-extensiontypes" namespace: "azure.mgmt.kubernetesconfiguration.extensiontypes" generate-test: true diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp new file mode 100644 index 000000000000..3236bcf46f37 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp @@ -0,0 +1,9 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@@clientName(Microsoft.KubernetesConfiguration, + "KubernetesConfigurationExtensionsMgmtClient", + "python" +); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml index 909214e7eb70..49a7962020de 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -13,6 +13,7 @@ options: emit-lro-options: "all" examples-dir: "{project-root}/examples" "@azure-tools/typespec-python": + service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-kubernetesconfiguration-extensions" namespace: "azure.mgmt.kubernetesconfiguration.extensions" generate-test: true diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp new file mode 100644 index 000000000000..fb1bda9fab3a --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp @@ -0,0 +1,9 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@@clientName(Microsoft.KubernetesConfiguration, + "KubernetesConfigurationFluxConfigurationsMgmtClient", + "python" +); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index b131c16e9350..a87fc31cff17 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -13,6 +13,7 @@ options: emit-lro-options: "all" examples-dir: "{project-root}/examples" "@azure-tools/typespec-python": + service-dir: "sdk/kubernetesconfiguration" emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-kubernetesconfiguration-fluxconfigurations" namespace: "azure.mgmt.kubernetesconfiguration.fluxconfigurations" generate-test: true diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp new file mode 100644 index 000000000000..c87482118841 --- /dev/null +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp @@ -0,0 +1,13 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; + +@@clientName(Microsoft.KubernetesConfiguration, + "KubernetesConfigurationPrivateLinkScopesMgmtClient", + "python" +); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnection, + "ArmPrivateEndpointConnection", + "python" +); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 94e23ff5cee2..455f226b2dd0 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -13,6 +13,7 @@ options: emit-lro-options: "all" examples-dir: "{project-root}/examples" "@azure-tools/typespec-python": + service-dir: "sdk/kubernetesconfiguration" emitter-output-dir: "{output-dir}/{service-dir}/azure-mgmt-kubernetesconfiguration-privatelinkscopes" namespace: "azure.mgmt.kubernetesconfiguration.privatelinkscopes" generate-test: true From 1bad7d675bcc53ff7361f54f447128eb3c2ea2b7 Mon Sep 17 00:00:00 2001 From: "Jiao Di (MSFT)" <80496810+v-jiaodi@users.noreply.github.com> Date: Tue, 27 Jan 2026 10:43:15 +0800 Subject: [PATCH 25/66] Update service directory for Kubernetes configuration --- .../privateLinkScopes/tspconfig.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 455f226b2dd0..78a64ffc55f4 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -25,10 +25,10 @@ options: service-name: "KubernetesConfigurationPrivateLinkScopes" # human-readable service name, whitespace allowed flavor: azure "@azure-tools/typespec-ts": - service-dir: sdk/privatelinkscopes + service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-privatelinkscopes" - is-modular-library: true flavor: "azure" + compatibility-lro: true experimental-extensible-enums: true package-details: name: "@azure/arm-kubernetesconfiguration-privatelinkscopes" From 5efbec918b45952da7b881e78c05a8cc0e6fb5b8 Mon Sep 17 00:00:00 2001 From: "Jiao Di (MSFT)" Date: Tue, 27 Jan 2026 11:13:09 +0800 Subject: [PATCH 26/66] update for js --- .../extensionTypes/tspconfig.yaml | 4 ++-- .../extensions/tspconfig.yaml | 4 ++-- .../fluxConfigurations/tspconfig.yaml | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index 80e31db28b29..c3ec35e86767 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -25,9 +25,9 @@ options: service-name: "KubernetesConfigurationExtensionTypes" # human-readable service name, whitespace allowed flavor: azure "@azure-tools/typespec-ts": - service-dir: sdk/extensiontypes + service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-extensiontypes" - is-modular-library: true + compatibility-lro: true flavor: "azure" experimental-extensible-enums: true package-details: diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml index 49a7962020de..9f62c3f9e57b 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -25,9 +25,9 @@ options: service-name: "KubernetesConfigurationExtensions" # human-readable service name, whitespace allowed flavor: azure "@azure-tools/typespec-ts": - service-dir: sdk/extensions + service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-extensions" - is-modular-library: true + compatibility-lro: true flavor: "azure" experimental-extensible-enums: true package-details: diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index a87fc31cff17..c039d972f50b 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -25,9 +25,9 @@ options: service-name: "KubernetesConfigurationFluxConfigurations" # human-readable service name, whitespace allowed flavor: azure "@azure-tools/typespec-ts": - service-dir: sdk/fluxconfigurations + service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-fluxconfigurations" - is-modular-library: true + compatibility-lro: true flavor: "azure" experimental-extensible-enums: true package-details: From 97f3cc2f7c9b34182c0a71ec6dbba9c91cb90b5a Mon Sep 17 00:00:00 2001 From: "Jiao Di (MSFT)" Date: Tue, 27 Jan 2026 11:37:16 +0800 Subject: [PATCH 27/66] update --- .../extensionTypes/client.tsp | 4 ++++ .../privateLinkScopes/client.tsp | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp index 3ab6ca9fe287..5185ba18a487 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp @@ -7,3 +7,7 @@ using Azure.ClientGenerator.Core; "KubernetesConfigurationExtensionTypesMgmtClient", "python" ); +@@clientName(Microsoft.KubernetesConfiguration, + "ExtensionTypesClient", + "javascript" +); diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp index c87482118841..ab362ff2e552 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp @@ -7,6 +7,10 @@ using Azure.ClientGenerator.Core; "KubernetesConfigurationPrivateLinkScopesMgmtClient", "python" ); +@@clientName(Microsoft.KubernetesConfiguration, + "PrivateLinkScopesClient", + "javascript" +); @@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnection, "ArmPrivateEndpointConnection", "python" From 7e44a67557b4f0d4045a8ebf28a2e96b01d2a970 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Tue, 27 Jan 2026 21:07:03 +0800 Subject: [PATCH 28/66] chore(kubernetesconfiguration): add service-dir configuration to tspconfig files Add service-dir: sdk/kubernetesconfiguration to the @azure-tools/typespec-java options in multiple tspconfig.yaml files to properly configure the output directory structure for Kubernetes Configuration resource manager extensions. --- .../extensionTypes/tspconfig.yaml | 1 + .../Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml | 1 + .../fluxConfigurations/tspconfig.yaml | 1 + .../privateLinkScopes/tspconfig.yaml | 1 + 4 files changed, 4 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index c3ec35e86767..14d62e23f1f9 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -20,6 +20,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": + service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-extensiontypes" namespace: "com.azure.resourcemanager.kubernetesconfiguration.extensiontypes" service-name: "KubernetesConfigurationExtensionTypes" # human-readable service name, whitespace allowed diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml index 9f62c3f9e57b..c5be3977a0d9 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -20,6 +20,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": + service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-extensions" namespace: "com.azure.resourcemanager.kubernetesconfiguration.extensions" service-name: "KubernetesConfigurationExtensions" # human-readable service name, whitespace allowed diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index c039d972f50b..b51bdf48b269 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -20,6 +20,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": + service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-fluxconfigurations" namespace: "com.azure.resourcemanager.kubernetesconfiguration.fluxconfigurations" service-name: "KubernetesConfigurationFluxConfigurations" # human-readable service name, whitespace allowed diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 78a64ffc55f4..abc420e8988d 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -20,6 +20,7 @@ options: generate-sample: true flavor: "azure" "@azure-tools/typespec-java": + service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-privatelinkscopes" namespace: "com.azure.resourcemanager.kubernetesconfiguration.privatelinkscopes" service-name: "KubernetesConfigurationPrivateLinkScopes" # human-readable service name, whitespace allowed From 805ea65dfdb3d4a6df1f403ec79f3c2a6a6666a2 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Tue, 27 Jan 2026 23:56:57 +0800 Subject: [PATCH 29/66] Mitigate Java migration breaks --- .../fluxConfigurations/client.tsp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp index fb1bda9fab3a..3c0c3ff6e691 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp @@ -7,3 +7,12 @@ using Azure.ClientGenerator.Core; "KubernetesConfigurationFluxConfigurationsMgmtClient", "python" ); + +@@clientName(Microsoft.KubernetesConfiguration.KustomizationDefinition.wait, + "waitValue", + "java" +); +@@clientName(Microsoft.KubernetesConfiguration.KustomizationPatchDefinition.wait, + "waitValue", + "java" +); From 8574a75c8fcbd273ebc9345c324cfcb406a1227f Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Wed, 28 Jan 2026 11:13:20 +0800 Subject: [PATCH 30/66] feat(privateLinkScopes): add Java client name annotation for PrivateEndpointConnection Add @clientName annotation for Azure.ResourceManager.CommonTypes.PrivateEndpointConnection with client name "ArmPrivateEndpointConnection" and language "java" to support Java SDK generation. --- .../privateLinkScopes/client.tsp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp index ab362ff2e552..493777c5f047 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp @@ -15,3 +15,7 @@ using Azure.ClientGenerator.Core; "ArmPrivateEndpointConnection", "python" ); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnection, + "ArmPrivateEndpointConnection", + "java" +); From 03585f971443fac52833634f169a3a79b0b3cede Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Thu, 29 Jan 2026 09:55:27 +0800 Subject: [PATCH 31/66] feat: add AKS identity type client name annotation - Add @clientName annotation for AKSIdentityType with Java client name - Include proper spacing and formatting for the new client configuration --- .../Microsoft.KubernetesConfiguration/extensions/client.tsp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp index 3236bcf46f37..187fabc6ef92 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp @@ -7,3 +7,5 @@ using Azure.ClientGenerator.Core; "KubernetesConfigurationExtensionsMgmtClient", "python" ); + +@@clientName(AKSIdentityType, "AksIdentityType", "java); From 0fe56b4f9424c88c4fe3edf578649cdba8f7fe6a Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Thu, 29 Jan 2026 10:48:37 +0800 Subject: [PATCH 32/66] fix(kubernetesconfiguration): correct client name annotation syntax Correct the syntax error in the client name annotation for AKSIdentityType by removing the extra quote and closing parenthesis that were causing the annotation to be malformed. --- .../Microsoft.KubernetesConfiguration/extensions/client.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp index 187fabc6ef92..027e6716d1f5 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp @@ -8,4 +8,4 @@ using Azure.ClientGenerator.Core; "python" ); -@@clientName(AKSIdentityType, "AksIdentityType", "java); +@@clientName(AKSIdentityType, "AksIdentityType", "java"); From 10ab4c1ce21b01f13251baa74e840082ed02d8a2 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Thu, 29 Jan 2026 13:15:36 +0800 Subject: [PATCH 33/66] refactor(kubernetesconfiguration): update client name annotation format - Change client name annotation from short form to fully qualified form - Update AKSIdentityType client name to use full namespace path - Maintain java target while improving naming consistency --- .../Microsoft.KubernetesConfiguration/extensions/client.tsp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp index 027e6716d1f5..3fb8501a063a 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp @@ -8,4 +8,7 @@ using Azure.ClientGenerator.Core; "python" ); -@@clientName(AKSIdentityType, "AksIdentityType", "java"); +@@clientName(Microsoft.KubernetesConfiguration.AKSIdentityType, + "AksIdentityType", + "java" +); From fa2b0345a429baea2f95937fccc0254d7222ff84 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Thu, 29 Jan 2026 16:21:17 +0800 Subject: [PATCH 34/66] feat(kubernetesconfiguration): add OCI repository definition client Add OCI repository definition client with proper Java client name annotation to support OCI repositories in flux configurations. --- .../fluxConfigurations/client.tsp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp index 3c0c3ff6e691..eb7c2e279c99 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp @@ -16,3 +16,8 @@ using Azure.ClientGenerator.Core; "waitValue", "java" ); + +@@clientName(Microsoft.KubernetesConfiguration.OCIRepositoryDefinition, + "OciRepositoryDefinition", + "java" +); From d00dc80a4dbc166f6ea2af132eda186d02364ec2 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Thu, 29 Jan 2026 20:04:54 +0800 Subject: [PATCH 35/66] feat(client): add OCI repository reference definition client mapping Add Java client name mapping for OciRepositoryRefDefinition to enable proper client generation for OCI repository references in the Kubernetes Configuration API. --- .../fluxConfigurations/client.tsp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp index eb7c2e279c99..9344eb6f3442 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp @@ -21,3 +21,8 @@ using Azure.ClientGenerator.Core; "OciRepositoryDefinition", "java" ); + +@@clientName(Microsoft.KubernetesConfiguration.OCIRepositoryRefDefinition, + "OciRepositoryRefDefinition", + "java" +); From 6cde67bf8f5d34846fa356da3fb76b36a649c11d Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Thu, 29 Jan 2026 21:24:41 +0800 Subject: [PATCH 36/66] feat(kubernetesconfiguration): add Java client names for OCI repository types Add @clientName annotations for OciRepository and related patch definitions to support Java code generation in the Kubernetes Configuration API. - Add client name mapping for Microsoft.KubernetesConfiguration.SourceKindType.OCIRepository - Add client name mapping for OCIRepositoryPatchDefinition - Add client name mapping for OCIRepositoryRefPatchDefinition --- .../fluxConfigurations/client.tsp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp index 9344eb6f3442..aae2a6f26f6b 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp @@ -26,3 +26,18 @@ using Azure.ClientGenerator.Core; "OciRepositoryRefDefinition", "java" ); + +@@clientName(Microsoft.KubernetesConfiguration.SourceKindType.OCIRepository, + "OciRepository", + "java" +); + +@@clientName(Microsoft.KubernetesConfiguration.OCIRepositoryPatchDefinition, + "OciRepositoryPatchDefinition", + "java" +); + +@@clientName(Microsoft.KubernetesConfiguration.OCIRepositoryRefPatchDefinition, + "OciRepositoryRefPatchDefinition", + "java" +); From 4660aec9bbfda15627d7da09b103fbf1839bbc2f Mon Sep 17 00:00:00 2001 From: "Jiao Di (MSFT)" Date: Mon, 2 Feb 2026 10:15:12 +0800 Subject: [PATCH 37/66] revert --- .../extensionTypes/tspconfig.yaml | 1 - .../Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml | 1 - .../fluxConfigurations/tspconfig.yaml | 1 - .../privateLinkScopes/tspconfig.yaml | 1 - 4 files changed, 4 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index 14d62e23f1f9..20467fe5a971 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -28,7 +28,6 @@ options: "@azure-tools/typespec-ts": service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-extensiontypes" - compatibility-lro: true flavor: "azure" experimental-extensible-enums: true package-details: diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml index c5be3977a0d9..c2274e3e3338 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -28,7 +28,6 @@ options: "@azure-tools/typespec-ts": service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-extensions" - compatibility-lro: true flavor: "azure" experimental-extensible-enums: true package-details: diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index b51bdf48b269..4a8fcf2fee13 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -28,7 +28,6 @@ options: "@azure-tools/typespec-ts": service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-fluxconfigurations" - compatibility-lro: true flavor: "azure" experimental-extensible-enums: true package-details: diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index abc420e8988d..8016d85574b0 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -29,7 +29,6 @@ options: service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-privatelinkscopes" flavor: "azure" - compatibility-lro: true experimental-extensible-enums: true package-details: name: "@azure/arm-kubernetesconfiguration-privatelinkscopes" From e9cc42cc769b676a5f72b0955917e991c46444db Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Tue, 3 Feb 2026 13:14:31 +0800 Subject: [PATCH 38/66] refactor(kubernetesconfiguration): simplify service names in tspconfig files - Change KubernetesConfigurationExtensionTypes to ExtensionTypes - Change KubernetesConfigurationExtensions to Extensions - Change KubernetesConfigurationFluxConfigurations to FluxConfig - Change KubernetesConfigurationPrivateLinkScopes to Scope --- .../extensionTypes/tspconfig.yaml | 2 +- .../Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml | 2 +- .../fluxConfigurations/tspconfig.yaml | 2 +- .../privateLinkScopes/tspconfig.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index 20467fe5a971..49c7273b8cde 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -23,7 +23,7 @@ options: service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-extensiontypes" namespace: "com.azure.resourcemanager.kubernetesconfiguration.extensiontypes" - service-name: "KubernetesConfigurationExtensionTypes" # human-readable service name, whitespace allowed + service-name: "ExtensionTypes" # human-readable service name, whitespace allowed flavor: azure "@azure-tools/typespec-ts": service-dir: sdk/kubernetesconfiguration diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml index c2274e3e3338..50ade4a1c632 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -23,7 +23,7 @@ options: service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-extensions" namespace: "com.azure.resourcemanager.kubernetesconfiguration.extensions" - service-name: "KubernetesConfigurationExtensions" # human-readable service name, whitespace allowed + service-name: "Extensions" # human-readable service name, whitespace allowed flavor: azure "@azure-tools/typespec-ts": service-dir: sdk/kubernetesconfiguration diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index 4a8fcf2fee13..425de47488bd 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -23,7 +23,7 @@ options: service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-fluxconfigurations" namespace: "com.azure.resourcemanager.kubernetesconfiguration.fluxconfigurations" - service-name: "KubernetesConfigurationFluxConfigurations" # human-readable service name, whitespace allowed + service-name: "FluxConfig" # human-readable service name, whitespace allowed flavor: azure "@azure-tools/typespec-ts": service-dir: sdk/kubernetesconfiguration diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 8016d85574b0..be70f8d028d6 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -23,7 +23,7 @@ options: service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/azure-resourcemanager-kubernetesconfiguration-privatelinkscopes" namespace: "com.azure.resourcemanager.kubernetesconfiguration.privatelinkscopes" - service-name: "KubernetesConfigurationPrivateLinkScopes" # human-readable service name, whitespace allowed + service-name: "Scope" # human-readable service name, whitespace allowed flavor: azure "@azure-tools/typespec-ts": service-dir: sdk/kubernetesconfiguration From c0773b7ba4134636fb31669996210cb78f43f662 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Tue, 3 Feb 2026 13:27:32 +0800 Subject: [PATCH 39/66] feat(kubernetesconfiguration): add java language exclusion for private link scopes Add "!java" parameter to clientLocation annotations for PrivateLinkScopes operations to exclude Java language generation for these endpoints. This maintains backward compatibility while preventing Java SDK generation for private link scope operations that are not supported in Java. --- .../privateLinkScopes/back-compatible.tsp | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp index aed5675f64c8..d084a0973c78 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/back-compatible.tsp @@ -4,28 +4,35 @@ using Azure.ClientGenerator.Core; using Microsoft.KubernetesConfiguration; @@clientLocation(KubernetesConfigurationPrivateLinkScopes.get, - "PrivateLinkScopes" + "PrivateLinkScopes", + "!java" ); @@clientLocation(KubernetesConfigurationPrivateLinkScopes.createOrUpdate, - "PrivateLinkScopes" + "PrivateLinkScopes", + "!java" ); @@clientName(KubernetesConfigurationPrivateLinkScopes.createOrUpdate::parameters.resource, "parameters" ); @@clientLocation(KubernetesConfigurationPrivateLinkScopes.updateTags, - "PrivateLinkScopes" + "PrivateLinkScopes", + "!java" ); @@clientName(KubernetesConfigurationPrivateLinkScopes.updateTags::parameters.properties, - "PrivateLinkScopeTags" + "PrivateLinkScopeTags", + "!java" ); @@clientLocation(KubernetesConfigurationPrivateLinkScopes.delete, - "PrivateLinkScopes" + "PrivateLinkScopes", + "!java" ); @@clientLocation(KubernetesConfigurationPrivateLinkScopes.listByResourceGroup, - "PrivateLinkScopes" + "PrivateLinkScopes", + "!java" ); @@clientLocation(KubernetesConfigurationPrivateLinkScopes.list, - "PrivateLinkScopes" + "PrivateLinkScopes", + "!java" ); @@clientName(PrivateEndpointConnections.createOrUpdate::parameters.resource, From b42d590a07ae7b7cdbe8bc40f4dde29dc3dfc075 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Tue, 3 Feb 2026 14:55:01 +0800 Subject: [PATCH 40/66] refactor(kubernetesconfiguration): update client names for private link scopes - Rename ArmPrivateEndpointConnection to Connection for java client - Add Scopes client name for KubernetesConfigurationPrivateLinkScopes in java - Add Connections client name for PrivateEndpointConnections in java - Add Resources client name for PrivateLinkResources in java --- .../privateLinkScopes/client.tsp | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp index 493777c5f047..bddd1c446ac7 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp @@ -16,6 +16,18 @@ using Azure.ClientGenerator.Core; "python" ); @@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnection, - "ArmPrivateEndpointConnection", + "Connection", + "java" +); +@@clientName(Microsoft.KubernetesConfiguration.KubernetesConfigurationPrivateLinkScopes, + "Scopes", + "java" +); +@@clientName(Microsoft.KubernetesConfiguration.PrivateEndpointConnections, + "Connections", + "java" +); +@@clientName(Microsoft.KubernetesConfiguration.PrivateLinkResources, + "Resources", "java" ); From 6e0c26e1bb18f6e24b1fb26486bfa1215a49ac85 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Tue, 3 Feb 2026 15:34:23 +0800 Subject: [PATCH 41/66] feat(kubernetesconfiguration): add Java client name annotations for private link scopes - Add client name annotation for PrivateEndpointConnectionListResult as ConnectionListResult - Add client name annotation for KubernetesConfigurationPrivateLinkScope as PrivateLinkScope - Add client name annotation for PrivateEndpointConnection as Connection --- .../privateLinkScopes/client.tsp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp index bddd1c446ac7..2d84f050213a 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp @@ -19,6 +19,14 @@ using Azure.ClientGenerator.Core; "Connection", "java" ); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult, + "ConnectionListResult", + "java" +); +@@clientName(Microsoft.KubernetesConfiguration.KubernetesConfigurationPrivateLinkScope, + "PrivateLinkScope", + "java" +); @@clientName(Microsoft.KubernetesConfiguration.KubernetesConfigurationPrivateLinkScopes, "Scopes", "java" @@ -27,6 +35,10 @@ using Azure.ClientGenerator.Core; "Connections", "java" ); +@@clientName(Microsoft.KubernetesConfiguration.PrivateEndpointConnection, + "Connection", + "java" +); @@clientName(Microsoft.KubernetesConfiguration.PrivateLinkResources, "Resources", "java" From 1e7b8d4727342629371a26d9a879c42fd3888e13 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Tue, 3 Feb 2026 15:59:11 +0800 Subject: [PATCH 42/66] refactor(kubernetesconfiguration): remove java client name annotation Removed the clientName annotation for PrivateEndpointConnection in Java as it's no longer needed for the Kubernetes Configuration resource manager. --- .../privateLinkScopes/client.tsp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp index 2d84f050213a..dfc4826e8d79 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp @@ -15,10 +15,6 @@ using Azure.ClientGenerator.Core; "ArmPrivateEndpointConnection", "python" ); -@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnection, - "Connection", - "java" -); @@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult, "ConnectionListResult", "java" From 63f7b002bb032b239b9a9943e764f8eb0260a8e4 Mon Sep 17 00:00:00 2001 From: "judy.liu" Date: Tue, 3 Feb 2026 16:05:08 +0800 Subject: [PATCH 43/66] add go config --- .../Microsoft.KubernetesConfiguration/extensions/client.tsp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp index 3fb8501a063a..3d83695f7d4f 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/client.tsp @@ -12,3 +12,8 @@ using Azure.ClientGenerator.Core; "AksIdentityType", "java" ); + +@@alternateType(Azure.ResourceManager.CommonTypes.Identity.type, + "SystemAssigned", + "go" +); From b41f37cdd22839f26ba7ebcc9a53f9b736cead65 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Tue, 3 Feb 2026 16:32:29 +0800 Subject: [PATCH 44/66] refactor(kubernetesconfiguration): update client naming for private link scopes - Add client names for Connection, ResourceListResult, ConnectionProperties, and ServiceConnectionStatus types from Azure ResourceManager CommonTypes - Remove redundant client name definition for PrivateEndpointConnection - Update import statements to use common types instead of service-specific types --- .../privateLinkScopes/client.tsp | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp index dfc4826e8d79..e816859acc37 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp @@ -19,6 +19,22 @@ using Azure.ClientGenerator.Core; "ConnectionListResult", "java" ); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnection, + "Connection", + "java" +); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResult, + "ResourceListResult", + "java" +); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProperties, + "ConnectionProperties", + "java" +); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointServiceConnectionStatus, + "ServiceConnectionStatus", + "java" +); @@clientName(Microsoft.KubernetesConfiguration.KubernetesConfigurationPrivateLinkScope, "PrivateLinkScope", "java" @@ -31,10 +47,6 @@ using Azure.ClientGenerator.Core; "Connections", "java" ); -@@clientName(Microsoft.KubernetesConfiguration.PrivateEndpointConnection, - "Connection", - "java" -); @@clientName(Microsoft.KubernetesConfiguration.PrivateLinkResources, "Resources", "java" From 004ed4f0f57d82c6fc38e2d9da84866429d4ac58 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Tue, 3 Feb 2026 16:58:56 +0800 Subject: [PATCH 45/66] refactor(kubernetesconfiguration): update private endpoint connection client naming - remove deprecated clientName annotation for Azure.ResourceManager.CommonTypes.PrivateEndpointConnection - add new clientName annotation for Microsoft.KubernetesConfiguration.PrivateEndpointConnection --- .../privateLinkScopes/client.tsp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp index e816859acc37..e94b6c7d93df 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp @@ -19,10 +19,6 @@ using Azure.ClientGenerator.Core; "ConnectionListResult", "java" ); -@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnection, - "Connection", - "java" -); @@clientName(Azure.ResourceManager.CommonTypes.PrivateLinkResourceListResult, "ResourceListResult", "java" @@ -47,6 +43,10 @@ using Azure.ClientGenerator.Core; "Connections", "java" ); +@@clientName(Microsoft.KubernetesConfiguration.PrivateEndpointConnection, + "Connection", + "java" +); @@clientName(Microsoft.KubernetesConfiguration.PrivateLinkResources, "Resources", "java" From 6b417b04c2af6d903871508c357399a5e1b14d2b Mon Sep 17 00:00:00 2001 From: "judy.liu" Date: Tue, 3 Feb 2026 17:01:09 +0800 Subject: [PATCH 46/66] edit go config --- .../extensionTypes/tspconfig.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index 20467fe5a971..25e4d48f69a1 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -33,7 +33,7 @@ options: package-details: name: "@azure/arm-kubernetesconfiguration-extensiontypes" "@azure-tools/typespec-go": - service-dir: "sdk/resourcemanager/armextensiontypes" + service-dir: "sdk/resourcemanager/extensiontypes" emitter-output-dir: "{output-dir}/{service-dir}/armextensiontypes" module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armextensiontypes" fix-const-stuttering: true From f344d7195719a6ab62ad4eec0e535036662dd080 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Tue, 3 Feb 2026 17:16:57 +0800 Subject: [PATCH 47/66] refactor(kubernetesconfiguration): add client name annotations for private link scopes - Add client name annotation for PrivateEndpointConnectionProvisioningState - Add client name annotation for KubernetesConfigurationPrivateLinkScopeProperties - Update existing client name annotations for better Java client generation --- .../privateLinkScopes/client.tsp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp index e94b6c7d93df..423082eeb636 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp @@ -31,6 +31,10 @@ using Azure.ClientGenerator.Core; "ServiceConnectionStatus", "java" ); +@@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionProvisioningState, + "ConnectionProvisioningState", + "java" +); @@clientName(Microsoft.KubernetesConfiguration.KubernetesConfigurationPrivateLinkScope, "PrivateLinkScope", "java" @@ -39,6 +43,10 @@ using Azure.ClientGenerator.Core; "Scopes", "java" ); +@@clientName(Microsoft.KubernetesConfiguration.KubernetesConfigurationPrivateLinkScopeProperties, + "PrivateLinkScopeProperties", + "java" +); @@clientName(Microsoft.KubernetesConfiguration.PrivateEndpointConnections, "Connections", "java" From 051aab6c730cd4cc102dc192fbb8659719231f17 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Tue, 3 Feb 2026 17:56:49 +0800 Subject: [PATCH 48/66] feat(kubernetesconfiguration): add Java client names for extension type models - Add client name mapping for ExtensionTypeVersionForReleaseTrainProperties - Add client name mapping for ExtensionTypeVersionUnsupportedKubernetesMatrixItem - Add client name mapping for ExtensionTypeVersionForReleaseTrainPropertiesUnsupportedKubernetesVersions - Add client name mapping for ExtensionTypeVersionForReleaseTrain --- .../extensionTypes/client.tsp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp index 5185ba18a487..3dba21c3baa4 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp @@ -11,3 +11,19 @@ using Azure.ClientGenerator.Core; "ExtensionTypesClient", "javascript" ); +@@clientName(Microsoft.KubernetesConfiguration.ExtensionTypeVersionForReleaseTrainProperties, + "VersionForReleaseTrainProperties", + "java" +); +@@clientName(Microsoft.KubernetesConfiguration.ExtensionTypeVersionUnsupportedKubernetesMatrixItem, + "UnsupportedKubernetesMatrixItem", + "java" +); +@@clientName(Microsoft.KubernetesConfiguration.ExtensionTypeVersionForReleaseTrainPropertiesUnsupportedKubernetesVersions, + "UnsupportedKubernetesVersions", + "java" +); +@@clientName(Microsoft.KubernetesConfiguration.ExtensionTypeVersionForReleaseTrain, + "VersionForReleaseTrain", + "java" +); From d3c1441101c9bf2ace06fa098c0925662a071e3d Mon Sep 17 00:00:00 2001 From: "judy.liu" Date: Wed, 4 Feb 2026 10:29:51 +0800 Subject: [PATCH 49/66] update go code --- .../fluxConfigurations/tspconfig.yaml | 2 +- .../privateLinkScopes/tspconfig.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index 4a8fcf2fee13..55d527519166 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -33,7 +33,7 @@ options: package-details: name: "@azure/arm-kubernetesconfiguration-fluxconfigurations" "@azure-tools/typespec-go": - service-dir: "sdk/resourcemanager/armfluxconfigurations" + service-dir: "sdk/resourcemanager/fluxconfigurations" emitter-output-dir: "{output-dir}/{service-dir}/armfluxconfigurations" module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armfluxconfigurations" fix-const-stuttering: true diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 8016d85574b0..a04c39ab8082 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -33,7 +33,7 @@ options: package-details: name: "@azure/arm-kubernetesconfiguration-privatelinkscopes" "@azure-tools/typespec-go": - service-dir: "sdk/resourcemanager/armprivatelinkscopes" + service-dir: "sdk/resourcemanager/privatelinkscopes" emitter-output-dir: "{output-dir}/{service-dir}/armprivatelinkscopes" module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armprivatelinkscopes" fix-const-stuttering: true From 4628949f6f36bb05acbb0e3859d4e7cd26edf1d8 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Wed, 4 Feb 2026 10:48:15 +0800 Subject: [PATCH 50/66] refactor(kubernetesconfiguration): update client name annotations for flux configurations - Add client name annotation for FluxConfigOperationStatus as OperationStatus in Java - Add client name annotation for FluxConfigurations as FluxConfigs in Java - Add client name annotation for FluxConfigurationPatchProperties as FluxConfigPatchProperties in Java --- .../fluxConfigurations/client.tsp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp index aae2a6f26f6b..8f2a099605d0 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp @@ -41,3 +41,15 @@ using Azure.ClientGenerator.Core; "OciRepositoryRefPatchDefinition", "java" ); +@@clientName(Azure.ResourceManager.CommonTypes.FluxConfigOperationStatus, + "OperationStatus", + "java" +); +@@clientName(Azure.ResourceManager.CommonTypes.FluxConfigurations, + "FluxConfigs", + "java" +); +@@clientName(Microsoft.KubernetesConfiguration.FluxConfigurationPatchProperties, + "FluxConfigPatchProperties", + "java" +); \ No newline at end of file From e466181344e60c4e55cf1fb275cf998ad2c44037 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Wed, 4 Feb 2026 10:53:14 +0800 Subject: [PATCH 51/66] refactor(kubernetesconfiguration): update client naming conventions for flux configurations - Add "!java" directive to FluxConfigurations.createOrUpdate parameters - Add "!java" directive to FluxConfigurations.update parameters - Add "!java" directive to FluxConfigurations.fluxConfigOperationStatusGet location - Update client name reference from Azure.ResourceManager.CommonTypes to Microsoft.KubernetesConfiguration namespace for FluxConfigOperationStatus - Update client name reference from Azure.ResourceManager.CommonTypes to Microsoft.KubernetesConfiguration namespace for FluxConfigurations --- .../fluxConfigurations/back-compatible.tsp | 9 ++++++--- .../fluxConfigurations/client.tsp | 6 +++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp index 792da50c772b..0f31cb0b1a49 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp @@ -7,13 +7,16 @@ using Microsoft.KubernetesConfiguration; @@Legacy.flattenProperty(FluxConfigurationPatch.properties); @@clientName(FluxConfigurations.createOrUpdate::parameters.resource, - "fluxConfiguration" + "fluxConfiguration", + "!java" ); @@clientName(FluxConfigurations.update::parameters.properties, - "fluxConfigurationPatch" + "fluxConfigurationPatch", + "!java" ); @@clientLocation(FluxConfigurations.fluxConfigOperationStatusGet, - "FluxConfigOperationStatus" + "FluxConfigOperationStatus", + "!java" ); @@clientName(FluxConfigurations.fluxConfigOperationStatusGet, "Get"); #suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp index 8f2a099605d0..6e32626003ea 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp @@ -41,15 +41,15 @@ using Azure.ClientGenerator.Core; "OciRepositoryRefPatchDefinition", "java" ); -@@clientName(Azure.ResourceManager.CommonTypes.FluxConfigOperationStatus, +@@clientName(Microsoft.KubernetesConfiguration.FluxConfigurations.fluxConfigOperationStatusGet, "OperationStatus", "java" ); -@@clientName(Azure.ResourceManager.CommonTypes.FluxConfigurations, +@@clientName(Microsoft.KubernetesConfiguration.FluxConfigurations, "FluxConfigs", "java" ); @@clientName(Microsoft.KubernetesConfiguration.FluxConfigurationPatchProperties, "FluxConfigPatchProperties", "java" -); \ No newline at end of file +); From f3d521a53c7e7a14da5546ff6d02cb01ab7e0471 Mon Sep 17 00:00:00 2001 From: "judy.liu" Date: Wed, 4 Feb 2026 13:44:25 +0800 Subject: [PATCH 52/66] update go code --- .../extensionTypes/tspconfig.yaml | 2 +- .../Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml | 2 +- .../fluxConfigurations/tspconfig.yaml | 2 +- .../privateLinkScopes/tspconfig.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml index 8d04dc4191e5..25f306715242 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/tspconfig.yaml @@ -33,7 +33,7 @@ options: package-details: name: "@azure/arm-kubernetesconfiguration-extensiontypes" "@azure-tools/typespec-go": - service-dir: "sdk/resourcemanager/extensiontypes" + service-dir: "sdk/resourcemanager/kubernetesconfiguration" emitter-output-dir: "{output-dir}/{service-dir}/armextensiontypes" module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armextensiontypes" fix-const-stuttering: true diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml index 50ade4a1c632..4990092224ba 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/tspconfig.yaml @@ -33,7 +33,7 @@ options: package-details: name: "@azure/arm-kubernetesconfiguration-extensions" "@azure-tools/typespec-go": - service-dir: "sdk/resourcemanager/extensions" + service-dir: "sdk/resourcemanager/kubernetesconfiguration" emitter-output-dir: "{output-dir}/{service-dir}/armextensions" module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armextensions" fix-const-stuttering: true diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml index dad1cd679a3d..f1f870d4d4f2 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/tspconfig.yaml @@ -33,7 +33,7 @@ options: package-details: name: "@azure/arm-kubernetesconfiguration-fluxconfigurations" "@azure-tools/typespec-go": - service-dir: "sdk/resourcemanager/fluxconfigurations" + service-dir: "sdk/resourcemanager/kubernetesconfiguration" emitter-output-dir: "{output-dir}/{service-dir}/armfluxconfigurations" module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armfluxconfigurations" fix-const-stuttering: true diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index f709ed6ea8a4..2e31aa28ba16 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -33,7 +33,7 @@ options: package-details: name: "@azure/arm-kubernetesconfiguration-privatelinkscopes" "@azure-tools/typespec-go": - service-dir: "sdk/resourcemanager/privatelinkscopes" + service-dir: "sdk/resourcemanager/kubernetesconfiguration" emitter-output-dir: "{output-dir}/{service-dir}/armprivatelinkscopes" module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armprivatelinkscopes" fix-const-stuttering: true From a7b3c256a0811166cdeeea61dd9a470f126c7022 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Wed, 4 Feb 2026 14:29:42 +0800 Subject: [PATCH 53/66] update --- .../privateLinkScopes/PrivateEndpointConnection.tsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp index a531c23e91f8..23f65a07c4ac 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/PrivateEndpointConnection.tsp @@ -35,7 +35,7 @@ interface PrivateEndpointConnections { createOrUpdate is PrivateEndpointOperations.CreateOrReplaceAsync< KubernetesConfigurationPrivateLinkScope, PrivateEndpointConnection, - Response = ArmResourceUpdatedResponse | ArmAcceptedLroResponse & + Response = ArmResourceUpdatedResponse | ArmAcceptedLroResponse & Azure.Core.Foundations.RetryAfterHeader>, LroHeaders = ArmLroLocationHeader & Azure.Core.Foundations.RetryAfterHeader From a8f9ca5a654942460819e08d01cf2aadd21bbfa7 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Wed, 4 Feb 2026 14:42:03 +0800 Subject: [PATCH 54/66] feat(kubernetesconfiguration): add Java client names for extension types and flux configurations - Add ExtensionTypesMgmtClient for Java in extensionTypes client - Remove language restriction for fluxConfiguration parameter naming - Add FluxConfigClient for Java in fluxConfigurations client - Update client naming to be consistent across languages --- .../extensionTypes/client.tsp | 4 ++++ .../fluxConfigurations/back-compatible.tsp | 6 ++---- .../fluxConfigurations/client.tsp | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp index 3dba21c3baa4..57faa3f11994 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/client.tsp @@ -11,6 +11,10 @@ using Azure.ClientGenerator.Core; "ExtensionTypesClient", "javascript" ); +@@clientName(Microsoft.KubernetesConfiguration, + "ExtensionTypesMgmtClient", + "java" +); @@clientName(Microsoft.KubernetesConfiguration.ExtensionTypeVersionForReleaseTrainProperties, "VersionForReleaseTrainProperties", "java" diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp index 0f31cb0b1a49..7a022e2cb89f 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/back-compatible.tsp @@ -7,12 +7,10 @@ using Microsoft.KubernetesConfiguration; @@Legacy.flattenProperty(FluxConfigurationPatch.properties); @@clientName(FluxConfigurations.createOrUpdate::parameters.resource, - "fluxConfiguration", - "!java" + "fluxConfiguration" ); @@clientName(FluxConfigurations.update::parameters.properties, - "fluxConfigurationPatch", - "!java" + "fluxConfigurationPatch" ); @@clientLocation(FluxConfigurations.fluxConfigOperationStatusGet, "FluxConfigOperationStatus", diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp index 6e32626003ea..77833ed079d0 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/client.tsp @@ -8,6 +8,7 @@ using Azure.ClientGenerator.Core; "python" ); +@@clientName(Microsoft.KubernetesConfiguration, "FluxConfigClient", "java"); @@clientName(Microsoft.KubernetesConfiguration.KustomizationDefinition.wait, "waitValue", "java" From 4cbd9c8184470bf0357de8784e7e761752cf73e6 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Wed, 4 Feb 2026 15:34:40 +0800 Subject: [PATCH 55/66] feat: add Java client name annotation for ScopeClient Add @clientName annotation for Microsoft.KubernetesConfiguration ScopeClient in Java to properly define the client name for private link scopes functionality. --- .../privateLinkScopes/client.tsp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp index 423082eeb636..89331df94cac 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp @@ -15,6 +15,10 @@ using Azure.ClientGenerator.Core; "ArmPrivateEndpointConnection", "python" ); +@@clientName(Microsoft.KubernetesConfiguration, + "ScopeClient", + "java" +); @@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult, "ConnectionListResult", "java" From ca3e6652c330a7a5855ed14ea1c428f71570c47b Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Wed, 4 Feb 2026 16:06:14 +0800 Subject: [PATCH 56/66] feat(kubernetesconfiguration): rename models in private link scopes - Rename PrivateEndpointConnection to Connection - Rename PrivateLinkResource to Resources --- .../privateLinkScopes/tspconfig.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 2e31aa28ba16..911fd2f02f84 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -25,6 +25,9 @@ options: namespace: "com.azure.resourcemanager.kubernetesconfiguration.privatelinkscopes" service-name: "Scope" # human-readable service name, whitespace allowed flavor: azure + rename-model: + PrivateEndpointConnection: Connection + PrivateLinkResource: Resources "@azure-tools/typespec-ts": service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-privatelinkscopes" From 1b1963c225a67a966292c27bd10541a18818745b Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Wed, 4 Feb 2026 16:35:36 +0800 Subject: [PATCH 57/66] refactor(kubernetesconfiguration): update private link scope model renames - Rename PrivateEndpointConnection to ConnectionListResult - Rename PrivateLinkResource to ResourceListResult - Update tspconfig.yaml to use proper list result suffixes --- .../privateLinkScopes/tspconfig.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 911fd2f02f84..8a852632e242 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -26,8 +26,8 @@ options: service-name: "Scope" # human-readable service name, whitespace allowed flavor: azure rename-model: - PrivateEndpointConnection: Connection - PrivateLinkResource: Resources + PrivateEndpointConnectionListResult: ConnectionListResult + PrivateLinkResourceListResult: ResourceListResult "@azure-tools/typespec-ts": service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-privatelinkscopes" From b0e52b91fbc7999fd88e64528f2adc957437ce29 Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Wed, 4 Feb 2026 16:46:47 +0800 Subject: [PATCH 58/66] feat(kubernetesconfiguration): add ResourcesOperations mapping in tspconfig - Add ResourcesOperations to rename-model mappings - Map ResourcesOperations to Resources type --- .../privateLinkScopes/tspconfig.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml index 8a852632e242..0dd769c3863b 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/tspconfig.yaml @@ -28,6 +28,7 @@ options: rename-model: PrivateEndpointConnectionListResult: ConnectionListResult PrivateLinkResourceListResult: ResourceListResult + ResourcesOperations: Resources "@azure-tools/typespec-ts": service-dir: sdk/kubernetesconfiguration emitter-output-dir: "{output-dir}/{service-dir}/arm-kubernetesconfiguration-privatelinkscopes" From 0ff80163fab981bebfec9e7ea8061e75b6b893df Mon Sep 17 00:00:00 2001 From: Hui Zhu Date: Thu, 5 Feb 2026 12:42:43 +0800 Subject: [PATCH 59/66] refactor(kubernetesconfiguration): simplify clientName decorator syntax - Remove unnecessary line breaks in clientName decorator for ScopeClient - Maintain consistent formatting for Java client name specification --- .../privateLinkScopes/client.tsp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp index 89331df94cac..0ea772bf5377 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/client.tsp @@ -15,10 +15,7 @@ using Azure.ClientGenerator.Core; "ArmPrivateEndpointConnection", "python" ); -@@clientName(Microsoft.KubernetesConfiguration, - "ScopeClient", - "java" -); +@@clientName(Microsoft.KubernetesConfiguration, "ScopeClient", "java"); @@clientName(Azure.ResourceManager.CommonTypes.PrivateEndpointConnectionListResult, "ConnectionListResult", "java" From ccb49859e0f5ac6d76ceb9bed0bcfac088c59802 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Tue, 10 Feb 2026 15:50:56 +0800 Subject: [PATCH 60/66] update --- .../extensions/Extension.tsp | 13 ++++++++++- .../stable/2024-11-01/extensions.json | 23 ++++++++++++++----- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp index afa626592db3..97ed8073503c 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/Extension.tsp @@ -114,16 +114,20 @@ alias ExtensionBuildingOps = Azure.ResourceManager.Legacy.RoutedOperations< } >; -@armResourceOperations(#{ allowStaticRoutes: true }) +@armResourceOperations(#{ allowStaticRoutes: true, omitTags: true }) interface Extensions { /** * Gets Kubernetes Cluster Extension. */ + @tag("Extensions") + @tag("ClusterExtensions") get is ExtensionOps.Read; /** * Create a new Kubernetes Cluster Extension. */ + @tag("Extensions") + @tag("ClusterExtensions") create is ExtensionOps.CreateOrUpdateAsync; /** @@ -131,6 +135,8 @@ interface Extensions { */ #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @tag("Extensions") + @tag("ClusterExtensions") @patch(#{ implicitOptionality: false }) update is ExtensionOps.CustomPatchAsync< Extension, @@ -148,6 +154,8 @@ interface Extensions { */ #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @tag("Extensions") + @tag("ClusterExtensions") delete is ExtensionOps.DeleteWithoutOkAsync< Extension, Parameters = { @@ -164,11 +172,14 @@ interface Extensions { /** * List all Extensions in the cluster. */ + @tag("Extensions") + @tag("ClusterExtensions") list is ExtensionOps.List>; /** * Get Async Operation status */ + @tag("Extension Operation Status") @get @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensions/{extensionName}/operations/{operationId}") operationStatusGet is ExtensionBuildingOps.ActionSync< diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json index bfe5a9136da4..814c9855982e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensions/stable/2024-11-01/extensions.json @@ -41,6 +41,12 @@ "tags": [ { "name": "Extensions" + }, + { + "name": "ClusterExtensions" + }, + { + "name": "Extension Operation Status" } ], "paths": { @@ -48,7 +54,8 @@ "get": { "operationId": "Extensions_List", "tags": [ - "Extensions" + "Extensions", + "ClusterExtensions" ], "description": "List all Extensions in the cluster.", "parameters": [ @@ -113,7 +120,8 @@ "get": { "operationId": "Extensions_Get", "tags": [ - "Extensions" + "Extensions", + "ClusterExtensions" ], "description": "Gets Kubernetes Cluster Extension.", "parameters": [ @@ -183,7 +191,8 @@ "put": { "operationId": "Extensions_Create", "tags": [ - "Extensions" + "Extensions", + "ClusterExtensions" ], "description": "Create a new Kubernetes Cluster Extension.", "parameters": [ @@ -284,7 +293,8 @@ "patch": { "operationId": "Extensions_Update", "tags": [ - "Extensions" + "Extensions", + "ClusterExtensions" ], "description": "Patch an existing Kubernetes Cluster Extension.", "parameters": [ @@ -382,7 +392,8 @@ "delete": { "operationId": "Extensions_Delete", "tags": [ - "Extensions" + "Extensions", + "ClusterExtensions" ], "description": "Delete a Kubernetes Cluster Extension. This will cause the Agent to Uninstall the extension from the cluster.", "parameters": [ @@ -476,7 +487,7 @@ "get": { "operationId": "OperationStatus_Get", "tags": [ - "Extensions" + "Extension Operation Status" ], "description": "Get Async Operation status", "parameters": [ From 1521318e1f2db3193833c6a4db4b886483fde0b2 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Tue, 10 Feb 2026 15:55:05 +0800 Subject: [PATCH 61/66] update --- .../extensionTypes/ExtensionType.tsp | 12 +++++-- .../ExtensionTypeVersionForReleaseTrain.tsp | 12 +++++-- .../2024-11-01-preview/extensionTypes.json | 32 ++++++++++--------- 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp index b5cfdc31a33d..5949f8aa6de8 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionType.tsp @@ -48,16 +48,20 @@ alias ExtensionTypeOps = Azure.ResourceManager.Legacy.ExtensionOperations< } >; -@armResourceOperations +@armResourceOperations(#{ omitTags: true }) interface ExtensionTypes { /** * Get an extension type for the location. */ + @tag("ExtensionTypes") + @tag("ClusterExtensionTypes") locationGet is ExtensionTypeOps.Read; /** * List all Extension Types for the location. */ + @tag("ExtensionTypes") + @tag("ClusterExtensionTypes") locationList is ExtensionTypeOps.List< ExtensionType, Parameters = { @@ -134,16 +138,20 @@ alias ExtensionTypeOperationGroupOps = Azure.ResourceManager.Legacy.ExtensionOpe } >; -@armResourceOperations +@armResourceOperations(#{ omitTags: true }) interface ExtensionTypeOperationGroup { /** * Get an Extension Type installable to the cluster based region and type for the cluster. */ + @tag("ExtensionTypes") + @tag("ClusterExtensionTypes") get is ExtensionTypeOperationGroupOps.Read; /** * List installable Extension Types for the cluster based region and type for the cluster. */ + @tag("ExtensionTypes") + @tag("ClusterExtensionTypes") list is ExtensionTypeOperationGroupOps.List< ExtensionType, Parameters = { diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp index 35607a218caa..6c7eab74035e 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/ExtensionTypeVersionForReleaseTrain.tsp @@ -56,16 +56,20 @@ alias ExtensionTypeVersionForReleaseTrainOps = Azure.ResourceManager.Legacy.Exte } >; -@armResourceOperations +@armResourceOperations(#{ omitTags: true }) interface ExtensionTypeVersionForReleaseTrains { /** * Get details of a version for an extension type and location */ + @tag("ExtensionTypes") + @tag("ClusterExtensionTypes") getVersion is ExtensionTypeVersionForReleaseTrainOps.Read; /** * List the versions for an extension type and location. */ + @tag("ExtensionTypes") + @tag("ClusterExtensionTypes") listVersions is ExtensionTypeVersionForReleaseTrainOps.List< ExtensionTypeVersionForReleaseTrain, Parameters = { @@ -142,16 +146,20 @@ alias ExtensionTypeVersionForReleaseTrainOperationGroupOps = Azure.ResourceManag } >; -@armResourceOperations +@armResourceOperations(#{ omitTags: true }) interface ExtensionTypeVersionForReleaseTrainOperationGroup { /** * Get details of a version for an Extension Type installable to the cluster. */ + @tag("ExtensionTypes") + @tag("ClusterExtensionTypes") clusterGetVersion is ExtensionTypeVersionForReleaseTrainOperationGroupOps.Read; /** * List the version for an Extension Type installable to the cluster. */ + @tag("ExtensionTypes") + @tag("ClusterExtensionTypes") clusterListVersions is ExtensionTypeVersionForReleaseTrainOperationGroupOps.List< ExtensionTypeVersionForReleaseTrain, Parameters = { diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json index 80411d636eb0..7c11c35c10a0 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/extensionTypes/preview/2024-11-01-preview/extensionTypes.json @@ -43,13 +43,7 @@ "name": "ExtensionTypes" }, { - "name": "ExtensionTypeOperationGroup" - }, - { - "name": "ExtensionTypeVersionForReleaseTrains" - }, - { - "name": "ExtensionTypeVersionForReleaseTrainOperationGroup" + "name": "ClusterExtensionTypes" } ], "paths": { @@ -57,7 +51,8 @@ "get": { "operationId": "ExtensionTypes_LocationList", "tags": [ - "ExtensionTypes" + "ExtensionTypes", + "ClusterExtensionTypes" ], "description": "List all Extension Types for the location.", "parameters": [ @@ -134,7 +129,8 @@ "get": { "operationId": "ExtensionTypes_LocationGet", "tags": [ - "ExtensionTypes" + "ExtensionTypes", + "ClusterExtensionTypes" ], "description": "Get an extension type for the location.", "parameters": [ @@ -181,7 +177,8 @@ "get": { "operationId": "ExtensionTypes_ListVersions", "tags": [ - "ExtensionTypeVersionForReleaseTrains" + "ExtensionTypes", + "ClusterExtensionTypes" ], "description": "List the versions for an extension type and location.", "parameters": [ @@ -259,7 +256,8 @@ "get": { "operationId": "ExtensionTypes_GetVersion", "tags": [ - "ExtensionTypeVersionForReleaseTrains" + "ExtensionTypes", + "ClusterExtensionTypes" ], "description": "Get details of a version for an extension type and location", "parameters": [ @@ -313,7 +311,8 @@ "get": { "operationId": "ExtensionTypes_List", "tags": [ - "ExtensionTypeOperationGroup" + "ExtensionTypes", + "ClusterExtensionTypes" ], "description": "List installable Extension Types for the cluster based region and type for the cluster.", "parameters": [ @@ -406,7 +405,8 @@ "get": { "operationId": "ExtensionTypes_Get", "tags": [ - "ExtensionTypeOperationGroup" + "ExtensionTypes", + "ClusterExtensionTypes" ], "description": "Get an Extension Type installable to the cluster based region and type for the cluster.", "parameters": [ @@ -476,7 +476,8 @@ "get": { "operationId": "ExtensionTypes_ClusterListVersions", "tags": [ - "ExtensionTypeVersionForReleaseTrainOperationGroup" + "ExtensionTypes", + "ClusterExtensionTypes" ], "description": "List the version for an Extension Type installable to the cluster.", "parameters": [ @@ -570,7 +571,8 @@ "get": { "operationId": "ExtensionTypes_ClusterGetVersion", "tags": [ - "ExtensionTypeVersionForReleaseTrainOperationGroup" + "ExtensionTypes", + "ClusterExtensionTypes" ], "description": "Get details of a version for an Extension Type installable to the cluster.", "parameters": [ From c5c212a1326ec7da3405f447babe261a54e266ea Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Tue, 10 Feb 2026 16:00:09 +0800 Subject: [PATCH 62/66] update --- .../fluxConfigurations/FluxConfiguration.tsp | 13 +++++++++- .../stable/2025-04-01/fluxconfiguration.json | 25 +++++++++++++------ 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp index 0ffd4ad0ae93..8bb7f73bcdcd 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/FluxConfiguration.tsp @@ -107,16 +107,20 @@ alias FluxConfigurationsBuildingOps = Azure.ResourceManager.Legacy.RoutedOperati } >; -@armResourceOperations(#{ allowStaticRoutes: true }) +@armResourceOperations(#{ allowStaticRoutes: true, omitTags: true }) interface FluxConfigurations { /** * Gets details of the Flux Configuration. */ + @tag("FluxConfiguration") + @tag("Flux") get is FluxConfigurationOperationGroupOps.Read; /** * Create a new Kubernetes Flux Configuration. */ + @tag("FluxConfiguration") + @tag("Flux") createOrUpdate is FluxConfigurationOperationGroupOps.CreateOrUpdateAsync; /** @@ -124,6 +128,8 @@ interface FluxConfigurations { */ #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-resource-manager/no-response-body" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @tag("FluxConfiguration") + @tag("Flux") @patch(#{ implicitOptionality: false }) update is FluxConfigurationOperationGroupOps.CustomPatchAsync< FluxConfiguration, @@ -140,6 +146,8 @@ interface FluxConfigurations { */ #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" #suppress "@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @tag("FluxConfiguration") + @tag("Flux") delete is FluxConfigurationOperationGroupOps.DeleteWithoutOkAsync< FluxConfiguration, Parameters = { @@ -156,6 +164,8 @@ interface FluxConfigurations { /** * List all Flux Configurations. */ + @tag("FluxConfiguration") + @tag("Flux") list is FluxConfigurationOperationGroupOps.List< FluxConfiguration, Response = ArmResponse @@ -164,6 +174,7 @@ interface FluxConfigurations { /** * Get Async Operation status */ + @tag("FluxConfiguration Operation Status") @get @route("/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/{fluxConfigurationName}/operations/{operationId}") fluxConfigOperationStatusGet is FluxConfigurationsBuildingOps.ActionSync< diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json index a9c667393941..6828acf3a513 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/fluxConfigurations/stable/2025-04-01/fluxconfiguration.json @@ -40,7 +40,13 @@ }, "tags": [ { - "name": "FluxConfigurations" + "name": "FluxConfiguration" + }, + { + "name": "Flux" + }, + { + "name": "FluxConfiguration Operation Status" } ], "paths": { @@ -48,7 +54,8 @@ "get": { "operationId": "FluxConfigurations_List", "tags": [ - "FluxConfigurations" + "FluxConfiguration", + "Flux" ], "description": "List all Flux Configurations.", "parameters": [ @@ -113,7 +120,8 @@ "get": { "operationId": "FluxConfigurations_Get", "tags": [ - "FluxConfigurations" + "FluxConfiguration", + "Flux" ], "description": "Gets details of the Flux Configuration.", "parameters": [ @@ -180,7 +188,8 @@ "put": { "operationId": "FluxConfigurations_CreateOrUpdate", "tags": [ - "FluxConfigurations" + "FluxConfiguration", + "Flux" ], "description": "Create a new Kubernetes Flux Configuration.", "parameters": [ @@ -287,7 +296,8 @@ "patch": { "operationId": "FluxConfigurations_Update", "tags": [ - "FluxConfigurations" + "FluxConfiguration", + "Flux" ], "description": "Update an existing Kubernetes Flux Configuration.", "parameters": [ @@ -385,7 +395,8 @@ "delete": { "operationId": "FluxConfigurations_Delete", "tags": [ - "FluxConfigurations" + "FluxConfiguration", + "Flux" ], "description": "This will delete the YAML file used to set up the Flux Configuration, thus stopping future sync from the source repo.", "parameters": [ @@ -479,7 +490,7 @@ "get": { "operationId": "FluxConfigOperationStatus_Get", "tags": [ - "FluxConfigurations" + "FluxConfiguration Operation Status" ], "description": "Get Async Operation status", "parameters": [ From 161d2a212fb376d888e2956555b8f6ed41b10044 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Tue, 10 Feb 2026 16:02:48 +0800 Subject: [PATCH 63/66] update --- .../Microsoft.KubernetesConfiguration/operations/routes.tsp | 1 + .../operations/stable/2025-04-01/operations.json | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp index fec7a582c508..ef71b20a27cc 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/routes.tsp @@ -56,6 +56,7 @@ interface OperationStatusOperationGroup { /** * List Async Operations, currently in progress, in a cluster */ + @tag("Operations in a Cluster") @autoRoute @get @action("operations") diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json index 4183bb6ea8b2..ec57aaa5b9a9 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/operations/stable/2025-04-01/operations.json @@ -41,6 +41,9 @@ "tags": [ { "name": "Operations" + }, + { + "name": "Operations in a Cluster" } ], "paths": { @@ -83,6 +86,9 @@ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/operations": { "get": { "operationId": "OperationStatus_List", + "tags": [ + "Operations in a Cluster" + ], "description": "List Async Operations, currently in progress, in a cluster", "parameters": [ { From 9aa6c8b75c61f4139f8e8bbd583ab2b14e92de91 Mon Sep 17 00:00:00 2001 From: Wenming Liu Date: Tue, 10 Feb 2026 16:05:30 +0800 Subject: [PATCH 64/66] update --- ...ubernetesConfigurationPrivateLinkScope.tsp | 2 +- .../2024-11-01-preview/privateLinkScopes.json | 21 ------------------- 2 files changed, 1 insertion(+), 22 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp index d9b1bcf755a4..8285d1c50521 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/KubernetesConfigurationPrivateLinkScope.tsp @@ -23,7 +23,7 @@ model KubernetesConfigurationPrivateLinkScope >; } -@armResourceOperations +@armResourceOperations(#{ omitTags: true }) interface KubernetesConfigurationPrivateLinkScopes { /** * Returns a Azure Arc PrivateLinkScope. diff --git a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json index b8c11d1ccc2e..973833e2a27f 100644 --- a/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json +++ b/specification/kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/privateLinkScopes/preview/2024-11-01-preview/privateLinkScopes.json @@ -39,9 +39,6 @@ } }, "tags": [ - { - "name": "KubernetesConfigurationPrivateLinkScopes" - }, { "name": "PrivateLinkResources" }, @@ -53,9 +50,6 @@ "/subscriptions/{subscriptionId}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes": { "get": { "operationId": "PrivateLinkScopes_List", - "tags": [ - "KubernetesConfigurationPrivateLinkScopes" - ], "description": "Gets a list of all Azure Arc PrivateLinkScopes within a subscription.", "parameters": [ { @@ -92,9 +86,6 @@ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes": { "get": { "operationId": "PrivateLinkScopes_ListByResourceGroup", - "tags": [ - "KubernetesConfigurationPrivateLinkScopes" - ], "description": "Gets a list of Azure Arc PrivateLinkScopes within a resource group.", "parameters": [ { @@ -134,9 +125,6 @@ "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.KubernetesConfiguration/privateLinkScopes/{scopeName}": { "get": { "operationId": "PrivateLinkScopes_Get", - "tags": [ - "KubernetesConfigurationPrivateLinkScopes" - ], "description": "Returns a Azure Arc PrivateLinkScope.", "parameters": [ { @@ -178,9 +166,6 @@ }, "put": { "operationId": "PrivateLinkScopes_CreateOrUpdate", - "tags": [ - "KubernetesConfigurationPrivateLinkScopes" - ], "description": "Creates (or updates) a Azure Arc PrivateLinkScope. Note: You cannot specify a different value for InstrumentationKey nor AppId in the Put operation.", "parameters": [ { @@ -240,9 +225,6 @@ }, "patch": { "operationId": "PrivateLinkScopes_UpdateTags", - "tags": [ - "KubernetesConfigurationPrivateLinkScopes" - ], "description": "Updates an existing PrivateLinkScope's tags. To update other fields use the CreateOrUpdate method.", "parameters": [ { @@ -293,9 +275,6 @@ }, "delete": { "operationId": "PrivateLinkScopes_Delete", - "tags": [ - "KubernetesConfigurationPrivateLinkScopes" - ], "description": "Deletes a Azure Arc PrivateLinkScope.", "parameters": [ { From 2345e955b21f7e8a0c6082069d705f8fa1631eef Mon Sep 17 00:00:00 2001 From: Xinni Tong Date: Fri, 13 Feb 2026 11:09:46 +0800 Subject: [PATCH 65/66] Update readme.md --- .../resource-manager/readme.md | 346 ------------------ 1 file changed, 346 deletions(-) diff --git a/specification/kubernetesconfiguration/resource-manager/readme.md b/specification/kubernetesconfiguration/resource-manager/readme.md index fc6e6e92a095..5194ddacb695 100644 --- a/specification/kubernetesconfiguration/resource-manager/readme.md +++ b/specification/kubernetesconfiguration/resource-manager/readme.md @@ -4,356 +4,10 @@ This is the AutoRest configuration file for KubernetesConfiguration. -## Getting Started - -To build the SDKs for KubernetesConfiguration, simply install AutoRest via `npm` (`npm install -g autorest`) and then run: - -> `autorest readme.md` - -To see additional help and options, run: - -> `autorest --help` - -For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page. - ---- - ## Configuration -### Basic Information - These are the global settings for the KubernetesConfiguration. ``` yaml -title: SourceControlConfigurationClient -description: KubernetesConfiguration Client openapi-type: arm -tag: package-preview-2024-04 -``` - -### Tag: package-preview-2024-04 - -These settings apply only when `--tag=package-preview-2024-04` is specified on the command line. - -``` yaml $(tag) == 'package-preview-2024-04' -input-file: - - Microsoft.KubernetesConfiguration/stable/2023-05-01/extensions.json - - Microsoft.KubernetesConfiguration/preview/2024-04-01-preview/fluxconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2023-05-01/kubernetesconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2023-05-01/operations.json -suppressions: - - code: ResourceNameRestriction - from: fluxconfiguration.json - reason: Existing service contract needs to be backward compatible, pattern validation exists in RP. - - code: DeleteResponseCodes - from: fluxconfiguration.json - reason: Existing service contract needs to be backward compatible, force delete does synchronous delete and returns 200. - - code: LroLocationHeader - from: fluxconfiguration.json - reason: Existing service contract needs to be backward compatible, 202 operations return Azure-Async-Operation header. - - code: AvoidAdditionalProperties - from: fluxconfiguration.json - reason: Existing service contract needs to be backward compatible. - - code: PatchResponseCodes - from: fluxconfiguration.json - reason: Existing service contract needs to be backward compatible. -``` - -### Tag: package-preview-2024-04-only - -These settings apply only when `--tag=package-preview-2024-04-only` is specified on the command line. - -``` yaml $(tag) == 'package-preview-2024-04-only' -input-file: - - Microsoft.KubernetesConfiguration/preview/2024-04-01-preview/fluxconfiguration.json -``` - -### Tag: package-2023-05 - -These settings apply only when `--tag=package-2023-05` is specified on the command line. - -``` yaml $(tag) == 'package-2023-05' -input-file: - - Microsoft.KubernetesConfiguration/stable/2023-05-01/extensions.json - - Microsoft.KubernetesConfiguration/stable/2023-05-01/fluxconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2023-05-01/kubernetesconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2023-05-01/operations.json -``` - -### Tag: package-preview-2023-05 - -These settings apply only when `--tag=package-preview-2023-05` is specified on the command line. - -``` yaml $(tag) == 'package-preview-2023-05' -input-file: - - Microsoft.KubernetesConfiguration/preview/2023-05-01-preview/extensionTypes.json - - Microsoft.KubernetesConfiguration/stable/2023-05-01/operations.json - - Microsoft.KubernetesConfiguration/common/2023-05-01-preview/definitions.json -``` - -### Tag: package-2022-11 - -These settings apply only when `--tag=package-2022-11` is specified on the command line. - -``` yaml $(tag) == 'package-2022-11' -input-file: - - Microsoft.KubernetesConfiguration/stable/2022-11-01/extensions.json - - Microsoft.KubernetesConfiguration/stable/2022-11-01/fluxconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2022-11-01/kubernetesconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2022-11-01/operations.json -``` - -### Tag: package-2022-07 - -These settings apply only when `--tag=package-2022-07` is specified on the command line. - -```yaml $(tag) == 'package-2022-07' -input-file: - - Microsoft.KubernetesConfiguration/stable/2022-07-01/extensions.json - - Microsoft.KubernetesConfiguration/stable/2022-07-01/fluxconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2022-07-01/kubernetesconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2022-07-01/operations.json -``` - -### Tag: package-preview-2022-04 - -These settings apply only when `--tag=package-preview-2022-04` is specified on the command line. - -``` yaml $(tag) == 'package-preview-2022-04' -input-file: - - Microsoft.KubernetesConfiguration/preview/2022-04-02-preview/extensions.json - - Microsoft.KubernetesConfiguration/stable/2022-03-01/fluxconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2022-03-01/kubernetesconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2022-03-01/operations.json - - Microsoft.KubernetesConfiguration/preview/2022-04-02-preview/privateLinkScopes.json -``` - -``` yaml $(tag) == 'package-preview-2022-04-only' -input-file: - - Microsoft.KubernetesConfiguration/preview/2022-04-02-preview/extensions.json - - Microsoft.KubernetesConfiguration/preview/2022-04-02-preview/privateLinkScopes.json -``` - -### Tag: package-2022-03 - -These settings apply only when `--tag=package-2022-03` is specified on the command line. - -``` yaml $(tag) == 'package-2022-03' -input-file: - - Microsoft.KubernetesConfiguration/stable/2022-03-01/extensions.json - - Microsoft.KubernetesConfiguration/stable/2022-03-01/fluxconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2022-03-01/kubernetesconfiguration.json - - Microsoft.KubernetesConfiguration/stable/2022-03-01/operations.json -``` - -### Tag: package-preview-2022-01-15 - -These settings apply only when `--tag=package-preview-2022-01-15` is specified on the command line.. - -``` yaml $(tag) == 'package-preview-2022-01-15' -input-file: - - Microsoft.KubernetesConfiguration/preview/2022-01-15-preview/extensionTypes.json - - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/extensions.json - - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/fluxconfiguration.json - - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/kubernetesconfiguration.json - - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/operations.json -``` - -``` yaml $(tag) == 'package-preview-2022-01-15-only' -input-file: - - Microsoft.KubernetesConfiguration/preview/2022-01-15-preview/extensionTypes.json -``` - -### Tag: package-preview-2022-01 - -These settings apply only when `--tag=package-preview-2022-01` is specified on the command line. - -``` yaml $(tag) == 'package-preview-2022-01' -input-file: - - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/extensionTypes.json - - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/extensions.json - - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/fluxconfiguration.json - - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/kubernetesconfiguration.json - - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/operations.json -``` - -### Tag: package-preview-2021-11 - -These settings apply only when `--tag=package-preview-2021-11` is specified on the command line. - -``` yaml $(tag) == 'package-preview-2021-11' -input-file: - - Microsoft.KubernetesConfiguration/preview/2021-11-01-preview/extensions.json - - Microsoft.KubernetesConfiguration/preview/2021-11-01-preview/extensionTypes.json - - Microsoft.KubernetesConfiguration/preview/2021-11-01-preview/kubernetesconfiguration.json - - Microsoft.KubernetesConfiguration/preview/2021-11-01-preview/fluxconfiguration.json - - Microsoft.KubernetesConfiguration/preview/2021-11-01-preview/operations.json -``` - -### Tag: package-2021-09 - -These settings apply only when `--tag=package-2021-09` is specified on the command line. - -``` yaml $(tag) == 'package-2021-09' -input-file: - - Microsoft.KubernetesConfiguration/stable/2021-09-01/extensions.json -``` - ---- - -## Suppression - -``` yaml -directive: - - suppress: LongRunningResponseStatusCode - reason: The validation tools do not properly recognize 202 as a supported response code. - from: extensions.json - - suppress: TopLevelResourcesListBySubscription - reason: 'Microsoft.KubernetesConfiguration is a proxy resource provider under Microsoft.Kubernetes' - from: extensions.json - - suppress: TopLevelResourcesListBySubscription - reason: 'Microsoft.KubernetesConfiguration is a proxy resource provider under Microsoft.Kubernetes' - from: extensionTypes.json - - suppress: BodyTopLevelProperties - where: $.definitions.Extension.properties - from: extensions.json - reason: |- - https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources - - The systemData should be top level element based on the new requirement: - { - "id": "/subscriptions/{id}/resourceGroups/{group}/providers/{rpns}/{type}/{name}", - "name": "{name}", - "type": "{resourceProviderNamespace}/{resourceType}", - "location": "North US", - "systemData":{ - "createdBy": "", - "createdByType": "", - "createdAt": "", - "lastModifiedBy": "", - "lastModifiedByType": "", - "lastModifiedAt": "" - }, - "tags": { - "key1": "value 1", - "key2": "value 2" - }, - "kind": "resource kind", - "properties": { - "comment": "Resource defined structure" - } - } -``` - -### Tag: package-preview-2021-05 - -These settings apply only when `--tag=package-preview-2021-05` is specified on the command line. - -``` yaml $(tag) == 'package-preview-2021-05' -input-file: - - Microsoft.KubernetesConfiguration/preview/2021-05-01-preview/extensions.json - - Microsoft.KubernetesConfiguration/preview/2021-05-01-preview/extensionTypes.json - - Microsoft.KubernetesConfiguration/preview/2021-05-01-preview/kubernetesconfiguration.json -``` - -### Tag: package-2021-03 - -These settings apply only when `--tag=package-2021-03` is specified on the command line. - -``` yaml $(tag) == 'package-2021-03' -input-file: - - Microsoft.KubernetesConfiguration/stable/2021-03-01/kubernetesconfiguration.json -``` - -### Tag: package-preview-2020-10 - -These settings apply only when `--tag=package-preview-2020-10` is specified on the command line. - -``` yaml $(tag) == 'package-preview-2020-10' -input-file: - - Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/kubernetesconfiguration.json -``` - -### Tag: package-2020-07-01-preview - -These settings apply only when `--tag=package-2020-07-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2020-07-01-preview' -input-file: - - Microsoft.KubernetesConfiguration/preview/2020-07-01-preview/kubernetesconfiguration.json - - Microsoft.KubernetesConfiguration/preview/2020-07-01-preview/extensions.json -``` - -### Tag: package-2019-11-01-preview - -These settings apply only when `--tag=package-2019-11-01-preview` is specified on the command line. - -``` yaml $(tag) == 'package-2019-11-01-preview' -input-file: - - Microsoft.KubernetesConfiguration/preview/2019-11-01-preview/kubernetesconfiguration.json -``` - -## Suppression - -``` yaml -directive: - - suppress: TopLevelResourcesListBySubscription - reason: 'Microsoft.KubernetesConfiguration is a proxy resource provider under Microsoft.Kubernetes' - from: kubernetesconfiguration.json - - suppress: LongRunningResponseStatusCode - reason: The validation tools do not properly recognize 202 as a supported response code. - from: extensions.json - - suppress: TopLevelResourcesListBySubscription - reason: 'Microsoft.KubernetesConfiguration is a proxy resource provider under Microsoft.Kubernetes' - from: extensions.json - - suppress: LongRunningResponseStatusCode - reason: The validation tools do not properly recognize 202 as a supported response code. - from: fluxconfiguration.json - - suppress: TopLevelResourcesListBySubscription - from: fluxconfiguration.json - reason: 'Microsoft.KubernetesConfiguration is a proxy resource provider under Microsoft.Kubernetes and Microsoft.ContainerServices' - - suppress: BodyTopLevelProperties - where: $.definitions.Extension.properties - from: extensions.json - reason: |- - https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources - - The systemData should be top level element based on the new requirement: - { - "id": "/subscriptions/{id}/resourceGroups/{group}/providers/{rpns}/{type}/{name}", - "name": "{name}", - "type": "{resourceProviderNamespace}/{resourceType}", - "location": "North US", - "systemData":{ - "createdBy": "", - "createdByType": "", - "createdAt": "", - "lastModifiedBy": "", - "lastModifiedByType": "", - "lastModifiedAt": "" - }, - "tags": { - "key1": "value 1", - "key2": "value 2" - }, - "kind": "resource kind", - "properties": { - "comment": "Resource defined structure" - } - } -``` - ---- - -# Code Generation - -## Swagger to SDK - -This section describes what SDK should be generated by the automatic system. -This is not used by Autorest itself. - -``` yaml $(swagger-to-sdk) -swagger-to-sdk: - - repo: azure-resource-manager-schemas - - repo: azure-powershell ``` From 57d167c57f05a65877bf53de779a2a76ca917d15 Mon Sep 17 00:00:00 2001 From: Xinni Tong Date: Fri, 13 Feb 2026 11:38:24 +0800 Subject: [PATCH 66/66] Revert "Update readme.md" This reverts commit 2345e955b21f7e8a0c6082069d705f8fa1631eef. --- .../resource-manager/readme.md | 346 ++++++++++++++++++ 1 file changed, 346 insertions(+) diff --git a/specification/kubernetesconfiguration/resource-manager/readme.md b/specification/kubernetesconfiguration/resource-manager/readme.md index 5194ddacb695..fc6e6e92a095 100644 --- a/specification/kubernetesconfiguration/resource-manager/readme.md +++ b/specification/kubernetesconfiguration/resource-manager/readme.md @@ -4,10 +4,356 @@ This is the AutoRest configuration file for KubernetesConfiguration. +## Getting Started + +To build the SDKs for KubernetesConfiguration, simply install AutoRest via `npm` (`npm install -g autorest`) and then run: + +> `autorest readme.md` + +To see additional help and options, run: + +> `autorest --help` + +For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page. + +--- + ## Configuration +### Basic Information + These are the global settings for the KubernetesConfiguration. ``` yaml +title: SourceControlConfigurationClient +description: KubernetesConfiguration Client openapi-type: arm +tag: package-preview-2024-04 +``` + +### Tag: package-preview-2024-04 + +These settings apply only when `--tag=package-preview-2024-04` is specified on the command line. + +``` yaml $(tag) == 'package-preview-2024-04' +input-file: + - Microsoft.KubernetesConfiguration/stable/2023-05-01/extensions.json + - Microsoft.KubernetesConfiguration/preview/2024-04-01-preview/fluxconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2023-05-01/kubernetesconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2023-05-01/operations.json +suppressions: + - code: ResourceNameRestriction + from: fluxconfiguration.json + reason: Existing service contract needs to be backward compatible, pattern validation exists in RP. + - code: DeleteResponseCodes + from: fluxconfiguration.json + reason: Existing service contract needs to be backward compatible, force delete does synchronous delete and returns 200. + - code: LroLocationHeader + from: fluxconfiguration.json + reason: Existing service contract needs to be backward compatible, 202 operations return Azure-Async-Operation header. + - code: AvoidAdditionalProperties + from: fluxconfiguration.json + reason: Existing service contract needs to be backward compatible. + - code: PatchResponseCodes + from: fluxconfiguration.json + reason: Existing service contract needs to be backward compatible. +``` + +### Tag: package-preview-2024-04-only + +These settings apply only when `--tag=package-preview-2024-04-only` is specified on the command line. + +``` yaml $(tag) == 'package-preview-2024-04-only' +input-file: + - Microsoft.KubernetesConfiguration/preview/2024-04-01-preview/fluxconfiguration.json +``` + +### Tag: package-2023-05 + +These settings apply only when `--tag=package-2023-05` is specified on the command line. + +``` yaml $(tag) == 'package-2023-05' +input-file: + - Microsoft.KubernetesConfiguration/stable/2023-05-01/extensions.json + - Microsoft.KubernetesConfiguration/stable/2023-05-01/fluxconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2023-05-01/kubernetesconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2023-05-01/operations.json +``` + +### Tag: package-preview-2023-05 + +These settings apply only when `--tag=package-preview-2023-05` is specified on the command line. + +``` yaml $(tag) == 'package-preview-2023-05' +input-file: + - Microsoft.KubernetesConfiguration/preview/2023-05-01-preview/extensionTypes.json + - Microsoft.KubernetesConfiguration/stable/2023-05-01/operations.json + - Microsoft.KubernetesConfiguration/common/2023-05-01-preview/definitions.json +``` + +### Tag: package-2022-11 + +These settings apply only when `--tag=package-2022-11` is specified on the command line. + +``` yaml $(tag) == 'package-2022-11' +input-file: + - Microsoft.KubernetesConfiguration/stable/2022-11-01/extensions.json + - Microsoft.KubernetesConfiguration/stable/2022-11-01/fluxconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2022-11-01/kubernetesconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2022-11-01/operations.json +``` + +### Tag: package-2022-07 + +These settings apply only when `--tag=package-2022-07` is specified on the command line. + +```yaml $(tag) == 'package-2022-07' +input-file: + - Microsoft.KubernetesConfiguration/stable/2022-07-01/extensions.json + - Microsoft.KubernetesConfiguration/stable/2022-07-01/fluxconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2022-07-01/kubernetesconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2022-07-01/operations.json +``` + +### Tag: package-preview-2022-04 + +These settings apply only when `--tag=package-preview-2022-04` is specified on the command line. + +``` yaml $(tag) == 'package-preview-2022-04' +input-file: + - Microsoft.KubernetesConfiguration/preview/2022-04-02-preview/extensions.json + - Microsoft.KubernetesConfiguration/stable/2022-03-01/fluxconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2022-03-01/kubernetesconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2022-03-01/operations.json + - Microsoft.KubernetesConfiguration/preview/2022-04-02-preview/privateLinkScopes.json +``` + +``` yaml $(tag) == 'package-preview-2022-04-only' +input-file: + - Microsoft.KubernetesConfiguration/preview/2022-04-02-preview/extensions.json + - Microsoft.KubernetesConfiguration/preview/2022-04-02-preview/privateLinkScopes.json +``` + +### Tag: package-2022-03 + +These settings apply only when `--tag=package-2022-03` is specified on the command line. + +``` yaml $(tag) == 'package-2022-03' +input-file: + - Microsoft.KubernetesConfiguration/stable/2022-03-01/extensions.json + - Microsoft.KubernetesConfiguration/stable/2022-03-01/fluxconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2022-03-01/kubernetesconfiguration.json + - Microsoft.KubernetesConfiguration/stable/2022-03-01/operations.json +``` + +### Tag: package-preview-2022-01-15 + +These settings apply only when `--tag=package-preview-2022-01-15` is specified on the command line.. + +``` yaml $(tag) == 'package-preview-2022-01-15' +input-file: + - Microsoft.KubernetesConfiguration/preview/2022-01-15-preview/extensionTypes.json + - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/extensions.json + - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/fluxconfiguration.json + - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/kubernetesconfiguration.json + - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/operations.json +``` + +``` yaml $(tag) == 'package-preview-2022-01-15-only' +input-file: + - Microsoft.KubernetesConfiguration/preview/2022-01-15-preview/extensionTypes.json +``` + +### Tag: package-preview-2022-01 + +These settings apply only when `--tag=package-preview-2022-01` is specified on the command line. + +``` yaml $(tag) == 'package-preview-2022-01' +input-file: + - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/extensionTypes.json + - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/extensions.json + - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/fluxconfiguration.json + - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/kubernetesconfiguration.json + - Microsoft.KubernetesConfiguration/preview/2022-01-01-preview/operations.json +``` + +### Tag: package-preview-2021-11 + +These settings apply only when `--tag=package-preview-2021-11` is specified on the command line. + +``` yaml $(tag) == 'package-preview-2021-11' +input-file: + - Microsoft.KubernetesConfiguration/preview/2021-11-01-preview/extensions.json + - Microsoft.KubernetesConfiguration/preview/2021-11-01-preview/extensionTypes.json + - Microsoft.KubernetesConfiguration/preview/2021-11-01-preview/kubernetesconfiguration.json + - Microsoft.KubernetesConfiguration/preview/2021-11-01-preview/fluxconfiguration.json + - Microsoft.KubernetesConfiguration/preview/2021-11-01-preview/operations.json +``` + +### Tag: package-2021-09 + +These settings apply only when `--tag=package-2021-09` is specified on the command line. + +``` yaml $(tag) == 'package-2021-09' +input-file: + - Microsoft.KubernetesConfiguration/stable/2021-09-01/extensions.json +``` + +--- + +## Suppression + +``` yaml +directive: + - suppress: LongRunningResponseStatusCode + reason: The validation tools do not properly recognize 202 as a supported response code. + from: extensions.json + - suppress: TopLevelResourcesListBySubscription + reason: 'Microsoft.KubernetesConfiguration is a proxy resource provider under Microsoft.Kubernetes' + from: extensions.json + - suppress: TopLevelResourcesListBySubscription + reason: 'Microsoft.KubernetesConfiguration is a proxy resource provider under Microsoft.Kubernetes' + from: extensionTypes.json + - suppress: BodyTopLevelProperties + where: $.definitions.Extension.properties + from: extensions.json + reason: |- + https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources + + The systemData should be top level element based on the new requirement: + { + "id": "/subscriptions/{id}/resourceGroups/{group}/providers/{rpns}/{type}/{name}", + "name": "{name}", + "type": "{resourceProviderNamespace}/{resourceType}", + "location": "North US", + "systemData":{ + "createdBy": "", + "createdByType": "", + "createdAt": "", + "lastModifiedBy": "", + "lastModifiedByType": "", + "lastModifiedAt": "" + }, + "tags": { + "key1": "value 1", + "key2": "value 2" + }, + "kind": "resource kind", + "properties": { + "comment": "Resource defined structure" + } + } +``` + +### Tag: package-preview-2021-05 + +These settings apply only when `--tag=package-preview-2021-05` is specified on the command line. + +``` yaml $(tag) == 'package-preview-2021-05' +input-file: + - Microsoft.KubernetesConfiguration/preview/2021-05-01-preview/extensions.json + - Microsoft.KubernetesConfiguration/preview/2021-05-01-preview/extensionTypes.json + - Microsoft.KubernetesConfiguration/preview/2021-05-01-preview/kubernetesconfiguration.json +``` + +### Tag: package-2021-03 + +These settings apply only when `--tag=package-2021-03` is specified on the command line. + +``` yaml $(tag) == 'package-2021-03' +input-file: + - Microsoft.KubernetesConfiguration/stable/2021-03-01/kubernetesconfiguration.json +``` + +### Tag: package-preview-2020-10 + +These settings apply only when `--tag=package-preview-2020-10` is specified on the command line. + +``` yaml $(tag) == 'package-preview-2020-10' +input-file: + - Microsoft.KubernetesConfiguration/preview/2020-10-01-preview/kubernetesconfiguration.json +``` + +### Tag: package-2020-07-01-preview + +These settings apply only when `--tag=package-2020-07-01-preview` is specified on the command line. + +``` yaml $(tag) == 'package-2020-07-01-preview' +input-file: + - Microsoft.KubernetesConfiguration/preview/2020-07-01-preview/kubernetesconfiguration.json + - Microsoft.KubernetesConfiguration/preview/2020-07-01-preview/extensions.json +``` + +### Tag: package-2019-11-01-preview + +These settings apply only when `--tag=package-2019-11-01-preview` is specified on the command line. + +``` yaml $(tag) == 'package-2019-11-01-preview' +input-file: + - Microsoft.KubernetesConfiguration/preview/2019-11-01-preview/kubernetesconfiguration.json +``` + +## Suppression + +``` yaml +directive: + - suppress: TopLevelResourcesListBySubscription + reason: 'Microsoft.KubernetesConfiguration is a proxy resource provider under Microsoft.Kubernetes' + from: kubernetesconfiguration.json + - suppress: LongRunningResponseStatusCode + reason: The validation tools do not properly recognize 202 as a supported response code. + from: extensions.json + - suppress: TopLevelResourcesListBySubscription + reason: 'Microsoft.KubernetesConfiguration is a proxy resource provider under Microsoft.Kubernetes' + from: extensions.json + - suppress: LongRunningResponseStatusCode + reason: The validation tools do not properly recognize 202 as a supported response code. + from: fluxconfiguration.json + - suppress: TopLevelResourcesListBySubscription + from: fluxconfiguration.json + reason: 'Microsoft.KubernetesConfiguration is a proxy resource provider under Microsoft.Kubernetes and Microsoft.ContainerServices' + - suppress: BodyTopLevelProperties + where: $.definitions.Extension.properties + from: extensions.json + reason: |- + https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources + + The systemData should be top level element based on the new requirement: + { + "id": "/subscriptions/{id}/resourceGroups/{group}/providers/{rpns}/{type}/{name}", + "name": "{name}", + "type": "{resourceProviderNamespace}/{resourceType}", + "location": "North US", + "systemData":{ + "createdBy": "", + "createdByType": "", + "createdAt": "", + "lastModifiedBy": "", + "lastModifiedByType": "", + "lastModifiedAt": "" + }, + "tags": { + "key1": "value 1", + "key2": "value 2" + }, + "kind": "resource kind", + "properties": { + "comment": "Resource defined structure" + } + } +``` + +--- + +# Code Generation + +## Swagger to SDK + +This section describes what SDK should be generated by the automatic system. +This is not used by Autorest itself. + +``` yaml $(swagger-to-sdk) +swagger-to-sdk: + - repo: azure-resource-manager-schemas + - repo: azure-powershell ```