diff --git a/specification/nginx/Nginx.Management/NginxCertificate.tsp b/specification/nginx/Nginx.Management/NginxCertificate.tsp new file mode 100644 index 000000000000..f4967992d7d2 --- /dev/null +++ b/specification/nginx/Nginx.Management/NginxCertificate.tsp @@ -0,0 +1,66 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./NginxDeployment.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Nginx.NginxPlus; +/** + * Nginx Certificate + */ +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@parentResource(NginxDeployment) +model NginxCertificate + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = NginxCertificate, + KeyName = "certificateName", + SegmentName = "certificates", + NamePattern = "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + >; + + /** The geo-location where the resource lives */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read, Lifecycle.Create) + location?: string; +} + +@armResourceOperations +interface NginxCertificates { + /** + * Get a certificate of given NGINX deployment + */ + get is ArmResourceRead; + + /** + * Create or update the NGINX certificates for given NGINX deployment + */ + createOrUpdate is Azure.ResourceManager.Legacy.Extension.CreateOrUpdateAsync< + Extension.ResourceGroup, + NginxCertificate, + OptionalRequestBody = true + >; + + /** + * Deletes a certificate from the NGINX deployment + */ + delete is ArmResourceDeleteWithoutOkAsync; + + /** + * List all certificates of given NGINX deployment + */ + list is ArmResourceListByParent< + NginxCertificate, + Response = ArmResponse + >; +} + +@@doc(NginxCertificate.name, "The name of certificate"); +@@doc(NginxCertificate.properties, "Nginx Certificate Properties"); +@@doc(NginxCertificates.createOrUpdate::parameters.resource, "The certificate"); diff --git a/specification/nginx/Nginx.Management/NginxConfigurationResponse.tsp b/specification/nginx/Nginx.Management/NginxConfigurationResponse.tsp new file mode 100644 index 000000000000..8fdf9624241f --- /dev/null +++ b/specification/nginx/Nginx.Management/NginxConfigurationResponse.tsp @@ -0,0 +1,81 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./NginxDeployment.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Nginx.NginxPlus; +/** + * Nginx Configuration Response + */ +@parentResource(NginxDeployment) +model NginxConfigurationResponse + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = NginxConfigurationResponse, + KeyName = "configurationName", + SegmentName = "configurations", + NamePattern = "^[a-z][a-z0-9]*$" + >; +} + +@armResourceOperations +interface NginxConfigurationResponses { + /** + * Get the NGINX configuration of given NGINX deployment + */ + get is ArmResourceRead; + + /** + * Create or update the NGINX configuration for given NGINX deployment + */ + createOrUpdate is Azure.ResourceManager.Legacy.Extension.CreateOrUpdateAsync< + Extension.ResourceGroup, + NginxConfigurationResponse, + NginxConfigurationRequest, + OptionalRequestBody = true + >; + + /** + * Reset the NGINX configuration of given NGINX deployment to default + */ + delete is ArmResourceDeleteWithoutOkAsync; + + /** + * List the NGINX configuration of given NGINX deployment. + */ + list is ArmResourceListByParent< + NginxConfigurationResponse, + Response = ArmResponse + >; + + /** + * Analyze an NGINX configuration without applying it to the NGINXaaS deployment + */ + @action("analyze") + analysis is ArmResourceActionSync< + NginxConfigurationResponse, + AnalysisCreate, + ArmResponse, + OptionalRequestBody = true + >; +} + +@@doc(NginxConfigurationResponse.name, + "The name of configuration, only 'default' is supported value due to the singleton of NGINX conf" +); +@@doc(NginxConfigurationResponse.properties, + "Nginx Configuration Response Properties" +); +@@doc(NginxConfigurationResponses.createOrUpdate::parameters.resource, + "The NGINX configuration" +); +@@doc(NginxConfigurationResponses.analysis::parameters.body, + "The NGINX configuration to analyze" +); diff --git a/specification/nginx/Nginx.Management/NginxDeployment.tsp b/specification/nginx/Nginx.Management/NginxDeployment.tsp new file mode 100644 index 000000000000..e2331c64541b --- /dev/null +++ b/specification/nginx/Nginx.Management/NginxDeployment.tsp @@ -0,0 +1,118 @@ +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 Nginx.NginxPlus; +/** + * Nginx Deployment + */ +model NginxDeployment + is Azure.ResourceManager.TrackedResource { + ...ResourceNameParameter< + Resource = NginxDeployment, + KeyName = "deploymentName", + SegmentName = "nginxDeployments", + NamePattern = "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + >; + + /** + * Identity Properties + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + identity?: IdentityProperties; + + /** + * Resource Sku + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + sku?: ResourceSku; +} + +@armResourceOperations +interface NginxDeployments { + /** + * Get the NGINX deployment + */ + get is ArmResourceRead; + + /** + * Create or update the NGINX deployment + */ + createOrUpdate is Azure.ResourceManager.Legacy.Extension.CreateOrUpdateAsync< + Extension.ResourceGroup, + NginxDeployment, + OptionalRequestBody = true + >; + + /** + * Update the NGINX deployment + */ + #suppress "@azure-tools/typespec-azure-resource-manager/lro-location-header" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @patch(#{ implicitOptionality: false }) + update is Azure.ResourceManager.Legacy.CustomPatchAsync< + NginxDeployment, + PatchModel = NginxDeploymentUpdateParameters, + LroHeaders = ArmAsyncOperationHeader & + Azure.Core.Foundations.RetryAfterHeader, + OptionalRequestBody = true + >; + + /** + * Delete the NGINX deployment resource + */ + delete is ArmResourceDeleteWithoutOkAsync; + + /** + * List all NGINX deployments under the specified resource group. + */ + listByResourceGroup is ArmResourceListByParent< + NginxDeployment, + Response = ArmResponse + >; + + /** + * List the NGINX deployments resources + */ + list is ArmListBySubscription< + NginxDeployment, + Response = ArmResponse + >; + + /** + * List Waf Policies of given Nginx deployment + */ + @get + @list + @action("wafPolicies") + wafPolicyList is ArmResourceActionSync< + NginxDeployment, + void, + ArmResponse + >; + + /** + * Get the Nginx Waf Policy of given Nginx deployment + */ + @action("listDefaultWafPolicies") + defaultWafPolicyList is ArmResourceActionSync< + NginxDeployment, + void, + ArmResponse + >; +} + +@@doc(NginxDeployment.name, "The name of targeted NGINX deployment"); +@@doc(NginxDeployment.properties, "Nginx Deployment Properties"); +@@doc(NginxDeployments.createOrUpdate::parameters.resource, + "The Nginx deployment" +); +@@doc(NginxDeployments.update::parameters.properties, + "The Nginx deployment update parameters" +); diff --git a/specification/nginx/Nginx.Management/NginxDeploymentApiKeyResponse.tsp b/specification/nginx/Nginx.Management/NginxDeploymentApiKeyResponse.tsp new file mode 100644 index 000000000000..11f85e769d71 --- /dev/null +++ b/specification/nginx/Nginx.Management/NginxDeploymentApiKeyResponse.tsp @@ -0,0 +1,64 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./NginxDeployment.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Nginx.NginxPlus; +/** + * Nginx Deployment Api Key Response + */ +@parentResource(NginxDeployment) +model NginxDeploymentApiKeyResponse + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = NginxDeploymentApiKeyResponse, + KeyName = "apiKeyName", + SegmentName = "apiKeys", + NamePattern = "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + >; +} + +@armResourceOperations +interface NginxDeploymentApiKeyResponses { + /** + * Get the specified API Key of the given Nginx deployment + */ + get is ArmResourceRead; + + /** + * Create or update an API Key for the Nginx deployment in order to access the dataplane API endpoint + */ + createOrUpdate is Azure.ResourceManager.Legacy.CreateOrUpdateSync< + NginxDeploymentApiKeyResponse, + Request = NginxDeploymentApiKeyRequest, + OptionalRequestBody = true + >; + + /** + * Delete API key for Nginx deployment + */ + delete is ArmResourceDeleteSync; + + /** + * List all API Keys of the given Nginx deployment + */ + list is ArmResourceListByParent< + NginxDeploymentApiKeyResponse, + Response = ArmResponse + >; +} + +@@doc(NginxDeploymentApiKeyResponse.name, "The resource name of the API key"); +@@doc(NginxDeploymentApiKeyResponse.properties, + "Nginx Deployment Api Key Response Properties" +); +@@doc(NginxDeploymentApiKeyResponses.createOrUpdate::parameters.resource, + "The API Key object containing fields (e.g. secret text, expiration date) to upsert the key." +); diff --git a/specification/nginx/Nginx.Management/NginxDeploymentWafPolicy.tsp b/specification/nginx/Nginx.Management/NginxDeploymentWafPolicy.tsp new file mode 100644 index 000000000000..686d769fbac7 --- /dev/null +++ b/specification/nginx/Nginx.Management/NginxDeploymentWafPolicy.tsp @@ -0,0 +1,60 @@ +import "@azure-tools/typespec-azure-core"; +import "@azure-tools/typespec-azure-resource-manager"; +import "@typespec/openapi"; +import "@typespec/rest"; +import "./models.tsp"; +import "./NginxDeployment.tsp"; + +using TypeSpec.Rest; +using Azure.ResourceManager; +using TypeSpec.Http; +using TypeSpec.OpenAPI; + +namespace Nginx.NginxPlus; +/** + * Nginx Deployment Waf Policy + */ +@parentResource(NginxDeployment) +model NginxDeploymentWafPolicy + is Azure.ResourceManager.ProxyResource { + ...ResourceNameParameter< + Resource = NginxDeploymentWafPolicy, + KeyName = "wafPolicyName", + SegmentName = "wafPolicies", + NamePattern = "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + >; +} + +@armResourceOperations +interface NginxDeploymentWafPolicies { + /** + * Get the Nginx Waf Policy of given Nginx deployment + */ + get is ArmResourceRead; + + /** + * Create or update the Nginx Waf Policy for given Nginx deployment + */ + @Azure.Core.useFinalStateVia("azure-async-operation") + create is Azure.ResourceManager.Legacy.Extension.CreateOrUpdateAsync< + Extension.ResourceGroup, + NginxDeploymentWafPolicy, + LroHeaders = ArmAsyncOperationHeader & + ArmLroLocationHeader & + Azure.Core.Foundations.RetryAfterHeader, + OptionalRequestBody = true + >; + + /** + * Reset the Nginx Waf Policy of given Nginx deployment to default + */ + delete is ArmResourceDeleteWithoutOkAsync; +} + +@@doc(NginxDeploymentWafPolicy.name, "The name of Waf Policy"); +@@doc(NginxDeploymentWafPolicy.properties, + "Nginx Deployment Waf Policy Properties" +); +@@doc(NginxDeploymentWafPolicies.create::parameters.resource, + "The Nginx Deployment Waf Policy" +); diff --git a/specification/nginx/Nginx.Management/back-compatible.tsp b/specification/nginx/Nginx.Management/back-compatible.tsp new file mode 100644 index 000000000000..a64800604a43 --- /dev/null +++ b/specification/nginx/Nginx.Management/back-compatible.tsp @@ -0,0 +1,88 @@ +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Azure.ClientGenerator.Core.Legacy; +using Nginx.NginxPlus; + +#suppress "deprecated" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(AnalysisCreate.config, "autorest"); + +#suppress "deprecated" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(AnalysisResult.data, "autorest"); + +#suppress "deprecated" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(NginxDeploymentProperties.nginxAppProtect, "autorest"); + +#suppress "deprecated" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(NginxDeploymentScalingProperties.autoScaleSettings); + +#suppress "deprecated" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(ScaleProfile.capacity, "autorest"); + +#suppress "deprecated" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +#suppress "@azure-tools/typespec-azure-core/no-legacy-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +@@flattenProperty(NginxDeploymentUpdateProperties.nginxAppProtect, "autorest"); + +@@clientLocation(NginxDeploymentApiKeyResponses.get, "ApiKeys", "!csharp"); +@@clientLocation(NginxDeploymentApiKeyResponses.createOrUpdate, + "ApiKeys", + "!csharp" +); +@@clientName(NginxDeploymentApiKeyResponses.createOrUpdate::parameters.resource, + "body" +); +@@clientLocation(NginxDeploymentApiKeyResponses.delete, "ApiKeys", "!csharp"); +@@clientLocation(NginxDeploymentApiKeyResponses.list, "ApiKeys", "!csharp"); + +@@clientLocation(NginxCertificates.get, "Certificates", "!csharp"); +@@clientLocation(NginxCertificates.createOrUpdate, "Certificates", "!csharp"); +@@clientName(NginxCertificates.createOrUpdate::parameters.resource, "body"); +@@clientLocation(NginxCertificates.delete, "Certificates", "!csharp"); +@@clientLocation(NginxCertificates.list, "Certificates", "!csharp"); + +@@clientLocation(NginxConfigurationResponses.get, "Configurations", "!csharp"); +@@clientLocation(NginxConfigurationResponses.createOrUpdate, + "Configurations", + "!csharp" +); +@@clientName(NginxConfigurationResponses.createOrUpdate::parameters.resource, + "body" +); +@@clientLocation(NginxConfigurationResponses.delete, + "Configurations", + "!csharp" +); +@@clientLocation(NginxConfigurationResponses.list, "Configurations", "!csharp"); +@@clientLocation(NginxConfigurationResponses.analysis, + "Configurations", + "!csharp" +); + +@@clientLocation(NginxDeployments.get, "Deployments", "!csharp"); +@@clientLocation(NginxDeployments.createOrUpdate, "Deployments", "!csharp"); +@@clientName(NginxDeployments.createOrUpdate::parameters.resource, "body"); +@@clientLocation(NginxDeployments.update, "Deployments", "!csharp"); +@@clientName(NginxDeployments.update::parameters.properties, "body"); +@@clientLocation(NginxDeployments.delete, "Deployments", "!csharp"); +@@clientLocation(NginxDeployments.listByResourceGroup, + "Deployments", + "!csharp" +); +@@clientLocation(NginxDeployments.list, "Deployments", "!csharp"); +@@clientLocation(NginxDeployments.wafPolicyList, "WafPolicy", "!csharp"); +@@clientLocation(NginxDeployments.defaultWafPolicyList, + "DefaultWafPolicy", + "!csharp" +); +@@clientName(NginxDeployments.wafPolicyList, "list"); +@@clientName(NginxDeployments.defaultWafPolicyList, "list"); + +@@clientLocation(NginxDeploymentWafPolicies.get, "WafPolicy", "!csharp"); +@@clientLocation(NginxDeploymentWafPolicies.create, "WafPolicy", "!csharp"); +@@clientName(NginxDeploymentWafPolicies.create::parameters.resource, "body"); +@@clientLocation(NginxDeploymentWafPolicies.delete, "WafPolicy", "!csharp"); diff --git a/specification/nginx/Nginx.Management/client.tsp b/specification/nginx/Nginx.Management/client.tsp new file mode 100644 index 000000000000..d7fce072d417 --- /dev/null +++ b/specification/nginx/Nginx.Management/client.tsp @@ -0,0 +1,167 @@ +import "./main.tsp"; +import "@azure-tools/typespec-client-generator-core"; + +using Azure.ClientGenerator.Core; +using Nginx.NginxPlus; +using Azure.Core; + +@@clientName(Nginx.NginxPlus, "NginxManagementClient", "javascript"); +@@clientName(Nginx.NginxPlus, "NginxManagementClient", "python"); + +// CommonTypes +@@clientName(Azure.ResourceManager.CommonTypes.ManagedServiceIdentity, + "IdentityProperties", + "!csharp" +); +@@clientName(Azure.ResourceManager.CommonTypes.UserAssignedIdentity, + "UserIdentityProperties", + "!csharp" +); +@@clientName(Azure.ResourceManager.CommonTypes.ManagedServiceIdentityType, + "IdentityType", + "!csharp" +); +// Sku has many more properties than ResourceSku +@@clientName(Azure.ResourceManager.CommonTypes.Sku, "ResourceSku", "!csharp"); + +// Client location overrides for NginxDeployments operations +@@clientLocation(NginxDeployments.get, "Deployments", "!csharp"); +@@clientLocation(NginxDeployments.createOrUpdate, "Deployments", "!csharp"); +@@clientLocation(NginxDeployments.update, "Deployments", "!csharp"); +@@clientLocation(NginxDeployments.delete, "Deployments", "!csharp"); +@@clientLocation(NginxDeployments.listByResourceGroup, + "Deployments", + "!csharp" +); + +// Java client name overrides to maintain consistent casing +@@clientName(NginxPublicIPAddress, "NginxPublicIpAddress", "java"); +@@clientName(NginxPrivateIPAddress, "NginxPrivateIpAddress", "java"); +@@clientName(NginxPrivateIPAllocationMethod, + "NginxPrivateIpAllocationMethod", + "java" +); +@@clientName(NginxFrontendIPConfiguration, + "NginxFrontendIpConfiguration", + "java" +); + +// Java property name overrides to maintain consistent casing +@@clientName(NginxNetworkProfile.frontEndIPConfiguration, + "frontEndIpConfiguration", + "java" +); +@@clientName(NginxFrontendIPConfiguration.publicIPAddresses, + "publicIpAddresses", + "java" +); +@@clientName(NginxFrontendIPConfiguration.privateIPAddresses, + "privateIpAddresses", + "java" +); +@@clientName(NginxPrivateIPAddress.privateIPAddress, + "privateIpAddress", + "java" +); +@@clientName(NginxPrivateIPAddress.privateIPAllocationMethod, + "privateIpAllocationMethod", + "java" +); + +@@alternateType(NginxNetworkInterfaceConfiguration.subnetId, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@alternateType(NginxPrivateIPAddress.privateIPAddress, + Azure.Core.ipV4Address, + "csharp" +); +@@alternateType(NginxPrivateIPAddress.subnetId, + Azure.Core.armResourceIdentifier, + "csharp" +); +@@alternateType(NginxCertificateProperties.keyVaultSecretCreated, + utcDateTime, + "csharp" +); + +@@clientName(AnalysisCreate, "NginxAnalysisContent", "csharp"); +@@clientName(NginxCertificateErrorResponseBody, + "NginxCertificateError", + "csharp" +); +@@clientName(NginxConfigurationResponseProperties, + "NginxConfigurationProperties", + "csharp" +); +@@clientName(NginxConfigurationRequestProperties, + "NginxConfigurationCreateOrUpdateProperties", + "csharp" +); + +@@clientName(AnalysisResult, "NginxAnalysisResult", "csharp"); +@@clientName(AnalysisDiagnostic, "NginxAnalysisDiagnostic", "csharp"); +@@clientName(DiagnosticItem, "NginxDiagnosticItem", "csharp"); +@@clientName(ProvisioningState, "NginxProvisioningState", "csharp"); +@@clientName(ScaleProfile, "NginxScaleProfile", "csharp"); +@@clientName(ScaleProfileCapacity, "NginxScaleProfileCapacity", "csharp"); +@@clientName(WebApplicationFirewallSettings, "NginxWafSettings", "csharp"); +@@clientName(WebApplicationFirewallStatus, "NginxWafStatus", "csharp"); +@@clientName(WebApplicationFirewallPackage, "NginxWafPackage", "csharp"); +@@clientName(WebApplicationFirewallComponentVersions, + "NginxWafComponentVersions", + "csharp" +); + +@@clientName(AnalysisCreateConfig, "NginxAnalysisConfig", "csharp"); +@@clientName(ActivationState, + "WebApplicationFirewallActivationState", + "csharp" +); +@@clientName(AnalysisResultData, "NginxAnalysisResultDetails", "csharp"); +@@clientName(Level, "NginxDiagnosticLevel", "csharp"); +@@clientName(NginxConfigurationResponse, "NginxConfiguration", "csharp"); +@@clientName(NginxConfigurationResponseProperties, + "NginxConfigurationProperties", + "csharp" +); +@@clientName(NginxDeploymentApiKeyResponse, "NginxDeploymentApiKey", "csharp"); +@@clientName(NginxDeploymentApiKeyResponseProperties, + "NginxDeploymentApiKeyProperties", + "csharp" +); +@@clientName(NginxConfigurationProtectedFileRequest, + "NginxConfigurationProtectedFileContent", + "csharp" +); +@@clientName(NginxConfigurationProtectedFileResponse, + "NginxConfigurationProtectedFileResult", + "csharp" +); + +@@alternateType(NginxDeploymentUpdateParameters.location, + azureLocation, + "csharp" +); +@@clientName(ResourceSku, "NginxResourceSku", "csharp"); +@@clientName(WebApplicationFirewallStatus, + "WebApplicationFirewallStatus", + "csharp" +); +@@clientName(WebApplicationFirewallPackage, + "WebApplicationFirewallPackage", + "csharp" +); +@@clientName(WebApplicationFirewallComponentVersions, + "WebApplicationFirewallComponentVersions", + "csharp" +); +@@clientName(WebApplicationFirewallSettings, + "WebApplicationFirewallSettings", + "csharp" +); +@@clientName(NginxDeployments.wafPolicyList, "GetWafPolicies", "csharp"); +@@clientName(NginxDeployments.defaultWafPolicyList, + "GetDefaultWafPolicies", + "csharp" +); diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_CreateOrUpdate.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_CreateOrUpdate.json new file mode 100644 index 000000000000..e46b5f0ff395 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_CreateOrUpdate.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "apiKeyName": "myApiKey", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "endDateTime": "2024-09-01T00:00:00Z", + "secretText": "00000000-0000-0000-0000-000000000000" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myApiKey", + "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", + "properties": { + "endDateTime": "2024-09-01T00:00:00Z", + "hint": "000" + } + } + }, + "201": { + "body": { + "name": "myApiKey", + "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", + "properties": { + "endDateTime": "2024-09-01T00:00:00Z", + "hint": "000" + } + } + } + }, + "operationId": "ApiKeys_CreateOrUpdate", + "title": "ApiKeys_CreateOrUpdate" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_Delete.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_Delete.json new file mode 100644 index 000000000000..6ae3a9f31b41 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_Delete.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "apiKeyName": "myApiKey", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "ApiKeys_Delete", + "title": "ApiKeys_Delete" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_Get.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_Get.json new file mode 100644 index 000000000000..e83b005bb508 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_Get.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "apiKeyName": "myApiKey", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myApiKey", + "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", + "properties": { + "endDateTime": "2024-09-01T00:00:00Z", + "hint": "000" + } + } + } + }, + "operationId": "ApiKeys_Get", + "title": "ApiKeys_Get" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_List.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_List.json new file mode 100644 index 000000000000..69c5f5c24d18 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/ApiKeys_List.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myApiKey", + "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", + "properties": { + "endDateTime": "2024-09-01T00:00:00Z", + "hint": "000" + } + }, + { + "name": "myApiKey2", + "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey2", + "properties": { + "endDateTime": "2024-10-01T00:00:00Z", + "hint": "111" + } + } + ] + } + } + }, + "operationId": "ApiKeys_List", + "title": "ApiKeys_List" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_CreateOrUpdate.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_CreateOrUpdate.json new file mode 100644 index 000000000000..6f6efe5e7de5 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_CreateOrUpdate.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "certificateName": "default", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID", + "keyVirtualPath": "/src/cert/somekey.key" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", + "properties": { + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID", + "keyVirtualPath": "/src/cert/somekey.key", + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", + "properties": { + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID", + "keyVirtualPath": "/src/cert/somekey.key", + "provisioningState": "Accepted" + } + } + } + }, + "operationId": "Certificates_CreateOrUpdate", + "title": "Certificates_CreateOrUpdate" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_Delete.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_Delete.json new file mode 100644 index 000000000000..e2c5005888f5 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_Delete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "certificateName": "default", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://example.com/operationstatus" + } + }, + "204": {} + }, + "operationId": "Certificates_Delete", + "title": "Certificates_Delete" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_Get.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_Get.json new file mode 100644 index 000000000000..ead03270ddcd --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_Get.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "certificateName": "default", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", + "properties": { + "certificateError": { + "code": "CertificateNotYetValid", + "message": "The certificate is not yet valid. The certificate is not yet valid. NotBefore: '2020-01-01T00:00:00Z', NotAfter: '2020-01-01T00:00:00Z'" + }, + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretCreated": "2020-01-01T00:00:00Z", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID", + "keyVaultSecretVersion": "12345678ef9a12345678ef9a12345678", + "keyVirtualPath": "/src/cert/somekey.key", + "provisioningState": "Succeeded", + "sha1Thumbprint": "1234567890ABCDEF1234567890ABCDEF12345678" + } + } + } + }, + "operationId": "Certificates_Get", + "title": "Certificates_Get" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_List.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_List.json new file mode 100644 index 000000000000..95880138e89f --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Certificates_List.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "cert1", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert1", + "properties": { + "certificateError": { + "code": "CertificateNotYetValid", + "message": "The certificate is not yet valid. The certificate is not yet valid. NotBefore: '2020-01-01T00:00:00Z', NotAfter: '2020-01-01T00:00:00Z'" + }, + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretCreated": "2020-01-01T00:00:00Z", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID", + "keyVaultSecretVersion": "12345678ef9a12345678ef9a12345678", + "keyVirtualPath": "/src/cert/somekey.key", + "provisioningState": "Succeeded", + "sha1Thumbprint": "1234567890ABCDEF1234567890ABCDEF12345678" + } + }, + { + "name": "cert2", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert2", + "properties": { + "certificateError": null, + "certificateVirtualPath": "/src/cert/somePath2.cert", + "keyVaultSecretCreated": "2020-01-01T00:00:00Z", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID2", + "keyVaultSecretVersion": "12345678ef9a12345678ef9a12345678", + "keyVirtualPath": "/src/cert/somekey2.key", + "provisioningState": "Succeeded", + "sha1Thumbprint": "1234567890ABCDEF1234567890ABCDEF12345678" + } + } + ] + } + } + }, + "operationId": "Certificates_List", + "title": "Certificates_List" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_Analysis.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_Analysis.json new file mode 100644 index 000000000000..0fb71dffd0ad --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_Analysis.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "configurationName": "default", + "deploymentName": "myDeployment", + "requestBody": { + "config": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "rootFile": "/etc/nginx/nginx.conf" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "data": { + "errors": [ + { + "description": "Directives outside the http context are not allowed", + "directive": "worker_processes", + "file": "/etc/nginx/nginx.conf", + "id": "config-analysis-error-1", + "line": 2, + "message": "You are not allowed to set the worker_processes directive", + "rule": "nginx-azure-load-balancer-allowed-directives" + } + ] + }, + "status": "FAILED" + } + } + }, + "operationId": "Configurations_Analysis", + "title": "Configurations_Analysis" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_CreateOrUpdate.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_CreateOrUpdate.json new file mode 100644 index 000000000000..7f5555892697 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_CreateOrUpdate.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "configurationName": "default", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "rootFile": "/etc/nginx/nginx.conf" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "properties": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "provisioningState": "Succeeded", + "rootFile": "/etc/nginx/nginx.conf" + } + } + }, + "201": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "properties": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "provisioningState": "Accepted", + "rootFile": "/etc/nginx/nginx.conf" + } + } + } + }, + "operationId": "Configurations_CreateOrUpdate", + "title": "Configurations_CreateOrUpdate" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_Delete.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_Delete.json new file mode 100644 index 000000000000..6277959dfa74 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_Delete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "configurationName": "default", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://example.com/operationstatus" + } + }, + "204": {} + }, + "operationId": "Configurations_Delete", + "title": "Configurations_Delete" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_Get.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_Get.json new file mode 100644 index 000000000000..00e4af4d2622 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_Get.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "configurationName": "default", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "properties": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "protectedFiles": [ + { + "contentHash": "sha256:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF", + "virtualPath": "/etc/nginx/protected-file.cert" + } + ], + "provisioningState": "Succeeded", + "rootFile": "/etc/nginx/nginx.conf" + } + } + } + }, + "operationId": "Configurations_Get", + "title": "Configurations_Get" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_List.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_List.json new file mode 100644 index 000000000000..9cce873d1e1a --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Configurations_List.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "properties": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "protectedFiles": [ + { + "contentHash": "sha256:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF", + "virtualPath": "/etc/nginx/protected-file.cert" + } + ], + "provisioningState": "Succeeded", + "rootFile": "/etc/nginx/nginx.conf" + } + } + ] + } + } + }, + "operationId": "Configurations_List", + "title": "Configurations_List" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/DefaultWafPolicy_List.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/DefaultWafPolicy_List.json new file mode 100644 index 000000000000..336f7188d490 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/DefaultWafPolicy_List.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/...&$skiptoken=...", + "value": [ + { + "content": "QUJDREVGR0g=", + "filepath": "/etc/nginx/waf/policy.conf" + } + ] + } + } + }, + "operationId": "DefaultWafPolicy_List", + "title": "DefaultWafPolicy_List" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Create.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Create.json new file mode 100644 index 000000000000..3d7664249a5e --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Create.json @@ -0,0 +1,165 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "requestBody": { + "name": "myDeployment", + "location": "West US", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + } + }, + "scalingProperties": { + "capacity": 10 + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + }, + "tags": { + "Environment": "Dev" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + } + }, + "tags": { + "Environment": "Dev" + } + } + }, + "201": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Accepted", + "scalingProperties": { + "capacity": 10 + } + }, + "tags": { + "Environment": "Dev" + } + } + } + }, + "operationId": "Deployments_CreateOrUpdate", + "title": "Deployments_Create" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Delete.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Delete.json new file mode 100644 index 000000000000..eb934fe524e3 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Delete.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://example.com/operationstatus" + } + }, + "204": {} + }, + "operationId": "Deployments_Delete", + "title": "Deployments_Delete" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Get.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Get.json new file mode 100644 index 000000000000..f35d47d8b48f --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Get.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + } + } + } + }, + "operationId": "Deployments_Get", + "title": "Deployments_Get" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Get_AutoScale.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Get_AutoScale.json new file mode 100644 index 000000000000..d9750b127fe6 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Get_AutoScale.json @@ -0,0 +1,62 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "autoScaleSettings": { + "profiles": [ + { + "name": "ExampleProfile", + "capacity": { + "max": 50, + "min": 10 + } + } + ] + } + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + } + } + } + }, + "operationId": "Deployments_Get", + "title": "Deployments_Get_AutoScale" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_List.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_List.json new file mode 100644 index 000000000000..1549e8c2f2b4 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_List.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + } + } + } + ] + } + } + }, + "operationId": "Deployments_List", + "title": "Deployments_List" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_ListByResourceGroup.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_ListByResourceGroup.json new file mode 100644 index 000000000000..d3db3d36fba4 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_ListByResourceGroup.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + } + } + } + ] + } + } + }, + "operationId": "Deployments_ListByResourceGroup", + "title": "Deployments_ListByResourceGroup" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Update.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Update.json new file mode 100644 index 000000000000..9715a899d934 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_Update.json @@ -0,0 +1,97 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + } + } + }, + "tags": { + "Environment": "Dev" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + }, + "tags": { + "Environment": "Dev" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/locations/westus/operationResults/00000000-0000-0000-0000-000000000000/Spring/default?api-version=2025-03-01-preview" + } + } + }, + "operationId": "Deployments_Update", + "title": "Deployments_Update" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_UpdateSubnet.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_UpdateSubnet.json new file mode 100644 index 000000000000..f8cd3ebcadaa --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Deployments_UpdateSubnet.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "networkProfile": { + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet2/subnets/mySubnet" + } + } + }, + "tags": { + "Environment": "Dev" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet2/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + }, + "tags": { + "Environment": "Dev" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/locations/westus/operationResults/00000000-0000-0000-0000-000000000000/Spring/default?api-version=2025-03-01-preview" + } + } + }, + "operationId": "Deployments_Update", + "title": "Deployments_UpdateSubnet" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Operations_List.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Operations_List.json new file mode 100644 index 000000000000..f4935786f6a0 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/Operations_List.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "Nginx.NginxPlus/nginxDeployments/write", + "display": { + "description": "Write deployments resource", + "operation": "write", + "provider": "Nginx.NginxPlus", + "resource": "deployments" + } + } + ] + } + } + }, + "operationId": "Operations_List", + "title": "Operations_List" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_Create.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_Create.json new file mode 100644 index 000000000000..83082d9e17c1 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_Create.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "content": "QUJDREVGR0g=", + "filepath": "/etc/nginx/waf/policy.conf" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "wafPolicyName": "myWafPolicy" + }, + "responses": { + "200": { + "body": { + "name": "myWafPolicy", + "type": "Nginx.NginxPlus/nginxDeployments/wafPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/wafPolicies/myWafPolicy", + "properties": { + "applyingState": { + "code": "NotApplied", + "displayStatus": "Not Applied", + "time": "2025-03-02T10:05:00.000Z" + }, + "compilingState": { + "code": "Succeeded", + "displayStatus": "Succeeded", + "time": "2025-03-02T10:05:00.000Z" + }, + "content": "QUJDREVGR0g=", + "filepath": "/etc/nginx/waf/policy.conf", + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "name": "myWafPolicy", + "type": "Nginx.NginxPlus/nginxDeployments/wafPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/wafPolicies/myWafPolicy", + "properties": { + "applyingState": { + "code": "NotStarted", + "displayStatus": "Not Started", + "time": "2025-03-02T10:05:00.000Z" + }, + "compilingState": { + "code": "NotStarted", + "displayStatus": "Not Started", + "time": "2025-03-02T10:05:00.000Z" + }, + "content": "QUJDREVGR0g=", + "filepath": "/etc/nginx/waf/policy.conf", + "provisioningState": "Accepted" + } + } + } + }, + "operationId": "WafPolicy_Create", + "title": "WafPolicy_Create" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_Delete.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_Delete.json new file mode 100644 index 000000000000..917eecf1aca3 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_Delete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "wafPolicyName": "myWafPolicy" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://example.com/operationstatus" + } + }, + "204": {} + }, + "operationId": "WafPolicy_Delete", + "title": "WafPolicy_Delete" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_Get.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_Get.json new file mode 100644 index 000000000000..ded8d8abc2b0 --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_Get.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "wafPolicyName": "myWafPolicy" + }, + "responses": { + "200": { + "body": { + "name": "myWafPolicy", + "type": "Nginx.NginxPlus/nginxDeployments/wafPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/wafPolicies/myWafPolicy", + "properties": { + "applyingState": { + "code": "Succeeded", + "displayStatus": "Policy Applied", + "time": "2025-03-02T10:05:00.000Z" + }, + "compilingState": { + "code": "Succeeded", + "displayStatus": "Compiled Successfully", + "time": "2025-03-02T10:00:00.000Z" + }, + "content": "QUJDREVGR0g=", + "filepath": "/etc/nginx/waf/policy.conf", + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "WafPolicy_Get", + "title": "WafPolicy_Get" +} diff --git a/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_List.json b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_List.json new file mode 100644 index 000000000000..cade92a4dd9c --- /dev/null +++ b/specification/nginx/Nginx.Management/examples/2025-03-01-preview/WafPolicy_List.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/.../wafPolicies?api-version=2025-03-01-preview&$skiptoken=...", + "value": [ + { + "name": "wafPolicy1", + "type": "Nginx.NginxPlus/nginxDeployments/wafPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/wafPolicies/wafPolicy1", + "properties": { + "applyingState": { + "code": "Succeeded", + "displayStatus": "Policy Applied", + "time": "2025-03-02T10:05:00.000Z" + }, + "compilingState": { + "code": "Succeeded", + "displayStatus": "Compiled Successfully", + "time": "2025-03-02T10:00:00.000Z" + }, + "filepath": "/etc/nginx/waf/policy.conf", + "provisioningState": "Succeeded" + } + }, + { + "name": "wafPolicy2", + "type": "Nginx.NginxPlus/nginxDeployments/wafPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/wafPolicies/wafPolicy2", + "properties": { + "applyingState": { + "code": "Succeeded", + "displayStatus": "Policy Applied", + "time": "2025-03-02T10:05:00.000Z" + }, + "compilingState": { + "code": "Succeeded", + "displayStatus": "Compiled Successfully", + "time": "2025-03-02T10:00:00.000Z" + }, + "filepath": "/etc/nginx/waf/policy.conf", + "provisioningState": "Succeeded" + } + } + ] + } + } + }, + "operationId": "WafPolicy_List", + "title": "WafPolicy_List" +} diff --git a/specification/nginx/Nginx.Management/main.tsp b/specification/nginx/Nginx.Management/main.tsp new file mode 100644 index 000000000000..b45cd5d162b4 --- /dev/null +++ b/specification/nginx/Nginx.Management/main.tsp @@ -0,0 +1,47 @@ +/** + * PLEASE DO NOT REMOVE - USED FOR CONVERTER METRICS + * Generated by package: @autorest/openapi-to-typespec + * Parameters used: + * isFullCompatible: true + * guessResourceKey: false + * Version: 0.11.5 + * Date: 2025-08-08T07:03:48.150Z + */ +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 "./NginxDeploymentApiKeyResponse.tsp"; +import "./NginxCertificate.tsp"; +import "./NginxConfigurationResponse.tsp"; +import "./NginxDeployment.tsp"; +import "./NginxDeploymentWafPolicy.tsp"; + +using TypeSpec.Rest; +using TypeSpec.Http; +using Azure.ResourceManager.Foundations; +using Azure.Core; +using Azure.ResourceManager; +using TypeSpec.Versioning; + +@armProviderNamespace +@service(#{ title: "Nginx.NginxPlus" }) +@versioned(Versions) +@armCommonTypesVersion(Azure.ResourceManager.CommonTypes.Versions.v6) +namespace Nginx.NginxPlus; + +/** + * The available API versions. + */ +enum Versions { + /** + * The 2025-03-01-preview API version. + */ + @useDependency(Azure.ResourceManager.Versions.v1_0_Preview_1) + @useDependency(Azure.Core.Versions.v1_0_Preview_1) + v2025_03_01_preview: "2025-03-01-preview", +} + +interface Operations extends Azure.ResourceManager.Operations {} diff --git a/specification/nginx/Nginx.Management/models.tsp b/specification/nginx/Nginx.Management/models.tsp new file mode 100644 index 000000000000..49c34be0add9 --- /dev/null +++ b/specification/nginx/Nginx.Management/models.tsp @@ -0,0 +1,1213 @@ +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 Nginx.NginxPlus; + +/** + * The type of identity that created the resource. + */ +union CreatedByType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + User: "User", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Application: "Application", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + ManagedIdentity: "ManagedIdentity", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Key: "Key", +} + +/** + * Provisioning State + */ +union ProvisioningState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Accepted: "Accepted", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Creating: "Creating", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Updating: "Updating", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Deleting: "Deleting", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Succeeded: "Succeeded", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Failed: "Failed", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Canceled: "Canceled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Deleted: "Deleted", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + NotSpecified: "NotSpecified", +} + +/** + * Warning or Info + */ +union Level { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Info: "Info", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Warning: "Warning", +} + +/** + * Identity Type + */ +union IdentityType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + SystemAssigned: "SystemAssigned", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + UserAssigned: "UserAssigned", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `SystemAssigned, UserAssigned`: "SystemAssigned, UserAssigned", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + None: "None", +} + +/** + * Nginx Private IP Allocation Method + */ +union NginxPrivateIPAllocationMethod { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Static: "Static", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Dynamic: "Dynamic", +} + +/** + * The activation state of the WAF. Use 'Enabled' to enable the WAF and 'Disabled' to disable it. + */ +union ActivationState { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Enabled: "Enabled", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Disabled: "Disabled", +} + +/** + * Machine readable code indicating the compilation status of a WAF Policy. + */ +union NginxDeploymentWafPolicyCompilingStatusCode { + string, + + /** + * The compilation of the custom waf policy has not started + */ + NotStarted: "NotStarted", + + /** + * The compilation of the custom waf policy is in progress + */ + InProgress: "InProgress", + + /** + * The compilation of the custom waf policy is completed successfully and can now be referenced in the nginx config. + */ + Succeeded: "Succeeded", + + /** + * The compilation of the custom waf policy failed. + */ + Failed: "Failed", +} + +/** + * Machine readable code indicating the applying status code of a WAF Policy. + */ +union NginxDeploymentWafPolicyApplyingStatusCode { + string, + + /** + * The policy is not referenced in the nginx config and not applied. + */ + NotApplied: "NotApplied", + + /** + * The policy is referenced in the nginx config and is applying. + */ + Applying: "Applying", + + /** + * The policy is referenced in the nginx config and that config has been successfully applied. + */ + Succeeded: "Succeeded", + + /** + * The policy is referenced in the nginx config and that config failed to apply. + */ + Failed: "Failed", + + /** + * The policy is now not referenced in the nginx config and its being removed from the applied nginx config. + */ + Removing: "Removing", +} + +/** + * The intended executor of the operation; as in Resource Based Access Control (RBAC) and audit logs UX. Default value is "user,system" + */ +union Origin { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + user: "user", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + system: "system", + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + `user,system`: "user,system", +} + +/** + * Enum. Indicates the action type. "Internal" refers to actions that are for internal only APIs. + */ +union ActionType { + string, + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + Internal: "Internal", +} + +/** + * Nginx Deployment Api Key Request + */ +model NginxDeploymentApiKeyRequest { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + id?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + name?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + type?: string; + + /** + * Nginx Deployment Api Key Request Properties + */ + properties?: NginxDeploymentApiKeyRequestProperties; + + /** + * Metadata pertaining to creation and last modification of the resource. + */ + @visibility(Lifecycle.Read) + systemData?: SystemData; +} + +/** + * Nginx Deployment Api Key Request Properties + */ +model NginxDeploymentApiKeyRequestProperties { + /** + * Secret text to be used as a Dataplane API Key. This is a write only property that can never be read back, but the first three characters will be returned in the 'hint' property. + */ + @secret + secretText?: string; + + /** + * The time after which this Dataplane API Key is no longer valid. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endDateTime?: utcDateTime; +} + +/** + * Nginx Deployment Api Key Response Properties + */ +#suppress "@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model NginxDeploymentApiKeyResponseProperties { + /** + * The first three characters of the secret text to help identify it in use. This property is read-only. + */ + @visibility(Lifecycle.Read) + hint?: string; + + /** + * The time after which this Dataplane API Key is no longer valid. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + endDateTime?: utcDateTime; +} + +/** + * Nginx Deployment Api Key List Response + */ +model NginxDeploymentApiKeyListResponse + is Azure.Core.Page; + +/** + * Nginx Certificate Properties + */ +model NginxCertificateProperties { + /** + * Provisioning State + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + keyVirtualPath?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + certificateVirtualPath?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + keyVaultSecretId?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + sha1Thumbprint?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + keyVaultSecretVersion?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + keyVaultSecretCreated?: utcDateTime; + + /** + * Nginx Certificate Error Response Body + */ + certificateError?: NginxCertificateErrorResponseBody; +} + +/** + * Nginx Certificate Error Response Body + */ +model NginxCertificateErrorResponseBody { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + code?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + message?: string; +} + +/** + * Nginx Certificate List Response + */ +model NginxCertificateListResponse is Azure.Core.Page; + +/** + * Response of a list operation. + */ +model NginxConfigurationListResponse + is Azure.Core.Page; + +/** + * Nginx Configuration Response Properties + */ +model NginxConfigurationResponseProperties { + /** + * Provisioning State + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + files?: NginxConfigurationFile[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + protectedFiles?: NginxConfigurationProtectedFileResponse[]; + + /** + * Nginx Configuration Package + */ + package?: NginxConfigurationPackage; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + rootFile?: string; +} + +/** + * Nginx Configuration File + */ +model NginxConfigurationFile { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + content?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + virtualPath?: string; +} + +/** + * Nginx Configuration Protected File Response + */ +model NginxConfigurationProtectedFileResponse { + /** + * The virtual path of the protected file. + */ + virtualPath?: string; + + /** + * The hash of the content of the file. This value is used to determine if the file has changed. + */ + contentHash?: string; +} + +/** + * Nginx Configuration Package + */ +model NginxConfigurationPackage { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + data?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + protectedFiles?: string[]; +} + +/** + * Nginx Configuration Request + */ +model NginxConfigurationRequest { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + id?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + name?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + type?: string; + + /** + * Nginx Configuration Request Properties + */ + properties?: NginxConfigurationRequestProperties; + + /** + * Metadata pertaining to creation and last modification of the resource. + */ + @visibility(Lifecycle.Read) + systemData?: SystemData; +} + +/** + * Nginx Configuration Request Properties + */ +model NginxConfigurationRequestProperties { + /** + * Provisioning State + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + files?: NginxConfigurationFile[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + protectedFiles?: NginxConfigurationProtectedFileRequest[]; + + /** + * Nginx Configuration Package + */ + package?: NginxConfigurationPackage; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + rootFile?: string; +} + +/** + * Nginx Configuration Protected File Request + */ +model NginxConfigurationProtectedFileRequest { + /** + * The content of the protected file. This value is a PUT only value. If you perform a GET request on this value, it will be empty because it is a protected file. + */ + @secret + content?: string; + + /** + * The virtual path of the protected file. + */ + virtualPath?: string; + + /** + * The hash of the content of the file. This value is used to determine if the file has changed. + */ + contentHash?: string; +} + +/** + * The request body for creating an analysis for an NGINX configuration. + */ +model AnalysisCreate { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + config: AnalysisCreateConfig; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AnalysisCreateConfig { + /** + * The root file of the NGINX config file(s). It must match one of the files' filepath. + */ + rootFile?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + files?: NginxConfigurationFile[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + protectedFiles?: NginxConfigurationProtectedFileRequest[]; + + /** + * Nginx Configuration Package + */ + package?: NginxConfigurationPackage; +} + +/** + * The response body for an analysis request. Contains the status of the analysis and any errors. + */ +model AnalysisResult { + /** + * The status of the analysis. + */ + status: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + data?: AnalysisResultData; +} + +#suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" +model AnalysisResultData { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + errors?: AnalysisDiagnostic[]; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + diagnostics?: DiagnosticItem[]; +} + +/** + * An error object found during the analysis of an NGINX configuration. + */ +model AnalysisDiagnostic { + /** + * Unique identifier for the error + */ + id?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + directive: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + description: string; + + /** + * the filepath of the most relevant config file + */ + file: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + line: float32; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + message: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + rule: string; +} + +/** + * A diagnostic is a message associated with an NGINX config. The Analyzer returns diagnostics with a level indicating the importance of the diagnostic with optional category. + */ +model DiagnosticItem { + /** + * Unique identifier for the diagnostic. + */ + id?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + directive: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + description: string; + + /** + * The filepath of the most relevant config file. + */ + file: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + line: float32; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + message: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + rule: string; + + /** + * Warning or Info + */ + level: Level; + + /** + * Category of warning like Best-practices, Recommendation, Security etc. + */ + category?: string; +} + +/** + * Identity Properties + */ +model IdentityProperties { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + principalId?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + tenantId?: string; + + /** + * Identity Type + */ + type?: IdentityType; + + /** + * Dictionary of + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + userAssignedIdentities?: Record; +} + +/** + * User Identity Properties + */ +model UserIdentityProperties { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + principalId?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + clientId?: string; +} + +/** + * Nginx Deployment Properties + */ +model NginxDeploymentProperties { + /** + * Provisioning State + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + nginxVersion?: string; + + /** + * Nginx Network Profile + */ + networkProfile?: NginxNetworkProfile; + + /** + * The IP address of the deployment. + */ + @visibility(Lifecycle.Read) + ipAddress?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + enableDiagnosticsSupport?: boolean; + + /** + * Nginx Logging + */ + logging?: NginxLogging; + + /** + * Information on how the deployment will be scaled. + */ + scalingProperties?: NginxDeploymentScalingProperties; + + /** + * Autoupgrade settings of a deployment. + */ + autoUpgradeProfile?: AutoUpgradeProfile; + + /** + * Nginx Deployment User Profile + */ + userProfile?: NginxDeploymentUserProfile; + + /** + * Settings for NGINX App Protect (NAP) + */ + nginxAppProtect?: NginxDeploymentPropertiesNginxAppProtect; + + /** + * Dataplane API endpoint for the caller to update the NGINX state of the deployment. + */ + @visibility(Lifecycle.Read) + dataplaneApiEndpoint?: string; +} + +/** + * Nginx Network Profile + */ +model NginxNetworkProfile { + /** + * Nginx Frontend IP Configuration + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + frontEndIPConfiguration?: NginxFrontendIPConfiguration; + + /** + * Nginx Network Interface Configuration + */ + networkInterfaceConfiguration?: NginxNetworkInterfaceConfiguration; +} + +/** + * Nginx Frontend IP Configuration + */ +model NginxFrontendIPConfiguration { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + publicIPAddresses?: NginxPublicIPAddress[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + privateIPAddresses?: NginxPrivateIPAddress[]; +} + +/** + * Nginx Public IP Address + */ +model NginxPublicIPAddress { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + id?: string; +} + +/** + * Nginx Private IP Address + */ +model NginxPrivateIPAddress { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + privateIPAddress?: string; + + /** + * Nginx Private IP Allocation Method + */ + #suppress "@azure-tools/typespec-azure-core/casing-style" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + privateIPAllocationMethod?: NginxPrivateIPAllocationMethod; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + subnetId?: string; +} + +/** + * Nginx Network Interface Configuration + */ +model NginxNetworkInterfaceConfiguration { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + subnetId?: string; +} + +/** + * Nginx Logging + */ +model NginxLogging { + /** + * Nginx Storage Account + */ + storageAccount?: NginxStorageAccount; +} + +/** + * Nginx Storage Account + */ +model NginxStorageAccount { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + accountName?: string; + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + containerName?: string; +} + +/** + * Information on how the deployment will be scaled. + */ +model NginxDeploymentScalingProperties { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + capacity?: int32; + + /** + * The settings for enabling automatic scaling of the deployment. If this field is specified, 'scale.capacity' must be empty. + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.ResourceManager.Private.conditionalClientFlatten + autoScaleSettings?: NginxDeploymentScalingPropertiesAutoScaleSettings; +} + +/** + * The settings for enabling automatic scaling of the deployment. If this field is specified, 'scale.capacity' must be empty. + */ +model NginxDeploymentScalingPropertiesAutoScaleSettings { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + profiles: ScaleProfile[]; +} + +/** + * The autoscale profile. + */ +model ScaleProfile { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + name: string; + + /** + * The capacity parameters of the profile. + */ + capacity: ScaleProfileCapacity; +} + +/** + * The capacity parameters of the profile. + */ +model ScaleProfileCapacity { + /** + * The minimum number of NCUs the deployment can be autoscaled to. + */ + min: int32; + + /** + * The maximum number of NCUs the deployment can be autoscaled to. + */ + max: int32; +} + +/** + * Autoupgrade settings of a deployment. + */ +model AutoUpgradeProfile { + /** + * Channel used for autoupgrade. + */ + upgradeChannel: string; +} + +/** + * Nginx Deployment User Profile + */ +model NginxDeploymentUserProfile { + /** + * The preferred support contact email address of the user used for sending alerts and notification. Can be an empty string or a valid email address. + */ + @pattern("^$|^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,}$") + preferredEmail?: string; +} + +/** + * Settings for NGINX App Protect (NAP) + */ +model NginxDeploymentPropertiesNginxAppProtect { + /** + * Settings for the NGINX App Protect Web Application Firewall (WAF) + */ + webApplicationFirewallSettings: WebApplicationFirewallSettings; + + /** + * The status of the NGINX App Protect Web Application Firewall + */ + @visibility(Lifecycle.Read) + webApplicationFirewallStatus?: WebApplicationFirewallStatus; +} + +/** + * Settings for the NGINX App Protect Web Application Firewall (WAF) + */ +model WebApplicationFirewallSettings { + /** + * The activation state of the WAF. Use 'Enabled' to enable the WAF and 'Disabled' to disable it. + */ + activationState?: ActivationState; +} + +/** + * The status of the NGINX App Protect Web Application Firewall + */ +model WebApplicationFirewallStatus { + /** + * NGINX App Protect WAF release version + */ + wafRelease?: string; + + /** + * Package containing attack signatures for the NGINX App Protect Web Application Firewall (WAF). + */ + @visibility(Lifecycle.Read) + attackSignaturesPackage?: WebApplicationFirewallPackage; + + /** + * Package containing bot signatures for the NGINX App Protect Web Application Firewall (WAF). + */ + @visibility(Lifecycle.Read) + botSignaturesPackage?: WebApplicationFirewallPackage; + + /** + * Package containing threat campaigns for the NGINX App Protect Web Application Firewall (WAF). + */ + @visibility(Lifecycle.Read) + threatCampaignsPackage?: WebApplicationFirewallPackage; + + /** + * Versions of the NGINX App Protect Web Application Firewall (WAF) components. + */ + @visibility(Lifecycle.Read) + componentVersions?: WebApplicationFirewallComponentVersions; +} + +/** + * NGINX App Protect Web Application Firewall (WAF) Package. Contains the version and revision date of the package. + */ +model WebApplicationFirewallPackage { + /** + * The version of the NGINX App Protect Web Application Firewall (WAF) package. + */ + version: string; + + /** + * The date and time of the package revision. + */ + // FIXME: (utcDateTime) Please double check that this is the correct type for your scenario. + revisionDatetime: utcDateTime; +} + +/** + * Versions of the NGINX App Protect Web Application Firewall (WAF) components. + */ +model WebApplicationFirewallComponentVersions { + /** + * The version of the NGINX App Protect Web Application Firewall (WAF) engine. + */ + wafEngineVersion: string; + + /** + * The version of the NGINX App Protect Web Application Firewall (WAF) module for NGINX. + */ + wafNginxVersion: string; +} + +/** + * Resource Sku + */ +model ResourceSku { + /** + * Name of the SKU. + */ + name: string; +} + +/** + * Nginx Deployment Update Parameters + */ +model NginxDeploymentUpdateParameters { + /** + * Identity Properties + */ + identity?: IdentityProperties; + + /** + * Dictionary of + */ + #suppress "@azure-tools/typespec-azure-resource-manager/arm-no-record" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + tags?: Record; + + /** + * Resource Sku + */ + sku?: ResourceSku; + + /** + * The geo-location where the resource lives + */ + @visibility(Lifecycle.Read, Lifecycle.Create) + location?: string; + + /** + * Nginx Deployment Update Properties + */ + properties?: NginxDeploymentUpdateProperties; +} + +/** + * Nginx Deployment Update Properties + */ +model NginxDeploymentUpdateProperties { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + enableDiagnosticsSupport?: boolean; + + /** + * Nginx Logging + */ + logging?: NginxLogging; + + /** + * Information on how the deployment will be scaled. + */ + scalingProperties?: NginxDeploymentScalingProperties; + + /** + * Nginx Deployment User Profile + */ + userProfile?: NginxDeploymentUserProfile; + + /** + * Nginx Network Profile + */ + networkProfile?: NginxNetworkProfile; + + /** + * Autoupgrade settings of a deployment. + */ + autoUpgradeProfile?: AutoUpgradeProfile; + + /** + * Update settings for NGINX App Protect (NAP) + */ + #suppress "@azure-tools/typespec-azure-core/no-private-usage" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @Azure.ResourceManager.Private.conditionalClientFlatten + nginxAppProtect?: NginxDeploymentUpdatePropertiesNginxAppProtect; +} + +/** + * Update settings for NGINX App Protect (NAP) + */ +model NginxDeploymentUpdatePropertiesNginxAppProtect { + /** + * Settings for the NGINX App Protect Web Application Firewall (WAF) + */ + webApplicationFirewallSettings?: WebApplicationFirewallSettings; +} + +/** + * Nginx Deployment List Response + */ +model NginxDeploymentListResponse is Azure.Core.Page; + +/** + * Nginx Deployment Waf Policy Properties + */ +model NginxDeploymentWafPolicyProperties { + /** + * Provisioning State + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * The byte content of the Policy + */ + content?: bytes; + + /** + * The file path where the Policy is to be saved + */ + filepath?: string; + + /** + * Nginx Deployment Waf Policy Compiling Status + */ + @visibility(Lifecycle.Read) + compilingState?: NginxDeploymentWafPolicyCompilingStatus; + + /** + * Nginx Deployment Waf Policy Applying Status + */ + @visibility(Lifecycle.Read) + applyingState?: NginxDeploymentWafPolicyApplyingStatus; +} + +/** + * Nginx Deployment Waf Policy Compiling Status + */ +model NginxDeploymentWafPolicyCompilingStatus { + /** + * Machine readable code indicating the compilation status of a WAF Policy. + */ + @visibility(Lifecycle.Read) + code?: NginxDeploymentWafPolicyCompilingStatusCode; + + /** + * A readable string of the current status, and sometimes have the reason for the current state. If the CompilingStatus is Failed the Display Status will be The waf Policy failed to compile. + */ + @visibility(Lifecycle.Read) + displayStatus?: string; + + /** + * The date and time the policy was compiled in UTC. + */ + @visibility(Lifecycle.Read) + time?: string; +} + +/** + * Nginx Deployment Waf Policy Applying Status + */ +model NginxDeploymentWafPolicyApplyingStatus { + /** + * Machine readable code indicating the applying status code of a WAF Policy. + */ + @visibility(Lifecycle.Read) + code?: NginxDeploymentWafPolicyApplyingStatusCode; + + /** + * A readable string of the current status, and sometimes have the reason for the current state. + */ + @visibility(Lifecycle.Read) + displayStatus?: string; + + /** + * The date and time in UTC the current applying status was set. + */ + @visibility(Lifecycle.Read) + time?: string; +} + +/** + * Nginx Deployment Default Waf Policy List Response + */ +model NginxDeploymentDefaultWafPolicyListResponse { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @OpenAPI.extension("x-ms-identifiers", #[]) + value?: NginxDeploymentDefaultWafPolicyProperties[]; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + nextLink?: string; +} + +/** + * Nginx Deployment Default Waf Policy Properties + */ +model NginxDeploymentDefaultWafPolicyProperties { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + content?: bytes; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + filepath?: string; +} + +/** + * Nginx Deployment Waf Policy List Response + */ +model NginxDeploymentWafPolicyListResponse + is Azure.Core.Page; + +/** + * Nginx Deployment Waf Policy Metadata + */ +model NginxDeploymentWafPolicyMetadata { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + id?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + name?: string; + + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + type?: string; + + /** + * Nginx Deployment Waf Policy Metadata Properties + */ + properties?: NginxDeploymentWafPolicyMetadataProperties; + + /** + * Metadata pertaining to creation and last modification of the resource. + */ + @visibility(Lifecycle.Read) + systemData?: SystemData; +} + +/** + * Nginx Deployment Waf Policy Metadata Properties + */ +model NginxDeploymentWafPolicyMetadataProperties { + #suppress "@azure-tools/typespec-azure-core/documentation-required" "FIXME: Update justification, follow aka.ms/tsp/conversion-fix for details" + @visibility(Lifecycle.Read) + filepath?: string; + + /** + * Provisioning State + */ + @visibility(Lifecycle.Read) + provisioningState?: ProvisioningState; + + /** + * Nginx Deployment Waf Policy Compiling Status + */ + @visibility(Lifecycle.Read) + compilingState?: NginxDeploymentWafPolicyCompilingStatus; + + /** + * Nginx Deployment Waf Policy Applying Status + */ + @visibility(Lifecycle.Read) + applyingState?: NginxDeploymentWafPolicyApplyingStatus; +} + +/** + * The object that represents the operation. + */ +model OperationDisplay { + /** + * Service provider: Nginx.NginxPlus + */ + provider?: string; + + /** + * Type on which the operation is performed, e.g., 'deployments'. + */ + resource?: string; + + /** + * Operation type, e.g., read, write, delete, etc. + */ + operation?: string; + + /** + * Description of the operation, e.g., 'Write deployments'. + */ + description?: string; +} + +/** + * A Nginx.NginxPlus REST API operation. + */ +model OperationResult { + /** + * Operation name: {provider}/{resource}/{operation} + */ + name?: string; + + /** + * The object that represents the operation. + */ + display?: OperationDisplay; + + /** + * Indicates whether the operation is a data action + */ + isDataAction?: boolean; +} diff --git a/specification/nginx/Nginx.Management/tspconfig.yaml b/specification/nginx/Nginx.Management/tspconfig.yaml new file mode 100644 index 000000000000..ca499d39a859 --- /dev/null +++ b/specification/nginx/Nginx.Management/tspconfig.yaml @@ -0,0 +1,51 @@ +parameters: + "service-dir": + default: "sdk/nginx" +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}/swagger.json" + emit-lro-options: "all" + examples-dir: "{project-root}/examples" + "@azure-tools/typespec-csharp": + flavor: azure + package-dir: "Azure.ResourceManager.Nginx" + clear-output-folder: true + model-namespace: true + namespace: "{package-dir}" + "@azure-tools/typespec-python": + package-dir: "azure-mgmt-nginx" + namespace: "azure.mgmt.nginx" + generate-test: true + generate-sample: true + flavor: "azure" + "@azure-tools/typespec-java": + package-dir: "azure-resourcemanager-nginx" + namespace: "com.azure.resourcemanager.nginx" + service-name: "Nginx" # human-readable service name, whitespace allowed + flavor: azure + "@azure-tools/typespec-ts": + service-dir: sdk/nginx + package-dir: "arm-nginx" + is-modular-library: true + flavor: "azure" + experimental-extensible-enums: true + package-details: + name: "@azure/arm-nginx" + "@azure-tools/typespec-go": + service-dir: "sdk/resourcemanager/nginx" + emitter-output-dir: "{output-dir}/{service-dir}/armnginx" + module: "github.com/Azure/azure-sdk-for-go/{service-dir}/armnginx" + fix-const-stuttering: false + 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/nginx/cspell.yaml b/specification/nginx/cspell.yaml index 8a26202a1fb2..bbb3209b07fc 100644 --- a/specification/nginx/cspell.yaml +++ b/specification/nginx/cspell.yaml @@ -7,10 +7,10 @@ import: - ../../cspell.yaml words: - - armnginx - nginxplus + - armnginx overrides: - - filename: '**/specification/nginx/resource-manager/NGINX.NGINXPLUS/**/*.json' + - filename: '**/specification/nginx/resource-manager/Nginx.NginxPlus/**/*.json' words: - autoscaled - autoupgrade diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_CreateOrUpdate.json similarity index 91% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_CreateOrUpdate.json index 974ca75ee3f4..f572b52fc811 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_CreateOrUpdate.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "certificateName": "default", - "body": { + "requestBody": { "properties": { "keyVirtualPath": "/src/cert/somekey.key", "certificateVirtualPath": "/src/cert/somePath.cert", @@ -16,7 +16,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -29,7 +29,7 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_Delete.json similarity index 72% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_Delete.json index f27355b06fed..af4ada014138 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_Delete.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_Delete.json @@ -8,7 +8,11 @@ }, "responses": { "200": {}, - "202": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationstatus" + } + }, "204": {} } } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_Get.json similarity index 92% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_Get.json index e1ae4472f15d..2bbb35bd8448 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_Get.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_Get.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_List.json similarity index 91% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_List.json index 03192135c284..b914c6eae36b 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Certificates_List.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Certificates_List.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert1", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert1", "name": "cert1", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -21,7 +21,7 @@ } }, { - "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert2", + "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert2", "name": "cert2", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Configurations_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Configurations_CreateOrUpdate.json similarity index 98% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Configurations_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Configurations_CreateOrUpdate.json index 4f68c26d5e11..83f4b4e015ab 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Configurations_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Configurations_CreateOrUpdate.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "configurationName": "default", - "body": { + "requestBody": { "properties": { "files": [ { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Configurations_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Configurations_Delete.json similarity index 72% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Configurations_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Configurations_Delete.json index 6d3d9bc9df55..7ab2b36b87e2 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Configurations_Delete.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Configurations_Delete.json @@ -8,7 +8,11 @@ }, "responses": { "200": {}, - "202": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationstatus" + } + }, "204": {} } } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Configurations_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Configurations_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Configurations_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Configurations_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Configurations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Configurations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Configurations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Configurations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_Create.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_Create.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_Create.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_Create.json index 7dc786163e5c..f582dab3e7d6 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_Create.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_Create.json @@ -4,7 +4,7 @@ "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", - "body": { + "requestBody": { "name": "myDeployment", "tags": { "Environment": "Dev" diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_Delete.json similarity index 69% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_Delete.json index 00decef8d7b7..e71705e1faf8 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_Delete.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_Delete.json @@ -7,7 +7,11 @@ }, "responses": { "200": {}, - "202": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationstatus" + } + }, "204": {} } } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_ListByResourceGroup.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_ListByResourceGroup.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_ListByResourceGroup.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_ListByResourceGroup.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_Update.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_Update.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_Update.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_Update.json index aba3965cb814..fd73c08fe6a7 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Deployments_Update.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Deployments_Update.json @@ -4,7 +4,7 @@ "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", - "body": { + "requestBody": { "tags": { "Environment": "Dev" } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Operations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Operations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/examples/Operations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/examples/Operations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/swagger.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/swagger.json similarity index 95% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/swagger.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/swagger.json index 8ca9bff0afc7..4c8be2f51897 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2021-05-01-preview/swagger.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2021-05-01-preview/swagger.json @@ -52,9 +52,6 @@ "description": "The name of certificate", "required": true, "type": "string" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -106,9 +103,6 @@ "required": true, "type": "string" }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, { "in": "body", "name": "body", @@ -173,9 +167,6 @@ "description": "The name of certificate", "required": true, "type": "string" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -325,9 +316,6 @@ "description": "The name of configuration, only 'default' is supported value due to the singleton of Nginx conf", "required": true, "type": "string" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -379,9 +367,6 @@ "required": true, "type": "string" }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, { "in": "body", "name": "body", @@ -446,9 +431,6 @@ "description": "The name of configuration, only 'default' is supported value due to the singleton of Nginx conf", "required": true, "type": "string" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -495,9 +477,6 @@ }, { "$ref": "#/parameters/DeploymentNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -542,9 +521,6 @@ { "$ref": "#/parameters/DeploymentNameParameter" }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, { "in": "body", "name": "body", @@ -605,9 +581,6 @@ { "$ref": "#/parameters/DeploymentNameParameter" }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" - }, { "in": "body", "name": "body", @@ -661,9 +634,6 @@ }, { "$ref": "#/parameters/DeploymentNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -704,9 +674,6 @@ "parameters": [ { "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -749,9 +716,6 @@ }, { "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" - }, - { - "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" } ], "responses": { @@ -832,7 +796,6 @@ "NotSpecified" ], "type": "string", - "readOnly": true, "x-ms-enum": { "modelAsString": true, "name": "ProvisioningState" diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_CreateOrUpdate.json new file mode 100644 index 000000000000..20c6b276df1c --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_CreateOrUpdate.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment", + "certificateName": "default", + "requestBody": { + "properties": { + "keyVirtualPath": "/src/cert/somekey.key", + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", + "name": "default", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "properties": { + "provisioningState": "Succeeded", + "keyVirtualPath": "/src/cert/somekey.key", + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", + "name": "default", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "properties": { + "provisioningState": "Accepted", + "keyVirtualPath": "/src/cert/somekey.key", + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID" + } + } + } + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_Delete.json new file mode 100644 index 000000000000..be3649a10022 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_Delete.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment", + "certificateName": "default" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_Get.json new file mode 100644 index 000000000000..f8dc9b30d47f --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_Get.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment", + "certificateName": "default" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", + "name": "default", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "properties": { + "provisioningState": "Succeeded", + "keyVirtualPath": "/src/cert/somekey.key", + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID" + } + } + } + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_List.json new file mode 100644 index 000000000000..f4cca33e8f12 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Certificates_List.json @@ -0,0 +1,38 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert1", + "name": "cert1", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "properties": { + "provisioningState": "Succeeded", + "keyVirtualPath": "/src/cert/somekey.key", + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID" + } + }, + { + "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert2", + "name": "cert2", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "properties": { + "provisioningState": "Succeeded", + "keyVirtualPath": "/src/cert/somekey2.key", + "certificateVirtualPath": "/src/cert/somePath2.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID2" + } + } + ] + } + } + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_CreateOrUpdate.json new file mode 100644 index 000000000000..794eed9505e6 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_CreateOrUpdate.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment", + "configurationName": "default", + "requestBody": { + "properties": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "rootFile": "/etc/nginx/nginx.conf" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "properties": { + "provisioningState": "Succeeded", + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "rootFile": "/etc/nginx/nginx.conf" + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "properties": { + "provisioningState": "Accepted", + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "rootFile": "/etc/nginx/nginx.conf" + } + } + } + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_Delete.json new file mode 100644 index 000000000000..650cdd8b4852 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_Delete.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment", + "configurationName": "default" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_Get.json new file mode 100644 index 000000000000..f905ee1b25c2 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_Get.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment", + "configurationName": "default" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "properties": { + "provisioningState": "Succeeded", + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "rootFile": "/etc/nginx/nginx.conf" + } + } + } + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_List.json new file mode 100644 index 000000000000..04012da5de9f --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Configurations_List.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "properties": { + "provisioningState": "Succeeded", + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "rootFile": "/etc/nginx/nginx.conf" + } + } + ] + } + } + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Create.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Create.json new file mode 100644 index 000000000000..21c4d3f5f62f --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Create.json @@ -0,0 +1,111 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment", + "requestBody": { + "name": "myDeployment", + "tags": { + "Environment": "Dev" + }, + "properties": { + "managedResourceGroup": "myManagedResourceGroup", + "networkProfile": { + "frontEndIPConfiguration": { + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ], + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + } + }, + "location": "West US" + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "location": "westus", + "tags": { + "Environment": "Dev" + }, + "properties": { + "provisioningState": "Succeeded", + "nginxVersion": "nginx-1.19.6", + "managedResourceGroup": "myManagedResourceGroup", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ], + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "location": "westus", + "tags": { + "Environment": "Dev" + }, + "properties": { + "provisioningState": "Accepted", + "nginxVersion": "nginx-1.19.6", + "managedResourceGroup": "myManagedResourceGroup", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ], + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + } + } + } + } + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Delete.json new file mode 100644 index 000000000000..badae143ef95 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Delete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationstatus" + } + }, + "204": {} + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Get.json new file mode 100644 index 000000000000..402e8d585ea9 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Get.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "location": "westus", + "properties": { + "provisioningState": "Succeeded", + "nginxVersion": "nginx-1.19.6", + "managedResourceGroup": "myManagedResourceGroup", + "networkProfile": { + "frontEndIPConfiguration": { + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ], + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + } + } + } + } + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_List.json new file mode 100644 index 000000000000..682d69a6a53e --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_List.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "location": "westus", + "properties": { + "provisioningState": "Succeeded", + "nginxVersion": "nginx-1.19.6", + "managedResourceGroup": "myManagedResourceGroup", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ], + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + } + } + } + ] + } + } + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_ListByResourceGroup.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_ListByResourceGroup.json new file mode 100644 index 000000000000..d1732bb650e0 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_ListByResourceGroup.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "location": "westus", + "properties": { + "provisioningState": "Succeeded", + "nginxVersion": "nginx-1.19.6", + "managedResourceGroup": "myManagedResourceGroup", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ], + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + } + } + } + ] + } + } + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Update.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Update.json new file mode 100644 index 000000000000..1503d3928f9b --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Deployments_Update.json @@ -0,0 +1,86 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment", + "requestBody": { + "tags": { + "Environment": "Dev" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "location": "westus", + "tags": { + "Environment": "Dev" + }, + "properties": { + "provisioningState": "Succeeded", + "nginxVersion": "nginx-1.19.6", + "managedResourceGroup": "myManagedResourceGroup", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ], + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "location": "westus", + "tags": { + "Environment": "Dev" + }, + "properties": { + "provisioningState": "Accepted", + "nginxVersion": "nginx-1.19.6", + "managedResourceGroup": "myManagedResourceGroup", + "networkProfile": { + "frontEndIPConfiguration": { + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ], + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + } + } + } + } + } +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Operations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Operations_List.json new file mode 100644 index 000000000000..075a15e3b4f8 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/examples/Operations_List.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2022-11-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Nginx.NginxPlus/nginxDeployments/write", + "display": { + "provider": "Nginx.NginxPlus", + "resource": "deployments", + "operation": "write", + "description": "Write deployments resource" + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/swagger.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/swagger.json similarity index 98% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/swagger.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/swagger.json index 6f165da0f93c..73d7b997d7af 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/swagger.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2022-11-01-preview/swagger.json @@ -2,7 +2,7 @@ "swagger": "2.0", "info": { "title": "Nginx.NginxPlus", - "version": "2022-08-01" + "version": "2022-11-01-preview" }, "host": "management.azure.com", "schemes": [ @@ -783,7 +783,7 @@ "tags": [ "NginxDeployment" ], - "summary": "List all operations provided by Nginx.NginxPlus for the 2022-08-01 api version.", + "summary": "List all operations provided by Nginx.NginxPlus for the 2022-11-01-preview api version.", "operationId": "Operations_List", "produces": [ "application/json" @@ -919,6 +919,13 @@ "properties": { "data": { "type": "string" + }, + "protectedFiles": { + "type": "array", + "items": { + "type": "string" + }, + "x-ms-identifiers": [] } } }, @@ -1180,6 +1187,15 @@ } } }, + "NginxDeploymentScalingProperties": { + "type": "object", + "properties": { + "capacity": { + "format": "int32", + "type": "integer" + } + } + }, "NginxDeploymentProperties": { "type": "object", "properties": { @@ -1207,6 +1223,9 @@ }, "logging": { "$ref": "#/definitions/NginxLogging" + }, + "scalingProperties": { + "$ref": "#/definitions/NginxDeploymentScalingProperties" } } }, @@ -1258,6 +1277,9 @@ }, "logging": { "$ref": "#/definitions/NginxLogging" + }, + "scalingProperties": { + "$ref": "#/definitions/NginxDeploymentScalingProperties" } } }, diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Certificates_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Certificates_CreateOrUpdate.json similarity index 91% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Certificates_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Certificates_CreateOrUpdate.json index 64693ad00683..25bce17a8c39 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Certificates_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Certificates_CreateOrUpdate.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "certificateName": "default", - "body": { + "requestBody": { "properties": { "keyVirtualPath": "/src/cert/somekey.key", "certificateVirtualPath": "/src/cert/somePath.cert", @@ -16,7 +16,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -29,7 +29,7 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Certificates_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Certificates_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Certificates_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Certificates_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Certificates_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Certificates_Get.json similarity index 95% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Certificates_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Certificates_Get.json index 6ebe1539d108..b8010f8c5413 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Certificates_Get.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Certificates_Get.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Certificates_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Certificates_List.json similarity index 94% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Certificates_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Certificates_List.json index eca299266d2f..34f3c21a96e7 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Certificates_List.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Certificates_List.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert1", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert1", "name": "cert1", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -28,7 +28,7 @@ } }, { - "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert2", + "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert2", "name": "cert2", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_Analysis.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_Analysis.json similarity index 98% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_Analysis.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_Analysis.json index d8b9483672dc..befd3c060024 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_Analysis.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_Analysis.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "configurationName": "default", - "body": { + "requestBody": { "config": { "files": [ { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_CreateOrUpdate.json similarity index 98% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_CreateOrUpdate.json index d1d7042bd13d..118df7da178f 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_CreateOrUpdate.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "configurationName": "default", - "body": { + "requestBody": { "properties": { "files": [ { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Configurations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Configurations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Create.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Create.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Create.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Create.json index 68fee15a35fc..7704d04960f8 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Create.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Create.json @@ -4,7 +4,7 @@ "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", - "body": { + "requestBody": { "name": "myDeployment", "tags": { "Environment": "Dev" diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Get_AutoScale.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Get_AutoScale.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Get_AutoScale.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Get_AutoScale.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_ListByResourceGroup.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_ListByResourceGroup.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_ListByResourceGroup.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_ListByResourceGroup.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Update.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Update.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Update.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Update.json index dcf8064cfa6e..a8ad2850c896 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Deployments_Update.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Deployments_Update.json @@ -4,7 +4,7 @@ "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", - "body": { + "requestBody": { "tags": { "Environment": "Dev" } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Operations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Operations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/examples/Operations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/examples/Operations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/swagger.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/swagger.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-01-01-preview/swagger.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-01-01-preview/swagger.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Certificates_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Certificates_CreateOrUpdate.json similarity index 92% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Certificates_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Certificates_CreateOrUpdate.json index a1aa34891dd9..8bb2ef8a80c8 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Certificates_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Certificates_CreateOrUpdate.json @@ -16,7 +16,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -29,7 +29,7 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Certificates_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Certificates_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Certificates_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Certificates_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Certificates_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Certificates_Get.json similarity index 95% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Certificates_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Certificates_Get.json index 89f318ad0813..8827e57d7a29 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Certificates_Get.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Certificates_Get.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Certificates_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Certificates_List.json similarity index 94% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Certificates_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Certificates_List.json index 325c6357096d..999d7fdf5d84 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Certificates_List.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Certificates_List.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert1", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert1", "name": "cert1", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -28,7 +28,7 @@ } }, { - "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert2", + "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert2", "name": "cert2", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Configurations_Analysis.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Configurations_Analysis.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Configurations_Analysis.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Configurations_Analysis.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Configurations_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Configurations_CreateOrUpdate.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Configurations_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Configurations_CreateOrUpdate.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Configurations_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Configurations_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Configurations_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Configurations_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Configurations_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Configurations_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Configurations_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Configurations_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Configurations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Configurations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Configurations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Configurations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_Create.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_Create.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_Create.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_Create.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_Get_AutoScale.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_Get_AutoScale.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_Get_AutoScale.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_Get_AutoScale.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_ListByResourceGroup.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_ListByResourceGroup.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_ListByResourceGroup.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_ListByResourceGroup.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_Update.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_Update.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Deployments_Update.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Deployments_Update.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Operations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Operations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/examples/Operations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/examples/Operations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/swagger.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/swagger.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/swagger.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/swagger.json index a8783433f020..a1be5464bdbb 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-06-01-preview/swagger.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-06-01-preview/swagger.json @@ -1680,7 +1680,7 @@ "description": "The activation state of the WAF. Use 'Enabled' to enable the WAF and 'Disabled' to disable it.", "x-ms-enum": { "modelAsString": true, - "name": "activationState" + "name": "WebApplicationFirewallSettings" } } } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/ApiKeys_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/ApiKeys_CreateOrUpdate.json similarity index 89% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/ApiKeys_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/ApiKeys_CreateOrUpdate.json index 027fa42c5c66..586ca0f6b5b8 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/ApiKeys_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/ApiKeys_CreateOrUpdate.json @@ -15,7 +15,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/apiKeys/myApiKey", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", "name": "myApiKey", "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", "properties": { @@ -26,7 +26,7 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/apiKeys/myApiKey", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", "name": "myApiKey", "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/ApiKeys_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/ApiKeys_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/ApiKeys_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/ApiKeys_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/ApiKeys_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/ApiKeys_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/ApiKeys_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/ApiKeys_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/ApiKeys_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/ApiKeys_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/ApiKeys_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/ApiKeys_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Certificates_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Certificates_CreateOrUpdate.json similarity index 92% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Certificates_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Certificates_CreateOrUpdate.json index 48b3034d58bf..1ebd9c7f010e 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Certificates_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Certificates_CreateOrUpdate.json @@ -16,7 +16,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -29,7 +29,7 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Certificates_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Certificates_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Certificates_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Certificates_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Certificates_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Certificates_Get.json similarity index 95% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Certificates_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Certificates_Get.json index 314ad0ea58da..de7a0b7369e4 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Certificates_Get.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Certificates_Get.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Certificates_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Certificates_List.json similarity index 94% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Certificates_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Certificates_List.json index 7c778eff2ccb..6910002817d7 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Certificates_List.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Certificates_List.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert1", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert1", "name": "cert1", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -28,7 +28,7 @@ } }, { - "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert2", + "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert2", "name": "cert2", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Configurations_Analysis.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Configurations_Analysis.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Configurations_Analysis.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Configurations_Analysis.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Configurations_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Configurations_CreateOrUpdate.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Configurations_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Configurations_CreateOrUpdate.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Configurations_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Configurations_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Configurations_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Configurations_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Configurations_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Configurations_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Configurations_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Configurations_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Configurations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Configurations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Configurations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Configurations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_Create.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_Create.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_Create.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_Create.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_Get_AutoScale.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_Get_AutoScale.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_Get_AutoScale.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_Get_AutoScale.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_ListByResourceGroup.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_ListByResourceGroup.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_ListByResourceGroup.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_ListByResourceGroup.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_Update.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_Update.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Deployments_Update.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Deployments_Update.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Operations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Operations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/examples/Operations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/examples/Operations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/swagger.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/swagger.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/swagger.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/swagger.json index e40b156b3a93..eb99abdacc80 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-09-01-preview/swagger.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-09-01-preview/swagger.json @@ -2050,7 +2050,7 @@ "description": "The activation state of the WAF. Use 'Enabled' to enable the WAF and 'Disabled' to disable it.", "x-ms-enum": { "modelAsString": true, - "name": "activationState" + "name": "WebApplicationFirewallSettings" } } } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/ApiKeys_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/ApiKeys_CreateOrUpdate.json similarity index 89% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/ApiKeys_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/ApiKeys_CreateOrUpdate.json index 6a8f688cad1e..1a7668d68651 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/ApiKeys_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/ApiKeys_CreateOrUpdate.json @@ -15,7 +15,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/apiKeys/myApiKey", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", "name": "myApiKey", "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", "properties": { @@ -26,7 +26,7 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/apiKeys/myApiKey", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", "name": "myApiKey", "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/ApiKeys_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/ApiKeys_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/ApiKeys_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/ApiKeys_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/ApiKeys_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/ApiKeys_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/ApiKeys_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/ApiKeys_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/ApiKeys_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/ApiKeys_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/ApiKeys_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/ApiKeys_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Certificates_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Certificates_CreateOrUpdate.json similarity index 92% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Certificates_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Certificates_CreateOrUpdate.json index cec2f11b7e2c..68d84b7fab12 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Certificates_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Certificates_CreateOrUpdate.json @@ -16,7 +16,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -29,7 +29,7 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Certificates_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Certificates_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Certificates_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Certificates_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Certificates_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Certificates_Get.json similarity index 95% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Certificates_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Certificates_Get.json index 46776cd1c221..95dad8d130d2 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Certificates_Get.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Certificates_Get.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Certificates_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Certificates_List.json similarity index 94% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Certificates_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Certificates_List.json index f9b5e0d7033d..141c44958f05 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Certificates_List.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Certificates_List.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert1", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert1", "name": "cert1", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -28,7 +28,7 @@ } }, { - "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert2", + "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert2", "name": "cert2", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Configurations_Analysis.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Configurations_Analysis.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Configurations_Analysis.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Configurations_Analysis.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Configurations_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Configurations_CreateOrUpdate.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Configurations_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Configurations_CreateOrUpdate.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Configurations_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Configurations_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Configurations_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Configurations_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Configurations_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Configurations_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Configurations_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Configurations_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Configurations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Configurations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Configurations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Configurations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_Create.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_Create.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_Create.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_Create.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_Get_AutoScale.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_Get_AutoScale.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_Get_AutoScale.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_Get_AutoScale.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_ListByResourceGroup.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_ListByResourceGroup.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_ListByResourceGroup.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_ListByResourceGroup.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_Update.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_Update.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_Update.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_Update.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_UpdateSubnet.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_UpdateSubnet.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Deployments_UpdateSubnet.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Deployments_UpdateSubnet.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Operations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Operations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/examples/Operations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/examples/Operations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/swagger.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/swagger.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/swagger.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/swagger.json index 88a980dda56b..e7ab06216f6a 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/preview/2024-11-01-preview/swagger.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2024-11-01-preview/swagger.json @@ -2051,7 +2051,7 @@ }, "DiagnosticItem": { "type": "object", - "description": "A diagnostic is a message associated with an NGINX config. The Analyzer returns diagnostics with a level indicating the importance of the diagnostic with optional category.", + "description": "A diagnostic is a message associated with an NGINX config. The Analyzer returns diagnostics with a level indicating the importance of the diagnostic with optional category", "required": [ "directive", "description", @@ -2064,7 +2064,7 @@ "properties": { "id": { "type": "string", - "description": "Unique identifier for the diagnostic." + "description": "Unique identifier for the diagnostic" }, "directive": { "type": "string", @@ -2072,11 +2072,11 @@ }, "description": { "type": "string", - "example": "Some directives cannot be overridden by the user provided configuration." + "example": "Some directives cannot be overridden by the user provided configuration" }, "file": { "type": "string", - "description": "The filepath of the most relevant config file.", + "description": "the filepath of the most relevant config file.", "example": "nginx.conf" }, "line": { @@ -2085,7 +2085,7 @@ }, "message": { "type": "string", - "example": "The value will be overridden with `4000`." + "example": "the value will be overridden with `4000`" }, "rule": { "type": "string", diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_CreateOrUpdate.json new file mode 100644 index 000000000000..e46b5f0ff395 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_CreateOrUpdate.json @@ -0,0 +1,41 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "apiKeyName": "myApiKey", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "endDateTime": "2024-09-01T00:00:00Z", + "secretText": "00000000-0000-0000-0000-000000000000" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myApiKey", + "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", + "properties": { + "endDateTime": "2024-09-01T00:00:00Z", + "hint": "000" + } + } + }, + "201": { + "body": { + "name": "myApiKey", + "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", + "properties": { + "endDateTime": "2024-09-01T00:00:00Z", + "hint": "000" + } + } + } + }, + "operationId": "ApiKeys_CreateOrUpdate", + "title": "ApiKeys_CreateOrUpdate" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_Delete.json new file mode 100644 index 000000000000..6ae3a9f31b41 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_Delete.json @@ -0,0 +1,15 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "apiKeyName": "myApiKey", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": {}, + "204": {} + }, + "operationId": "ApiKeys_Delete", + "title": "ApiKeys_Delete" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_Get.json new file mode 100644 index 000000000000..e83b005bb508 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_Get.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "apiKeyName": "myApiKey", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myApiKey", + "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", + "properties": { + "endDateTime": "2024-09-01T00:00:00Z", + "hint": "000" + } + } + } + }, + "operationId": "ApiKeys_Get", + "title": "ApiKeys_Get" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_List.json new file mode 100644 index 000000000000..69c5f5c24d18 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/ApiKeys_List.json @@ -0,0 +1,36 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myApiKey", + "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey", + "properties": { + "endDateTime": "2024-09-01T00:00:00Z", + "hint": "000" + } + }, + { + "name": "myApiKey2", + "type": "Nginx.NginxPlus/nginxDeployments/apiKeys", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/apiKeys/myApiKey2", + "properties": { + "endDateTime": "2024-10-01T00:00:00Z", + "hint": "111" + } + } + ] + } + } + }, + "operationId": "ApiKeys_List", + "title": "ApiKeys_List" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_CreateOrUpdate.json new file mode 100644 index 000000000000..6f6efe5e7de5 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_CreateOrUpdate.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "certificateName": "default", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID", + "keyVirtualPath": "/src/cert/somekey.key" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", + "properties": { + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID", + "keyVirtualPath": "/src/cert/somekey.key", + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", + "properties": { + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID", + "keyVirtualPath": "/src/cert/somekey.key", + "provisioningState": "Accepted" + } + } + } + }, + "operationId": "Certificates_CreateOrUpdate", + "title": "Certificates_CreateOrUpdate" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_Delete.json new file mode 100644 index 000000000000..e2c5005888f5 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_Delete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "certificateName": "default", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://example.com/operationstatus" + } + }, + "204": {} + }, + "operationId": "Certificates_Delete", + "title": "Certificates_Delete" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_Get.json new file mode 100644 index 000000000000..ead03270ddcd --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_Get.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "certificateName": "default", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", + "properties": { + "certificateError": { + "code": "CertificateNotYetValid", + "message": "The certificate is not yet valid. The certificate is not yet valid. NotBefore: '2020-01-01T00:00:00Z', NotAfter: '2020-01-01T00:00:00Z'" + }, + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretCreated": "2020-01-01T00:00:00Z", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID", + "keyVaultSecretVersion": "12345678ef9a12345678ef9a12345678", + "keyVirtualPath": "/src/cert/somekey.key", + "provisioningState": "Succeeded", + "sha1Thumbprint": "1234567890ABCDEF1234567890ABCDEF12345678" + } + } + } + }, + "operationId": "Certificates_Get", + "title": "Certificates_Get" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_List.json new file mode 100644 index 000000000000..95880138e89f --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Certificates_List.json @@ -0,0 +1,51 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "cert1", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert1", + "properties": { + "certificateError": { + "code": "CertificateNotYetValid", + "message": "The certificate is not yet valid. The certificate is not yet valid. NotBefore: '2020-01-01T00:00:00Z', NotAfter: '2020-01-01T00:00:00Z'" + }, + "certificateVirtualPath": "/src/cert/somePath.cert", + "keyVaultSecretCreated": "2020-01-01T00:00:00Z", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID", + "keyVaultSecretVersion": "12345678ef9a12345678ef9a12345678", + "keyVirtualPath": "/src/cert/somekey.key", + "provisioningState": "Succeeded", + "sha1Thumbprint": "1234567890ABCDEF1234567890ABCDEF12345678" + } + }, + { + "name": "cert2", + "type": "nginx.nginxplus/nginxdeployments/certificates", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert2", + "properties": { + "certificateError": null, + "certificateVirtualPath": "/src/cert/somePath2.cert", + "keyVaultSecretCreated": "2020-01-01T00:00:00Z", + "keyVaultSecretId": "https://someKV.vault.azure.com/someSecretID2", + "keyVaultSecretVersion": "12345678ef9a12345678ef9a12345678", + "keyVirtualPath": "/src/cert/somekey2.key", + "provisioningState": "Succeeded", + "sha1Thumbprint": "1234567890ABCDEF1234567890ABCDEF12345678" + } + } + ] + } + } + }, + "operationId": "Certificates_List", + "title": "Certificates_List" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_Analysis.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_Analysis.json new file mode 100644 index 000000000000..0fb71dffd0ad --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_Analysis.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "configurationName": "default", + "deploymentName": "myDeployment", + "requestBody": { + "config": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "rootFile": "/etc/nginx/nginx.conf" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "data": { + "errors": [ + { + "description": "Directives outside the http context are not allowed", + "directive": "worker_processes", + "file": "/etc/nginx/nginx.conf", + "id": "config-analysis-error-1", + "line": 2, + "message": "You are not allowed to set the worker_processes directive", + "rule": "nginx-azure-load-balancer-allowed-directives" + } + ] + }, + "status": "FAILED" + } + } + }, + "operationId": "Configurations_Analysis", + "title": "Configurations_Analysis" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_CreateOrUpdate.json new file mode 100644 index 000000000000..7f5555892697 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_CreateOrUpdate.json @@ -0,0 +1,67 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "configurationName": "default", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "rootFile": "/etc/nginx/nginx.conf" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "properties": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "provisioningState": "Succeeded", + "rootFile": "/etc/nginx/nginx.conf" + } + } + }, + "201": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "properties": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "provisioningState": "Accepted", + "rootFile": "/etc/nginx/nginx.conf" + } + } + } + }, + "operationId": "Configurations_CreateOrUpdate", + "title": "Configurations_CreateOrUpdate" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_Delete.json new file mode 100644 index 000000000000..6277959dfa74 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_Delete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "configurationName": "default", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://example.com/operationstatus" + } + }, + "204": {} + }, + "operationId": "Configurations_Delete", + "title": "Configurations_Delete" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_Get.json new file mode 100644 index 000000000000..00e4af4d2622 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_Get.json @@ -0,0 +1,39 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "configurationName": "default", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "properties": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "protectedFiles": [ + { + "contentHash": "sha256:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF", + "virtualPath": "/etc/nginx/protected-file.cert" + } + ], + "provisioningState": "Succeeded", + "rootFile": "/etc/nginx/nginx.conf" + } + } + } + }, + "operationId": "Configurations_Get", + "title": "Configurations_Get" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_List.json new file mode 100644 index 000000000000..9cce873d1e1a --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Configurations_List.json @@ -0,0 +1,42 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "default", + "type": "nginx.nginxplus/nginxDeployments/configurations", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default", + "properties": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "protectedFiles": [ + { + "contentHash": "sha256:1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF1234567890ABCDEF", + "virtualPath": "/etc/nginx/protected-file.cert" + } + ], + "provisioningState": "Succeeded", + "rootFile": "/etc/nginx/nginx.conf" + } + } + ] + } + } + }, + "operationId": "Configurations_List", + "title": "Configurations_List" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/DefaultWafPolicy_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/DefaultWafPolicy_List.json new file mode 100644 index 000000000000..336f7188d490 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/DefaultWafPolicy_List.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/...&$skiptoken=...", + "value": [ + { + "content": "QUJDREVGR0g=", + "filepath": "/etc/nginx/waf/policy.conf" + } + ] + } + } + }, + "operationId": "DefaultWafPolicy_List", + "title": "DefaultWafPolicy_List" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Create.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Create.json new file mode 100644 index 000000000000..3d7664249a5e --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Create.json @@ -0,0 +1,165 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "requestBody": { + "name": "myDeployment", + "location": "West US", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + } + }, + "scalingProperties": { + "capacity": 10 + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + }, + "tags": { + "Environment": "Dev" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + } + }, + "tags": { + "Environment": "Dev" + } + } + }, + "201": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Accepted", + "scalingProperties": { + "capacity": 10 + } + }, + "tags": { + "Environment": "Dev" + } + } + } + }, + "operationId": "Deployments_CreateOrUpdate", + "title": "Deployments_Create" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Delete.json new file mode 100644 index 000000000000..eb934fe524e3 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Delete.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://example.com/operationstatus" + } + }, + "204": {} + }, + "operationId": "Deployments_Delete", + "title": "Deployments_Delete" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Get.json new file mode 100644 index 000000000000..f35d47d8b48f --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Get.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + } + } + } + }, + "operationId": "Deployments_Get", + "title": "Deployments_Get" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Get_AutoScale.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Get_AutoScale.json new file mode 100644 index 000000000000..d9750b127fe6 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Get_AutoScale.json @@ -0,0 +1,62 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "autoScaleSettings": { + "profiles": [ + { + "name": "ExampleProfile", + "capacity": { + "max": 50, + "min": 10 + } + } + ] + } + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + } + } + } + }, + "operationId": "Deployments_Get", + "title": "Deployments_Get_AutoScale" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_List.json new file mode 100644 index 000000000000..1549e8c2f2b4 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_List.json @@ -0,0 +1,76 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + } + } + } + ] + } + } + }, + "operationId": "Deployments_List", + "title": "Deployments_List" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_ListByResourceGroup.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_ListByResourceGroup.json new file mode 100644 index 000000000000..d3db3d36fba4 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_ListByResourceGroup.json @@ -0,0 +1,77 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + } + } + } + ] + } + } + }, + "operationId": "Deployments_ListByResourceGroup", + "title": "Deployments_ListByResourceGroup" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Update.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Update.json new file mode 100644 index 000000000000..9715a899d934 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_Update.json @@ -0,0 +1,97 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + } + } + }, + "tags": { + "Environment": "Dev" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [ + { + "privateIPAddress": "1.1.1.1", + "privateIPAllocationMethod": "Static", + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + ], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + }, + "tags": { + "Environment": "Dev" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/locations/westus/operationResults/00000000-0000-0000-0000-000000000000/Spring/default?api-version=2025-03-01-preview" + } + } + }, + "operationId": "Deployments_Update", + "title": "Deployments_Update" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_UpdateSubnet.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_UpdateSubnet.json new file mode 100644 index 000000000000..f8cd3ebcadaa --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Deployments_UpdateSubnet.json @@ -0,0 +1,91 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "networkProfile": { + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet2/subnets/mySubnet" + } + } + }, + "tags": { + "Environment": "Dev" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "name": "myDeployment", + "type": "nginx.nginxplus/deployments", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment", + "location": "westus", + "properties": { + "autoUpgradeProfile": { + "upgradeChannel": "stable" + }, + "dataplaneApiEndpoint": "mynginx-75b3bf22a555.eastus2.nginxaas.net", + "ipAddress": "1.1.1.1", + "networkProfile": { + "frontEndIPConfiguration": { + "privateIPAddresses": [], + "publicIPAddresses": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/publicIPAddresses/myPublicIPAddress" + } + ] + }, + "networkInterfaceConfiguration": { + "subnetId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.Network/virtualNetworks/myVnet2/subnets/mySubnet" + } + }, + "nginxAppProtect": { + "webApplicationFirewallSettings": { + "activationState": "Enabled" + }, + "webApplicationFirewallStatus": { + "attackSignaturesPackage": { + "revisionDatetime": "2024-02-21T15:50:53Z", + "version": "2024.02.21" + }, + "botSignaturesPackage": { + "revisionDatetime": "2024-02-22T15:50:53Z", + "version": "2024.02.22" + }, + "componentVersions": { + "wafEngineVersion": "10.624.0", + "wafNginxVersion": "4.815.0" + }, + "threatCampaignsPackage": { + "revisionDatetime": "2024-02-23T15:50:53Z", + "version": "2024.02.23" + } + } + }, + "nginxVersion": "nginx-1.19.6", + "provisioningState": "Succeeded", + "scalingProperties": { + "capacity": 10 + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + }, + "tags": { + "Environment": "Dev" + } + } + }, + "202": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/locations/westus/operationResults/00000000-0000-0000-0000-000000000000/Spring/default?api-version=2025-03-01-preview" + } + } + }, + "operationId": "Deployments_Update", + "title": "Deployments_UpdateSubnet" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Operations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Operations_List.json new file mode 100644 index 000000000000..f4935786f6a0 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/Operations_List.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview" + }, + "responses": { + "200": { + "body": { + "nextLink": null, + "value": [ + { + "name": "Nginx.NginxPlus/nginxDeployments/write", + "display": { + "description": "Write deployments resource", + "operation": "write", + "provider": "Nginx.NginxPlus", + "resource": "deployments" + } + } + ] + } + } + }, + "operationId": "Operations_List", + "title": "Operations_List" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_Create.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_Create.json new file mode 100644 index 000000000000..83082d9e17c1 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_Create.json @@ -0,0 +1,63 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "requestBody": { + "properties": { + "content": "QUJDREVGR0g=", + "filepath": "/etc/nginx/waf/policy.conf" + } + }, + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "wafPolicyName": "myWafPolicy" + }, + "responses": { + "200": { + "body": { + "name": "myWafPolicy", + "type": "Nginx.NginxPlus/nginxDeployments/wafPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/wafPolicies/myWafPolicy", + "properties": { + "applyingState": { + "code": "NotApplied", + "displayStatus": "Not Applied", + "time": "2025-03-02T10:05:00.000Z" + }, + "compilingState": { + "code": "Succeeded", + "displayStatus": "Succeeded", + "time": "2025-03-02T10:05:00.000Z" + }, + "content": "QUJDREVGR0g=", + "filepath": "/etc/nginx/waf/policy.conf", + "provisioningState": "Succeeded" + } + } + }, + "201": { + "body": { + "name": "myWafPolicy", + "type": "Nginx.NginxPlus/nginxDeployments/wafPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/wafPolicies/myWafPolicy", + "properties": { + "applyingState": { + "code": "NotStarted", + "displayStatus": "Not Started", + "time": "2025-03-02T10:05:00.000Z" + }, + "compilingState": { + "code": "NotStarted", + "displayStatus": "Not Started", + "time": "2025-03-02T10:05:00.000Z" + }, + "content": "QUJDREVGR0g=", + "filepath": "/etc/nginx/waf/policy.conf", + "provisioningState": "Accepted" + } + } + } + }, + "operationId": "WafPolicy_Create", + "title": "WafPolicy_Create" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_Delete.json new file mode 100644 index 000000000000..917eecf1aca3 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_Delete.json @@ -0,0 +1,19 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "wafPolicyName": "myWafPolicy" + }, + "responses": { + "202": { + "headers": { + "Azure-AsyncOperation": "https://example.com/operationstatus" + } + }, + "204": {} + }, + "operationId": "WafPolicy_Delete", + "title": "WafPolicy_Delete" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_Get.json new file mode 100644 index 000000000000..ded8d8abc2b0 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_Get.json @@ -0,0 +1,35 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "wafPolicyName": "myWafPolicy" + }, + "responses": { + "200": { + "body": { + "name": "myWafPolicy", + "type": "Nginx.NginxPlus/nginxDeployments/wafPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/wafPolicies/myWafPolicy", + "properties": { + "applyingState": { + "code": "Succeeded", + "displayStatus": "Policy Applied", + "time": "2025-03-02T10:05:00.000Z" + }, + "compilingState": { + "code": "Succeeded", + "displayStatus": "Compiled Successfully", + "time": "2025-03-02T10:00:00.000Z" + }, + "content": "QUJDREVGR0g=", + "filepath": "/etc/nginx/waf/policy.conf", + "provisioningState": "Succeeded" + } + } + } + }, + "operationId": "WafPolicy_Get", + "title": "WafPolicy_Get" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_List.json new file mode 100644 index 000000000000..cade92a4dd9c --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/examples/WafPolicy_List.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2025-03-01-preview", + "deploymentName": "myDeployment", + "resourceGroupName": "myResourceGroup", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "nextLink": "https://management.azure.com/.../wafPolicies?api-version=2025-03-01-preview&$skiptoken=...", + "value": [ + { + "name": "wafPolicy1", + "type": "Nginx.NginxPlus/nginxDeployments/wafPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/wafPolicies/wafPolicy1", + "properties": { + "applyingState": { + "code": "Succeeded", + "displayStatus": "Policy Applied", + "time": "2025-03-02T10:05:00.000Z" + }, + "compilingState": { + "code": "Succeeded", + "displayStatus": "Compiled Successfully", + "time": "2025-03-02T10:00:00.000Z" + }, + "filepath": "/etc/nginx/waf/policy.conf", + "provisioningState": "Succeeded" + } + }, + { + "name": "wafPolicy2", + "type": "Nginx.NginxPlus/nginxDeployments/wafPolicies", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/wafPolicies/wafPolicy2", + "properties": { + "applyingState": { + "code": "Succeeded", + "displayStatus": "Policy Applied", + "time": "2025-03-02T10:05:00.000Z" + }, + "compilingState": { + "code": "Succeeded", + "displayStatus": "Compiled Successfully", + "time": "2025-03-02T10:00:00.000Z" + }, + "filepath": "/etc/nginx/waf/policy.conf", + "provisioningState": "Succeeded" + } + } + ] + } + } + }, + "operationId": "WafPolicy_List", + "title": "WafPolicy_List" +} diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/swagger.json b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/swagger.json new file mode 100644 index 000000000000..c81dc08ebfde --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/preview/2025-03-01-preview/swagger.json @@ -0,0 +1,3021 @@ +{ + "swagger": "2.0", + "info": { + "title": "Nginx.NginxPlus", + "version": "2025-03-01-preview", + "x-typespec-generated": [ + { + "emitter": "@azure-tools/typespec-autorest" + } + ] + }, + "schemes": [ + "https" + ], + "host": "management.azure.com", + "produces": [ + "application/json" + ], + "consumes": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "description": "Azure Active Directory OAuth2 Flow.", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "tags": [ + { + "name": "Operations" + }, + { + "name": "NginxDeploymentApiKeyResponses" + }, + { + "name": "NginxDeployments" + }, + { + "name": "NginxCertificates" + }, + { + "name": "NginxConfigurationResponses" + }, + { + "name": "NginxDeploymentWafPolicies" + } + ], + "paths": { + "/providers/Nginx.NginxPlus/operations": { + "get": { + "operationId": "Operations_List", + "tags": [ + "Operations" + ], + "description": "List the operations for the provider", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Operations_List": { + "$ref": "./examples/Operations_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/providers/Nginx.NginxPlus/nginxDeployments": { + "get": { + "operationId": "Deployments_List", + "tags": [ + "NginxDeployments" + ], + "description": "List the NGINX deployments resources", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxDeploymentListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Deployments_List": { + "$ref": "./examples/Deployments_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments": { + "get": { + "operationId": "Deployments_ListByResourceGroup", + "tags": [ + "NginxDeployments" + ], + "description": "List all NGINX deployments under the specified resource group.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxDeploymentListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Deployments_ListByResourceGroup": { + "$ref": "./examples/Deployments_ListByResourceGroup.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}": { + "get": { + "operationId": "Deployments_Get", + "tags": [ + "NginxDeployments" + ], + "description": "Get the NGINX deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxDeployment" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Deployments_Get": { + "$ref": "./examples/Deployments_Get.json" + }, + "Deployments_Get_AutoScale": { + "$ref": "./examples/Deployments_Get_AutoScale.json" + } + } + }, + "put": { + "operationId": "Deployments_CreateOrUpdate", + "tags": [ + "NginxDeployments" + ], + "description": "Create or update the NGINX deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "body", + "in": "body", + "description": "The Nginx deployment", + "required": false, + "schema": { + "$ref": "#/definitions/NginxDeployment" + } + } + ], + "responses": { + "200": { + "description": "Resource 'NginxDeployment' update operation succeeded", + "schema": { + "$ref": "#/definitions/NginxDeployment" + } + }, + "201": { + "description": "Resource 'NginxDeployment' create operation succeeded", + "schema": { + "$ref": "#/definitions/NginxDeployment" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Deployments_Create": { + "$ref": "./examples/Deployments_Create.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/NginxDeployment" + }, + "x-ms-long-running-operation": true + }, + "patch": { + "operationId": "Deployments_Update", + "tags": [ + "NginxDeployments" + ], + "description": "Update the NGINX deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "body", + "in": "body", + "description": "The Nginx deployment update parameters", + "required": false, + "schema": { + "$ref": "#/definitions/NginxDeploymentUpdateParameters" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxDeployment" + } + }, + "202": { + "description": "Resource update request 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." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Deployments_Update": { + "$ref": "./examples/Deployments_Update.json" + }, + "Deployments_UpdateSubnet": { + "$ref": "./examples/Deployments_UpdateSubnet.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/NginxDeployment" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Deployments_Delete", + "tags": [ + "NginxDeployments" + ], + "description": "Delete the NGINX deployment resource", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Deployments_Delete": { + "$ref": "./examples/Deployments_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/apiKeys": { + "get": { + "operationId": "ApiKeys_List", + "tags": [ + "NginxDeploymentApiKeyResponses" + ], + "description": "List all API Keys of the given Nginx deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxDeploymentApiKeyListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ApiKeys_List": { + "$ref": "./examples/ApiKeys_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/apiKeys/{apiKeyName}": { + "get": { + "operationId": "ApiKeys_Get", + "tags": [ + "NginxDeploymentApiKeyResponses" + ], + "description": "Get the specified API Key of the given Nginx deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "apiKeyName", + "in": "path", + "description": "The resource name of the API key", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxDeploymentApiKeyResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ApiKeys_Get": { + "$ref": "./examples/ApiKeys_Get.json" + } + } + }, + "put": { + "operationId": "ApiKeys_CreateOrUpdate", + "tags": [ + "NginxDeploymentApiKeyResponses" + ], + "description": "Create or update an API Key for the Nginx deployment in order to access the dataplane API endpoint", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "apiKeyName", + "in": "path", + "description": "The resource name of the API key", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "body", + "in": "body", + "description": "The API Key object containing fields (e.g. secret text, expiration date) to upsert the key.", + "required": false, + "schema": { + "$ref": "#/definitions/NginxDeploymentApiKeyRequest" + } + } + ], + "responses": { + "200": { + "description": "Resource 'NginxDeploymentApiKeyResponse' update operation succeeded", + "schema": { + "$ref": "#/definitions/NginxDeploymentApiKeyResponse" + } + }, + "201": { + "description": "Resource 'NginxDeploymentApiKeyResponse' create operation succeeded", + "schema": { + "$ref": "#/definitions/NginxDeploymentApiKeyResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ApiKeys_CreateOrUpdate": { + "$ref": "./examples/ApiKeys_CreateOrUpdate.json" + } + } + }, + "delete": { + "operationId": "ApiKeys_Delete", + "tags": [ + "NginxDeploymentApiKeyResponses" + ], + "description": "Delete API key for Nginx deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "apiKeyName", + "in": "path", + "description": "The resource name of the API key", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "200": { + "description": "Resource deleted successfully." + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ApiKeys_Delete": { + "$ref": "./examples/ApiKeys_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/certificates": { + "get": { + "operationId": "Certificates_List", + "tags": [ + "NginxCertificates" + ], + "description": "List all certificates of given NGINX deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxCertificateListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Certificates_List": { + "$ref": "./examples/Certificates_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/certificates/{certificateName}": { + "get": { + "operationId": "Certificates_Get", + "tags": [ + "NginxCertificates" + ], + "description": "Get a certificate of given NGINX deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "certificateName", + "in": "path", + "description": "The name of certificate", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxCertificate" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Certificates_Get": { + "$ref": "./examples/Certificates_Get.json" + } + } + }, + "put": { + "operationId": "Certificates_CreateOrUpdate", + "tags": [ + "NginxCertificates" + ], + "description": "Create or update the NGINX certificates for given NGINX deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "certificateName", + "in": "path", + "description": "The name of certificate", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "body", + "in": "body", + "description": "The certificate", + "required": false, + "schema": { + "$ref": "#/definitions/NginxCertificate" + } + } + ], + "responses": { + "200": { + "description": "Resource 'NginxCertificate' update operation succeeded", + "schema": { + "$ref": "#/definitions/NginxCertificate" + } + }, + "201": { + "description": "Resource 'NginxCertificate' create operation succeeded", + "schema": { + "$ref": "#/definitions/NginxCertificate" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Certificates_CreateOrUpdate": { + "$ref": "./examples/Certificates_CreateOrUpdate.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/NginxCertificate" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Certificates_Delete", + "tags": [ + "NginxCertificates" + ], + "description": "Deletes a certificate from the NGINX deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "certificateName", + "in": "path", + "description": "The name of certificate", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Certificates_Delete": { + "$ref": "./examples/Certificates_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/configurations": { + "get": { + "operationId": "Configurations_List", + "tags": [ + "NginxConfigurationResponses" + ], + "description": "List the NGINX configuration of given NGINX deployment.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxConfigurationListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Configurations_List": { + "$ref": "./examples/Configurations_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/configurations/{configurationName}": { + "get": { + "operationId": "Configurations_Get", + "tags": [ + "NginxConfigurationResponses" + ], + "description": "Get the NGINX configuration of given NGINX deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "configurationName", + "in": "path", + "description": "The name of configuration, only 'default' is supported value due to the singleton of NGINX conf", + "required": true, + "type": "string", + "pattern": "^[a-z][a-z0-9]*$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxConfigurationResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Configurations_Get": { + "$ref": "./examples/Configurations_Get.json" + } + } + }, + "put": { + "operationId": "Configurations_CreateOrUpdate", + "tags": [ + "NginxConfigurationResponses" + ], + "description": "Create or update the NGINX configuration for given NGINX deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "configurationName", + "in": "path", + "description": "The name of configuration, only 'default' is supported value due to the singleton of NGINX conf", + "required": true, + "type": "string", + "pattern": "^[a-z][a-z0-9]*$" + }, + { + "name": "body", + "in": "body", + "description": "The NGINX configuration", + "required": false, + "schema": { + "$ref": "#/definitions/NginxConfigurationRequest" + } + } + ], + "responses": { + "200": { + "description": "Resource 'NginxConfigurationResponse' update operation succeeded", + "schema": { + "$ref": "#/definitions/NginxConfigurationResponse" + } + }, + "201": { + "description": "Resource 'NginxConfigurationResponse' create operation succeeded", + "schema": { + "$ref": "#/definitions/NginxConfigurationResponse" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Configurations_CreateOrUpdate": { + "$ref": "./examples/Configurations_CreateOrUpdate.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/NginxConfigurationResponse" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "Configurations_Delete", + "tags": [ + "NginxConfigurationResponses" + ], + "description": "Reset the NGINX configuration of given NGINX deployment to default", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "configurationName", + "in": "path", + "description": "The name of configuration, only 'default' is supported value due to the singleton of NGINX conf", + "required": true, + "type": "string", + "pattern": "^[a-z][a-z0-9]*$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Configurations_Delete": { + "$ref": "./examples/Configurations_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/configurations/{configurationName}/analyze": { + "post": { + "operationId": "Configurations_Analysis", + "tags": [ + "NginxConfigurationResponses" + ], + "description": "Analyze an NGINX configuration without applying it to the NGINXaaS deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "configurationName", + "in": "path", + "description": "The name of configuration, only 'default' is supported value due to the singleton of NGINX conf", + "required": true, + "type": "string", + "pattern": "^[a-z][a-z0-9]*$" + }, + { + "name": "body", + "in": "body", + "description": "The NGINX configuration to analyze", + "required": false, + "schema": { + "$ref": "#/definitions/AnalysisCreate" + } + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/AnalysisResult" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Configurations_Analysis": { + "$ref": "./examples/Configurations_Analysis.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/listDefaultWafPolicies": { + "post": { + "operationId": "DefaultWafPolicy_List", + "tags": [ + "NginxDeployments" + ], + "description": "Get the Nginx Waf Policy of given Nginx deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxDeploymentDefaultWafPolicyListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "DefaultWafPolicy_List": { + "$ref": "./examples/DefaultWafPolicy_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/wafPolicies": { + "get": { + "operationId": "WafPolicy_List", + "tags": [ + "NginxDeployments" + ], + "description": "List Waf Policies of given Nginx deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxDeploymentWafPolicyListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "WafPolicy_List": { + "$ref": "./examples/WafPolicy_List.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/wafPolicies/{wafPolicyName}": { + "get": { + "operationId": "WafPolicy_Get", + "tags": [ + "NginxDeploymentWafPolicies" + ], + "description": "Get the Nginx Waf Policy of given Nginx deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "wafPolicyName", + "in": "path", + "description": "The name of Waf Policy", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "200": { + "description": "Azure operation completed successfully.", + "schema": { + "$ref": "#/definitions/NginxDeploymentWafPolicy" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "WafPolicy_Get": { + "$ref": "./examples/WafPolicy_Get.json" + } + } + }, + "put": { + "operationId": "WafPolicy_Create", + "tags": [ + "NginxDeploymentWafPolicies" + ], + "description": "Create or update the Nginx Waf Policy for given Nginx deployment", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "wafPolicyName", + "in": "path", + "description": "The name of Waf Policy", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "body", + "in": "body", + "description": "The Nginx Deployment Waf Policy", + "required": false, + "schema": { + "$ref": "#/definitions/NginxDeploymentWafPolicy" + } + } + ], + "responses": { + "200": { + "description": "Resource 'NginxDeploymentWafPolicy' update operation succeeded", + "schema": { + "$ref": "#/definitions/NginxDeploymentWafPolicy" + } + }, + "201": { + "description": "Resource 'NginxDeploymentWafPolicy' create operation succeeded", + "schema": { + "$ref": "#/definitions/NginxDeploymentWafPolicy" + }, + "headers": { + "Azure-AsyncOperation": { + "type": "string", + "description": "A link to the status monitor" + }, + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "WafPolicy_Create": { + "$ref": "./examples/WafPolicy_Create.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation", + "final-state-schema": "#/definitions/NginxDeploymentWafPolicy" + }, + "x-ms-long-running-operation": true + }, + "delete": { + "operationId": "WafPolicy_Delete", + "tags": [ + "NginxDeploymentWafPolicies" + ], + "description": "Reset the Nginx Waf Policy of given Nginx deployment to default", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "deploymentName", + "in": "path", + "description": "The name of targeted NGINX deployment", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + }, + { + "name": "wafPolicyName", + "in": "path", + "description": "The name of Waf Policy", + "required": true, + "type": "string", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$" + } + ], + "responses": { + "202": { + "description": "Resource deletion accepted.", + "headers": { + "Location": { + "type": "string", + "description": "The Location header contains the URL where the status of the long running operation can be checked." + }, + "Retry-After": { + "type": "integer", + "format": "int32", + "description": "The Retry-After header can indicate how long the client should wait before polling the operation status." + } + } + }, + "204": { + "description": "Resource does not exist." + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "WafPolicy_Delete": { + "$ref": "./examples/WafPolicy_Delete.json" + } + }, + "x-ms-long-running-operation-options": { + "final-state-via": "location" + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "ActivationState": { + "type": "string", + "description": "The activation state of the WAF. Use 'Enabled' to enable the WAF and 'Disabled' to disable it.", + "enum": [ + "Enabled", + "Disabled" + ], + "x-ms-enum": { + "name": "ActivationState", + "modelAsString": true, + "values": [ + { + "name": "Enabled", + "value": "Enabled" + }, + { + "name": "Disabled", + "value": "Disabled" + } + ] + } + }, + "AnalysisCreate": { + "type": "object", + "description": "The request body for creating an analysis for an NGINX configuration.", + "properties": { + "config": { + "$ref": "#/definitions/AnalysisCreateConfig", + "x-ms-client-flatten": true + } + }, + "required": [ + "config" + ] + }, + "AnalysisCreateConfig": { + "type": "object", + "properties": { + "rootFile": { + "type": "string", + "description": "The root file of the NGINX config file(s). It must match one of the files' filepath." + }, + "files": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxConfigurationFile" + }, + "x-ms-identifiers": [] + }, + "protectedFiles": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxConfigurationProtectedFileRequest" + }, + "x-ms-identifiers": [] + }, + "package": { + "$ref": "#/definitions/NginxConfigurationPackage", + "description": "Nginx Configuration Package" + } + } + }, + "AnalysisDiagnostic": { + "type": "object", + "description": "An error object found during the analysis of an NGINX configuration.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the error" + }, + "directive": { + "type": "string" + }, + "description": { + "type": "string" + }, + "file": { + "type": "string", + "description": "the filepath of the most relevant config file" + }, + "line": { + "type": "number", + "format": "float" + }, + "message": { + "type": "string" + }, + "rule": { + "type": "string" + } + }, + "required": [ + "directive", + "description", + "file", + "line", + "message", + "rule" + ] + }, + "AnalysisResult": { + "type": "object", + "description": "The response body for an analysis request. Contains the status of the analysis and any errors.", + "properties": { + "status": { + "type": "string", + "description": "The status of the analysis." + }, + "data": { + "$ref": "#/definitions/AnalysisResultData", + "x-ms-client-flatten": true + } + }, + "required": [ + "status" + ] + }, + "AnalysisResultData": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/AnalysisDiagnostic" + } + }, + "diagnostics": { + "type": "array", + "items": { + "$ref": "#/definitions/DiagnosticItem" + } + } + } + }, + "AutoUpgradeProfile": { + "type": "object", + "description": "Autoupgrade settings of a deployment.", + "properties": { + "upgradeChannel": { + "type": "string", + "description": "Channel used for autoupgrade." + } + }, + "required": [ + "upgradeChannel" + ] + }, + "DiagnosticItem": { + "type": "object", + "description": "A diagnostic is a message associated with an NGINX config. The Analyzer returns diagnostics with a level indicating the importance of the diagnostic with optional category.", + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the diagnostic." + }, + "directive": { + "type": "string" + }, + "description": { + "type": "string" + }, + "file": { + "type": "string", + "description": "The filepath of the most relevant config file." + }, + "line": { + "type": "number", + "format": "float" + }, + "message": { + "type": "string" + }, + "rule": { + "type": "string" + }, + "level": { + "$ref": "#/definitions/Level", + "description": "Warning or Info" + }, + "category": { + "type": "string", + "description": "Category of warning like Best-practices, Recommendation, Security etc." + } + }, + "required": [ + "directive", + "description", + "file", + "line", + "message", + "rule", + "level" + ] + }, + "IdentityProperties": { + "type": "object", + "description": "Identity Properties", + "properties": { + "principalId": { + "type": "string", + "readOnly": true + }, + "tenantId": { + "type": "string", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/IdentityType", + "description": "Identity Type" + }, + "userAssignedIdentities": { + "type": "object", + "description": "Dictionary of ", + "additionalProperties": { + "$ref": "#/definitions/UserIdentityProperties" + } + } + } + }, + "IdentityType": { + "type": "string", + "description": "Identity Type", + "enum": [ + "SystemAssigned", + "UserAssigned", + "SystemAssigned, UserAssigned", + "None" + ], + "x-ms-enum": { + "name": "IdentityType", + "modelAsString": true, + "values": [ + { + "name": "SystemAssigned", + "value": "SystemAssigned" + }, + { + "name": "UserAssigned", + "value": "UserAssigned" + }, + { + "name": "SystemAssigned, UserAssigned", + "value": "SystemAssigned, UserAssigned" + }, + { + "name": "None", + "value": "None" + } + ] + } + }, + "Level": { + "type": "string", + "description": "Warning or Info", + "enum": [ + "Info", + "Warning" + ], + "x-ms-enum": { + "name": "Level", + "modelAsString": true, + "values": [ + { + "name": "Info", + "value": "Info" + }, + { + "name": "Warning", + "value": "Warning" + } + ] + } + }, + "NginxCertificate": { + "type": "object", + "description": "Nginx Certificate", + "properties": { + "properties": { + "$ref": "#/definitions/NginxCertificateProperties", + "description": "Nginx Certificate Properties" + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "NginxCertificateErrorResponseBody": { + "type": "object", + "description": "Nginx Certificate Error Response Body", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, + "NginxCertificateListResponse": { + "type": "object", + "description": "Nginx Certificate List Response", + "properties": { + "value": { + "type": "array", + "description": "The NginxCertificate items on this page", + "items": { + "$ref": "#/definitions/NginxCertificate" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "NginxCertificateProperties": { + "type": "object", + "description": "Nginx Certificate Properties", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning State", + "readOnly": true + }, + "keyVirtualPath": { + "type": "string" + }, + "certificateVirtualPath": { + "type": "string" + }, + "keyVaultSecretId": { + "type": "string" + }, + "sha1Thumbprint": { + "type": "string", + "readOnly": true + }, + "keyVaultSecretVersion": { + "type": "string", + "readOnly": true + }, + "keyVaultSecretCreated": { + "type": "string", + "format": "date-time", + "readOnly": true + }, + "certificateError": { + "$ref": "#/definitions/NginxCertificateErrorResponseBody", + "description": "Nginx Certificate Error Response Body" + } + } + }, + "NginxConfigurationFile": { + "type": "object", + "description": "Nginx Configuration File", + "properties": { + "content": { + "type": "string" + }, + "virtualPath": { + "type": "string" + } + } + }, + "NginxConfigurationListResponse": { + "type": "object", + "description": "Response of a list operation.", + "properties": { + "value": { + "type": "array", + "description": "The NginxConfigurationResponse items on this page", + "items": { + "$ref": "#/definitions/NginxConfigurationResponse" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "NginxConfigurationPackage": { + "type": "object", + "description": "Nginx Configuration Package", + "properties": { + "data": { + "type": "string" + }, + "protectedFiles": { + "type": "array", + "items": { + "type": "string" + }, + "x-ms-identifiers": [] + } + } + }, + "NginxConfigurationProtectedFileRequest": { + "type": "object", + "description": "Nginx Configuration Protected File Request", + "properties": { + "content": { + "type": "string", + "format": "password", + "description": "The content of the protected file. This value is a PUT only value. If you perform a GET request on this value, it will be empty because it is a protected file.", + "x-ms-secret": true + }, + "virtualPath": { + "type": "string", + "description": "The virtual path of the protected file." + }, + "contentHash": { + "type": "string", + "description": "The hash of the content of the file. This value is used to determine if the file has changed." + } + } + }, + "NginxConfigurationProtectedFileResponse": { + "type": "object", + "description": "Nginx Configuration Protected File Response", + "properties": { + "virtualPath": { + "type": "string", + "description": "The virtual path of the protected file." + }, + "contentHash": { + "type": "string", + "description": "The hash of the content of the file. This value is used to determine if the file has changed." + } + } + }, + "NginxConfigurationRequest": { + "type": "object", + "description": "Nginx Configuration Request", + "properties": { + "id": { + "type": "string", + "readOnly": true + }, + "name": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/NginxConfigurationRequestProperties", + "description": "Nginx Configuration Request Properties" + }, + "systemData": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/systemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + } + } + }, + "NginxConfigurationRequestProperties": { + "type": "object", + "description": "Nginx Configuration Request Properties", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning State", + "readOnly": true + }, + "files": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxConfigurationFile" + }, + "x-ms-identifiers": [] + }, + "protectedFiles": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxConfigurationProtectedFileRequest" + }, + "x-ms-identifiers": [] + }, + "package": { + "$ref": "#/definitions/NginxConfigurationPackage", + "description": "Nginx Configuration Package" + }, + "rootFile": { + "type": "string" + } + } + }, + "NginxConfigurationResponse": { + "type": "object", + "description": "Nginx Configuration Response", + "properties": { + "properties": { + "$ref": "#/definitions/NginxConfigurationResponseProperties", + "description": "Nginx Configuration Response Properties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "NginxConfigurationResponseProperties": { + "type": "object", + "description": "Nginx Configuration Response Properties", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning State", + "readOnly": true + }, + "files": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxConfigurationFile" + }, + "x-ms-identifiers": [] + }, + "protectedFiles": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxConfigurationProtectedFileResponse" + }, + "x-ms-identifiers": [] + }, + "package": { + "$ref": "#/definitions/NginxConfigurationPackage", + "description": "Nginx Configuration Package" + }, + "rootFile": { + "type": "string" + } + } + }, + "NginxDeployment": { + "type": "object", + "description": "Nginx Deployment", + "properties": { + "properties": { + "$ref": "#/definitions/NginxDeploymentProperties", + "description": "Nginx Deployment Properties" + }, + "identity": { + "$ref": "#/definitions/IdentityProperties", + "description": "Identity Properties" + }, + "sku": { + "$ref": "#/definitions/ResourceSku", + "description": "Resource Sku" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/TrackedResource" + } + ] + }, + "NginxDeploymentApiKeyListResponse": { + "type": "object", + "description": "Nginx Deployment Api Key List Response", + "properties": { + "value": { + "type": "array", + "description": "The NginxDeploymentApiKeyResponse items on this page", + "items": { + "$ref": "#/definitions/NginxDeploymentApiKeyResponse" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "NginxDeploymentApiKeyRequest": { + "type": "object", + "description": "Nginx Deployment Api Key Request", + "properties": { + "id": { + "type": "string", + "readOnly": true + }, + "name": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/NginxDeploymentApiKeyRequestProperties", + "description": "Nginx Deployment Api Key Request Properties" + }, + "systemData": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/systemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + } + } + }, + "NginxDeploymentApiKeyRequestProperties": { + "type": "object", + "description": "Nginx Deployment Api Key Request Properties", + "properties": { + "secretText": { + "type": "string", + "format": "password", + "description": "Secret text to be used as a Dataplane API Key. This is a write only property that can never be read back, but the first three characters will be returned in the 'hint' property.", + "x-ms-secret": true + }, + "endDateTime": { + "type": "string", + "format": "date-time", + "description": "The time after which this Dataplane API Key is no longer valid." + } + } + }, + "NginxDeploymentApiKeyResponse": { + "type": "object", + "description": "Nginx Deployment Api Key Response", + "properties": { + "properties": { + "$ref": "#/definitions/NginxDeploymentApiKeyResponseProperties", + "description": "Nginx Deployment Api Key Response Properties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "NginxDeploymentApiKeyResponseProperties": { + "type": "object", + "description": "Nginx Deployment Api Key Response Properties", + "properties": { + "hint": { + "type": "string", + "description": "The first three characters of the secret text to help identify it in use. This property is read-only.", + "readOnly": true + }, + "endDateTime": { + "type": "string", + "format": "date-time", + "description": "The time after which this Dataplane API Key is no longer valid." + } + } + }, + "NginxDeploymentDefaultWafPolicyListResponse": { + "type": "object", + "description": "Nginx Deployment Default Waf Policy List Response", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxDeploymentDefaultWafPolicyProperties" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "type": "string" + } + } + }, + "NginxDeploymentDefaultWafPolicyProperties": { + "type": "object", + "description": "Nginx Deployment Default Waf Policy Properties", + "properties": { + "content": { + "type": "string", + "format": "byte", + "readOnly": true + }, + "filepath": { + "type": "string", + "readOnly": true + } + } + }, + "NginxDeploymentListResponse": { + "type": "object", + "description": "Nginx Deployment List Response", + "properties": { + "value": { + "type": "array", + "description": "The NginxDeployment items on this page", + "items": { + "$ref": "#/definitions/NginxDeployment" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "NginxDeploymentProperties": { + "type": "object", + "description": "Nginx Deployment Properties", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning State", + "readOnly": true + }, + "nginxVersion": { + "type": "string", + "readOnly": true + }, + "networkProfile": { + "$ref": "#/definitions/NginxNetworkProfile", + "description": "Nginx Network Profile" + }, + "ipAddress": { + "type": "string", + "description": "The IP address of the deployment.", + "readOnly": true + }, + "enableDiagnosticsSupport": { + "type": "boolean" + }, + "logging": { + "$ref": "#/definitions/NginxLogging", + "description": "Nginx Logging" + }, + "scalingProperties": { + "$ref": "#/definitions/NginxDeploymentScalingProperties", + "description": "Information on how the deployment will be scaled." + }, + "autoUpgradeProfile": { + "$ref": "#/definitions/AutoUpgradeProfile", + "description": "Autoupgrade settings of a deployment." + }, + "userProfile": { + "$ref": "#/definitions/NginxDeploymentUserProfile", + "description": "Nginx Deployment User Profile" + }, + "nginxAppProtect": { + "$ref": "#/definitions/NginxDeploymentPropertiesNginxAppProtect", + "description": "Settings for NGINX App Protect (NAP)", + "x-ms-client-flatten": true + }, + "dataplaneApiEndpoint": { + "type": "string", + "description": "Dataplane API endpoint for the caller to update the NGINX state of the deployment.", + "readOnly": true + } + } + }, + "NginxDeploymentPropertiesNginxAppProtect": { + "type": "object", + "description": "Settings for NGINX App Protect (NAP)", + "properties": { + "webApplicationFirewallSettings": { + "$ref": "#/definitions/WebApplicationFirewallSettings", + "description": "Settings for the NGINX App Protect Web Application Firewall (WAF)" + }, + "webApplicationFirewallStatus": { + "$ref": "#/definitions/WebApplicationFirewallStatus", + "description": "The status of the NGINX App Protect Web Application Firewall", + "readOnly": true + } + }, + "required": [ + "webApplicationFirewallSettings" + ] + }, + "NginxDeploymentScalingProperties": { + "type": "object", + "description": "Information on how the deployment will be scaled.", + "properties": { + "capacity": { + "type": "integer", + "format": "int32" + }, + "autoScaleSettings": { + "$ref": "#/definitions/NginxDeploymentScalingPropertiesAutoScaleSettings", + "description": "The settings for enabling automatic scaling of the deployment. If this field is specified, 'scale.capacity' must be empty.", + "x-ms-client-flatten": true + } + } + }, + "NginxDeploymentScalingPropertiesAutoScaleSettings": { + "type": "object", + "description": "The settings for enabling automatic scaling of the deployment. If this field is specified, 'scale.capacity' must be empty.", + "properties": { + "profiles": { + "type": "array", + "items": { + "$ref": "#/definitions/ScaleProfile" + }, + "x-ms-identifiers": [] + } + }, + "required": [ + "profiles" + ] + }, + "NginxDeploymentUpdateParameters": { + "type": "object", + "description": "Nginx Deployment Update Parameters", + "properties": { + "identity": { + "$ref": "#/definitions/IdentityProperties", + "description": "Identity Properties" + }, + "tags": { + "type": "object", + "description": "Dictionary of ", + "additionalProperties": { + "type": "string" + } + }, + "sku": { + "$ref": "#/definitions/ResourceSku", + "description": "Resource Sku" + }, + "location": { + "type": "string", + "description": "The geo-location where the resource lives", + "x-ms-mutability": [ + "read", + "create" + ] + }, + "properties": { + "$ref": "#/definitions/NginxDeploymentUpdateProperties", + "description": "Nginx Deployment Update Properties" + } + } + }, + "NginxDeploymentUpdateProperties": { + "type": "object", + "description": "Nginx Deployment Update Properties", + "properties": { + "enableDiagnosticsSupport": { + "type": "boolean" + }, + "logging": { + "$ref": "#/definitions/NginxLogging", + "description": "Nginx Logging" + }, + "scalingProperties": { + "$ref": "#/definitions/NginxDeploymentScalingProperties", + "description": "Information on how the deployment will be scaled." + }, + "userProfile": { + "$ref": "#/definitions/NginxDeploymentUserProfile", + "description": "Nginx Deployment User Profile" + }, + "networkProfile": { + "$ref": "#/definitions/NginxNetworkProfile", + "description": "Nginx Network Profile" + }, + "autoUpgradeProfile": { + "$ref": "#/definitions/AutoUpgradeProfile", + "description": "Autoupgrade settings of a deployment." + }, + "nginxAppProtect": { + "$ref": "#/definitions/NginxDeploymentUpdatePropertiesNginxAppProtect", + "description": "Update settings for NGINX App Protect (NAP)", + "x-ms-client-flatten": true + } + } + }, + "NginxDeploymentUpdatePropertiesNginxAppProtect": { + "type": "object", + "description": "Update settings for NGINX App Protect (NAP)", + "properties": { + "webApplicationFirewallSettings": { + "$ref": "#/definitions/WebApplicationFirewallSettings", + "description": "Settings for the NGINX App Protect Web Application Firewall (WAF)" + } + } + }, + "NginxDeploymentUserProfile": { + "type": "object", + "description": "Nginx Deployment User Profile", + "properties": { + "preferredEmail": { + "type": "string", + "description": "The preferred support contact email address of the user used for sending alerts and notification. Can be an empty string or a valid email address.", + "pattern": "^$|^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,}$" + } + } + }, + "NginxDeploymentWafPolicy": { + "type": "object", + "description": "Nginx Deployment Waf Policy", + "properties": { + "properties": { + "$ref": "#/definitions/NginxDeploymentWafPolicyProperties", + "description": "Nginx Deployment Waf Policy Properties" + } + }, + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/ProxyResource" + } + ] + }, + "NginxDeploymentWafPolicyApplyingStatus": { + "type": "object", + "description": "Nginx Deployment Waf Policy Applying Status", + "properties": { + "code": { + "$ref": "#/definitions/NginxDeploymentWafPolicyApplyingStatusCode", + "description": "Machine readable code indicating the applying status code of a WAF Policy.", + "readOnly": true + }, + "displayStatus": { + "type": "string", + "description": "A readable string of the current status, and sometimes have the reason for the current state.", + "readOnly": true + }, + "time": { + "type": "string", + "description": "The date and time in UTC the current applying status was set.", + "readOnly": true + } + } + }, + "NginxDeploymentWafPolicyApplyingStatusCode": { + "type": "string", + "description": "Machine readable code indicating the applying status code of a WAF Policy.", + "enum": [ + "NotApplied", + "Applying", + "Succeeded", + "Failed", + "Removing" + ], + "x-ms-enum": { + "name": "NginxDeploymentWafPolicyApplyingStatusCode", + "modelAsString": true, + "values": [ + { + "name": "NotApplied", + "value": "NotApplied", + "description": "The policy is not referenced in the nginx config and not applied." + }, + { + "name": "Applying", + "value": "Applying", + "description": "The policy is referenced in the nginx config and is applying." + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The policy is referenced in the nginx config and that config has been successfully applied." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The policy is referenced in the nginx config and that config failed to apply." + }, + { + "name": "Removing", + "value": "Removing", + "description": "The policy is now not referenced in the nginx config and its being removed from the applied nginx config." + } + ] + } + }, + "NginxDeploymentWafPolicyCompilingStatus": { + "type": "object", + "description": "Nginx Deployment Waf Policy Compiling Status", + "properties": { + "code": { + "$ref": "#/definitions/NginxDeploymentWafPolicyCompilingStatusCode", + "description": "Machine readable code indicating the compilation status of a WAF Policy.", + "readOnly": true + }, + "displayStatus": { + "type": "string", + "description": "A readable string of the current status, and sometimes have the reason for the current state. If the CompilingStatus is Failed the Display Status will be The waf Policy failed to compile.", + "readOnly": true + }, + "time": { + "type": "string", + "description": "The date and time the policy was compiled in UTC.", + "readOnly": true + } + } + }, + "NginxDeploymentWafPolicyCompilingStatusCode": { + "type": "string", + "description": "Machine readable code indicating the compilation status of a WAF Policy.", + "enum": [ + "NotStarted", + "InProgress", + "Succeeded", + "Failed" + ], + "x-ms-enum": { + "name": "NginxDeploymentWafPolicyCompilingStatusCode", + "modelAsString": true, + "values": [ + { + "name": "NotStarted", + "value": "NotStarted", + "description": "The compilation of the custom waf policy has not started" + }, + { + "name": "InProgress", + "value": "InProgress", + "description": "The compilation of the custom waf policy is in progress" + }, + { + "name": "Succeeded", + "value": "Succeeded", + "description": "The compilation of the custom waf policy is completed successfully and can now be referenced in the nginx config." + }, + { + "name": "Failed", + "value": "Failed", + "description": "The compilation of the custom waf policy failed." + } + ] + } + }, + "NginxDeploymentWafPolicyListResponse": { + "type": "object", + "description": "Nginx Deployment Waf Policy List Response", + "properties": { + "value": { + "type": "array", + "description": "The NginxDeploymentWafPolicyMetadata items on this page", + "items": { + "$ref": "#/definitions/NginxDeploymentWafPolicyMetadata" + } + }, + "nextLink": { + "type": "string", + "format": "uri", + "description": "The link to the next page of items" + } + }, + "required": [ + "value" + ] + }, + "NginxDeploymentWafPolicyMetadata": { + "type": "object", + "description": "Nginx Deployment Waf Policy Metadata", + "properties": { + "id": { + "type": "string", + "readOnly": true + }, + "name": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/NginxDeploymentWafPolicyMetadataProperties", + "description": "Nginx Deployment Waf Policy Metadata Properties" + }, + "systemData": { + "$ref": "../../../../../common-types/resource-management/v6/types.json#/definitions/systemData", + "description": "Metadata pertaining to creation and last modification of the resource.", + "readOnly": true + } + } + }, + "NginxDeploymentWafPolicyMetadataProperties": { + "type": "object", + "description": "Nginx Deployment Waf Policy Metadata Properties", + "properties": { + "filepath": { + "type": "string", + "readOnly": true + }, + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning State", + "readOnly": true + }, + "compilingState": { + "$ref": "#/definitions/NginxDeploymentWafPolicyCompilingStatus", + "description": "Nginx Deployment Waf Policy Compiling Status", + "readOnly": true + }, + "applyingState": { + "$ref": "#/definitions/NginxDeploymentWafPolicyApplyingStatus", + "description": "Nginx Deployment Waf Policy Applying Status", + "readOnly": true + } + } + }, + "NginxDeploymentWafPolicyProperties": { + "type": "object", + "description": "Nginx Deployment Waf Policy Properties", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState", + "description": "Provisioning State", + "readOnly": true + }, + "content": { + "type": "string", + "format": "byte", + "description": "The byte content of the Policy" + }, + "filepath": { + "type": "string", + "description": "The file path where the Policy is to be saved" + }, + "compilingState": { + "$ref": "#/definitions/NginxDeploymentWafPolicyCompilingStatus", + "description": "Nginx Deployment Waf Policy Compiling Status", + "readOnly": true + }, + "applyingState": { + "$ref": "#/definitions/NginxDeploymentWafPolicyApplyingStatus", + "description": "Nginx Deployment Waf Policy Applying Status", + "readOnly": true + } + } + }, + "NginxFrontendIPConfiguration": { + "type": "object", + "description": "Nginx Frontend IP Configuration", + "properties": { + "publicIPAddresses": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxPublicIPAddress" + }, + "x-ms-identifiers": [] + }, + "privateIPAddresses": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxPrivateIPAddress" + }, + "x-ms-identifiers": [] + } + } + }, + "NginxLogging": { + "type": "object", + "description": "Nginx Logging", + "properties": { + "storageAccount": { + "$ref": "#/definitions/NginxStorageAccount", + "description": "Nginx Storage Account" + } + } + }, + "NginxNetworkInterfaceConfiguration": { + "type": "object", + "description": "Nginx Network Interface Configuration", + "properties": { + "subnetId": { + "type": "string" + } + } + }, + "NginxNetworkProfile": { + "type": "object", + "description": "Nginx Network Profile", + "properties": { + "frontEndIPConfiguration": { + "$ref": "#/definitions/NginxFrontendIPConfiguration", + "description": "Nginx Frontend IP Configuration" + }, + "networkInterfaceConfiguration": { + "$ref": "#/definitions/NginxNetworkInterfaceConfiguration", + "description": "Nginx Network Interface Configuration" + } + } + }, + "NginxPrivateIPAddress": { + "type": "object", + "description": "Nginx Private IP Address", + "properties": { + "privateIPAddress": { + "type": "string" + }, + "privateIPAllocationMethod": { + "$ref": "#/definitions/NginxPrivateIPAllocationMethod", + "description": "Nginx Private IP Allocation Method" + }, + "subnetId": { + "type": "string" + } + } + }, + "NginxPrivateIPAllocationMethod": { + "type": "string", + "description": "Nginx Private IP Allocation Method", + "enum": [ + "Static", + "Dynamic" + ], + "x-ms-enum": { + "name": "NginxPrivateIPAllocationMethod", + "modelAsString": true, + "values": [ + { + "name": "Static", + "value": "Static" + }, + { + "name": "Dynamic", + "value": "Dynamic" + } + ] + } + }, + "NginxPublicIPAddress": { + "type": "object", + "description": "Nginx Public IP Address", + "properties": { + "id": { + "type": "string" + } + } + }, + "NginxStorageAccount": { + "type": "object", + "description": "Nginx Storage Account", + "properties": { + "accountName": { + "type": "string" + }, + "containerName": { + "type": "string" + } + } + }, + "ProvisioningState": { + "type": "string", + "description": "Provisioning State", + "enum": [ + "Accepted", + "Creating", + "Updating", + "Deleting", + "Succeeded", + "Failed", + "Canceled", + "Deleted", + "NotSpecified" + ], + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true, + "values": [ + { + "name": "Accepted", + "value": "Accepted" + }, + { + "name": "Creating", + "value": "Creating" + }, + { + "name": "Updating", + "value": "Updating" + }, + { + "name": "Deleting", + "value": "Deleting" + }, + { + "name": "Succeeded", + "value": "Succeeded" + }, + { + "name": "Failed", + "value": "Failed" + }, + { + "name": "Canceled", + "value": "Canceled" + }, + { + "name": "Deleted", + "value": "Deleted" + }, + { + "name": "NotSpecified", + "value": "NotSpecified" + } + ] + } + }, + "ResourceSku": { + "type": "object", + "description": "Resource Sku", + "properties": { + "name": { + "type": "string", + "description": "Name of the SKU." + } + }, + "required": [ + "name" + ] + }, + "ScaleProfile": { + "type": "object", + "description": "The autoscale profile.", + "properties": { + "name": { + "type": "string" + }, + "capacity": { + "$ref": "#/definitions/ScaleProfileCapacity", + "description": "The capacity parameters of the profile.", + "x-ms-client-flatten": true + } + }, + "required": [ + "name", + "capacity" + ] + }, + "ScaleProfileCapacity": { + "type": "object", + "description": "The capacity parameters of the profile.", + "properties": { + "min": { + "type": "integer", + "format": "int32", + "description": "The minimum number of NCUs the deployment can be autoscaled to." + }, + "max": { + "type": "integer", + "format": "int32", + "description": "The maximum number of NCUs the deployment can be autoscaled to." + } + }, + "required": [ + "min", + "max" + ] + }, + "UserIdentityProperties": { + "type": "object", + "description": "User Identity Properties", + "properties": { + "principalId": { + "type": "string", + "readOnly": true + }, + "clientId": { + "type": "string", + "readOnly": true + } + } + }, + "WebApplicationFirewallComponentVersions": { + "type": "object", + "description": "Versions of the NGINX App Protect Web Application Firewall (WAF) components.", + "properties": { + "wafEngineVersion": { + "type": "string", + "description": "The version of the NGINX App Protect Web Application Firewall (WAF) engine." + }, + "wafNginxVersion": { + "type": "string", + "description": "The version of the NGINX App Protect Web Application Firewall (WAF) module for NGINX." + } + }, + "required": [ + "wafEngineVersion", + "wafNginxVersion" + ] + }, + "WebApplicationFirewallPackage": { + "type": "object", + "description": "NGINX App Protect Web Application Firewall (WAF) Package. Contains the version and revision date of the package.", + "properties": { + "version": { + "type": "string", + "description": "The version of the NGINX App Protect Web Application Firewall (WAF) package." + }, + "revisionDatetime": { + "type": "string", + "format": "date-time", + "description": "The date and time of the package revision." + } + }, + "required": [ + "version", + "revisionDatetime" + ] + }, + "WebApplicationFirewallSettings": { + "type": "object", + "description": "Settings for the NGINX App Protect Web Application Firewall (WAF)", + "properties": { + "activationState": { + "$ref": "#/definitions/ActivationState", + "description": "The activation state of the WAF. Use 'Enabled' to enable the WAF and 'Disabled' to disable it." + } + } + }, + "WebApplicationFirewallStatus": { + "type": "object", + "description": "The status of the NGINX App Protect Web Application Firewall", + "properties": { + "wafRelease": { + "type": "string", + "description": "NGINX App Protect WAF release version" + }, + "attackSignaturesPackage": { + "$ref": "#/definitions/WebApplicationFirewallPackage", + "description": "Package containing attack signatures for the NGINX App Protect Web Application Firewall (WAF).", + "readOnly": true + }, + "botSignaturesPackage": { + "$ref": "#/definitions/WebApplicationFirewallPackage", + "description": "Package containing bot signatures for the NGINX App Protect Web Application Firewall (WAF).", + "readOnly": true + }, + "threatCampaignsPackage": { + "$ref": "#/definitions/WebApplicationFirewallPackage", + "description": "Package containing threat campaigns for the NGINX App Protect Web Application Firewall (WAF).", + "readOnly": true + }, + "componentVersions": { + "$ref": "#/definitions/WebApplicationFirewallComponentVersions", + "description": "Versions of the NGINX App Protect Web Application Firewall (WAF) components.", + "readOnly": true + } + } + } + }, + "parameters": {} +} diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_CreateOrUpdate.json similarity index 91% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_CreateOrUpdate.json index e1c7066b8bcd..378105c4fc8f 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_CreateOrUpdate.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "certificateName": "default", - "body": { + "requestBody": { "properties": { "keyVirtualPath": "/src/cert/somekey.key", "certificateVirtualPath": "/src/cert/somePath.cert", @@ -16,7 +16,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -29,7 +29,7 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_Delete.json similarity index 71% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_Delete.json index af9031d0419d..5add46b5a4db 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_Delete.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_Delete.json @@ -8,7 +8,11 @@ }, "responses": { "200": {}, - "202": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationstatus" + } + }, "204": {} } } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_Get.json similarity index 92% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_Get.json index 6ba9c1a58d28..48b1147f5dab 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_Get.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_Get.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_List.json similarity index 91% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_List.json index 05efc6174b2f..3b33f41a2823 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Certificates_List.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Certificates_List.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert1", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert1", "name": "cert1", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -21,7 +21,7 @@ } }, { - "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert2", + "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert2", "name": "cert2", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Configurations_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Configurations_CreateOrUpdate.json similarity index 98% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Configurations_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Configurations_CreateOrUpdate.json index ac0e2cec6572..07e100e1cc1b 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Configurations_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Configurations_CreateOrUpdate.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "configurationName": "default", - "body": { + "requestBody": { "properties": { "files": [ { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Configurations_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Configurations_Delete.json similarity index 71% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Configurations_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Configurations_Delete.json index b6152093de3b..bf1a0d68a71e 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Configurations_Delete.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Configurations_Delete.json @@ -8,7 +8,11 @@ }, "responses": { "200": {}, - "202": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationstatus" + } + }, "204": {} } } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Configurations_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Configurations_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Configurations_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Configurations_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Configurations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Configurations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Configurations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Configurations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_Create.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_Create.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_Create.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_Create.json index 92290b83747f..87adc0c64904 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_Create.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_Create.json @@ -4,7 +4,7 @@ "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", - "body": { + "requestBody": { "name": "myDeployment", "tags": { "Environment": "Dev" diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_Delete.json similarity index 69% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_Delete.json index 78e6ffc0794f..411aeb846bec 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_Delete.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_Delete.json @@ -7,7 +7,11 @@ }, "responses": { "200": {}, - "202": {}, + "202": { + "headers": { + "Azure-AsyncOperation": "https://foo.com/operationstatus" + } + }, "204": {} } } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_ListByResourceGroup.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_ListByResourceGroup.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_ListByResourceGroup.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_ListByResourceGroup.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_Update.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_Update.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_Update.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_Update.json index 065b791705a9..43aa12827cf8 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Deployments_Update.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Deployments_Update.json @@ -4,7 +4,7 @@ "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", - "body": { + "requestBody": { "tags": { "Environment": "Dev" } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Operations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Operations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2022-08-01/examples/Operations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/examples/Operations_List.json diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/swagger.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/swagger.json new file mode 100644 index 000000000000..c37bde481e53 --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2022-08-01/swagger.json @@ -0,0 +1,1333 @@ +{ + "swagger": "2.0", + "info": { + "title": "Nginx.NginxPlus", + "version": "2022-08-01" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/certificates/{certificateName}": { + "get": { + "tags": [ + "NginxCertificate" + ], + "summary": "Get a certificate of given Nginx deployment", + "operationId": "Certificates_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + }, + { + "in": "path", + "name": "certificateName", + "description": "The name of certificate", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxCertificate" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Certificates_Get": { + "$ref": "./examples/Certificates_Get.json" + } + } + }, + "put": { + "tags": [ + "NginxCertificate" + ], + "summary": "Create or update the Nginx certificates for given Nginx deployment", + "operationId": "Certificates_Create", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + }, + { + "in": "path", + "name": "certificateName", + "description": "The name of certificate", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "The certificate", + "schema": { + "$ref": "#/definitions/NginxCertificate" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxCertificate" + } + }, + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxCertificate" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-examples": { + "Certificates_CreateOrUpdate": { + "$ref": "./examples/Certificates_CreateOrUpdate.json" + } + } + }, + "delete": { + "tags": [ + "NginxCertificate" + ], + "summary": "Deletes a certificate from the nginx deployment", + "operationId": "Certificates_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + }, + { + "in": "path", + "name": "certificateName", + "description": "The name of certificate", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "202": { + "description": "Success" + }, + "204": { + "description": "Success" + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Certificates_Delete": { + "$ref": "./examples/Certificates_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/certificates": { + "get": { + "tags": [ + "NginxCertificate" + ], + "summary": "List all certificates of given Nginx deployment", + "operationId": "Certificates_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxCertificateListResponse" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Certificates_List": { + "$ref": "./examples/Certificates_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/configurations": { + "get": { + "tags": [ + "NginxConfiguration" + ], + "summary": "List the Nginx configuration of given Nginx deployment.", + "operationId": "Configurations_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxConfigurationListResponse" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Configurations_List": { + "$ref": "./examples/Configurations_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/configurations/{configurationName}": { + "get": { + "tags": [ + "NginxConfiguration" + ], + "summary": "Get the Nginx configuration of given Nginx deployment", + "operationId": "Configurations_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + }, + { + "in": "path", + "name": "configurationName", + "description": "The name of configuration, only 'default' is supported value due to the singleton of Nginx conf", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxConfiguration" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Configurations_Get": { + "$ref": "./examples/Configurations_Get.json" + } + } + }, + "put": { + "tags": [ + "NginxConfiguration" + ], + "summary": "Create or update the Nginx configuration for given Nginx deployment", + "operationId": "Configurations_CreateOrUpdate", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + }, + { + "in": "path", + "name": "configurationName", + "description": "The name of configuration, only 'default' is supported value due to the singleton of Nginx conf", + "required": true, + "type": "string" + }, + { + "in": "body", + "name": "body", + "description": "The Nginx configuration", + "schema": { + "$ref": "#/definitions/NginxConfiguration" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxConfiguration" + } + }, + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxConfiguration" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-examples": { + "Configurations_CreateOrUpdate": { + "$ref": "./examples/Configurations_CreateOrUpdate.json" + } + } + }, + "delete": { + "tags": [ + "NginxConfiguration" + ], + "summary": "Reset the Nginx configuration of given Nginx deployment to default", + "operationId": "Configurations_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + }, + { + "in": "path", + "name": "configurationName", + "description": "The name of configuration, only 'default' is supported value due to the singleton of Nginx conf", + "required": true, + "type": "string" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "202": { + "description": "Success" + }, + "204": { + "description": "Success" + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Configurations_Delete": { + "$ref": "./examples/Configurations_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}": { + "get": { + "tags": [ + "NginxDeployment" + ], + "summary": "Get the Nginx deployment", + "operationId": "Deployments_Get", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxDeployment" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Deployments_Get": { + "$ref": "./examples/Deployments_Get.json" + } + } + }, + "put": { + "tags": [ + "NginxDeployment" + ], + "summary": "Create or update the Nginx deployment", + "operationId": "Deployments_Create", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + }, + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/NginxDeployment" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxDeployment" + } + }, + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxDeployment" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-long-running-operation-options": { + "final-state-via": "azure-async-operation" + }, + "x-ms-examples": { + "Deployments_Create": { + "$ref": "./examples/Deployments_Create.json" + } + } + }, + "patch": { + "tags": [ + "NginxDeployment" + ], + "summary": "Update the Nginx deployment", + "operationId": "Deployments_Update", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + }, + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/NginxDeploymentUpdateParameters" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxDeployment" + } + }, + "201": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxDeployment" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Deployments_Update": { + "$ref": "./examples/Deployments_Update.json" + } + }, + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ + "NginxDeployment" + ], + "summary": "Delete the Nginx deployment resource", + "operationId": "Deployments_Delete", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + } + ], + "responses": { + "200": { + "description": "Success" + }, + "202": { + "description": "Success" + }, + "204": { + "description": "Success" + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Deployments_Delete": { + "$ref": "./examples/Deployments_Delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Nginx.NginxPlus/nginxDeployments": { + "get": { + "tags": [ + "NginxDeployment" + ], + "summary": "List the Nginx deployments resources", + "operationId": "Deployments_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxDeploymentListResponse" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Deployments_List": { + "$ref": "./examples/Deployments_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments": { + "get": { + "tags": [ + "NginxDeployment" + ], + "summary": "List all Nginx deployments under the specified resource group.", + "operationId": "Deployments_ListByResourceGroup", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/NginxDeploymentListResponse" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Deployments_ListByResourceGroup": { + "$ref": "./examples/Deployments_ListByResourceGroup.json" + } + } + } + }, + "/providers/Nginx.NginxPlus/operations": { + "get": { + "tags": [ + "NginxDeployment" + ], + "summary": "List all operations provided by Nginx.NginxPlus for the 2022-08-01 api version.", + "operationId": "Operations_List", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/OperationListResult" + } + }, + "default": { + "description": "Default error response.", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "Operations_List": { + "$ref": "./examples/Operations_List.json" + } + } + } + } + }, + "definitions": { + "ProvisioningState": { + "enum": [ + "Accepted", + "Creating", + "Updating", + "Deleting", + "Succeeded", + "Failed", + "Canceled", + "Deleted", + "NotSpecified" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "ProvisioningState" + } + }, + "NginxCertificateProperties": { + "type": "object", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState" + }, + "keyVirtualPath": { + "type": "string" + }, + "certificateVirtualPath": { + "type": "string" + }, + "keyVaultSecretId": { + "type": "string" + } + } + }, + "NginxCertificate": { + "type": "object", + "x-ms-azure-resource": true, + "properties": { + "id": { + "type": "string", + "readOnly": true + }, + "name": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/NginxCertificateProperties" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "location": { + "type": "string" + }, + "systemData": { + "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "readOnly": true + } + } + }, + "NginxCertificateListResponse": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxCertificate" + } + }, + "nextLink": { + "type": "string" + } + } + }, + "NginxConfigurationFile": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "virtualPath": { + "type": "string" + } + } + }, + "NginxConfigurationPackage": { + "type": "object", + "properties": { + "data": { + "type": "string" + } + } + }, + "NginxConfigurationProperties": { + "type": "object", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState" + }, + "files": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxConfigurationFile" + }, + "x-ms-identifiers": [] + }, + "protectedFiles": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxConfigurationFile" + }, + "x-ms-identifiers": [] + }, + "package": { + "$ref": "#/definitions/NginxConfigurationPackage" + }, + "rootFile": { + "type": "string" + } + } + }, + "NginxConfiguration": { + "type": "object", + "x-ms-azure-resource": true, + "properties": { + "id": { + "type": "string", + "readOnly": true + }, + "name": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "readOnly": true + }, + "properties": { + "$ref": "#/definitions/NginxConfigurationProperties" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "location": { + "type": "string" + }, + "systemData": { + "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "readOnly": true + } + } + }, + "NginxConfigurationListResponse": { + "description": "Response of a list operation.", + "type": "object", + "properties": { + "value": { + "description": "Results of a list operation.", + "type": "array", + "items": { + "$ref": "#/definitions/NginxConfiguration" + } + }, + "nextLink": { + "description": "Link to the next set of results, if any.", + "type": "string" + } + } + }, + "ErrorResponseBody": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "type": "string" + }, + "target": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/ErrorResponseBody" + }, + "x-ms-identifiers": [] + } + } + }, + "ResourceProviderDefaultErrorResponse": { + "type": "object", + "properties": { + "error": { + "$ref": "#/definitions/ErrorResponseBody" + } + } + }, + "IdentityType": { + "enum": [ + "SystemAssigned", + "UserAssigned", + "SystemAssigned, UserAssigned", + "None" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "IdentityType" + } + }, + "UserIdentityProperties": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "readOnly": true + }, + "clientId": { + "type": "string", + "readOnly": true + } + } + }, + "ResourceSku": { + "required": [ + "name" + ], + "type": "object", + "properties": { + "name": { + "description": "Name of the SKU.", + "type": "string" + } + } + }, + "IdentityProperties": { + "type": "object", + "properties": { + "principalId": { + "type": "string", + "readOnly": true + }, + "tenantId": { + "type": "string", + "readOnly": true + }, + "type": { + "$ref": "#/definitions/IdentityType" + }, + "userAssignedIdentities": { + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/UserIdentityProperties" + } + } + } + }, + "NginxPrivateIPAllocationMethod": { + "enum": [ + "Static", + "Dynamic" + ], + "type": "string", + "x-ms-enum": { + "modelAsString": true, + "name": "NginxPrivateIPAllocationMethod" + } + }, + "NginxPrivateIPAddress": { + "type": "object", + "properties": { + "privateIPAddress": { + "type": "string" + }, + "privateIPAllocationMethod": { + "$ref": "#/definitions/NginxPrivateIPAllocationMethod" + }, + "subnetId": { + "type": "string" + } + } + }, + "NginxPublicIPAddress": { + "type": "object", + "properties": { + "id": { + "type": "string" + } + } + }, + "NginxFrontendIPConfiguration": { + "type": "object", + "properties": { + "publicIPAddresses": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxPublicIPAddress" + }, + "x-ms-identifiers": [] + }, + "privateIPAddresses": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxPrivateIPAddress" + }, + "x-ms-identifiers": [] + } + } + }, + "NginxNetworkInterfaceConfiguration": { + "type": "object", + "properties": { + "subnetId": { + "type": "string" + } + } + }, + "NginxNetworkProfile": { + "type": "object", + "properties": { + "frontEndIPConfiguration": { + "$ref": "#/definitions/NginxFrontendIPConfiguration" + }, + "networkInterfaceConfiguration": { + "$ref": "#/definitions/NginxNetworkInterfaceConfiguration" + } + } + }, + "NginxStorageAccount": { + "type": "object", + "properties": { + "accountName": { + "type": "string" + }, + "containerName": { + "type": "string" + } + } + }, + "NginxLogging": { + "type": "object", + "properties": { + "storageAccount": { + "$ref": "#/definitions/NginxStorageAccount" + } + } + }, + "NginxDeploymentProperties": { + "type": "object", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState" + }, + "nginxVersion": { + "type": "string", + "readOnly": true + }, + "managedResourceGroup": { + "type": "string", + "description": "The managed resource group to deploy VNet injection related network resources." + }, + "networkProfile": { + "$ref": "#/definitions/NginxNetworkProfile" + }, + "ipAddress": { + "type": "string", + "description": "The IP address of the deployment.", + "readOnly": true + }, + "enableDiagnosticsSupport": { + "type": "boolean" + }, + "logging": { + "$ref": "#/definitions/NginxLogging" + } + } + }, + "NginxDeployment": { + "type": "object", + "x-ms-azure-resource": true, + "properties": { + "id": { + "type": "string", + "readOnly": true + }, + "name": { + "type": "string", + "readOnly": true + }, + "type": { + "type": "string", + "readOnly": true + }, + "identity": { + "$ref": "#/definitions/IdentityProperties" + }, + "properties": { + "$ref": "#/definitions/NginxDeploymentProperties" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sku": { + "$ref": "#/definitions/ResourceSku" + }, + "location": { + "type": "string" + }, + "systemData": { + "$ref": "../../../../../common-types/resource-management/v2/types.json#/definitions/systemData", + "readOnly": true + } + } + }, + "NginxDeploymentUpdateProperties": { + "type": "object", + "properties": { + "enableDiagnosticsSupport": { + "type": "boolean" + }, + "logging": { + "$ref": "#/definitions/NginxLogging" + } + } + }, + "NginxDeploymentUpdateParameters": { + "type": "object", + "properties": { + "identity": { + "$ref": "#/definitions/IdentityProperties" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "sku": { + "$ref": "#/definitions/ResourceSku" + }, + "location": { + "type": "string" + }, + "properties": { + "$ref": "#/definitions/NginxDeploymentUpdateProperties" + } + } + }, + "NginxDeploymentListResponse": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/NginxDeployment" + } + }, + "nextLink": { + "type": "string" + } + } + }, + "OperationDisplay": { + "description": "The object that represents the operation.", + "type": "object", + "properties": { + "provider": { + "description": "Service provider: Nginx.NginxPlus", + "type": "string" + }, + "resource": { + "description": "Type on which the operation is performed, e.g., 'deployments'.", + "type": "string" + }, + "operation": { + "description": "Operation type, e.g., read, write, delete, etc.", + "type": "string" + }, + "description": { + "description": "Description of the operation, e.g., 'Write deployments'.", + "type": "string" + } + } + }, + "OperationResult": { + "description": "A Nginx.NginxPlus REST API operation.", + "type": "object", + "properties": { + "name": { + "description": "Operation name: {provider}/{resource}/{operation}", + "type": "string" + }, + "display": { + "description": "The object that represents the operation.", + "$ref": "#/definitions/OperationDisplay" + }, + "isDataAction": { + "description": "Indicates whether the operation is a data action", + "type": "boolean" + } + } + }, + "OperationListResult": { + "description": "Result of GET request to list Nginx.NginxPlus operations.", + "type": "object", + "properties": { + "value": { + "description": "List of operations supported by the Nginx.NginxPlus provider.", + "type": "array", + "items": { + "$ref": "#/definitions/OperationResult" + }, + "x-ms-identifiers": [] + }, + "nextLink": { + "description": "URL to get the next set of operation list results if there are any.", + "type": "string" + } + } + } + }, + "parameters": { + "DeploymentNameParameter": { + "in": "path", + "name": "deploymentName", + "description": "The name of targeted Nginx deployment", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Certificates_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Certificates_CreateOrUpdate.json similarity index 91% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Certificates_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Certificates_CreateOrUpdate.json index ec2c12a42324..fedb7068ad97 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Certificates_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Certificates_CreateOrUpdate.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "certificateName": "default", - "body": { + "requestBody": { "properties": { "keyVirtualPath": "/src/cert/somekey.key", "certificateVirtualPath": "/src/cert/somePath.cert", @@ -16,7 +16,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -29,7 +29,7 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Certificates_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Certificates_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Certificates_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Certificates_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Certificates_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Certificates_Get.json similarity index 92% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Certificates_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Certificates_Get.json index 62dde467a650..b103c27f36ab 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Certificates_Get.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Certificates_Get.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Certificates_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Certificates_List.json similarity index 91% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Certificates_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Certificates_List.json index aebf9d5f681c..e27f188defff 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Certificates_List.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Certificates_List.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert1", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert1", "name": "cert1", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -21,7 +21,7 @@ } }, { - "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert2", + "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert2", "name": "cert2", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Configurations_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Configurations_CreateOrUpdate.json similarity index 98% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Configurations_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Configurations_CreateOrUpdate.json index 5e8c8ba7b286..e1d710256fc4 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Configurations_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Configurations_CreateOrUpdate.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "configurationName": "default", - "body": { + "requestBody": { "properties": { "files": [ { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Configurations_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Configurations_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Configurations_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Configurations_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Configurations_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Configurations_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Configurations_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Configurations_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Configurations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Configurations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Configurations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Configurations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_Create.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_Create.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_Create.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_Create.json index 0bfb6ae74bfd..1dccfb52fa51 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_Create.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_Create.json @@ -4,7 +4,7 @@ "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", - "body": { + "requestBody": { "name": "myDeployment", "tags": { "Environment": "Dev" diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_ListByResourceGroup.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_ListByResourceGroup.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_ListByResourceGroup.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_ListByResourceGroup.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_Update.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_Update.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_Update.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_Update.json index 23c564edd085..ad53dc66e313 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Deployments_Update.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Deployments_Update.json @@ -4,7 +4,7 @@ "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", - "body": { + "requestBody": { "tags": { "Environment": "Dev" } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Operations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Operations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/examples/Operations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/examples/Operations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/swagger.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/swagger.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-04-01/swagger.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-04-01/swagger.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Certificates_CreateOrUpdate.json similarity index 91% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Certificates_CreateOrUpdate.json index 572a7318eef0..95e26ed3613e 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Certificates_CreateOrUpdate.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "certificateName": "default", - "body": { + "requestBody": { "properties": { "keyVirtualPath": "/src/cert/somekey.key", "certificateVirtualPath": "/src/cert/somePath.cert", @@ -16,7 +16,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -29,7 +29,7 @@ }, "201": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Certificates_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Certificates_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Certificates_Get.json similarity index 95% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Certificates_Get.json index 722510513dd7..6d39ccca313a 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_Get.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Certificates_Get.json @@ -9,7 +9,7 @@ "responses": { "200": { "body": { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/default", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/default", "name": "default", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Certificates_List.json similarity index 94% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Certificates_List.json index d46cc0d9b30e..65502a0f044f 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_List.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Certificates_List.json @@ -10,7 +10,7 @@ "body": { "value": [ { - "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert1", + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert1", "name": "cert1", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { @@ -28,7 +28,7 @@ } }, { - "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/NGINX.NGINXPLUS/nginxDeployments/myDeployment/certificates/cert2", + "id": "/subscritions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/certificates/cert2", "name": "cert2", "type": "nginx.nginxplus/nginxdeployments/certificates", "properties": { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Analysis.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_Analysis.json similarity index 98% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Analysis.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_Analysis.json index 23a8c9565660..bdbd0c6ae700 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Analysis.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_Analysis.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "configurationName": "default", - "body": { + "requestBody": { "config": { "files": [ { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_CreateOrUpdate.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_CreateOrUpdate.json similarity index 98% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_CreateOrUpdate.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_CreateOrUpdate.json index 5bc04c16378b..b36cb60e3274 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_CreateOrUpdate.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_CreateOrUpdate.json @@ -5,7 +5,7 @@ "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", "configurationName": "default", - "body": { + "requestBody": { "properties": { "files": [ { diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Configurations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Create.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_Create.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Create.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_Create.json index b2098c1d45c9..2874ef7d4dba 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Create.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_Create.json @@ -4,7 +4,7 @@ "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", - "body": { + "requestBody": { "name": "myDeployment", "tags": { "Environment": "Dev" diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Delete.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_Delete.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Delete.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_Delete.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Get.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_Get.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Get.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_Get.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_ListByResourceGroup.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_ListByResourceGroup.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_ListByResourceGroup.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_ListByResourceGroup.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Update.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_Update.json similarity index 99% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Update.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_Update.json index c11ddc580188..de5df133ff93 100644 --- a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Update.json +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Deployments_Update.json @@ -4,7 +4,7 @@ "subscriptionId": "00000000-0000-0000-0000-000000000000", "resourceGroupName": "myResourceGroup", "deploymentName": "myDeployment", - "body": { + "requestBody": { "tags": { "Environment": "Dev" } diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Operations_List.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Operations_List.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Operations_List.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/examples/Operations_List.json diff --git a/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/swagger.json b/specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/swagger.json similarity index 100% rename from specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/swagger.json rename to specification/nginx/resource-manager/Nginx.NginxPlus/stable/2023-09-01/swagger.json diff --git a/specification/nginx/resource-manager/Nginx.NginxPlus/suppressions.yaml b/specification/nginx/resource-manager/Nginx.NginxPlus/suppressions.yaml new file mode 100644 index 000000000000..cd4e2a72651d --- /dev/null +++ b/specification/nginx/resource-manager/Nginx.NginxPlus/suppressions.yaml @@ -0,0 +1,27 @@ +- tool: TypeSpecRequirement + path: ./preview/2021-05-01-preview/*.json + reason: rename `resource-manager/NGINX.NGINXPLUS` to `resource-manager/Nginx.NginxPlus` +- tool: TypeSpecRequirement + path: ./preview/2022-11-01-preview/*.json + reason: rename `resource-manager/NGINX.NGINXPLUS` to `resource-manager/Nginx.NginxPlus` +- tool: TypeSpecRequirement + path: ./preview/2024-01-01-preview/*.json + reason: rename `resource-manager/NGINX.NGINXPLUS` to `resource-manager/Nginx.NginxPlus` +- tool: TypeSpecRequirement + path: ./preview/2024-06-01-preview/*.json + reason: rename `resource-manager/NGINX.NGINXPLUS` to `resource-manager/Nginx.NginxPlus` +- tool: TypeSpecRequirement + path: ./preview/2024-09-01-preview/*.json + reason: rename `resource-manager/NGINX.NGINXPLUS` to `resource-manager/Nginx.NginxPlus` +- tool: TypeSpecRequirement + path: ./preview/2024-11-01-preview/*.json + reason: rename `resource-manager/NGINX.NGINXPLUS` to `resource-manager/Nginx.NginxPlus` +- tool: TypeSpecRequirement + path: ./stable/2022-08-01/*.json + reason: rename `resource-manager/NGINX.NGINXPLUS` to `resource-manager/Nginx.NginxPlus` +- tool: TypeSpecRequirement + path: ./stable/2023-04-01/*.json + reason: rename `resource-manager/NGINX.NGINXPLUS` to `resource-manager/Nginx.NginxPlus` +- tool: TypeSpecRequirement + path: ./stable/2023-09-01/*.json + reason: rename `resource-manager/NGINX.NGINXPLUS` to `resource-manager/Nginx.NginxPlus` diff --git a/specification/nginx/resource-manager/readme.java.md b/specification/nginx/resource-manager/readme.java.md index a66d7fab9147..90f61d8a3d1b 100644 --- a/specification/nginx/resource-manager/readme.java.md +++ b/specification/nginx/resource-manager/readme.java.md @@ -58,4 +58,4 @@ java: output-folder: $(azure-libraries-for-java-folder)/sdk/nginx/mgmt-v2021_05_01_preview regenerate-manager: true generate-interface: true -``` \ No newline at end of file +``` diff --git a/specification/nginx/resource-manager/readme.md b/specification/nginx/resource-manager/readme.md index b77a21199d4f..c2e2416efe5f 100644 --- a/specification/nginx/resource-manager/readme.md +++ b/specification/nginx/resource-manager/readme.md @@ -15,6 +15,7 @@ To build the SDK for Nginx, simply [Install AutoRest](https://aka.ms/autorest/in To see additional help and options, run: > `autorest --help` + --- ## Configuration @@ -27,43 +28,43 @@ These are the global settings for the Nginx API. title: NginxManagementClient openapi-type: arm openapi-subtype: rpaas -tag: package-2024-11-01-preview +tag: package-preview-2025-03-01 ``` -### Tag: package-2024-11-01-preview +### Tag: package-2021-05-01-preview -These settings apply only when `--tag=package-2024-11-01-preview` is specified on the command line. +These settings apply only when `--tag=package-2021-05-01-preview` is specified on the command line. -```yaml $(tag) == 'package-2024-11-01-preview' +``` yaml $(tag) == 'package-2021-05-01-preview' input-file: - - NGINX.NGINXPLUS/preview/2024-11-01-preview/swagger.json +- Nginx.NginxPlus/preview/2021-05-01-preview/swagger.json ``` -### Tag: package-2024-09-01-preview +### Tag: package-2022-08-01 -These settings apply only when `--tag=package-2024-09-01-preview` is specified on the command line. +These settings apply only when `--tag=package-2022-08-01` is specified on the command line. -```yaml $(tag) == 'package-2024-09-01-preview' +``` yaml $(tag) == 'package-2022-08-01' input-file: - - NGINX.NGINXPLUS/preview/2024-09-01-preview/swagger.json +- Nginx.NginxPlus/stable/2022-08-01/swagger.json ``` -### Tag: package-2024-06-01-preview +### Tag: package-2022-11-01-preview -These settings apply only when `--tag=package-2024-06-01-preview` is specified on the command line. +These settings apply only when `--tag=package-2022-11-01-preview` is specified on the command line. -``` yaml $(tag) == 'package-2024-06-01-preview' +``` yaml $(tag) == 'package-2022-11-01-preview' input-file: -- NGINX.NGINXPLUS/preview/2024-06-01-preview/swagger.json +- Nginx.NginxPlus/preview/2022-11-01-preview/swagger.json ``` -### Tag: package-2024-01-01-preview +### Tag: package-2023-04-01 -These settings apply only when `--tag=package-2024-01-01-preview` is specified on the command line. +These settings apply only when `--tag=package-2023-04-01` is specified on the command line. -``` yaml $(tag) == 'package-2024-01-01-preview' +``` yaml $(tag) == 'package-2023-04-01' input-file: -- NGINX.NGINXPLUS/preview/2024-01-01-preview/swagger.json +- Nginx.NginxPlus/stable/2023-04-01/swagger.json ``` ### Tag: package-2023-09-01 @@ -72,82 +73,50 @@ These settings apply only when `--tag=package-2023-09-01` is specified on the co ``` yaml $(tag) == 'package-2023-09-01' input-file: -- NGINX.NGINXPLUS/stable/2023-09-01/swagger.json +- Nginx.NginxPlus/stable/2023-09-01/swagger.json ``` -### Tag: package-2023-04-01 +### Tag: package-preview-2024-01 -These settings apply only when `--tag=package-2023-04-01` is specified on the command line. +These settings apply only when `--tag=package-preview-2024-01` is specified on the command line. -``` yaml $(tag) == 'package-2023-04-01' +```yaml $(tag) == 'package-preview-2024-01' input-file: -- NGINX.NGINXPLUS/stable/2023-04-01/swagger.json + - Nginx.NginxPlus/preview/2024-01-01-preview/swagger.json ``` -### Tag: package-2022-08-01 +### Tag: package-preview-2024-06-01 -These settings apply only when `--tag=package-2022-08-01` is specified on the command line. +These settings apply only when `--tag=package-preview-2024-06-01` is specified on the command line. -``` yaml $(tag) == 'package-2022-08-01' +```yaml $(tag) == 'package-preview-2024-06-01' input-file: -- NGINX.NGINXPLUS/stable/2022-08-01/swagger.json + - Nginx.NginxPlus/preview/2024-06-01-preview/swagger.json ``` -### Tag: package-2021-05-01-preview +### Tag: package-preview-2024-09-01 -These settings apply only when `--tag=package-2021-05-01-preview` is specified on the command line. +These settings apply only when `--tag=package-preview-2024-09-01` is specified on the command line. -``` yaml $(tag) == 'package-2021-05-01-preview' +```yaml $(tag) == 'package-preview-2024-09-01' input-file: -- NGINX.NGINXPLUS/preview/2021-05-01-preview/swagger.json + - Nginx.NginxPlus/preview/2024-09-01-preview/swagger.json ``` -## Suppression +### Tag: package-preview-2024-11-01 -``` yaml -directive: - - suppress: PutRequestResponseSchemeArm - from: swagger.json - reason: Temporary suppression needed to avoid delays for business needs and maintain production timelines. It's also approved before in previous PR in private repo. -``` - ---- +These settings apply only when `--tag=package-preview-2024-11-01` is specified on the command line. -# 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-sdk-for-python - - repo: azure-sdk-for-java - - repo: azure-sdk-for-go - - repo: azure-sdk-for-js - - repo: azure-sdk-for-node - - repo: azure-cli-extensions - - repo: azure-resource-manager-schemas - - repo: azure-powershell +```yaml $(tag) == 'package-preview-2024-11-01' +input-file: + - Nginx.NginxPlus/preview/2024-11-01-preview/swagger.json ``` -## Go +### Tag: package-preview-2025-03-01 -See configuration in [readme.go.md](./readme.go.md) +These settings apply only when `--tag=package-preview-2025-03-01` is specified on the command line. -## Python - -See configuration in [readme.python.md](./readme.python.md) - -## C# - -See configuration in [readme.csharp.md](./readme.csharp.md) - -## Java - -See configuration in [readme.java.md](./readme.java.md) - -## TypeScript - -See configuration in [readme.typescript.md](./readme.typescript.md) +```yaml $(tag) == 'package-preview-2025-03-01' +input-file: + - Nginx.NginxPlus/preview/2025-03-01-preview/swagger.json +``` diff --git a/specification/nginx/resource-manager/readme.python.md b/specification/nginx/resource-manager/readme.python.md index 28a5638e4bdd..a743cd725ad2 100644 --- a/specification/nginx/resource-manager/readme.python.md +++ b/specification/nginx/resource-manager/readme.python.md @@ -4,7 +4,6 @@ These settings apply only when `--python` is specified on the command line. Please also specify `--python-sdks-folder=`. Use `--python-mode=update` if you already have a setup.py and just want to update the code itself. - ``` yaml $(python) azure-arm: true license-header: MICROSOFT_MIT_NO_VERSION