diff --git a/docs/hugo/content/design/images/pls-pe-differences.png b/docs/hugo/content/design/images/pls-pe-differences.png new file mode 100644 index 00000000000..cc12e0a940c Binary files /dev/null and b/docs/hugo/content/design/images/pls-pe-differences.png differ diff --git a/docs/hugo/content/reference/_index.md b/docs/hugo/content/reference/_index.md index 6685988816a..7da8d3094b3 100644 --- a/docs/hugo/content/reference/_index.md +++ b/docs/hugo/content/reference/_index.md @@ -526,6 +526,7 @@ Development of these new resources is complete and they will be available in the | Resource | ARM Version | CRD Version | Supported From | Sample | |----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------|---------------|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [ApplicationSecurityGroup](https://azure.github.io/azure-service-operator/reference/network/v1api20240101/#network.azure.com/v1api20240101.ApplicationSecurityGroup) | 2024-01-01 | v1api20240101 | v2.10.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/network/v1api20240101/v1api20240101_applicationsecuritygroup.yaml) | | [DnsForwardingRuleSetsVirtualNetworkLink](https://azure.github.io/azure-service-operator/reference/network/v1api20220701/#network.azure.com/v1api20220701.DnsForwardingRuleSetsVirtualNetworkLink) | 2022-07-01 | v1api20220701 | v2.10.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/network/v1api20220701/v1api20220701_dnsforwardingrulesetsvirtualnetworklink.yaml) | | [WebApplicationFirewallPolicy](https://azure.github.io/azure-service-operator/reference/network/v1api20240101/#network.azure.com/v1api20240101.WebApplicationFirewallPolicy) | 2024-01-01 | v1api20240101 | v2.10.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/network/v1api20220701/v1api20240101_webapplicationfirewallpolicy.yaml) | diff --git a/docs/hugo/content/reference/kubernetesconfiguration/v1api20230501.md b/docs/hugo/content/reference/kubernetesconfiguration/v1api20230501.md index a84d60f66fd..688589aa2c9 100644 --- a/docs/hugo/content/reference/kubernetesconfiguration/v1api20230501.md +++ b/docs/hugo/content/reference/kubernetesconfiguration/v1api20230501.md @@ -22,13 +22,13 @@ Resource Types:
-(Appears on:ErrorDetail_STATUS, ErrorDetail_STATUS_Unrolled) +(Appears on:FluxConfiguration_Spec)
The resource management error additional info.
+Parameters to reconcile to the AzureBlob source kind type.
-info + accountKey - -map[string]k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON + +genruntime.SecretReference |
- Info: The additional info. +AccountKey: The account key (shared key) to access the storage account |
-type + containerName string |
- Type: The additional info type. +ContainerName: The Azure Blob container name to sync from the url endpoint for the flux configuration. |
-(Appears on:ErrorDetail_STATUS_ARM, ErrorDetail_STATUS_Unrolled_ARM) -
-The resource management error additional info.
-Field | -Description | -
---|---|
-info + localAuthRef - -map[string]k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON - +string |
- Info: The additional info. +LocalAuthRef: Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the +managed or user-provided configuration secrets. |
-type + managedIdentity -string + +ManagedIdentityDefinition + |
- Type: The additional info type. +ManagedIdentity: Parameters to authenticate using a Managed Identity. |
-(Appears on:Extension_STATUS) -
-The error detail.
-Field | -Description | -
---|---|
-additionalInfo + sasToken - -[]ErrorAdditionalInfo_STATUS + +genruntime.SecretReference |
- AdditionalInfo: The error additional info. +SasToken: The Shared Access token to access the storage container |
-code + servicePrincipal -string + +ServicePrincipalDefinition + |
- Code: The error code. +ServicePrincipal: Parameters to authenticate using Service Principal. |
-details + syncIntervalInSeconds - -[]ErrorDetail_STATUS_Unrolled - +int |
- Details: The error details. +SyncIntervalInSeconds: The interval at which to re-reconcile the cluster Azure Blob source with the remote. |
-message + timeoutInSeconds -string +int |
- Message: The error message. +TimeoutInSeconds: The maximum time to attempt to reconcile the cluster Azure Blob source with the remote. |
-target + url string |
- Target: The error target. +Url: The URL to sync for the flux configuration Azure Blob storage account. |
-(Appears on:Extension_Properties_STATUS_ARM) +(Appears on:FluxConfiguration_Properties_Spec_ARM)
The error detail.
+Parameters to reconcile to the AzureBlob source kind type.
-additionalInfo + accountKey - -[]ErrorAdditionalInfo_STATUS_ARM - +string |
- AdditionalInfo: The error additional info. +AccountKey: The account key (shared key) to access the storage account |
-code + containerName string |
- Code: The error code. +ContainerName: The Azure Blob container name to sync from the url endpoint for the flux configuration. |
-details + localAuthRef - -[]ErrorDetail_STATUS_Unrolled_ARM - +string |
- Details: The error details. +LocalAuthRef: Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the +managed or user-provided configuration secrets. |
-message + managedIdentity -string + +ManagedIdentityDefinition_ARM + |
- Message: The error message. +ManagedIdentity: Parameters to authenticate using a Managed Identity. |
-target + sasToken string |
- Target: The error target. +SasToken: The Shared Access token to access the storage container |
-(Appears on:ErrorDetail_STATUS) -
-Field | -Description | -
---|---|
-additionalInfo + servicePrincipal - -[]ErrorAdditionalInfo_STATUS + +ServicePrincipalDefinition_ARM |
- AdditionalInfo: The error additional info. +ServicePrincipal: Parameters to authenticate using Service Principal. |
-code + syncIntervalInSeconds -string +int |
- Code: The error code. +SyncIntervalInSeconds: The interval at which to re-reconcile the cluster Azure Blob source with the remote. |
-message + timeoutInSeconds -string +int |
- Message: The error message. +TimeoutInSeconds: The maximum time to attempt to reconcile the cluster Azure Blob source with the remote. |
-target + url string |
- Target: The error target. +Url: The URL to sync for the flux configuration Azure Blob storage account. |
-(Appears on:ErrorDetail_STATUS_ARM) +(Appears on:FluxConfiguration_STATUS)
Parameters to reconcile to the AzureBlob source kind type.
-additionalInfo + containerName - -[]ErrorAdditionalInfo_STATUS_ARM - +string |
- AdditionalInfo: The error additional info. +ContainerName: The Azure Blob container name to sync from the url endpoint for the flux configuration. |
-code + localAuthRef string |
- Code: The error code. +LocalAuthRef: Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the +managed or user-provided configuration secrets. |
-message + managedIdentity -string + +ManagedIdentityDefinition_STATUS + |
- Message: The error message. +ManagedIdentity: Parameters to authenticate using a Managed Identity. |
-target + servicePrincipal + + +ServicePrincipalDefinition_STATUS + + + |
+
+ ServicePrincipal: Parameters to authenticate using Service Principal. + |
+
+syncIntervalInSeconds + +int + + |
+
+ SyncIntervalInSeconds: The interval at which to re-reconcile the cluster Azure Blob source with the remote. + |
+
+timeoutInSeconds + +int + + |
+
+ TimeoutInSeconds: The maximum time to attempt to reconcile the cluster Azure Blob source with the remote. + |
+
+url string |
- Target: The error target. +Url: The URL to sync for the flux configuration Azure Blob storage account. |
+(Appears on:FluxConfiguration_Properties_STATUS_ARM) +
Generator information: -- Generated from: /kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/stable/2023-05-01/extensions.json -- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensions/{extensionName}p> +
Parameters to reconcile to the AzureBlob source kind type.
-metadata + containerName - -Kubernetes meta/v1.ObjectMeta - +string |
-Refer to the Kubernetes API documentation for the fields of the
-metadata field.
+ContainerName: The Azure Blob container name to sync from the url endpoint for the flux configuration. |
||||||||||||||||||||||||||||||||
-spec + localAuthRef - -Extension_Spec - +string |
- - -
BucketDefinition +++(Appears on:FluxConfiguration_Spec) + +
+
+Parameters to reconcile to the Bucket source kind type. +
BucketDefinition_ARM +++(Appears on:FluxConfiguration_Properties_Spec_ARM) + +
+
+Parameters to reconcile to the Bucket source kind type. +
BucketName: The bucket name to sync from the url endpoint for the flux configuration. |
||||||||||||||||||||||||||||||||
-status + insecure - -Extension_STATUS - +bool |
+ Insecure: Specify whether to use insecure communication when puling data from the S3 bucket. |
-(Appears on:ExtensionOperatorSpec) -
-Field | -Description | +
+localAuthRef + +string + + |
+
+ LocalAuthRef: Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the +managed or user-provided configuration secrets. + |
---|---|---|---|
-principalId + syncIntervalInSeconds - -genruntime.ConfigMapDestination - +int |
- PrincipalId: indicates where the PrincipalId config map should be placed. If omitted, no config map will be created. +SyncIntervalInSeconds: The interval at which to re-reconcile the cluster bucket source with the remote. |
-(Appears on:Extension_Spec) -
-Details for configuring operator behavior. Fields in this struct are interpreted by the operator directly rather than being passed to Azure
-Field | -Description | +
+timeoutInSeconds + +int + + |
+
+ TimeoutInSeconds: The maximum time to attempt to reconcile the cluster bucket source with the remote. + |
---|---|---|---|
-configMaps + url - -ExtensionOperatorConfigMaps - +string |
- ConfigMaps: configures where to place operator written ConfigMaps. +Url: The URL to sync for the flux configuration S3 bucket. |
string
alias)-(Appears on:ExtensionStatus_STATUS) -
-Value | -Description | -
---|---|
"Error" |
-- |
"Information" |
-- |
"Warning" |
-- |
string
alias)-(Appears on:ExtensionStatus_STATUS_ARM) -
-Value | -Description | -
---|---|
"Error" |
-- |
"Information" |
-- |
"Warning" |
-- |
-(Appears on:Extension_STATUS) +(Appears on:FluxConfiguration_STATUS)
Status from the extension.
+Parameters to reconcile to the Bucket source kind type.
-code + bucketName string |
- Code: Status code provided by the Extension +BucketName: The bucket name to sync from the url endpoint for the flux configuration. |
-displayStatus + insecure + +bool + + |
+
+ Insecure: Specify whether to use insecure communication when puling data from the S3 bucket. + |
+
+localAuthRef string |
- DisplayStatus: Short description of status of the extension. +LocalAuthRef: Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the +managed or user-provided configuration secrets. |
-level + syncIntervalInSeconds - -ExtensionStatus_Level_STATUS - +int |
- Level: Level of the status. +SyncIntervalInSeconds: The interval at which to re-reconcile the cluster bucket source with the remote. |
-message + timeoutInSeconds -string +int |
- Message: Detailed message of the status from the Extension. +TimeoutInSeconds: The maximum time to attempt to reconcile the cluster bucket source with the remote. |
-time + url string |
- Time: DateLiteral (per ISO8601) noting the time of installation status. +Url: The URL to sync for the flux configuration S3 bucket. |
-(Appears on:Extension_Properties_STATUS_ARM) +(Appears on:FluxConfiguration_Properties_STATUS_ARM)
Status from the extension.
+Parameters to reconcile to the Bucket source kind type.
-code + bucketName string |
- Code: Status code provided by the Extension +BucketName: The bucket name to sync from the url endpoint for the flux configuration. |
-displayStatus + insecure + +bool + + |
+
+ Insecure: Specify whether to use insecure communication when puling data from the S3 bucket. + |
+
+localAuthRef string |
- DisplayStatus: Short description of status of the extension. +LocalAuthRef: Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the +managed or user-provided configuration secrets. |
-level + syncIntervalInSeconds - -ExtensionStatus_Level_STATUS_ARM - +int |
- Level: Level of the status. +SyncIntervalInSeconds: The interval at which to re-reconcile the cluster bucket source with the remote. |
-message + timeoutInSeconds -string +int |
- Message: Detailed message of the status from the Extension. +TimeoutInSeconds: The maximum time to attempt to reconcile the cluster bucket source with the remote. |
-time + url string |
- Time: DateLiteral (per ISO8601) noting the time of installation status. +Url: The URL to sync for the flux configuration S3 bucket. |
-(Appears on:Extension_STATUS) +(Appears on:ErrorDetail_STATUS, ErrorDetail_STATUS_Unrolled)
The resource management error additional info.
-principalId - -string - - |
-
- PrincipalId: The principal ID of resource identity. - |
-
-tenantId + info -string + +map[string]k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON + |
- TenantId: The tenant ID of resource. +Info: The additional info. |
type - -Extension_Properties_AksAssignedIdentity_Type_STATUS - +string |
- Type: The identity type. +Type: The additional info type. |
-(Appears on:Extension_Properties_STATUS_ARM) +(Appears on:ErrorDetail_STATUS_ARM, ErrorDetail_STATUS_Unrolled_ARM)
The resource management error additional info.
-principalId - -string - - |
-
- PrincipalId: The principal ID of resource identity. - |
-
-tenantId + info -string + +map[string]k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON + |
- TenantId: The tenant ID of resource. +Info: The additional info. |
type - -Extension_Properties_AksAssignedIdentity_Type_STATUS_ARM - +string |
- Type: The identity type. +Type: The additional info type. |
+(Appears on:Extension_STATUS) +
+The error detail.
+Field | +Description | +
---|---|
+additionalInfo + + +[]ErrorAdditionalInfo_STATUS + + + |
+
+ AdditionalInfo: The error additional info. + |
+
+code + +string + + |
+
+ Code: The error code. + |
+
+details + + +[]ErrorDetail_STATUS_Unrolled + + + |
+
+ Details: The error details. + |
+
+message + +string + + |
+
+ Message: The error message. + |
+
+target + +string + + |
+
+ Target: The error target. + |
+
+(Appears on:Extension_Properties_STATUS_ARM) +
+The error detail.
+Field | +Description | +
---|---|
+additionalInfo + + +[]ErrorAdditionalInfo_STATUS_ARM + + + |
+
+ AdditionalInfo: The error additional info. + |
+
+code + +string + + |
+
+ Code: The error code. + |
+
+details + + +[]ErrorDetail_STATUS_Unrolled_ARM + + + |
+
+ Details: The error details. + |
+
+message + +string + + |
+
+ Message: The error message. + |
+
+target + +string + + |
+
+ Target: The error target. + |
+
+(Appears on:ErrorDetail_STATUS) +
+Field | +Description | +
---|---|
+additionalInfo + + +[]ErrorAdditionalInfo_STATUS + + + |
+
+ AdditionalInfo: The error additional info. + |
+
+code + +string + + |
+
+ Code: The error code. + |
+
+message + +string + + |
+
+ Message: The error message. + |
+
+target + +string + + |
+
+ Target: The error target. + |
+
+(Appears on:ErrorDetail_STATUS_ARM) +
+Field | +Description | +
---|---|
+additionalInfo + + +[]ErrorAdditionalInfo_STATUS_ARM + + + |
+
+ AdditionalInfo: The error additional info. + |
+
+code + +string + + |
+
+ Code: The error code. + |
+
+message + +string + + |
+
+ Message: The error message. + |
+
+target + +string + + |
+
+ Target: The error target. + |
+
Generator information: +- Generated from: /kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/stable/2023-05-01/extensions.json +- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/extensions/{extensionName}p> +
Field | +Description | +||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||||||||||||||||||||
+spec + + +Extension_Spec + + + |
+
+ + +
|
+||||||||||||||||||||||||||||
+status + + +Extension_STATUS + + + |
++ | +
+(Appears on:ExtensionOperatorSpec) +
+Field | +Description | +
---|---|
+principalId + + +genruntime.ConfigMapDestination + + + |
+
+ PrincipalId: indicates where the PrincipalId config map should be placed. If omitted, no config map will be created. + |
+
+(Appears on:Extension_Spec) +
+Details for configuring operator behavior. Fields in this struct are interpreted by the operator directly rather than being passed to Azure
+Field | +Description | +
---|---|
+configMaps + + +ExtensionOperatorConfigMaps + + + |
+
+ ConfigMaps: configures where to place operator written ConfigMaps. + |
+
string
alias)+(Appears on:ExtensionStatus_STATUS) +
+Value | +Description | +
---|---|
"Error" |
++ |
"Information" |
++ |
"Warning" |
++ |
string
alias)+(Appears on:ExtensionStatus_STATUS_ARM) +
+Value | +Description | +
---|---|
"Error" |
++ |
"Information" |
++ |
"Warning" |
++ |
+(Appears on:Extension_STATUS) +
+Status from the extension.
+Field | +Description | +
---|---|
+code + +string + + |
+
+ Code: Status code provided by the Extension + |
+
+displayStatus + +string + + |
+
+ DisplayStatus: Short description of status of the extension. + |
+
+level + + +ExtensionStatus_Level_STATUS + + + |
+
+ Level: Level of the status. + |
+
+message + +string + + |
+
+ Message: Detailed message of the status from the Extension. + |
+
+time + +string + + |
+
+ Time: DateLiteral (per ISO8601) noting the time of installation status. + |
+
+(Appears on:Extension_Properties_STATUS_ARM) +
+Status from the extension.
+Field | +Description | +
---|---|
+code + +string + + |
+
+ Code: Status code provided by the Extension + |
+
+displayStatus + +string + + |
+
+ DisplayStatus: Short description of status of the extension. + |
+
+level + + +ExtensionStatus_Level_STATUS_ARM + + + |
+
+ Level: Level of the status. + |
+
+message + +string + + |
+
+ Message: Detailed message of the status from the Extension. + |
+
+time + +string + + |
+
+ Time: DateLiteral (per ISO8601) noting the time of installation status. + |
+
+(Appears on:Extension_STATUS) +
+Field | +Description | +
---|---|
+principalId + +string + + |
+
+ PrincipalId: The principal ID of resource identity. + |
+
+tenantId + +string + + |
+
+ TenantId: The tenant ID of resource. + |
+
+type + + +Extension_Properties_AksAssignedIdentity_Type_STATUS + + + |
+
+ Type: The identity type. + |
+
+(Appears on:Extension_Properties_STATUS_ARM) +
+Field | +Description | +
---|---|
+principalId + +string + + |
+
+ PrincipalId: The principal ID of resource identity. + |
+
+tenantId + +string + + |
+
+ TenantId: The tenant ID of resource. + |
+
+type + + +Extension_Properties_AksAssignedIdentity_Type_STATUS_ARM + + + |
+
+ Type: The identity type. + |
+
+(Appears on:Extension_Spec) +
+Field | +Description | +
---|---|
+type + + +Extension_Properties_AksAssignedIdentity_Type_Spec + + + |
+
+ Type: The identity type. + |
+
+(Appears on:Extension_Properties_Spec_ARM) +
+Field | +Description | +
---|---|
+type + + +Extension_Properties_AksAssignedIdentity_Type_Spec_ARM + + + |
+
+ Type: The identity type. + |
+
string
alias)+(Appears on:Extension_Properties_AksAssignedIdentity_STATUS) +
+Value | +Description | +
---|---|
"SystemAssigned" |
++ |
"UserAssigned" |
++ |
string
alias)+(Appears on:Extension_Properties_AksAssignedIdentity_STATUS_ARM) +
+Value | +Description | +
---|---|
"SystemAssigned" |
++ |
"UserAssigned" |
++ |
string
alias)+(Appears on:Extension_Properties_AksAssignedIdentity_Spec) +
+Value | +Description | +
---|---|
"SystemAssigned" |
++ |
"UserAssigned" |
++ |
string
alias)+(Appears on:Extension_Properties_AksAssignedIdentity_Spec_ARM) +
+Value | +Description | +
---|---|
"SystemAssigned" |
++ |
"UserAssigned" |
++ |
+(Appears on:Extension_STATUS_ARM) +
+Field | +Description | +
---|---|
+aksAssignedIdentity + + +Extension_Properties_AksAssignedIdentity_STATUS_ARM + + + |
+
+ AksAssignedIdentity: Identity of the Extension resource in an AKS cluster + |
+
+autoUpgradeMinorVersion + +bool + + |
+
+ AutoUpgradeMinorVersion: Flag to note if this extension participates in auto upgrade of minor version, or not. + |
+
+configurationProtectedSettings + +map[string]string + + |
+
+ ConfigurationProtectedSettings: Configuration settings that are sensitive, as name-value pairs for configuring this +extension. + |
+
+configurationSettings + +map[string]string + + |
+
+ ConfigurationSettings: Configuration settings, as name-value pairs for configuring this extension. + |
+
+currentVersion + +string + + |
+
+ CurrentVersion: Currently installed version of the extension. + |
+
+customLocationSettings + +map[string]string + + |
+
+ CustomLocationSettings: Custom Location settings properties. + |
+
+errorInfo + + +ErrorDetail_STATUS_ARM + + + |
+
+ ErrorInfo: Error information from the Agent - e.g. errors during installation. + |
+
+extensionType + +string + + |
+
+ ExtensionType: Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types +registered with Microsoft.KubernetesConfiguration by the Extension publisher. + |
+
+isSystemExtension + +bool + + |
+
+ IsSystemExtension: Flag to note if this extension is a system extension + |
+
+packageUri + +string + + |
+
+ PackageUri: Uri of the Helm package + |
+
+provisioningState + + +ProvisioningStateDefinition_STATUS_ARM + + + |
+
+ ProvisioningState: Status of installation of this extension. + |
+
+releaseTrain + +string + + |
+
+ ReleaseTrain: ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if +autoUpgradeMinorVersion is ‘true’. + |
+
+scope + + +Scope_STATUS_ARM + + + |
+
+ Scope: Scope at which the extension is installed. + |
+
+statuses + + +[]ExtensionStatus_STATUS_ARM + + + |
+
+ Statuses: Status from this extension. + |
+
+version + +string + + |
+
+ Version: User-specified version of the extension for this extension to ‘pin’. To use ‘version’, autoUpgradeMinorVersion +must be ‘false’. + |
+
+(Appears on:Extension_Spec_ARM) +
+Field | +Description | +
---|---|
+aksAssignedIdentity + + +Extension_Properties_AksAssignedIdentity_Spec_ARM + + + |
+
+ AksAssignedIdentity: Identity of the Extension resource in an AKS cluster + |
+
+autoUpgradeMinorVersion + +bool + + |
+
+ AutoUpgradeMinorVersion: Flag to note if this extension participates in auto upgrade of minor version, or not. + |
+
+configurationProtectedSettings + +map[string]string + + |
+
+ ConfigurationProtectedSettings: Configuration settings that are sensitive, as name-value pairs for configuring this +extension. + |
+
+configurationSettings + +map[string]string + + |
+
+ ConfigurationSettings: Configuration settings, as name-value pairs for configuring this extension. + |
+
+extensionType + +string + + |
+
+ ExtensionType: Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types +registered with Microsoft.KubernetesConfiguration by the Extension publisher. + |
+
+releaseTrain + +string + + |
+
+ ReleaseTrain: ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if +autoUpgradeMinorVersion is ‘true’. + |
+
+scope + + +Scope_ARM + + + |
+
+ Scope: Scope at which the extension is installed. + |
+
+version + +string + + |
+
+ Version: User-specified version of the extension for this extension to ‘pin’. To use ‘version’, autoUpgradeMinorVersion +must be ‘false’. + |
+
+(Appears on:Extension) +
+The Extension object.
+Field | +Description | +
---|---|
+aksAssignedIdentity + + +Extension_Properties_AksAssignedIdentity_STATUS + + + |
+
+ AksAssignedIdentity: Identity of the Extension resource in an AKS cluster + |
+
+autoUpgradeMinorVersion + +bool + + |
+
+ AutoUpgradeMinorVersion: Flag to note if this extension participates in auto upgrade of minor version, or not. + |
+
+conditions + + +[]genruntime/conditions.Condition + + + |
+
+ Conditions: The observed state of the resource + |
+
+configurationProtectedSettings + +map[string]string + + |
+
+ ConfigurationProtectedSettings: Configuration settings that are sensitive, as name-value pairs for configuring this +extension. + |
+
+configurationSettings + +map[string]string + + |
+
+ ConfigurationSettings: Configuration settings, as name-value pairs for configuring this extension. + |
+
+currentVersion + +string + + |
+
+ CurrentVersion: Currently installed version of the extension. + |
+
+customLocationSettings + +map[string]string + + |
+
+ CustomLocationSettings: Custom Location settings properties. + |
+
+errorInfo + + +ErrorDetail_STATUS + + + |
+
+ ErrorInfo: Error information from the Agent - e.g. errors during installation. + |
+
+extensionType + +string + + |
+
+ ExtensionType: Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types +registered with Microsoft.KubernetesConfiguration by the Extension publisher. + |
+
+id + +string + + |
+
+ Id: Fully qualified resource ID for the resource. Ex - +/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}p> + |
+
+identity + + +Identity_STATUS + + + |
+
+ Identity: Identity of the Extension resource + |
+
+isSystemExtension + +bool + + |
+
+ IsSystemExtension: Flag to note if this extension is a system extension + |
+
+name + +string + + |
+
+ Name: The name of the resource + |
+
+packageUri + +string + + |
+
+ PackageUri: Uri of the Helm package + |
+
+plan + + +Plan_STATUS + + + |
+
+ Plan: The plan information. + |
+
+provisioningState + + +ProvisioningStateDefinition_STATUS + + + |
+
+ ProvisioningState: Status of installation of this extension. + |
+
+releaseTrain + +string + + |
+
+ ReleaseTrain: ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if +autoUpgradeMinorVersion is ‘true’. + |
+
+scope + + +Scope_STATUS + + + |
+
+ Scope: Scope at which the extension is installed. + |
+
+statuses + + +[]ExtensionStatus_STATUS + + + |
+
+ Statuses: Status from this extension. + |
+
+systemData + + +SystemData_STATUS + + + |
+
+ SystemData: Top level metadata +https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources + |
+
+type + +string + + |
+
+ Type: The type of the resource. E.g. “Microsoft.Compute/virtualMachines” or “Microsoft.Storage/storageAccounts” + |
+
+version + +string + + |
+
+ Version: User-specified version of the extension for this extension to ‘pin’. To use ‘version’, autoUpgradeMinorVersion +must be ‘false’. + |
+
The Extension object.
+Field | +Description | +
---|---|
+id + +string + + |
+
+ Id: Fully qualified resource ID for the resource. Ex - +/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}p> + |
+
+identity + + +Identity_STATUS_ARM + + + |
+
+ Identity: Identity of the Extension resource + |
+
+name + +string + + |
+
+ Name: The name of the resource + |
+
+plan + + +Plan_STATUS_ARM + + + |
+
+ Plan: The plan information. + |
+
+properties + + +Extension_Properties_STATUS_ARM + + + |
+
+ Properties: Properties of an Extension resource + |
+
+systemData + + +SystemData_STATUS_ARM + + + |
+
+ SystemData: Top level metadata +https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources + |
+
+type + +string + + |
+
+ Type: The type of the resource. E.g. “Microsoft.Compute/virtualMachines” or “Microsoft.Storage/storageAccounts” + |
+
+(Appears on:Extension) +
+Field | +Description | +
---|---|
+aksAssignedIdentity + + +Extension_Properties_AksAssignedIdentity_Spec + + + |
+
+ AksAssignedIdentity: Identity of the Extension resource in an AKS cluster + |
+
+autoUpgradeMinorVersion + +bool + + |
+
+ AutoUpgradeMinorVersion: Flag to note if this extension participates in auto upgrade of minor version, or not. + |
+
+azureName + +string + + |
+
+ AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it +doesn’t have to be. + |
+
+configurationProtectedSettings + + +genruntime.SecretMapReference + + + |
+
+ ConfigurationProtectedSettings: Configuration settings that are sensitive, as name-value pairs for configuring this +extension. + |
+
+configurationSettings + +map[string]string + + |
+
+ ConfigurationSettings: Configuration settings, as name-value pairs for configuring this extension. + |
+
+extensionType + +string + + |
+
+ ExtensionType: Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types +registered with Microsoft.KubernetesConfiguration by the Extension publisher. + |
+
+identity + + +Identity + + + |
+
+ Identity: Identity of the Extension resource + |
+
+operatorSpec + + +ExtensionOperatorSpec + + + |
+
+ OperatorSpec: The specification for configuring operator behavior. This field is interpreted by the operator and not +passed directly to Azure + |
+
+owner + + +genruntime.ArbitraryOwnerReference + + + |
+
+ Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also +controls the resources lifecycle. When the owner is deleted the resource will also be deleted. This resource is an +extension resource, which means that any other Azure resource can be its owner. + |
+
+plan + + +Plan + + + |
+
+ Plan: The plan information. + |
+
+releaseTrain + +string + + |
+
+ ReleaseTrain: ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if +autoUpgradeMinorVersion is ‘true’. + |
+
+scope + + +Scope + + + |
+
+ Scope: Scope at which the extension is installed. + |
+
+systemData + + +SystemData + + + |
+
+ SystemData: Top level metadata +https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources + |
+
+version + +string + + |
+
+ Version: User-specified version of the extension for this extension to ‘pin’. To use ‘version’, autoUpgradeMinorVersion +must be ‘false’. + |
+
Field | +Description | +
---|---|
+identity + + +Identity_ARM + + + |
+
+ Identity: Identity of the Extension resource + |
+
+name + +string + + |
++ | +
+plan + + +Plan_ARM + + + |
+
+ Plan: The plan information. + |
+
+properties + + +Extension_Properties_Spec_ARM + + + |
+
+ Properties: Properties of an Extension resource + |
+
+systemData + + +SystemData_ARM + + + |
+
+ SystemData: Top level metadata +https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources + |
+
string
alias)+(Appears on:FluxConfiguration_STATUS, ObjectStatusDefinition_STATUS) +
+Compliance state of the cluster object.
+Value | +Description | +
---|---|
"Compliant" |
++ |
"Non-Compliant" |
++ |
"Pending" |
++ |
"Suspended" |
++ |
"Unknown" |
++ |
string
alias)+(Appears on:FluxConfiguration_Properties_STATUS_ARM, ObjectStatusDefinition_STATUS_ARM) +
+Compliance state of the cluster object.
+Value | +Description | +
---|---|
"Compliant" |
++ |
"Non-Compliant" |
++ |
"Pending" |
++ |
"Suspended" |
++ |
"Unknown" |
++ |
Generator information: +- Generated from: /kubernetesconfiguration/resource-manager/Microsoft.KubernetesConfiguration/stable/2023-05-01/fluxconfiguration.json +- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{clusterRp}/{clusterResourceName}/{clusterName}/providers/Microsoft.KubernetesConfiguration/fluxConfigurations/{fluxConfigurationName}p> +
Field | +Description | +||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||||||||||||||||||||
+spec + + +FluxConfiguration_Spec + + + |
+
+ + +
|
+||||||||||||||||||||||||||
+status + + +FluxConfiguration_STATUS + + + |
++ | +
+(Appears on:FluxConfiguration_STATUS_ARM) +
+Field | +Description | +
---|---|
+azureBlob + + +AzureBlobDefinition_STATUS_ARM + + + |
+
+ AzureBlob: Parameters to reconcile to the AzureBlob source kind type. + |
+
+bucket + + +BucketDefinition_STATUS_ARM + + + |
+
+ Bucket: Parameters to reconcile to the Bucket source kind type. + |
+
+complianceState + + +FluxComplianceStateDefinition_STATUS_ARM + + + |
+
+ ComplianceState: Combined status of the Flux Kubernetes resources created by the fluxConfiguration or created by the +managed objects. + |
+
+configurationProtectedSettings + +map[string]string + + |
+
+ ConfigurationProtectedSettings: Key-value pairs of protected configuration settings for the configuration + |
+
+errorMessage + +string + + |
+
+ ErrorMessage: Error message returned to the user in the case of provisioning failure. + |
+
+gitRepository + + +GitRepositoryDefinition_STATUS_ARM + + + |
+
+ GitRepository: Parameters to reconcile to the GitRepository source kind type. + |
+
+kustomizations + + +map[string]./api/kubernetesconfiguration/v1api20230501.KustomizationDefinition_STATUS_ARM + + + |
+
+ Kustomizations: Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster. + |
+
+namespace + +string + + |
+
+ Namespace: The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, +hyphen and period only. + |
+
+provisioningState + + +ProvisioningStateDefinition_STATUS_ARM + + + |
+
+ ProvisioningState: Status of the creation of the fluxConfiguration. + |
+
+reconciliationWaitDuration + +string + + |
+
+ ReconciliationWaitDuration: Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D + |
+
+repositoryPublicKey + +string + + |
+
+ RepositoryPublicKey: Public Key associated with this fluxConfiguration (either generated within the cluster or provided +by the user). + |
+
+scope + + +ScopeDefinition_STATUS_ARM + + + |
+
+ Scope: Scope at which the operator will be installed. + |
+
+sourceKind + + +SourceKindDefinition_STATUS_ARM + + + |
+
+ SourceKind: Source Kind to pull the configuration data from. + |
+
+sourceSyncedCommitId + +string + + |
+
+ SourceSyncedCommitId: Branch and/or SHA of the source commit synced with the cluster. + |
+
+sourceUpdatedAt + +string + + |
+
+ SourceUpdatedAt: Datetime the fluxConfiguration synced its source on the cluster. + |
+
+statusUpdatedAt + +string + + |
+
+ StatusUpdatedAt: Datetime the fluxConfiguration synced its status on the cluster with Azure. + |
+
+statuses + + +[]ObjectStatusDefinition_STATUS_ARM + + + |
+
+ Statuses: Statuses of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects +provisioned by the fluxConfiguration. + |
+
+suspend + +bool + + |
+
+ Suspend: Whether this configuration should suspend its reconciliation of its kustomizations and sources. + |
+
+waitForReconciliation + +bool + + |
+
+ WaitForReconciliation: Whether flux configuration deployment should wait for cluster to reconcile the kustomizations. + |
+
+(Appears on:FluxConfiguration_Spec_ARM) +
+Field | +Description | +
---|---|
+azureBlob + + +AzureBlobDefinition_ARM + + + |
+
+ AzureBlob: Parameters to reconcile to the AzureBlob source kind type. + |
+
+bucket + + +BucketDefinition_ARM + + + |
+
+ Bucket: Parameters to reconcile to the Bucket source kind type. + |
+
+configurationProtectedSettings + +map[string]string + + |
+
+ ConfigurationProtectedSettings: Key-value pairs of protected configuration settings for the configuration + |
+
+gitRepository + + +GitRepositoryDefinition_ARM + + + |
+
+ GitRepository: Parameters to reconcile to the GitRepository source kind type. + |
+
+kustomizations + + +map[string]./api/kubernetesconfiguration/v1api20230501.KustomizationDefinition_ARM + + + |
+
+ Kustomizations: Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster. + |
+
+namespace + +string + + |
+
+ Namespace: The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, +hyphen and period only. + |
+
+reconciliationWaitDuration + +string + + |
+
+ ReconciliationWaitDuration: Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D + |
+
+scope + + +ScopeDefinition_ARM + + + |
+
+ Scope: Scope at which the operator will be installed. + |
+
+sourceKind + + +SourceKindDefinition_ARM + + + |
+
+ SourceKind: Source Kind to pull the configuration data from. + |
+
+suspend + +bool + + |
+
+ Suspend: Whether this configuration should suspend its reconciliation of its kustomizations and sources. + |
+
+waitForReconciliation + +bool + + |
+
+ WaitForReconciliation: Whether flux configuration deployment should wait for cluster to reconcile the kustomizations. + |
+
+(Appears on:FluxConfiguration) +
+The Flux Configuration object returned in Get & Put response.
+Field | +Description | +
---|---|
+azureBlob + + +AzureBlobDefinition_STATUS + + + |
+
+ AzureBlob: Parameters to reconcile to the AzureBlob source kind type. + |
+
+bucket + + +BucketDefinition_STATUS + + + |
+
+ Bucket: Parameters to reconcile to the Bucket source kind type. + |
+
+complianceState + + +FluxComplianceStateDefinition_STATUS + + + |
+
+ ComplianceState: Combined status of the Flux Kubernetes resources created by the fluxConfiguration or created by the +managed objects. + |
+
+conditions + + +[]genruntime/conditions.Condition + + + |
+
+ Conditions: The observed state of the resource + |
+
+configurationProtectedSettings + +map[string]string + + |
+
+ ConfigurationProtectedSettings: Key-value pairs of protected configuration settings for the configuration + |
+
+errorMessage + +string + + |
+
+ ErrorMessage: Error message returned to the user in the case of provisioning failure. + |
+
+gitRepository + + +GitRepositoryDefinition_STATUS + + + |
+
+ GitRepository: Parameters to reconcile to the GitRepository source kind type. + |
+
+id + +string + + |
+
+ Id: Fully qualified resource ID for the resource. Ex - +/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}p> + |
+
+kustomizations + + +map[string]./api/kubernetesconfiguration/v1api20230501.KustomizationDefinition_STATUS + + + |
+
+ Kustomizations: Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster. + |
+
+name + +string + + |
+
+ Name: The name of the resource + |
+
+namespace + +string + + |
+
+ Namespace: The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, +hyphen and period only. + |
+
+provisioningState + + +ProvisioningStateDefinition_STATUS + + + |
+
+ ProvisioningState: Status of the creation of the fluxConfiguration. + |
+
+reconciliationWaitDuration + +string + + |
+
+ ReconciliationWaitDuration: Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D + |
+
+repositoryPublicKey + +string + + |
+
+ RepositoryPublicKey: Public Key associated with this fluxConfiguration (either generated within the cluster or provided +by the user). + |
+
+scope + + +ScopeDefinition_STATUS + + + |
+
+ Scope: Scope at which the operator will be installed. + |
+
+sourceKind + + +SourceKindDefinition_STATUS + + + |
+
+ SourceKind: Source Kind to pull the configuration data from. + |
+
+sourceSyncedCommitId + +string + + |
+
+ SourceSyncedCommitId: Branch and/or SHA of the source commit synced with the cluster. + |
+
+sourceUpdatedAt + +string + + |
+
+ SourceUpdatedAt: Datetime the fluxConfiguration synced its source on the cluster. + |
+
+statusUpdatedAt + +string + + |
+
+ StatusUpdatedAt: Datetime the fluxConfiguration synced its status on the cluster with Azure. + |
+
+statuses + + +[]ObjectStatusDefinition_STATUS + + + |
+
+ Statuses: Statuses of the Flux Kubernetes resources created by the fluxConfiguration or created by the managed objects +provisioned by the fluxConfiguration. + |
+
+suspend + +bool + + |
+
+ Suspend: Whether this configuration should suspend its reconciliation of its kustomizations and sources. + |
+
+type + +string + + |
+
+ Type: The type of the resource. E.g. “Microsoft.Compute/virtualMachines” or “Microsoft.Storage/storageAccounts” + |
+
+waitForReconciliation + +bool + + |
+
+ WaitForReconciliation: Whether flux configuration deployment should wait for cluster to reconcile the kustomizations. + |
+
The Flux Configuration object returned in Get & Put response.
+Field | +Description | +
---|---|
+id + +string + + |
+
+ Id: Fully qualified resource ID for the resource. Ex - +/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}p> + |
+
+name + +string + + |
+
+ Name: The name of the resource + |
+
+properties + + +FluxConfiguration_Properties_STATUS_ARM + + + |
+
+ Properties: Properties to create a Flux Configuration resource + |
+
+type + +string + + |
+
+ Type: The type of the resource. E.g. “Microsoft.Compute/virtualMachines” or “Microsoft.Storage/storageAccounts” + |
+
+(Appears on:FluxConfiguration) +
+Field | +Description | +
---|---|
+azureBlob + + +AzureBlobDefinition + + + |
+
+ AzureBlob: Parameters to reconcile to the AzureBlob source kind type. + |
+
+azureName + +string + + |
+
+ AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it +doesn’t have to be. + |
+
+bucket + + +BucketDefinition + + + |
+
+ Bucket: Parameters to reconcile to the Bucket source kind type. + |
+
+configurationProtectedSettings + + +genruntime.SecretMapReference + + + |
+
+ ConfigurationProtectedSettings: Key-value pairs of protected configuration settings for the configuration + |
+
+gitRepository + + +GitRepositoryDefinition + + + |
+
+ GitRepository: Parameters to reconcile to the GitRepository source kind type. + |
+
+kustomizations + + +map[string]./api/kubernetesconfiguration/v1api20230501.KustomizationDefinition + + + |
+
+ Kustomizations: Array of kustomizations used to reconcile the artifact pulled by the source type on the cluster. + |
+
+namespace + +string + + |
+
+ Namespace: The namespace to which this configuration is installed to. Maximum of 253 lower case alphanumeric characters, +hyphen and period only. + |
+
+owner + + +genruntime.ArbitraryOwnerReference + + + |
+
+ Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also +controls the resources lifecycle. When the owner is deleted the resource will also be deleted. This resource is an +extension resource, which means that any other Azure resource can be its owner. + |
+
+reconciliationWaitDuration + +string + + |
+
+ ReconciliationWaitDuration: Maximum duration to wait for flux configuration reconciliation. E.g PT1H, PT5M, P1D + |
+
+scope + + +ScopeDefinition + + + |
+
+ Scope: Scope at which the operator will be installed. + |
+
+sourceKind + + +SourceKindDefinition + + + |
+
+ SourceKind: Source Kind to pull the configuration data from. + |
+
+suspend + +bool + + |
+
+ Suspend: Whether this configuration should suspend its reconciliation of its kustomizations and sources. + |
+
+waitForReconciliation + +bool + + |
+
+ WaitForReconciliation: Whether flux configuration deployment should wait for cluster to reconcile the kustomizations. + |
+
Field | +Description | +
---|---|
+name + +string + + |
++ | +
+properties + + +FluxConfiguration_Properties_Spec_ARM + + + |
+
+ Properties: Properties to create a Flux Configuration resource + |
+
+(Appears on:FluxConfiguration_Spec) +
+Parameters to reconcile to the GitRepository source kind type.
+Field | +Description | +
---|---|
+httpsCACert + + +genruntime.SecretReference + + + |
+
+ HttpsCACert: Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS + |
+
+httpsUser + +string + + |
+
+ HttpsUser: Plaintext HTTPS username used to access private git repositories over HTTPS + |
+
+localAuthRef + +string + + |
+
+ LocalAuthRef: Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the +managed or user-provided configuration secrets. + |
+
+repositoryRef + + +RepositoryRefDefinition + + + |
+
+ RepositoryRef: The source reference for the GitRepository object. + |
+
+sshKnownHosts + +string + + |
+
+ SshKnownHosts: Base64-encoded known_hosts value containing public SSH keys required to access private git repositories +over SSH + |
+
+syncIntervalInSeconds + +int + + |
+
+ SyncIntervalInSeconds: The interval at which to re-reconcile the cluster git repository source with the remote. + |
+
+timeoutInSeconds + +int + + |
+
+ TimeoutInSeconds: The maximum time to attempt to reconcile the cluster git repository source with the remote. + |
+
+url + +string + + |
+
+ Url: The URL to sync for the flux configuration git repository. + |
+
+(Appears on:FluxConfiguration_Properties_Spec_ARM) +
+Parameters to reconcile to the GitRepository source kind type.
+Field | +Description | +
---|---|
+httpsCACert + +string + + |
+
+ HttpsCACert: Base64-encoded HTTPS certificate authority contents used to access git private git repositories over HTTPS + |
+
+httpsUser + +string + + |
+
+ HttpsUser: Plaintext HTTPS username used to access private git repositories over HTTPS + |
+
+localAuthRef + +string + + |
+
+ LocalAuthRef: Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the +managed or user-provided configuration secrets. + |
+
+repositoryRef + + +RepositoryRefDefinition_ARM + + + |
+
+ RepositoryRef: The source reference for the GitRepository object. + |
+
+sshKnownHosts + +string + + |
+
+ SshKnownHosts: Base64-encoded known_hosts value containing public SSH keys required to access private git repositories +over SSH + |
+
+syncIntervalInSeconds + +int + + |
+
+ SyncIntervalInSeconds: The interval at which to re-reconcile the cluster git repository source with the remote. + |
+
+timeoutInSeconds + +int + + |
+
+ TimeoutInSeconds: The maximum time to attempt to reconcile the cluster git repository source with the remote. + |
+
+url + +string + + |
+
+ Url: The URL to sync for the flux configuration git repository. + |
+
+(Appears on:FluxConfiguration_STATUS) +
+Parameters to reconcile to the GitRepository source kind type.
+Field | +Description | +
---|---|
+httpsUser + +string + + |
+
+ HttpsUser: Plaintext HTTPS username used to access private git repositories over HTTPS + |
+
+localAuthRef + +string + + |
+
+ LocalAuthRef: Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the +managed or user-provided configuration secrets. + |
+
+repositoryRef + + +RepositoryRefDefinition_STATUS + + + |
+
+ RepositoryRef: The source reference for the GitRepository object. + |
+
+sshKnownHosts + +string + + |
+
+ SshKnownHosts: Base64-encoded known_hosts value containing public SSH keys required to access private git repositories +over SSH + |
+
+syncIntervalInSeconds + +int + + |
+
+ SyncIntervalInSeconds: The interval at which to re-reconcile the cluster git repository source with the remote. + |
+
+timeoutInSeconds + +int + + |
+
+ TimeoutInSeconds: The maximum time to attempt to reconcile the cluster git repository source with the remote. + |
+
+url + +string + + |
+
+ Url: The URL to sync for the flux configuration git repository. + |
+
+(Appears on:FluxConfiguration_Properties_STATUS_ARM) +
+Parameters to reconcile to the GitRepository source kind type.
+Field | +Description | +
---|---|
+httpsUser + +string + + |
+
+ HttpsUser: Plaintext HTTPS username used to access private git repositories over HTTPS + |
+
+localAuthRef + +string + + |
+
+ LocalAuthRef: Name of a local secret on the Kubernetes cluster to use as the authentication secret rather than the +managed or user-provided configuration secrets. + |
+
+repositoryRef + + +RepositoryRefDefinition_STATUS_ARM + + + |
+
+ RepositoryRef: The source reference for the GitRepository object. + |
+
+sshKnownHosts + +string + + |
+
+ SshKnownHosts: Base64-encoded known_hosts value containing public SSH keys required to access private git repositories +over SSH + |
+
+syncIntervalInSeconds + +int + + |
+
+ SyncIntervalInSeconds: The interval at which to re-reconcile the cluster git repository source with the remote. + |
+
+timeoutInSeconds + +int + + |
+
+ TimeoutInSeconds: The maximum time to attempt to reconcile the cluster git repository source with the remote. + |
+
+url + +string + + |
+
+ Url: The URL to sync for the flux configuration git repository. + |
+
+(Appears on:ObjectStatusDefinition_STATUS) +
+Properties for HelmRelease objects
+Field | +Description | +
---|---|
+failureCount + +int + + |
+
+ FailureCount: Total number of times that the HelmRelease failed to install or upgrade + |
+
+helmChartRef + + +ObjectReferenceDefinition_STATUS + + + |
+
+ HelmChartRef: The reference to the HelmChart object used as the source to this HelmRelease + |
+
+installFailureCount + +int + + |
+
+ InstallFailureCount: Number of times that the HelmRelease failed to install + |
+
+lastRevisionApplied + +int + + |
+
+ LastRevisionApplied: The revision number of the last released object change + |
+
+upgradeFailureCount + +int + + |
+
+ UpgradeFailureCount: Number of times that the HelmRelease failed to upgrade + |
+
+(Appears on:ObjectStatusDefinition_STATUS_ARM) +
+Properties for HelmRelease objects
+Field | +Description | +
---|---|
+failureCount + +int + + |
+
+ FailureCount: Total number of times that the HelmRelease failed to install or upgrade + |
+
+helmChartRef + + +ObjectReferenceDefinition_STATUS_ARM + + + |
+
+ HelmChartRef: The reference to the HelmChart object used as the source to this HelmRelease + |
+
+installFailureCount + +int + + |
+
+ InstallFailureCount: Number of times that the HelmRelease failed to install + |
+
+lastRevisionApplied + +int + + |
+
+ LastRevisionApplied: The revision number of the last released object change + |
+
+upgradeFailureCount + +int + + |
+
+ UpgradeFailureCount: Number of times that the HelmRelease failed to upgrade + |
+
+(Appears on:Extension_Spec) +
+Identity for the resource.
+Field | +Description | +
---|---|
+type + + +Identity_Type + + + |
+
+ Type: The identity type. + |
+
+(Appears on:Extension_Spec_ARM) +
+Identity for the resource.
+Field | +Description | +
---|---|
+type + + +Identity_Type_ARM + + + |
+
+ Type: The identity type. + |
+
+(Appears on:Extension_STATUS) +
+Identity for the resource.
+Field | +Description | +
---|---|
+principalId + +string + + |
+
+ PrincipalId: The principal ID of resource identity. + |
+
+tenantId + +string + + |
+
+ TenantId: The tenant ID of resource. + |
+
+type + + +Identity_Type_STATUS + + + |
+
+ Type: The identity type. + |
+
+(Appears on:Extension_STATUS_ARM) +
+Identity for the resource.
+Field | +Description | +
---|---|
+principalId + +string + + |
+
+ PrincipalId: The principal ID of resource identity. + |
+
+tenantId + +string + + |
+
+ TenantId: The tenant ID of resource. + |
+
+type + + +Identity_Type_STATUS_ARM + + + |
+
+ Type: The identity type. + |
+
string
alias)+(Appears on:Identity) +
+Value | +Description | +
---|---|
"SystemAssigned" |
++ |
string
alias)+(Appears on:Identity_ARM) +
+Value | +Description | +
---|---|
"SystemAssigned" |
++ |
string
alias)+(Appears on:Identity_STATUS) +
+Value | +Description | +
---|---|
"SystemAssigned" |
++ |
string
alias)+(Appears on:Identity_STATUS_ARM) +
+Value | +Description | +
---|---|
"SystemAssigned" |
++ |
+(Appears on:FluxConfiguration_Spec) +
+The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.
+Field | +Description | +
---|---|
+dependsOn + +[]string + + |
+
+ DependsOn: Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile +until all dependencies have completed their reconciliation. + |
+
+force + +bool + + |
+
+ Force: Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field +change. + |
+
+path + +string + + |
+
+ Path: The path in the source reference to reconcile on the cluster. + |
+
+postBuild + + +PostBuildDefinition + + + |
+
+ PostBuild: Used for variable substitution for this Kustomization after kustomize build. + |
+
+prune + +bool + + |
+
+ Prune: Enable/disable garbage collections of Kubernetes objects created by this Kustomization. + |
+
+retryIntervalInSeconds + +int + + |
+
+ RetryIntervalInSeconds: The interval at which to re-reconcile the Kustomization on the cluster in the event of failure +on reconciliation. + |
+
+syncIntervalInSeconds + +int + + |
+
+ SyncIntervalInSeconds: The interval at which to re-reconcile the Kustomization on the cluster. + |
+
+timeoutInSeconds + +int + + |
+
+ TimeoutInSeconds: The maximum time to attempt to reconcile the Kustomization on the cluster. + |
+
+wait + +bool + + |
+
+ Wait: Enable/disable health check for all Kubernetes objects created by this Kustomization. + |
+
+(Appears on:FluxConfiguration_Properties_Spec_ARM) +
+The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.
+Field | +Description | +
---|---|
+dependsOn + +[]string + + |
+
+ DependsOn: Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile +until all dependencies have completed their reconciliation. + |
+
+force + +bool + + |
+
+ Force: Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field +change. + |
+
+path + +string + + |
+
+ Path: The path in the source reference to reconcile on the cluster. + |
+
+postBuild + + +PostBuildDefinition_ARM + + + |
+
+ PostBuild: Used for variable substitution for this Kustomization after kustomize build. + |
+
+prune + +bool + + |
+
+ Prune: Enable/disable garbage collections of Kubernetes objects created by this Kustomization. + |
+
+retryIntervalInSeconds + +int + + |
+
+ RetryIntervalInSeconds: The interval at which to re-reconcile the Kustomization on the cluster in the event of failure +on reconciliation. + |
+
+syncIntervalInSeconds + +int + + |
+
+ SyncIntervalInSeconds: The interval at which to re-reconcile the Kustomization on the cluster. + |
+
+timeoutInSeconds + +int + + |
+
+ TimeoutInSeconds: The maximum time to attempt to reconcile the Kustomization on the cluster. + |
+
+wait + +bool + + |
+
+ Wait: Enable/disable health check for all Kubernetes objects created by this Kustomization. + |
+
+(Appears on:FluxConfiguration_STATUS) +
+The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.
+Field | +Description | +
---|---|
+dependsOn + +[]string + + |
+
+ DependsOn: Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile +until all dependencies have completed their reconciliation. + |
+
+force + +bool + + |
+
+ Force: Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field +change. + |
+
+name + +string + + |
+
+ Name: Name of the Kustomization, matching the key in the Kustomizations object map. + |
+
+path + +string + + |
+
+ Path: The path in the source reference to reconcile on the cluster. + |
+
+postBuild + + +PostBuildDefinition_STATUS + + + |
+
+ PostBuild: Used for variable substitution for this Kustomization after kustomize build. + |
+
+prune + +bool + + |
+
+ Prune: Enable/disable garbage collections of Kubernetes objects created by this Kustomization. + |
+
+retryIntervalInSeconds + +int + + |
+
+ RetryIntervalInSeconds: The interval at which to re-reconcile the Kustomization on the cluster in the event of failure +on reconciliation. + |
+
+syncIntervalInSeconds + +int + + |
+
+ SyncIntervalInSeconds: The interval at which to re-reconcile the Kustomization on the cluster. + |
+
+timeoutInSeconds + +int + + |
+
+ TimeoutInSeconds: The maximum time to attempt to reconcile the Kustomization on the cluster. + |
+
+wait + +bool + + |
+
+ Wait: Enable/disable health check for all Kubernetes objects created by this Kustomization. + |
+
-(Appears on:Extension_Spec) +(Appears on:FluxConfiguration_Properties_STATUS_ARM)
The Kustomization defining how to reconcile the artifact pulled by the source type on the cluster.
-type + dependsOn - -Extension_Properties_AksAssignedIdentity_Type_Spec +[]string + + |
+
+ DependsOn: Specifies other Kustomizations that this Kustomization depends on. This Kustomization will not reconcile +until all dependencies have completed their reconciliation. + |
+
+force + +bool + + |
+
+ Force: Enable/disable re-creating Kubernetes resources on the cluster when patching fails due to an immutable field +change. + |
+
+name + +string + + |
+
+ Name: Name of the Kustomization, matching the key in the Kustomizations object map. + |
+
+path + +string + + |
+
+ Path: The path in the source reference to reconcile on the cluster. + |
+
+postBuild + + +PostBuildDefinition_STATUS_ARM |
- Type: The identity type. +PostBuild: Used for variable substitution for this Kustomization after kustomize build. + |
+
+prune + +bool + + |
+
+ Prune: Enable/disable garbage collections of Kubernetes objects created by this Kustomization. + |
+
+retryIntervalInSeconds + +int + + |
+
+ RetryIntervalInSeconds: The interval at which to re-reconcile the Kustomization on the cluster in the event of failure +on reconciliation. + |
+
+syncIntervalInSeconds + +int + + |
+
+ SyncIntervalInSeconds: The interval at which to re-reconcile the Kustomization on the cluster. + |
+
+timeoutInSeconds + +int + + |
+
+ TimeoutInSeconds: The maximum time to attempt to reconcile the Kustomization on the cluster. + |
+
+wait + +bool + + |
+
+ Wait: Enable/disable health check for all Kubernetes objects created by this Kustomization. + |
+
+(Appears on:AzureBlobDefinition) +
+Parameters to authenticate using a Managed Identity.
+Field | +Description | +
---|---|
+clientId + +string + + |
+
+ ClientId: The client Id for authenticating a Managed Identity. + |
+
+(Appears on:AzureBlobDefinition_ARM) +
+Parameters to authenticate using a Managed Identity.
+Field | +Description | +
---|---|
+clientId + +string + + |
+
+ ClientId: The client Id for authenticating a Managed Identity. + |
+
+(Appears on:AzureBlobDefinition_STATUS) +
+Parameters to authenticate using a Managed Identity.
+Field | +Description | +
---|---|
+clientId + +string + + |
+
+ ClientId: The client Id for authenticating a Managed Identity. + |
+
+(Appears on:AzureBlobDefinition_STATUS_ARM) +
+Parameters to authenticate using a Managed Identity.
+Field | +Description | +
---|---|
+clientId + +string + + |
+
+ ClientId: The client Id for authenticating a Managed Identity. |
-(Appears on:Extension_Properties_Spec_ARM) +(Appears on:HelmReleasePropertiesDefinition_STATUS, ObjectStatusDefinition_STATUS)
Object reference to a Kubernetes object on a cluster
-type + name - -Extension_Properties_AksAssignedIdentity_Type_Spec_ARM - +string |
- Type: The identity type. +Name: Name of the object |
string
alias)-(Appears on:Extension_Properties_AksAssignedIdentity_STATUS) -
-Value | -Description | +
+namespace + +string + + |
+
+ Namespace: Namespace of the object + |
---|---|---|---|
"SystemAssigned" |
-- | ||
"UserAssigned" |
-- |
string
alias)-(Appears on:Extension_Properties_AksAssignedIdentity_STATUS_ARM) +(Appears on:HelmReleasePropertiesDefinition_STATUS_ARM, ObjectStatusDefinition_STATUS_ARM)
Object reference to a Kubernetes object on a cluster
Value | +Field | Description |
---|---|---|
"SystemAssigned" |
-- | |
"UserAssigned" |
-- |
string
alias)-(Appears on:Extension_Properties_AksAssignedIdentity_Spec) -
-Value | -Description | +
+name + +string + + |
+
+ Name: Name of the object + |
---|---|---|---|
"SystemAssigned" |
-- | ||
"UserAssigned" |
-- |
string
alias)-(Appears on:Extension_Properties_AksAssignedIdentity_Spec_ARM) -
-Value | -Description | +
+namespace + +string + + |
+
+ Namespace: Namespace of the object + |
---|---|---|---|
"SystemAssigned" |
-- | ||
"UserAssigned" |
-- |
-(Appears on:Extension_STATUS_ARM) +(Appears on:ObjectStatusDefinition_STATUS)
Status condition of Kubernetes object
-aksAssignedIdentity + lastTransitionTime - -Extension_Properties_AksAssignedIdentity_STATUS_ARM - +string |
- AksAssignedIdentity: Identity of the Extension resource in an AKS cluster +LastTransitionTime: Last time this status condition has changed |
-autoUpgradeMinorVersion + message -bool +string |
- AutoUpgradeMinorVersion: Flag to note if this extension participates in auto upgrade of minor version, or not. +Message: A more verbose description of the object status condition |
-configurationProtectedSettings + reason -map[string]string +string |
- ConfigurationProtectedSettings: Configuration settings that are sensitive, as name-value pairs for configuring this -extension. +Reason: Reason for the specified status condition type status |
-configurationSettings + status -map[string]string +string |
- ConfigurationSettings: Configuration settings, as name-value pairs for configuring this extension. +Status: Status of the Kubernetes object condition type |
-currentVersion + type string |
- CurrentVersion: Currently installed version of the extension. +Type: Object status condition type for this object |
+(Appears on:ObjectStatusDefinition_STATUS_ARM) +
+Status condition of Kubernetes object
+Field | +Description | +
---|---|
-customLocationSettings + lastTransitionTime -map[string]string +string |
- CustomLocationSettings: Custom Location settings properties. +LastTransitionTime: Last time this status condition has changed |
-errorInfo + message - -ErrorDetail_STATUS_ARM - +string |
- ErrorInfo: Error information from the Agent - e.g. errors during installation. +Message: A more verbose description of the object status condition |
-extensionType + reason string |
- ExtensionType: Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types -registered with Microsoft.KubernetesConfiguration by the Extension publisher. +Reason: Reason for the specified status condition type status |
-isSystemExtension + status -bool +string |
- IsSystemExtension: Flag to note if this extension is a system extension +Status: Status of the Kubernetes object condition type |
-packageUri + type string |
- PackageUri: Uri of the Helm package +Type: Object status condition type for this object |
+(Appears on:FluxConfiguration_STATUS) +
+Statuses of objects deployed by the user-specified kustomizations from the git repository.
+Field | +Description | +
---|---|
-provisioningState + appliedBy - -ProvisioningStateDefinition_STATUS_ARM + +ObjectReferenceDefinition_STATUS |
- ProvisioningState: Status of installation of this extension. +AppliedBy: Object reference to the Kustomization that applied this object |
-releaseTrain + complianceState -string + +FluxComplianceStateDefinition_STATUS + |
- ReleaseTrain: ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if -autoUpgradeMinorVersion is ‘true’. +ComplianceState: Compliance state of the applied object showing whether the applied object has come into a ready state +on the cluster. |
-scope + helmReleaseProperties - -Scope_STATUS_ARM + +HelmReleasePropertiesDefinition_STATUS |
- Scope: Scope at which the extension is installed. +HelmReleaseProperties: Additional properties that are provided from objects of the HelmRelease kind |
-statuses + kind - -[]ExtensionStatus_STATUS_ARM - +string |
- Statuses: Status from this extension. +Kind: Kind of the applied object |
-version + name string |
- Version: User-specified version of the extension for this extension to ‘pin’. To use ‘version’, autoUpgradeMinorVersion -must be ‘false’. +Name: Name of the applied object + |
+
+namespace + +string + + |
+
+ Namespace: Namespace of the applied object + |
+
+statusConditions + + +[]ObjectStatusConditionDefinition_STATUS + + + |
+
+ StatusConditions: List of Kubernetes object status conditions present on the cluster |
-(Appears on:Extension_Spec_ARM) +(Appears on:FluxConfiguration_Properties_STATUS_ARM)
Statuses of objects deployed by the user-specified kustomizations from the git repository.
-aksAssignedIdentity + appliedBy - -Extension_Properties_AksAssignedIdentity_Spec_ARM + +ObjectReferenceDefinition_STATUS_ARM |
- AksAssignedIdentity: Identity of the Extension resource in an AKS cluster - |
-
-autoUpgradeMinorVersion - -bool - - |
-
- AutoUpgradeMinorVersion: Flag to note if this extension participates in auto upgrade of minor version, or not. +AppliedBy: Object reference to the Kustomization that applied this object |
-configurationProtectedSettings + complianceState -map[string]string + +FluxComplianceStateDefinition_STATUS_ARM + |
- ConfigurationProtectedSettings: Configuration settings that are sensitive, as name-value pairs for configuring this -extension. +ComplianceState: Compliance state of the applied object showing whether the applied object has come into a ready state +on the cluster. |
-configurationSettings + helmReleaseProperties -map[string]string + +HelmReleasePropertiesDefinition_STATUS_ARM + |
- ConfigurationSettings: Configuration settings, as name-value pairs for configuring this extension. +HelmReleaseProperties: Additional properties that are provided from objects of the HelmRelease kind |
-extensionType + kind string |
- ExtensionType: Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types -registered with Microsoft.KubernetesConfiguration by the Extension publisher. +Kind: Kind of the applied object |
-releaseTrain + name string |
- ReleaseTrain: ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if -autoUpgradeMinorVersion is ‘true’. +Name: Name of the applied object |
-scope + namespace - -Scope_ARM - +string |
- Scope: Scope at which the extension is installed. +Namespace: Namespace of the applied object |
-version + statusConditions -string + +[]ObjectStatusConditionDefinition_STATUS_ARM + |
- Version: User-specified version of the extension for this extension to ‘pin’. To use ‘version’, autoUpgradeMinorVersion -must be ‘false’. +StatusConditions: List of Kubernetes object status conditions present on the cluster |
-(Appears on:Extension) +(Appears on:Extension_Spec)
The Extension object.
+Plan for the resource.
-aksAssignedIdentity + name - -Extension_Properties_AksAssignedIdentity_STATUS - +string |
- AksAssignedIdentity: Identity of the Extension resource in an AKS cluster +Name: A user defined name of the 3rd Party Artifact that is being procured. |
-autoUpgradeMinorVersion + product -bool +string |
- AutoUpgradeMinorVersion: Flag to note if this extension participates in auto upgrade of minor version, or not. +Product: The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the +artifact at the time of Data Market onboarding. |
-conditions + promotionCode - -[]genruntime/conditions.Condition - +string |
- Conditions: The observed state of the resource +PromotionCode: A publisher provided promotion code as provisioned in Data Market for the said product/artifact. |
-configurationProtectedSettings + publisher -map[string]string +string |
- ConfigurationProtectedSettings: Configuration settings that are sensitive, as name-value pairs for configuring this -extension. +Publisher: The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic |
-configurationSettings + version -map[string]string +string |
- ConfigurationSettings: Configuration settings, as name-value pairs for configuring this extension. +Version: The version of the desired product/artifact. |
+(Appears on:Extension_Spec_ARM) +
+Plan for the resource.
+
-currentVersion - -string - - |
-
- CurrentVersion: Currently installed version of the extension. - |
+Field | +Description |
---|---|---|---|
-customLocationSettings + name -map[string]string +string |
- CustomLocationSettings: Custom Location settings properties. +Name: A user defined name of the 3rd Party Artifact that is being procured. |
||
-errorInfo + product - -ErrorDetail_STATUS - +string |
- ErrorInfo: Error information from the Agent - e.g. errors during installation. +Product: The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the +artifact at the time of Data Market onboarding. |
||
-extensionType + promotionCode string |
- ExtensionType: Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types -registered with Microsoft.KubernetesConfiguration by the Extension publisher. +PromotionCode: A publisher provided promotion code as provisioned in Data Market for the said product/artifact. |
||
-id + publisher string |
- Id: Fully qualified resource ID for the resource. Ex - -/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}p> + Publisher: The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic |
||
-identity + version - -Identity_STATUS - +string |
- Identity: Identity of the Extension resource +Version: The version of the desired product/artifact. |
+(Appears on:Extension_STATUS) +
+Plan for the resource.
+
-isSystemExtension - -bool - - |
-
- IsSystemExtension: Flag to note if this extension is a system extension - |
+Field | +Description |
---|---|---|---|
name @@ -1599,107 +6195,115 @@ string |
- Name: The name of the resource +Name: A user defined name of the 3rd Party Artifact that is being procured. |
||
-packageUri + product string |
- PackageUri: Uri of the Helm package +Product: The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the +artifact at the time of Data Market onboarding. |
||
-plan + promotionCode - -Plan_STATUS - +string |
- Plan: The plan information. +PromotionCode: A publisher provided promotion code as provisioned in Data Market for the said product/artifact. |
||
-provisioningState + publisher - -ProvisioningStateDefinition_STATUS - +string |
- ProvisioningState: Status of installation of this extension. +Publisher: The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic |
||
-releaseTrain + version string |
- ReleaseTrain: ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if -autoUpgradeMinorVersion is ‘true’. +Version: The version of the desired product/artifact. |
+(Appears on:Extension_STATUS_ARM) +
+Plan for the resource.
+Field | +Description | +
---|---|
-scope + name - -Scope_STATUS - +string |
- Scope: Scope at which the extension is installed. +Name: A user defined name of the 3rd Party Artifact that is being procured. |
-statuses + product - -[]ExtensionStatus_STATUS - +string |
- Statuses: Status from this extension. +Product: The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the +artifact at the time of Data Market onboarding. |
-systemData + promotionCode - -SystemData_STATUS - +string |
- SystemData: Top level metadata -https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources +PromotionCode: A publisher provided promotion code as provisioned in Data Market for the said product/artifact. |
-type + publisher string |
- Type: The type of the resource. E.g. “Microsoft.Compute/virtualMachines” or “Microsoft.Storage/storageAccounts” +Publisher: The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic |
- Version: User-specified version of the extension for this extension to ‘pin’. To use ‘version’, autoUpgradeMinorVersion -must be ‘false’. +Version: The version of the desired product/artifact. |
+(Appears on:KustomizationDefinition) +
The Extension object.
+The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.
-id + substitute -string +map[string]string |
- Id: Fully qualified resource ID for the resource. Ex - -/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}p> + Substitute: Key/value pairs holding the variables to be substituted in this Kustomization. |
-identity + substituteFrom - -Identity_STATUS_ARM + +[]SubstituteFromDefinition |
- Identity: Identity of the Extension resource +SubstituteFrom: Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization. |
+(Appears on:KustomizationDefinition_ARM) +
+The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.
+
-name - -string - - |
-
- Name: The name of the resource - |
+Field | +Description |
---|---|---|---|
-plan - - -Plan_STATUS_ARM - +
+ |
substitute + +map[string]string
- |
Plan: The plan information. +Substitute: Key/value pairs holding the variables to be substituted in this Kustomization. | |
-properties + substituteFrom - -Extension_Properties_STATUS_ARM + +[]SubstituteFromDefinition_ARM |
- Properties: Properties of an Extension resource +SubstituteFrom: Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization. |
+(Appears on:KustomizationDefinition_STATUS) +
+The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.
+Field | +Description | +
---|---|
-systemData + substitute - -SystemData_STATUS_ARM - +map[string]string |
- SystemData: Top level metadata -https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources +Substitute: Key/value pairs holding the variables to be substituted in this Kustomization. |
-type + substituteFrom -string + +[]SubstituteFromDefinition_STATUS + |
- Type: The type of the resource. E.g. “Microsoft.Compute/virtualMachines” or “Microsoft.Storage/storageAccounts” +SubstituteFrom: Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization. |
-(Appears on:Extension) +(Appears on:KustomizationDefinition_STATUS_ARM)
The postBuild definitions defining variable substitutions for this Kustomization after kustomize build.
-aksAssignedIdentity + substitute - -Extension_Properties_AksAssignedIdentity_Spec - +map[string]string |
- AksAssignedIdentity: Identity of the Extension resource in an AKS cluster +Substitute: Key/value pairs holding the variables to be substituted in this Kustomization. |
-autoUpgradeMinorVersion + substituteFrom -bool + +[]SubstituteFromDefinition_STATUS_ARM + |
- AutoUpgradeMinorVersion: Flag to note if this extension participates in auto upgrade of minor version, or not. +SubstituteFrom: Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization. |
string
alias)+(Appears on:Extension_STATUS, FluxConfiguration_STATUS) +
+The provisioning state of the resource.
+Value | +Description | +
---|---|
"Canceled" |
++ |
"Creating" |
++ |
"Deleting" |
++ |
"Failed" |
++ |
"Succeeded" |
++ |
"Updating" |
++ |
string
alias)+(Appears on:Extension_Properties_STATUS_ARM, FluxConfiguration_Properties_STATUS_ARM) +
+The provisioning state of the resource.
+Value | +Description | +
---|---|
"Canceled" |
++ |
"Creating" |
++ |
"Deleting" |
++ |
"Failed" |
++ |
"Succeeded" |
++ |
"Updating" |
++ |
+(Appears on:GitRepositoryDefinition) +
+The source reference for the GitRepository object.
+Field | +Description | +
---|---|
-azureName + branch string |
- AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it -doesn’t have to be. +Branch: The git repository branch name to checkout. |
-configurationProtectedSettings + commit - -genruntime.SecretMapReference - +string |
- ConfigurationProtectedSettings: Configuration settings that are sensitive, as name-value pairs for configuring this -extension. +Commit: The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence +over semver. |
-configurationSettings + semver -map[string]string +string |
- ConfigurationSettings: Configuration settings, as name-value pairs for configuring this extension. +Semver: The semver range used to match against git repository tags. This takes precedence over tag. |
-extensionType + tag string |
- ExtensionType: Type of the Extension, of which this resource is an instance of. It must be one of the Extension Types -registered with Microsoft.KubernetesConfiguration by the Extension publisher. +Tag: The git repository tag name to checkout. This takes precedence over branch. |
+(Appears on:GitRepositoryDefinition_ARM) +
+The source reference for the GitRepository object.
+Field | +Description | +
---|---|
-identity + branch - -Identity - +string |
- Identity: Identity of the Extension resource +Branch: The git repository branch name to checkout. |
-operatorSpec + commit - -ExtensionOperatorSpec - +string |
- OperatorSpec: The specification for configuring operator behavior. This field is interpreted by the operator and not -passed directly to Azure +Commit: The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence +over semver. |
-owner + semver - -genruntime.ArbitraryOwnerReference - +string |
- Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also -controls the resources lifecycle. When the owner is deleted the resource will also be deleted. This resource is an -extension resource, which means that any other Azure resource can be its owner. +Semver: The semver range used to match against git repository tags. This takes precedence over tag. |
-plan + tag - -Plan - +string |
- Plan: The plan information. +Tag: The git repository tag name to checkout. This takes precedence over branch. |
+(Appears on:GitRepositoryDefinition_STATUS) +
+The source reference for the GitRepository object.
+Field | +Description | +
---|---|
-releaseTrain + branch string |
- ReleaseTrain: ReleaseTrain this extension participates in for auto-upgrade (e.g. Stable, Preview, etc.) - only if -autoUpgradeMinorVersion is ‘true’. +Branch: The git repository branch name to checkout. |
-scope + commit - -Scope - +string |
- Scope: Scope at which the extension is installed. +Commit: The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence +over semver. |
-systemData + semver - -SystemData - +string |
- SystemData: Top level metadata -https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources +Semver: The semver range used to match against git repository tags. This takes precedence over tag. |
-version + tag string |
- Version: User-specified version of the extension for this extension to ‘pin’. To use ‘version’, autoUpgradeMinorVersion -must be ‘false’. +Tag: The git repository tag name to checkout. This takes precedence over branch. |
+(Appears on:GitRepositoryDefinition_STATUS_ARM) +
The source reference for the GitRepository object.
-identity + branch - -Identity_ARM - +string |
- Identity: Identity of the Extension resource +Branch: The git repository branch name to checkout. |
-name + commit string |
+ Commit: The commit SHA to checkout. This value must be combined with the branch name to be valid. This takes precedence +over semver. |
-plan + semver - -Plan_ARM - +string |
- Plan: The plan information. +Semver: The semver range used to match against git repository tags. This takes precedence over tag. |
-properties + tag - -Extension_Properties_Spec_ARM +string + + |
+
+ Tag: The git repository tag name to checkout. This takes precedence over branch. + |
+
+(Appears on:Extension_Spec) +
+Scope of the extension. It can be either Cluster or Namespace; but not both.
+Field | +Description | +
---|---|
+cluster + + +ScopeCluster |
- Properties: Properties of an Extension resource +Cluster: Specifies that the scope of the extension is Cluster |
-systemData + namespace - -SystemData_ARM + +ScopeNamespace |
- SystemData: Top level metadata -https://github.com/Azure/azure-resource-manager-rpc/blob/master/v1.0/common-api-contracts.md#system-metadata-for-all-azure-resources +Namespace: Specifies that the scope of the extension is Namespace |
-(Appears on:Extension_Spec) +(Appears on:Scope)
Identity for the resource.
+Specifies that the scope of the extension is Cluster
-type + releaseNamespace - -Identity_Type - +string |
- Type: The identity type. +ReleaseNamespace: Namespace where the extension Release must be placed, for a Cluster scoped extension. If this +namespace does not exist, it will be created |
-(Appears on:Extension_Spec_ARM) +(Appears on:Scope_ARM)
Identity for the resource.
+Specifies that the scope of the extension is Cluster
-type + releaseNamespace - -Identity_Type_ARM - +string |
- Type: The identity type. +ReleaseNamespace: Namespace where the extension Release must be placed, for a Cluster scoped extension. If this +namespace does not exist, it will be created |
-(Appears on:Extension_STATUS) +(Appears on:Scope_STATUS)
Identity for the resource.
+Specifies that the scope of the extension is Cluster
-principalId - -string - - |
-
- PrincipalId: The principal ID of resource identity. - |
-
-tenantId + releaseNamespace string |
- TenantId: The tenant ID of resource. - |
-
-type - - -Identity_Type_STATUS - - - |
-
- Type: The identity type. +ReleaseNamespace: Namespace where the extension Release must be placed, for a Cluster scoped extension. If this +namespace does not exist, it will be created |
-(Appears on:Extension_STATUS_ARM) +(Appears on:Scope_STATUS_ARM)
Identity for the resource.
+Specifies that the scope of the extension is Cluster
-principalId - -string - - |
-
- PrincipalId: The principal ID of resource identity. - |
-
-tenantId + releaseNamespace string |
- TenantId: The tenant ID of resource. - |
-
-type - - -Identity_Type_STATUS_ARM - - - |
-
- Type: The identity type. +ReleaseNamespace: Namespace where the extension Release must be placed, for a Cluster scoped extension. If this +namespace does not exist, it will be created |
string
alias)-(Appears on:Identity) +(Appears on:FluxConfiguration_Spec)
Scope at which the configuration will be installed.
Description | -|
---|---|
"SystemAssigned" |
+|
"cluster" |
++ |
"namespace" |
string
alias)-(Appears on:Identity_ARM) +(Appears on:FluxConfiguration_Properties_Spec_ARM)
Scope at which the configuration will be installed.
Description | -|
---|---|
"SystemAssigned" |
+|
"cluster" |
++ |
"namespace" |
string
alias)-(Appears on:Identity_STATUS) +(Appears on:FluxConfiguration_STATUS)
Scope at which the configuration will be installed.
Description | -|
---|---|
"SystemAssigned" |
+|
"cluster" |
++ |
"namespace" |
string
alias)-(Appears on:Identity_STATUS_ARM) +(Appears on:FluxConfiguration_Properties_STATUS_ARM)
Scope at which the configuration will be installed.
Description | -|
---|---|
"SystemAssigned" |
+|
"cluster" |
++ |
"namespace" |
-(Appears on:Extension_Spec) +(Appears on:Scope)
Plan for the resource.
+Specifies that the scope of the extension is Namespace
+Field | +Description | +
---|---|
+targetNamespace + +string + + |
+
+ TargetNamespace: Namespace where the extension will be created for an Namespace scoped extension. If this namespace +does not exist, it will be created + |
+
+(Appears on:Scope_ARM) +
+Specifies that the scope of the extension is Namespace
+Field | +Description | +
---|---|
+targetNamespace + +string + + |
+
+ TargetNamespace: Namespace where the extension will be created for an Namespace scoped extension. If this namespace +does not exist, it will be created + |
+
+(Appears on:Scope_STATUS) +
+Specifies that the scope of the extension is Namespace
+Field | +Description | +
---|---|
+targetNamespace + +string + + |
+
+ TargetNamespace: Namespace where the extension will be created for an Namespace scoped extension. If this namespace +does not exist, it will be created + |
+
+(Appears on:Scope_STATUS_ARM) +
+Specifies that the scope of the extension is Namespace
+Field | +Description | +
---|---|
+targetNamespace + +string + + |
+
+ TargetNamespace: Namespace where the extension will be created for an Namespace scoped extension. If this namespace +does not exist, it will be created + |
+
+(Appears on:Extension_Properties_Spec_ARM) +
+Scope of the extension. It can be either Cluster or Namespace; but not both.
-name + cluster -string + +ScopeCluster_ARM + |
- Name: A user defined name of the 3rd Party Artifact that is being procured. +Cluster: Specifies that the scope of the extension is Cluster |
-product + namespace -string + +ScopeNamespace_ARM + |
- Product: The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the -artifact at the time of Data Market onboarding. +Namespace: Specifies that the scope of the extension is Namespace |
+(Appears on:Extension_STATUS) +
+Scope of the extension. It can be either Cluster or Namespace; but not both.
+
-promotionCode - -string - - |
-
- PromotionCode: A publisher provided promotion code as provisioned in Data Market for the said product/artifact. - |
+Field | +Description |
---|---|---|---|
-publisher + cluster -string + +ScopeCluster_STATUS + |
- Publisher: The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic +Cluster: Specifies that the scope of the extension is Cluster |
||
-version + namespace -string + +ScopeNamespace_STATUS + |
- Version: The version of the desired product/artifact. +Namespace: Specifies that the scope of the extension is Namespace |
-(Appears on:Extension_Spec_ARM) +(Appears on:Extension_Properties_STATUS_ARM)
Plan for the resource.
+Scope of the extension. It can be either Cluster or Namespace; but not both.
-name + cluster -string + +ScopeCluster_STATUS_ARM + |
- Name: A user defined name of the 3rd Party Artifact that is being procured. +Cluster: Specifies that the scope of the extension is Cluster |
-product + namespace -string + +ScopeNamespace_STATUS_ARM + |
- Product: The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the -artifact at the time of Data Market onboarding. +Namespace: Specifies that the scope of the extension is Namespace |
+(Appears on:AzureBlobDefinition) +
+Parameters to authenticate using Service Principal.
+Field | +Description | +
---|---|
-promotionCode + clientCertificate -string + +genruntime.SecretReference + |
- PromotionCode: A publisher provided promotion code as provisioned in Data Market for the said product/artifact. +ClientCertificate: Base64-encoded certificate used to authenticate a Service Principal |
-publisher + clientCertificatePassword -string + +genruntime.SecretReference + |
- Publisher: The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic +ClientCertificatePassword: The password for the certificate used to authenticate a Service Principal |
-version + clientCertificateSendChain -string +bool |
- Version: The version of the desired product/artifact. +ClientCertificateSendChain: Specifies whether to include x5c header in client claims when acquiring a token to enable +subject name / issuer based authentication for the Client Certificate |
-(Appears on:Extension_STATUS) -
-Plan for the resource.
-Field | -Description | -
---|---|
-name + clientId string |
- Name: A user defined name of the 3rd Party Artifact that is being procured. +ClientId: The client Id for authenticating a Service Principal. |
-product + clientIdFromConfig -string + +genruntime.ConfigMapReference + |
- Product: The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the -artifact at the time of Data Market onboarding. +ClientIdFromConfig: The client Id for authenticating a Service Principal. |
-promotionCode + clientSecret -string + +genruntime.SecretReference + |
- PromotionCode: A publisher provided promotion code as provisioned in Data Market for the said product/artifact. +ClientSecret: The client secret for authenticating a Service Principal |
-publisher + tenantId string |
- Publisher: The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic +TenantId: The tenant Id for authenticating a Service Principal |
-version + tenantIdFromConfig -string + +genruntime.ConfigMapReference + |
- Version: The version of the desired product/artifact. +TenantIdFromConfig: The tenant Id for authenticating a Service Principal |
-(Appears on:Extension_STATUS_ARM) +(Appears on:AzureBlobDefinition_ARM)
Plan for the resource.
+Parameters to authenticate using Service Principal.
-name + clientCertificate string |
- Name: A user defined name of the 3rd Party Artifact that is being procured. +ClientCertificate: Base64-encoded certificate used to authenticate a Service Principal |
-product + clientCertificatePassword string |
- Product: The 3rd Party artifact that is being procured. E.g. NewRelic. Product maps to the OfferID specified for the -artifact at the time of Data Market onboarding. +ClientCertificatePassword: The password for the certificate used to authenticate a Service Principal |
-promotionCode + clientCertificateSendChain -string +bool |
- PromotionCode: A publisher provided promotion code as provisioned in Data Market for the said product/artifact. +ClientCertificateSendChain: Specifies whether to include x5c header in client claims when acquiring a token to enable +subject name / issuer based authentication for the Client Certificate |
-publisher + clientId string |
- Publisher: The publisher of the 3rd Party Artifact that is being bought. E.g. NewRelic +ClientId: The client Id for authenticating a Service Principal. |
-version + clientSecret string |
- Version: The version of the desired product/artifact. - |
-
string
alias)-(Appears on:Extension_STATUS) -
-The provisioning state of the resource.
-Value | -Description | -
---|---|
"Canceled" |
-- |
"Creating" |
-- |
"Deleting" |
-- |
"Failed" |
-- |
"Succeeded" |
-- |
"Updating" |
-- |
string
alias)-(Appears on:Extension_Properties_STATUS_ARM) -
-The provisioning state of the resource.
-Value | -Description | -
---|---|
"Canceled" |
-- |
"Creating" |
-- |
"Deleting" |
-- |
"Failed" |
-- |
"Succeeded" |
-- |
"Updating" |
-- |
-(Appears on:Extension_Spec) -
-Scope of the extension. It can be either Cluster or Namespace; but not both.
-Field | -Description | -
---|---|
-cluster - - -ScopeCluster - - - |
-
- Cluster: Specifies that the scope of the extension is Cluster +ClientSecret: The client secret for authenticating a Service Principal |
-namespace + tenantId - -ScopeNamespace - +string |
- Namespace: Specifies that the scope of the extension is Namespace +TenantId: The tenant Id for authenticating a Service Principal |
-(Appears on:Scope) +(Appears on:AzureBlobDefinition_STATUS)
Specifies that the scope of the extension is Cluster
+Parameters to authenticate using Service Principal.
-releaseNamespace + clientCertificateSendChain -string +bool |
- ReleaseNamespace: Namespace where the extension Release must be placed, for a Cluster scoped extension. If this -namespace does not exist, it will be created +ClientCertificateSendChain: Specifies whether to include x5c header in client claims when acquiring a token to enable +subject name / issuer based authentication for the Client Certificate |
-(Appears on:Scope_ARM) -
-Specifies that the scope of the extension is Cluster
-Field | -Description | +
+clientId + +string + + |
+
+ ClientId: The client Id for authenticating a Service Principal. + |
---|---|---|---|
-releaseNamespace + tenantId string |
- ReleaseNamespace: Namespace where the extension Release must be placed, for a Cluster scoped extension. If this -namespace does not exist, it will be created +TenantId: The tenant Id for authenticating a Service Principal |
-(Appears on:Scope_STATUS) +(Appears on:AzureBlobDefinition_STATUS_ARM)
Specifies that the scope of the extension is Cluster
+Parameters to authenticate using Service Principal.
-releaseNamespace + clientCertificateSendChain -string +bool |
- ReleaseNamespace: Namespace where the extension Release must be placed, for a Cluster scoped extension. If this -namespace does not exist, it will be created +ClientCertificateSendChain: Specifies whether to include x5c header in client claims when acquiring a token to enable +subject name / issuer based authentication for the Client Certificate |
-(Appears on:Scope_STATUS_ARM) -
-Specifies that the scope of the extension is Cluster
-Field | -Description | +
+clientId + +string + + |
+
+ ClientId: The client Id for authenticating a Service Principal. + |
---|---|---|---|
-releaseNamespace + tenantId string |
- ReleaseNamespace: Namespace where the extension Release must be placed, for a Cluster scoped extension. If this -namespace does not exist, it will be created +TenantId: The tenant Id for authenticating a Service Principal |
string
alias)-(Appears on:Scope) +(Appears on:FluxConfiguration_Spec)
Specifies that the scope of the extension is Namespace
+Source Kind to pull the configuration data from.
Field | +Value | Description |
---|---|---|
"AzureBlob" |
++ | |
"Bucket" |
++ | |
"GitRepository" |
++ |
string
alias)+(Appears on:FluxConfiguration_Properties_Spec_ARM) +
+Source Kind to pull the configuration data from.
+
-targetNamespace - -string - - |
-
- TargetNamespace: Namespace where the extension will be created for an Namespace scoped extension. If this namespace -does not exist, it will be created - |
+Value | +Description |
---|---|---|---|
"AzureBlob" |
++ | ||
"Bucket" |
++ | ||
"GitRepository" |
++ |
string
alias)-(Appears on:Scope_ARM) +(Appears on:FluxConfiguration_STATUS)
Specifies that the scope of the extension is Namespace
+Source Kind to pull the configuration data from.
Field | +Value | Description |
---|---|---|
"AzureBlob" |
++ | |
"Bucket" |
++ | |
"GitRepository" |
++ |
string
alias)+(Appears on:FluxConfiguration_Properties_STATUS_ARM) +
+Source Kind to pull the configuration data from.
+
-targetNamespace - -string - - |
-
- TargetNamespace: Namespace where the extension will be created for an Namespace scoped extension. If this namespace -does not exist, it will be created - |
+Value | +Description |
---|---|---|---|
"AzureBlob" |
++ | ||
"Bucket" |
++ | ||
"GitRepository" |
++ |
-(Appears on:Scope_STATUS) +(Appears on:PostBuildDefinition)
Specifies that the scope of the extension is Namespace
+Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.
-targetNamespace + kind string |
- TargetNamespace: Namespace where the extension will be created for an Namespace scoped extension. If this namespace -does not exist, it will be created +Kind: Define whether it is ConfigMap or Secret that holds the variables to be used in substitution. |
-(Appears on:Scope_STATUS_ARM) -
-Specifies that the scope of the extension is Namespace
-Field | -Description | +
+name + +string + + |
+
+ Name: Name of the ConfigMap/Secret that holds the variables to be used in substitution. + |
---|---|---|---|
-targetNamespace + optional -string +bool |
- TargetNamespace: Namespace where the extension will be created for an Namespace scoped extension. If this namespace -does not exist, it will be created +Optional: Set to True to proceed without ConfigMap/Secret, if it is not present. |
-(Appears on:Extension_Properties_Spec_ARM) +(Appears on:PostBuildDefinition_ARM)
Scope of the extension. It can be either Cluster or Namespace; but not both.
+Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.
-cluster + kind - -ScopeCluster_ARM - +string |
- Cluster: Specifies that the scope of the extension is Cluster +Kind: Define whether it is ConfigMap or Secret that holds the variables to be used in substitution. |
-namespace + name - -ScopeNamespace_ARM - +string |
- Namespace: Specifies that the scope of the extension is Namespace +Name: Name of the ConfigMap/Secret that holds the variables to be used in substitution. + |
+
+optional + +bool + + |
+
+ Optional: Set to True to proceed without ConfigMap/Secret, if it is not present. |
-(Appears on:Extension_STATUS) +(Appears on:PostBuildDefinition_STATUS)
Scope of the extension. It can be either Cluster or Namespace; but not both.
+Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.
-cluster + kind - -ScopeCluster_STATUS - +string |
- Cluster: Specifies that the scope of the extension is Cluster +Kind: Define whether it is ConfigMap or Secret that holds the variables to be used in substitution. |
-namespace + name - -ScopeNamespace_STATUS - +string |
- Namespace: Specifies that the scope of the extension is Namespace +Name: Name of the ConfigMap/Secret that holds the variables to be used in substitution. + |
+
+optional + +bool + + |
+
+ Optional: Set to True to proceed without ConfigMap/Secret, if it is not present. |
-(Appears on:Extension_Properties_STATUS_ARM) +(Appears on:PostBuildDefinition_STATUS_ARM)
Scope of the extension. It can be either Cluster or Namespace; but not both.
+Array of ConfigMaps/Secrets from which the variables are substituted for this Kustomization.
-cluster + kind - -ScopeCluster_STATUS_ARM - +string |
- Cluster: Specifies that the scope of the extension is Cluster +Kind: Define whether it is ConfigMap or Secret that holds the variables to be used in substitution. |
-namespace + name - -ScopeNamespace_STATUS_ARM - +string |
- Namespace: Specifies that the scope of the extension is Namespace +Name: Name of the ConfigMap/Secret that holds the variables to be used in substitution. + |
+
+optional + +bool + + |
+
+ Optional: Set to True to proceed without ConfigMap/Secret, if it is not present. |
Generator information: +- Generated from: /dnsresolver/resource-manager/Microsoft.Network/stable/2022-07-01/dnsresolver.json +- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/dnsForwardingRulesets/{dnsForwardingRulesetName}/virtualNetworkLinks/{virtualNetworkLinkName}p> +
Field | +Description | +||||||||
---|---|---|---|---|---|---|---|---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||
+spec + + +DnsForwardingRulesets_VirtualNetworkLink_Spec + + + |
+
+ + +
|
+||||||||
+status + + +DnsForwardingRulesets_VirtualNetworkLink_STATUS + + + |
++ | +
+(Appears on:DnsForwardingRuleSetsVirtualNetworkLink) +
+Field | +Description | +
---|---|
+conditions + + +[]genruntime/conditions.Condition + + + |
+
+ Conditions: The observed state of the resource + |
+
+etag + +string + + |
+
+ Etag: ETag of the virtual network link. + |
+
+id + +string + + |
+
+ Id: Fully qualified resource ID for the resource. Ex - +/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}p> + |
+
+metadata + +map[string]string + + |
+
+ Metadata: Metadata attached to the virtual network link. + |
+
+name + +string + + |
+
+ Name: The name of the resource + |
+
+provisioningState + + +DnsresolverProvisioningState_STATUS + + + |
+
+ ProvisioningState: The current provisioning state of the virtual network link. This is a read-only property and any +attempt to set this value will be ignored. + |
+
+systemData + + +SystemData_STATUS + + + |
+
+ SystemData: Metadata pertaining to creation and last modification of the resource. + |
+
+type + +string + + |
+
+ Type: The type of the resource. E.g. “Microsoft.Compute/virtualMachines” or “Microsoft.Storage/storageAccounts” + |
+
+virtualNetwork + + +DnsresolverSubResource_STATUS + + + |
+
+ VirtualNetwork: The reference to the virtual network. This cannot be changed after creation. + |
+
Field | +Description | +
---|---|
+etag + +string + + |
+
+ Etag: ETag of the virtual network link. + |
+
+id + +string + + |
+
+ Id: Fully qualified resource ID for the resource. Ex - +/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}p> + |
+
+name + +string + + |
+
+ Name: The name of the resource + |
+
+properties + + +VirtualNetworkLinkProperties_STATUS_ARM + + + |
+
+ Properties: Properties of the virtual network link. + |
+
+systemData + + +SystemData_STATUS_ARM + + + |
+
+ SystemData: Metadata pertaining to creation and last modification of the resource. + |
+
+type + +string + + |
+
+ Type: The type of the resource. E.g. “Microsoft.Compute/virtualMachines” or “Microsoft.Storage/storageAccounts” + |
+
+(Appears on:DnsForwardingRuleSetsVirtualNetworkLink) +
+Field | +Description | +
---|---|
+azureName + +string + + |
+
+ AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it +doesn’t have to be. + |
+
+metadata + +map[string]string + + |
+
+ Metadata: Metadata attached to the virtual network link. + |
+
+owner + + +genruntime.KnownResourceReference + + + |
+
+ Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also +controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a +reference to a network.azure.com/DnsForwardingRuleset resource + |
+
+virtualNetwork + + +DnsresolverSubResource + + + |
+
+ VirtualNetwork: The reference to the virtual network. This cannot be changed after creation. + |
+
Field | +Description | +
---|---|
+name + +string + + |
++ | +
+properties + + +VirtualNetworkLinkProperties_ARM + + + |
+
+ Properties: Properties of the virtual network link. + |
+
string
alias)-(Appears on:DnsForwardingRuleset_STATUS, DnsForwardingRulesets_ForwardingRule_STATUS, DnsResolver_STATUS, DnsResolvers_InboundEndpoint_STATUS, DnsResolvers_OutboundEndpoint_STATUS) +(Appears on:DnsForwardingRuleset_STATUS, DnsForwardingRulesets_ForwardingRule_STATUS, DnsForwardingRulesets_VirtualNetworkLink_STATUS, DnsResolver_STATUS, DnsResolvers_InboundEndpoint_STATUS, DnsResolvers_OutboundEndpoint_STATUS)
The current provisioning state of the resource.
@@ -16931,7 +17357,7 @@ map[string]stringstring
alias)-(Appears on:DnsForwardingRulesetProperties_STATUS_ARM, DnsResolverProperties_STATUS_ARM, ForwardingRuleProperties_STATUS_ARM, InboundEndpointProperties_STATUS_ARM, OutboundEndpointProperties_STATUS_ARM) +(Appears on:DnsForwardingRulesetProperties_STATUS_ARM, DnsResolverProperties_STATUS_ARM, ForwardingRuleProperties_STATUS_ARM, InboundEndpointProperties_STATUS_ARM, OutboundEndpointProperties_STATUS_ARM, VirtualNetworkLinkProperties_STATUS_ARM)
The current provisioning state of the resource.
@@ -16960,7 +17386,7 @@ map[string]string-(Appears on:DnsForwardingRuleset_Spec, DnsResolver_Spec, DnsResolvers_OutboundEndpoint_Spec, IpConfiguration) +(Appears on:DnsForwardingRuleset_Spec, DnsForwardingRulesets_VirtualNetworkLink_Spec, DnsResolver_Spec, DnsResolvers_OutboundEndpoint_Spec, IpConfiguration)
Reference to another ARM resource.
@@ -16991,7 +17417,7 @@ genruntime.ResourceReference-(Appears on:DnsForwardingRulesetProperties_ARM, DnsResolverProperties_ARM, IpConfiguration_ARM, OutboundEndpointProperties_ARM) +(Appears on:DnsForwardingRulesetProperties_ARM, DnsResolverProperties_ARM, IpConfiguration_ARM, OutboundEndpointProperties_ARM, VirtualNetworkLinkProperties_ARM)
Reference to another ARM resource.
@@ -17019,7 +17445,7 @@ string-(Appears on:DnsForwardingRuleset_STATUS, DnsResolver_STATUS, DnsResolvers_OutboundEndpoint_STATUS, IpConfiguration_STATUS) +(Appears on:DnsForwardingRuleset_STATUS, DnsForwardingRulesets_VirtualNetworkLink_STATUS, DnsResolver_STATUS, DnsResolvers_OutboundEndpoint_STATUS, IpConfiguration_STATUS)
Reference to another ARM resource.
@@ -17048,7 +17474,7 @@ string-(Appears on:DnsForwardingRulesetProperties_STATUS_ARM, DnsResolverProperties_STATUS_ARM, IpConfiguration_STATUS_ARM, OutboundEndpointProperties_STATUS_ARM) +(Appears on:DnsForwardingRulesetProperties_STATUS_ARM, DnsResolverProperties_STATUS_ARM, IpConfiguration_STATUS_ARM, OutboundEndpointProperties_STATUS_ARM, VirtualNetworkLinkProperties_STATUS_ARM)
Reference to another ARM resource.
@@ -27339,7 +27765,7 @@ string-(Appears on:DnsForwardingRuleset_STATUS, DnsForwardingRulesets_ForwardingRule_STATUS, DnsResolver_STATUS, DnsResolvers_InboundEndpoint_STATUS, DnsResolvers_OutboundEndpoint_STATUS) +(Appears on:DnsForwardingRuleset_STATUS, DnsForwardingRulesets_ForwardingRule_STATUS, DnsForwardingRulesets_VirtualNetworkLink_STATUS, DnsResolver_STATUS, DnsResolvers_InboundEndpoint_STATUS, DnsResolvers_OutboundEndpoint_STATUS)
Metadata pertaining to creation and last modification of the resource.
@@ -27427,7 +27853,7 @@ SystemData_LastModifiedByType_STATUS-(Appears on:DnsForwardingRuleset_STATUS_ARM, DnsForwardingRulesets_ForwardingRule_STATUS_ARM, DnsResolver_STATUS_ARM, DnsResolvers_InboundEndpoint_STATUS_ARM, DnsResolvers_OutboundEndpoint_STATUS_ARM) +(Appears on:DnsForwardingRuleset_STATUS_ARM, DnsForwardingRulesets_ForwardingRule_STATUS_ARM, DnsForwardingRulesets_VirtualNetworkLink_STATUS_ARM, DnsResolver_STATUS_ARM, DnsResolvers_InboundEndpoint_STATUS_ARM, DnsResolvers_OutboundEndpoint_STATUS_ARM)
Metadata pertaining to creation and last modification of the resource.
@@ -27723,4 +28149,102 @@ genruntime.ResourceReferenceInformation about the user assigned identity for the resource
+(Appears on:DnsForwardingRulesets_VirtualNetworkLink_Spec_ARM) +
+Represents the properties of a virtual network link.
+Field | +Description | +
---|---|
+metadata + +map[string]string + + |
+
+ Metadata: Metadata attached to the virtual network link. + |
+
+virtualNetwork + + +DnsresolverSubResource_ARM + + + |
+
+ VirtualNetwork: The reference to the virtual network. This cannot be changed after creation. + |
+
+(Appears on:DnsForwardingRulesets_VirtualNetworkLink_STATUS_ARM) +
+Represents the properties of a virtual network link.
+Field | +Description | +
---|---|
+metadata + +map[string]string + + |
+
+ Metadata: Metadata attached to the virtual network link. + |
+
+provisioningState + + +DnsresolverProvisioningState_STATUS_ARM + + + |
+
+ ProvisioningState: The current provisioning state of the virtual network link. This is a read-only property and any +attempt to set this value will be ignored. + |
+
+virtualNetwork + + +DnsresolverSubResource_STATUS_ARM + + + |
+
+ VirtualNetwork: The reference to the virtual network. This cannot be changed after creation. + |
+
Generator information: +- Generated from: /network/resource-manager/Microsoft.Network/stable/2024-01-01/applicationSecurityGroup.json +- ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName}p> +
Field | +Description | +||||||||
---|---|---|---|---|---|---|---|---|---|
+metadata + + +Kubernetes meta/v1.ObjectMeta + + + |
+
+Refer to the Kubernetes API documentation for the fields of the
+metadata field.
+ |
+||||||||
+spec + + +ApplicationSecurityGroup_Spec + + + |
+
+ + +
|
+||||||||
+status + + +ApplicationSecurityGroup_STATUS + + + |
++ | +
+(Appears on:ApplicationSecurityGroup_STATUS_ARM) +
+Application security group properties.
+Field | +Description | +
---|---|
+provisioningState + + +ProvisioningState_STATUS_ARM + + + |
+
+ ProvisioningState: The provisioning state of the application security group resource. + |
+
+resourceGuid + +string + + |
+
+ ResourceGuid: The resource GUID property of the application security group resource. It uniquely identifies a resource, +even if the user changes its name or migrate the resource across subscriptions or resource groups. + |
+
+(Appears on:ApplicationSecurityGroup) +
+An application security group in a resource group.
+Field | +Description | +
---|---|
+conditions + + +[]genruntime/conditions.Condition + + + |
+
+ Conditions: The observed state of the resource + |
+
+etag + +string + + |
+
+ Etag: A unique read-only string that changes whenever the resource is updated. + |
+
+id + +string + + |
+
+ Id: Resource ID. + |
+
+location + +string + + |
+
+ Location: Resource location. + |
+
+name + +string + + |
+
+ Name: Resource name. + |
+
+provisioningState + + +ProvisioningState_STATUS + + + |
+
+ ProvisioningState: The provisioning state of the application security group resource. + |
+
+resourceGuid + +string + + |
+
+ ResourceGuid: The resource GUID property of the application security group resource. It uniquely identifies a resource, +even if the user changes its name or migrate the resource across subscriptions or resource groups. + |
+
+tags + +map[string]string + + |
+
+ Tags: Resource tags. + |
+
+type + +string + + |
+
+ Type: Resource type. + |
+
An application security group in a resource group.
+Field | +Description | +
---|---|
+etag + +string + + |
+
+ Etag: A unique read-only string that changes whenever the resource is updated. + |
+
+id + +string + + |
+
+ Id: Resource ID. + |
+
+location + +string + + |
+
+ Location: Resource location. + |
+
+name + +string + + |
+
+ Name: Resource name. + |
+
+properties + + +ApplicationSecurityGroupPropertiesFormat_STATUS_ARM + + + |
+
+ Properties: Properties of the application security group. + |
+
+tags + +map[string]string + + |
+
+ Tags: Resource tags. + |
+
+type + +string + + |
+
+ Type: Resource type. + |
+
+(Appears on:ApplicationSecurityGroup) +
+Field | +Description | +
---|---|
+azureName + +string + + |
+
+ AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it +doesn’t have to be. + |
+
+location + +string + + |
+
+ Location: Resource location. + |
+
+owner + + +genruntime.KnownResourceReference + + + |
+
+ Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also +controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a +reference to a resources.azure.com/ResourceGroup resource + |
+
+tags + +map[string]string + + |
+
+ Tags: Resource tags. + |
+
Field | +Description | +
---|---|
+location + +string + + |
+
+ Location: Resource location. + |
+
+name + +string + + |
++ | +
+tags + +map[string]string + + |
+
+ Tags: Resource tags. + |
+
@@ -4668,7 +5147,7 @@ PolicySettings_State_STATUS_ARM
string
alias)-(Appears on:ApplicationGatewayWebApplicationFirewallPolicy_STATUS) +(Appears on:ApplicationGatewayWebApplicationFirewallPolicy_STATUS, ApplicationSecurityGroup_STATUS)
The current provisioning state.
@@ -4693,7 +5172,7 @@ PolicySettings_State_STATUS_ARMstring
alias)-(Appears on:WebApplicationFirewallPolicyPropertiesFormat_STATUS_ARM) +(Appears on:ApplicationSecurityGroupPropertiesFormat_STATUS_ARM, WebApplicationFirewallPolicyPropertiesFormat_STATUS_ARM)
The current provisioning state.
diff --git a/docs/hugo/content/reference/storage/v1api20210401.md b/docs/hugo/content/reference/storage/v1api20210401.md index 75f3ca2764c..cc2c3644be7 100644 --- a/docs/hugo/content/reference/storage/v1api20210401.md +++ b/docs/hugo/content/reference/storage/v1api20210401.md @@ -8480,9 +8480,7 @@ DateAfterCreation_STATUS_ARMbypass
bypass
string
alias)-(Appears on:NetworkRuleSet) -
-Value | -Description | -
---|---|
"AzureServices" |
-- |
"Logging" |
-- |
"Metrics" |
-- |
"None" |
-- |
string
alias)-(Appears on:NetworkRuleSet_ARM) -
-Value | -Description | -
---|---|
"AzureServices" |
-- |
"Logging" |
-- |
"Metrics" |
-- |
"None" |
-- |
string
alias)diff --git a/docs/hugo/content/reference/storage/v1api20220901.md b/docs/hugo/content/reference/storage/v1api20220901.md index a2d604923bb..f909c9df418 100644 --- a/docs/hugo/content/reference/storage/v1api20220901.md +++ b/docs/hugo/content/reference/storage/v1api20220901.md @@ -10927,9 +10927,7 @@ bool
bypass
bypass
string
alias)-(Appears on:NetworkRuleSet) -
-Value | -Description | -
---|---|
"AzureServices" |
-- |
"Logging" |
-- |
"Metrics" |
-- |
"None" |
-- |
string
alias)-(Appears on:NetworkRuleSet_ARM) -
-Value | -Description | -
---|---|
"AzureServices" |
-- |
"Logging" |
-- |
"Metrics" |
-- |
"None" |
-- |
string
alias)diff --git a/docs/hugo/content/reference/storage/v1api20230101.md b/docs/hugo/content/reference/storage/v1api20230101.md index 6fe6e7e0e73..027cd067b48 100644 --- a/docs/hugo/content/reference/storage/v1api20230101.md +++ b/docs/hugo/content/reference/storage/v1api20230101.md @@ -11105,9 +11105,7 @@ bool
bypass
bypass
string
alias)-(Appears on:NetworkRuleSet) -
-Value | -Description | -
---|---|
"AzureServices" |
-- |
"Logging" |
-- |
"Metrics" |
-- |
"None" |
-- |
string
alias)-(Appears on:NetworkRuleSet_ARM) -
-Value | -Description | -
---|---|
"AzureServices" |
-- |
"Logging" |
-- |
"Metrics" |
-- |
"None" |
-- |
string
alias)diff --git a/v2/api/network/customizations/application_security_group_extension_types_gen.go b/v2/api/network/customizations/application_security_group_extension_types_gen.go new file mode 100644 index 00000000000..31b07844f07 --- /dev/null +++ b/v2/api/network/customizations/application_security_group_extension_types_gen.go @@ -0,0 +1,20 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package customizations + +import ( + v20240101 "github.com/Azure/azure-service-operator/v2/api/network/v1api20240101" + storage "github.com/Azure/azure-service-operator/v2/api/network/v1api20240101/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +type ApplicationSecurityGroupExtension struct { +} + +// GetExtendedResources Returns the KubernetesResource slice for Resource versions +func (extension *ApplicationSecurityGroupExtension) GetExtendedResources() []genruntime.KubernetesResource { + return []genruntime.KubernetesResource{ + &v20240101.ApplicationSecurityGroup{}, + &storage.ApplicationSecurityGroup{}} +} diff --git a/v2/api/network/customizations/structure.txt b/v2/api/network/customizations/structure.txt index 2df088ff639..de15689a148 100644 --- a/v2/api/network/customizations/structure.txt +++ b/v2/api/network/customizations/structure.txt @@ -2,6 +2,7 @@ github.com/Azure/azure-service-operator/v2/api/network/customizations --------------------------------------------------------------------- ApplicationGatewayExtension: Object (0 properties) +ApplicationSecurityGroupExtension: Object (0 properties) BastionHostExtension: Object (0 properties) DnsForwardingRuleSetsForwardingRuleExtension: Object (0 properties) DnsForwardingRuleSetsVirtualNetworkLinkExtension: Object (0 properties) diff --git a/v2/api/network/v1api20240101/application_security_group_spec_arm_types_gen.go b/v2/api/network/v1api20240101/application_security_group_spec_arm_types_gen.go new file mode 100644 index 00000000000..d5a999fc9ca --- /dev/null +++ b/v2/api/network/v1api20240101/application_security_group_spec_arm_types_gen.go @@ -0,0 +1,32 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20240101 + +import "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + +type ApplicationSecurityGroup_Spec_ARM struct { + // Location: Resource location. + Location *string `json:"location,omitempty"` + Name string `json:"name,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` +} + +var _ genruntime.ARMResourceSpec = &ApplicationSecurityGroup_Spec_ARM{} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2024-01-01" +func (group ApplicationSecurityGroup_Spec_ARM) GetAPIVersion() string { + return "2024-01-01" +} + +// GetName returns the Name of the resource +func (group *ApplicationSecurityGroup_Spec_ARM) GetName() string { + return group.Name +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.Network/applicationSecurityGroups" +func (group *ApplicationSecurityGroup_Spec_ARM) GetType() string { + return "Microsoft.Network/applicationSecurityGroups" +} diff --git a/v2/api/network/v1api20240101/application_security_group_spec_arm_types_gen_test.go b/v2/api/network/v1api20240101/application_security_group_spec_arm_types_gen_test.go new file mode 100644 index 00000000000..00c600e02c5 --- /dev/null +++ b/v2/api/network/v1api20240101/application_security_group_spec_arm_types_gen_test.go @@ -0,0 +1,83 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20240101 + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ApplicationSecurityGroup_Spec_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApplicationSecurityGroup_Spec_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApplicationSecurityGroup_Spec_ARM, ApplicationSecurityGroup_Spec_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApplicationSecurityGroup_Spec_ARM runs a test to see if a specific instance of ApplicationSecurityGroup_Spec_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForApplicationSecurityGroup_Spec_ARM(subject ApplicationSecurityGroup_Spec_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApplicationSecurityGroup_Spec_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ApplicationSecurityGroup_Spec_ARM instances for property testing - lazily instantiated by +// ApplicationSecurityGroup_Spec_ARMGenerator() +var applicationSecurityGroup_Spec_ARMGenerator gopter.Gen + +// ApplicationSecurityGroup_Spec_ARMGenerator returns a generator of ApplicationSecurityGroup_Spec_ARM instances for property testing. +func ApplicationSecurityGroup_Spec_ARMGenerator() gopter.Gen { + if applicationSecurityGroup_Spec_ARMGenerator != nil { + return applicationSecurityGroup_Spec_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApplicationSecurityGroup_Spec_ARM(generators) + applicationSecurityGroup_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(ApplicationSecurityGroup_Spec_ARM{}), generators) + + return applicationSecurityGroup_Spec_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForApplicationSecurityGroup_Spec_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApplicationSecurityGroup_Spec_ARM(gens map[string]gopter.Gen) { + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.AlphaString() + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} diff --git a/v2/api/network/v1api20240101/application_security_group_status_arm_types_gen.go b/v2/api/network/v1api20240101/application_security_group_status_arm_types_gen.go new file mode 100644 index 00000000000..106e92c2689 --- /dev/null +++ b/v2/api/network/v1api20240101/application_security_group_status_arm_types_gen.go @@ -0,0 +1,38 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20240101 + +// An application security group in a resource group. +type ApplicationSecurityGroup_STATUS_ARM struct { + // Etag: A unique read-only string that changes whenever the resource is updated. + Etag *string `json:"etag,omitempty"` + + // Id: Resource ID. + Id *string `json:"id,omitempty"` + + // Location: Resource location. + Location *string `json:"location,omitempty"` + + // Name: Resource name. + Name *string `json:"name,omitempty"` + + // Properties: Properties of the application security group. + Properties *ApplicationSecurityGroupPropertiesFormat_STATUS_ARM `json:"properties,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // Type: Resource type. + Type *string `json:"type,omitempty"` +} + +// Application security group properties. +type ApplicationSecurityGroupPropertiesFormat_STATUS_ARM struct { + // ProvisioningState: The provisioning state of the application security group resource. + ProvisioningState *ProvisioningState_STATUS_ARM `json:"provisioningState,omitempty"` + + // ResourceGuid: The resource GUID property of the application security group resource. It uniquely identifies a resource, + // even if the user changes its name or migrate the resource across subscriptions or resource groups. + ResourceGuid *string `json:"resourceGuid,omitempty"` +} diff --git a/v2/api/network/v1api20240101/application_security_group_status_arm_types_gen_test.go b/v2/api/network/v1api20240101/application_security_group_status_arm_types_gen_test.go new file mode 100644 index 00000000000..c176ee899dc --- /dev/null +++ b/v2/api/network/v1api20240101/application_security_group_status_arm_types_gen_test.go @@ -0,0 +1,166 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20240101 + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ApplicationSecurityGroupPropertiesFormat_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApplicationSecurityGroupPropertiesFormat_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApplicationSecurityGroupPropertiesFormat_STATUS_ARM, ApplicationSecurityGroupPropertiesFormat_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApplicationSecurityGroupPropertiesFormat_STATUS_ARM runs a test to see if a specific instance of ApplicationSecurityGroupPropertiesFormat_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForApplicationSecurityGroupPropertiesFormat_STATUS_ARM(subject ApplicationSecurityGroupPropertiesFormat_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApplicationSecurityGroupPropertiesFormat_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ApplicationSecurityGroupPropertiesFormat_STATUS_ARM instances for property testing - lazily instantiated +// by ApplicationSecurityGroupPropertiesFormat_STATUS_ARMGenerator() +var applicationSecurityGroupPropertiesFormat_STATUS_ARMGenerator gopter.Gen + +// ApplicationSecurityGroupPropertiesFormat_STATUS_ARMGenerator returns a generator of ApplicationSecurityGroupPropertiesFormat_STATUS_ARM instances for property testing. +func ApplicationSecurityGroupPropertiesFormat_STATUS_ARMGenerator() gopter.Gen { + if applicationSecurityGroupPropertiesFormat_STATUS_ARMGenerator != nil { + return applicationSecurityGroupPropertiesFormat_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApplicationSecurityGroupPropertiesFormat_STATUS_ARM(generators) + applicationSecurityGroupPropertiesFormat_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ApplicationSecurityGroupPropertiesFormat_STATUS_ARM{}), generators) + + return applicationSecurityGroupPropertiesFormat_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForApplicationSecurityGroupPropertiesFormat_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApplicationSecurityGroupPropertiesFormat_STATUS_ARM(gens map[string]gopter.Gen) { + gens["ProvisioningState"] = gen.PtrOf(gen.OneConstOf( + ProvisioningState_STATUS_ARM_Deleting, + ProvisioningState_STATUS_ARM_Failed, + ProvisioningState_STATUS_ARM_Succeeded, + ProvisioningState_STATUS_ARM_Updating)) + gens["ResourceGuid"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ApplicationSecurityGroup_STATUS_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApplicationSecurityGroup_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApplicationSecurityGroup_STATUS_ARM, ApplicationSecurityGroup_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApplicationSecurityGroup_STATUS_ARM runs a test to see if a specific instance of ApplicationSecurityGroup_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForApplicationSecurityGroup_STATUS_ARM(subject ApplicationSecurityGroup_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApplicationSecurityGroup_STATUS_ARM + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ApplicationSecurityGroup_STATUS_ARM instances for property testing - lazily instantiated by +// ApplicationSecurityGroup_STATUS_ARMGenerator() +var applicationSecurityGroup_STATUS_ARMGenerator gopter.Gen + +// ApplicationSecurityGroup_STATUS_ARMGenerator returns a generator of ApplicationSecurityGroup_STATUS_ARM instances for property testing. +// We first initialize applicationSecurityGroup_STATUS_ARMGenerator with a simplified generator based on the +// fields with primitive types then replacing it with a more complex one that also handles complex fields +// to ensure any cycles in the object graph properly terminate. +func ApplicationSecurityGroup_STATUS_ARMGenerator() gopter.Gen { + if applicationSecurityGroup_STATUS_ARMGenerator != nil { + return applicationSecurityGroup_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApplicationSecurityGroup_STATUS_ARM(generators) + applicationSecurityGroup_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ApplicationSecurityGroup_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApplicationSecurityGroup_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForApplicationSecurityGroup_STATUS_ARM(generators) + applicationSecurityGroup_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ApplicationSecurityGroup_STATUS_ARM{}), generators) + + return applicationSecurityGroup_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForApplicationSecurityGroup_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApplicationSecurityGroup_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Etag"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForApplicationSecurityGroup_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForApplicationSecurityGroup_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Properties"] = gen.PtrOf(ApplicationSecurityGroupPropertiesFormat_STATUS_ARMGenerator()) +} diff --git a/v2/api/network/v1api20240101/application_security_group_types_gen.go b/v2/api/network/v1api20240101/application_security_group_types_gen.go new file mode 100644 index 00000000000..65a42146fba --- /dev/null +++ b/v2/api/network/v1api20240101/application_security_group_types_gen.go @@ -0,0 +1,817 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20240101 + +import ( + "fmt" + storage "github.com/Azure/azure-service-operator/v2/api/network/v1api20240101/storage" + "github.com/Azure/azure-service-operator/v2/internal/reflecthelpers" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/conversion" + "sigs.k8s.io/controller-runtime/pkg/webhook/admission" +) + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" +// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message" +// Generator information: +// - Generated from: /network/resource-manager/Microsoft.Network/stable/2024-01-01/applicationSecurityGroup.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName} +type ApplicationSecurityGroup struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec ApplicationSecurityGroup_Spec `json:"spec,omitempty"` + Status ApplicationSecurityGroup_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &ApplicationSecurityGroup{} + +// GetConditions returns the conditions of the resource +func (group *ApplicationSecurityGroup) GetConditions() conditions.Conditions { + return group.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (group *ApplicationSecurityGroup) SetConditions(conditions conditions.Conditions) { + group.Status.Conditions = conditions +} + +var _ conversion.Convertible = &ApplicationSecurityGroup{} + +// ConvertFrom populates our ApplicationSecurityGroup from the provided hub ApplicationSecurityGroup +func (group *ApplicationSecurityGroup) ConvertFrom(hub conversion.Hub) error { + source, ok := hub.(*storage.ApplicationSecurityGroup) + if !ok { + return fmt.Errorf("expected network/v1api20240101/storage/ApplicationSecurityGroup but received %T instead", hub) + } + + return group.AssignProperties_From_ApplicationSecurityGroup(source) +} + +// ConvertTo populates the provided hub ApplicationSecurityGroup from our ApplicationSecurityGroup +func (group *ApplicationSecurityGroup) ConvertTo(hub conversion.Hub) error { + destination, ok := hub.(*storage.ApplicationSecurityGroup) + if !ok { + return fmt.Errorf("expected network/v1api20240101/storage/ApplicationSecurityGroup but received %T instead", hub) + } + + return group.AssignProperties_To_ApplicationSecurityGroup(destination) +} + +// +kubebuilder:webhook:path=/mutate-network-azure-com-v1api20240101-applicationsecuritygroup,mutating=true,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=network.azure.com,resources=applicationsecuritygroups,verbs=create;update,versions=v1api20240101,name=default.v1api20240101.applicationsecuritygroups.network.azure.com,admissionReviewVersions=v1 + +var _ admission.Defaulter = &ApplicationSecurityGroup{} + +// Default applies defaults to the ApplicationSecurityGroup resource +func (group *ApplicationSecurityGroup) Default() { + group.defaultImpl() + var temp any = group + if runtimeDefaulter, ok := temp.(genruntime.Defaulter); ok { + runtimeDefaulter.CustomDefault() + } +} + +// defaultAzureName defaults the Azure name of the resource to the Kubernetes name +func (group *ApplicationSecurityGroup) defaultAzureName() { + if group.Spec.AzureName == "" { + group.Spec.AzureName = group.Name + } +} + +// defaultImpl applies the code generated defaults to the ApplicationSecurityGroup resource +func (group *ApplicationSecurityGroup) defaultImpl() { group.defaultAzureName() } + +var _ genruntime.ImportableResource = &ApplicationSecurityGroup{} + +// InitializeSpec initializes the spec for this resource from the given status +func (group *ApplicationSecurityGroup) InitializeSpec(status genruntime.ConvertibleStatus) error { + if s, ok := status.(*ApplicationSecurityGroup_STATUS); ok { + return group.Spec.Initialize_From_ApplicationSecurityGroup_STATUS(s) + } + + return fmt.Errorf("expected Status of type ApplicationSecurityGroup_STATUS but received %T instead", status) +} + +var _ genruntime.KubernetesResource = &ApplicationSecurityGroup{} + +// AzureName returns the Azure name of the resource +func (group *ApplicationSecurityGroup) AzureName() string { + return group.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2024-01-01" +func (group ApplicationSecurityGroup) GetAPIVersion() string { + return "2024-01-01" +} + +// GetResourceScope returns the scope of the resource +func (group *ApplicationSecurityGroup) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (group *ApplicationSecurityGroup) GetSpec() genruntime.ConvertibleSpec { + return &group.Spec +} + +// GetStatus returns the status of this resource +func (group *ApplicationSecurityGroup) GetStatus() genruntime.ConvertibleStatus { + return &group.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (group *ApplicationSecurityGroup) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.Network/applicationSecurityGroups" +func (group *ApplicationSecurityGroup) GetType() string { + return "Microsoft.Network/applicationSecurityGroups" +} + +// NewEmptyStatus returns a new empty (blank) status +func (group *ApplicationSecurityGroup) NewEmptyStatus() genruntime.ConvertibleStatus { + return &ApplicationSecurityGroup_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (group *ApplicationSecurityGroup) Owner() *genruntime.ResourceReference { + ownerGroup, ownerKind := genruntime.LookupOwnerGroupKind(group.Spec) + return group.Spec.Owner.AsResourceReference(ownerGroup, ownerKind) +} + +// SetStatus sets the status of this resource +func (group *ApplicationSecurityGroup) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*ApplicationSecurityGroup_STATUS); ok { + group.Status = *st + return nil + } + + // Convert status to required version + var st ApplicationSecurityGroup_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + group.Status = st + return nil +} + +// +kubebuilder:webhook:path=/validate-network-azure-com-v1api20240101-applicationsecuritygroup,mutating=false,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=network.azure.com,resources=applicationsecuritygroups,verbs=create;update,versions=v1api20240101,name=validate.v1api20240101.applicationsecuritygroups.network.azure.com,admissionReviewVersions=v1 + +var _ admission.Validator = &ApplicationSecurityGroup{} + +// ValidateCreate validates the creation of the resource +func (group *ApplicationSecurityGroup) ValidateCreate() (admission.Warnings, error) { + validations := group.createValidations() + var temp any = group + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.CreateValidations()...) + } + return genruntime.ValidateCreate(validations) +} + +// ValidateDelete validates the deletion of the resource +func (group *ApplicationSecurityGroup) ValidateDelete() (admission.Warnings, error) { + validations := group.deleteValidations() + var temp any = group + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.DeleteValidations()...) + } + return genruntime.ValidateDelete(validations) +} + +// ValidateUpdate validates an update of the resource +func (group *ApplicationSecurityGroup) ValidateUpdate(old runtime.Object) (admission.Warnings, error) { + validations := group.updateValidations() + var temp any = group + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.UpdateValidations()...) + } + return genruntime.ValidateUpdate(old, validations) +} + +// createValidations validates the creation of the resource +func (group *ApplicationSecurityGroup) createValidations() []func() (admission.Warnings, error) { + return []func() (admission.Warnings, error){group.validateResourceReferences, group.validateOwnerReference} +} + +// deleteValidations validates the deletion of the resource +func (group *ApplicationSecurityGroup) deleteValidations() []func() (admission.Warnings, error) { + return nil +} + +// updateValidations validates the update of the resource +func (group *ApplicationSecurityGroup) updateValidations() []func(old runtime.Object) (admission.Warnings, error) { + return []func(old runtime.Object) (admission.Warnings, error){ + func(old runtime.Object) (admission.Warnings, error) { + return group.validateResourceReferences() + }, + group.validateWriteOnceProperties, + func(old runtime.Object) (admission.Warnings, error) { + return group.validateOwnerReference() + }, + } +} + +// validateOwnerReference validates the owner field +func (group *ApplicationSecurityGroup) validateOwnerReference() (admission.Warnings, error) { + return genruntime.ValidateOwner(group) +} + +// validateResourceReferences validates all resource references +func (group *ApplicationSecurityGroup) validateResourceReferences() (admission.Warnings, error) { + refs, err := reflecthelpers.FindResourceReferences(&group.Spec) + if err != nil { + return nil, err + } + return genruntime.ValidateResourceReferences(refs) +} + +// validateWriteOnceProperties validates all WriteOnce properties +func (group *ApplicationSecurityGroup) validateWriteOnceProperties(old runtime.Object) (admission.Warnings, error) { + oldObj, ok := old.(*ApplicationSecurityGroup) + if !ok { + return nil, nil + } + + return genruntime.ValidateWriteOnceProperties(oldObj, group) +} + +// AssignProperties_From_ApplicationSecurityGroup populates our ApplicationSecurityGroup from the provided source ApplicationSecurityGroup +func (group *ApplicationSecurityGroup) AssignProperties_From_ApplicationSecurityGroup(source *storage.ApplicationSecurityGroup) error { + + // ObjectMeta + group.ObjectMeta = *source.ObjectMeta.DeepCopy() + + // Spec + var spec ApplicationSecurityGroup_Spec + err := spec.AssignProperties_From_ApplicationSecurityGroup_Spec(&source.Spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ApplicationSecurityGroup_Spec() to populate field Spec") + } + group.Spec = spec + + // Status + var status ApplicationSecurityGroup_STATUS + err = status.AssignProperties_From_ApplicationSecurityGroup_STATUS(&source.Status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ApplicationSecurityGroup_STATUS() to populate field Status") + } + group.Status = status + + // No error + return nil +} + +// AssignProperties_To_ApplicationSecurityGroup populates the provided destination ApplicationSecurityGroup from our ApplicationSecurityGroup +func (group *ApplicationSecurityGroup) AssignProperties_To_ApplicationSecurityGroup(destination *storage.ApplicationSecurityGroup) error { + + // ObjectMeta + destination.ObjectMeta = *group.ObjectMeta.DeepCopy() + + // Spec + var spec storage.ApplicationSecurityGroup_Spec + err := group.Spec.AssignProperties_To_ApplicationSecurityGroup_Spec(&spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ApplicationSecurityGroup_Spec() to populate field Spec") + } + destination.Spec = spec + + // Status + var status storage.ApplicationSecurityGroup_STATUS + err = group.Status.AssignProperties_To_ApplicationSecurityGroup_STATUS(&status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ApplicationSecurityGroup_STATUS() to populate field Status") + } + destination.Status = status + + // No error + return nil +} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (group *ApplicationSecurityGroup) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: group.Spec.OriginalVersion(), + Kind: "ApplicationSecurityGroup", + } +} + +// +kubebuilder:object:root=true +// Generator information: +// - Generated from: /network/resource-manager/Microsoft.Network/stable/2024-01-01/applicationSecurityGroup.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName} +type ApplicationSecurityGroupList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ApplicationSecurityGroup `json:"items"` +} + +// +kubebuilder:validation:Enum={"2024-01-01"} +type APIVersion string + +const APIVersion_Value = APIVersion("2024-01-01") + +type ApplicationSecurityGroup_Spec struct { + // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it + // doesn't have to be. + AzureName string `json:"azureName,omitempty"` + + // Location: Resource location. + Location *string `json:"location,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a + // reference to a resources.azure.com/ResourceGroup resource + Owner *genruntime.KnownResourceReference `group:"resources.azure.com" json:"owner,omitempty" kind:"ResourceGroup"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` +} + +var _ genruntime.ARMTransformer = &ApplicationSecurityGroup_Spec{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (group *ApplicationSecurityGroup_Spec) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if group == nil { + return nil, nil + } + result := &ApplicationSecurityGroup_Spec_ARM{} + + // Set property "Location": + if group.Location != nil { + location := *group.Location + result.Location = &location + } + + // Set property "Name": + result.Name = resolved.Name + + // Set property "Tags": + if group.Tags != nil { + result.Tags = make(map[string]string, len(group.Tags)) + for key, value := range group.Tags { + result.Tags[key] = value + } + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (group *ApplicationSecurityGroup_Spec) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ApplicationSecurityGroup_Spec_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (group *ApplicationSecurityGroup_Spec) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ApplicationSecurityGroup_Spec_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ApplicationSecurityGroup_Spec_ARM, got %T", armInput) + } + + // Set property "AzureName": + group.SetAzureName(genruntime.ExtractKubernetesResourceNameFromARMName(typedInput.Name)) + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + group.Location = &location + } + + // Set property "Owner": + group.Owner = &genruntime.KnownResourceReference{ + Name: owner.Name, + ARMID: owner.ARMID, + } + + // Set property "Tags": + if typedInput.Tags != nil { + group.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + group.Tags[key] = value + } + } + + // No error + return nil +} + +var _ genruntime.ConvertibleSpec = &ApplicationSecurityGroup_Spec{} + +// ConvertSpecFrom populates our ApplicationSecurityGroup_Spec from the provided source +func (group *ApplicationSecurityGroup_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + src, ok := source.(*storage.ApplicationSecurityGroup_Spec) + if ok { + // Populate our instance from source + return group.AssignProperties_From_ApplicationSecurityGroup_Spec(src) + } + + // Convert to an intermediate form + src = &storage.ApplicationSecurityGroup_Spec{} + err := src.ConvertSpecFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecFrom()") + } + + // Update our instance from src + err = group.AssignProperties_From_ApplicationSecurityGroup_Spec(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecFrom()") + } + + return nil +} + +// ConvertSpecTo populates the provided destination from our ApplicationSecurityGroup_Spec +func (group *ApplicationSecurityGroup_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + dst, ok := destination.(*storage.ApplicationSecurityGroup_Spec) + if ok { + // Populate destination from our instance + return group.AssignProperties_To_ApplicationSecurityGroup_Spec(dst) + } + + // Convert to an intermediate form + dst = &storage.ApplicationSecurityGroup_Spec{} + err := group.AssignProperties_To_ApplicationSecurityGroup_Spec(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecTo()") + } + + // Update dst from our instance + err = dst.ConvertSpecTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecTo()") + } + + return nil +} + +// AssignProperties_From_ApplicationSecurityGroup_Spec populates our ApplicationSecurityGroup_Spec from the provided source ApplicationSecurityGroup_Spec +func (group *ApplicationSecurityGroup_Spec) AssignProperties_From_ApplicationSecurityGroup_Spec(source *storage.ApplicationSecurityGroup_Spec) error { + + // AzureName + group.AzureName = source.AzureName + + // Location + group.Location = genruntime.ClonePointerToString(source.Location) + + // Owner + if source.Owner != nil { + owner := source.Owner.Copy() + group.Owner = &owner + } else { + group.Owner = nil + } + + // Tags + group.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // No error + return nil +} + +// AssignProperties_To_ApplicationSecurityGroup_Spec populates the provided destination ApplicationSecurityGroup_Spec from our ApplicationSecurityGroup_Spec +func (group *ApplicationSecurityGroup_Spec) AssignProperties_To_ApplicationSecurityGroup_Spec(destination *storage.ApplicationSecurityGroup_Spec) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AzureName + destination.AzureName = group.AzureName + + // Location + destination.Location = genruntime.ClonePointerToString(group.Location) + + // OriginalVersion + destination.OriginalVersion = group.OriginalVersion() + + // Owner + if group.Owner != nil { + owner := group.Owner.Copy() + destination.Owner = &owner + } else { + destination.Owner = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(group.Tags) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ApplicationSecurityGroup_STATUS populates our ApplicationSecurityGroup_Spec from the provided source ApplicationSecurityGroup_STATUS +func (group *ApplicationSecurityGroup_Spec) Initialize_From_ApplicationSecurityGroup_STATUS(source *ApplicationSecurityGroup_STATUS) error { + + // Location + group.Location = genruntime.ClonePointerToString(source.Location) + + // Tags + group.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // No error + return nil +} + +// OriginalVersion returns the original API version used to create the resource. +func (group *ApplicationSecurityGroup_Spec) OriginalVersion() string { + return GroupVersion.Version +} + +// SetAzureName sets the Azure name of the resource +func (group *ApplicationSecurityGroup_Spec) SetAzureName(azureName string) { + group.AzureName = azureName +} + +// An application security group in a resource group. +type ApplicationSecurityGroup_STATUS struct { + // Conditions: The observed state of the resource + Conditions []conditions.Condition `json:"conditions,omitempty"` + + // Etag: A unique read-only string that changes whenever the resource is updated. + Etag *string `json:"etag,omitempty"` + + // Id: Resource ID. + Id *string `json:"id,omitempty"` + + // Location: Resource location. + Location *string `json:"location,omitempty"` + + // Name: Resource name. + Name *string `json:"name,omitempty"` + + // ProvisioningState: The provisioning state of the application security group resource. + ProvisioningState *ProvisioningState_STATUS `json:"provisioningState,omitempty"` + + // ResourceGuid: The resource GUID property of the application security group resource. It uniquely identifies a resource, + // even if the user changes its name or migrate the resource across subscriptions or resource groups. + ResourceGuid *string `json:"resourceGuid,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // Type: Resource type. + Type *string `json:"type,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &ApplicationSecurityGroup_STATUS{} + +// ConvertStatusFrom populates our ApplicationSecurityGroup_STATUS from the provided source +func (group *ApplicationSecurityGroup_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + src, ok := source.(*storage.ApplicationSecurityGroup_STATUS) + if ok { + // Populate our instance from source + return group.AssignProperties_From_ApplicationSecurityGroup_STATUS(src) + } + + // Convert to an intermediate form + src = &storage.ApplicationSecurityGroup_STATUS{} + err := src.ConvertStatusFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusFrom()") + } + + // Update our instance from src + err = group.AssignProperties_From_ApplicationSecurityGroup_STATUS(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusFrom()") + } + + return nil +} + +// ConvertStatusTo populates the provided destination from our ApplicationSecurityGroup_STATUS +func (group *ApplicationSecurityGroup_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + dst, ok := destination.(*storage.ApplicationSecurityGroup_STATUS) + if ok { + // Populate destination from our instance + return group.AssignProperties_To_ApplicationSecurityGroup_STATUS(dst) + } + + // Convert to an intermediate form + dst = &storage.ApplicationSecurityGroup_STATUS{} + err := group.AssignProperties_To_ApplicationSecurityGroup_STATUS(dst) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusTo()") + } + + // Update dst from our instance + err = dst.ConvertStatusTo(destination) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusTo()") + } + + return nil +} + +var _ genruntime.FromARMConverter = &ApplicationSecurityGroup_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (group *ApplicationSecurityGroup_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ApplicationSecurityGroup_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (group *ApplicationSecurityGroup_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ApplicationSecurityGroup_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ApplicationSecurityGroup_STATUS_ARM, got %T", armInput) + } + + // no assignment for property "Conditions" + + // Set property "Etag": + if typedInput.Etag != nil { + etag := *typedInput.Etag + group.Etag = &etag + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + group.Id = &id + } + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + group.Location = &location + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + group.Name = &name + } + + // Set property "ProvisioningState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ProvisioningState != nil { + var temp string + temp = string(*typedInput.Properties.ProvisioningState) + provisioningState := ProvisioningState_STATUS(temp) + group.ProvisioningState = &provisioningState + } + } + + // Set property "ResourceGuid": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ResourceGuid != nil { + resourceGuid := *typedInput.Properties.ResourceGuid + group.ResourceGuid = &resourceGuid + } + } + + // Set property "Tags": + if typedInput.Tags != nil { + group.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + group.Tags[key] = value + } + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + group.Type = &typeVar + } + + // No error + return nil +} + +// AssignProperties_From_ApplicationSecurityGroup_STATUS populates our ApplicationSecurityGroup_STATUS from the provided source ApplicationSecurityGroup_STATUS +func (group *ApplicationSecurityGroup_STATUS) AssignProperties_From_ApplicationSecurityGroup_STATUS(source *storage.ApplicationSecurityGroup_STATUS) error { + + // Conditions + group.Conditions = genruntime.CloneSliceOfCondition(source.Conditions) + + // Etag + group.Etag = genruntime.ClonePointerToString(source.Etag) + + // Id + group.Id = genruntime.ClonePointerToString(source.Id) + + // Location + group.Location = genruntime.ClonePointerToString(source.Location) + + // Name + group.Name = genruntime.ClonePointerToString(source.Name) + + // ProvisioningState + if source.ProvisioningState != nil { + provisioningState := *source.ProvisioningState + provisioningStateTemp := genruntime.ToEnum(provisioningState, provisioningState_STATUS_Values) + group.ProvisioningState = &provisioningStateTemp + } else { + group.ProvisioningState = nil + } + + // ResourceGuid + group.ResourceGuid = genruntime.ClonePointerToString(source.ResourceGuid) + + // Tags + group.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + group.Type = genruntime.ClonePointerToString(source.Type) + + // No error + return nil +} + +// AssignProperties_To_ApplicationSecurityGroup_STATUS populates the provided destination ApplicationSecurityGroup_STATUS from our ApplicationSecurityGroup_STATUS +func (group *ApplicationSecurityGroup_STATUS) AssignProperties_To_ApplicationSecurityGroup_STATUS(destination *storage.ApplicationSecurityGroup_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Conditions + destination.Conditions = genruntime.CloneSliceOfCondition(group.Conditions) + + // Etag + destination.Etag = genruntime.ClonePointerToString(group.Etag) + + // Id + destination.Id = genruntime.ClonePointerToString(group.Id) + + // Location + destination.Location = genruntime.ClonePointerToString(group.Location) + + // Name + destination.Name = genruntime.ClonePointerToString(group.Name) + + // ProvisioningState + if group.ProvisioningState != nil { + provisioningState := string(*group.ProvisioningState) + destination.ProvisioningState = &provisioningState + } else { + destination.ProvisioningState = nil + } + + // ResourceGuid + destination.ResourceGuid = genruntime.ClonePointerToString(group.ResourceGuid) + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(group.Tags) + + // Type + destination.Type = genruntime.ClonePointerToString(group.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// The current provisioning state. +type ProvisioningState_STATUS string + +const ( + ProvisioningState_STATUS_Deleting = ProvisioningState_STATUS("Deleting") + ProvisioningState_STATUS_Failed = ProvisioningState_STATUS("Failed") + ProvisioningState_STATUS_Succeeded = ProvisioningState_STATUS("Succeeded") + ProvisioningState_STATUS_Updating = ProvisioningState_STATUS("Updating") +) + +// Mapping from string to ProvisioningState_STATUS +var provisioningState_STATUS_Values = map[string]ProvisioningState_STATUS{ + "deleting": ProvisioningState_STATUS_Deleting, + "failed": ProvisioningState_STATUS_Failed, + "succeeded": ProvisioningState_STATUS_Succeeded, + "updating": ProvisioningState_STATUS_Updating, +} + +func init() { + SchemeBuilder.Register(&ApplicationSecurityGroup{}, &ApplicationSecurityGroupList{}) +} diff --git a/v2/api/network/v1api20240101/application_security_group_types_gen_test.go b/v2/api/network/v1api20240101/application_security_group_types_gen_test.go new file mode 100644 index 00000000000..4256813c9a1 --- /dev/null +++ b/v2/api/network/v1api20240101/application_security_group_types_gen_test.go @@ -0,0 +1,389 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20240101 + +import ( + "encoding/json" + storage "github.com/Azure/azure-service-operator/v2/api/network/v1api20240101/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ApplicationSecurityGroup_WhenConvertedToHub_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + parameters.MinSuccessfulTests = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ApplicationSecurityGroup to hub returns original", + prop.ForAll(RunResourceConversionTestForApplicationSecurityGroup, ApplicationSecurityGroupGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunResourceConversionTestForApplicationSecurityGroup tests if a specific instance of ApplicationSecurityGroup round trips to the hub storage version and back losslessly +func RunResourceConversionTestForApplicationSecurityGroup(subject ApplicationSecurityGroup) string { + // Copy subject to make sure conversion doesn't modify it + copied := subject.DeepCopy() + + // Convert to our hub version + var hub storage.ApplicationSecurityGroup + err := copied.ConvertTo(&hub) + if err != nil { + return err.Error() + } + + // Convert from our hub version + var actual ApplicationSecurityGroup + err = actual.ConvertFrom(&hub) + if err != nil { + return err.Error() + } + + // Compare actual with what we started with + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ApplicationSecurityGroup_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ApplicationSecurityGroup to ApplicationSecurityGroup via AssignProperties_To_ApplicationSecurityGroup & AssignProperties_From_ApplicationSecurityGroup returns original", + prop.ForAll(RunPropertyAssignmentTestForApplicationSecurityGroup, ApplicationSecurityGroupGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForApplicationSecurityGroup tests if a specific instance of ApplicationSecurityGroup can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForApplicationSecurityGroup(subject ApplicationSecurityGroup) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other storage.ApplicationSecurityGroup + err := copied.AssignProperties_To_ApplicationSecurityGroup(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ApplicationSecurityGroup + err = actual.AssignProperties_From_ApplicationSecurityGroup(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ApplicationSecurityGroup_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 20 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApplicationSecurityGroup via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApplicationSecurityGroup, ApplicationSecurityGroupGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApplicationSecurityGroup runs a test to see if a specific instance of ApplicationSecurityGroup round trips to JSON and back losslessly +func RunJSONSerializationTestForApplicationSecurityGroup(subject ApplicationSecurityGroup) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApplicationSecurityGroup + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ApplicationSecurityGroup instances for property testing - lazily instantiated by +// ApplicationSecurityGroupGenerator() +var applicationSecurityGroupGenerator gopter.Gen + +// ApplicationSecurityGroupGenerator returns a generator of ApplicationSecurityGroup instances for property testing. +func ApplicationSecurityGroupGenerator() gopter.Gen { + if applicationSecurityGroupGenerator != nil { + return applicationSecurityGroupGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForApplicationSecurityGroup(generators) + applicationSecurityGroupGenerator = gen.Struct(reflect.TypeOf(ApplicationSecurityGroup{}), generators) + + return applicationSecurityGroupGenerator +} + +// AddRelatedPropertyGeneratorsForApplicationSecurityGroup is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForApplicationSecurityGroup(gens map[string]gopter.Gen) { + gens["Spec"] = ApplicationSecurityGroup_SpecGenerator() + gens["Status"] = ApplicationSecurityGroup_STATUSGenerator() +} + +func Test_ApplicationSecurityGroup_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ApplicationSecurityGroup_STATUS to ApplicationSecurityGroup_STATUS via AssignProperties_To_ApplicationSecurityGroup_STATUS & AssignProperties_From_ApplicationSecurityGroup_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForApplicationSecurityGroup_STATUS, ApplicationSecurityGroup_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForApplicationSecurityGroup_STATUS tests if a specific instance of ApplicationSecurityGroup_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForApplicationSecurityGroup_STATUS(subject ApplicationSecurityGroup_STATUS) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other storage.ApplicationSecurityGroup_STATUS + err := copied.AssignProperties_To_ApplicationSecurityGroup_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ApplicationSecurityGroup_STATUS + err = actual.AssignProperties_From_ApplicationSecurityGroup_STATUS(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ApplicationSecurityGroup_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApplicationSecurityGroup_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApplicationSecurityGroup_STATUS, ApplicationSecurityGroup_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApplicationSecurityGroup_STATUS runs a test to see if a specific instance of ApplicationSecurityGroup_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForApplicationSecurityGroup_STATUS(subject ApplicationSecurityGroup_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApplicationSecurityGroup_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ApplicationSecurityGroup_STATUS instances for property testing - lazily instantiated by +// ApplicationSecurityGroup_STATUSGenerator() +var applicationSecurityGroup_STATUSGenerator gopter.Gen + +// ApplicationSecurityGroup_STATUSGenerator returns a generator of ApplicationSecurityGroup_STATUS instances for property testing. +func ApplicationSecurityGroup_STATUSGenerator() gopter.Gen { + if applicationSecurityGroup_STATUSGenerator != nil { + return applicationSecurityGroup_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApplicationSecurityGroup_STATUS(generators) + applicationSecurityGroup_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationSecurityGroup_STATUS{}), generators) + + return applicationSecurityGroup_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForApplicationSecurityGroup_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApplicationSecurityGroup_STATUS(gens map[string]gopter.Gen) { + gens["Etag"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.OneConstOf( + ProvisioningState_STATUS_Deleting, + ProvisioningState_STATUS_Failed, + ProvisioningState_STATUS_Succeeded, + ProvisioningState_STATUS_Updating)) + gens["ResourceGuid"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ApplicationSecurityGroup_Spec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ApplicationSecurityGroup_Spec to ApplicationSecurityGroup_Spec via AssignProperties_To_ApplicationSecurityGroup_Spec & AssignProperties_From_ApplicationSecurityGroup_Spec returns original", + prop.ForAll(RunPropertyAssignmentTestForApplicationSecurityGroup_Spec, ApplicationSecurityGroup_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForApplicationSecurityGroup_Spec tests if a specific instance of ApplicationSecurityGroup_Spec can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForApplicationSecurityGroup_Spec(subject ApplicationSecurityGroup_Spec) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other storage.ApplicationSecurityGroup_Spec + err := copied.AssignProperties_To_ApplicationSecurityGroup_Spec(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ApplicationSecurityGroup_Spec + err = actual.AssignProperties_From_ApplicationSecurityGroup_Spec(&other) + if err != nil { + return err.Error() + } + + // Check for a match + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +func Test_ApplicationSecurityGroup_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApplicationSecurityGroup_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApplicationSecurityGroup_Spec, ApplicationSecurityGroup_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApplicationSecurityGroup_Spec runs a test to see if a specific instance of ApplicationSecurityGroup_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForApplicationSecurityGroup_Spec(subject ApplicationSecurityGroup_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApplicationSecurityGroup_Spec + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ApplicationSecurityGroup_Spec instances for property testing - lazily instantiated by +// ApplicationSecurityGroup_SpecGenerator() +var applicationSecurityGroup_SpecGenerator gopter.Gen + +// ApplicationSecurityGroup_SpecGenerator returns a generator of ApplicationSecurityGroup_Spec instances for property testing. +func ApplicationSecurityGroup_SpecGenerator() gopter.Gen { + if applicationSecurityGroup_SpecGenerator != nil { + return applicationSecurityGroup_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApplicationSecurityGroup_Spec(generators) + applicationSecurityGroup_SpecGenerator = gen.Struct(reflect.TypeOf(ApplicationSecurityGroup_Spec{}), generators) + + return applicationSecurityGroup_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForApplicationSecurityGroup_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApplicationSecurityGroup_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} diff --git a/v2/api/network/v1api20240101/storage/application_security_group_types_gen.go b/v2/api/network/v1api20240101/storage/application_security_group_types_gen.go new file mode 100644 index 00000000000..fca28c09311 --- /dev/null +++ b/v2/api/network/v1api20240101/storage/application_security_group_types_gen.go @@ -0,0 +1,221 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// +kubebuilder:rbac:groups=network.azure.com,resources=applicationsecuritygroups,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=network.azure.com,resources={applicationsecuritygroups/status,applicationsecuritygroups/finalizers},verbs=get;update;patch + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:storageversion +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" +// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message" +// Storage version of v1api20240101.ApplicationSecurityGroup +// Generator information: +// - Generated from: /network/resource-manager/Microsoft.Network/stable/2024-01-01/applicationSecurityGroup.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName} +type ApplicationSecurityGroup struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec ApplicationSecurityGroup_Spec `json:"spec,omitempty"` + Status ApplicationSecurityGroup_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &ApplicationSecurityGroup{} + +// GetConditions returns the conditions of the resource +func (group *ApplicationSecurityGroup) GetConditions() conditions.Conditions { + return group.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (group *ApplicationSecurityGroup) SetConditions(conditions conditions.Conditions) { + group.Status.Conditions = conditions +} + +var _ genruntime.KubernetesResource = &ApplicationSecurityGroup{} + +// AzureName returns the Azure name of the resource +func (group *ApplicationSecurityGroup) AzureName() string { + return group.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2024-01-01" +func (group ApplicationSecurityGroup) GetAPIVersion() string { + return "2024-01-01" +} + +// GetResourceScope returns the scope of the resource +func (group *ApplicationSecurityGroup) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (group *ApplicationSecurityGroup) GetSpec() genruntime.ConvertibleSpec { + return &group.Spec +} + +// GetStatus returns the status of this resource +func (group *ApplicationSecurityGroup) GetStatus() genruntime.ConvertibleStatus { + return &group.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (group *ApplicationSecurityGroup) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.Network/applicationSecurityGroups" +func (group *ApplicationSecurityGroup) GetType() string { + return "Microsoft.Network/applicationSecurityGroups" +} + +// NewEmptyStatus returns a new empty (blank) status +func (group *ApplicationSecurityGroup) NewEmptyStatus() genruntime.ConvertibleStatus { + return &ApplicationSecurityGroup_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (group *ApplicationSecurityGroup) Owner() *genruntime.ResourceReference { + ownerGroup, ownerKind := genruntime.LookupOwnerGroupKind(group.Spec) + return group.Spec.Owner.AsResourceReference(ownerGroup, ownerKind) +} + +// SetStatus sets the status of this resource +func (group *ApplicationSecurityGroup) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*ApplicationSecurityGroup_STATUS); ok { + group.Status = *st + return nil + } + + // Convert status to required version + var st ApplicationSecurityGroup_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + group.Status = st + return nil +} + +// Hub marks that this ApplicationSecurityGroup is the hub type for conversion +func (group *ApplicationSecurityGroup) Hub() {} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (group *ApplicationSecurityGroup) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: group.Spec.OriginalVersion, + Kind: "ApplicationSecurityGroup", + } +} + +// +kubebuilder:object:root=true +// Storage version of v1api20240101.ApplicationSecurityGroup +// Generator information: +// - Generated from: /network/resource-manager/Microsoft.Network/stable/2024-01-01/applicationSecurityGroup.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/applicationSecurityGroups/{applicationSecurityGroupName} +type ApplicationSecurityGroupList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ApplicationSecurityGroup `json:"items"` +} + +// Storage version of v1api20240101.APIVersion +// +kubebuilder:validation:Enum={"2024-01-01"} +type APIVersion string + +const APIVersion_Value = APIVersion("2024-01-01") + +// Storage version of v1api20240101.ApplicationSecurityGroup_Spec +type ApplicationSecurityGroup_Spec struct { + // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it + // doesn't have to be. + AzureName string `json:"azureName,omitempty"` + Location *string `json:"location,omitempty"` + OriginalVersion string `json:"originalVersion,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a + // reference to a resources.azure.com/ResourceGroup resource + Owner *genruntime.KnownResourceReference `group:"resources.azure.com" json:"owner,omitempty" kind:"ResourceGroup"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Tags map[string]string `json:"tags,omitempty"` +} + +var _ genruntime.ConvertibleSpec = &ApplicationSecurityGroup_Spec{} + +// ConvertSpecFrom populates our ApplicationSecurityGroup_Spec from the provided source +func (group *ApplicationSecurityGroup_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + if source == group { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return source.ConvertSpecTo(group) +} + +// ConvertSpecTo populates the provided destination from our ApplicationSecurityGroup_Spec +func (group *ApplicationSecurityGroup_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + if destination == group { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return destination.ConvertSpecFrom(group) +} + +// Storage version of v1api20240101.ApplicationSecurityGroup_STATUS +// An application security group in a resource group. +type ApplicationSecurityGroup_STATUS struct { + Conditions []conditions.Condition `json:"conditions,omitempty"` + Etag *string `json:"etag,omitempty"` + Id *string `json:"id,omitempty"` + Location *string `json:"location,omitempty"` + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` + ResourceGuid *string `json:"resourceGuid,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &ApplicationSecurityGroup_STATUS{} + +// ConvertStatusFrom populates our ApplicationSecurityGroup_STATUS from the provided source +func (group *ApplicationSecurityGroup_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + if source == group { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return source.ConvertStatusTo(group) +} + +// ConvertStatusTo populates the provided destination from our ApplicationSecurityGroup_STATUS +func (group *ApplicationSecurityGroup_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + if destination == group { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return destination.ConvertStatusFrom(group) +} + +func init() { + SchemeBuilder.Register(&ApplicationSecurityGroup{}, &ApplicationSecurityGroupList{}) +} diff --git a/v2/api/network/v1api20240101/storage/application_security_group_types_gen_test.go b/v2/api/network/v1api20240101/storage/application_security_group_types_gen_test.go new file mode 100644 index 00000000000..2e429fbf39e --- /dev/null +++ b/v2/api/network/v1api20240101/storage/application_security_group_types_gen_test.go @@ -0,0 +1,216 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_ApplicationSecurityGroup_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 20 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApplicationSecurityGroup via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApplicationSecurityGroup, ApplicationSecurityGroupGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApplicationSecurityGroup runs a test to see if a specific instance of ApplicationSecurityGroup round trips to JSON and back losslessly +func RunJSONSerializationTestForApplicationSecurityGroup(subject ApplicationSecurityGroup) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApplicationSecurityGroup + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ApplicationSecurityGroup instances for property testing - lazily instantiated by +// ApplicationSecurityGroupGenerator() +var applicationSecurityGroupGenerator gopter.Gen + +// ApplicationSecurityGroupGenerator returns a generator of ApplicationSecurityGroup instances for property testing. +func ApplicationSecurityGroupGenerator() gopter.Gen { + if applicationSecurityGroupGenerator != nil { + return applicationSecurityGroupGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForApplicationSecurityGroup(generators) + applicationSecurityGroupGenerator = gen.Struct(reflect.TypeOf(ApplicationSecurityGroup{}), generators) + + return applicationSecurityGroupGenerator +} + +// AddRelatedPropertyGeneratorsForApplicationSecurityGroup is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForApplicationSecurityGroup(gens map[string]gopter.Gen) { + gens["Spec"] = ApplicationSecurityGroup_SpecGenerator() + gens["Status"] = ApplicationSecurityGroup_STATUSGenerator() +} + +func Test_ApplicationSecurityGroup_STATUS_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApplicationSecurityGroup_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApplicationSecurityGroup_STATUS, ApplicationSecurityGroup_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApplicationSecurityGroup_STATUS runs a test to see if a specific instance of ApplicationSecurityGroup_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForApplicationSecurityGroup_STATUS(subject ApplicationSecurityGroup_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApplicationSecurityGroup_STATUS + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ApplicationSecurityGroup_STATUS instances for property testing - lazily instantiated by +// ApplicationSecurityGroup_STATUSGenerator() +var applicationSecurityGroup_STATUSGenerator gopter.Gen + +// ApplicationSecurityGroup_STATUSGenerator returns a generator of ApplicationSecurityGroup_STATUS instances for property testing. +func ApplicationSecurityGroup_STATUSGenerator() gopter.Gen { + if applicationSecurityGroup_STATUSGenerator != nil { + return applicationSecurityGroup_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApplicationSecurityGroup_STATUS(generators) + applicationSecurityGroup_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationSecurityGroup_STATUS{}), generators) + + return applicationSecurityGroup_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForApplicationSecurityGroup_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApplicationSecurityGroup_STATUS(gens map[string]gopter.Gen) { + gens["Etag"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["ResourceGuid"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ApplicationSecurityGroup_Spec_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 80 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApplicationSecurityGroup_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApplicationSecurityGroup_Spec, ApplicationSecurityGroup_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApplicationSecurityGroup_Spec runs a test to see if a specific instance of ApplicationSecurityGroup_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForApplicationSecurityGroup_Spec(subject ApplicationSecurityGroup_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApplicationSecurityGroup_Spec + err = json.Unmarshal(bin, &actual) + if err != nil { + return err.Error() + } + + // Check for outcome + match := cmp.Equal(subject, actual, cmpopts.EquateEmpty()) + if !match { + actualFmt := pretty.Sprint(actual) + subjectFmt := pretty.Sprint(subject) + result := diff.Diff(subjectFmt, actualFmt) + return result + } + + return "" +} + +// Generator of ApplicationSecurityGroup_Spec instances for property testing - lazily instantiated by +// ApplicationSecurityGroup_SpecGenerator() +var applicationSecurityGroup_SpecGenerator gopter.Gen + +// ApplicationSecurityGroup_SpecGenerator returns a generator of ApplicationSecurityGroup_Spec instances for property testing. +func ApplicationSecurityGroup_SpecGenerator() gopter.Gen { + if applicationSecurityGroup_SpecGenerator != nil { + return applicationSecurityGroup_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApplicationSecurityGroup_Spec(generators) + applicationSecurityGroup_SpecGenerator = gen.Struct(reflect.TypeOf(ApplicationSecurityGroup_Spec{}), generators) + + return applicationSecurityGroup_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForApplicationSecurityGroup_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApplicationSecurityGroup_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["OriginalVersion"] = gen.AlphaString() + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} diff --git a/v2/api/network/v1api20240101/storage/structure.txt b/v2/api/network/v1api20240101/storage/structure.txt index 5ce447cd4d3..96870dda504 100644 --- a/v2/api/network/v1api20240101/storage/structure.txt +++ b/v2/api/network/v1api20240101/storage/structure.txt @@ -3,6 +3,26 @@ github.com/Azure/azure-service-operator/v2/api/network/v1api20240101/storage ---------------------------------------------------------------------------- APIVersion: Enum (1 value) └── "2024-01-01" +ApplicationSecurityGroup: Resource +├── Owner: resources/v1apiv20191001.ResourceGroup +├── Spec: Object (6 properties) +│ ├── AzureName: string +│ ├── Location: *string +│ ├── OriginalVersion: string +│ ├── Owner: *genruntime.KnownResourceReference +│ ├── PropertyBag: genruntime.PropertyBag +│ └── Tags: map[string]string +└── Status: Object (10 properties) + ├── Conditions: conditions.Condition[] + ├── Etag: *string + ├── Id: *string + ├── Location: *string + ├── Name: *string + ├── PropertyBag: genruntime.PropertyBag + ├── ProvisioningState: *string + ├── ResourceGuid: *string + ├── Tags: map[string]string + └── Type: *string WebApplicationFirewallPolicy: Resource ├── Owner: resources/v1apiv20191001.ResourceGroup ├── Spec: Object (9 properties) diff --git a/v2/api/network/v1api20240101/storage/web_application_firewall_policy_types_gen.go b/v2/api/network/v1api20240101/storage/web_application_firewall_policy_types_gen.go index b1569d607ac..d8f85664c02 100644 --- a/v2/api/network/v1api20240101/storage/web_application_firewall_policy_types_gen.go +++ b/v2/api/network/v1api20240101/storage/web_application_firewall_policy_types_gen.go @@ -138,12 +138,6 @@ type WebApplicationFirewallPolicyList struct { Items []WebApplicationFirewallPolicy `json:"items"` } -// Storage version of v1api20240101.APIVersion -// +kubebuilder:validation:Enum={"2024-01-01"} -type APIVersion string - -const APIVersion_Value = APIVersion("2024-01-01") - // Storage version of v1api20240101.ApplicationGatewayWebApplicationFirewallPolicy_Spec type ApplicationGatewayWebApplicationFirewallPolicy_Spec struct { // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it diff --git a/v2/api/network/v1api20240101/storage/zz_generated.deepcopy.go b/v2/api/network/v1api20240101/storage/zz_generated.deepcopy.go index 94fae2c54fa..925e7ac376d 100644 --- a/v2/api/network/v1api20240101/storage/zz_generated.deepcopy.go +++ b/v2/api/network/v1api20240101/storage/zz_generated.deepcopy.go @@ -207,6 +207,175 @@ func (in *ApplicationGateway_STATUS_ApplicationGatewayWebApplicationFirewallPoli return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSecurityGroup) DeepCopyInto(out *ApplicationSecurityGroup) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSecurityGroup. +func (in *ApplicationSecurityGroup) DeepCopy() *ApplicationSecurityGroup { + if in == nil { + return nil + } + out := new(ApplicationSecurityGroup) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ApplicationSecurityGroup) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSecurityGroupList) DeepCopyInto(out *ApplicationSecurityGroupList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ApplicationSecurityGroup, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSecurityGroupList. +func (in *ApplicationSecurityGroupList) DeepCopy() *ApplicationSecurityGroupList { + if in == nil { + return nil + } + out := new(ApplicationSecurityGroupList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ApplicationSecurityGroupList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSecurityGroup_STATUS) DeepCopyInto(out *ApplicationSecurityGroup_STATUS) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.ResourceGuid != nil { + in, out := &in.ResourceGuid, &out.ResourceGuid + *out = new(string) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSecurityGroup_STATUS. +func (in *ApplicationSecurityGroup_STATUS) DeepCopy() *ApplicationSecurityGroup_STATUS { + if in == nil { + return nil + } + out := new(ApplicationSecurityGroup_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSecurityGroup_Spec) DeepCopyInto(out *ApplicationSecurityGroup_Spec) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.KnownResourceReference) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSecurityGroup_Spec. +func (in *ApplicationSecurityGroup_Spec) DeepCopy() *ApplicationSecurityGroup_Spec { + if in == nil { + return nil + } + out := new(ApplicationSecurityGroup_Spec) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ExclusionManagedRule) DeepCopyInto(out *ExclusionManagedRule) { *out = *in diff --git a/v2/api/network/v1api20240101/structure.txt b/v2/api/network/v1api20240101/structure.txt index cae425f301a..1ea0b056b0f 100644 --- a/v2/api/network/v1api20240101/structure.txt +++ b/v2/api/network/v1api20240101/structure.txt @@ -309,6 +309,45 @@ ApplicationGatewayWebApplicationFirewallPolicy_Spec_ARM: Object (4 properties) │ ├── "Disabled" │ └── "Enabled" └── Tags: map[string]string +ApplicationSecurityGroup: Resource +├── Owner: resources/v1apiv20191001.ResourceGroup +├── Spec: Object (4 properties) +│ ├── AzureName: string +│ ├── Location: *string +│ ├── Owner: *genruntime.KnownResourceReference +│ └── Tags: map[string]string +└── Status: Object (9 properties) + ├── Conditions: conditions.Condition[] + ├── Etag: *string + ├── Id: *string + ├── Location: *string + ├── Name: *string + ├── ProvisioningState: *Enum (4 values) + │ ├── "Deleting" + │ ├── "Failed" + │ ├── "Succeeded" + │ └── "Updating" + ├── ResourceGuid: *string + ├── Tags: map[string]string + └── Type: *string +ApplicationSecurityGroup_STATUS_ARM: Object (7 properties) +├── Etag: *string +├── Id: *string +├── Location: *string +├── Name: *string +├── Properties: *Object (2 properties) +│ ├── ProvisioningState: *Enum (4 values) +│ │ ├── "Deleting" +│ │ ├── "Failed" +│ │ ├── "Succeeded" +│ │ └── "Updating" +│ └── ResourceGuid: *string +├── Tags: map[string]string +└── Type: *string +ApplicationSecurityGroup_Spec_ARM: Object (3 properties) +├── Location: *string +├── Name: string +└── Tags: map[string]string WebApplicationFirewallPolicy: Resource ├── Owner: resources/v1apiv20191001.ResourceGroup ├── Spec: Object (7 properties) diff --git a/v2/api/network/v1api20240101/web_application_firewall_policy_types_gen.go b/v2/api/network/v1api20240101/web_application_firewall_policy_types_gen.go index fe31cfabc78..51bb3e8f4e4 100644 --- a/v2/api/network/v1api20240101/web_application_firewall_policy_types_gen.go +++ b/v2/api/network/v1api20240101/web_application_firewall_policy_types_gen.go @@ -324,11 +324,6 @@ type WebApplicationFirewallPolicyList struct { Items []WebApplicationFirewallPolicy `json:"items"` } -// +kubebuilder:validation:Enum={"2024-01-01"} -type APIVersion string - -const APIVersion_Value = APIVersion("2024-01-01") - type ApplicationGatewayWebApplicationFirewallPolicy_Spec struct { // +kubebuilder:validation:MaxLength=128 // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it @@ -2573,24 +2568,6 @@ func (settings *PolicySettings_STATUS) AssignProperties_To_PolicySettings_STATUS return nil } -// The current provisioning state. -type ProvisioningState_STATUS string - -const ( - ProvisioningState_STATUS_Deleting = ProvisioningState_STATUS("Deleting") - ProvisioningState_STATUS_Failed = ProvisioningState_STATUS("Failed") - ProvisioningState_STATUS_Succeeded = ProvisioningState_STATUS("Succeeded") - ProvisioningState_STATUS_Updating = ProvisioningState_STATUS("Updating") -) - -// Mapping from string to ProvisioningState_STATUS -var provisioningState_STATUS_Values = map[string]ProvisioningState_STATUS{ - "deleting": ProvisioningState_STATUS_Deleting, - "failed": ProvisioningState_STATUS_Failed, - "succeeded": ProvisioningState_STATUS_Succeeded, - "updating": ProvisioningState_STATUS_Updating, -} - // Reference to another subresource. type SubResource_STATUS struct { // Id: Resource ID. diff --git a/v2/api/network/v1api20240101/zz_generated.deepcopy.go b/v2/api/network/v1api20240101/zz_generated.deepcopy.go index ce444f41449..b604a8a5a7c 100644 --- a/v2/api/network/v1api20240101/zz_generated.deepcopy.go +++ b/v2/api/network/v1api20240101/zz_generated.deepcopy.go @@ -290,6 +290,265 @@ func (in *ApplicationGateway_STATUS_ApplicationGatewayWebApplicationFirewallPoli return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSecurityGroup) DeepCopyInto(out *ApplicationSecurityGroup) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSecurityGroup. +func (in *ApplicationSecurityGroup) DeepCopy() *ApplicationSecurityGroup { + if in == nil { + return nil + } + out := new(ApplicationSecurityGroup) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ApplicationSecurityGroup) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSecurityGroupList) DeepCopyInto(out *ApplicationSecurityGroupList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ApplicationSecurityGroup, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSecurityGroupList. +func (in *ApplicationSecurityGroupList) DeepCopy() *ApplicationSecurityGroupList { + if in == nil { + return nil + } + out := new(ApplicationSecurityGroupList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ApplicationSecurityGroupList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSecurityGroupPropertiesFormat_STATUS_ARM) DeepCopyInto(out *ApplicationSecurityGroupPropertiesFormat_STATUS_ARM) { + *out = *in + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(ProvisioningState_STATUS_ARM) + **out = **in + } + if in.ResourceGuid != nil { + in, out := &in.ResourceGuid, &out.ResourceGuid + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSecurityGroupPropertiesFormat_STATUS_ARM. +func (in *ApplicationSecurityGroupPropertiesFormat_STATUS_ARM) DeepCopy() *ApplicationSecurityGroupPropertiesFormat_STATUS_ARM { + if in == nil { + return nil + } + out := new(ApplicationSecurityGroupPropertiesFormat_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSecurityGroup_STATUS) DeepCopyInto(out *ApplicationSecurityGroup_STATUS) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(ProvisioningState_STATUS) + **out = **in + } + if in.ResourceGuid != nil { + in, out := &in.ResourceGuid, &out.ResourceGuid + *out = new(string) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSecurityGroup_STATUS. +func (in *ApplicationSecurityGroup_STATUS) DeepCopy() *ApplicationSecurityGroup_STATUS { + if in == nil { + return nil + } + out := new(ApplicationSecurityGroup_STATUS) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSecurityGroup_STATUS_ARM) DeepCopyInto(out *ApplicationSecurityGroup_STATUS_ARM) { + *out = *in + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Properties != nil { + in, out := &in.Properties, &out.Properties + *out = new(ApplicationSecurityGroupPropertiesFormat_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSecurityGroup_STATUS_ARM. +func (in *ApplicationSecurityGroup_STATUS_ARM) DeepCopy() *ApplicationSecurityGroup_STATUS_ARM { + if in == nil { + return nil + } + out := new(ApplicationSecurityGroup_STATUS_ARM) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSecurityGroup_Spec) DeepCopyInto(out *ApplicationSecurityGroup_Spec) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.KnownResourceReference) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSecurityGroup_Spec. +func (in *ApplicationSecurityGroup_Spec) DeepCopy() *ApplicationSecurityGroup_Spec { + if in == nil { + return nil + } + out := new(ApplicationSecurityGroup_Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApplicationSecurityGroup_Spec_ARM) DeepCopyInto(out *ApplicationSecurityGroup_Spec_ARM) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApplicationSecurityGroup_Spec_ARM. +func (in *ApplicationSecurityGroup_Spec_ARM) DeepCopy() *ApplicationSecurityGroup_Spec_ARM { + if in == nil { + return nil + } + out := new(ApplicationSecurityGroup_Spec_ARM) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ExclusionManagedRule) DeepCopyInto(out *ExclusionManagedRule) { *out = *in diff --git a/v2/api/network/versions_matrix.md b/v2/api/network/versions_matrix.md index b4b5bec0162..2703162ddc1 100644 --- a/v2/api/network/versions_matrix.md +++ b/v2/api/network/versions_matrix.md @@ -136,13 +136,17 @@ | ApplicationGateway_STATUS_ApplicationGatewayWebApplicationFirewallPolicy_SubResourceEmbedded | | | | | | | v1api20240101 | | ApplicationGateway_STATUS_ApplicationGateway_SubResourceEmbedded | | | | | | v1api20220701 | | | ApplicationGateway_Spec | | | | | | v1api20220701 | | +| ApplicationSecurityGroup | | | | | | | v1api20240101 | +| ApplicationSecurityGroupPropertiesFormat_STATUS | | | | | | | v1api20240101 | | ApplicationSecurityGroupSpec_NetworkInterface_SubResourceEmbedded | | | | v1api20201101 | | | | | ApplicationSecurityGroupSpec_NetworkSecurityGroup_SubResourceEmbedded | | | | v1api20201101 | | | | | ApplicationSecurityGroupSpec_NetworkSecurityGroups_SecurityRule_SubResourceEmbedded | | | | v1api20201101 | | | | | ApplicationSecurityGroupSpec_PrivateEndpoint_SubResourceEmbedded | | | | | | v1api20220701 | | +| ApplicationSecurityGroup_STATUS | | | | | | | v1api20240101 | | ApplicationSecurityGroup_STATUS_NetworkInterface_SubResourceEmbedded | | | | v1api20201101 | | | | | ApplicationSecurityGroup_STATUS_NetworkSecurityGroups_SecurityRule_SubResourceEmbedded | | | | v1api20201101 | | | | | ApplicationSecurityGroup_STATUS_PrivateEndpoint_SubResourceEmbedded | | | | | | v1api20220701 | | +| ApplicationSecurityGroup_Spec | | | | | | | v1api20240101 | | BackendAddressPoolPropertiesFormat | | | | v1api20201101 | | | | | BackendAddressPoolPropertiesFormat_STATUS_LoadBalancer_SubResourceEmbedded | | | | v1api20201101 | | | | | BackendAddressPool_LoadBalancer_SubResourceEmbedded | | | | v1api20201101 | | | | diff --git a/v2/azure-arm.yaml b/v2/azure-arm.yaml index 96fa4d1d36e..957bec6506e 100644 --- a/v2/azure-arm.yaml +++ b/v2/azure-arm.yaml @@ -2403,6 +2403,7 @@ objectModelConfiguration: WebTestGeolocation: Id: $armReference: false + keyvault: 2021-04-01-preview: Vault: @@ -3074,6 +3075,9 @@ objectModelConfiguration: ApplicationGatewayWebApplicationFirewallPolicy: $exportAs: WebApplicationFirewallPolicy $supportedFrom: v2.10.0 + ApplicationSecurityGroup: + $export: true + $supportedFrom: v2.10.0 network.frontdoor: 2022-05-01: FrontDoorWebApplicationFirewallPolicy: diff --git a/v2/internal/controllers/controller_resources_gen.go b/v2/internal/controllers/controller_resources_gen.go index 4e117abf6d9..b0288db1109 100644 --- a/v2/internal/controllers/controller_resources_gen.go +++ b/v2/internal/controllers/controller_resources_gen.go @@ -1119,6 +1119,7 @@ func getKnownStorageTypes() []*registration.StorageType { result = append(result, ®istration.StorageType{Obj: new(network_v20220701s.PrivateEndpointsPrivateDnsZoneGroup)}) result = append(result, ®istration.StorageType{Obj: new(network_v20220701s.PrivateLinkService)}) result = append(result, ®istration.StorageType{Obj: new(network_v20220701s.PublicIPPrefix)}) + result = append(result, ®istration.StorageType{Obj: new(network_v20240101s.ApplicationSecurityGroup)}) result = append(result, ®istration.StorageType{Obj: new(network_v20240101s.WebApplicationFirewallPolicy)}) result = append(result, ®istration.StorageType{Obj: new(networkfrontdoor_v20220501s.WebApplicationFirewallPolicy)}) result = append(result, ®istration.StorageType{Obj: new(operationalinsights_v20210601s.Workspace)}) @@ -2027,8 +2028,14 @@ func getKnownTypes() []client.Object { new(network_v20220701s.PrivateEndpointsPrivateDnsZoneGroup), new(network_v20220701s.PrivateLinkService), new(network_v20220701s.PublicIPPrefix)) - result = append(result, new(network_v20240101.WebApplicationFirewallPolicy)) - result = append(result, new(network_v20240101s.WebApplicationFirewallPolicy)) + result = append( + result, + new(network_v20240101.ApplicationSecurityGroup), + new(network_v20240101.WebApplicationFirewallPolicy)) + result = append( + result, + new(network_v20240101s.ApplicationSecurityGroup), + new(network_v20240101s.WebApplicationFirewallPolicy)) result = append(result, new(networkfrontdoor_v20220501.WebApplicationFirewallPolicy)) result = append(result, new(networkfrontdoor_v20220501s.WebApplicationFirewallPolicy)) result = append(result, new(operationalinsights_v20210601.Workspace)) @@ -2504,6 +2511,7 @@ func getResourceExtensions() []genruntime.ResourceExtension { result = append(result, &managedidentity_customizations.UserAssignedIdentityExtension{}) result = append(result, &monitor_customizations.AccountExtension{}) result = append(result, &network_customizations.ApplicationGatewayExtension{}) + result = append(result, &network_customizations.ApplicationSecurityGroupExtension{}) result = append(result, &network_customizations.BastionHostExtension{}) result = append(result, &network_customizations.DnsForwardingRuleSetsForwardingRuleExtension{}) result = append(result, &network_customizations.DnsForwardingRuleSetsVirtualNetworkLinkExtension{}) diff --git a/v2/internal/controllers/network_applicationsecuritygroup_crud_v20240101_test.go b/v2/internal/controllers/network_applicationsecuritygroup_crud_v20240101_test.go new file mode 100644 index 00000000000..e3e92eaacd7 --- /dev/null +++ b/v2/internal/controllers/network_applicationsecuritygroup_crud_v20240101_test.go @@ -0,0 +1,60 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +package controllers_test + +import ( + "testing" + + . "github.com/onsi/gomega" + + network "github.com/Azure/azure-service-operator/v2/api/network/v1api20240101" + "github.com/Azure/azure-service-operator/v2/internal/testcommon" +) + +func Test_Networking_ApplicationSecurityGroup_CRUD(t *testing.T) { + t.Parallel() + + tc := globalTestContext.ForTest(t) + + rg := tc.CreateTestResourceGroupAndWait() + + // Application Security Group + // nsg := &network.NetworkSecurityGroup{ + // ObjectMeta: tc.MakeObjectMetaWithName(tc.Namer.GenerateName("asg")), + // Spec: network.NetworkSecurityGroup_Spec{ + // Location: tc.AzureRegion, + // Owner: testcommon.AsOwner(rg), + // }, + // } + asg := &network.ApplicationSecurityGroup{ + ObjectMeta: tc.MakeObjectMetaWithName(tc.Namer.GenerateName("asg")), + Spec: network.ApplicationSecurityGroup_Spec{ + Location: tc.AzureRegion, + Owner: testcommon.AsOwner(rg), + }, + } + + tc.CreateResourceAndWait(asg) + + tc.Expect(asg.Status.Id).ToNot(BeNil()) + armId := *asg.Status.Id + + // Perform a simple patch + old := asg.DeepCopy() + asg.Spec.Tags = map[string]string{ + "foo": "bar", + } + tc.PatchResourceAndWait(old, asg) + tc.Expect(asg.Status.Tags).To(HaveKey("foo")) + + tc.DeleteResourceAndWait(asg) + + // Ensure that the resource was really deleted in Azure + exists, retryAfter, err := tc.AzureClient.CheckExistenceWithGetByID(tc.Ctx, armId, string(network.APIVersion_Value)) + tc.Expect(err).ToNot(HaveOccurred()) + tc.Expect(retryAfter).To(BeZero()) + tc.Expect(exists).To(BeFalse()) +} diff --git a/v2/internal/controllers/recordings/Test_Networking_ApplicationSecurityGroup_CRUD.yaml b/v2/internal/controllers/recordings/Test_Networking_ApplicationSecurityGroup_CRUD.yaml new file mode 100644 index 00000000000..1372b431eca --- /dev/null +++ b/v2/internal/controllers/recordings/Test_Networking_ApplicationSecurityGroup_CRUD.yaml @@ -0,0 +1,877 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 93 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-rg-ibncnr","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Hash: + - b7cfb7592918dc5df3d55d25349feb7a363ad9db8fd75a168ff0cbe424f7d657 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr?api-version=2020-06-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr","name":"asotest-rg-ibncnr","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Writes: + - "2999" + X-Msedge-Ref: + - 'Ref A: 7DE3DD072065421FA71ECEDF99ED3199 Ref B: MAA201060516029 Ref C: 2024-10-15T06:36:48Z' + status: 201 Created + code: 201 + duration: 1.971383876s + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr?api-version=2020-06-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr","name":"asotest-rg-ibncnr","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: 5252F21E421742168E3A65832D93F4C3 Ref B: MAA201060516029 Ref C: 2024-10-15T06:36:52Z' + status: 200 OK + code: 200 + duration: 325.868709ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 50 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-asg-iowend"}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "50" + Content-Type: + - application/json + Test-Request-Hash: + - a3bbc13a93e8316eef5ef2d8c97ecdbe3946ed45421d723db81811adcce4e35b + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend?api-version=2024-01-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 366 + uncompressed: false + body: '{"name":"asotest-asg-iowend","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend","etag":"W/\"f58f0c7d-eaed-4fa5-b098-0ca1df796e16\"","type":"Microsoft.Network/applicationSecurityGroups","location":"westus2","properties":{"provisioningState":"Updating"}}' + headers: + Azure-Asyncnotification: + - Enabled + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/037a3c6f-b14a-4f5a-86e8-cbd4c95591c1?api-version=2024-01-01&t=638645710204258351&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=g8yYoyNSCS2qNn_ykFgBRBIuKWu0YawvRDne8zYUnR1FdH-9BTFUjX1H102vhq9PaV4kiusASnCWB05B-_T63R7ZTuCNEiS0XOZHNgPu_GaI1u07qrFpAW9tyPiJyzF6IoI4OddjAY4adjRR3_phQvF3TZ2fypFqmSHXfTnkz5vCqdwPFpEC2TUfZPpwQXnpA_GB97DTsSBCyEKFXe9N3JVlHAg0uU9PrYrpgm_j-y5shoQK_M59fppUatDmiK7x_mcWAGlBNfe6yJfdyv81QcxXoCVfj1mJ51RpKt9Q-wSMdrA0crconfXtMjMK2SlDj4YFk0pNv4McW7E9VnhD5A&h=ngS4p61kE6udcOO9sRiVTi8CeOYvgTcMMLGCZgIckEY + Cache-Control: + - no-cache + Content-Length: + - "366" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Retry-After: + - "1" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Writes: + - "2999" + X-Msedge-Ref: + - 'Ref A: A9718A4D6E93482BA52937840D5C53D2 Ref B: MAA201060516029 Ref C: 2024-10-15T06:36:56Z' + status: 201 Created + code: 201 + duration: 3.533662794s + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/037a3c6f-b14a-4f5a-86e8-cbd4c95591c1?api-version=2024-01-01&t=638645710204258351&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=g8yYoyNSCS2qNn_ykFgBRBIuKWu0YawvRDne8zYUnR1FdH-9BTFUjX1H102vhq9PaV4kiusASnCWB05B-_T63R7ZTuCNEiS0XOZHNgPu_GaI1u07qrFpAW9tyPiJyzF6IoI4OddjAY4adjRR3_phQvF3TZ2fypFqmSHXfTnkz5vCqdwPFpEC2TUfZPpwQXnpA_GB97DTsSBCyEKFXe9N3JVlHAg0uU9PrYrpgm_j-y5shoQK_M59fppUatDmiK7x_mcWAGlBNfe6yJfdyv81QcxXoCVfj1mJ51RpKt9Q-wSMdrA0crconfXtMjMK2SlDj4YFk0pNv4McW7E9VnhD5A&h=ngS4p61kE6udcOO9sRiVTi8CeOYvgTcMMLGCZgIckEY + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 22 + uncompressed: false + body: '{"status":"Succeeded"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "22" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: E2094C0E43CF4DDC97B65A1E1E1F0DF4 Ref B: MAA201060516029 Ref C: 2024-10-15T06:37:06Z' + status: 200 OK + code: 200 + duration: 344.522917ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend?api-version=2024-01-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 367 + uncompressed: false + body: '{"name":"asotest-asg-iowend","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend","etag":"W/\"62596c86-3e32-45ab-8078-94182725c06d\"","type":"Microsoft.Network/applicationSecurityGroups","location":"westus2","properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "367" + Content-Type: + - application/json; charset=utf-8 + Etag: + - W/"62596c86-3e32-45ab-8078-94182725c06d" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3748" + X-Msedge-Ref: + - 'Ref A: 497CBA1F7F424D9BA199862107C30FF4 Ref B: MAA201060516029 Ref C: 2024-10-15T06:37:06Z' + status: 200 OK + code: 200 + duration: 557.384876ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend?api-version=2024-01-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 367 + uncompressed: false + body: '{"name":"asotest-asg-iowend","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend","etag":"W/\"62596c86-3e32-45ab-8078-94182725c06d\"","type":"Microsoft.Network/applicationSecurityGroups","location":"westus2","properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "367" + Content-Type: + - application/json; charset=utf-8 + Etag: + - W/"62596c86-3e32-45ab-8078-94182725c06d" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: BF5ABD2DBC63413EA7E79E6BAED36E50 Ref B: MAA201060516029 Ref C: 2024-10-15T06:37:07Z' + status: 200 OK + code: 200 + duration: 597.548042ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 71 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-asg-iowend","tags":{"foo":"bar"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "71" + Content-Type: + - application/json + Test-Request-Hash: + - f85827a2a5e8b28e436cf2cd426fb56f773b1f2c7361f3ccc37ce957676660ea + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend?api-version=2024-01-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 388 + uncompressed: false + body: '{"name":"asotest-asg-iowend","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend","etag":"W/\"09fb4826-c73a-4daf-a343-47921480d206\"","type":"Microsoft.Network/applicationSecurityGroups","location":"westus2","tags":{"foo":"bar"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Azure-Asyncnotification: + - Enabled + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/b3a13eaa-0140-458f-90c8-f8b7504340a0?api-version=2024-01-01&t=638645710332070864&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=ORop8HnEppBVSMWnE2xnPkdN807HTUQayxXOkO9JIMVu_qtdWNwR0AD0wqpWMvgBBx0Xz1qhk779D0O3P1953L5g-N2nExDIR_JHT0lN7rDX65twxf4EqwA5P1p1D6gQNQ6tCg4NXU5RiZdc9eoHbqI9-7tI7BNQZSBe05NPQVb2_dJCtNPo48q8UKu7dNSN3tyEO8D5dyblNDHzm-jYGN8vj7tiy6T_ibGVsQRNYU3zjncmezVfDwU2s6LCXpwEh8zKBSxqYh5ME-S4nw1N08aw9TyrW5Gsi-vlvXNwSUsGZiJq9P_92FXRyXFrfAz_nQiC13M8bgg4GbJwGwqi2Q&h=_uSDCOAF8iQxV3DjwGmi5pUnI8UKolK4HMZKdo81ugg + Cache-Control: + - no-cache + Content-Length: + - "388" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Writes: + - "2998" + X-Msedge-Ref: + - 'Ref A: 6E3FC6104F514CC19C6CB4B20F14E915 Ref B: MAA201060516029 Ref C: 2024-10-15T06:37:11Z' + status: 200 OK + code: 200 + duration: 2.288504335s + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend?api-version=2024-01-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 388 + uncompressed: false + body: '{"name":"asotest-asg-iowend","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend","etag":"W/\"09fb4826-c73a-4daf-a343-47921480d206\"","type":"Microsoft.Network/applicationSecurityGroups","location":"westus2","tags":{"foo":"bar"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "388" + Content-Type: + - application/json; charset=utf-8 + Etag: + - W/"09fb4826-c73a-4daf-a343-47921480d206" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: F562A6BD187C48E39DCA0F8013393F19 Ref B: MAA201060516029 Ref C: 2024-10-15T06:37:15Z' + status: 200 OK + code: 200 + duration: 545.660334ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend?api-version=2024-01-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Azure-Asyncnotification: + - Enabled + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/ed4ac5c7-b89a-4a97-9096-ee2a36784a7e?api-version=2024-01-01&t=638645710437258635&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=bIDF30kmpgHPiMYzSBfyJ5ewAyNRMKvVnBBKFJJ11DjLgqe28LDBaDRALY_eXBFMqceDbN555AGNEHnpJBxd_x9s6c8-l-ytIa8VvCpTTTVIYH9qt7pMmU282VdfwAxXDs7WFxHFH_PndcbiH4e47gmHMtPCi1D220TE-HGdPyPvsVSEPtQIqQRNX_znGhiHGgU9eFjfGINNwfw6P9R02tvK8AOKOZQwzyiPp80MDQsr_q_TKZdLd6jga1K_w3o4-kr_WJd6NxbKsZh2oBE32lwiFqonYxGwMS6NSNP54kIprASAg4XCY2rU65ItbQurF03kskH9E6lL-PQ2Y81klA&h=8mR_jdzbo5CGOCe_loGUX-Y5EUHlvzk25iQdiAt06jc + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operationResults/ed4ac5c7-b89a-4a97-9096-ee2a36784a7e?api-version=2024-01-01&t=638645710437258635&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=MtAIS9T_DkQWfch-15pqi_pcIv_NBKA2yfw5c1HC_yRipQCFEFripHBaHr2KoEqLPKbXMJfpzsx_8c_4Zo3mXYkvLIBOo0Z7kIvgwbErXunVknLr8xuYB9lTur1f1lNg1-ZDxrt6QaAyQSOoB_G4pqn4xk6HVGIuu4fG_8iDDFOPDv8OwkXwEUeSk8_IMfp80Q8w6xaLe5FhDvR5-npHZFqRxlG-kCyO6w6tZzIo8Lsg2cULKyZYYgECy-m4lxpfRp_mrEPib_vkG3fQyLU127ThSDLY4zzCC6iY9kAdBMaOMN8zQJeBku4AbXBsqN0hhOUZfAlOUc7qFiQ3mY6SXQ&h=IO7XKEN248tMXEmHgoaolh05hG9MO1X958_ScNLvk5A + Pragma: + - no-cache + Retry-After: + - "1" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Deletes: + - "2999" + X-Msedge-Ref: + - 'Ref A: C027F53D31C24084BAA20A73D4832777 Ref B: MAA201060516029 Ref C: 2024-10-15T06:37:21Z' + status: 202 Accepted + code: 202 + duration: 2.723016376s + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/westus2/operations/ed4ac5c7-b89a-4a97-9096-ee2a36784a7e?api-version=2024-01-01&t=638645710437258635&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=bIDF30kmpgHPiMYzSBfyJ5ewAyNRMKvVnBBKFJJ11DjLgqe28LDBaDRALY_eXBFMqceDbN555AGNEHnpJBxd_x9s6c8-l-ytIa8VvCpTTTVIYH9qt7pMmU282VdfwAxXDs7WFxHFH_PndcbiH4e47gmHMtPCi1D220TE-HGdPyPvsVSEPtQIqQRNX_znGhiHGgU9eFjfGINNwfw6P9R02tvK8AOKOZQwzyiPp80MDQsr_q_TKZdLd6jga1K_w3o4-kr_WJd6NxbKsZh2oBE32lwiFqonYxGwMS6NSNP54kIprASAg4XCY2rU65ItbQurF03kskH9E6lL-PQ2Y81klA&h=8mR_jdzbo5CGOCe_loGUX-Y5EUHlvzk25iQdiAt06jc + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 22 + uncompressed: false + body: '{"status":"Succeeded"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "22" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: AB7D4FEA099143C0B68E48D37446511C Ref B: MAA201060516029 Ref C: 2024-10-15T06:37:27Z' + status: 200 OK + code: 200 + duration: 404.640459ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr/providers/Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend?api-version=2024-01-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 251 + uncompressed: false + body: '{"error":{"code":"ResourceNotFound","message":"The Resource ''Microsoft.Network/applicationSecurityGroups/asotest-asg-iowend'' under resource group ''asotest-rg-ibncnr'' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "251" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 9108B0F253D2447796753DE11022229D Ref B: MAA201060516029 Ref C: 2024-10-15T06:37:31Z' + status: 404 Not Found + code: 404 + duration: 309.376459ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ibncnr?api-version=2020-06-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRJQk5DTlItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645710557464328&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=aZnNdhM3gg9zchLbByhwBJaw4_w60RBwcJoB3SEWqWOl_qHjGu8EiYIhUKylTCcerQWTJyrOcmUAc-6pWNuKmCkGoRkQE0FOfJ0BEpHRJQVS3YeI02OiB_aTyu1ieJWdBcRkhSoSod8d2UByPLZlGPIe_itDNopnM9Dyi6jtLMKp6uL8hag-xY0wsTImB5G68YER-yctcAwIWk4FyuC9pO-_-5acJrk9J8-zuv08ma3QcWYWygxwkshCKvtQ0EmWwEHEzm48JqWAHcAm2wiU0CGQqOp3mmUm7Qlw0vm3G33_q0mtmzNk5kiGA5Vi5sYNQ23Rdc_oIELyxzuZF0aj8Q&h=5VWL0UdP763sKnRsw7orhdue6ouj7l6lxO914L5SOkY + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Deletes: + - "2999" + X-Msedge-Ref: + - 'Ref A: 36B60CB4D01F4B2FA441CBEE8F224761 Ref B: MAA201060516029 Ref C: 2024-10-15T06:37:32Z' + status: 202 Accepted + code: 202 + duration: 3.576514794s + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRJQk5DTlItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645710557464328&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=aZnNdhM3gg9zchLbByhwBJaw4_w60RBwcJoB3SEWqWOl_qHjGu8EiYIhUKylTCcerQWTJyrOcmUAc-6pWNuKmCkGoRkQE0FOfJ0BEpHRJQVS3YeI02OiB_aTyu1ieJWdBcRkhSoSod8d2UByPLZlGPIe_itDNopnM9Dyi6jtLMKp6uL8hag-xY0wsTImB5G68YER-yctcAwIWk4FyuC9pO-_-5acJrk9J8-zuv08ma3QcWYWygxwkshCKvtQ0EmWwEHEzm48JqWAHcAm2wiU0CGQqOp3mmUm7Qlw0vm3G33_q0mtmzNk5kiGA5Vi5sYNQ23Rdc_oIELyxzuZF0aj8Q&h=5VWL0UdP763sKnRsw7orhdue6ouj7l6lxO914L5SOkY + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRJQk5DTlItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645710753999159&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=y3kjIvL3p9LYPlz6su_1VZBDpQ4OGRF-CU-cQCAFqP47iRA9NcK00E-Xjo1K2thyiyoQBltxfT66qwnLPu8WspaVOzxX32dZptt4WvYWbSlMPyDkOR__YChVfCJSjp2JphzkhbSpKukSeDiz1LuNw4l60zkH3M3z1ZnxW9fJNq0ZfCD6cTfNs_KL4I22sKUY-1nBsyjGxgf18X4hJeGfOeAYiRzRMxPVVqgA9Q0ihKSo0PcAUj3v_zGcLxgbnW01lI3SkwquMf_gCX3fLUzLTQ2AbfXBAku1XUJbuX6THI6sA7Kc19G2LBRyzI6NH8nEriQi9nPor8leatEVcSe-wA&h=B7MI9sPH_tbw6QspAhgfz0vG-64L4J3GI02ox9s-CqI + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: 8561A4C974BA4F8F9D419A924961A48E Ref B: MAA201060516029 Ref C: 2024-10-15T06:37:54Z' + status: 202 Accepted + code: 202 + duration: 979.770417ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRJQk5DTlItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645710557464328&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=aZnNdhM3gg9zchLbByhwBJaw4_w60RBwcJoB3SEWqWOl_qHjGu8EiYIhUKylTCcerQWTJyrOcmUAc-6pWNuKmCkGoRkQE0FOfJ0BEpHRJQVS3YeI02OiB_aTyu1ieJWdBcRkhSoSod8d2UByPLZlGPIe_itDNopnM9Dyi6jtLMKp6uL8hag-xY0wsTImB5G68YER-yctcAwIWk4FyuC9pO-_-5acJrk9J8-zuv08ma3QcWYWygxwkshCKvtQ0EmWwEHEzm48JqWAHcAm2wiU0CGQqOp3mmUm7Qlw0vm3G33_q0mtmzNk5kiGA5Vi5sYNQ23Rdc_oIELyxzuZF0aj8Q&h=5VWL0UdP763sKnRsw7orhdue6ouj7l6lxO914L5SOkY + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRJQk5DTlItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645710924558931&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=NpQBtX4hrwaU8uZLlH_LKZDXpVP7NzMmj39boSvEe5N5jJVC-TSXT5qzfS4zf6IWtBvr_b-kOWoxZS4VBGk9yaKbzEqNT3DoTSA17DJ8N7gA2sX9jFI82LHQVzzMPwYeX2NzqV8ZyWa46CBrPUKxfBY6tqg-P1zq5IhudZnR9JhRemgr2OM_sc1Su9zmrcg720JEzOWBBn3bPeaqFt_K9iwc5VGCitVVehEZrlvM6-K3Jf49JkEo9ZkMoTdjdlXq7mKsyR0AwUSEaITyGLw2_5L-5Qofe0T7y9l0JRcZFsSnSYg-a5Zd9ESyVnXWLdFOmRAVWKThrZXfNHUQ_5Bs4Q&h=gHwsHIWzGD6a48Htp0vamsRsB87XqlQDCQtB7u3S0G0 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3748" + X-Msedge-Ref: + - 'Ref A: 6E5552196975450E9F523D7ADAC3EADD Ref B: MAA201060516029 Ref C: 2024-10-15T06:38:11Z' + status: 202 Accepted + code: 202 + duration: 1.054360417s + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRJQk5DTlItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645710557464328&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=aZnNdhM3gg9zchLbByhwBJaw4_w60RBwcJoB3SEWqWOl_qHjGu8EiYIhUKylTCcerQWTJyrOcmUAc-6pWNuKmCkGoRkQE0FOfJ0BEpHRJQVS3YeI02OiB_aTyu1ieJWdBcRkhSoSod8d2UByPLZlGPIe_itDNopnM9Dyi6jtLMKp6uL8hag-xY0wsTImB5G68YER-yctcAwIWk4FyuC9pO-_-5acJrk9J8-zuv08ma3QcWYWygxwkshCKvtQ0EmWwEHEzm48JqWAHcAm2wiU0CGQqOp3mmUm7Qlw0vm3G33_q0mtmzNk5kiGA5Vi5sYNQ23Rdc_oIELyxzuZF0aj8Q&h=5VWL0UdP763sKnRsw7orhdue6ouj7l6lxO914L5SOkY + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRJQk5DTlItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645711095889950&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=Otj8FqasGyDwBh-0Q0XrYYokUDqwTpIJFv9Cu8X-TUy3LtSGq8Xpks9fVt03LHucmwgjgODd1xZ7dVZM2x1GhDUkOduT1YPuquZFwBMi_e65tcvcUeJ_6quMUJwyFxkuN2hycaTxj2DbIXaNfR0mEpz727A4sPqAjaqF26OuLGe3sMdjyuJFisOHqRSd-jRDpg981nwc1gYNgHX0jp4LY0hHWpFCJz1EsSo6IVOrvKSFJrNze5n9MAMST-SjSmKVvEuG4rBooPsZkoJHZHBW7_F6HDIZ5JTF8hpnw5YFwJNZT3EVs8itPbwWTH_1oyac4bfPmPi83yClI0kKB7npEA&h=uFPyEkASbQ2QJ31CncQYROVln42eUWDA1oaZb1eiV9s + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: 7107B17C589D4B9FAAD4220836076742 Ref B: MAA201060516029 Ref C: 2024-10-15T06:38:28Z' + status: 202 Accepted + code: 202 + duration: 1.082573876s + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRJQk5DTlItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645710557464328&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=aZnNdhM3gg9zchLbByhwBJaw4_w60RBwcJoB3SEWqWOl_qHjGu8EiYIhUKylTCcerQWTJyrOcmUAc-6pWNuKmCkGoRkQE0FOfJ0BEpHRJQVS3YeI02OiB_aTyu1ieJWdBcRkhSoSod8d2UByPLZlGPIe_itDNopnM9Dyi6jtLMKp6uL8hag-xY0wsTImB5G68YER-yctcAwIWk4FyuC9pO-_-5acJrk9J8-zuv08ma3QcWYWygxwkshCKvtQ0EmWwEHEzm48JqWAHcAm2wiU0CGQqOp3mmUm7Qlw0vm3G33_q0mtmzNk5kiGA5Vi5sYNQ23Rdc_oIELyxzuZF0aj8Q&h=5VWL0UdP763sKnRsw7orhdue6ouj7l6lxO914L5SOkY + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: 7F0C6C54AD5B41779BF3EBAEC06558EF Ref B: MAA201060516029 Ref C: 2024-10-15T06:38:45Z' + status: 200 OK + code: 200 + duration: 972.891084ms diff --git a/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Network_v1api20240101_CreationAndDeletion.yaml b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Network_v1api20240101_CreationAndDeletion.yaml new file mode 100644 index 00000000000..c1d5492a498 --- /dev/null +++ b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Network_v1api20240101_CreationAndDeletion.yaml @@ -0,0 +1,863 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 93 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-rg-ebwvmr","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Hash: + - 3237738651d9208c17769a280eb8ded87cfec764d11aa8eb4ab313758edf1172 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr?api-version=2020-06-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr","name":"asotest-rg-ebwvmr","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Writes: + - "2999" + X-Msedge-Ref: + - 'Ref A: D699A66B3C9B4731B1C4A92DD24E1462 Ref B: MAA201060515053 Ref C: 2024-10-15T08:37:07Z' + status: 201 Created + code: 201 + duration: 2.261564167s + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr?api-version=2020-06-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr","name":"asotest-rg-ebwvmr","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: FD936E9719E843AA9BDDDF6C04610ABD Ref B: MAA201060515053 Ref C: 2024-10-15T08:37:11Z' + status: 200 OK + code: 200 + duration: 309.329875ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 41 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"eastus2","name":"sampleasg"}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "41" + Content-Type: + - application/json + Test-Request-Hash: + - 194f013bde4053424ad4066340666db379b8221e24b9b7c0b028cf899673031a + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr/providers/Microsoft.Network/applicationSecurityGroups/sampleasg?api-version=2024-01-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 348 + uncompressed: false + body: '{"name":"sampleasg","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr/providers/Microsoft.Network/applicationSecurityGroups/sampleasg","etag":"W/\"6eb50fda-ab24-4ae7-adc8-87d9da0852e9\"","type":"Microsoft.Network/applicationSecurityGroups","location":"eastus2","properties":{"provisioningState":"Updating"}}' + headers: + Azure-Asyncnotification: + - Enabled + Azure-Asyncoperation: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/operations/2891ba66-cc3d-4a98-8cc0-563d58d6bf10?api-version=2024-01-01&t=638645782380798593&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=qpV7oFj1FXr_dskprvfzzE_tpkpjDcnH9wfqgpC3thcfgoZ4RTr5CJP5-1NB3Esct0RSuXENtRxxVpJuAkTj1in6hX2FQzTRZSoliZC0Vwf0BaWabkXqm-h48cet9r1UzILBp0IRXKjku8Qn5eow042YlKUxME_hjNlhcY8-LMpFu_xqmmmSfXO7JXe2-CghAyzl8Cj-DZIBcjqvMhsHCfBN2YJBS4a65xwFovuSlFNsXVufXAX6V1DARuOD7QuzO_S5kkeze-F3LjIMAV5CHAXl0QZ_7Jgaq87VDHLyC2A9o9cA2t5Ca3QtKk-08V1KaWI3Hbc2l_5ITcS0EQ_UeQ&h=SL-dF5lVQ7RfzTnTXIL38uqsyLuqnQiKUoRkq6GgQ5I + Cache-Control: + - no-cache + Content-Length: + - "348" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Retry-After: + - "1" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Writes: + - "2999" + X-Msedge-Ref: + - 'Ref A: 1DFCA8B40C794F7EA863DDAAB4505B47 Ref B: MAA201060515053 Ref C: 2024-10-15T08:37:15Z' + status: 201 Created + code: 201 + duration: 3.065805251s + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.Network/locations/eastus2/operations/2891ba66-cc3d-4a98-8cc0-563d58d6bf10?api-version=2024-01-01&t=638645782380798593&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=qpV7oFj1FXr_dskprvfzzE_tpkpjDcnH9wfqgpC3thcfgoZ4RTr5CJP5-1NB3Esct0RSuXENtRxxVpJuAkTj1in6hX2FQzTRZSoliZC0Vwf0BaWabkXqm-h48cet9r1UzILBp0IRXKjku8Qn5eow042YlKUxME_hjNlhcY8-LMpFu_xqmmmSfXO7JXe2-CghAyzl8Cj-DZIBcjqvMhsHCfBN2YJBS4a65xwFovuSlFNsXVufXAX6V1DARuOD7QuzO_S5kkeze-F3LjIMAV5CHAXl0QZ_7Jgaq87VDHLyC2A9o9cA2t5Ca3QtKk-08V1KaWI3Hbc2l_5ITcS0EQ_UeQ&h=SL-dF5lVQ7RfzTnTXIL38uqsyLuqnQiKUoRkq6GgQ5I + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 22 + uncompressed: false + body: '{"status":"Succeeded"}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "22" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: AA22427E12E0426399D8B8E45720F6A8 Ref B: MAA201060515053 Ref C: 2024-10-15T08:37:23Z' + status: 200 OK + code: 200 + duration: 314.823042ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr/providers/Microsoft.Network/applicationSecurityGroups/sampleasg?api-version=2024-01-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 349 + uncompressed: false + body: '{"name":"sampleasg","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr/providers/Microsoft.Network/applicationSecurityGroups/sampleasg","etag":"W/\"b3cea183-0b6d-42c1-bbbb-78351ed3e8ec\"","type":"Microsoft.Network/applicationSecurityGroups","location":"eastus2","properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "349" + Content-Type: + - application/json; charset=utf-8 + Etag: + - W/"b3cea183-0b6d-42c1-bbbb-78351ed3e8ec" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: 4DB76A4DC35045C38B9A863BFE738FDB Ref B: MAA201060515053 Ref C: 2024-10-15T08:37:23Z' + status: 200 OK + code: 200 + duration: 598.433083ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr/providers/Microsoft.Network/applicationSecurityGroups/sampleasg?api-version=2024-01-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 349 + uncompressed: false + body: '{"name":"sampleasg","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr/providers/Microsoft.Network/applicationSecurityGroups/sampleasg","etag":"W/\"b3cea183-0b6d-42c1-bbbb-78351ed3e8ec\"","type":"Microsoft.Network/applicationSecurityGroups","location":"eastus2","properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "349" + Content-Type: + - application/json; charset=utf-8 + Etag: + - W/"b3cea183-0b6d-42c1-bbbb-78351ed3e8ec" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: 0D7B898168C346BEBBE9F2961C9C7F63 Ref B: MAA201060515053 Ref C: 2024-10-15T08:37:25Z' + status: 200 OK + code: 200 + duration: 549.157167ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr?api-version=2020-06-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645782525631648&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=Wx8PVI1oEbPLRndf8ST6NkxGJk_pzrOxzPX18VOCA31jvJSCIAz9RUWEotXfAcx-_ednSnMf1-y-dzr0ptzzh24d3hotP2TCUH6em3Uoyb1IAonaWVzmJZiVbuPg01Wqv8ZEMt_4jW-Trw8zsSsHoby3KS4HlE39u5zBxlvD0LvqO9ruiojyQxAKkTFI03dMhIZfj-NpaNe2E9wghG1ym74z_q2wwL_SW-Q3Z0YrKHhlJFM1zOCkoJ3NVb7-syMJFKqbB57DCk4kQWBr00-F-P2ZPBYYRmmet4g6DG1fpofIzNhqF6P7rZwN6crQqkAsK1dKhJ_9nIwfDqPGVv8yWQ&h=9arWnULvtu6jjdMPK9Q5A9T9BeiUM2CeJGDS7UGp2a0 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Deletes: + - "2999" + X-Msedge-Ref: + - 'Ref A: 9BD3AE13B2504C0BAE9750AB4EF5283B Ref B: MAA201060515053 Ref C: 2024-10-15T08:37:29Z' + status: 202 Accepted + code: 202 + duration: 3.588062376s + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645782525631648&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=Wx8PVI1oEbPLRndf8ST6NkxGJk_pzrOxzPX18VOCA31jvJSCIAz9RUWEotXfAcx-_ednSnMf1-y-dzr0ptzzh24d3hotP2TCUH6em3Uoyb1IAonaWVzmJZiVbuPg01Wqv8ZEMt_4jW-Trw8zsSsHoby3KS4HlE39u5zBxlvD0LvqO9ruiojyQxAKkTFI03dMhIZfj-NpaNe2E9wghG1ym74z_q2wwL_SW-Q3Z0YrKHhlJFM1zOCkoJ3NVb7-syMJFKqbB57DCk4kQWBr00-F-P2ZPBYYRmmet4g6DG1fpofIzNhqF6P7rZwN6crQqkAsK1dKhJ_9nIwfDqPGVv8yWQ&h=9arWnULvtu6jjdMPK9Q5A9T9BeiUM2CeJGDS7UGp2a0 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645782723648103&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=WF45Ns2idyM9tOxMvrzOFhlFoaXYUSlNh7eUXhbotFrzQpoxKM3FVYlOcZjEAHGg6apt47AkZijTE7UJNY9GxA_M1eUG6stSJR_Y-66uUCQBuwYxLHS-3NrVcSyiezLhrJSulnJV5r079P5fseLDftjScJuK1yFoXzOAbLdSfxOQKXHpNo481WTOagNXGCUSuQND5iGr2Wgsbd23b6SyaAjnWvLwA_ZLUZ4TidnDJvBXaUgDhU5SEPJwYnUj-u-7RZOrO0UMLFdr6Jk4ckMVaqn_lAQSKXmfKSb_EqMatvqebkiok3v4ZawiUw6SsEDcdLDKeLN1CktN9dBAFjyKJg&h=oaTmrgb0PIjJLWQfFmPF-uvaCqigctT61pBiiQGyTyY + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: FEA8A6CEFD964816A07D9CDD3E71033B Ref B: MAA201060515053 Ref C: 2024-10-15T08:37:51Z' + status: 202 Accepted + code: 202 + duration: 1.095311376s + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645782525631648&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=Wx8PVI1oEbPLRndf8ST6NkxGJk_pzrOxzPX18VOCA31jvJSCIAz9RUWEotXfAcx-_ednSnMf1-y-dzr0ptzzh24d3hotP2TCUH6em3Uoyb1IAonaWVzmJZiVbuPg01Wqv8ZEMt_4jW-Trw8zsSsHoby3KS4HlE39u5zBxlvD0LvqO9ruiojyQxAKkTFI03dMhIZfj-NpaNe2E9wghG1ym74z_q2wwL_SW-Q3Z0YrKHhlJFM1zOCkoJ3NVb7-syMJFKqbB57DCk4kQWBr00-F-P2ZPBYYRmmet4g6DG1fpofIzNhqF6P7rZwN6crQqkAsK1dKhJ_9nIwfDqPGVv8yWQ&h=9arWnULvtu6jjdMPK9Q5A9T9BeiUM2CeJGDS7UGp2a0 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645782890681205&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=L3j-Zdezqe4vl02f1NwUPNUIb4DR-VVStcaACs3TuahVh4OL7RJylqqUWp7aL4F6z-fOWu1LRd74QxMZYPdyUIHEJOdwtuuR_b1ofwuMmVmBmRQ0Hp92g1BPvB83tMfbV3YTdfumCLaS3PP0GBESLREIS5VEJOaA8PCHIwmW3PZhgjk6ZXAbe9JO7esGjCp4MGY4Wc0OulAw6SV3FXt655kWsm9eUL7vtP9roWfi2WguWJCjpCs0nfwT1CAHUBxGYChxkTYtIxVHijTWrPZ12bEW75FO7lC9PB_0BOngubyDESIx9mtM4Ekqato7KkTLtixfJ8paCE7Cd-BW9ueNeg&h=3zNl-yZzMTxy4knJj-DxA6tGupHtcPRcw-CDrMas0a0 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: 76ECD8D51B4544CA9745E14B0765E63A Ref B: MAA201060515053 Ref C: 2024-10-15T08:38:08Z' + status: 202 Accepted + code: 202 + duration: 577.212083ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645782525631648&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=Wx8PVI1oEbPLRndf8ST6NkxGJk_pzrOxzPX18VOCA31jvJSCIAz9RUWEotXfAcx-_ednSnMf1-y-dzr0ptzzh24d3hotP2TCUH6em3Uoyb1IAonaWVzmJZiVbuPg01Wqv8ZEMt_4jW-Trw8zsSsHoby3KS4HlE39u5zBxlvD0LvqO9ruiojyQxAKkTFI03dMhIZfj-NpaNe2E9wghG1ym74z_q2wwL_SW-Q3Z0YrKHhlJFM1zOCkoJ3NVb7-syMJFKqbB57DCk4kQWBr00-F-P2ZPBYYRmmet4g6DG1fpofIzNhqF6P7rZwN6crQqkAsK1dKhJ_9nIwfDqPGVv8yWQ&h=9arWnULvtu6jjdMPK9Q5A9T9BeiUM2CeJGDS7UGp2a0 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645783056771682&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=CY-4ape8G9Hyd5yrGsbFA_B1NzuNoQnDep6X28ft80czKxU0KTdBA9jLxJNL6D9y_lufNEY1HlgK8_upnMIfbWs77FYFZBK1AK8A3Ad-W1QnZVY2bTEPLRGBTm5iSOMgyuwMn_Fhs_lfuvKH6gIIdKhM1EEamtaDUMdOM7rp3Qiuzi-XSSRonqNz8cwD-OUVbJs9uDFD1P7MxKg28Kd-AdCJh4kAY7xytWMKZ9KPGrVS884VqK6PK8bJ5JAcKAVRvOvLXnG-doJmZ_AmoMa-NU3TRVDrvzJeTVMmvSw0kKAxVDxMjXFvryLYZrI-Gos_Dpky9qcpn7HXqsNnlYrlfA&h=FRExYdRXynwSgVOgBNZBem52sspL_xh3kp4JHEgCGxk + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: EBBB7CFC92834093A30F227C29C2770A Ref B: MAA201060515053 Ref C: 2024-10-15T08:38:24Z' + status: 202 Accepted + code: 202 + duration: 999.164834ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645782525631648&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=Wx8PVI1oEbPLRndf8ST6NkxGJk_pzrOxzPX18VOCA31jvJSCIAz9RUWEotXfAcx-_ednSnMf1-y-dzr0ptzzh24d3hotP2TCUH6em3Uoyb1IAonaWVzmJZiVbuPg01Wqv8ZEMt_4jW-Trw8zsSsHoby3KS4HlE39u5zBxlvD0LvqO9ruiojyQxAKkTFI03dMhIZfj-NpaNe2E9wghG1ym74z_q2wwL_SW-Q3Z0YrKHhlJFM1zOCkoJ3NVb7-syMJFKqbB57DCk4kQWBr00-F-P2ZPBYYRmmet4g6DG1fpofIzNhqF6P7rZwN6crQqkAsK1dKhJ_9nIwfDqPGVv8yWQ&h=9arWnULvtu6jjdMPK9Q5A9T9BeiUM2CeJGDS7UGp2a0 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645783222469306&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=prVg1Q8wq7YxpoCPXuqb1lmOv45pAUhakVQ233qmcFG9pE-uPjyoOgpPeZaLjqCKIj2PBnyTbzPuWBbNlf4-7wwx_si-rYhagR4KvQm4iYERfRsGMyWOJC5mfmpQewJe6OlFzLhCnsG3P0KTAhwqCzKi6Nnd3uj-2hoVRKdTyqARxVgk85xnfaFQ-_bk9YU_vM5SU7bzAuTswE15MEKjpyWfxnwJLbFcnyi_i8A9WsDCs4Yy1Wc2-AeMO4haTMLM4L_kvdERHnOVnqYIP9Uh9b28nkOUbBra1DP_GNwCnDt-Fs-e3qHlLRE1e9IBKteop_JEXixo8XAcc-fQZAvaWw&h=UfHBErWwgseCfRm-jTMuERl9IR1Xq-Vi0349n35CiMA + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: C76CD4A61F744E82A72AF4368F999F67 Ref B: MAA201060515053 Ref C: 2024-10-15T08:38:41Z' + status: 202 Accepted + code: 202 + duration: 577.075ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645782525631648&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=Wx8PVI1oEbPLRndf8ST6NkxGJk_pzrOxzPX18VOCA31jvJSCIAz9RUWEotXfAcx-_ednSnMf1-y-dzr0ptzzh24d3hotP2TCUH6em3Uoyb1IAonaWVzmJZiVbuPg01Wqv8ZEMt_4jW-Trw8zsSsHoby3KS4HlE39u5zBxlvD0LvqO9ruiojyQxAKkTFI03dMhIZfj-NpaNe2E9wghG1ym74z_q2wwL_SW-Q3Z0YrKHhlJFM1zOCkoJ3NVb7-syMJFKqbB57DCk4kQWBr00-F-P2ZPBYYRmmet4g6DG1fpofIzNhqF6P7rZwN6crQqkAsK1dKhJ_9nIwfDqPGVv8yWQ&h=9arWnULvtu6jjdMPK9Q5A9T9BeiUM2CeJGDS7UGp2a0 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645783388311068&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=R7H2TZ_HadVyIvVy_S-Q3pgXMZJSfF95Y9HyOLqIyl0sgkWZnFvaHo7fNCroTL8vdOs25_pXqB-6qrT02S9xoIDWiLUG7wfl-q_4F2NWGYIjoCp-m1Y65L05wn4eSKx59PAQO08hZfwivDwpFyNpQp05T4_FbOUvhN0lptZ8oV1LYZLqwA324zuf9kfPZJ257hN01kl567-5NOqeXlaVX1_thWPDuoy1Di_DDGuJ9ceg-MSelRW3UpqIeS6VHQuCy2qlJRWmQXmZi5YvPP9b2iwp0EghKHroHVebNlYbMDjOxtfvdaNVSd8GOZwXBwA_KJyGmOIaJXmzJS2gpERSdQ&h=3DXDfLPfIcv5cKyuPR7rrrgqkByuzATS88cBFVNlByg + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: 1801A9FCC19940FC81EF57409EFB6686 Ref B: MAA201060515053 Ref C: 2024-10-15T08:38:57Z' + status: 202 Accepted + code: 202 + duration: 988.023126ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645782525631648&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=Wx8PVI1oEbPLRndf8ST6NkxGJk_pzrOxzPX18VOCA31jvJSCIAz9RUWEotXfAcx-_ednSnMf1-y-dzr0ptzzh24d3hotP2TCUH6em3Uoyb1IAonaWVzmJZiVbuPg01Wqv8ZEMt_4jW-Trw8zsSsHoby3KS4HlE39u5zBxlvD0LvqO9ruiojyQxAKkTFI03dMhIZfj-NpaNe2E9wghG1ym74z_q2wwL_SW-Q3Z0YrKHhlJFM1zOCkoJ3NVb7-syMJFKqbB57DCk4kQWBr00-F-P2ZPBYYRmmet4g6DG1fpofIzNhqF6P7rZwN6crQqkAsK1dKhJ_9nIwfDqPGVv8yWQ&h=9arWnULvtu6jjdMPK9Q5A9T9BeiUM2CeJGDS7UGp2a0 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645783558134949&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=db2EPGHkVRFMvIDJkccbNmW4AzrPCKChuxu8u2c0ONzHUWh1HBSDw4jC3uIvKLK08x6Thqc24fcbiAZE7eWy2f--E8oNmfW6knoIUUFCngWSynT9BTkzUfsCeLyRUEFpBg8GfhB0e7fowur8rdhVXbhdbseD_sW7i_wveq1VVfbVa8n6eJld7oIeE7XTTC1r3DKSqYKU0LuXw9ZN_j4vdGiXzPfYoq96ISSO_NwGjd05FBtjS1YkMPyzweZSi9i53hDq5RMCSrmBzUw80b1uo67UFQ2SmIEgBBaV6aS4nGzjuS3vOA7UFy56LczjMZ6EhJIF5BNBZOnQ2UCq73ITtA&h=ArqWOxvkpJoE7GcioBznYGrgLV4iVAuog5brr5N5IxY + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: B88C3A5D0DC247C7B19DDAB17C4F1DEB Ref B: MAA201060515053 Ref C: 2024-10-15T08:39:14Z' + status: 202 Accepted + code: 202 + duration: 994.784667ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645782525631648&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=Wx8PVI1oEbPLRndf8ST6NkxGJk_pzrOxzPX18VOCA31jvJSCIAz9RUWEotXfAcx-_ednSnMf1-y-dzr0ptzzh24d3hotP2TCUH6em3Uoyb1IAonaWVzmJZiVbuPg01Wqv8ZEMt_4jW-Trw8zsSsHoby3KS4HlE39u5zBxlvD0LvqO9ruiojyQxAKkTFI03dMhIZfj-NpaNe2E9wghG1ym74z_q2wwL_SW-Q3Z0YrKHhlJFM1zOCkoJ3NVb7-syMJFKqbB57DCk4kQWBr00-F-P2ZPBYYRmmet4g6DG1fpofIzNhqF6P7rZwN6crQqkAsK1dKhJ_9nIwfDqPGVv8yWQ&h=9arWnULvtu6jjdMPK9Q5A9T9BeiUM2CeJGDS7UGp2a0 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645783728206895&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=QZDhsUBugX92HibSiFTfESjA8L8rDUYrmi_HK2fmK5cjgyendC0mjn8ay7jZR7_GDV019xpnzHT8ZrIr8zvRg7Q7PBJdM5Flfl4jZnbulAvXsAjaQCCWipgIXGBjLfANl1Mvam0OrKtae6_IfBxNjc7vQW1Cu0Yw69v4mOHJZnHEQ7qhPMMYquP2TrkGMkUr3yYDLdPCheASValOJr1sqNbth7VU9wFdUY5a-t71HW0kHOCc3Y0keQiwZvOo5c9qz92Qz9h9pLUSjdyeMVzMEqrvvz-JC8WgR5l4uU0Y8sdhjvuvDyG6GUlx9J-HtPmPu7nienyRVRGgHAivg46Keg&h=CQmxwKnRIubRfqB7dKs-z3alcHOelJdShRMLC0VBy-8 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: 8092DA8EBE644023A5CD6F2A43379A11 Ref B: MAA201060515053 Ref C: 2024-10-15T08:39:31Z' + status: 202 Accepted + code: 202 + duration: 1.003467876s + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRFQldWTVItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638645782525631648&c=MIIHhzCCBm-gAwIBAgITfAWZnAKDvd4xEuvOGQAABZmcAjANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDUwHhcNMjQxMDAzMDg1MDA1WhcNMjUwNDAxMDg1MDA1WjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANbsFcaJpKQloFwUPDSK63qAV4_Gh5m2LagG0Kj62uLVJqYJm9Z2rd259DxiZexsVvaA6cy_4GMgYbx0S26ToW6M7U4XDYuGtf5iceHk_uR2l-j59K0z75ltaQTyjzZ5JFPiid5YueZZzakeQyGJ9eMw5Zj97j-8NiArPd4VdGOIj-ktMNqlLFHK7x012HOwhdBIqYh2iUt-0SEXmqFESmRBK2OUctVB-yGWRQXxZo1CKX1R4aDEKnb-yTbSD2IAiKr8AL5x5ccoeX6kca0TktS3G-ncZmhjOBSQLcXScjG9DIuLQAgwmlrw-Fqubep7UWxQxDMl8B6l7vpKE1t-MrECAwEAAaOCBHQwggRwMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFghfmRS4WsmTQCAWQCAQcwggHLBggrBgEFBQcBAQSCAb0wggG5MGMGCCsGAQUFBzAChldodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MFMGCCsGAQUFBzAChkdodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9DTzFQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDA1LmNydDBTBggrBgEFBQcwAoZHaHR0cDovL2NybDMuYW1lLmdibC9haWEvQ08xUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwNS5jcnQwUwYIKwYBBQUHMAKGR2h0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0NPMVBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3J0MB0GA1UdDgQWBBRWQsUCIxUfskh8RoPMbk98Jz_QpjAOBgNVHQ8BAf8EBAMCBaAwggEmBgNVHR8EggEdMIIBGTCCARWgggERoIIBDYY_aHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JshjFodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDUuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEAjAfBgNVHSMEGDAWgBR61hmFKHlscXYeYPjzS--iBUIWHTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAHR64fSdTm75xFWU4g_L3ZBLvpQ0yzVxQgBlg_wr8UjWRYOR2rHWxwk44sfm8W1t9vQBrIOq1x6kEdbdfrMVUeAB_YZfWHQjwGx4wJae16fgSjj6_CpTwePAf5aOUXi72mYCj-qltSdfZeL254zQy3OKLSDXb5Vf12TLz4WqyU4T8Noo787zKYGPOP5TGxp_bLL-s_6j-wGU9r3KoBVrwBDsGpfql6oF44DCM6TBrmtdo0AGb8avJ38fK_DfF1FEieKF-iojTygUMza86MkBBDaDHf51xBkBgSnkqdi3Er7HExrR0TWaACPqGp6b2-YV_BRteF_hME8rYvFOZO3tuX0&s=Wx8PVI1oEbPLRndf8ST6NkxGJk_pzrOxzPX18VOCA31jvJSCIAz9RUWEotXfAcx-_ednSnMf1-y-dzr0ptzzh24d3hotP2TCUH6em3Uoyb1IAonaWVzmJZiVbuPg01Wqv8ZEMt_4jW-Trw8zsSsHoby3KS4HlE39u5zBxlvD0LvqO9ruiojyQxAKkTFI03dMhIZfj-NpaNe2E9wghG1ym74z_q2wwL_SW-Q3Z0YrKHhlJFM1zOCkoJ3NVb7-syMJFKqbB57DCk4kQWBr00-F-P2ZPBYYRmmet4g6DG1fpofIzNhqF6P7rZwN6crQqkAsK1dKhJ_9nIwfDqPGVv8yWQ&h=9arWnULvtu6jjdMPK9Q5A9T9BeiUM2CeJGDS7UGp2a0 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Global-Reads: + - "3749" + X-Msedge-Ref: + - 'Ref A: B8C952535ED3495DBC5E9A3F751B1F64 Ref B: MAA201060515053 Ref C: 2024-10-15T08:39:48Z' + status: 200 OK + code: 200 + duration: 1.053654709s + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-ebwvmr/providers/Microsoft.Network/applicationSecurityGroups/sampleasg?api-version=2024-01-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 109 + uncompressed: false + body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-ebwvmr'' could not be found."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "109" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 9D2C47D88E8442739450A064F1929702 Ref B: MAA201060515053 Ref C: 2024-10-15T08:39:54Z' + status: 404 Not Found + code: 404 + duration: 385.225333ms diff --git a/v2/samples/network/v1api20240101/v1api20240101_applicationsecuritygroup.yaml b/v2/samples/network/v1api20240101/v1api20240101_applicationsecuritygroup.yaml new file mode 100644 index 00000000000..eb08cb4713e --- /dev/null +++ b/v2/samples/network/v1api20240101/v1api20240101_applicationsecuritygroup.yaml @@ -0,0 +1,9 @@ +apiVersion: network.azure.com/v1api20240101 +kind: ApplicationSecurityGroup +metadata: + name: sampleasg + namespace: default +spec: + location: eastus2 + owner: + name: aso-sample-rg