From c75671ae0a5d82d7d96fda75150478e8581408d8 Mon Sep 17 00:00:00 2001 From: Zao Wang <122930832+zaowang-ms@users.noreply.github.com> Date: Wed, 24 Jan 2024 09:19:45 -0800 Subject: [PATCH] Adding 2023 09 01 for nginx (#27231) * Added version of 2023-09-01 for nginx --- cSpell.json | 7 + .../examples/Certificates_CreateOrUpdate.json | 44 + .../examples/Certificates_Delete.json | 18 + .../2023-09-01/examples/Certificates_Get.json | 31 + .../examples/Certificates_List.json | 49 + .../examples/Configurations_Analysis.json | 43 + .../Configurations_CreateOrUpdate.json | 65 + .../examples/Configurations_Delete.json | 18 + .../examples/Configurations_Get.json | 31 + .../examples/Configurations_List.json | 34 + .../examples/Deployments_Create.json | 114 ++ .../examples/Deployments_Delete.json | 17 + .../2023-09-01/examples/Deployments_Get.json | 45 + .../2023-09-01/examples/Deployments_List.json | 45 + .../Deployments_ListByResourceGroup.json | 46 + .../examples/Deployments_Update.json | 89 + .../2023-09-01/examples/Operations_List.json | 23 + .../stable/2023-09-01/swagger.json | 1579 +++++++++++++++++ .../nginx/resource-manager/readme.md | 12 +- 19 files changed, 2309 insertions(+), 1 deletion(-) create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_CreateOrUpdate.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_Delete.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_Get.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_List.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Analysis.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_CreateOrUpdate.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Delete.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Get.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_List.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Create.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Delete.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Get.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_List.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_ListByResourceGroup.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Update.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Operations_List.json create mode 100644 specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/swagger.json diff --git a/cSpell.json b/cSpell.json index 37ae9149252d..bdca96096ff3 100644 --- a/cSpell.json +++ b/cSpell.json @@ -988,6 +988,13 @@ "rerank", "discretizing" ] + }, + { + "filename": "**/specification/nginx/resource-manager/NGINX.NGINXPLUS/**/*.json", + "words": [ + "nginx", + "nginxaas" + ] } ], "enableFiletypes": [ 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 new file mode 100644 index 000000000000..e54cc8ce8c3e --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_CreateOrUpdate.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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/stable/2023-09-01/examples/Certificates_Delete.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_Delete.json new file mode 100644 index 000000000000..95aef5947cd0 --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_Delete.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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/stable/2023-09-01/examples/Certificates_Get.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_Get.json new file mode 100644 index 000000000000..722510513dd7 --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_Get.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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", + "sha1Thumbprint": "1234567890ABCDEF1234567890ABCDEF12345678", + "keyVaultSecretVersion": "12345678ef9a12345678ef9a12345678", + "keyVaultSecretCreated": "2020-01-01T00:00:00Z", + "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'" + } + } + } + } + } +} 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 new file mode 100644 index 000000000000..d46cc0d9b30e --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Certificates_List.json @@ -0,0 +1,49 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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", + "sha1Thumbprint": "1234567890ABCDEF1234567890ABCDEF12345678", + "keyVaultSecretVersion": "12345678ef9a12345678ef9a12345678", + "keyVaultSecretCreated": "2020-01-01T00:00:00Z", + "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'" + } + } + }, + { + "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", + "sha1Thumbprint": "1234567890ABCDEF1234567890ABCDEF12345678", + "keyVaultSecretVersion": "12345678ef9a12345678ef9a12345678", + "keyVaultSecretCreated": "2020-01-01T00:00:00Z", + "certificateError": null + } + } + ] + } + } + } +} 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 new file mode 100644 index 000000000000..bdbd0c6ae700 --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Analysis.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "myResourceGroup", + "deploymentName": "myDeployment", + "configurationName": "default", + "requestBody": { + "config": { + "files": [ + { + "content": "ABCDEF==", + "virtualPath": "/etc/nginx/nginx.conf" + } + ], + "package": { + "data": null + }, + "rootFile": "/etc/nginx/nginx.conf" + } + } + }, + "responses": { + "200": { + "body": { + "status": "FAILED", + "data": { + "errors": [ + { + "id": "config-analysis-error-1", + "directive": "worker_processes", + "description": "Directives outside the http context are not allowed", + "file": "/etc/nginx/nginx.conf", + "line": 2, + "message": "You are not allowed to set the worker_processes directive", + "rule": "nginx-azure-load-balancer-allowed-directives" + } + ] + } + } + } + } +} 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 new file mode 100644 index 000000000000..b36cb60e3274 --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_CreateOrUpdate.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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/stable/2023-09-01/examples/Configurations_Delete.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Delete.json new file mode 100644 index 000000000000..17414cf5c0a9 --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Delete.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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/stable/2023-09-01/examples/Configurations_Get.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Get.json new file mode 100644 index 000000000000..7c2f57b5a741 --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_Get.json @@ -0,0 +1,31 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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/stable/2023-09-01/examples/Configurations_List.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_List.json new file mode 100644 index 000000000000..a8c8a05a3b6a --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Configurations_List.json @@ -0,0 +1,34 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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/stable/2023-09-01/examples/Deployments_Create.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Create.json new file mode 100644 index 000000000000..2874ef7d4dba --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Create.json @@ -0,0 +1,114 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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" + } + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + }, + "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/stable/2023-09-01/examples/Deployments_Delete.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Delete.json new file mode 100644 index 000000000000..215271ee9c4b --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Delete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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/stable/2023-09-01/examples/Deployments_Get.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Get.json new file mode 100644 index 000000000000..d253c22bb0d7 --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Get.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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" + } + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + } + } + } + } +} 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 new file mode 100644 index 000000000000..178a0c2178dd --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_List.json @@ -0,0 +1,45 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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/stable/2023-09-01/examples/Deployments_ListByResourceGroup.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_ListByResourceGroup.json new file mode 100644 index 000000000000..73943680071e --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_ListByResourceGroup.json @@ -0,0 +1,46 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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/stable/2023-09-01/examples/Deployments_Update.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Update.json new file mode 100644 index 000000000000..de5df133ff93 --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Deployments_Update.json @@ -0,0 +1,89 @@ +{ + "parameters": { + "api-version": "2023-09-01", + "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" + } + }, + "userProfile": { + "preferredEmail": "example@example.email" + } + } + } + }, + "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/stable/2023-09-01/examples/Operations_List.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Operations_List.json new file mode 100644 index 000000000000..8e8ec79a321f --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/examples/Operations_List.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2023-09-01" + }, + "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/2023-09-01/swagger.json b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/swagger.json new file mode 100644 index 000000000000..2d1d578487cf --- /dev/null +++ b/specification/nginx/resource-manager/NGINX.NGINXPLUS/stable/2023-09-01/swagger.json @@ -0,0 +1,1579 @@ +{ + "swagger": "2.0", + "info": { + "title": "Nginx.NginxPlus", + "version": "2023-09-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" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "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_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": "certificateName", + "description": "The name of certificate", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "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" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "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" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "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" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "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" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "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}/configurations/{configurationName}/analyze": { + "post": { + "tags": [ + "NginxConfigurationAnalysis" + ], + "summary": "Analyze an NGINX configuration without applying it to the NGINXaaS deployment", + "operationId": "Configurations_Analysis", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/DeploymentNameParameter" + }, + { + "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]*$" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "name": "body", + "in": "body", + "description": "The NGINX configuration to analyze", + "schema": { + "$ref": "#/definitions/AnalysisCreate" + } + } + ], + "responses": { + "200": { + "description": "Analysis complete", + "schema": { + "$ref": "#/definitions/AnalysisResult" + } + }, + "default": { + "description": "Default error response", + "schema": { + "$ref": "#/definitions/ResourceProviderDefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Configurations_Analysis": { + "$ref": "./examples/Configurations_Analysis.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" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "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_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" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "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" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + }, + { + "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" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "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" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "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" + }, + { + "$ref": "../../../../../common-types/resource-management/v1/types.json#/parameters/ApiVersionParameter" + } + ], + "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 2023-09-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", + "readOnly": true, + "x-ms-enum": { + "modelAsString": true, + "name": "ProvisioningState" + } + }, + "NginxCertificateProperties": { + "type": "object", + "properties": { + "provisioningState": { + "$ref": "#/definitions/ProvisioningState" + }, + "keyVirtualPath": { + "type": "string" + }, + "certificateVirtualPath": { + "type": "string" + }, + "keyVaultSecretId": { + "type": "string" + }, + "sha1Thumbprint": { + "type": "string", + "example": "1234567890ABCDEF1234567890ABCDEF12345678", + "readOnly": true + }, + "keyVaultSecretVersion": { + "type": "string", + "example": "12345678ef9a12345678ef9a12345678", + "readOnly": true + }, + "keyVaultSecretCreated": { + "type": "string", + "format": "date-time", + "example": "2022-01-01T00:00:00.000Z", + "readOnly": true + }, + "certificateError": { + "$ref": "#/definitions/NginxCertificateErrorResponseBody" + } + } + }, + "NginxCertificateErrorResponseBody": { + "type": "object", + "properties": { + "code": { + "type": "string" + }, + "message": { + "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" + }, + "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" + }, + "protectedFiles": { + "type": "array", + "items": { + "type": "string" + }, + "x-ms-identifiers": [] + } + } + }, + "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" + }, + "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" + } + } + }, + "ResourceProviderDefaultErrorResponse": { + "type": "object", + "properties": { + "error": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorDetail" + } + } + }, + "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" + } + } + }, + "NginxDeploymentScalingProperties": { + "type": "object", + "properties": { + "capacity": { + "format": "int32", + "type": "integer", + "example": 20 + } + } + }, + "NginxDeploymentUserProfile": { + "type": "object", + "properties": { + "preferredEmail": { + "type": "string", + "format": "email", + "pattern": "^$|^[A-Za-z0-9._%+-]+@(?:[A-Za-z0-9-]+\\.)+[A-Za-z]{2,}$", + "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.", + "example": [ + "", + "john.doe@example.com", + "tom@example.com" + ] + } + } + }, + "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" + }, + "scalingProperties": { + "$ref": "#/definitions/NginxDeploymentScalingProperties" + }, + "userProfile": { + "$ref": "#/definitions/NginxDeploymentUserProfile" + } + } + }, + "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" + }, + "scalingProperties": { + "$ref": "#/definitions/NginxDeploymentScalingProperties" + }, + "userProfile": { + "$ref": "#/definitions/NginxDeploymentUserProfile" + } + } + }, + "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" + } + } + }, + "AnalysisCreate": { + "type": "object", + "description": "The request body for creating an analysis for an NGINX configuration.", + "properties": { + "config": { + "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/NginxConfigurationFile" + }, + "x-ms-identifiers": [] + }, + "package": { + "$ref": "#/definitions/NginxConfigurationPackage" + } + } + } + }, + "required": [ + "config" + ] + }, + "AnalysisResult": { + "type": "object", + "description": "The response body for an analysis request. Contains the status of the analysis and any errors.", + "required": [ + "status" + ], + "properties": { + "status": { + "type": "string", + "description": "The status of the analysis." + }, + "data": { + "type": "object", + "properties": { + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/AnalysisError" + } + } + } + } + } + }, + "AnalysisError": { + "type": "object", + "description": "An error object found during the analysis of an NGINX configuration.", + "required": [ + "directive", + "description", + "file", + "line", + "message", + "rule" + ], + "properties": { + "id": { + "type": "string", + "description": "Unique identifier for the error" + }, + "directive": { + "type": "string", + "example": "worker_processes" + }, + "description": { + "type": "string", + "example": "Directives outside the http context are not allowed" + }, + "file": { + "type": "string", + "description": "the filepath of the most relevant config file", + "example": "nginx.conf" + }, + "line": { + "type": "number", + "example": 2 + }, + "message": { + "type": "string", + "example": "You are not allowed to set the worker_processes directive" + }, + "rule": { + "type": "string", + "example": "nginx-azure-load-balancer-allowed-directives" + } + } + } + }, + "parameters": { + "DeploymentNameParameter": { + "in": "path", + "name": "deploymentName", + "description": "The name of targeted NGINX deployment", + "pattern": "^([a-z0-9A-Z][a-z0-9A-Z-]{0,28}[a-z0-9A-Z]|[a-z0-9A-Z])$", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/nginx/resource-manager/readme.md b/specification/nginx/resource-manager/readme.md index e5d413732343..5411ab03b865 100644 --- a/specification/nginx/resource-manager/readme.md +++ b/specification/nginx/resource-manager/readme.md @@ -28,9 +28,19 @@ These are the global settings for the Nginx API. title: NginxManagementClient openapi-type: arm openapi-subtype: rpaas -tag: package-2023-04-01 +tag: package-2023-09-01 ``` +### Tag: package-2023-09-01 + +These settings apply only when `--tag=package-2023-09-01` is specified on the command line. + +``` yaml $(tag) == 'package-2023-09-01' +input-file: +- NGINX.NGINXPLUS/stable/2023-09-01/swagger.json +``` + + ### Tag: package-2023-04-01 These settings apply only when `--tag=package-2023-04-01` is specified on the command line.