From ed29ef3eda90d9be689e8ae7cef4bdcac323bacf Mon Sep 17 00:00:00 2001 From: azure-sdk Date: Thu, 12 Mar 2026 16:29:39 +0000 Subject: [PATCH 1/2] Configurations: 'specification/nginx/Nginx.Management/tspconfig.yaml', API Version: 2025-11-01, SDK Release Type: stable, and CommitSHA: '6f518a19a4f53c8ccb38b839c6076e3b578d795d' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6002141 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. --- .../nginx/armnginx/CHANGELOG.md | 92 +++++ sdk/resourcemanager/nginx/armnginx/README.md | 2 +- .../nginx/armnginx/apikeys_client.go | 18 +- .../armnginx/apikeys_client_example_test.go | 10 +- .../nginx/armnginx/certificates_client.go | 22 +- .../certificates_client_example_test.go | 10 +- .../nginx/armnginx/client_factory.go | 8 + .../nginx/armnginx/configurations_client.go | 28 +- .../configurations_client_example_test.go | 24 +- .../nginx/armnginx/defaultwafpolicy_client.go | 6 +- .../defaultwafpolicy_client_example_test.go | 4 +- .../nginx/armnginx/deployments_client.go | 32 +- .../deployments_client_example_test.go | 18 +- .../armnginx/deploymentwafpolicies_client.go | 117 ++++++ ...ploymentwafpolicies_client_example_test.go | 46 +++ .../nginx/armnginx/fake/apikeys_server.go | 2 +- .../armnginx/fake/certificates_server.go | 2 +- .../armnginx/fake/configurations_server.go | 4 +- .../armnginx/fake/defaultwafpolicy_server.go | 2 +- .../nginx/armnginx/fake/deployments_server.go | 2 +- .../fake/deploymentwafpolicies_server.go | 136 +++++++ .../nginx/armnginx/fake/internal.go | 8 + .../nginx/armnginx/fake/operations_server.go | 2 +- .../nginx/armnginx/fake/server_factory.go | 49 +-- .../nginx/armnginx/fake/wafpolicy_server.go | 2 +- sdk/resourcemanager/nginx/armnginx/go.mod | 12 +- sdk/resourcemanager/nginx/armnginx/go.sum | 20 +- sdk/resourcemanager/nginx/armnginx/models.go | 102 +++-- .../nginx/armnginx/models_serde.go | 354 +++++++++++++----- .../nginx/armnginx/operations_client.go | 6 +- .../operations_client_example_test.go | 4 +- sdk/resourcemanager/nginx/armnginx/options.go | 7 + .../nginx/armnginx/responses.go | 10 +- .../nginx/armnginx/testdata/_metadata.json | 8 +- .../nginx/armnginx/time_rfc3339.go | 109 ------ .../nginx/armnginx/tsp-location.yaml | 2 +- sdk/resourcemanager/nginx/armnginx/version.go | 2 +- .../nginx/armnginx/wafpolicy_client.go | 24 +- .../armnginx/wafpolicy_client_example_test.go | 12 +- 39 files changed, 913 insertions(+), 405 deletions(-) create mode 100644 sdk/resourcemanager/nginx/armnginx/deploymentwafpolicies_client.go create mode 100644 sdk/resourcemanager/nginx/armnginx/deploymentwafpolicies_client_example_test.go create mode 100644 sdk/resourcemanager/nginx/armnginx/fake/deploymentwafpolicies_server.go delete mode 100644 sdk/resourcemanager/nginx/armnginx/time_rfc3339.go diff --git a/sdk/resourcemanager/nginx/armnginx/CHANGELOG.md b/sdk/resourcemanager/nginx/armnginx/CHANGELOG.md index 2331b1fcf7bd..a4d4dff3602f 100644 --- a/sdk/resourcemanager/nginx/armnginx/CHANGELOG.md +++ b/sdk/resourcemanager/nginx/armnginx/CHANGELOG.md @@ -1,5 +1,97 @@ # Release History +## 4.0.0 (2026-03-12) +### Breaking Changes + +- Function `*CertificatesClient.BeginCreateOrUpdate` parameter(s) have been changed from `(ctx context.Context, resourceGroupName string, deploymentName string, certificateName string, options *CertificatesClientBeginCreateOrUpdateOptions)` to `(ctx context.Context, resourceGroupName string, deploymentName string, certificateName string, body Certificate, options *CertificatesClientBeginCreateOrUpdateOptions)` +- Function `*ConfigurationsClient.BeginCreateOrUpdate` parameter(s) have been changed from `(ctx context.Context, resourceGroupName string, deploymentName string, configurationName string, options *ConfigurationsClientBeginCreateOrUpdateOptions)` to `(ctx context.Context, resourceGroupName string, deploymentName string, configurationName string, body ConfigurationRequest, options *ConfigurationsClientBeginCreateOrUpdateOptions)` +- Function `*DeploymentsClient.BeginCreateOrUpdate` parameter(s) have been changed from `(ctx context.Context, resourceGroupName string, deploymentName string, options *DeploymentsClientBeginCreateOrUpdateOptions)` to `(ctx context.Context, resourceGroupName string, deploymentName string, body Deployment, options *DeploymentsClientBeginCreateOrUpdateOptions)` +- Function `*DeploymentsClient.BeginUpdate` parameter(s) have been changed from `(ctx context.Context, resourceGroupName string, deploymentName string, options *DeploymentsClientBeginUpdateOptions)` to `(ctx context.Context, resourceGroupName string, deploymentName string, body DeploymentUpdateParameters, options *DeploymentsClientBeginUpdateOptions)` +- Type of `ConfigurationProperties.ProtectedFiles` has been changed from `[]*ConfigurationFile` to `[]*ConfigurationProtectedFileResponse` +- Type of `OperationListResult.Value` has been changed from `[]*OperationResult` to `[]*Operation` +- Struct `ErrorResponseBody` has been removed +- Struct `OperationResult` has been removed +- Struct `ResourceProviderDefaultErrorResponse` has been removed +- Field `Body` of struct `CertificatesClientBeginCreateOrUpdateOptions` has been removed +- Field `Location` of struct `Configuration` has been removed +- Field `Body` of struct `ConfigurationsClientBeginCreateOrUpdateOptions` has been removed +- Field `ManagedResourceGroup` of struct `DeploymentProperties` has been removed +- Field `Body` of struct `DeploymentsClientBeginCreateOrUpdateOptions` has been removed +- Field `Body` of struct `DeploymentsClientBeginUpdateOptions` has been removed + +### Features Added + +- New enum type `ActionType` with values `ActionTypeInternal` +- New enum type `ActivationState` with values `ActivationStateDisabled`, `ActivationStateEnabled` +- New enum type `Level` with values `LevelInfo`, `LevelWarning` +- New enum type `NginxDeploymentWafPolicyApplyingStatusCode` with values `NginxDeploymentWafPolicyApplyingStatusCodeApplying`, `NginxDeploymentWafPolicyApplyingStatusCodeFailed`, `NginxDeploymentWafPolicyApplyingStatusCodeNotApplied`, `NginxDeploymentWafPolicyApplyingStatusCodeRemoving`, `NginxDeploymentWafPolicyApplyingStatusCodeSucceeded` +- New enum type `NginxDeploymentWafPolicyCompilingStatusCode` with values `NginxDeploymentWafPolicyCompilingStatusCodeFailed`, `NginxDeploymentWafPolicyCompilingStatusCodeInProgress`, `NginxDeploymentWafPolicyCompilingStatusCodeNotStarted`, `NginxDeploymentWafPolicyCompilingStatusCodeSucceeded` +- New enum type `Origin` with values `OriginSystem`, `OriginUser`, `OriginUserSystem` +- New function `NewAPIKeysClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*APIKeysClient, error)` +- New function `*APIKeysClient.CreateOrUpdate(ctx context.Context, resourceGroupName string, deploymentName string, apiKeyName string, body DeploymentAPIKeyRequest, options *APIKeysClientCreateOrUpdateOptions) (APIKeysClientCreateOrUpdateResponse, error)` +- New function `*APIKeysClient.Delete(ctx context.Context, resourceGroupName string, deploymentName string, apiKeyName string, options *APIKeysClientDeleteOptions) (APIKeysClientDeleteResponse, error)` +- New function `*APIKeysClient.Get(ctx context.Context, resourceGroupName string, deploymentName string, apiKeyName string, options *APIKeysClientGetOptions) (APIKeysClientGetResponse, error)` +- New function `*APIKeysClient.NewListPager(resourceGroupName string, deploymentName string, options *APIKeysClientListOptions) *runtime.Pager[APIKeysClientListResponse]` +- New function `*ClientFactory.NewAPIKeysClient() *APIKeysClient` +- New function `*ClientFactory.NewDefaultWafPolicyClient() *DefaultWafPolicyClient` +- New function `*ClientFactory.NewDeploymentWafPoliciesClient() *DeploymentWafPoliciesClient` +- New function `*ClientFactory.NewWafPolicyClient() *WafPolicyClient` +- New function `*ConfigurationsClient.Analysis(ctx context.Context, resourceGroupName string, deploymentName string, configurationName string, options *ConfigurationsClientAnalysisOptions) (ConfigurationsClientAnalysisResponse, error)` +- New function `NewDefaultWafPolicyClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*DefaultWafPolicyClient, error)` +- New function `*DefaultWafPolicyClient.List(ctx context.Context, resourceGroupName string, deploymentName string, options *DefaultWafPolicyClientListOptions) (DefaultWafPolicyClientListResponse, error)` +- New function `NewDeploymentWafPoliciesClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*DeploymentWafPoliciesClient, error)` +- New function `*DeploymentWafPoliciesClient.Analysis(ctx context.Context, resourceGroupName string, deploymentName string, wafPolicyName string, options *DeploymentWafPoliciesClientAnalysisOptions) (DeploymentWafPoliciesClientAnalysisResponse, error)` +- New function `NewWafPolicyClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*WafPolicyClient, error)` +- New function `*WafPolicyClient.BeginCreate(ctx context.Context, resourceGroupName string, deploymentName string, wafPolicyName string, body DeploymentWafPolicy, options *WafPolicyClientBeginCreateOptions) (*runtime.Poller[WafPolicyClientCreateResponse], error)` +- New function `*WafPolicyClient.BeginDelete(ctx context.Context, resourceGroupName string, deploymentName string, wafPolicyName string, options *WafPolicyClientBeginDeleteOptions) (*runtime.Poller[WafPolicyClientDeleteResponse], error)` +- New function `*WafPolicyClient.Get(ctx context.Context, resourceGroupName string, deploymentName string, wafPolicyName string, options *WafPolicyClientGetOptions) (WafPolicyClientGetResponse, error)` +- New function `*WafPolicyClient.NewListPager(resourceGroupName string, deploymentName string, options *WafPolicyClientListOptions) *runtime.Pager[WafPolicyClientListResponse]` +- New struct `AnalysisCreate` +- New struct `AnalysisCreateConfig` +- New struct `AnalysisDiagnostic` +- New struct `AnalysisResult` +- New struct `AnalysisResultData` +- New struct `AutoUpgradeProfile` +- New struct `CertificateErrorResponseBody` +- New struct `ConfigurationProtectedFileRequest` +- New struct `ConfigurationProtectedFileResponse` +- New struct `ConfigurationRequest` +- New struct `ConfigurationRequestProperties` +- New struct `DeploymentAPIKeyListResponse` +- New struct `DeploymentAPIKeyRequest` +- New struct `DeploymentAPIKeyRequestProperties` +- New struct `DeploymentAPIKeyResponse` +- New struct `DeploymentAPIKeyResponseProperties` +- New struct `DeploymentDefaultWafPolicyListResponse` +- New struct `DeploymentDefaultWafPolicyProperties` +- New struct `DeploymentPropertiesNginxAppProtect` +- New struct `DeploymentScalingPropertiesAutoScaleSettings` +- New struct `DeploymentUpdatePropertiesNginxAppProtect` +- New struct `DeploymentWafPolicy` +- New struct `DeploymentWafPolicyAnalysisCreateRequest` +- New struct `DeploymentWafPolicyAnalysisData` +- New struct `DeploymentWafPolicyAnalysisResponse` +- New struct `DeploymentWafPolicyApplyingStatus` +- New struct `DeploymentWafPolicyCompilingStatus` +- New struct `DeploymentWafPolicyError` +- New struct `DeploymentWafPolicyListResponse` +- New struct `DeploymentWafPolicyMetadata` +- New struct `DeploymentWafPolicyMetadataProperties` +- New struct `DeploymentWafPolicyProperties` +- New struct `DiagnosticItem` +- New struct `Operation` +- New struct `ScaleProfile` +- New struct `ScaleProfileCapacity` +- New struct `WebApplicationFirewallComponentVersions` +- New struct `WebApplicationFirewallPackage` +- New struct `WebApplicationFirewallSettings` +- New struct `WebApplicationFirewallStatus` +- New field `CertificateError`, `KeyVaultSecretCreated`, `KeyVaultSecretVersion`, `SHA1Thumbprint` in struct `CertificateProperties` +- New field `AutoUpgradeProfile`, `DataplaneAPIEndpoint`, `NginxAppProtect` in struct `DeploymentProperties` +- New field `AutoScaleSettings` in struct `DeploymentScalingProperties` +- New field `AutoUpgradeProfile`, `NetworkProfile`, `NginxAppProtect` in struct `DeploymentUpdateProperties` + + ## 3.1.0-beta.3 (2025-10-09) ### Breaking Changes diff --git a/sdk/resourcemanager/nginx/armnginx/README.md b/sdk/resourcemanager/nginx/armnginx/README.md index 2fa2a5c49036..33fb63b10db8 100644 --- a/sdk/resourcemanager/nginx/armnginx/README.md +++ b/sdk/resourcemanager/nginx/armnginx/README.md @@ -18,7 +18,7 @@ This project uses [Go modules](https://github.com/golang/go/wiki/Modules) for ve Install the Azure Nginx module: ```sh -go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3 +go get github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4 ``` ## Authorization diff --git a/sdk/resourcemanager/nginx/armnginx/apikeys_client.go b/sdk/resourcemanager/nginx/armnginx/apikeys_client.go index f6c326287916..a26616cdf8f5 100644 --- a/sdk/resourcemanager/nginx/armnginx/apikeys_client.go +++ b/sdk/resourcemanager/nginx/armnginx/apikeys_client.go @@ -26,7 +26,7 @@ type APIKeysClient struct { // NewAPIKeysClient creates a new instance of APIKeysClient with the specified values. // - subscriptionID - The ID of the target subscription. The value must be an UUID. // - credential - used to authorize requests. Usually a credential from azidentity. -// - options - pass nil to accept the default values. +// - options - Contains optional client configuration. Pass nil to accept the default values. func NewAPIKeysClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*APIKeysClient, error) { cl, err := arm.NewClient(moduleName, moduleVersion, credential, options) if err != nil { @@ -42,7 +42,7 @@ func NewAPIKeysClient(subscriptionID string, credential azcore.TokenCredential, // CreateOrUpdate - Create or update an API Key for the Nginx deployment in order to access the dataplane API endpoint // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - apiKeyName - The resource name of the API key @@ -94,7 +94,7 @@ func (client *APIKeysClient) createOrUpdateCreateRequest(ctx context.Context, re return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} req.Raw().Header["Content-Type"] = []string{"application/json"} @@ -116,7 +116,7 @@ func (client *APIKeysClient) createOrUpdateHandleResponse(resp *http.Response) ( // Delete - Delete API key for Nginx deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - apiKeyName - The resource name of the API key @@ -166,7 +166,7 @@ func (client *APIKeysClient) deleteCreateRequest(ctx context.Context, resourceGr return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() return req, nil } @@ -174,7 +174,7 @@ func (client *APIKeysClient) deleteCreateRequest(ctx context.Context, resourceGr // Get - Get the specified API Key of the given Nginx deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - apiKeyName - The resource name of the API key @@ -225,7 +225,7 @@ func (client *APIKeysClient) getCreateRequest(ctx context.Context, resourceGroup return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil @@ -242,7 +242,7 @@ func (client *APIKeysClient) getHandleResponse(resp *http.Response) (APIKeysClie // NewListPager - List all API Keys of the given Nginx deployment // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - options - APIKeysClientListOptions contains the optional parameters for the APIKeysClient.NewListPager method. @@ -289,7 +289,7 @@ func (client *APIKeysClient) listCreateRequest(ctx context.Context, resourceGrou return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil diff --git a/sdk/resourcemanager/nginx/armnginx/apikeys_client_example_test.go b/sdk/resourcemanager/nginx/armnginx/apikeys_client_example_test.go index 94cf40fedb7b..af397e6ccef0 100644 --- a/sdk/resourcemanager/nginx/armnginx/apikeys_client_example_test.go +++ b/sdk/resourcemanager/nginx/armnginx/apikeys_client_example_test.go @@ -7,11 +7,11 @@ package armnginx_test import ( "context" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "log" ) -// Generated from example definition: 2025-03-01-preview/ApiKeys_CreateOrUpdate.json +// Generated from example definition: 2025-11-01/ApiKeys_CreateOrUpdate.json func ExampleAPIKeysClient_CreateOrUpdate() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -42,7 +42,7 @@ func ExampleAPIKeysClient_CreateOrUpdate() { // } } -// Generated from example definition: 2025-03-01-preview/ApiKeys_Delete.json +// Generated from example definition: 2025-11-01/ApiKeys_Delete.json func ExampleAPIKeysClient_Delete() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -64,7 +64,7 @@ func ExampleAPIKeysClient_Delete() { // } } -// Generated from example definition: 2025-03-01-preview/ApiKeys_Get.json +// Generated from example definition: 2025-11-01/ApiKeys_Get.json func ExampleAPIKeysClient_Get() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -95,7 +95,7 @@ func ExampleAPIKeysClient_Get() { // } } -// Generated from example definition: 2025-03-01-preview/ApiKeys_List.json +// Generated from example definition: 2025-11-01/ApiKeys_List.json func ExampleAPIKeysClient_NewListPager() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { diff --git a/sdk/resourcemanager/nginx/armnginx/certificates_client.go b/sdk/resourcemanager/nginx/armnginx/certificates_client.go index 8e88bb3524b1..39766f39ea54 100644 --- a/sdk/resourcemanager/nginx/armnginx/certificates_client.go +++ b/sdk/resourcemanager/nginx/armnginx/certificates_client.go @@ -26,7 +26,7 @@ type CertificatesClient struct { // NewCertificatesClient creates a new instance of CertificatesClient with the specified values. // - subscriptionID - The ID of the target subscription. The value must be an UUID. // - credential - used to authorize requests. Usually a credential from azidentity. -// - options - pass nil to accept the default values. +// - options - Contains optional client configuration. Pass nil to accept the default values. func NewCertificatesClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*CertificatesClient, error) { cl, err := arm.NewClient(moduleName, moduleVersion, credential, options) if err != nil { @@ -42,7 +42,7 @@ func NewCertificatesClient(subscriptionID string, credential azcore.TokenCredent // BeginCreateOrUpdate - Create or update the NGINX certificates for given NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - certificateName - The name of certificate @@ -69,7 +69,7 @@ func (client *CertificatesClient) BeginCreateOrUpdate(ctx context.Context, resou // CreateOrUpdate - Create or update the NGINX certificates for given NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 func (client *CertificatesClient) createOrUpdate(ctx context.Context, resourceGroupName string, deploymentName string, certificateName string, body Certificate, options *CertificatesClientBeginCreateOrUpdateOptions) (*http.Response, error) { var err error const operationName = "CertificatesClient.BeginCreateOrUpdate" @@ -115,7 +115,7 @@ func (client *CertificatesClient) createOrUpdateCreateRequest(ctx context.Contex return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} req.Raw().Header["Content-Type"] = []string{"application/json"} @@ -128,7 +128,7 @@ func (client *CertificatesClient) createOrUpdateCreateRequest(ctx context.Contex // BeginDelete - Deletes a certificate from the NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - certificateName - The name of certificate @@ -154,7 +154,7 @@ func (client *CertificatesClient) BeginDelete(ctx context.Context, resourceGroup // Delete - Deletes a certificate from the NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 func (client *CertificatesClient) deleteOperation(ctx context.Context, resourceGroupName string, deploymentName string, certificateName string, options *CertificatesClientBeginDeleteOptions) (*http.Response, error) { var err error const operationName = "CertificatesClient.BeginDelete" @@ -200,7 +200,7 @@ func (client *CertificatesClient) deleteCreateRequest(ctx context.Context, resou return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() return req, nil } @@ -208,7 +208,7 @@ func (client *CertificatesClient) deleteCreateRequest(ctx context.Context, resou // Get - Get a certificate of given NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - certificateName - The name of certificate @@ -259,7 +259,7 @@ func (client *CertificatesClient) getCreateRequest(ctx context.Context, resource return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil @@ -276,7 +276,7 @@ func (client *CertificatesClient) getHandleResponse(resp *http.Response) (Certif // NewListPager - List all certificates of given NGINX deployment // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - options - CertificatesClientListOptions contains the optional parameters for the CertificatesClient.NewListPager method. @@ -323,7 +323,7 @@ func (client *CertificatesClient) listCreateRequest(ctx context.Context, resourc return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil diff --git a/sdk/resourcemanager/nginx/armnginx/certificates_client_example_test.go b/sdk/resourcemanager/nginx/armnginx/certificates_client_example_test.go index 77a913875c59..ee50a3952212 100644 --- a/sdk/resourcemanager/nginx/armnginx/certificates_client_example_test.go +++ b/sdk/resourcemanager/nginx/armnginx/certificates_client_example_test.go @@ -7,11 +7,11 @@ package armnginx_test import ( "context" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "log" ) -// Generated from example definition: 2025-03-01-preview/Certificates_CreateOrUpdate.json +// Generated from example definition: 2025-11-01/Certificates_CreateOrUpdate.json func ExampleCertificatesClient_BeginCreateOrUpdate() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -48,7 +48,7 @@ func ExampleCertificatesClient_BeginCreateOrUpdate() { // } } -// Generated from example definition: 2025-03-01-preview/Certificates_Delete.json +// Generated from example definition: 2025-11-01/Certificates_Delete.json func ExampleCertificatesClient_BeginDelete() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -69,7 +69,7 @@ func ExampleCertificatesClient_BeginDelete() { } } -// Generated from example definition: 2025-03-01-preview/Certificates_Get.json +// Generated from example definition: 2025-11-01/Certificates_Get.json func ExampleCertificatesClient_Get() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -109,7 +109,7 @@ func ExampleCertificatesClient_Get() { // } } -// Generated from example definition: 2025-03-01-preview/Certificates_List.json +// Generated from example definition: 2025-11-01/Certificates_List.json func ExampleCertificatesClient_NewListPager() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { diff --git a/sdk/resourcemanager/nginx/armnginx/client_factory.go b/sdk/resourcemanager/nginx/armnginx/client_factory.go index ced2b85ac58d..f8abe736fabd 100644 --- a/sdk/resourcemanager/nginx/armnginx/client_factory.go +++ b/sdk/resourcemanager/nginx/armnginx/client_factory.go @@ -64,6 +64,14 @@ func (c *ClientFactory) NewDefaultWafPolicyClient() *DefaultWafPolicyClient { } } +// NewDeploymentWafPoliciesClient creates a new instance of DeploymentWafPoliciesClient. +func (c *ClientFactory) NewDeploymentWafPoliciesClient() *DeploymentWafPoliciesClient { + return &DeploymentWafPoliciesClient{ + subscriptionID: c.subscriptionID, + internal: c.internal, + } +} + // NewDeploymentsClient creates a new instance of DeploymentsClient. func (c *ClientFactory) NewDeploymentsClient() *DeploymentsClient { return &DeploymentsClient{ diff --git a/sdk/resourcemanager/nginx/armnginx/configurations_client.go b/sdk/resourcemanager/nginx/armnginx/configurations_client.go index 05e7c87f3975..13d887f4352d 100644 --- a/sdk/resourcemanager/nginx/armnginx/configurations_client.go +++ b/sdk/resourcemanager/nginx/armnginx/configurations_client.go @@ -26,7 +26,7 @@ type ConfigurationsClient struct { // NewConfigurationsClient creates a new instance of ConfigurationsClient with the specified values. // - subscriptionID - The ID of the target subscription. The value must be an UUID. // - credential - used to authorize requests. Usually a credential from azidentity. -// - options - pass nil to accept the default values. +// - options - Contains optional client configuration. Pass nil to accept the default values. func NewConfigurationsClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*ConfigurationsClient, error) { cl, err := arm.NewClient(moduleName, moduleVersion, credential, options) if err != nil { @@ -42,7 +42,7 @@ func NewConfigurationsClient(subscriptionID string, credential azcore.TokenCrede // Analysis - Analyze an NGINX configuration without applying it to the NGINXaaS deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - configurationName - The name of configuration, only 'default' is supported value due to the singleton of NGINX conf @@ -93,7 +93,7 @@ func (client *ConfigurationsClient) analysisCreateRequest(ctx context.Context, r return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} if options != nil && options.Body != nil { @@ -118,7 +118,7 @@ func (client *ConfigurationsClient) analysisHandleResponse(resp *http.Response) // BeginCreateOrUpdate - Create or update the NGINX configuration for given NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - configurationName - The name of configuration, only 'default' is supported value due to the singleton of NGINX conf @@ -145,7 +145,7 @@ func (client *ConfigurationsClient) BeginCreateOrUpdate(ctx context.Context, res // CreateOrUpdate - Create or update the NGINX configuration for given NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 func (client *ConfigurationsClient) createOrUpdate(ctx context.Context, resourceGroupName string, deploymentName string, configurationName string, body ConfigurationRequest, options *ConfigurationsClientBeginCreateOrUpdateOptions) (*http.Response, error) { var err error const operationName = "ConfigurationsClient.BeginCreateOrUpdate" @@ -191,7 +191,7 @@ func (client *ConfigurationsClient) createOrUpdateCreateRequest(ctx context.Cont return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} req.Raw().Header["Content-Type"] = []string{"application/json"} @@ -204,7 +204,7 @@ func (client *ConfigurationsClient) createOrUpdateCreateRequest(ctx context.Cont // BeginDelete - Reset the NGINX configuration of given NGINX deployment to default // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - configurationName - The name of configuration, only 'default' is supported value due to the singleton of NGINX conf @@ -230,7 +230,7 @@ func (client *ConfigurationsClient) BeginDelete(ctx context.Context, resourceGro // Delete - Reset the NGINX configuration of given NGINX deployment to default // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 func (client *ConfigurationsClient) deleteOperation(ctx context.Context, resourceGroupName string, deploymentName string, configurationName string, options *ConfigurationsClientBeginDeleteOptions) (*http.Response, error) { var err error const operationName = "ConfigurationsClient.BeginDelete" @@ -276,7 +276,7 @@ func (client *ConfigurationsClient) deleteCreateRequest(ctx context.Context, res return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() return req, nil } @@ -284,7 +284,7 @@ func (client *ConfigurationsClient) deleteCreateRequest(ctx context.Context, res // Get - Get the NGINX configuration of given NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - configurationName - The name of configuration, only 'default' is supported value due to the singleton of NGINX conf @@ -335,7 +335,7 @@ func (client *ConfigurationsClient) getCreateRequest(ctx context.Context, resour return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil @@ -344,7 +344,7 @@ func (client *ConfigurationsClient) getCreateRequest(ctx context.Context, resour // getHandleResponse handles the Get response. func (client *ConfigurationsClient) getHandleResponse(resp *http.Response) (ConfigurationsClientGetResponse, error) { result := ConfigurationsClientGetResponse{} - if err := runtime.UnmarshalAsJSON(resp, &result.ConfigurationResponse); err != nil { + if err := runtime.UnmarshalAsJSON(resp, &result.Configuration); err != nil { return ConfigurationsClientGetResponse{}, err } return result, nil @@ -352,7 +352,7 @@ func (client *ConfigurationsClient) getHandleResponse(resp *http.Response) (Conf // NewListPager - List the NGINX configuration of given NGINX deployment. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - options - ConfigurationsClientListOptions contains the optional parameters for the ConfigurationsClient.NewListPager method. @@ -399,7 +399,7 @@ func (client *ConfigurationsClient) listCreateRequest(ctx context.Context, resou return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil diff --git a/sdk/resourcemanager/nginx/armnginx/configurations_client_example_test.go b/sdk/resourcemanager/nginx/armnginx/configurations_client_example_test.go index f71888b804b7..c573ddfa3926 100644 --- a/sdk/resourcemanager/nginx/armnginx/configurations_client_example_test.go +++ b/sdk/resourcemanager/nginx/armnginx/configurations_client_example_test.go @@ -7,11 +7,11 @@ package armnginx_test import ( "context" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "log" ) -// Generated from example definition: 2025-03-01-preview/Configurations_Analysis.json +// Generated from example definition: 2025-11-01/Configurations_Analysis.json func ExampleConfigurationsClient_Analysis() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -49,7 +49,7 @@ func ExampleConfigurationsClient_Analysis() { // } } -// Generated from example definition: 2025-03-01-preview/Configurations_CreateOrUpdate.json +// Generated from example definition: 2025-11-01/Configurations_CreateOrUpdate.json func ExampleConfigurationsClient_BeginCreateOrUpdate() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -72,11 +72,11 @@ func ExampleConfigurationsClient_BeginCreateOrUpdate() { _ = res // If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes. // res = armnginx.ConfigurationsClientCreateOrUpdateResponse{ - // ConfigurationResponse: &armnginx.ConfigurationResponse{ + // Configuration: &armnginx.Configuration{ // Name: to.Ptr("default"), // Type: to.Ptr("nginx.nginxplus/nginxDeployments/configurations"), // ID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default"), - // Properties: &armnginx.ConfigurationResponseProperties{ + // Properties: &armnginx.ConfigurationProperties{ // Files: []*armnginx.ConfigurationFile{ // { // Content: to.Ptr("ABCDEF=="), @@ -92,7 +92,7 @@ func ExampleConfigurationsClient_BeginCreateOrUpdate() { // } } -// Generated from example definition: 2025-03-01-preview/Configurations_Delete.json +// Generated from example definition: 2025-11-01/Configurations_Delete.json func ExampleConfigurationsClient_BeginDelete() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -113,7 +113,7 @@ func ExampleConfigurationsClient_BeginDelete() { } } -// Generated from example definition: 2025-03-01-preview/Configurations_Get.json +// Generated from example definition: 2025-11-01/Configurations_Get.json func ExampleConfigurationsClient_Get() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -132,11 +132,11 @@ func ExampleConfigurationsClient_Get() { _ = res // If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes. // res = armnginx.ConfigurationsClientGetResponse{ - // ConfigurationResponse: &armnginx.ConfigurationResponse{ + // Configuration: &armnginx.Configuration{ // Name: to.Ptr("default"), // Type: to.Ptr("nginx.nginxplus/nginxDeployments/configurations"), // ID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default"), - // Properties: &armnginx.ConfigurationResponseProperties{ + // Properties: &armnginx.ConfigurationProperties{ // Files: []*armnginx.ConfigurationFile{ // { // Content: to.Ptr("ABCDEF=="), @@ -158,7 +158,7 @@ func ExampleConfigurationsClient_Get() { // } } -// Generated from example definition: 2025-03-01-preview/Configurations_List.json +// Generated from example definition: 2025-11-01/Configurations_List.json func ExampleConfigurationsClient_NewListPager() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -182,12 +182,12 @@ func ExampleConfigurationsClient_NewListPager() { // If the HTTP response code is 200 as defined in example definition, your page structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes. // page = armnginx.ConfigurationsClientListResponse{ // ConfigurationListResponse: armnginx.ConfigurationListResponse{ - // Value: []*armnginx.ConfigurationResponse{ + // Value: []*armnginx.Configuration{ // { // Name: to.Ptr("default"), // Type: to.Ptr("nginx.nginxplus/nginxDeployments/configurations"), // ID: to.Ptr("/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Nginx.NginxPlus/nginxDeployments/myDeployment/configurations/default"), - // Properties: &armnginx.ConfigurationResponseProperties{ + // Properties: &armnginx.ConfigurationProperties{ // Files: []*armnginx.ConfigurationFile{ // { // Content: to.Ptr("ABCDEF=="), diff --git a/sdk/resourcemanager/nginx/armnginx/defaultwafpolicy_client.go b/sdk/resourcemanager/nginx/armnginx/defaultwafpolicy_client.go index 8d66104b4dd9..e3908a7d91eb 100644 --- a/sdk/resourcemanager/nginx/armnginx/defaultwafpolicy_client.go +++ b/sdk/resourcemanager/nginx/armnginx/defaultwafpolicy_client.go @@ -26,7 +26,7 @@ type DefaultWafPolicyClient struct { // NewDefaultWafPolicyClient creates a new instance of DefaultWafPolicyClient with the specified values. // - subscriptionID - The ID of the target subscription. The value must be an UUID. // - credential - used to authorize requests. Usually a credential from azidentity. -// - options - pass nil to accept the default values. +// - options - Contains optional client configuration. Pass nil to accept the default values. func NewDefaultWafPolicyClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*DefaultWafPolicyClient, error) { cl, err := arm.NewClient(moduleName, moduleVersion, credential, options) if err != nil { @@ -42,7 +42,7 @@ func NewDefaultWafPolicyClient(subscriptionID string, credential azcore.TokenCre // List - Get the Nginx Waf Policy of given Nginx deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - options - DefaultWafPolicyClientListOptions contains the optional parameters for the DefaultWafPolicyClient.List method. @@ -88,7 +88,7 @@ func (client *DefaultWafPolicyClient) listCreateRequest(ctx context.Context, res return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil diff --git a/sdk/resourcemanager/nginx/armnginx/defaultwafpolicy_client_example_test.go b/sdk/resourcemanager/nginx/armnginx/defaultwafpolicy_client_example_test.go index 5f8d3b9166a7..82b78cc233b8 100644 --- a/sdk/resourcemanager/nginx/armnginx/defaultwafpolicy_client_example_test.go +++ b/sdk/resourcemanager/nginx/armnginx/defaultwafpolicy_client_example_test.go @@ -7,11 +7,11 @@ package armnginx_test import ( "context" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "log" ) -// Generated from example definition: 2025-03-01-preview/DefaultWafPolicy_List.json +// Generated from example definition: 2025-11-01/DefaultWafPolicy_List.json func ExampleDefaultWafPolicyClient_List() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { diff --git a/sdk/resourcemanager/nginx/armnginx/deployments_client.go b/sdk/resourcemanager/nginx/armnginx/deployments_client.go index 77a36ba520e8..319d5e444db8 100644 --- a/sdk/resourcemanager/nginx/armnginx/deployments_client.go +++ b/sdk/resourcemanager/nginx/armnginx/deployments_client.go @@ -26,7 +26,7 @@ type DeploymentsClient struct { // NewDeploymentsClient creates a new instance of DeploymentsClient with the specified values. // - subscriptionID - The ID of the target subscription. The value must be an UUID. // - credential - used to authorize requests. Usually a credential from azidentity. -// - options - pass nil to accept the default values. +// - options - Contains optional client configuration. Pass nil to accept the default values. func NewDeploymentsClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*DeploymentsClient, error) { cl, err := arm.NewClient(moduleName, moduleVersion, credential, options) if err != nil { @@ -42,7 +42,7 @@ func NewDeploymentsClient(subscriptionID string, credential azcore.TokenCredenti // BeginCreateOrUpdate - Create or update the NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - body - The Nginx deployment @@ -68,7 +68,7 @@ func (client *DeploymentsClient) BeginCreateOrUpdate(ctx context.Context, resour // CreateOrUpdate - Create or update the NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 func (client *DeploymentsClient) createOrUpdate(ctx context.Context, resourceGroupName string, deploymentName string, body Deployment, options *DeploymentsClientBeginCreateOrUpdateOptions) (*http.Response, error) { var err error const operationName = "DeploymentsClient.BeginCreateOrUpdate" @@ -110,7 +110,7 @@ func (client *DeploymentsClient) createOrUpdateCreateRequest(ctx context.Context return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} req.Raw().Header["Content-Type"] = []string{"application/json"} @@ -123,7 +123,7 @@ func (client *DeploymentsClient) createOrUpdateCreateRequest(ctx context.Context // BeginDelete - Delete the NGINX deployment resource // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - options - DeploymentsClientBeginDeleteOptions contains the optional parameters for the DeploymentsClient.BeginDelete method. @@ -147,7 +147,7 @@ func (client *DeploymentsClient) BeginDelete(ctx context.Context, resourceGroupN // Delete - Delete the NGINX deployment resource // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 func (client *DeploymentsClient) deleteOperation(ctx context.Context, resourceGroupName string, deploymentName string, options *DeploymentsClientBeginDeleteOptions) (*http.Response, error) { var err error const operationName = "DeploymentsClient.BeginDelete" @@ -189,7 +189,7 @@ func (client *DeploymentsClient) deleteCreateRequest(ctx context.Context, resour return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() return req, nil } @@ -197,7 +197,7 @@ func (client *DeploymentsClient) deleteCreateRequest(ctx context.Context, resour // Get - Get the NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - options - DeploymentsClientGetOptions contains the optional parameters for the DeploymentsClient.Get method. @@ -243,7 +243,7 @@ func (client *DeploymentsClient) getCreateRequest(ctx context.Context, resourceG return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil @@ -260,7 +260,7 @@ func (client *DeploymentsClient) getHandleResponse(resp *http.Response) (Deploym // NewListPager - List the NGINX deployments resources // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - options - DeploymentsClientListOptions contains the optional parameters for the DeploymentsClient.NewListPager method. func (client *DeploymentsClient) NewListPager(options *DeploymentsClientListOptions) *runtime.Pager[DeploymentsClientListResponse] { return runtime.NewPager(runtime.PagingHandler[DeploymentsClientListResponse]{ @@ -297,7 +297,7 @@ func (client *DeploymentsClient) listCreateRequest(ctx context.Context, _ *Deplo return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil @@ -314,7 +314,7 @@ func (client *DeploymentsClient) listHandleResponse(resp *http.Response) (Deploy // NewListByResourceGroupPager - List all NGINX deployments under the specified resource group. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - options - DeploymentsClientListByResourceGroupOptions contains the optional parameters for the DeploymentsClient.NewListByResourceGroupPager // method. @@ -357,7 +357,7 @@ func (client *DeploymentsClient) listByResourceGroupCreateRequest(ctx context.Co return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil @@ -375,7 +375,7 @@ func (client *DeploymentsClient) listByResourceGroupHandleResponse(resp *http.Re // BeginUpdate - Update the NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - body - The Nginx deployment update parameters @@ -400,7 +400,7 @@ func (client *DeploymentsClient) BeginUpdate(ctx context.Context, resourceGroupN // Update - Update the NGINX deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 func (client *DeploymentsClient) update(ctx context.Context, resourceGroupName string, deploymentName string, body DeploymentUpdateParameters, options *DeploymentsClientBeginUpdateOptions) (*http.Response, error) { var err error const operationName = "DeploymentsClient.BeginUpdate" @@ -442,7 +442,7 @@ func (client *DeploymentsClient) updateCreateRequest(ctx context.Context, resour return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} req.Raw().Header["Content-Type"] = []string{"application/json"} diff --git a/sdk/resourcemanager/nginx/armnginx/deployments_client_example_test.go b/sdk/resourcemanager/nginx/armnginx/deployments_client_example_test.go index 4467f79b89e7..2ff0350ff34d 100644 --- a/sdk/resourcemanager/nginx/armnginx/deployments_client_example_test.go +++ b/sdk/resourcemanager/nginx/armnginx/deployments_client_example_test.go @@ -7,11 +7,11 @@ package armnginx_test import ( "context" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "log" ) -// Generated from example definition: 2025-03-01-preview/Deployments_Create.json +// Generated from example definition: 2025-11-01/Deployments_Create.json func ExampleDeploymentsClient_BeginCreateOrUpdate() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -100,7 +100,7 @@ func ExampleDeploymentsClient_BeginCreateOrUpdate() { // } } -// Generated from example definition: 2025-03-01-preview/Deployments_Delete.json +// Generated from example definition: 2025-11-01/Deployments_Delete.json func ExampleDeploymentsClient_BeginDelete() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -121,7 +121,7 @@ func ExampleDeploymentsClient_BeginDelete() { } } -// Generated from example definition: 2025-03-01-preview/Deployments_Get.json +// Generated from example definition: 2025-11-01/Deployments_Get.json func ExampleDeploymentsClient_Get_deploymentsGet() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -205,7 +205,7 @@ func ExampleDeploymentsClient_Get_deploymentsGet() { // } } -// Generated from example definition: 2025-03-01-preview/Deployments_Get_AutoScale.json +// Generated from example definition: 2025-11-01/Deployments_Get_AutoScale.json func ExampleDeploymentsClient_Get_deploymentsGetAutoScale() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -275,7 +275,7 @@ func ExampleDeploymentsClient_Get_deploymentsGetAutoScale() { // } } -// Generated from example definition: 2025-03-01-preview/Deployments_List.json +// Generated from example definition: 2025-11-01/Deployments_List.json func ExampleDeploymentsClient_NewListPager() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -366,7 +366,7 @@ func ExampleDeploymentsClient_NewListPager() { } } -// Generated from example definition: 2025-03-01-preview/Deployments_ListByResourceGroup.json +// Generated from example definition: 2025-11-01/Deployments_ListByResourceGroup.json func ExampleDeploymentsClient_NewListByResourceGroupPager() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -457,7 +457,7 @@ func ExampleDeploymentsClient_NewListByResourceGroupPager() { } } -// Generated from example definition: 2025-03-01-preview/Deployments_Update.json +// Generated from example definition: 2025-11-01/Deployments_Update.json func ExampleDeploymentsClient_BeginUpdate_deploymentsUpdate() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -549,7 +549,7 @@ func ExampleDeploymentsClient_BeginUpdate_deploymentsUpdate() { // } } -// Generated from example definition: 2025-03-01-preview/Deployments_UpdateSubnet.json +// Generated from example definition: 2025-11-01/Deployments_UpdateSubnet.json func ExampleDeploymentsClient_BeginUpdate_deploymentsUpdateSubnet() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { diff --git a/sdk/resourcemanager/nginx/armnginx/deploymentwafpolicies_client.go b/sdk/resourcemanager/nginx/armnginx/deploymentwafpolicies_client.go new file mode 100644 index 000000000000..66fb7ed1b6d8 --- /dev/null +++ b/sdk/resourcemanager/nginx/armnginx/deploymentwafpolicies_client.go @@ -0,0 +1,117 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) Go Code Generator. DO NOT EDIT. + +package armnginx + +import ( + "context" + "errors" + "github.com/Azure/azure-sdk-for-go/sdk/azcore" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/arm" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/policy" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "net/http" + "net/url" + "strings" +) + +// DeploymentWafPoliciesClient contains the methods for the DeploymentWafPolicies group. +// Don't use this type directly, use NewDeploymentWafPoliciesClient() instead. +type DeploymentWafPoliciesClient struct { + internal *arm.Client + subscriptionID string +} + +// NewDeploymentWafPoliciesClient creates a new instance of DeploymentWafPoliciesClient with the specified values. +// - subscriptionID - The ID of the target subscription. The value must be an UUID. +// - credential - used to authorize requests. Usually a credential from azidentity. +// - options - Contains optional client configuration. Pass nil to accept the default values. +func NewDeploymentWafPoliciesClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*DeploymentWafPoliciesClient, error) { + cl, err := arm.NewClient(moduleName, moduleVersion, credential, options) + if err != nil { + return nil, err + } + client := &DeploymentWafPoliciesClient{ + subscriptionID: subscriptionID, + internal: cl, + } + return client, nil +} + +// Analysis - Analyze an Nginx Waf Policy +// If the operation fails it returns an *azcore.ResponseError type. +// +// Generated from API version 2025-11-01 +// - resourceGroupName - The name of the resource group. The name is case insensitive. +// - deploymentName - The name of targeted NGINX deployment +// - wafPolicyName - The name of Waf Policy +// - options - DeploymentWafPoliciesClientAnalysisOptions contains the optional parameters for the DeploymentWafPoliciesClient.Analysis +// method. +func (client *DeploymentWafPoliciesClient) Analysis(ctx context.Context, resourceGroupName string, deploymentName string, wafPolicyName string, options *DeploymentWafPoliciesClientAnalysisOptions) (DeploymentWafPoliciesClientAnalysisResponse, error) { + var err error + const operationName = "DeploymentWafPoliciesClient.Analysis" + ctx = context.WithValue(ctx, runtime.CtxAPINameKey{}, operationName) + ctx, endSpan := runtime.StartSpan(ctx, operationName, client.internal.Tracer(), nil) + defer func() { endSpan(err) }() + req, err := client.analysisCreateRequest(ctx, resourceGroupName, deploymentName, wafPolicyName, options) + if err != nil { + return DeploymentWafPoliciesClientAnalysisResponse{}, err + } + httpResp, err := client.internal.Pipeline().Do(req) + if err != nil { + return DeploymentWafPoliciesClientAnalysisResponse{}, err + } + if !runtime.HasStatusCode(httpResp, http.StatusOK) { + err = runtime.NewResponseError(httpResp) + return DeploymentWafPoliciesClientAnalysisResponse{}, err + } + resp, err := client.analysisHandleResponse(httpResp) + return resp, err +} + +// analysisCreateRequest creates the Analysis request. +func (client *DeploymentWafPoliciesClient) analysisCreateRequest(ctx context.Context, resourceGroupName string, deploymentName string, wafPolicyName string, options *DeploymentWafPoliciesClientAnalysisOptions) (*policy.Request, error) { + urlPath := "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Nginx.NginxPlus/nginxDeployments/{deploymentName}/wafPolicies/{wafPolicyName}/analyzeWafPolicy" + if client.subscriptionID == "" { + return nil, errors.New("parameter client.subscriptionID cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{subscriptionId}", url.PathEscape(client.subscriptionID)) + if resourceGroupName == "" { + return nil, errors.New("parameter resourceGroupName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{resourceGroupName}", url.PathEscape(resourceGroupName)) + if deploymentName == "" { + return nil, errors.New("parameter deploymentName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{deploymentName}", url.PathEscape(deploymentName)) + if wafPolicyName == "" { + return nil, errors.New("parameter wafPolicyName cannot be empty") + } + urlPath = strings.ReplaceAll(urlPath, "{wafPolicyName}", url.PathEscape(wafPolicyName)) + req, err := runtime.NewRequest(ctx, http.MethodPost, runtime.JoinPaths(client.internal.Endpoint(), urlPath)) + if err != nil { + return nil, err + } + reqQP := req.Raw().URL.Query() + reqQP.Set("api-version", "2025-11-01") + req.Raw().URL.RawQuery = reqQP.Encode() + req.Raw().Header["Accept"] = []string{"application/json"} + if options != nil && options.Body != nil { + req.Raw().Header["Content-Type"] = []string{"application/json"} + if err := runtime.MarshalAsJSON(req, *options.Body); err != nil { + return nil, err + } + return req, nil + } + return req, nil +} + +// analysisHandleResponse handles the Analysis response. +func (client *DeploymentWafPoliciesClient) analysisHandleResponse(resp *http.Response) (DeploymentWafPoliciesClientAnalysisResponse, error) { + result := DeploymentWafPoliciesClientAnalysisResponse{} + if err := runtime.UnmarshalAsJSON(resp, &result.DeploymentWafPolicyAnalysisResponse); err != nil { + return DeploymentWafPoliciesClientAnalysisResponse{}, err + } + return result, nil +} diff --git a/sdk/resourcemanager/nginx/armnginx/deploymentwafpolicies_client_example_test.go b/sdk/resourcemanager/nginx/armnginx/deploymentwafpolicies_client_example_test.go new file mode 100644 index 000000000000..fd905d1506d1 --- /dev/null +++ b/sdk/resourcemanager/nginx/armnginx/deploymentwafpolicies_client_example_test.go @@ -0,0 +1,46 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) Go Code Generator. DO NOT EDIT. + +package armnginx_test + +import ( + "context" + "github.com/Azure/azure-sdk-for-go/sdk/azidentity" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" + "log" +) + +// Generated from example definition: 2025-11-01/NginxDeploymentWafPolicies_Analysis.json +func ExampleDeploymentWafPoliciesClient_Analysis() { + cred, err := azidentity.NewDefaultAzureCredential(nil) + if err != nil { + log.Fatalf("failed to obtain a credential: %v", err) + } + ctx := context.Background() + clientFactory, err := armnginx.NewClientFactory("00000000-0000-0000-0000-000000000000", cred, nil) + if err != nil { + log.Fatalf("failed to create client: %v", err) + } + res, err := clientFactory.NewDeploymentWafPoliciesClient().Analysis(ctx, "myResourceGroup", "myDeployment", "myWafPolicy", nil) + if err != nil { + log.Fatalf("failed to finish the request: %v", err) + } + // You could use response here. We use blank identifier for just demo purposes. + _ = res + // If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes. + // res = armnginx.DeploymentWafPoliciesClientAnalysisResponse{ + // DeploymentWafPolicyAnalysisResponse: &armnginx.DeploymentWafPolicyAnalysisResponse{ + // Status: to.Ptr("Failed"), + // Data: &armnginx.DeploymentWafPolicyAnalysisData{ + // Errors: []*armnginx.DeploymentWafPolicyError{ + // { + // Code: to.Ptr("InvalidWafRule"), + // Field: to.Ptr("MyWafRulefield"), + // Message: to.Ptr("The WAF rule is invalid"), + // }, + // }, + // }, + // }, + // } +} diff --git a/sdk/resourcemanager/nginx/armnginx/fake/apikeys_server.go b/sdk/resourcemanager/nginx/armnginx/fake/apikeys_server.go index de201a94f5b1..97dc76decdfe 100644 --- a/sdk/resourcemanager/nginx/armnginx/fake/apikeys_server.go +++ b/sdk/resourcemanager/nginx/armnginx/fake/apikeys_server.go @@ -12,7 +12,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "net/http" "net/url" "regexp" diff --git a/sdk/resourcemanager/nginx/armnginx/fake/certificates_server.go b/sdk/resourcemanager/nginx/armnginx/fake/certificates_server.go index d7f0c691046c..9196b71f4edd 100644 --- a/sdk/resourcemanager/nginx/armnginx/fake/certificates_server.go +++ b/sdk/resourcemanager/nginx/armnginx/fake/certificates_server.go @@ -12,7 +12,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "net/http" "net/url" "regexp" diff --git a/sdk/resourcemanager/nginx/armnginx/fake/configurations_server.go b/sdk/resourcemanager/nginx/armnginx/fake/configurations_server.go index b97c1aca1272..b7a4a0e33e3a 100644 --- a/sdk/resourcemanager/nginx/armnginx/fake/configurations_server.go +++ b/sdk/resourcemanager/nginx/armnginx/fake/configurations_server.go @@ -12,7 +12,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "net/http" "net/url" "reflect" @@ -292,7 +292,7 @@ func (c *ConfigurationsServerTransport) dispatchGet(req *http.Request) (*http.Re if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} } - resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).ConfigurationResponse, req) + resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).Configuration, req) if err != nil { return nil, err } diff --git a/sdk/resourcemanager/nginx/armnginx/fake/defaultwafpolicy_server.go b/sdk/resourcemanager/nginx/armnginx/fake/defaultwafpolicy_server.go index 9657bcfbfef1..83a8a7747a86 100644 --- a/sdk/resourcemanager/nginx/armnginx/fake/defaultwafpolicy_server.go +++ b/sdk/resourcemanager/nginx/armnginx/fake/defaultwafpolicy_server.go @@ -11,7 +11,7 @@ import ( azfake "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake" "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "net/http" "net/url" "regexp" diff --git a/sdk/resourcemanager/nginx/armnginx/fake/deployments_server.go b/sdk/resourcemanager/nginx/armnginx/fake/deployments_server.go index ea94462160c2..d36dbab2c3aa 100644 --- a/sdk/resourcemanager/nginx/armnginx/fake/deployments_server.go +++ b/sdk/resourcemanager/nginx/armnginx/fake/deployments_server.go @@ -12,7 +12,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "net/http" "net/url" "regexp" diff --git a/sdk/resourcemanager/nginx/armnginx/fake/deploymentwafpolicies_server.go b/sdk/resourcemanager/nginx/armnginx/fake/deploymentwafpolicies_server.go new file mode 100644 index 000000000000..cc72d1819b4b --- /dev/null +++ b/sdk/resourcemanager/nginx/armnginx/fake/deploymentwafpolicies_server.go @@ -0,0 +1,136 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. See License.txt in the project root for license information. +// Code generated by Microsoft (R) Go Code Generator. DO NOT EDIT. + +package fake + +import ( + "context" + "errors" + "fmt" + azfake "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" + "net/http" + "net/url" + "reflect" + "regexp" +) + +// DeploymentWafPoliciesServer is a fake server for instances of the armnginx.DeploymentWafPoliciesClient type. +type DeploymentWafPoliciesServer struct { + // Analysis is the fake for method DeploymentWafPoliciesClient.Analysis + // HTTP status codes to indicate success: http.StatusOK + Analysis func(ctx context.Context, resourceGroupName string, deploymentName string, wafPolicyName string, options *armnginx.DeploymentWafPoliciesClientAnalysisOptions) (resp azfake.Responder[armnginx.DeploymentWafPoliciesClientAnalysisResponse], errResp azfake.ErrorResponder) +} + +// NewDeploymentWafPoliciesServerTransport creates a new instance of DeploymentWafPoliciesServerTransport with the provided implementation. +// The returned DeploymentWafPoliciesServerTransport instance is connected to an instance of armnginx.DeploymentWafPoliciesClient via the +// azcore.ClientOptions.Transporter field in the client's constructor parameters. +func NewDeploymentWafPoliciesServerTransport(srv *DeploymentWafPoliciesServer) *DeploymentWafPoliciesServerTransport { + return &DeploymentWafPoliciesServerTransport{srv: srv} +} + +// DeploymentWafPoliciesServerTransport connects instances of armnginx.DeploymentWafPoliciesClient to instances of DeploymentWafPoliciesServer. +// Don't use this type directly, use NewDeploymentWafPoliciesServerTransport instead. +type DeploymentWafPoliciesServerTransport struct { + srv *DeploymentWafPoliciesServer +} + +// Do implements the policy.Transporter interface for DeploymentWafPoliciesServerTransport. +func (d *DeploymentWafPoliciesServerTransport) Do(req *http.Request) (*http.Response, error) { + rawMethod := req.Context().Value(runtime.CtxAPINameKey{}) + method, ok := rawMethod.(string) + if !ok { + return nil, nonRetriableError{errors.New("unable to dispatch request, missing value for CtxAPINameKey")} + } + + return d.dispatchToMethodFake(req, method) +} + +func (d *DeploymentWafPoliciesServerTransport) dispatchToMethodFake(req *http.Request, method string) (*http.Response, error) { + resultChan := make(chan result) + defer close(resultChan) + + go func() { + var intercepted bool + var res result + if deploymentWafPoliciesServerTransportInterceptor != nil { + res.resp, res.err, intercepted = deploymentWafPoliciesServerTransportInterceptor.Do(req) + } + if !intercepted { + switch method { + case "DeploymentWafPoliciesClient.Analysis": + res.resp, res.err = d.dispatchAnalysis(req) + default: + res.err = fmt.Errorf("unhandled API %s", method) + } + + } + select { + case resultChan <- res: + case <-req.Context().Done(): + } + }() + + select { + case <-req.Context().Done(): + return nil, req.Context().Err() + case res := <-resultChan: + return res.resp, res.err + } +} + +func (d *DeploymentWafPoliciesServerTransport) dispatchAnalysis(req *http.Request) (*http.Response, error) { + if d.srv.Analysis == nil { + return nil, &nonRetriableError{errors.New("fake for method Analysis not implemented")} + } + const regexStr = `/subscriptions/(?P[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/resourceGroups/(?P[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/providers/Nginx\.NginxPlus/nginxDeployments/(?P[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/wafPolicies/(?P[!#&$-;=?-\[\]_a-zA-Z0-9~%@]+)/analyzeWafPolicy` + regex := regexp.MustCompile(regexStr) + matches := regex.FindStringSubmatch(req.URL.EscapedPath()) + if len(matches) < 5 { + return nil, fmt.Errorf("failed to parse path %s", req.URL.Path) + } + body, err := server.UnmarshalRequestAsJSON[armnginx.DeploymentWafPolicyAnalysisCreateRequest](req) + if err != nil { + return nil, err + } + resourceGroupNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("resourceGroupName")]) + if err != nil { + return nil, err + } + deploymentNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("deploymentName")]) + if err != nil { + return nil, err + } + wafPolicyNameParam, err := url.PathUnescape(matches[regex.SubexpIndex("wafPolicyName")]) + if err != nil { + return nil, err + } + var options *armnginx.DeploymentWafPoliciesClientAnalysisOptions + if !reflect.ValueOf(body).IsZero() { + options = &armnginx.DeploymentWafPoliciesClientAnalysisOptions{ + Body: &body, + } + } + respr, errRespr := d.srv.Analysis(req.Context(), resourceGroupNameParam, deploymentNameParam, wafPolicyNameParam, options) + if respErr := server.GetError(errRespr, req); respErr != nil { + return nil, respErr + } + respContent := server.GetResponseContent(respr) + if !contains([]int{http.StatusOK}, respContent.HTTPStatus) { + return nil, &nonRetriableError{fmt.Errorf("unexpected status code %d. acceptable values are http.StatusOK", respContent.HTTPStatus)} + } + resp, err := server.MarshalResponseAsJSON(respContent, server.GetResponse(respr).DeploymentWafPolicyAnalysisResponse, req) + if err != nil { + return nil, err + } + return resp, nil +} + +// set this to conditionally intercept incoming requests to DeploymentWafPoliciesServerTransport +var deploymentWafPoliciesServerTransportInterceptor interface { + // Do returns true if the server transport should use the returned response/error + Do(*http.Request) (*http.Response, error, bool) +} diff --git a/sdk/resourcemanager/nginx/armnginx/fake/internal.go b/sdk/resourcemanager/nginx/armnginx/fake/internal.go index 7425b6a669e2..d9ae2e5818f8 100644 --- a/sdk/resourcemanager/nginx/armnginx/fake/internal.go +++ b/sdk/resourcemanager/nginx/armnginx/fake/internal.go @@ -32,6 +32,14 @@ func contains[T comparable](s []T, v T) bool { return false } +func initServer[T any](mu *sync.Mutex, dst **T, src func() *T) { + mu.Lock() + if *dst == nil { + *dst = src() + } + mu.Unlock() +} + func newTracker[T any]() *tracker[T] { return &tracker[T]{ items: map[string]*T{}, diff --git a/sdk/resourcemanager/nginx/armnginx/fake/operations_server.go b/sdk/resourcemanager/nginx/armnginx/fake/operations_server.go index 07b1fa327c3b..f65bdc83825d 100644 --- a/sdk/resourcemanager/nginx/armnginx/fake/operations_server.go +++ b/sdk/resourcemanager/nginx/armnginx/fake/operations_server.go @@ -11,7 +11,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "net/http" ) diff --git a/sdk/resourcemanager/nginx/armnginx/fake/server_factory.go b/sdk/resourcemanager/nginx/armnginx/fake/server_factory.go index 0c7c358a4fe6..a29344f115c7 100644 --- a/sdk/resourcemanager/nginx/armnginx/fake/server_factory.go +++ b/sdk/resourcemanager/nginx/armnginx/fake/server_factory.go @@ -27,6 +27,9 @@ type ServerFactory struct { // DefaultWafPolicyServer contains the fakes for client DefaultWafPolicyClient DefaultWafPolicyServer DefaultWafPolicyServer + // DeploymentWafPoliciesServer contains the fakes for client DeploymentWafPoliciesClient + DeploymentWafPoliciesServer DeploymentWafPoliciesServer + // DeploymentsServer contains the fakes for client DeploymentsClient DeploymentsServer DeploymentsServer @@ -49,15 +52,16 @@ func NewServerFactoryTransport(srv *ServerFactory) *ServerFactoryTransport { // ServerFactoryTransport connects instances of armnginx.ClientFactory to instances of ServerFactory. // Don't use this type directly, use NewServerFactoryTransport instead. type ServerFactoryTransport struct { - srv *ServerFactory - trMu sync.Mutex - trAPIKeysServer *APIKeysServerTransport - trCertificatesServer *CertificatesServerTransport - trConfigurationsServer *ConfigurationsServerTransport - trDefaultWafPolicyServer *DefaultWafPolicyServerTransport - trDeploymentsServer *DeploymentsServerTransport - trOperationsServer *OperationsServerTransport - trWafPolicyServer *WafPolicyServerTransport + srv *ServerFactory + trMu sync.Mutex + trAPIKeysServer *APIKeysServerTransport + trCertificatesServer *CertificatesServerTransport + trConfigurationsServer *ConfigurationsServerTransport + trDefaultWafPolicyServer *DefaultWafPolicyServerTransport + trDeploymentWafPoliciesServer *DeploymentWafPoliciesServerTransport + trDeploymentsServer *DeploymentsServerTransport + trOperationsServer *OperationsServerTransport + trWafPolicyServer *WafPolicyServerTransport } // Do implements the policy.Transporter interface for ServerFactoryTransport. @@ -74,29 +78,34 @@ func (s *ServerFactoryTransport) Do(req *http.Request) (*http.Response, error) { switch client { case "APIKeysClient": - initServer(s, &s.trAPIKeysServer, func() *APIKeysServerTransport { return NewAPIKeysServerTransport(&s.srv.APIKeysServer) }) + initServer(&s.trMu, &s.trAPIKeysServer, func() *APIKeysServerTransport { return NewAPIKeysServerTransport(&s.srv.APIKeysServer) }) resp, err = s.trAPIKeysServer.Do(req) case "CertificatesClient": - initServer(s, &s.trCertificatesServer, func() *CertificatesServerTransport { return NewCertificatesServerTransport(&s.srv.CertificatesServer) }) + initServer(&s.trMu, &s.trCertificatesServer, func() *CertificatesServerTransport { return NewCertificatesServerTransport(&s.srv.CertificatesServer) }) resp, err = s.trCertificatesServer.Do(req) case "ConfigurationsClient": - initServer(s, &s.trConfigurationsServer, func() *ConfigurationsServerTransport { + initServer(&s.trMu, &s.trConfigurationsServer, func() *ConfigurationsServerTransport { return NewConfigurationsServerTransport(&s.srv.ConfigurationsServer) }) resp, err = s.trConfigurationsServer.Do(req) case "DefaultWafPolicyClient": - initServer(s, &s.trDefaultWafPolicyServer, func() *DefaultWafPolicyServerTransport { + initServer(&s.trMu, &s.trDefaultWafPolicyServer, func() *DefaultWafPolicyServerTransport { return NewDefaultWafPolicyServerTransport(&s.srv.DefaultWafPolicyServer) }) resp, err = s.trDefaultWafPolicyServer.Do(req) + case "DeploymentWafPoliciesClient": + initServer(&s.trMu, &s.trDeploymentWafPoliciesServer, func() *DeploymentWafPoliciesServerTransport { + return NewDeploymentWafPoliciesServerTransport(&s.srv.DeploymentWafPoliciesServer) + }) + resp, err = s.trDeploymentWafPoliciesServer.Do(req) case "DeploymentsClient": - initServer(s, &s.trDeploymentsServer, func() *DeploymentsServerTransport { return NewDeploymentsServerTransport(&s.srv.DeploymentsServer) }) + initServer(&s.trMu, &s.trDeploymentsServer, func() *DeploymentsServerTransport { return NewDeploymentsServerTransport(&s.srv.DeploymentsServer) }) resp, err = s.trDeploymentsServer.Do(req) case "OperationsClient": - initServer(s, &s.trOperationsServer, func() *OperationsServerTransport { return NewOperationsServerTransport(&s.srv.OperationsServer) }) + initServer(&s.trMu, &s.trOperationsServer, func() *OperationsServerTransport { return NewOperationsServerTransport(&s.srv.OperationsServer) }) resp, err = s.trOperationsServer.Do(req) case "WafPolicyClient": - initServer(s, &s.trWafPolicyServer, func() *WafPolicyServerTransport { return NewWafPolicyServerTransport(&s.srv.WafPolicyServer) }) + initServer(&s.trMu, &s.trWafPolicyServer, func() *WafPolicyServerTransport { return NewWafPolicyServerTransport(&s.srv.WafPolicyServer) }) resp, err = s.trWafPolicyServer.Do(req) default: err = fmt.Errorf("unhandled client %s", client) @@ -108,11 +117,3 @@ func (s *ServerFactoryTransport) Do(req *http.Request) (*http.Response, error) { return resp, nil } - -func initServer[T any](s *ServerFactoryTransport, dst **T, src func() *T) { - s.trMu.Lock() - if *dst == nil { - *dst = src() - } - s.trMu.Unlock() -} diff --git a/sdk/resourcemanager/nginx/armnginx/fake/wafpolicy_server.go b/sdk/resourcemanager/nginx/armnginx/fake/wafpolicy_server.go index 4b0426654af4..e34c97ae909b 100644 --- a/sdk/resourcemanager/nginx/armnginx/fake/wafpolicy_server.go +++ b/sdk/resourcemanager/nginx/armnginx/fake/wafpolicy_server.go @@ -12,7 +12,7 @@ import ( "github.com/Azure/azure-sdk-for-go/sdk/azcore/fake/server" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "net/http" "net/url" "regexp" diff --git a/sdk/resourcemanager/nginx/armnginx/go.mod b/sdk/resourcemanager/nginx/armnginx/go.mod index 8678525312ab..f3316abf5613 100644 --- a/sdk/resourcemanager/nginx/armnginx/go.mod +++ b/sdk/resourcemanager/nginx/armnginx/go.mod @@ -1,9 +1,9 @@ -module github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3 +module github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4 go 1.24.0 require ( - github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0 + github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0 github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 ) @@ -14,8 +14,8 @@ require ( github.com/google/uuid v1.6.0 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect - golang.org/x/crypto v0.45.0 // indirect - golang.org/x/net v0.47.0 // indirect - golang.org/x/sys v0.38.0 // indirect - golang.org/x/text v0.31.0 // indirect + golang.org/x/crypto v0.47.0 // indirect + golang.org/x/net v0.49.0 // indirect + golang.org/x/sys v0.40.0 // indirect + golang.org/x/text v0.33.0 // indirect ) diff --git a/sdk/resourcemanager/nginx/armnginx/go.sum b/sdk/resourcemanager/nginx/armnginx/go.sum index 5d2c5e78eb37..668beb5b462e 100644 --- a/sdk/resourcemanager/nginx/armnginx/go.sum +++ b/sdk/resourcemanager/nginx/armnginx/go.sum @@ -1,5 +1,5 @@ -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0 h1:JXg2dwJUmPB9JmtVmdEB16APJ7jurfbY5jnfXpJoRMc= -github.com/Azure/azure-sdk-for-go/sdk/azcore v1.20.0/go.mod h1:YD5h/ldMsG0XiIw7PdyNhLxaM317eFh5yNLccNfGdyw= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0 h1:fou+2+WFTib47nS+nz/ozhEBnvU96bKHy6LjRsY4E28= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.21.0/go.mod h1:t76Ruy8AHvUAC8GfMWJMa0ElSbuIcO03NLpynfbgsPA= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1 h1:Hk5QBxZQC1jb2Fwj6mpzme37xbCDdNTxU7O9eb5+LB4= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.13.1/go.mod h1:IYus9qsFobWIc2YVwe/WPjcnyCkPKtnHAqUYeebc8z0= github.com/Azure/azure-sdk-for-go/sdk/azidentity/cache v0.3.2 h1:yz1bePFlP5Vws5+8ez6T3HWXPmwOK7Yvq8QxDBD3SKY= @@ -26,14 +26,14 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q= -golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4= -golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= -golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= +golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= +golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= +golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= +golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= -golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= -golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/sdk/resourcemanager/nginx/armnginx/models.go b/sdk/resourcemanager/nginx/armnginx/models.go index 5e854a07ef09..4f75762045a5 100644 --- a/sdk/resourcemanager/nginx/armnginx/models.go +++ b/sdk/resourcemanager/nginx/armnginx/models.go @@ -122,6 +122,24 @@ type CertificateProperties struct { SHA1Thumbprint *string } +// Configuration - Nginx Configuration Response +type Configuration struct { + // Nginx Configuration Response Properties + Properties *ConfigurationProperties + + // READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + ID *string + + // READ-ONLY; The name of the resource + Name *string + + // READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData + + // READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string +} + // ConfigurationFile - Nginx Configuration File type ConfigurationFile struct { Content *string @@ -131,7 +149,7 @@ type ConfigurationFile struct { // ConfigurationListResponse - Response of a list operation. type ConfigurationListResponse struct { // REQUIRED; The NginxConfigurationResponse items on this page - Value []*ConfigurationResponse + Value []*Configuration // The link to the next page of items NextLink *string @@ -143,6 +161,19 @@ type ConfigurationPackage struct { ProtectedFiles []*string } +// ConfigurationProperties - Nginx Configuration Response Properties +type ConfigurationProperties struct { + Files []*ConfigurationFile + + // Nginx Configuration Package + Package *ConfigurationPackage + ProtectedFiles []*ConfigurationProtectedFileResponse + RootFile *string + + // READ-ONLY; Provisioning State + ProvisioningState *ProvisioningState +} + // ConfigurationProtectedFileRequest - Nginx Configuration Protected File Request type ConfigurationProtectedFileRequest struct { // The content of the protected file. This value is a PUT only value. If you perform a GET request on this value, it will @@ -196,37 +227,6 @@ type ConfigurationRequestProperties struct { ProvisioningState *ProvisioningState } -// ConfigurationResponse - Nginx Configuration Response -type ConfigurationResponse struct { - // Nginx Configuration Response Properties - Properties *ConfigurationResponseProperties - - // READ-ONLY; Fully qualified resource ID for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} - ID *string - - // READ-ONLY; The name of the resource - Name *string - - // READ-ONLY; Azure Resource Manager metadata containing createdBy and modifiedBy information. - SystemData *SystemData - - // READ-ONLY; The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" - Type *string -} - -// ConfigurationResponseProperties - Nginx Configuration Response Properties -type ConfigurationResponseProperties struct { - Files []*ConfigurationFile - - // Nginx Configuration Package - Package *ConfigurationPackage - ProtectedFiles []*ConfigurationProtectedFileResponse - RootFile *string - - // READ-ONLY; Provisioning State - ProvisioningState *ProvisioningState -} - // Deployment - Nginx Deployment type Deployment struct { // REQUIRED; The geo-location where the resource lives @@ -473,6 +473,30 @@ type DeploymentWafPolicy struct { Type *string } +// DeploymentWafPolicyAnalysisCreateRequest - Nginx Deployment Waf Policy Analysis Create Request +type DeploymentWafPolicyAnalysisCreateRequest struct { + // The byte content of the policy + Content []byte + + // The absolute file path of the policy as in the virtual machine + Filepath *string +} + +// DeploymentWafPolicyAnalysisData - Nginx Deployment Waf Policy Analysis Data +type DeploymentWafPolicyAnalysisData struct { + // List of errors found during analysis + Errors []*DeploymentWafPolicyError +} + +// DeploymentWafPolicyAnalysisResponse - Nginx Deployment Waf Policy Analysis Response +type DeploymentWafPolicyAnalysisResponse struct { + // The analysis data containing errors + Data *DeploymentWafPolicyAnalysisData + + // The status of the analysis. The possible values can be arbitrary + Status *string +} + // DeploymentWafPolicyApplyingStatus - Nginx Deployment Waf Policy Applying Status type DeploymentWafPolicyApplyingStatus struct { // READ-ONLY; Machine readable code indicating the applying status code of a WAF Policy. @@ -498,6 +522,18 @@ type DeploymentWafPolicyCompilingStatus struct { Time *string } +// DeploymentWafPolicyError - Nginx Deployment Waf Policy Error +type DeploymentWafPolicyError struct { + // Error code + Code *string + + // Field that caused the error + Field *string + + // Error message + Message *string +} + // DeploymentWafPolicyListResponse - Nginx Deployment Waf Policy List Response type DeploymentWafPolicyListResponse struct { // REQUIRED; The NginxDeploymentWafPolicyMetadata items on this page @@ -653,7 +689,7 @@ type Operation struct { Origin *Origin } -// OperationDisplay - Localized display information for and operation. +// OperationDisplay - Localized display information for an operation. type OperationDisplay struct { // READ-ONLY; The short, localized friendly description of the operation; suitable for tool tips and detailed views. Description *string diff --git a/sdk/resourcemanager/nginx/armnginx/models_serde.go b/sdk/resourcemanager/nginx/armnginx/models_serde.go index e8c6bad309c1..70f0f81ab8ac 100644 --- a/sdk/resourcemanager/nginx/armnginx/models_serde.go +++ b/sdk/resourcemanager/nginx/armnginx/models_serde.go @@ -9,7 +9,9 @@ import ( "fmt" "github.com/Azure/azure-sdk-for-go/sdk/azcore" "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime" + "github.com/Azure/azure-sdk-for-go/sdk/azcore/runtime/datetime" "reflect" + "time" ) // MarshalJSON implements the json.Marshaller interface for type AnalysisCreate. @@ -332,7 +334,7 @@ func (c CertificateProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) populate(objectMap, "certificateError", c.CertificateError) populate(objectMap, "certificateVirtualPath", c.CertificateVirtualPath) - populateDateTimeRFC3339(objectMap, "keyVaultSecretCreated", c.KeyVaultSecretCreated) + populateTime[datetime.RFC3339](objectMap, "keyVaultSecretCreated", c.KeyVaultSecretCreated) populate(objectMap, "keyVaultSecretId", c.KeyVaultSecretID) populate(objectMap, "keyVaultSecretVersion", c.KeyVaultSecretVersion) populate(objectMap, "keyVirtualPath", c.KeyVirtualPath) @@ -357,7 +359,7 @@ func (c *CertificateProperties) UnmarshalJSON(data []byte) error { err = unpopulate(val, "CertificateVirtualPath", &c.CertificateVirtualPath) delete(rawMsg, key) case "keyVaultSecretCreated": - err = unpopulateDateTimeRFC3339(val, "KeyVaultSecretCreated", &c.KeyVaultSecretCreated) + err = unpopulateTime[datetime.RFC3339](val, "KeyVaultSecretCreated", &c.KeyVaultSecretCreated) delete(rawMsg, key) case "keyVaultSecretId": err = unpopulate(val, "KeyVaultSecretID", &c.KeyVaultSecretID) @@ -382,6 +384,49 @@ func (c *CertificateProperties) UnmarshalJSON(data []byte) error { return nil } +// MarshalJSON implements the json.Marshaller interface for type Configuration. +func (c Configuration) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "id", c.ID) + populate(objectMap, "name", c.Name) + populate(objectMap, "properties", c.Properties) + populate(objectMap, "systemData", c.SystemData) + populate(objectMap, "type", c.Type) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type Configuration. +func (c *Configuration) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "id": + err = unpopulate(val, "ID", &c.ID) + delete(rawMsg, key) + case "name": + err = unpopulate(val, "Name", &c.Name) + delete(rawMsg, key) + case "properties": + err = unpopulate(val, "Properties", &c.Properties) + delete(rawMsg, key) + case "systemData": + err = unpopulate(val, "SystemData", &c.SystemData) + delete(rawMsg, key) + case "type": + err = unpopulate(val, "Type", &c.Type) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + // MarshalJSON implements the json.Marshaller interface for type ConfigurationFile. func (c ConfigurationFile) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) @@ -475,6 +520,49 @@ func (c *ConfigurationPackage) UnmarshalJSON(data []byte) error { return nil } +// MarshalJSON implements the json.Marshaller interface for type ConfigurationProperties. +func (c ConfigurationProperties) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "files", c.Files) + populate(objectMap, "package", c.Package) + populate(objectMap, "protectedFiles", c.ProtectedFiles) + populate(objectMap, "provisioningState", c.ProvisioningState) + populate(objectMap, "rootFile", c.RootFile) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type ConfigurationProperties. +func (c *ConfigurationProperties) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "files": + err = unpopulate(val, "Files", &c.Files) + delete(rawMsg, key) + case "package": + err = unpopulate(val, "Package", &c.Package) + delete(rawMsg, key) + case "protectedFiles": + err = unpopulate(val, "ProtectedFiles", &c.ProtectedFiles) + delete(rawMsg, key) + case "provisioningState": + err = unpopulate(val, "ProvisioningState", &c.ProvisioningState) + delete(rawMsg, key) + case "rootFile": + err = unpopulate(val, "RootFile", &c.RootFile) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", c, err) + } + } + return nil +} + // MarshalJSON implements the json.Marshaller interface for type ConfigurationProtectedFileRequest. func (c ConfigurationProtectedFileRequest) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) @@ -627,92 +715,6 @@ func (c *ConfigurationRequestProperties) UnmarshalJSON(data []byte) error { return nil } -// MarshalJSON implements the json.Marshaller interface for type ConfigurationResponse. -func (c ConfigurationResponse) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]any) - populate(objectMap, "id", c.ID) - populate(objectMap, "name", c.Name) - populate(objectMap, "properties", c.Properties) - populate(objectMap, "systemData", c.SystemData) - populate(objectMap, "type", c.Type) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type ConfigurationResponse. -func (c *ConfigurationResponse) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", c, err) - } - for key, val := range rawMsg { - var err error - switch key { - case "id": - err = unpopulate(val, "ID", &c.ID) - delete(rawMsg, key) - case "name": - err = unpopulate(val, "Name", &c.Name) - delete(rawMsg, key) - case "properties": - err = unpopulate(val, "Properties", &c.Properties) - delete(rawMsg, key) - case "systemData": - err = unpopulate(val, "SystemData", &c.SystemData) - delete(rawMsg, key) - case "type": - err = unpopulate(val, "Type", &c.Type) - delete(rawMsg, key) - } - if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", c, err) - } - } - return nil -} - -// MarshalJSON implements the json.Marshaller interface for type ConfigurationResponseProperties. -func (c ConfigurationResponseProperties) MarshalJSON() ([]byte, error) { - objectMap := make(map[string]any) - populate(objectMap, "files", c.Files) - populate(objectMap, "package", c.Package) - populate(objectMap, "protectedFiles", c.ProtectedFiles) - populate(objectMap, "provisioningState", c.ProvisioningState) - populate(objectMap, "rootFile", c.RootFile) - return json.Marshal(objectMap) -} - -// UnmarshalJSON implements the json.Unmarshaller interface for type ConfigurationResponseProperties. -func (c *ConfigurationResponseProperties) UnmarshalJSON(data []byte) error { - var rawMsg map[string]json.RawMessage - if err := json.Unmarshal(data, &rawMsg); err != nil { - return fmt.Errorf("unmarshalling type %T: %v", c, err) - } - for key, val := range rawMsg { - var err error - switch key { - case "files": - err = unpopulate(val, "Files", &c.Files) - delete(rawMsg, key) - case "package": - err = unpopulate(val, "Package", &c.Package) - delete(rawMsg, key) - case "protectedFiles": - err = unpopulate(val, "ProtectedFiles", &c.ProtectedFiles) - delete(rawMsg, key) - case "provisioningState": - err = unpopulate(val, "ProvisioningState", &c.ProvisioningState) - delete(rawMsg, key) - case "rootFile": - err = unpopulate(val, "RootFile", &c.RootFile) - delete(rawMsg, key) - } - if err != nil { - return fmt.Errorf("unmarshalling type %T: %v", c, err) - } - } - return nil -} - // MarshalJSON implements the json.Marshaller interface for type Deployment. func (d Deployment) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) @@ -849,7 +851,7 @@ func (d *DeploymentAPIKeyRequest) UnmarshalJSON(data []byte) error { // MarshalJSON implements the json.Marshaller interface for type DeploymentAPIKeyRequestProperties. func (d DeploymentAPIKeyRequestProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) - populateDateTimeRFC3339(objectMap, "endDateTime", d.EndDateTime) + populateTime[datetime.RFC3339](objectMap, "endDateTime", d.EndDateTime) populate(objectMap, "secretText", d.SecretText) return json.Marshal(objectMap) } @@ -864,7 +866,7 @@ func (d *DeploymentAPIKeyRequestProperties) UnmarshalJSON(data []byte) error { var err error switch key { case "endDateTime": - err = unpopulateDateTimeRFC3339(val, "EndDateTime", &d.EndDateTime) + err = unpopulateTime[datetime.RFC3339](val, "EndDateTime", &d.EndDateTime) delete(rawMsg, key) case "secretText": err = unpopulate(val, "SecretText", &d.SecretText) @@ -923,7 +925,7 @@ func (d *DeploymentAPIKeyResponse) UnmarshalJSON(data []byte) error { // MarshalJSON implements the json.Marshaller interface for type DeploymentAPIKeyResponseProperties. func (d DeploymentAPIKeyResponseProperties) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) - populateDateTimeRFC3339(objectMap, "endDateTime", d.EndDateTime) + populateTime[datetime.RFC3339](objectMap, "endDateTime", d.EndDateTime) populate(objectMap, "hint", d.Hint) return json.Marshal(objectMap) } @@ -938,7 +940,7 @@ func (d *DeploymentAPIKeyResponseProperties) UnmarshalJSON(data []byte) error { var err error switch key { case "endDateTime": - err = unpopulateDateTimeRFC3339(val, "EndDateTime", &d.EndDateTime) + err = unpopulateTime[datetime.RFC3339](val, "EndDateTime", &d.EndDateTime) delete(rawMsg, key) case "hint": err = unpopulate(val, "Hint", &d.Hint) @@ -1395,6 +1397,99 @@ func (d *DeploymentWafPolicy) UnmarshalJSON(data []byte) error { return nil } +// MarshalJSON implements the json.Marshaller interface for type DeploymentWafPolicyAnalysisCreateRequest. +func (d DeploymentWafPolicyAnalysisCreateRequest) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populateByteArray(objectMap, "content", d.Content, func() any { + return runtime.EncodeByteArray(d.Content, runtime.Base64StdFormat) + }) + populate(objectMap, "filepath", d.Filepath) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type DeploymentWafPolicyAnalysisCreateRequest. +func (d *DeploymentWafPolicyAnalysisCreateRequest) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "content": + if val != nil && string(val) != "null" { + err = runtime.DecodeByteArray(string(val), &d.Content, runtime.Base64StdFormat) + } + delete(rawMsg, key) + case "filepath": + err = unpopulate(val, "Filepath", &d.Filepath) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type DeploymentWafPolicyAnalysisData. +func (d DeploymentWafPolicyAnalysisData) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "errors", d.Errors) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type DeploymentWafPolicyAnalysisData. +func (d *DeploymentWafPolicyAnalysisData) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "errors": + err = unpopulate(val, "Errors", &d.Errors) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + } + return nil +} + +// MarshalJSON implements the json.Marshaller interface for type DeploymentWafPolicyAnalysisResponse. +func (d DeploymentWafPolicyAnalysisResponse) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "data", d.Data) + populate(objectMap, "status", d.Status) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type DeploymentWafPolicyAnalysisResponse. +func (d *DeploymentWafPolicyAnalysisResponse) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "data": + err = unpopulate(val, "Data", &d.Data) + delete(rawMsg, key) + case "status": + err = unpopulate(val, "Status", &d.Status) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + } + return nil +} + // MarshalJSON implements the json.Marshaller interface for type DeploymentWafPolicyApplyingStatus. func (d DeploymentWafPolicyApplyingStatus) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) @@ -1465,6 +1560,41 @@ func (d *DeploymentWafPolicyCompilingStatus) UnmarshalJSON(data []byte) error { return nil } +// MarshalJSON implements the json.Marshaller interface for type DeploymentWafPolicyError. +func (d DeploymentWafPolicyError) MarshalJSON() ([]byte, error) { + objectMap := make(map[string]any) + populate(objectMap, "code", d.Code) + populate(objectMap, "field", d.Field) + populate(objectMap, "message", d.Message) + return json.Marshal(objectMap) +} + +// UnmarshalJSON implements the json.Unmarshaller interface for type DeploymentWafPolicyError. +func (d *DeploymentWafPolicyError) UnmarshalJSON(data []byte) error { + var rawMsg map[string]json.RawMessage + if err := json.Unmarshal(data, &rawMsg); err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + for key, val := range rawMsg { + var err error + switch key { + case "code": + err = unpopulate(val, "Code", &d.Code) + delete(rawMsg, key) + case "field": + err = unpopulate(val, "Field", &d.Field) + delete(rawMsg, key) + case "message": + err = unpopulate(val, "Message", &d.Message) + delete(rawMsg, key) + } + if err != nil { + return fmt.Errorf("unmarshalling type %T: %v", d, err) + } + } + return nil +} + // MarshalJSON implements the json.Marshaller interface for type DeploymentWafPolicyListResponse. func (d DeploymentWafPolicyListResponse) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) @@ -2137,10 +2267,10 @@ func (s *StorageAccount) UnmarshalJSON(data []byte) error { // MarshalJSON implements the json.Marshaller interface for type SystemData. func (s SystemData) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) - populateDateTimeRFC3339(objectMap, "createdAt", s.CreatedAt) + populateTime[datetime.RFC3339](objectMap, "createdAt", s.CreatedAt) populate(objectMap, "createdBy", s.CreatedBy) populate(objectMap, "createdByType", s.CreatedByType) - populateDateTimeRFC3339(objectMap, "lastModifiedAt", s.LastModifiedAt) + populateTime[datetime.RFC3339](objectMap, "lastModifiedAt", s.LastModifiedAt) populate(objectMap, "lastModifiedBy", s.LastModifiedBy) populate(objectMap, "lastModifiedByType", s.LastModifiedByType) return json.Marshal(objectMap) @@ -2156,7 +2286,7 @@ func (s *SystemData) UnmarshalJSON(data []byte) error { var err error switch key { case "createdAt": - err = unpopulateDateTimeRFC3339(val, "CreatedAt", &s.CreatedAt) + err = unpopulateTime[datetime.RFC3339](val, "CreatedAt", &s.CreatedAt) delete(rawMsg, key) case "createdBy": err = unpopulate(val, "CreatedBy", &s.CreatedBy) @@ -2165,7 +2295,7 @@ func (s *SystemData) UnmarshalJSON(data []byte) error { err = unpopulate(val, "CreatedByType", &s.CreatedByType) delete(rawMsg, key) case "lastModifiedAt": - err = unpopulateDateTimeRFC3339(val, "LastModifiedAt", &s.LastModifiedAt) + err = unpopulateTime[datetime.RFC3339](val, "LastModifiedAt", &s.LastModifiedAt) delete(rawMsg, key) case "lastModifiedBy": err = unpopulate(val, "LastModifiedBy", &s.LastModifiedBy) @@ -2246,7 +2376,7 @@ func (w *WebApplicationFirewallComponentVersions) UnmarshalJSON(data []byte) err // MarshalJSON implements the json.Marshaller interface for type WebApplicationFirewallPackage. func (w WebApplicationFirewallPackage) MarshalJSON() ([]byte, error) { objectMap := make(map[string]any) - populateDateTimeRFC3339(objectMap, "revisionDatetime", w.RevisionDatetime) + populateTime[datetime.RFC3339](objectMap, "revisionDatetime", w.RevisionDatetime) populate(objectMap, "version", w.Version) return json.Marshal(objectMap) } @@ -2261,7 +2391,7 @@ func (w *WebApplicationFirewallPackage) UnmarshalJSON(data []byte) error { var err error switch key { case "revisionDatetime": - err = unpopulateDateTimeRFC3339(val, "RevisionDatetime", &w.RevisionDatetime) + err = unpopulateTime[datetime.RFC3339](val, "RevisionDatetime", &w.RevisionDatetime) delete(rawMsg, key) case "version": err = unpopulate(val, "Version", &w.Version) @@ -2354,6 +2484,17 @@ func populate(m map[string]any, k string, v any) { } } +func populateTime[T dateTimeConstraints](m map[string]any, k string, t *time.Time) { + if t == nil { + return + } else if azcore.IsNullValue(t) { + m[k] = nil + } else if !reflect.ValueOf(t).IsNil() { + newTime := T(*t) + m[k] = (*T)(&newTime) + } +} + func populateByteArray[T any](m map[string]any, k string, b []T, convert func() any) { if azcore.IsNullValue(b) { m[k] = nil @@ -2373,3 +2514,20 @@ func unpopulate(data json.RawMessage, fn string, v any) error { } return nil } + +func unpopulateTime[T dateTimeConstraints](data json.RawMessage, fn string, t **time.Time) error { + if data == nil || string(data) == "null" { + return nil + } + var aux T + if err := json.Unmarshal(data, &aux); err != nil { + return fmt.Errorf("struct field %s: %v", fn, err) + } + newTime := time.Time(aux) + *t = &newTime + return nil +} + +type dateTimeConstraints interface { + datetime.PlainDate | datetime.PlainTime | datetime.RFC1123 | datetime.RFC3339 | datetime.Unix +} diff --git a/sdk/resourcemanager/nginx/armnginx/operations_client.go b/sdk/resourcemanager/nginx/armnginx/operations_client.go index a0fa3573ebf3..ff2573f71f73 100644 --- a/sdk/resourcemanager/nginx/armnginx/operations_client.go +++ b/sdk/resourcemanager/nginx/armnginx/operations_client.go @@ -21,7 +21,7 @@ type OperationsClient struct { // NewOperationsClient creates a new instance of OperationsClient with the specified values. // - credential - used to authorize requests. Usually a credential from azidentity. -// - options - pass nil to accept the default values. +// - options - Contains optional client configuration. Pass nil to accept the default values. func NewOperationsClient(credential azcore.TokenCredential, options *arm.ClientOptions) (*OperationsClient, error) { cl, err := arm.NewClient(moduleName, moduleVersion, credential, options) if err != nil { @@ -35,7 +35,7 @@ func NewOperationsClient(credential azcore.TokenCredential, options *arm.ClientO // NewListPager - List the operations for the provider // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - options - OperationsClientListOptions contains the optional parameters for the OperationsClient.NewListPager method. func (client *OperationsClient) NewListPager(options *OperationsClientListOptions) *runtime.Pager[OperationsClientListResponse] { return runtime.NewPager(runtime.PagingHandler[OperationsClientListResponse]{ @@ -68,7 +68,7 @@ func (client *OperationsClient) listCreateRequest(ctx context.Context, _ *Operat return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil diff --git a/sdk/resourcemanager/nginx/armnginx/operations_client_example_test.go b/sdk/resourcemanager/nginx/armnginx/operations_client_example_test.go index 0305de813e20..7b881e651b53 100644 --- a/sdk/resourcemanager/nginx/armnginx/operations_client_example_test.go +++ b/sdk/resourcemanager/nginx/armnginx/operations_client_example_test.go @@ -7,11 +7,11 @@ package armnginx_test import ( "context" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "log" ) -// Generated from example definition: 2025-03-01-preview/Operations_List.json +// Generated from example definition: 2025-11-01/Operations_List.json func ExampleOperationsClient_NewListPager() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { diff --git a/sdk/resourcemanager/nginx/armnginx/options.go b/sdk/resourcemanager/nginx/armnginx/options.go index c22eee42d402..4cb730761bf4 100644 --- a/sdk/resourcemanager/nginx/armnginx/options.go +++ b/sdk/resourcemanager/nginx/armnginx/options.go @@ -81,6 +81,13 @@ type DefaultWafPolicyClientListOptions struct { // placeholder for future optional parameters } +// DeploymentWafPoliciesClientAnalysisOptions contains the optional parameters for the DeploymentWafPoliciesClient.Analysis +// method. +type DeploymentWafPoliciesClientAnalysisOptions struct { + // The content of the action request + Body *DeploymentWafPolicyAnalysisCreateRequest +} + // DeploymentsClientBeginCreateOrUpdateOptions contains the optional parameters for the DeploymentsClient.BeginCreateOrUpdate // method. type DeploymentsClientBeginCreateOrUpdateOptions struct { diff --git a/sdk/resourcemanager/nginx/armnginx/responses.go b/sdk/resourcemanager/nginx/armnginx/responses.go index 03e2faee2d15..627ce4e3e04b 100644 --- a/sdk/resourcemanager/nginx/armnginx/responses.go +++ b/sdk/resourcemanager/nginx/armnginx/responses.go @@ -59,7 +59,7 @@ type ConfigurationsClientAnalysisResponse struct { // ConfigurationsClientCreateOrUpdateResponse contains the response from method ConfigurationsClient.BeginCreateOrUpdate. type ConfigurationsClientCreateOrUpdateResponse struct { // Nginx Configuration Response - ConfigurationResponse + Configuration } // ConfigurationsClientDeleteResponse contains the response from method ConfigurationsClient.BeginDelete. @@ -70,7 +70,7 @@ type ConfigurationsClientDeleteResponse struct { // ConfigurationsClientGetResponse contains the response from method ConfigurationsClient.Get. type ConfigurationsClientGetResponse struct { // Nginx Configuration Response - ConfigurationResponse + Configuration } // ConfigurationsClientListResponse contains the response from method ConfigurationsClient.NewListPager. @@ -85,6 +85,12 @@ type DefaultWafPolicyClientListResponse struct { DeploymentDefaultWafPolicyListResponse } +// DeploymentWafPoliciesClientAnalysisResponse contains the response from method DeploymentWafPoliciesClient.Analysis. +type DeploymentWafPoliciesClientAnalysisResponse struct { + // Nginx Deployment Waf Policy Analysis Response + DeploymentWafPolicyAnalysisResponse +} + // DeploymentsClientCreateOrUpdateResponse contains the response from method DeploymentsClient.BeginCreateOrUpdate. type DeploymentsClientCreateOrUpdateResponse struct { // Nginx Deployment diff --git a/sdk/resourcemanager/nginx/armnginx/testdata/_metadata.json b/sdk/resourcemanager/nginx/armnginx/testdata/_metadata.json index 3437efcfca5d..9ce20855d363 100644 --- a/sdk/resourcemanager/nginx/armnginx/testdata/_metadata.json +++ b/sdk/resourcemanager/nginx/armnginx/testdata/_metadata.json @@ -1,4 +1,6 @@ { - "apiVersion": "2025-03-01-preview", - "emitterVersion": "0.8.2" -} \ No newline at end of file + "apiVersions": { + "Nginx.NginxPlus": "2025-11-01" + }, + "emitterVersion": "0.10.2" +} diff --git a/sdk/resourcemanager/nginx/armnginx/time_rfc3339.go b/sdk/resourcemanager/nginx/armnginx/time_rfc3339.go deleted file mode 100644 index 9346c7dc9730..000000000000 --- a/sdk/resourcemanager/nginx/armnginx/time_rfc3339.go +++ /dev/null @@ -1,109 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. See License.txt in the project root for license information. -// Code generated by Microsoft (R) Go Code Generator. DO NOT EDIT. - -package armnginx - -import ( - "encoding/json" - "fmt" - "github.com/Azure/azure-sdk-for-go/sdk/azcore" - "reflect" - "regexp" - "strings" - "time" -) - -// Azure reports time in UTC but it doesn't include the 'Z' time zone suffix in some cases. -var tzOffsetRegex = regexp.MustCompile(`(?:Z|z|\+|-)(?:\d+:\d+)*"*$`) - -const ( - utcDateTime = "2006-01-02T15:04:05.999999999" - utcDateTimeJSON = `"` + utcDateTime + `"` - utcDateTimeNoT = "2006-01-02 15:04:05.999999999" - utcDateTimeJSONNoT = `"` + utcDateTimeNoT + `"` - dateTimeNoT = `2006-01-02 15:04:05.999999999Z07:00` - dateTimeJSON = `"` + time.RFC3339Nano + `"` - dateTimeJSONNoT = `"` + dateTimeNoT + `"` -) - -type dateTimeRFC3339 time.Time - -func (t dateTimeRFC3339) MarshalJSON() ([]byte, error) { - tt := time.Time(t) - return tt.MarshalJSON() -} - -func (t dateTimeRFC3339) MarshalText() ([]byte, error) { - tt := time.Time(t) - return tt.MarshalText() -} - -func (t *dateTimeRFC3339) UnmarshalJSON(data []byte) error { - tzOffset := tzOffsetRegex.Match(data) - hasT := strings.Contains(string(data), "T") || strings.Contains(string(data), "t") - var layout string - if tzOffset && hasT { - layout = dateTimeJSON - } else if tzOffset { - layout = dateTimeJSONNoT - } else if hasT { - layout = utcDateTimeJSON - } else { - layout = utcDateTimeJSONNoT - } - return t.Parse(layout, string(data)) -} - -func (t *dateTimeRFC3339) UnmarshalText(data []byte) error { - if len(data) == 0 { - return nil - } - tzOffset := tzOffsetRegex.Match(data) - hasT := strings.Contains(string(data), "T") || strings.Contains(string(data), "t") - var layout string - if tzOffset && hasT { - layout = time.RFC3339Nano - } else if tzOffset { - layout = dateTimeNoT - } else if hasT { - layout = utcDateTime - } else { - layout = utcDateTimeNoT - } - return t.Parse(layout, string(data)) -} - -func (t *dateTimeRFC3339) Parse(layout, value string) error { - p, err := time.Parse(layout, strings.ToUpper(value)) - *t = dateTimeRFC3339(p) - return err -} - -func (t dateTimeRFC3339) String() string { - return time.Time(t).Format(time.RFC3339Nano) -} - -func populateDateTimeRFC3339(m map[string]any, k string, t *time.Time) { - if t == nil { - return - } else if azcore.IsNullValue(t) { - m[k] = nil - return - } else if reflect.ValueOf(t).IsNil() { - return - } - m[k] = (*dateTimeRFC3339)(t) -} - -func unpopulateDateTimeRFC3339(data json.RawMessage, fn string, t **time.Time) error { - if data == nil || string(data) == "null" { - return nil - } - var aux dateTimeRFC3339 - if err := json.Unmarshal(data, &aux); err != nil { - return fmt.Errorf("struct field %s: %v", fn, err) - } - *t = (*time.Time)(&aux) - return nil -} diff --git a/sdk/resourcemanager/nginx/armnginx/tsp-location.yaml b/sdk/resourcemanager/nginx/armnginx/tsp-location.yaml index 874f27338079..fcac24e7402d 100644 --- a/sdk/resourcemanager/nginx/armnginx/tsp-location.yaml +++ b/sdk/resourcemanager/nginx/armnginx/tsp-location.yaml @@ -1,4 +1,4 @@ directory: specification/nginx/Nginx.Management -commit: aae85aa3e7e4fda95ea2d3abac0ba1d8159db214 +commit: 6f518a19a4f53c8ccb38b839c6076e3b578d795d repo: Azure/azure-rest-api-specs additionalDirectories: diff --git a/sdk/resourcemanager/nginx/armnginx/version.go b/sdk/resourcemanager/nginx/armnginx/version.go index 93fd8d429dbd..12f43047ddbf 100644 --- a/sdk/resourcemanager/nginx/armnginx/version.go +++ b/sdk/resourcemanager/nginx/armnginx/version.go @@ -6,5 +6,5 @@ package armnginx const ( moduleName = "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx" - moduleVersion = "v3.1.0-beta.3" + moduleVersion = "v4.0.0" ) diff --git a/sdk/resourcemanager/nginx/armnginx/wafpolicy_client.go b/sdk/resourcemanager/nginx/armnginx/wafpolicy_client.go index a4616d28a01f..68069be466f7 100644 --- a/sdk/resourcemanager/nginx/armnginx/wafpolicy_client.go +++ b/sdk/resourcemanager/nginx/armnginx/wafpolicy_client.go @@ -26,7 +26,7 @@ type WafPolicyClient struct { // NewWafPolicyClient creates a new instance of WafPolicyClient with the specified values. // - subscriptionID - The ID of the target subscription. The value must be an UUID. // - credential - used to authorize requests. Usually a credential from azidentity. -// - options - pass nil to accept the default values. +// - options - Contains optional client configuration. Pass nil to accept the default values. func NewWafPolicyClient(subscriptionID string, credential azcore.TokenCredential, options *arm.ClientOptions) (*WafPolicyClient, error) { cl, err := arm.NewClient(moduleName, moduleVersion, credential, options) if err != nil { @@ -42,11 +42,11 @@ func NewWafPolicyClient(subscriptionID string, credential azcore.TokenCredential // BeginCreate - Create or update the Nginx Waf Policy for given Nginx deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - wafPolicyName - The name of Waf Policy -// - body - The Nginx Deployment Waf Policy +// - body - Resource create parameters. // - options - WafPolicyClientBeginCreateOptions contains the optional parameters for the WafPolicyClient.BeginCreate method. func (client *WafPolicyClient) BeginCreate(ctx context.Context, resourceGroupName string, deploymentName string, wafPolicyName string, body DeploymentWafPolicy, options *WafPolicyClientBeginCreateOptions) (*runtime.Poller[WafPolicyClientCreateResponse], error) { if options == nil || options.ResumeToken == "" { @@ -69,7 +69,7 @@ func (client *WafPolicyClient) BeginCreate(ctx context.Context, resourceGroupNam // Create - Create or update the Nginx Waf Policy for given Nginx deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 func (client *WafPolicyClient) create(ctx context.Context, resourceGroupName string, deploymentName string, wafPolicyName string, body DeploymentWafPolicy, options *WafPolicyClientBeginCreateOptions) (*http.Response, error) { var err error const operationName = "WafPolicyClient.BeginCreate" @@ -115,7 +115,7 @@ func (client *WafPolicyClient) createCreateRequest(ctx context.Context, resource return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} req.Raw().Header["Content-Type"] = []string{"application/json"} @@ -128,7 +128,7 @@ func (client *WafPolicyClient) createCreateRequest(ctx context.Context, resource // BeginDelete - Reset the Nginx Waf Policy of given Nginx deployment to default // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - wafPolicyName - The name of Waf Policy @@ -153,7 +153,7 @@ func (client *WafPolicyClient) BeginDelete(ctx context.Context, resourceGroupNam // Delete - Reset the Nginx Waf Policy of given Nginx deployment to default // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 func (client *WafPolicyClient) deleteOperation(ctx context.Context, resourceGroupName string, deploymentName string, wafPolicyName string, options *WafPolicyClientBeginDeleteOptions) (*http.Response, error) { var err error const operationName = "WafPolicyClient.BeginDelete" @@ -199,7 +199,7 @@ func (client *WafPolicyClient) deleteCreateRequest(ctx context.Context, resource return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() return req, nil } @@ -207,7 +207,7 @@ func (client *WafPolicyClient) deleteCreateRequest(ctx context.Context, resource // Get - Get the Nginx Waf Policy of given Nginx deployment // If the operation fails it returns an *azcore.ResponseError type. // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - wafPolicyName - The name of Waf Policy @@ -258,7 +258,7 @@ func (client *WafPolicyClient) getCreateRequest(ctx context.Context, resourceGro return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil @@ -275,7 +275,7 @@ func (client *WafPolicyClient) getHandleResponse(resp *http.Response) (WafPolicy // NewListPager - List Waf Policies of given Nginx deployment // -// Generated from API version 2025-03-01-preview +// Generated from API version 2025-11-01 // - resourceGroupName - The name of the resource group. The name is case insensitive. // - deploymentName - The name of targeted NGINX deployment // - options - WafPolicyClientListOptions contains the optional parameters for the WafPolicyClient.NewListPager method. @@ -322,7 +322,7 @@ func (client *WafPolicyClient) listCreateRequest(ctx context.Context, resourceGr return nil, err } reqQP := req.Raw().URL.Query() - reqQP.Set("api-version", "2025-03-01-preview") + reqQP.Set("api-version", "2025-11-01") req.Raw().URL.RawQuery = reqQP.Encode() req.Raw().Header["Accept"] = []string{"application/json"} return req, nil diff --git a/sdk/resourcemanager/nginx/armnginx/wafpolicy_client_example_test.go b/sdk/resourcemanager/nginx/armnginx/wafpolicy_client_example_test.go index 1825a6b14a28..498ae2999400 100644 --- a/sdk/resourcemanager/nginx/armnginx/wafpolicy_client_example_test.go +++ b/sdk/resourcemanager/nginx/armnginx/wafpolicy_client_example_test.go @@ -7,11 +7,11 @@ package armnginx_test import ( "context" "github.com/Azure/azure-sdk-for-go/sdk/azidentity" - "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v3" + "github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/nginx/armnginx/v4" "log" ) -// Generated from example definition: 2025-03-01-preview/WafPolicy_Create.json +// Generated from example definition: 2025-11-01/WafPolicy_Create.json func ExampleWafPolicyClient_BeginCreate() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -57,7 +57,7 @@ func ExampleWafPolicyClient_BeginCreate() { // } } -// Generated from example definition: 2025-03-01-preview/WafPolicy_Delete.json +// Generated from example definition: 2025-11-01/WafPolicy_Delete.json func ExampleWafPolicyClient_BeginDelete() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -78,7 +78,7 @@ func ExampleWafPolicyClient_BeginDelete() { } } -// Generated from example definition: 2025-03-01-preview/WafPolicy_Get.json +// Generated from example definition: 2025-11-01/WafPolicy_Get.json func ExampleWafPolicyClient_Get() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -120,7 +120,7 @@ func ExampleWafPolicyClient_Get() { // } } -// Generated from example definition: 2025-03-01-preview/WafPolicy_List.json +// Generated from example definition: 2025-11-01/WafPolicy_List.json func ExampleWafPolicyClient_NewListPager() { cred, err := azidentity.NewDefaultAzureCredential(nil) if err != nil { @@ -144,7 +144,7 @@ func ExampleWafPolicyClient_NewListPager() { // If the HTTP response code is 200 as defined in example definition, your page structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes. // page = armnginx.WafPolicyClientListResponse{ // DeploymentWafPolicyListResponse: armnginx.DeploymentWafPolicyListResponse{ - // NextLink: to.Ptr("https://management.azure.com/.../wafPolicies?api-version=2025-03-01-preview&$skiptoken=..."), + // NextLink: to.Ptr("https://management.azure.com/.../wafPolicies?api-version=2025-11-01&$skiptoken=..."), // Value: []*armnginx.DeploymentWafPolicyMetadata{ // { // Name: to.Ptr("wafPolicy1"), From f786ef5df9cfbff2fa0f36edc3c779970319fd72 Mon Sep 17 00:00:00 2001 From: azure-sdk Date: Fri, 13 Mar 2026 09:27:00 +0000 Subject: [PATCH 2/2] Configurations: 'specification/nginx/Nginx.Management/tspconfig.yaml', API Version: 2025-11-01, SDK Release Type: stable, and CommitSHA: '747cf4e0938b84f2790eaabd8760bd97d8998aa1' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6007422 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. --- sdk/resourcemanager/nginx/armnginx/CHANGELOG.md | 2 +- sdk/resourcemanager/nginx/armnginx/tsp-location.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/resourcemanager/nginx/armnginx/CHANGELOG.md b/sdk/resourcemanager/nginx/armnginx/CHANGELOG.md index a4d4dff3602f..10ce8ca53746 100644 --- a/sdk/resourcemanager/nginx/armnginx/CHANGELOG.md +++ b/sdk/resourcemanager/nginx/armnginx/CHANGELOG.md @@ -1,6 +1,6 @@ # Release History -## 4.0.0 (2026-03-12) +## 4.0.0 (2026-03-13) ### Breaking Changes - Function `*CertificatesClient.BeginCreateOrUpdate` parameter(s) have been changed from `(ctx context.Context, resourceGroupName string, deploymentName string, certificateName string, options *CertificatesClientBeginCreateOrUpdateOptions)` to `(ctx context.Context, resourceGroupName string, deploymentName string, certificateName string, body Certificate, options *CertificatesClientBeginCreateOrUpdateOptions)` diff --git a/sdk/resourcemanager/nginx/armnginx/tsp-location.yaml b/sdk/resourcemanager/nginx/armnginx/tsp-location.yaml index fcac24e7402d..3e1ac346157a 100644 --- a/sdk/resourcemanager/nginx/armnginx/tsp-location.yaml +++ b/sdk/resourcemanager/nginx/armnginx/tsp-location.yaml @@ -1,4 +1,4 @@ directory: specification/nginx/Nginx.Management -commit: 6f518a19a4f53c8ccb38b839c6076e3b578d795d +commit: 747cf4e0938b84f2790eaabd8760bd97d8998aa1 repo: Azure/azure-rest-api-specs additionalDirectories: