diff --git a/.github/workflows/api-docs-repo.yaml b/.github/workflows/api-docs-repo.yaml index ac23283e7e2..4f0df57b382 100644 --- a/.github/workflows/api-docs-repo.yaml +++ b/.github/workflows/api-docs-repo.yaml @@ -71,10 +71,11 @@ jobs: docker exec "$container_id" task controller:gen-crd-docs # After generating the API docs (above), regenerate our index files as now new CRDs can be linked to their docs + # Have to force this to ensure the index files are updated - name: Generate Index files run: | container_id=${{ env.container_id }} - docker exec "$container_id" task controller:generate-types + docker exec "$container_id" task controller:generate-types --force # Workaround for getting "Permission denied" errors when trying to stage files - name: Take Ownership diff --git a/.github/workflows/deploy-site.yml b/.github/workflows/deploy-site.yml index e03757f4967..c3ea7e9b7b7 100644 --- a/.github/workflows/deploy-site.yml +++ b/.github/workflows/deploy-site.yml @@ -3,7 +3,9 @@ on: push: branches: - main - + paths: + - "docs/**" + jobs: deploy-site: runs-on: ubuntu-latest diff --git a/docs/hugo/content/reference/_index.md b/docs/hugo/content/reference/_index.md index f8b3d4ef96e..d37e64cefb1 100644 --- a/docs/hugo/content/reference/_index.md +++ b/docs/hugo/content/reference/_index.md @@ -14,6 +14,18 @@ These are the resources with Azure Service Operator support committed to our **m grouped by the originating ARM service. (Newly supported resources will appear in this list prior to inclusion in any ASO release.) +## ApiManagement + +To install the CRDs for these resources, your ASO configuration must include `apimanagement.azure.com/*` as a one of the configured CRD patterns. See [CRD Management in ASO](https://azure.github.io/azure-service-operator/guide/crd-management/) for details on doing this for both [Helm](https://azure.github.io/azure-service-operator/guide/crd-management/#helm) and [YAML](https://azure.github.io/azure-service-operator/guide/crd-management/#yaml) based installations. + +### Next Release + +Development of these new resources is complete and they will be available in the next release of ASO. + +| Resource | ARM Version | CRD Version | Supported From | Sample | +|----------|-------------|---------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------| +| Service | 2022-08-01 | v1api20220801 | v2.4.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/apimanagement/v1api20220801/v1api20220801_service.yaml) | + ## AppConfiguration To install the CRDs for these resources, your ASO configuration must include `appconfiguration.azure.com/*` as a one of the configured CRD patterns. See [CRD Management in ASO](https://azure.github.io/azure-service-operator/guide/crd-management/) for details on doing this for both [Helm](https://azure.github.io/azure-service-operator/guide/crd-management/#helm) and [YAML](https://azure.github.io/azure-service-operator/guide/crd-management/#yaml) based installations. diff --git a/docs/hugo/content/reference/apimanagement/_index.md b/docs/hugo/content/reference/apimanagement/_index.md new file mode 100644 index 00000000000..cec37db8ef0 --- /dev/null +++ b/docs/hugo/content/reference/apimanagement/_index.md @@ -0,0 +1,15 @@ +--- +title: ApiManagement Supported Resources +linktitle: ApiManagement +no_list: true +--- +To install the CRDs for these resources, your ASO configuration must include `apimanagement.azure.com/*` as a one of the configured CRD patterns. See [CRD Management in ASO](https://azure.github.io/azure-service-operator/guide/crd-management/) for details on doing this for both [Helm](https://azure.github.io/azure-service-operator/guide/crd-management/#helm) and [YAML](https://azure.github.io/azure-service-operator/guide/crd-management/#yaml) based installations. + +### Next Release + +Development of these new resources is complete and they will be available in the next release of ASO. + +| Resource | ARM Version | CRD Version | Supported From | Sample | +|----------|-------------|---------------|----------------|-------------------------------------------------------------------------------------------------------------------------------------| +| Service | 2022-08-01 | v1api20220801 | v2.4.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/apimanagement/v1api20220801/v1api20220801_service.yaml) | + diff --git a/v2/api/apimanagement/customizations/service_extension_types_gen.go b/v2/api/apimanagement/customizations/service_extension_types_gen.go new file mode 100644 index 00000000000..7e315850335 --- /dev/null +++ b/v2/api/apimanagement/customizations/service_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 ( + v20220801 "github.com/Azure/azure-service-operator/v2/api/apimanagement/v1api20220801" + v20220801s "github.com/Azure/azure-service-operator/v2/api/apimanagement/v1api20220801storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +type ServiceExtension struct { +} + +// GetExtendedResources Returns the KubernetesResource slice for Resource versions +func (extension *ServiceExtension) GetExtendedResources() []genruntime.KubernetesResource { + return []genruntime.KubernetesResource{ + &v20220801.Service{}, + &v20220801s.Service{}} +} diff --git a/v2/api/apimanagement/customizations/structure.txt b/v2/api/apimanagement/customizations/structure.txt new file mode 100644 index 00000000000..d80a84ff384 --- /dev/null +++ b/v2/api/apimanagement/customizations/structure.txt @@ -0,0 +1,3 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +github.com/Azure/azure-service-operator/v2/api/apimanagement/customizations +└── ServiceExtension: Object (0 properties) diff --git a/v2/api/apimanagement/v1api20220801/doc.go b/v2/api/apimanagement/v1api20220801/doc.go new file mode 100644 index 00000000000..f5dad6ac66f --- /dev/null +++ b/v2/api/apimanagement/v1api20220801/doc.go @@ -0,0 +1,10 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by azure-service-operator-codegen. DO NOT EDIT. + +// Package v1api20220801 contains API Schema definitions for the apimanagement v1api20220801 API group +// +groupName=apimanagement.azure.com +package v1api20220801 diff --git a/v2/api/apimanagement/v1api20220801/groupversion_info_gen.go b/v2/api/apimanagement/v1api20220801/groupversion_info_gen.go new file mode 100644 index 00000000000..d26ed278038 --- /dev/null +++ b/v2/api/apimanagement/v1api20220801/groupversion_info_gen.go @@ -0,0 +1,31 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by azure-service-operator-codegen. DO NOT EDIT. + +// Package v1api20220801 contains API Schema definitions for the apimanagement v1api20220801 API group +// +kubebuilder:object:generate=true +// All object properties are optional by default, this will be overridden when needed: +// +kubebuilder:validation:Optional +// +groupName=apimanagement.azure.com +package v1api20220801 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // GroupVersion is group version used to register these objects + GroupVersion = schema.GroupVersion{Group: "apimanagement.azure.com", Version: "v1api20220801"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme + + localSchemeBuilder = SchemeBuilder.SchemeBuilder +) diff --git a/v2/api/apimanagement/v1api20220801/service_spec_arm_types_gen.go b/v2/api/apimanagement/v1api20220801/service_spec_arm_types_gen.go new file mode 100644 index 00000000000..8a4079f9282 --- /dev/null +++ b/v2/api/apimanagement/v1api20220801/service_spec_arm_types_gen.go @@ -0,0 +1,271 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220801 + +import "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + +type Service_Spec_ARM struct { + // Identity: Managed service identity of the Api Management service. + Identity *ApiManagementServiceIdentity_ARM `json:"identity,omitempty"` + + // Location: Resource location. + Location *string `json:"location,omitempty"` + Name string `json:"name,omitempty"` + + // Properties: Properties of the API Management service. + Properties *ApiManagementServiceProperties_ARM `json:"properties,omitempty"` + + // Sku: SKU properties of the API Management service. + Sku *ApiManagementServiceSkuProperties_ARM `json:"sku,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // Zones: A list of availability zones denoting where the resource needs to come from. + Zones []string `json:"zones,omitempty"` +} + +var _ genruntime.ARMResourceSpec = &Service_Spec_ARM{} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2022-08-01" +func (service Service_Spec_ARM) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetName returns the Name of the resource +func (service *Service_Spec_ARM) GetName() string { + return service.Name +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.ApiManagement/service" +func (service *Service_Spec_ARM) GetType() string { + return "Microsoft.ApiManagement/service" +} + +// Identity properties of the Api Management service resource. +type ApiManagementServiceIdentity_ARM struct { + // Type: The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly + // created identity and a set of user assigned identities. The type 'None' will remove any identities from the service. + Type *ApiManagementServiceIdentity_Type `json:"type,omitempty"` + UserAssignedIdentities map[string]UserAssignedIdentityDetails_ARM `json:"userAssignedIdentities,omitempty"` +} + +// Properties of an API Management service resource description. +type ApiManagementServiceProperties_ARM struct { + // AdditionalLocations: Additional datacenter locations of the API Management service. + AdditionalLocations []AdditionalLocation_ARM `json:"additionalLocations,omitempty"` + + // ApiVersionConstraint: Control Plane Apis version constraint for the API Management service. + ApiVersionConstraint *ApiVersionConstraint_ARM `json:"apiVersionConstraint,omitempty"` + + // Certificates: List of Certificates that need to be installed in the API Management service. Max supported certificates + // that can be installed is 10. + Certificates []CertificateConfiguration_ARM `json:"certificates,omitempty"` + + // CustomProperties: Custom properties of the API Management service.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher + // TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API + // Management service.
Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be + // used to disable just TLS 1.1 for communications with backends.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for + // communications with backends.
Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be + // used to enable HTTP2 protocol on an API Management service.
Not specifying any of these properties on PATCH + // operation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value + // is `True` if the service was created on or before April 1, 2018 and `False` otherwise. Http2 setting's default value is + // `False`.

You can disable any of the following ciphers by using settings + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, + // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, + // TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, + // TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example, + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default + // value is `true` for them.
Note: The following ciphers can't be disabled since they are required by internal + // platform components: + // TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 + CustomProperties map[string]string `json:"customProperties,omitempty"` + + // DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to + // disable the gateway in master region. + DisableGateway *bool `json:"disableGateway,omitempty"` + + // EnableClientCertificate: Property only meant to be used for Consumption SKU Service. This enforces a client certificate + // to be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the + // policy on the gateway. + EnableClientCertificate *bool `json:"enableClientCertificate,omitempty"` + + // HostnameConfigurations: Custom hostname configuration of the API Management service. + HostnameConfigurations []HostnameConfiguration_ARM `json:"hostnameConfigurations,omitempty"` + + // NatGatewayState: Property can be used to enable NAT Gateway for this API Management service. + NatGatewayState *ApiManagementServiceProperties_NatGatewayState `json:"natGatewayState,omitempty"` + + // NotificationSenderEmail: Email address from which the notification will be sent. + NotificationSenderEmail *string `json:"notificationSenderEmail,omitempty"` + PublicIpAddressId *string `json:"publicIpAddressId,omitempty"` + + // PublicNetworkAccess: Whether or not public endpoint access is allowed for this API Management service. Value is + // optional but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access + // method. Default value is 'Enabled' + PublicNetworkAccess *ApiManagementServiceProperties_PublicNetworkAccess `json:"publicNetworkAccess,omitempty"` + + // PublisherEmail: Publisher email. + PublisherEmail *string `json:"publisherEmail,omitempty"` + + // PublisherName: Publisher name. + PublisherName *string `json:"publisherName,omitempty"` + + // Restore: Undelete Api Management Service if it was previously soft-deleted. If this flag is specified and set to True + // all other properties will be ignored. + Restore *bool `json:"restore,omitempty"` + + // VirtualNetworkConfiguration: Virtual network configuration of the API Management service. + VirtualNetworkConfiguration *VirtualNetworkConfiguration_ARM `json:"virtualNetworkConfiguration,omitempty"` + + // VirtualNetworkType: The type of VPN in which API Management service needs to be configured in. None (Default Value) + // means the API Management service is not part of any Virtual Network, External means the API Management deployment is set + // up inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is + // setup inside a Virtual Network having an Intranet Facing Endpoint only. + VirtualNetworkType *ApiManagementServiceProperties_VirtualNetworkType `json:"virtualNetworkType,omitempty"` +} + +// API Management service resource SKU properties. +type ApiManagementServiceSkuProperties_ARM struct { + // Capacity: Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0. + Capacity *int `json:"capacity,omitempty"` + + // Name: Name of the Sku. + Name *ApiManagementServiceSkuProperties_Name `json:"name,omitempty"` +} + +// Description of an additional API Management resource location. +type AdditionalLocation_ARM struct { + // DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to + // disable the gateway in this additional location. + DisableGateway *bool `json:"disableGateway,omitempty"` + + // Location: The location name of the additional region among Azure Data center regions. + Location *string `json:"location,omitempty"` + + // NatGatewayState: Property can be used to enable NAT Gateway for this API Management service. + NatGatewayState *AdditionalLocation_NatGatewayState `json:"natGatewayState,omitempty"` + PublicIpAddressId *string `json:"publicIpAddressId,omitempty"` + + // Sku: SKU properties of the API Management service. + Sku *ApiManagementServiceSkuProperties_ARM `json:"sku,omitempty"` + + // VirtualNetworkConfiguration: Virtual network configuration for the location. + VirtualNetworkConfiguration *VirtualNetworkConfiguration_ARM `json:"virtualNetworkConfiguration,omitempty"` + + // Zones: A list of availability zones denoting where the resource needs to come from. + Zones []string `json:"zones,omitempty"` +} + +// +kubebuilder:validation:Enum={"None","SystemAssigned","SystemAssigned, UserAssigned","UserAssigned"} +type ApiManagementServiceIdentity_Type string + +const ( + ApiManagementServiceIdentity_Type_None = ApiManagementServiceIdentity_Type("None") + ApiManagementServiceIdentity_Type_SystemAssigned = ApiManagementServiceIdentity_Type("SystemAssigned") + ApiManagementServiceIdentity_Type_SystemAssignedUserAssigned = ApiManagementServiceIdentity_Type("SystemAssigned, UserAssigned") + ApiManagementServiceIdentity_Type_UserAssigned = ApiManagementServiceIdentity_Type("UserAssigned") +) + +// +kubebuilder:validation:Enum={"Basic","Consumption","Developer","Isolated","Premium","Standard"} +type ApiManagementServiceSkuProperties_Name string + +const ( + ApiManagementServiceSkuProperties_Name_Basic = ApiManagementServiceSkuProperties_Name("Basic") + ApiManagementServiceSkuProperties_Name_Consumption = ApiManagementServiceSkuProperties_Name("Consumption") + ApiManagementServiceSkuProperties_Name_Developer = ApiManagementServiceSkuProperties_Name("Developer") + ApiManagementServiceSkuProperties_Name_Isolated = ApiManagementServiceSkuProperties_Name("Isolated") + ApiManagementServiceSkuProperties_Name_Premium = ApiManagementServiceSkuProperties_Name("Premium") + ApiManagementServiceSkuProperties_Name_Standard = ApiManagementServiceSkuProperties_Name("Standard") +) + +// Control Plane Apis version constraint for the API Management service. +type ApiVersionConstraint_ARM struct { + // MinApiVersion: Limit control plane API calls to API Management service with version equal to or newer than this value. + MinApiVersion *string `json:"minApiVersion,omitempty"` +} + +// Certificate configuration which consist of non-trusted intermediates and root certificates. +type CertificateConfiguration_ARM struct { + // Certificate: Certificate information. + Certificate *CertificateInformation_ARM `json:"certificate,omitempty"` + + // CertificatePassword: Certificate Password. + CertificatePassword *string `json:"certificatePassword,omitempty"` + + // EncodedCertificate: Base64 Encoded certificate. + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + + // StoreName: The System.Security.Cryptography.x509certificates.StoreName certificate store location. Only Root and + // CertificateAuthority are valid locations. + StoreName *CertificateConfiguration_StoreName `json:"storeName,omitempty"` +} + +// Custom hostname configuration. +type HostnameConfiguration_ARM struct { + // Certificate: Certificate information. + Certificate *CertificateInformation_ARM `json:"certificate,omitempty"` + + // CertificatePassword: Certificate Password. + CertificatePassword *string `json:"certificatePassword,omitempty"` + + // CertificateSource: Certificate Source. + CertificateSource *HostnameConfiguration_CertificateSource `json:"certificateSource,omitempty"` + + // CertificateStatus: Certificate Status. + CertificateStatus *HostnameConfiguration_CertificateStatus `json:"certificateStatus,omitempty"` + + // DefaultSslBinding: Specify true to setup the certificate associated with this Hostname as the Default SSL Certificate. + // If a client does not send the SNI header, then this will be the certificate that will be challenged. The property is + // useful if a service has multiple custom hostname enabled and it needs to decide on the default ssl certificate. The + // setting only applied to gateway Hostname Type. + DefaultSslBinding *bool `json:"defaultSslBinding,omitempty"` + + // EncodedCertificate: Base64 Encoded certificate. + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + + // HostName: Hostname to configure on the Api Management service. + HostName *string `json:"hostName,omitempty"` + + // IdentityClientId: System or User Assigned Managed identity clientId as generated by Azure AD, which has GET access to + // the keyVault containing the SSL certificate. + IdentityClientId *string `json:"identityClientId,omitempty" optionalConfigMapPair:"IdentityClientId"` + + // KeyVaultId: Url to the KeyVault Secret containing the Ssl Certificate. If absolute Url containing version is provided, + // auto-update of ssl certificate will not work. This requires Api Management service to be configured with aka.ms/apimmsi. + // The secret should be of type *application/x-pkcs12* + KeyVaultId *string `json:"keyVaultId,omitempty"` + + // NegotiateClientCertificate: Specify true to always negotiate client certificate on the hostname. Default Value is false. + NegotiateClientCertificate *bool `json:"negotiateClientCertificate,omitempty"` + + // Type: Hostname type. + Type *HostnameConfiguration_Type `json:"type,omitempty"` +} + +// Information about the user assigned identity for the resource +type UserAssignedIdentityDetails_ARM struct { +} + +// Configuration of a virtual network to which API Management service is deployed. +type VirtualNetworkConfiguration_ARM struct { + SubnetResourceId *string `json:"subnetResourceId,omitempty"` +} + +// SSL certificate information. +type CertificateInformation_ARM struct { + // Expiry: Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as + // specified by the ISO 8601 standard. + Expiry *string `json:"expiry,omitempty" optionalConfigMapPair:"Expiry"` + + // Subject: Subject of the certificate. + Subject *string `json:"subject,omitempty" optionalConfigMapPair:"Subject"` + + // Thumbprint: Thumbprint of the certificate. + Thumbprint *string `json:"thumbprint,omitempty" optionalConfigMapPair:"Thumbprint"` +} diff --git a/v2/api/apimanagement/v1api20220801/service_spec_arm_types_gen_test.go b/v2/api/apimanagement/v1api20220801/service_spec_arm_types_gen_test.go new file mode 100644 index 00000000000..b2d51a7ddbe --- /dev/null +++ b/v2/api/apimanagement/v1api20220801/service_spec_arm_types_gen_test.go @@ -0,0 +1,823 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220801 + +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_Service_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 Service_Spec_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForService_Spec_ARM, Service_Spec_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForService_Spec_ARM runs a test to see if a specific instance of Service_Spec_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForService_Spec_ARM(subject Service_Spec_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Service_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 Service_Spec_ARM instances for property testing - lazily instantiated by Service_Spec_ARMGenerator() +var service_Spec_ARMGenerator gopter.Gen + +// Service_Spec_ARMGenerator returns a generator of Service_Spec_ARM instances for property testing. +// We first initialize service_Spec_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 Service_Spec_ARMGenerator() gopter.Gen { + if service_Spec_ARMGenerator != nil { + return service_Spec_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_Spec_ARM(generators) + service_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(Service_Spec_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_Spec_ARM(generators) + AddRelatedPropertyGeneratorsForService_Spec_ARM(generators) + service_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(Service_Spec_ARM{}), generators) + + return service_Spec_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForService_Spec_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForService_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()) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForService_Spec_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForService_Spec_ARM(gens map[string]gopter.Gen) { + gens["Identity"] = gen.PtrOf(ApiManagementServiceIdentity_ARMGenerator()) + gens["Properties"] = gen.PtrOf(ApiManagementServiceProperties_ARMGenerator()) + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuProperties_ARMGenerator()) +} + +func Test_ApiManagementServiceIdentity_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApiManagementServiceIdentity_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceIdentity_ARM, ApiManagementServiceIdentity_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceIdentity_ARM runs a test to see if a specific instance of ApiManagementServiceIdentity_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceIdentity_ARM(subject ApiManagementServiceIdentity_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceIdentity_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 ApiManagementServiceIdentity_ARM instances for property testing - lazily instantiated by +// ApiManagementServiceIdentity_ARMGenerator() +var apiManagementServiceIdentity_ARMGenerator gopter.Gen + +// ApiManagementServiceIdentity_ARMGenerator returns a generator of ApiManagementServiceIdentity_ARM instances for property testing. +// We first initialize apiManagementServiceIdentity_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 ApiManagementServiceIdentity_ARMGenerator() gopter.Gen { + if apiManagementServiceIdentity_ARMGenerator != nil { + return apiManagementServiceIdentity_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_ARM(generators) + apiManagementServiceIdentity_ARMGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_ARM(generators) + AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_ARM(generators) + apiManagementServiceIdentity_ARMGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity_ARM{}), generators) + + return apiManagementServiceIdentity_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_ARM(gens map[string]gopter.Gen) { + gens["Type"] = gen.PtrOf(gen.OneConstOf( + ApiManagementServiceIdentity_Type_None, + ApiManagementServiceIdentity_Type_SystemAssigned, + ApiManagementServiceIdentity_Type_SystemAssignedUserAssigned, + ApiManagementServiceIdentity_Type_UserAssigned)) +} + +// AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_ARM(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.MapOf(gen.AlphaString(), UserAssignedIdentityDetails_ARMGenerator()) +} + +func Test_ApiManagementServiceProperties_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApiManagementServiceProperties_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceProperties_ARM, ApiManagementServiceProperties_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceProperties_ARM runs a test to see if a specific instance of ApiManagementServiceProperties_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceProperties_ARM(subject ApiManagementServiceProperties_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceProperties_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 ApiManagementServiceProperties_ARM instances for property testing - lazily instantiated by +// ApiManagementServiceProperties_ARMGenerator() +var apiManagementServiceProperties_ARMGenerator gopter.Gen + +// ApiManagementServiceProperties_ARMGenerator returns a generator of ApiManagementServiceProperties_ARM instances for property testing. +// We first initialize apiManagementServiceProperties_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 ApiManagementServiceProperties_ARMGenerator() gopter.Gen { + if apiManagementServiceProperties_ARMGenerator != nil { + return apiManagementServiceProperties_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceProperties_ARM(generators) + apiManagementServiceProperties_ARMGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceProperties_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceProperties_ARM(generators) + AddRelatedPropertyGeneratorsForApiManagementServiceProperties_ARM(generators) + apiManagementServiceProperties_ARMGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceProperties_ARM{}), generators) + + return apiManagementServiceProperties_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceProperties_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceProperties_ARM(gens map[string]gopter.Gen) { + gens["CustomProperties"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["EnableClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["NatGatewayState"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_NatGatewayState_Disabled, ApiManagementServiceProperties_NatGatewayState_Enabled)) + gens["NotificationSenderEmail"] = gen.PtrOf(gen.AlphaString()) + gens["PublicIpAddressId"] = gen.PtrOf(gen.AlphaString()) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_PublicNetworkAccess_Disabled, ApiManagementServiceProperties_PublicNetworkAccess_Enabled)) + gens["PublisherEmail"] = gen.PtrOf(gen.AlphaString()) + gens["PublisherName"] = gen.PtrOf(gen.AlphaString()) + gens["Restore"] = gen.PtrOf(gen.Bool()) + gens["VirtualNetworkType"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_VirtualNetworkType_External, ApiManagementServiceProperties_VirtualNetworkType_Internal, ApiManagementServiceProperties_VirtualNetworkType_None)) +} + +// AddRelatedPropertyGeneratorsForApiManagementServiceProperties_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForApiManagementServiceProperties_ARM(gens map[string]gopter.Gen) { + gens["AdditionalLocations"] = gen.SliceOf(AdditionalLocation_ARMGenerator()) + gens["ApiVersionConstraint"] = gen.PtrOf(ApiVersionConstraint_ARMGenerator()) + gens["Certificates"] = gen.SliceOf(CertificateConfiguration_ARMGenerator()) + gens["HostnameConfigurations"] = gen.SliceOf(HostnameConfiguration_ARMGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfiguration_ARMGenerator()) +} + +func Test_ApiManagementServiceSkuProperties_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApiManagementServiceSkuProperties_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceSkuProperties_ARM, ApiManagementServiceSkuProperties_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceSkuProperties_ARM runs a test to see if a specific instance of ApiManagementServiceSkuProperties_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceSkuProperties_ARM(subject ApiManagementServiceSkuProperties_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceSkuProperties_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 ApiManagementServiceSkuProperties_ARM instances for property testing - lazily instantiated by +// ApiManagementServiceSkuProperties_ARMGenerator() +var apiManagementServiceSkuProperties_ARMGenerator gopter.Gen + +// ApiManagementServiceSkuProperties_ARMGenerator returns a generator of ApiManagementServiceSkuProperties_ARM instances for property testing. +func ApiManagementServiceSkuProperties_ARMGenerator() gopter.Gen { + if apiManagementServiceSkuProperties_ARMGenerator != nil { + return apiManagementServiceSkuProperties_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_ARM(generators) + apiManagementServiceSkuProperties_ARMGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceSkuProperties_ARM{}), generators) + + return apiManagementServiceSkuProperties_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_ARM(gens map[string]gopter.Gen) { + gens["Capacity"] = gen.PtrOf(gen.Int()) + gens["Name"] = gen.PtrOf(gen.OneConstOf( + ApiManagementServiceSkuProperties_Name_Basic, + ApiManagementServiceSkuProperties_Name_Consumption, + ApiManagementServiceSkuProperties_Name_Developer, + ApiManagementServiceSkuProperties_Name_Isolated, + ApiManagementServiceSkuProperties_Name_Premium, + ApiManagementServiceSkuProperties_Name_Standard)) +} + +func Test_AdditionalLocation_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AdditionalLocation_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAdditionalLocation_ARM, AdditionalLocation_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAdditionalLocation_ARM runs a test to see if a specific instance of AdditionalLocation_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForAdditionalLocation_ARM(subject AdditionalLocation_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AdditionalLocation_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 AdditionalLocation_ARM instances for property testing - lazily instantiated by +// AdditionalLocation_ARMGenerator() +var additionalLocation_ARMGenerator gopter.Gen + +// AdditionalLocation_ARMGenerator returns a generator of AdditionalLocation_ARM instances for property testing. +// We first initialize additionalLocation_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 AdditionalLocation_ARMGenerator() gopter.Gen { + if additionalLocation_ARMGenerator != nil { + return additionalLocation_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation_ARM(generators) + additionalLocation_ARMGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation_ARM(generators) + AddRelatedPropertyGeneratorsForAdditionalLocation_ARM(generators) + additionalLocation_ARMGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation_ARM{}), generators) + + return additionalLocation_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForAdditionalLocation_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAdditionalLocation_ARM(gens map[string]gopter.Gen) { + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["NatGatewayState"] = gen.PtrOf(gen.OneConstOf(AdditionalLocation_NatGatewayState_Disabled, AdditionalLocation_NatGatewayState_Enabled)) + gens["PublicIpAddressId"] = gen.PtrOf(gen.AlphaString()) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAdditionalLocation_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAdditionalLocation_ARM(gens map[string]gopter.Gen) { + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuProperties_ARMGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfiguration_ARMGenerator()) +} + +func Test_ApiVersionConstraint_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApiVersionConstraint_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiVersionConstraint_ARM, ApiVersionConstraint_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiVersionConstraint_ARM runs a test to see if a specific instance of ApiVersionConstraint_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForApiVersionConstraint_ARM(subject ApiVersionConstraint_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiVersionConstraint_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 ApiVersionConstraint_ARM instances for property testing - lazily instantiated by +// ApiVersionConstraint_ARMGenerator() +var apiVersionConstraint_ARMGenerator gopter.Gen + +// ApiVersionConstraint_ARMGenerator returns a generator of ApiVersionConstraint_ARM instances for property testing. +func ApiVersionConstraint_ARMGenerator() gopter.Gen { + if apiVersionConstraint_ARMGenerator != nil { + return apiVersionConstraint_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiVersionConstraint_ARM(generators) + apiVersionConstraint_ARMGenerator = gen.Struct(reflect.TypeOf(ApiVersionConstraint_ARM{}), generators) + + return apiVersionConstraint_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForApiVersionConstraint_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiVersionConstraint_ARM(gens map[string]gopter.Gen) { + gens["MinApiVersion"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CertificateConfiguration_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CertificateConfiguration_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateConfiguration_ARM, CertificateConfiguration_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateConfiguration_ARM runs a test to see if a specific instance of CertificateConfiguration_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateConfiguration_ARM(subject CertificateConfiguration_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateConfiguration_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 CertificateConfiguration_ARM instances for property testing - lazily instantiated by +// CertificateConfiguration_ARMGenerator() +var certificateConfiguration_ARMGenerator gopter.Gen + +// CertificateConfiguration_ARMGenerator returns a generator of CertificateConfiguration_ARM instances for property testing. +// We first initialize certificateConfiguration_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 CertificateConfiguration_ARMGenerator() gopter.Gen { + if certificateConfiguration_ARMGenerator != nil { + return certificateConfiguration_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration_ARM(generators) + certificateConfiguration_ARMGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration_ARM(generators) + AddRelatedPropertyGeneratorsForCertificateConfiguration_ARM(generators) + certificateConfiguration_ARMGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration_ARM{}), generators) + + return certificateConfiguration_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateConfiguration_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateConfiguration_ARM(gens map[string]gopter.Gen) { + gens["CertificatePassword"] = gen.PtrOf(gen.AlphaString()) + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["StoreName"] = gen.PtrOf(gen.OneConstOf(CertificateConfiguration_StoreName_CertificateAuthority, CertificateConfiguration_StoreName_Root)) +} + +// AddRelatedPropertyGeneratorsForCertificateConfiguration_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForCertificateConfiguration_ARM(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformation_ARMGenerator()) +} + +func Test_HostnameConfiguration_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of HostnameConfiguration_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForHostnameConfiguration_ARM, HostnameConfiguration_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForHostnameConfiguration_ARM runs a test to see if a specific instance of HostnameConfiguration_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForHostnameConfiguration_ARM(subject HostnameConfiguration_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual HostnameConfiguration_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 HostnameConfiguration_ARM instances for property testing - lazily instantiated by +// HostnameConfiguration_ARMGenerator() +var hostnameConfiguration_ARMGenerator gopter.Gen + +// HostnameConfiguration_ARMGenerator returns a generator of HostnameConfiguration_ARM instances for property testing. +// We first initialize hostnameConfiguration_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 HostnameConfiguration_ARMGenerator() gopter.Gen { + if hostnameConfiguration_ARMGenerator != nil { + return hostnameConfiguration_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration_ARM(generators) + hostnameConfiguration_ARMGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration_ARM(generators) + AddRelatedPropertyGeneratorsForHostnameConfiguration_ARM(generators) + hostnameConfiguration_ARMGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration_ARM{}), generators) + + return hostnameConfiguration_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForHostnameConfiguration_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForHostnameConfiguration_ARM(gens map[string]gopter.Gen) { + gens["CertificatePassword"] = gen.PtrOf(gen.AlphaString()) + gens["CertificateSource"] = gen.PtrOf(gen.OneConstOf( + HostnameConfiguration_CertificateSource_BuiltIn, + HostnameConfiguration_CertificateSource_Custom, + HostnameConfiguration_CertificateSource_KeyVault, + HostnameConfiguration_CertificateSource_Managed)) + gens["CertificateStatus"] = gen.PtrOf(gen.OneConstOf(HostnameConfiguration_CertificateStatus_Completed, HostnameConfiguration_CertificateStatus_Failed, HostnameConfiguration_CertificateStatus_InProgress)) + gens["DefaultSslBinding"] = gen.PtrOf(gen.Bool()) + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["HostName"] = gen.PtrOf(gen.AlphaString()) + gens["IdentityClientId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultId"] = gen.PtrOf(gen.AlphaString()) + gens["NegotiateClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["Type"] = gen.PtrOf(gen.OneConstOf( + HostnameConfiguration_Type_DeveloperPortal, + HostnameConfiguration_Type_Management, + HostnameConfiguration_Type_Portal, + HostnameConfiguration_Type_Proxy, + HostnameConfiguration_Type_Scm)) +} + +// AddRelatedPropertyGeneratorsForHostnameConfiguration_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForHostnameConfiguration_ARM(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformation_ARMGenerator()) +} + +func Test_UserAssignedIdentityDetails_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentityDetails_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentityDetails_ARM, UserAssignedIdentityDetails_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentityDetails_ARM runs a test to see if a specific instance of UserAssignedIdentityDetails_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentityDetails_ARM(subject UserAssignedIdentityDetails_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentityDetails_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 UserAssignedIdentityDetails_ARM instances for property testing - lazily instantiated by +// UserAssignedIdentityDetails_ARMGenerator() +var userAssignedIdentityDetails_ARMGenerator gopter.Gen + +// UserAssignedIdentityDetails_ARMGenerator returns a generator of UserAssignedIdentityDetails_ARM instances for property testing. +func UserAssignedIdentityDetails_ARMGenerator() gopter.Gen { + if userAssignedIdentityDetails_ARMGenerator != nil { + return userAssignedIdentityDetails_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + userAssignedIdentityDetails_ARMGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentityDetails_ARM{}), generators) + + return userAssignedIdentityDetails_ARMGenerator +} + +func Test_VirtualNetworkConfiguration_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of VirtualNetworkConfiguration_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForVirtualNetworkConfiguration_ARM, VirtualNetworkConfiguration_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForVirtualNetworkConfiguration_ARM runs a test to see if a specific instance of VirtualNetworkConfiguration_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForVirtualNetworkConfiguration_ARM(subject VirtualNetworkConfiguration_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual VirtualNetworkConfiguration_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 VirtualNetworkConfiguration_ARM instances for property testing - lazily instantiated by +// VirtualNetworkConfiguration_ARMGenerator() +var virtualNetworkConfiguration_ARMGenerator gopter.Gen + +// VirtualNetworkConfiguration_ARMGenerator returns a generator of VirtualNetworkConfiguration_ARM instances for property testing. +func VirtualNetworkConfiguration_ARMGenerator() gopter.Gen { + if virtualNetworkConfiguration_ARMGenerator != nil { + return virtualNetworkConfiguration_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_ARM(generators) + virtualNetworkConfiguration_ARMGenerator = gen.Struct(reflect.TypeOf(VirtualNetworkConfiguration_ARM{}), generators) + + return virtualNetworkConfiguration_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_ARM(gens map[string]gopter.Gen) { + gens["SubnetResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CertificateInformation_ARM_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CertificateInformation_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateInformation_ARM, CertificateInformation_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateInformation_ARM runs a test to see if a specific instance of CertificateInformation_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateInformation_ARM(subject CertificateInformation_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateInformation_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 CertificateInformation_ARM instances for property testing - lazily instantiated by +// CertificateInformation_ARMGenerator() +var certificateInformation_ARMGenerator gopter.Gen + +// CertificateInformation_ARMGenerator returns a generator of CertificateInformation_ARM instances for property testing. +func CertificateInformation_ARMGenerator() gopter.Gen { + if certificateInformation_ARMGenerator != nil { + return certificateInformation_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateInformation_ARM(generators) + certificateInformation_ARMGenerator = gen.Struct(reflect.TypeOf(CertificateInformation_ARM{}), generators) + + return certificateInformation_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateInformation_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateInformation_ARM(gens map[string]gopter.Gen) { + gens["Expiry"] = gen.PtrOf(gen.AlphaString()) + gens["Subject"] = gen.PtrOf(gen.AlphaString()) + gens["Thumbprint"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/apimanagement/v1api20220801/service_status_arm_types_gen.go b/v2/api/apimanagement/v1api20220801/service_status_arm_types_gen.go new file mode 100644 index 00000000000..a8c83e6bb2e --- /dev/null +++ b/v2/api/apimanagement/v1api20220801/service_status_arm_types_gen.go @@ -0,0 +1,440 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220801 + +type Service_STATUS_ARM struct { + // Etag: ETag of the resource. + Etag *string `json:"etag,omitempty"` + + // Id: Resource ID. + Id *string `json:"id,omitempty"` + + // Identity: Managed service identity of the Api Management service. + Identity *ApiManagementServiceIdentity_STATUS_ARM `json:"identity,omitempty"` + + // Location: Resource location. + Location *string `json:"location,omitempty"` + + // Name: Resource name. + Name *string `json:"name,omitempty"` + + // Properties: Properties of the API Management service. + Properties *ApiManagementServiceProperties_STATUS_ARM `json:"properties,omitempty"` + + // Sku: SKU properties of the API Management service. + Sku *ApiManagementServiceSkuProperties_STATUS_ARM `json:"sku,omitempty"` + + // SystemData: Metadata pertaining to creation and last modification of the resource. + SystemData *SystemData_STATUS_ARM `json:"systemData,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // Type: Resource type for API Management resource is set to Microsoft.ApiManagement. + Type *string `json:"type,omitempty"` + + // Zones: A list of availability zones denoting where the resource needs to come from. + Zones []string `json:"zones,omitempty"` +} + +// Identity properties of the Api Management service resource. +type ApiManagementServiceIdentity_STATUS_ARM struct { + // PrincipalId: The principal id of the identity. + PrincipalId *string `json:"principalId,omitempty"` + + // TenantId: The client tenant id of the identity. + TenantId *string `json:"tenantId,omitempty"` + + // Type: The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly + // created identity and a set of user assigned identities. The type 'None' will remove any identities from the service. + Type *ApiManagementServiceIdentity_Type_STATUS `json:"type,omitempty"` + + // UserAssignedIdentities: The list of user identities associated with the resource. The user identity + // dictionary key references will be ARM resource ids in the form: + // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ + // providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + UserAssignedIdentities map[string]UserIdentityProperties_STATUS_ARM `json:"userAssignedIdentities,omitempty"` +} + +// Properties of an API Management service resource description. +type ApiManagementServiceProperties_STATUS_ARM struct { + // AdditionalLocations: Additional datacenter locations of the API Management service. + AdditionalLocations []AdditionalLocation_STATUS_ARM `json:"additionalLocations,omitempty"` + + // ApiVersionConstraint: Control Plane Apis version constraint for the API Management service. + ApiVersionConstraint *ApiVersionConstraint_STATUS_ARM `json:"apiVersionConstraint,omitempty"` + + // Certificates: List of Certificates that need to be installed in the API Management service. Max supported certificates + // that can be installed is 10. + Certificates []CertificateConfiguration_STATUS_ARM `json:"certificates,omitempty"` + + // CreatedAtUtc: Creation UTC date of the API Management service.The date conforms to the following format: + // `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard. + CreatedAtUtc *string `json:"createdAtUtc,omitempty"` + + // CustomProperties: Custom properties of the API Management service.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher + // TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API + // Management service.
Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be + // used to disable just TLS 1.1 for communications with backends.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for + // communications with backends.
Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be + // used to enable HTTP2 protocol on an API Management service.
Not specifying any of these properties on PATCH + // operation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value + // is `True` if the service was created on or before April 1, 2018 and `False` otherwise. Http2 setting's default value is + // `False`.

You can disable any of the following ciphers by using settings + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, + // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, + // TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, + // TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example, + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default + // value is `true` for them.
Note: The following ciphers can't be disabled since they are required by internal + // platform components: + // TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 + CustomProperties map[string]string `json:"customProperties,omitempty"` + + // DeveloperPortalUrl: DEveloper Portal endpoint URL of the API Management service. + DeveloperPortalUrl *string `json:"developerPortalUrl,omitempty"` + + // DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to + // disable the gateway in master region. + DisableGateway *bool `json:"disableGateway,omitempty"` + + // EnableClientCertificate: Property only meant to be used for Consumption SKU Service. This enforces a client certificate + // to be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the + // policy on the gateway. + EnableClientCertificate *bool `json:"enableClientCertificate,omitempty"` + + // GatewayRegionalUrl: Gateway URL of the API Management service in the Default Region. + GatewayRegionalUrl *string `json:"gatewayRegionalUrl,omitempty"` + + // GatewayUrl: Gateway URL of the API Management service. + GatewayUrl *string `json:"gatewayUrl,omitempty"` + + // HostnameConfigurations: Custom hostname configuration of the API Management service. + HostnameConfigurations []HostnameConfiguration_STATUS_ARM `json:"hostnameConfigurations,omitempty"` + + // ManagementApiUrl: Management API endpoint URL of the API Management service. + ManagementApiUrl *string `json:"managementApiUrl,omitempty"` + + // NatGatewayState: Property can be used to enable NAT Gateway for this API Management service. + NatGatewayState *ApiManagementServiceProperties_NatGatewayState_STATUS `json:"natGatewayState,omitempty"` + + // NotificationSenderEmail: Email address from which the notification will be sent. + NotificationSenderEmail *string `json:"notificationSenderEmail,omitempty"` + + // OutboundPublicIPAddresses: Outbound public IPV4 address prefixes associated with NAT Gateway deployed service. Available + // only for Premium SKU on stv2 platform. + OutboundPublicIPAddresses []string `json:"outboundPublicIPAddresses,omitempty"` + + // PlatformVersion: Compute Platform Version running the service in this location. + PlatformVersion *ApiManagementServiceProperties_PlatformVersion_STATUS `json:"platformVersion,omitempty"` + + // PortalUrl: Publisher portal endpoint Url of the API Management service. + PortalUrl *string `json:"portalUrl,omitempty"` + + // PrivateEndpointConnections: List of Private Endpoint Connections of this service. + PrivateEndpointConnections []RemotePrivateEndpointConnectionWrapper_STATUS_ARM `json:"privateEndpointConnections,omitempty"` + + // PrivateIPAddresses: Private Static Load Balanced IP addresses of the API Management service in Primary region which is + // deployed in an Internal Virtual Network. Available only for Basic, Standard, Premium and Isolated SKU. + PrivateIPAddresses []string `json:"privateIPAddresses,omitempty"` + + // ProvisioningState: The current provisioning state of the API Management service which can be one of the following: + // Created/Activating/Succeeded/Updating/Failed/Stopped/Terminating/TerminationFailed/Deleted. + ProvisioningState *string `json:"provisioningState,omitempty"` + + // PublicIPAddresses: Public Static Load Balanced IP addresses of the API Management service in Primary region. Available + // only for Basic, Standard, Premium and Isolated SKU. + PublicIPAddresses []string `json:"publicIPAddresses,omitempty"` + + // PublicIpAddressId: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in + // the region. Supported only for Developer and Premium SKU being deployed in Virtual Network. + PublicIpAddressId *string `json:"publicIpAddressId,omitempty"` + + // PublicNetworkAccess: Whether or not public endpoint access is allowed for this API Management service. Value is + // optional but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access + // method. Default value is 'Enabled' + PublicNetworkAccess *ApiManagementServiceProperties_PublicNetworkAccess_STATUS `json:"publicNetworkAccess,omitempty"` + + // PublisherEmail: Publisher email. + PublisherEmail *string `json:"publisherEmail,omitempty"` + + // PublisherName: Publisher name. + PublisherName *string `json:"publisherName,omitempty"` + + // Restore: Undelete Api Management Service if it was previously soft-deleted. If this flag is specified and set to True + // all other properties will be ignored. + Restore *bool `json:"restore,omitempty"` + + // ScmUrl: SCM endpoint URL of the API Management service. + ScmUrl *string `json:"scmUrl,omitempty"` + + // TargetProvisioningState: The provisioning state of the API Management service, which is targeted by the long running + // operation started on the service. + TargetProvisioningState *string `json:"targetProvisioningState,omitempty"` + + // VirtualNetworkConfiguration: Virtual network configuration of the API Management service. + VirtualNetworkConfiguration *VirtualNetworkConfiguration_STATUS_ARM `json:"virtualNetworkConfiguration,omitempty"` + + // VirtualNetworkType: The type of VPN in which API Management service needs to be configured in. None (Default Value) + // means the API Management service is not part of any Virtual Network, External means the API Management deployment is set + // up inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is + // setup inside a Virtual Network having an Intranet Facing Endpoint only. + VirtualNetworkType *ApiManagementServiceProperties_VirtualNetworkType_STATUS `json:"virtualNetworkType,omitempty"` +} + +// API Management service resource SKU properties. +type ApiManagementServiceSkuProperties_STATUS_ARM struct { + // Capacity: Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0. + Capacity *int `json:"capacity,omitempty"` + + // Name: Name of the Sku. + Name *ApiManagementServiceSkuProperties_Name_STATUS `json:"name,omitempty"` +} + +// Metadata pertaining to creation and last modification of the resource. +type SystemData_STATUS_ARM struct { + // CreatedAt: The timestamp of resource creation (UTC). + CreatedAt *string `json:"createdAt,omitempty"` + + // CreatedBy: The identity that created the resource. + CreatedBy *string `json:"createdBy,omitempty"` + + // CreatedByType: The type of identity that created the resource. + CreatedByType *SystemData_CreatedByType_STATUS `json:"createdByType,omitempty"` + + // LastModifiedAt: The timestamp of resource last modification (UTC) + LastModifiedAt *string `json:"lastModifiedAt,omitempty"` + + // LastModifiedBy: The identity that last modified the resource. + LastModifiedBy *string `json:"lastModifiedBy,omitempty"` + + // LastModifiedByType: The type of identity that last modified the resource. + LastModifiedByType *SystemData_LastModifiedByType_STATUS `json:"lastModifiedByType,omitempty"` +} + +// Description of an additional API Management resource location. +type AdditionalLocation_STATUS_ARM struct { + // DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to + // disable the gateway in this additional location. + DisableGateway *bool `json:"disableGateway,omitempty"` + + // GatewayRegionalUrl: Gateway URL of the API Management service in the Region. + GatewayRegionalUrl *string `json:"gatewayRegionalUrl,omitempty"` + + // Location: The location name of the additional region among Azure Data center regions. + Location *string `json:"location,omitempty"` + + // NatGatewayState: Property can be used to enable NAT Gateway for this API Management service. + NatGatewayState *AdditionalLocation_NatGatewayState_STATUS `json:"natGatewayState,omitempty"` + + // OutboundPublicIPAddresses: Outbound public IPV4 address prefixes associated with NAT Gateway deployed service. Available + // only for Premium SKU on stv2 platform. + OutboundPublicIPAddresses []string `json:"outboundPublicIPAddresses,omitempty"` + + // PlatformVersion: Compute Platform Version running the service. + PlatformVersion *AdditionalLocation_PlatformVersion_STATUS `json:"platformVersion,omitempty"` + + // PrivateIPAddresses: Private Static Load Balanced IP addresses of the API Management service which is deployed in an + // Internal Virtual Network in a particular additional location. Available only for Basic, Standard, Premium and Isolated + // SKU. + PrivateIPAddresses []string `json:"privateIPAddresses,omitempty"` + + // PublicIPAddresses: Public Static Load Balanced IP addresses of the API Management service in the additional location. + // Available only for Basic, Standard, Premium and Isolated SKU. + PublicIPAddresses []string `json:"publicIPAddresses,omitempty"` + + // PublicIpAddressId: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in + // the location. Supported only for Premium SKU being deployed in Virtual Network. + PublicIpAddressId *string `json:"publicIpAddressId,omitempty"` + + // Sku: SKU properties of the API Management service. + Sku *ApiManagementServiceSkuProperties_STATUS_ARM `json:"sku,omitempty"` + + // VirtualNetworkConfiguration: Virtual network configuration for the location. + VirtualNetworkConfiguration *VirtualNetworkConfiguration_STATUS_ARM `json:"virtualNetworkConfiguration,omitempty"` + + // Zones: A list of availability zones denoting where the resource needs to come from. + Zones []string `json:"zones,omitempty"` +} + +type ApiManagementServiceIdentity_Type_STATUS string + +const ( + ApiManagementServiceIdentity_Type_STATUS_None = ApiManagementServiceIdentity_Type_STATUS("None") + ApiManagementServiceIdentity_Type_STATUS_SystemAssigned = ApiManagementServiceIdentity_Type_STATUS("SystemAssigned") + ApiManagementServiceIdentity_Type_STATUS_SystemAssignedUserAssigned = ApiManagementServiceIdentity_Type_STATUS("SystemAssigned, UserAssigned") + ApiManagementServiceIdentity_Type_STATUS_UserAssigned = ApiManagementServiceIdentity_Type_STATUS("UserAssigned") +) + +type ApiManagementServiceSkuProperties_Name_STATUS string + +const ( + ApiManagementServiceSkuProperties_Name_STATUS_Basic = ApiManagementServiceSkuProperties_Name_STATUS("Basic") + ApiManagementServiceSkuProperties_Name_STATUS_Consumption = ApiManagementServiceSkuProperties_Name_STATUS("Consumption") + ApiManagementServiceSkuProperties_Name_STATUS_Developer = ApiManagementServiceSkuProperties_Name_STATUS("Developer") + ApiManagementServiceSkuProperties_Name_STATUS_Isolated = ApiManagementServiceSkuProperties_Name_STATUS("Isolated") + ApiManagementServiceSkuProperties_Name_STATUS_Premium = ApiManagementServiceSkuProperties_Name_STATUS("Premium") + ApiManagementServiceSkuProperties_Name_STATUS_Standard = ApiManagementServiceSkuProperties_Name_STATUS("Standard") +) + +// Control Plane Apis version constraint for the API Management service. +type ApiVersionConstraint_STATUS_ARM struct { + // MinApiVersion: Limit control plane API calls to API Management service with version equal to or newer than this value. + MinApiVersion *string `json:"minApiVersion,omitempty"` +} + +// Certificate configuration which consist of non-trusted intermediates and root certificates. +type CertificateConfiguration_STATUS_ARM struct { + // Certificate: Certificate information. + Certificate *CertificateInformation_STATUS_ARM `json:"certificate,omitempty"` + + // EncodedCertificate: Base64 Encoded certificate. + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + + // StoreName: The System.Security.Cryptography.x509certificates.StoreName certificate store location. Only Root and + // CertificateAuthority are valid locations. + StoreName *CertificateConfiguration_StoreName_STATUS `json:"storeName,omitempty"` +} + +// Custom hostname configuration. +type HostnameConfiguration_STATUS_ARM struct { + // Certificate: Certificate information. + Certificate *CertificateInformation_STATUS_ARM `json:"certificate,omitempty"` + + // CertificateSource: Certificate Source. + CertificateSource *HostnameConfiguration_CertificateSource_STATUS `json:"certificateSource,omitempty"` + + // CertificateStatus: Certificate Status. + CertificateStatus *HostnameConfiguration_CertificateStatus_STATUS `json:"certificateStatus,omitempty"` + + // DefaultSslBinding: Specify true to setup the certificate associated with this Hostname as the Default SSL Certificate. + // If a client does not send the SNI header, then this will be the certificate that will be challenged. The property is + // useful if a service has multiple custom hostname enabled and it needs to decide on the default ssl certificate. The + // setting only applied to gateway Hostname Type. + DefaultSslBinding *bool `json:"defaultSslBinding,omitempty"` + + // EncodedCertificate: Base64 Encoded certificate. + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + + // HostName: Hostname to configure on the Api Management service. + HostName *string `json:"hostName,omitempty"` + + // IdentityClientId: System or User Assigned Managed identity clientId as generated by Azure AD, which has GET access to + // the keyVault containing the SSL certificate. + IdentityClientId *string `json:"identityClientId,omitempty"` + + // KeyVaultId: Url to the KeyVault Secret containing the Ssl Certificate. If absolute Url containing version is provided, + // auto-update of ssl certificate will not work. This requires Api Management service to be configured with aka.ms/apimmsi. + // The secret should be of type *application/x-pkcs12* + KeyVaultId *string `json:"keyVaultId,omitempty"` + + // NegotiateClientCertificate: Specify true to always negotiate client certificate on the hostname. Default Value is false. + NegotiateClientCertificate *bool `json:"negotiateClientCertificate,omitempty"` + + // Type: Hostname type. + Type *HostnameConfiguration_Type_STATUS `json:"type,omitempty"` +} + +// Remote Private Endpoint Connection resource. +type RemotePrivateEndpointConnectionWrapper_STATUS_ARM struct { + // Id: Private Endpoint connection resource id + Id *string `json:"id,omitempty"` + + // Name: Private Endpoint Connection Name + Name *string `json:"name,omitempty"` + + // Properties: Resource properties. + Properties *PrivateEndpointConnectionWrapperProperties_STATUS_ARM `json:"properties,omitempty"` + + // Type: Private Endpoint Connection Resource Type + Type *string `json:"type,omitempty"` +} + +type SystemData_CreatedByType_STATUS string + +const ( + SystemData_CreatedByType_STATUS_Application = SystemData_CreatedByType_STATUS("Application") + SystemData_CreatedByType_STATUS_Key = SystemData_CreatedByType_STATUS("Key") + SystemData_CreatedByType_STATUS_ManagedIdentity = SystemData_CreatedByType_STATUS("ManagedIdentity") + SystemData_CreatedByType_STATUS_User = SystemData_CreatedByType_STATUS("User") +) + +type SystemData_LastModifiedByType_STATUS string + +const ( + SystemData_LastModifiedByType_STATUS_Application = SystemData_LastModifiedByType_STATUS("Application") + SystemData_LastModifiedByType_STATUS_Key = SystemData_LastModifiedByType_STATUS("Key") + SystemData_LastModifiedByType_STATUS_ManagedIdentity = SystemData_LastModifiedByType_STATUS("ManagedIdentity") + SystemData_LastModifiedByType_STATUS_User = SystemData_LastModifiedByType_STATUS("User") +) + +type UserIdentityProperties_STATUS_ARM struct { + // ClientId: The client id of user assigned identity. + ClientId *string `json:"clientId,omitempty"` + + // PrincipalId: The principal id of user assigned identity. + PrincipalId *string `json:"principalId,omitempty"` +} + +// Configuration of a virtual network to which API Management service is deployed. +type VirtualNetworkConfiguration_STATUS_ARM struct { + // SubnetResourceId: The full resource ID of a subnet in a virtual network to deploy the API Management service in. + SubnetResourceId *string `json:"subnetResourceId,omitempty"` + + // Subnetname: The name of the subnet. + Subnetname *string `json:"subnetname,omitempty"` + + // Vnetid: The virtual network ID. This is typically a GUID. Expect a null GUID by default. + Vnetid *string `json:"vnetid,omitempty"` +} + +// SSL certificate information. +type CertificateInformation_STATUS_ARM struct { + // Expiry: Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as + // specified by the ISO 8601 standard. + Expiry *string `json:"expiry,omitempty"` + + // Subject: Subject of the certificate. + Subject *string `json:"subject,omitempty"` + + // Thumbprint: Thumbprint of the certificate. + Thumbprint *string `json:"thumbprint,omitempty"` +} + +// Properties of the PrivateEndpointConnectProperties. +type PrivateEndpointConnectionWrapperProperties_STATUS_ARM struct { + // GroupIds: All the Group ids. + GroupIds []string `json:"groupIds,omitempty"` + + // PrivateEndpoint: The resource of private end point. + PrivateEndpoint *ArmIdWrapper_STATUS_ARM `json:"privateEndpoint,omitempty"` + + // PrivateLinkServiceConnectionState: A collection of information about the state of the connection between service + // consumer and provider. + PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState_STATUS_ARM `json:"privateLinkServiceConnectionState,omitempty"` + + // ProvisioningState: The provisioning state of the private endpoint connection resource. + ProvisioningState *string `json:"provisioningState,omitempty"` +} + +// A wrapper for an ARM resource id +type ArmIdWrapper_STATUS_ARM struct { + Id *string `json:"id,omitempty"` +} + +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionState_STATUS_ARM struct { + // ActionsRequired: A message indicating if changes on the service provider require any updates on the consumer. + ActionsRequired *string `json:"actionsRequired,omitempty"` + + // Description: The reason for approval/rejection of the connection. + Description *string `json:"description,omitempty"` + + // Status: Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + Status *PrivateEndpointServiceConnectionStatus_STATUS `json:"status,omitempty"` +} diff --git a/v2/api/apimanagement/v1api20220801/service_status_arm_types_gen_test.go b/v2/api/apimanagement/v1api20220801/service_status_arm_types_gen_test.go new file mode 100644 index 00000000000..777f60ef750 --- /dev/null +++ b/v2/api/apimanagement/v1api20220801/service_status_arm_types_gen_test.go @@ -0,0 +1,1215 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220801 + +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_Service_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 Service_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForService_STATUS_ARM, Service_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForService_STATUS_ARM runs a test to see if a specific instance of Service_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForService_STATUS_ARM(subject Service_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Service_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 Service_STATUS_ARM instances for property testing - lazily instantiated by Service_STATUS_ARMGenerator() +var service_STATUS_ARMGenerator gopter.Gen + +// Service_STATUS_ARMGenerator returns a generator of Service_STATUS_ARM instances for property testing. +// We first initialize service_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 Service_STATUS_ARMGenerator() gopter.Gen { + if service_STATUS_ARMGenerator != nil { + return service_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_STATUS_ARM(generators) + service_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(Service_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForService_STATUS_ARM(generators) + service_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(Service_STATUS_ARM{}), generators) + + return service_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForService_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForService_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()) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForService_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForService_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Identity"] = gen.PtrOf(ApiManagementServiceIdentity_STATUS_ARMGenerator()) + gens["Properties"] = gen.PtrOf(ApiManagementServiceProperties_STATUS_ARMGenerator()) + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuProperties_STATUS_ARMGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUS_ARMGenerator()) +} + +func Test_ApiManagementServiceIdentity_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 ApiManagementServiceIdentity_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceIdentity_STATUS_ARM, ApiManagementServiceIdentity_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceIdentity_STATUS_ARM runs a test to see if a specific instance of ApiManagementServiceIdentity_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceIdentity_STATUS_ARM(subject ApiManagementServiceIdentity_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceIdentity_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 ApiManagementServiceIdentity_STATUS_ARM instances for property testing - lazily instantiated by +// ApiManagementServiceIdentity_STATUS_ARMGenerator() +var apiManagementServiceIdentity_STATUS_ARMGenerator gopter.Gen + +// ApiManagementServiceIdentity_STATUS_ARMGenerator returns a generator of ApiManagementServiceIdentity_STATUS_ARM instances for property testing. +// We first initialize apiManagementServiceIdentity_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 ApiManagementServiceIdentity_STATUS_ARMGenerator() gopter.Gen { + if apiManagementServiceIdentity_STATUS_ARMGenerator != nil { + return apiManagementServiceIdentity_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS_ARM(generators) + apiManagementServiceIdentity_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_STATUS_ARM(generators) + apiManagementServiceIdentity_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity_STATUS_ARM{}), generators) + + return apiManagementServiceIdentity_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS_ARM(gens map[string]gopter.Gen) { + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf( + ApiManagementServiceIdentity_Type_STATUS_None, + ApiManagementServiceIdentity_Type_STATUS_SystemAssigned, + ApiManagementServiceIdentity_Type_STATUS_SystemAssignedUserAssigned, + ApiManagementServiceIdentity_Type_STATUS_UserAssigned)) +} + +// AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_STATUS_ARM(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.MapOf(gen.AlphaString(), UserIdentityProperties_STATUS_ARMGenerator()) +} + +func Test_ApiManagementServiceProperties_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 ApiManagementServiceProperties_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceProperties_STATUS_ARM, ApiManagementServiceProperties_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceProperties_STATUS_ARM runs a test to see if a specific instance of ApiManagementServiceProperties_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceProperties_STATUS_ARM(subject ApiManagementServiceProperties_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceProperties_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 ApiManagementServiceProperties_STATUS_ARM instances for property testing - lazily instantiated by +// ApiManagementServiceProperties_STATUS_ARMGenerator() +var apiManagementServiceProperties_STATUS_ARMGenerator gopter.Gen + +// ApiManagementServiceProperties_STATUS_ARMGenerator returns a generator of ApiManagementServiceProperties_STATUS_ARM instances for property testing. +// We first initialize apiManagementServiceProperties_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 ApiManagementServiceProperties_STATUS_ARMGenerator() gopter.Gen { + if apiManagementServiceProperties_STATUS_ARMGenerator != nil { + return apiManagementServiceProperties_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceProperties_STATUS_ARM(generators) + apiManagementServiceProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceProperties_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceProperties_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForApiManagementServiceProperties_STATUS_ARM(generators) + apiManagementServiceProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceProperties_STATUS_ARM{}), generators) + + return apiManagementServiceProperties_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceProperties_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["CreatedAtUtc"] = gen.PtrOf(gen.AlphaString()) + gens["CustomProperties"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["DeveloperPortalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["EnableClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["GatewayRegionalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["GatewayUrl"] = gen.PtrOf(gen.AlphaString()) + gens["ManagementApiUrl"] = gen.PtrOf(gen.AlphaString()) + gens["NatGatewayState"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_NatGatewayState_STATUS_Disabled, ApiManagementServiceProperties_NatGatewayState_STATUS_Enabled)) + gens["NotificationSenderEmail"] = gen.PtrOf(gen.AlphaString()) + gens["OutboundPublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PlatformVersion"] = gen.PtrOf(gen.OneConstOf( + ApiManagementServiceProperties_PlatformVersion_STATUS_Mtv1, + ApiManagementServiceProperties_PlatformVersion_STATUS_Stv1, + ApiManagementServiceProperties_PlatformVersion_STATUS_Stv2, + ApiManagementServiceProperties_PlatformVersion_STATUS_Undetermined)) + gens["PortalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["PrivateIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["PublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PublicIpAddressId"] = gen.PtrOf(gen.AlphaString()) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_PublicNetworkAccess_STATUS_Disabled, ApiManagementServiceProperties_PublicNetworkAccess_STATUS_Enabled)) + gens["PublisherEmail"] = gen.PtrOf(gen.AlphaString()) + gens["PublisherName"] = gen.PtrOf(gen.AlphaString()) + gens["Restore"] = gen.PtrOf(gen.Bool()) + gens["ScmUrl"] = gen.PtrOf(gen.AlphaString()) + gens["TargetProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["VirtualNetworkType"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_VirtualNetworkType_STATUS_External, ApiManagementServiceProperties_VirtualNetworkType_STATUS_Internal, ApiManagementServiceProperties_VirtualNetworkType_STATUS_None)) +} + +// AddRelatedPropertyGeneratorsForApiManagementServiceProperties_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForApiManagementServiceProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AdditionalLocations"] = gen.SliceOf(AdditionalLocation_STATUS_ARMGenerator()) + gens["ApiVersionConstraint"] = gen.PtrOf(ApiVersionConstraint_STATUS_ARMGenerator()) + gens["Certificates"] = gen.SliceOf(CertificateConfiguration_STATUS_ARMGenerator()) + gens["HostnameConfigurations"] = gen.SliceOf(HostnameConfiguration_STATUS_ARMGenerator()) + gens["PrivateEndpointConnections"] = gen.SliceOf(RemotePrivateEndpointConnectionWrapper_STATUS_ARMGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfiguration_STATUS_ARMGenerator()) +} + +func Test_ApiManagementServiceSkuProperties_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 ApiManagementServiceSkuProperties_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceSkuProperties_STATUS_ARM, ApiManagementServiceSkuProperties_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceSkuProperties_STATUS_ARM runs a test to see if a specific instance of ApiManagementServiceSkuProperties_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceSkuProperties_STATUS_ARM(subject ApiManagementServiceSkuProperties_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceSkuProperties_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 ApiManagementServiceSkuProperties_STATUS_ARM instances for property testing - lazily instantiated by +// ApiManagementServiceSkuProperties_STATUS_ARMGenerator() +var apiManagementServiceSkuProperties_STATUS_ARMGenerator gopter.Gen + +// ApiManagementServiceSkuProperties_STATUS_ARMGenerator returns a generator of ApiManagementServiceSkuProperties_STATUS_ARM instances for property testing. +func ApiManagementServiceSkuProperties_STATUS_ARMGenerator() gopter.Gen { + if apiManagementServiceSkuProperties_STATUS_ARMGenerator != nil { + return apiManagementServiceSkuProperties_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_STATUS_ARM(generators) + apiManagementServiceSkuProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceSkuProperties_STATUS_ARM{}), generators) + + return apiManagementServiceSkuProperties_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Capacity"] = gen.PtrOf(gen.Int()) + gens["Name"] = gen.PtrOf(gen.OneConstOf( + ApiManagementServiceSkuProperties_Name_STATUS_Basic, + ApiManagementServiceSkuProperties_Name_STATUS_Consumption, + ApiManagementServiceSkuProperties_Name_STATUS_Developer, + ApiManagementServiceSkuProperties_Name_STATUS_Isolated, + ApiManagementServiceSkuProperties_Name_STATUS_Premium, + ApiManagementServiceSkuProperties_Name_STATUS_Standard)) +} + +func Test_SystemData_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 SystemData_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSystemData_STATUS_ARM, SystemData_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSystemData_STATUS_ARM runs a test to see if a specific instance of SystemData_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForSystemData_STATUS_ARM(subject SystemData_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SystemData_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 SystemData_STATUS_ARM instances for property testing - lazily instantiated by +// SystemData_STATUS_ARMGenerator() +var systemData_STATUS_ARMGenerator gopter.Gen + +// SystemData_STATUS_ARMGenerator returns a generator of SystemData_STATUS_ARM instances for property testing. +func SystemData_STATUS_ARMGenerator() gopter.Gen { + if systemData_STATUS_ARMGenerator != nil { + return systemData_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSystemData_STATUS_ARM(generators) + systemData_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(SystemData_STATUS_ARM{}), generators) + + return systemData_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForSystemData_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSystemData_STATUS_ARM(gens map[string]gopter.Gen) { + gens["CreatedAt"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedByType"] = gen.PtrOf(gen.OneConstOf( + SystemData_CreatedByType_STATUS_Application, + SystemData_CreatedByType_STATUS_Key, + SystemData_CreatedByType_STATUS_ManagedIdentity, + SystemData_CreatedByType_STATUS_User)) + gens["LastModifiedAt"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedBy"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedByType"] = gen.PtrOf(gen.OneConstOf( + SystemData_LastModifiedByType_STATUS_Application, + SystemData_LastModifiedByType_STATUS_Key, + SystemData_LastModifiedByType_STATUS_ManagedIdentity, + SystemData_LastModifiedByType_STATUS_User)) +} + +func Test_AdditionalLocation_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 AdditionalLocation_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAdditionalLocation_STATUS_ARM, AdditionalLocation_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAdditionalLocation_STATUS_ARM runs a test to see if a specific instance of AdditionalLocation_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForAdditionalLocation_STATUS_ARM(subject AdditionalLocation_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AdditionalLocation_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 AdditionalLocation_STATUS_ARM instances for property testing - lazily instantiated by +// AdditionalLocation_STATUS_ARMGenerator() +var additionalLocation_STATUS_ARMGenerator gopter.Gen + +// AdditionalLocation_STATUS_ARMGenerator returns a generator of AdditionalLocation_STATUS_ARM instances for property testing. +// We first initialize additionalLocation_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 AdditionalLocation_STATUS_ARMGenerator() gopter.Gen { + if additionalLocation_STATUS_ARMGenerator != nil { + return additionalLocation_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS_ARM(generators) + additionalLocation_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForAdditionalLocation_STATUS_ARM(generators) + additionalLocation_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation_STATUS_ARM{}), generators) + + return additionalLocation_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS_ARM(gens map[string]gopter.Gen) { + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["GatewayRegionalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["NatGatewayState"] = gen.PtrOf(gen.OneConstOf(AdditionalLocation_NatGatewayState_STATUS_Disabled, AdditionalLocation_NatGatewayState_STATUS_Enabled)) + gens["OutboundPublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PlatformVersion"] = gen.PtrOf(gen.OneConstOf( + AdditionalLocation_PlatformVersion_STATUS_Mtv1, + AdditionalLocation_PlatformVersion_STATUS_Stv1, + AdditionalLocation_PlatformVersion_STATUS_Stv2, + AdditionalLocation_PlatformVersion_STATUS_Undetermined)) + gens["PrivateIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PublicIpAddressId"] = gen.PtrOf(gen.AlphaString()) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAdditionalLocation_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAdditionalLocation_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuProperties_STATUS_ARMGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfiguration_STATUS_ARMGenerator()) +} + +func Test_ApiVersionConstraint_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 ApiVersionConstraint_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiVersionConstraint_STATUS_ARM, ApiVersionConstraint_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiVersionConstraint_STATUS_ARM runs a test to see if a specific instance of ApiVersionConstraint_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForApiVersionConstraint_STATUS_ARM(subject ApiVersionConstraint_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiVersionConstraint_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 ApiVersionConstraint_STATUS_ARM instances for property testing - lazily instantiated by +// ApiVersionConstraint_STATUS_ARMGenerator() +var apiVersionConstraint_STATUS_ARMGenerator gopter.Gen + +// ApiVersionConstraint_STATUS_ARMGenerator returns a generator of ApiVersionConstraint_STATUS_ARM instances for property testing. +func ApiVersionConstraint_STATUS_ARMGenerator() gopter.Gen { + if apiVersionConstraint_STATUS_ARMGenerator != nil { + return apiVersionConstraint_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiVersionConstraint_STATUS_ARM(generators) + apiVersionConstraint_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ApiVersionConstraint_STATUS_ARM{}), generators) + + return apiVersionConstraint_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForApiVersionConstraint_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiVersionConstraint_STATUS_ARM(gens map[string]gopter.Gen) { + gens["MinApiVersion"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CertificateConfiguration_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 CertificateConfiguration_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateConfiguration_STATUS_ARM, CertificateConfiguration_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateConfiguration_STATUS_ARM runs a test to see if a specific instance of CertificateConfiguration_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateConfiguration_STATUS_ARM(subject CertificateConfiguration_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateConfiguration_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 CertificateConfiguration_STATUS_ARM instances for property testing - lazily instantiated by +// CertificateConfiguration_STATUS_ARMGenerator() +var certificateConfiguration_STATUS_ARMGenerator gopter.Gen + +// CertificateConfiguration_STATUS_ARMGenerator returns a generator of CertificateConfiguration_STATUS_ARM instances for property testing. +// We first initialize certificateConfiguration_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 CertificateConfiguration_STATUS_ARMGenerator() gopter.Gen { + if certificateConfiguration_STATUS_ARMGenerator != nil { + return certificateConfiguration_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS_ARM(generators) + certificateConfiguration_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForCertificateConfiguration_STATUS_ARM(generators) + certificateConfiguration_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration_STATUS_ARM{}), generators) + + return certificateConfiguration_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS_ARM(gens map[string]gopter.Gen) { + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["StoreName"] = gen.PtrOf(gen.OneConstOf(CertificateConfiguration_StoreName_STATUS_CertificateAuthority, CertificateConfiguration_StoreName_STATUS_Root)) +} + +// AddRelatedPropertyGeneratorsForCertificateConfiguration_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForCertificateConfiguration_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformation_STATUS_ARMGenerator()) +} + +func Test_HostnameConfiguration_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 HostnameConfiguration_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForHostnameConfiguration_STATUS_ARM, HostnameConfiguration_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForHostnameConfiguration_STATUS_ARM runs a test to see if a specific instance of HostnameConfiguration_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForHostnameConfiguration_STATUS_ARM(subject HostnameConfiguration_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual HostnameConfiguration_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 HostnameConfiguration_STATUS_ARM instances for property testing - lazily instantiated by +// HostnameConfiguration_STATUS_ARMGenerator() +var hostnameConfiguration_STATUS_ARMGenerator gopter.Gen + +// HostnameConfiguration_STATUS_ARMGenerator returns a generator of HostnameConfiguration_STATUS_ARM instances for property testing. +// We first initialize hostnameConfiguration_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 HostnameConfiguration_STATUS_ARMGenerator() gopter.Gen { + if hostnameConfiguration_STATUS_ARMGenerator != nil { + return hostnameConfiguration_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS_ARM(generators) + hostnameConfiguration_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForHostnameConfiguration_STATUS_ARM(generators) + hostnameConfiguration_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration_STATUS_ARM{}), generators) + + return hostnameConfiguration_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS_ARM(gens map[string]gopter.Gen) { + gens["CertificateSource"] = gen.PtrOf(gen.OneConstOf( + HostnameConfiguration_CertificateSource_STATUS_BuiltIn, + HostnameConfiguration_CertificateSource_STATUS_Custom, + HostnameConfiguration_CertificateSource_STATUS_KeyVault, + HostnameConfiguration_CertificateSource_STATUS_Managed)) + gens["CertificateStatus"] = gen.PtrOf(gen.OneConstOf(HostnameConfiguration_CertificateStatus_STATUS_Completed, HostnameConfiguration_CertificateStatus_STATUS_Failed, HostnameConfiguration_CertificateStatus_STATUS_InProgress)) + gens["DefaultSslBinding"] = gen.PtrOf(gen.Bool()) + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["HostName"] = gen.PtrOf(gen.AlphaString()) + gens["IdentityClientId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultId"] = gen.PtrOf(gen.AlphaString()) + gens["NegotiateClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["Type"] = gen.PtrOf(gen.OneConstOf( + HostnameConfiguration_Type_STATUS_DeveloperPortal, + HostnameConfiguration_Type_STATUS_Management, + HostnameConfiguration_Type_STATUS_Portal, + HostnameConfiguration_Type_STATUS_Proxy, + HostnameConfiguration_Type_STATUS_Scm)) +} + +// AddRelatedPropertyGeneratorsForHostnameConfiguration_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForHostnameConfiguration_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformation_STATUS_ARMGenerator()) +} + +func Test_RemotePrivateEndpointConnectionWrapper_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 RemotePrivateEndpointConnectionWrapper_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRemotePrivateEndpointConnectionWrapper_STATUS_ARM, RemotePrivateEndpointConnectionWrapper_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRemotePrivateEndpointConnectionWrapper_STATUS_ARM runs a test to see if a specific instance of RemotePrivateEndpointConnectionWrapper_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForRemotePrivateEndpointConnectionWrapper_STATUS_ARM(subject RemotePrivateEndpointConnectionWrapper_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RemotePrivateEndpointConnectionWrapper_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 RemotePrivateEndpointConnectionWrapper_STATUS_ARM instances for property testing - lazily instantiated +// by RemotePrivateEndpointConnectionWrapper_STATUS_ARMGenerator() +var remotePrivateEndpointConnectionWrapper_STATUS_ARMGenerator gopter.Gen + +// RemotePrivateEndpointConnectionWrapper_STATUS_ARMGenerator returns a generator of RemotePrivateEndpointConnectionWrapper_STATUS_ARM instances for property testing. +// We first initialize remotePrivateEndpointConnectionWrapper_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 RemotePrivateEndpointConnectionWrapper_STATUS_ARMGenerator() gopter.Gen { + if remotePrivateEndpointConnectionWrapper_STATUS_ARMGenerator != nil { + return remotePrivateEndpointConnectionWrapper_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS_ARM(generators) + remotePrivateEndpointConnectionWrapper_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(RemotePrivateEndpointConnectionWrapper_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS_ARM(generators) + remotePrivateEndpointConnectionWrapper_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(RemotePrivateEndpointConnectionWrapper_STATUS_ARM{}), generators) + + return remotePrivateEndpointConnectionWrapper_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Properties"] = gen.PtrOf(PrivateEndpointConnectionWrapperProperties_STATUS_ARMGenerator()) +} + +func Test_UserIdentityProperties_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 UserIdentityProperties_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserIdentityProperties_STATUS_ARM, UserIdentityProperties_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserIdentityProperties_STATUS_ARM runs a test to see if a specific instance of UserIdentityProperties_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForUserIdentityProperties_STATUS_ARM(subject UserIdentityProperties_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserIdentityProperties_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 UserIdentityProperties_STATUS_ARM instances for property testing - lazily instantiated by +// UserIdentityProperties_STATUS_ARMGenerator() +var userIdentityProperties_STATUS_ARMGenerator gopter.Gen + +// UserIdentityProperties_STATUS_ARMGenerator returns a generator of UserIdentityProperties_STATUS_ARM instances for property testing. +func UserIdentityProperties_STATUS_ARMGenerator() gopter.Gen { + if userIdentityProperties_STATUS_ARMGenerator != nil { + return userIdentityProperties_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUserIdentityProperties_STATUS_ARM(generators) + userIdentityProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(UserIdentityProperties_STATUS_ARM{}), generators) + + return userIdentityProperties_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForUserIdentityProperties_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUserIdentityProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_VirtualNetworkConfiguration_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 VirtualNetworkConfiguration_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForVirtualNetworkConfiguration_STATUS_ARM, VirtualNetworkConfiguration_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForVirtualNetworkConfiguration_STATUS_ARM runs a test to see if a specific instance of VirtualNetworkConfiguration_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForVirtualNetworkConfiguration_STATUS_ARM(subject VirtualNetworkConfiguration_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual VirtualNetworkConfiguration_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 VirtualNetworkConfiguration_STATUS_ARM instances for property testing - lazily instantiated by +// VirtualNetworkConfiguration_STATUS_ARMGenerator() +var virtualNetworkConfiguration_STATUS_ARMGenerator gopter.Gen + +// VirtualNetworkConfiguration_STATUS_ARMGenerator returns a generator of VirtualNetworkConfiguration_STATUS_ARM instances for property testing. +func VirtualNetworkConfiguration_STATUS_ARMGenerator() gopter.Gen { + if virtualNetworkConfiguration_STATUS_ARMGenerator != nil { + return virtualNetworkConfiguration_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_STATUS_ARM(generators) + virtualNetworkConfiguration_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(VirtualNetworkConfiguration_STATUS_ARM{}), generators) + + return virtualNetworkConfiguration_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_STATUS_ARM(gens map[string]gopter.Gen) { + gens["SubnetResourceId"] = gen.PtrOf(gen.AlphaString()) + gens["Subnetname"] = gen.PtrOf(gen.AlphaString()) + gens["Vnetid"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CertificateInformation_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 CertificateInformation_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateInformation_STATUS_ARM, CertificateInformation_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateInformation_STATUS_ARM runs a test to see if a specific instance of CertificateInformation_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateInformation_STATUS_ARM(subject CertificateInformation_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateInformation_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 CertificateInformation_STATUS_ARM instances for property testing - lazily instantiated by +// CertificateInformation_STATUS_ARMGenerator() +var certificateInformation_STATUS_ARMGenerator gopter.Gen + +// CertificateInformation_STATUS_ARMGenerator returns a generator of CertificateInformation_STATUS_ARM instances for property testing. +func CertificateInformation_STATUS_ARMGenerator() gopter.Gen { + if certificateInformation_STATUS_ARMGenerator != nil { + return certificateInformation_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateInformation_STATUS_ARM(generators) + certificateInformation_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(CertificateInformation_STATUS_ARM{}), generators) + + return certificateInformation_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateInformation_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateInformation_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Expiry"] = gen.PtrOf(gen.AlphaString()) + gens["Subject"] = gen.PtrOf(gen.AlphaString()) + gens["Thumbprint"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrivateEndpointConnectionWrapperProperties_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 PrivateEndpointConnectionWrapperProperties_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateEndpointConnectionWrapperProperties_STATUS_ARM, PrivateEndpointConnectionWrapperProperties_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateEndpointConnectionWrapperProperties_STATUS_ARM runs a test to see if a specific instance of PrivateEndpointConnectionWrapperProperties_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateEndpointConnectionWrapperProperties_STATUS_ARM(subject PrivateEndpointConnectionWrapperProperties_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateEndpointConnectionWrapperProperties_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 PrivateEndpointConnectionWrapperProperties_STATUS_ARM instances for property testing - lazily +// instantiated by PrivateEndpointConnectionWrapperProperties_STATUS_ARMGenerator() +var privateEndpointConnectionWrapperProperties_STATUS_ARMGenerator gopter.Gen + +// PrivateEndpointConnectionWrapperProperties_STATUS_ARMGenerator returns a generator of PrivateEndpointConnectionWrapperProperties_STATUS_ARM instances for property testing. +// We first initialize privateEndpointConnectionWrapperProperties_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 PrivateEndpointConnectionWrapperProperties_STATUS_ARMGenerator() gopter.Gen { + if privateEndpointConnectionWrapperProperties_STATUS_ARMGenerator != nil { + return privateEndpointConnectionWrapperProperties_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateEndpointConnectionWrapperProperties_STATUS_ARM(generators) + privateEndpointConnectionWrapperProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrivateEndpointConnectionWrapperProperties_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateEndpointConnectionWrapperProperties_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForPrivateEndpointConnectionWrapperProperties_STATUS_ARM(generators) + privateEndpointConnectionWrapperProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrivateEndpointConnectionWrapperProperties_STATUS_ARM{}), generators) + + return privateEndpointConnectionWrapperProperties_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateEndpointConnectionWrapperProperties_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateEndpointConnectionWrapperProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["GroupIds"] = gen.SliceOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForPrivateEndpointConnectionWrapperProperties_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrivateEndpointConnectionWrapperProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["PrivateEndpoint"] = gen.PtrOf(ArmIdWrapper_STATUS_ARMGenerator()) + gens["PrivateLinkServiceConnectionState"] = gen.PtrOf(PrivateLinkServiceConnectionState_STATUS_ARMGenerator()) +} + +func Test_ArmIdWrapper_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 ArmIdWrapper_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForArmIdWrapper_STATUS_ARM, ArmIdWrapper_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForArmIdWrapper_STATUS_ARM runs a test to see if a specific instance of ArmIdWrapper_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForArmIdWrapper_STATUS_ARM(subject ArmIdWrapper_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ArmIdWrapper_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 ArmIdWrapper_STATUS_ARM instances for property testing - lazily instantiated by +// ArmIdWrapper_STATUS_ARMGenerator() +var armIdWrapper_STATUS_ARMGenerator gopter.Gen + +// ArmIdWrapper_STATUS_ARMGenerator returns a generator of ArmIdWrapper_STATUS_ARM instances for property testing. +func ArmIdWrapper_STATUS_ARMGenerator() gopter.Gen { + if armIdWrapper_STATUS_ARMGenerator != nil { + return armIdWrapper_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForArmIdWrapper_STATUS_ARM(generators) + armIdWrapper_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(ArmIdWrapper_STATUS_ARM{}), generators) + + return armIdWrapper_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForArmIdWrapper_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForArmIdWrapper_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrivateLinkServiceConnectionState_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 PrivateLinkServiceConnectionState_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateLinkServiceConnectionState_STATUS_ARM, PrivateLinkServiceConnectionState_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateLinkServiceConnectionState_STATUS_ARM runs a test to see if a specific instance of PrivateLinkServiceConnectionState_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateLinkServiceConnectionState_STATUS_ARM(subject PrivateLinkServiceConnectionState_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateLinkServiceConnectionState_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 PrivateLinkServiceConnectionState_STATUS_ARM instances for property testing - lazily instantiated by +// PrivateLinkServiceConnectionState_STATUS_ARMGenerator() +var privateLinkServiceConnectionState_STATUS_ARMGenerator gopter.Gen + +// PrivateLinkServiceConnectionState_STATUS_ARMGenerator returns a generator of PrivateLinkServiceConnectionState_STATUS_ARM instances for property testing. +func PrivateLinkServiceConnectionState_STATUS_ARMGenerator() gopter.Gen { + if privateLinkServiceConnectionState_STATUS_ARMGenerator != nil { + return privateLinkServiceConnectionState_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateLinkServiceConnectionState_STATUS_ARM(generators) + privateLinkServiceConnectionState_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrivateLinkServiceConnectionState_STATUS_ARM{}), generators) + + return privateLinkServiceConnectionState_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateLinkServiceConnectionState_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateLinkServiceConnectionState_STATUS_ARM(gens map[string]gopter.Gen) { + gens["ActionsRequired"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["Status"] = gen.PtrOf(gen.OneConstOf(PrivateEndpointServiceConnectionStatus_STATUS_Approved, PrivateEndpointServiceConnectionStatus_STATUS_Pending, PrivateEndpointServiceConnectionStatus_STATUS_Rejected)) +} diff --git a/v2/api/apimanagement/v1api20220801/service_types_gen.go b/v2/api/apimanagement/v1api20220801/service_types_gen.go new file mode 100644 index 00000000000..405d734daf3 --- /dev/null +++ b/v2/api/apimanagement/v1api20220801/service_types_gen.go @@ -0,0 +1,6388 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220801 + +import ( + "fmt" + v20220801s "github.com/Azure/azure-service-operator/v2/api/apimanagement/v1api20220801storage" + "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: /apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/apimdeployment.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName} +type Service struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec Service_Spec `json:"spec,omitempty"` + Status Service_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &Service{} + +// GetConditions returns the conditions of the resource +func (service *Service) GetConditions() conditions.Conditions { + return service.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (service *Service) SetConditions(conditions conditions.Conditions) { + service.Status.Conditions = conditions +} + +var _ conversion.Convertible = &Service{} + +// ConvertFrom populates our Service from the provided hub Service +func (service *Service) ConvertFrom(hub conversion.Hub) error { + source, ok := hub.(*v20220801s.Service) + if !ok { + return fmt.Errorf("expected apimanagement/v1api20220801storage/Service but received %T instead", hub) + } + + return service.AssignProperties_From_Service(source) +} + +// ConvertTo populates the provided hub Service from our Service +func (service *Service) ConvertTo(hub conversion.Hub) error { + destination, ok := hub.(*v20220801s.Service) + if !ok { + return fmt.Errorf("expected apimanagement/v1api20220801storage/Service but received %T instead", hub) + } + + return service.AssignProperties_To_Service(destination) +} + +// +kubebuilder:webhook:path=/mutate-apimanagement-azure-com-v1api20220801-service,mutating=true,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=apimanagement.azure.com,resources=services,verbs=create;update,versions=v1api20220801,name=default.v1api20220801.services.apimanagement.azure.com,admissionReviewVersions=v1 + +var _ admission.Defaulter = &Service{} + +// Default applies defaults to the Service resource +func (service *Service) Default() { + service.defaultImpl() + var temp any = service + if runtimeDefaulter, ok := temp.(genruntime.Defaulter); ok { + runtimeDefaulter.CustomDefault() + } +} + +// defaultAzureName defaults the Azure name of the resource to the Kubernetes name +func (service *Service) defaultAzureName() { + if service.Spec.AzureName == "" { + service.Spec.AzureName = service.Name + } +} + +// defaultImpl applies the code generated defaults to the Service resource +func (service *Service) defaultImpl() { service.defaultAzureName() } + +var _ genruntime.ImportableResource = &Service{} + +// InitializeSpec initializes the spec for this resource from the given status +func (service *Service) InitializeSpec(status genruntime.ConvertibleStatus) error { + if s, ok := status.(*Service_STATUS); ok { + return service.Spec.Initialize_From_Service_STATUS(s) + } + + return fmt.Errorf("expected Status of type Service_STATUS but received %T instead", status) +} + +var _ genruntime.KubernetesResource = &Service{} + +// AzureName returns the Azure name of the resource +func (service *Service) AzureName() string { + return service.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2022-08-01" +func (service Service) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (service *Service) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (service *Service) GetSpec() genruntime.ConvertibleSpec { + return &service.Spec +} + +// GetStatus returns the status of this resource +func (service *Service) GetStatus() genruntime.ConvertibleStatus { + return &service.Status +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.ApiManagement/service" +func (service *Service) GetType() string { + return "Microsoft.ApiManagement/service" +} + +// NewEmptyStatus returns a new empty (blank) status +func (service *Service) NewEmptyStatus() genruntime.ConvertibleStatus { + return &Service_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (service *Service) Owner() *genruntime.ResourceReference { + group, kind := genruntime.LookupOwnerGroupKind(service.Spec) + return service.Spec.Owner.AsResourceReference(group, kind) +} + +// SetStatus sets the status of this resource +func (service *Service) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*Service_STATUS); ok { + service.Status = *st + return nil + } + + // Convert status to required version + var st Service_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + service.Status = st + return nil +} + +// +kubebuilder:webhook:path=/validate-apimanagement-azure-com-v1api20220801-service,mutating=false,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=apimanagement.azure.com,resources=services,verbs=create;update,versions=v1api20220801,name=validate.v1api20220801.services.apimanagement.azure.com,admissionReviewVersions=v1 + +var _ admission.Validator = &Service{} + +// ValidateCreate validates the creation of the resource +func (service *Service) ValidateCreate() (admission.Warnings, error) { + validations := service.createValidations() + var temp any = service + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.CreateValidations()...) + } + return genruntime.ValidateCreate(validations) +} + +// ValidateDelete validates the deletion of the resource +func (service *Service) ValidateDelete() (admission.Warnings, error) { + validations := service.deleteValidations() + var temp any = service + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.DeleteValidations()...) + } + return genruntime.ValidateDelete(validations) +} + +// ValidateUpdate validates an update of the resource +func (service *Service) ValidateUpdate(old runtime.Object) (admission.Warnings, error) { + validations := service.updateValidations() + var temp any = service + 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 (service *Service) createValidations() []func() (admission.Warnings, error) { + return []func() (admission.Warnings, error){service.validateResourceReferences, service.validateOwnerReference, service.validateOptionalConfigMapReferences} +} + +// deleteValidations validates the deletion of the resource +func (service *Service) deleteValidations() []func() (admission.Warnings, error) { + return nil +} + +// updateValidations validates the update of the resource +func (service *Service) updateValidations() []func(old runtime.Object) (admission.Warnings, error) { + return []func(old runtime.Object) (admission.Warnings, error){ + func(old runtime.Object) (admission.Warnings, error) { + return service.validateResourceReferences() + }, + service.validateWriteOnceProperties, + func(old runtime.Object) (admission.Warnings, error) { + return service.validateOwnerReference() + }, + func(old runtime.Object) (admission.Warnings, error) { + return service.validateOptionalConfigMapReferences() + }, + } +} + +// validateOptionalConfigMapReferences validates all optional configmap reference pairs to ensure that at most 1 is set +func (service *Service) validateOptionalConfigMapReferences() (admission.Warnings, error) { + refs, err := reflecthelpers.FindOptionalConfigMapReferences(&service.Spec) + if err != nil { + return nil, err + } + return genruntime.ValidateOptionalConfigMapReferences(refs) +} + +// validateOwnerReference validates the owner field +func (service *Service) validateOwnerReference() (admission.Warnings, error) { + return genruntime.ValidateOwner(service) +} + +// validateResourceReferences validates all resource references +func (service *Service) validateResourceReferences() (admission.Warnings, error) { + refs, err := reflecthelpers.FindResourceReferences(&service.Spec) + if err != nil { + return nil, err + } + return genruntime.ValidateResourceReferences(refs) +} + +// validateWriteOnceProperties validates all WriteOnce properties +func (service *Service) validateWriteOnceProperties(old runtime.Object) (admission.Warnings, error) { + oldObj, ok := old.(*Service) + if !ok { + return nil, nil + } + + return genruntime.ValidateWriteOnceProperties(oldObj, service) +} + +// AssignProperties_From_Service populates our Service from the provided source Service +func (service *Service) AssignProperties_From_Service(source *v20220801s.Service) error { + + // ObjectMeta + service.ObjectMeta = *source.ObjectMeta.DeepCopy() + + // Spec + var spec Service_Spec + err := spec.AssignProperties_From_Service_Spec(&source.Spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_Service_Spec() to populate field Spec") + } + service.Spec = spec + + // Status + var status Service_STATUS + err = status.AssignProperties_From_Service_STATUS(&source.Status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_Service_STATUS() to populate field Status") + } + service.Status = status + + // No error + return nil +} + +// AssignProperties_To_Service populates the provided destination Service from our Service +func (service *Service) AssignProperties_To_Service(destination *v20220801s.Service) error { + + // ObjectMeta + destination.ObjectMeta = *service.ObjectMeta.DeepCopy() + + // Spec + var spec v20220801s.Service_Spec + err := service.Spec.AssignProperties_To_Service_Spec(&spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_Service_Spec() to populate field Spec") + } + destination.Spec = spec + + // Status + var status v20220801s.Service_STATUS + err = service.Status.AssignProperties_To_Service_STATUS(&status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_Service_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 (service *Service) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: service.Spec.OriginalVersion(), + Kind: "Service", + } +} + +// +kubebuilder:object:root=true +// Generator information: +// - Generated from: /apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/apimdeployment.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName} +type ServiceList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Service `json:"items"` +} + +// +kubebuilder:validation:Enum={"2022-08-01"} +type APIVersion string + +const APIVersion_Value = APIVersion("2022-08-01") + +type Service_Spec struct { + // AdditionalLocations: Additional datacenter locations of the API Management service. + AdditionalLocations []AdditionalLocation `json:"additionalLocations,omitempty"` + + // ApiVersionConstraint: Control Plane Apis version constraint for the API Management service. + ApiVersionConstraint *ApiVersionConstraint `json:"apiVersionConstraint,omitempty"` + + // +kubebuilder:validation:MaxLength=50 + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:Pattern="^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" + // 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"` + + // Certificates: List of Certificates that need to be installed in the API Management service. Max supported certificates + // that can be installed is 10. + Certificates []CertificateConfiguration `json:"certificates,omitempty"` + + // CustomProperties: Custom properties of the API Management service.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher + // TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API + // Management service.
Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be + // used to disable just TLS 1.1 for communications with backends.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for + // communications with backends.
Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be + // used to enable HTTP2 protocol on an API Management service.
Not specifying any of these properties on PATCH + // operation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value + // is `True` if the service was created on or before April 1, 2018 and `False` otherwise. Http2 setting's default value is + // `False`.

You can disable any of the following ciphers by using settings + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, + // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, + // TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, + // TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example, + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default + // value is `true` for them.
Note: The following ciphers can't be disabled since they are required by internal + // platform components: + // TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 + CustomProperties map[string]string `json:"customProperties,omitempty"` + + // DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to + // disable the gateway in master region. + DisableGateway *bool `json:"disableGateway,omitempty"` + + // EnableClientCertificate: Property only meant to be used for Consumption SKU Service. This enforces a client certificate + // to be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the + // policy on the gateway. + EnableClientCertificate *bool `json:"enableClientCertificate,omitempty"` + + // HostnameConfigurations: Custom hostname configuration of the API Management service. + HostnameConfigurations []HostnameConfiguration `json:"hostnameConfigurations,omitempty"` + + // Identity: Managed service identity of the Api Management service. + Identity *ApiManagementServiceIdentity `json:"identity,omitempty"` + + // +kubebuilder:validation:Required + // Location: Resource location. + Location *string `json:"location,omitempty"` + + // NatGatewayState: Property can be used to enable NAT Gateway for this API Management service. + NatGatewayState *ApiManagementServiceProperties_NatGatewayState `json:"natGatewayState,omitempty"` + + // +kubebuilder:validation:MaxLength=100 + // NotificationSenderEmail: Email address from which the notification will be sent. + NotificationSenderEmail *string `json:"notificationSenderEmail,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"` + + // PublicIpAddressReference: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed + // service in the region. Supported only for Developer and Premium SKU being deployed in Virtual Network. + PublicIpAddressReference *genruntime.ResourceReference `armReference:"PublicIpAddressId" json:"publicIpAddressReference,omitempty"` + + // PublicNetworkAccess: Whether or not public endpoint access is allowed for this API Management service. Value is + // optional but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access + // method. Default value is 'Enabled' + PublicNetworkAccess *ApiManagementServiceProperties_PublicNetworkAccess `json:"publicNetworkAccess,omitempty"` + + // +kubebuilder:validation:Required + // +kubebuilder:validation:MaxLength=100 + // PublisherEmail: Publisher email. + PublisherEmail *string `json:"publisherEmail,omitempty"` + + // +kubebuilder:validation:Required + // +kubebuilder:validation:MaxLength=100 + // PublisherName: Publisher name. + PublisherName *string `json:"publisherName,omitempty"` + + // Restore: Undelete Api Management Service if it was previously soft-deleted. If this flag is specified and set to True + // all other properties will be ignored. + Restore *bool `json:"restore,omitempty"` + + // +kubebuilder:validation:Required + // Sku: SKU properties of the API Management service. + Sku *ApiManagementServiceSkuProperties `json:"sku,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // VirtualNetworkConfiguration: Virtual network configuration of the API Management service. + VirtualNetworkConfiguration *VirtualNetworkConfiguration `json:"virtualNetworkConfiguration,omitempty"` + + // VirtualNetworkType: The type of VPN in which API Management service needs to be configured in. None (Default Value) + // means the API Management service is not part of any Virtual Network, External means the API Management deployment is set + // up inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is + // setup inside a Virtual Network having an Intranet Facing Endpoint only. + VirtualNetworkType *ApiManagementServiceProperties_VirtualNetworkType `json:"virtualNetworkType,omitempty"` + + // Zones: A list of availability zones denoting where the resource needs to come from. + Zones []string `json:"zones,omitempty"` +} + +var _ genruntime.ARMTransformer = &Service_Spec{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (service *Service_Spec) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if service == nil { + return nil, nil + } + result := &Service_Spec_ARM{} + + // Set property "Identity": + if service.Identity != nil { + identity_ARM, err := (*service.Identity).ConvertToARM(resolved) + if err != nil { + return nil, err + } + identity := *identity_ARM.(*ApiManagementServiceIdentity_ARM) + result.Identity = &identity + } + + // Set property "Location": + if service.Location != nil { + location := *service.Location + result.Location = &location + } + + // Set property "Name": + result.Name = resolved.Name + + // Set property "Properties": + if service.AdditionalLocations != nil || + service.ApiVersionConstraint != nil || + service.Certificates != nil || + service.CustomProperties != nil || + service.DisableGateway != nil || + service.EnableClientCertificate != nil || + service.HostnameConfigurations != nil || + service.NatGatewayState != nil || + service.NotificationSenderEmail != nil || + service.PublicIpAddressReference != nil || + service.PublicNetworkAccess != nil || + service.PublisherEmail != nil || + service.PublisherName != nil || + service.Restore != nil || + service.VirtualNetworkConfiguration != nil || + service.VirtualNetworkType != nil { + result.Properties = &ApiManagementServiceProperties_ARM{} + } + for _, item := range service.AdditionalLocations { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.Properties.AdditionalLocations = append(result.Properties.AdditionalLocations, *item_ARM.(*AdditionalLocation_ARM)) + } + if service.ApiVersionConstraint != nil { + apiVersionConstraint_ARM, err := (*service.ApiVersionConstraint).ConvertToARM(resolved) + if err != nil { + return nil, err + } + apiVersionConstraint := *apiVersionConstraint_ARM.(*ApiVersionConstraint_ARM) + result.Properties.ApiVersionConstraint = &apiVersionConstraint + } + for _, item := range service.Certificates { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.Properties.Certificates = append(result.Properties.Certificates, *item_ARM.(*CertificateConfiguration_ARM)) + } + if service.CustomProperties != nil { + result.Properties.CustomProperties = make(map[string]string, len(service.CustomProperties)) + for key, value := range service.CustomProperties { + result.Properties.CustomProperties[key] = value + } + } + if service.DisableGateway != nil { + disableGateway := *service.DisableGateway + result.Properties.DisableGateway = &disableGateway + } + if service.EnableClientCertificate != nil { + enableClientCertificate := *service.EnableClientCertificate + result.Properties.EnableClientCertificate = &enableClientCertificate + } + for _, item := range service.HostnameConfigurations { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.Properties.HostnameConfigurations = append(result.Properties.HostnameConfigurations, *item_ARM.(*HostnameConfiguration_ARM)) + } + if service.NatGatewayState != nil { + natGatewayState := *service.NatGatewayState + result.Properties.NatGatewayState = &natGatewayState + } + if service.NotificationSenderEmail != nil { + notificationSenderEmail := *service.NotificationSenderEmail + result.Properties.NotificationSenderEmail = ¬ificationSenderEmail + } + if service.PublicIpAddressReference != nil { + publicIpAddressIdARMID, err := resolved.ResolvedReferences.Lookup(*service.PublicIpAddressReference) + if err != nil { + return nil, err + } + publicIpAddressId := publicIpAddressIdARMID + result.Properties.PublicIpAddressId = &publicIpAddressId + } + if service.PublicNetworkAccess != nil { + publicNetworkAccess := *service.PublicNetworkAccess + result.Properties.PublicNetworkAccess = &publicNetworkAccess + } + if service.PublisherEmail != nil { + publisherEmail := *service.PublisherEmail + result.Properties.PublisherEmail = &publisherEmail + } + if service.PublisherName != nil { + publisherName := *service.PublisherName + result.Properties.PublisherName = &publisherName + } + if service.Restore != nil { + restore := *service.Restore + result.Properties.Restore = &restore + } + if service.VirtualNetworkConfiguration != nil { + virtualNetworkConfiguration_ARM, err := (*service.VirtualNetworkConfiguration).ConvertToARM(resolved) + if err != nil { + return nil, err + } + virtualNetworkConfiguration := *virtualNetworkConfiguration_ARM.(*VirtualNetworkConfiguration_ARM) + result.Properties.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } + if service.VirtualNetworkType != nil { + virtualNetworkType := *service.VirtualNetworkType + result.Properties.VirtualNetworkType = &virtualNetworkType + } + + // Set property "Sku": + if service.Sku != nil { + sku_ARM, err := (*service.Sku).ConvertToARM(resolved) + if err != nil { + return nil, err + } + sku := *sku_ARM.(*ApiManagementServiceSkuProperties_ARM) + result.Sku = &sku + } + + // Set property "Tags": + if service.Tags != nil { + result.Tags = make(map[string]string, len(service.Tags)) + for key, value := range service.Tags { + result.Tags[key] = value + } + } + + // Set property "Zones": + for _, item := range service.Zones { + result.Zones = append(result.Zones, item) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (service *Service_Spec) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &Service_Spec_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (service *Service_Spec) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(Service_Spec_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected Service_Spec_ARM, got %T", armInput) + } + + // Set property "AdditionalLocations": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.AdditionalLocations { + var item1 AdditionalLocation + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + service.AdditionalLocations = append(service.AdditionalLocations, item1) + } + } + + // Set property "ApiVersionConstraint": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ApiVersionConstraint != nil { + var apiVersionConstraint1 ApiVersionConstraint + err := apiVersionConstraint1.PopulateFromARM(owner, *typedInput.Properties.ApiVersionConstraint) + if err != nil { + return err + } + apiVersionConstraint := apiVersionConstraint1 + service.ApiVersionConstraint = &apiVersionConstraint + } + } + + // Set property "AzureName": + service.SetAzureName(genruntime.ExtractKubernetesResourceNameFromARMName(typedInput.Name)) + + // Set property "Certificates": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.Certificates { + var item1 CertificateConfiguration + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + service.Certificates = append(service.Certificates, item1) + } + } + + // Set property "CustomProperties": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.CustomProperties != nil { + service.CustomProperties = make(map[string]string, len(typedInput.Properties.CustomProperties)) + for key, value := range typedInput.Properties.CustomProperties { + service.CustomProperties[key] = value + } + } + } + + // Set property "DisableGateway": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.DisableGateway != nil { + disableGateway := *typedInput.Properties.DisableGateway + service.DisableGateway = &disableGateway + } + } + + // Set property "EnableClientCertificate": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableClientCertificate != nil { + enableClientCertificate := *typedInput.Properties.EnableClientCertificate + service.EnableClientCertificate = &enableClientCertificate + } + } + + // Set property "HostnameConfigurations": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.HostnameConfigurations { + var item1 HostnameConfiguration + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + service.HostnameConfigurations = append(service.HostnameConfigurations, item1) + } + } + + // Set property "Identity": + if typedInput.Identity != nil { + var identity1 ApiManagementServiceIdentity + err := identity1.PopulateFromARM(owner, *typedInput.Identity) + if err != nil { + return err + } + identity := identity1 + service.Identity = &identity + } + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + service.Location = &location + } + + // Set property "NatGatewayState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NatGatewayState != nil { + natGatewayState := *typedInput.Properties.NatGatewayState + service.NatGatewayState = &natGatewayState + } + } + + // Set property "NotificationSenderEmail": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NotificationSenderEmail != nil { + notificationSenderEmail := *typedInput.Properties.NotificationSenderEmail + service.NotificationSenderEmail = ¬ificationSenderEmail + } + } + + // Set property "Owner": + service.Owner = &genruntime.KnownResourceReference{ + Name: owner.Name, + ARMID: owner.ARMID, + } + + // no assignment for property "PublicIpAddressReference" + + // Set property "PublicNetworkAccess": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PublicNetworkAccess != nil { + publicNetworkAccess := *typedInput.Properties.PublicNetworkAccess + service.PublicNetworkAccess = &publicNetworkAccess + } + } + + // Set property "PublisherEmail": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PublisherEmail != nil { + publisherEmail := *typedInput.Properties.PublisherEmail + service.PublisherEmail = &publisherEmail + } + } + + // Set property "PublisherName": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PublisherName != nil { + publisherName := *typedInput.Properties.PublisherName + service.PublisherName = &publisherName + } + } + + // Set property "Restore": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Restore != nil { + restore := *typedInput.Properties.Restore + service.Restore = &restore + } + } + + // Set property "Sku": + if typedInput.Sku != nil { + var sku1 ApiManagementServiceSkuProperties + err := sku1.PopulateFromARM(owner, *typedInput.Sku) + if err != nil { + return err + } + sku := sku1 + service.Sku = &sku + } + + // Set property "Tags": + if typedInput.Tags != nil { + service.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + service.Tags[key] = value + } + } + + // Set property "VirtualNetworkConfiguration": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration1 VirtualNetworkConfiguration + err := virtualNetworkConfiguration1.PopulateFromARM(owner, *typedInput.Properties.VirtualNetworkConfiguration) + if err != nil { + return err + } + virtualNetworkConfiguration := virtualNetworkConfiguration1 + service.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } + } + + // Set property "VirtualNetworkType": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.VirtualNetworkType != nil { + virtualNetworkType := *typedInput.Properties.VirtualNetworkType + service.VirtualNetworkType = &virtualNetworkType + } + } + + // Set property "Zones": + for _, item := range typedInput.Zones { + service.Zones = append(service.Zones, item) + } + + // No error + return nil +} + +var _ genruntime.ConvertibleSpec = &Service_Spec{} + +// ConvertSpecFrom populates our Service_Spec from the provided source +func (service *Service_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + src, ok := source.(*v20220801s.Service_Spec) + if ok { + // Populate our instance from source + return service.AssignProperties_From_Service_Spec(src) + } + + // Convert to an intermediate form + src = &v20220801s.Service_Spec{} + err := src.ConvertSpecFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecFrom()") + } + + // Update our instance from src + err = service.AssignProperties_From_Service_Spec(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecFrom()") + } + + return nil +} + +// ConvertSpecTo populates the provided destination from our Service_Spec +func (service *Service_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + dst, ok := destination.(*v20220801s.Service_Spec) + if ok { + // Populate destination from our instance + return service.AssignProperties_To_Service_Spec(dst) + } + + // Convert to an intermediate form + dst = &v20220801s.Service_Spec{} + err := service.AssignProperties_To_Service_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_Service_Spec populates our Service_Spec from the provided source Service_Spec +func (service *Service_Spec) AssignProperties_From_Service_Spec(source *v20220801s.Service_Spec) error { + + // AdditionalLocations + if source.AdditionalLocations != nil { + additionalLocationList := make([]AdditionalLocation, len(source.AdditionalLocations)) + for additionalLocationIndex, additionalLocationItem := range source.AdditionalLocations { + // Shadow the loop variable to avoid aliasing + additionalLocationItem := additionalLocationItem + var additionalLocation AdditionalLocation + err := additionalLocation.AssignProperties_From_AdditionalLocation(&additionalLocationItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AdditionalLocation() to populate field AdditionalLocations") + } + additionalLocationList[additionalLocationIndex] = additionalLocation + } + service.AdditionalLocations = additionalLocationList + } else { + service.AdditionalLocations = nil + } + + // ApiVersionConstraint + if source.ApiVersionConstraint != nil { + var apiVersionConstraint ApiVersionConstraint + err := apiVersionConstraint.AssignProperties_From_ApiVersionConstraint(source.ApiVersionConstraint) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ApiVersionConstraint() to populate field ApiVersionConstraint") + } + service.ApiVersionConstraint = &apiVersionConstraint + } else { + service.ApiVersionConstraint = nil + } + + // AzureName + service.AzureName = source.AzureName + + // Certificates + if source.Certificates != nil { + certificateList := make([]CertificateConfiguration, len(source.Certificates)) + for certificateIndex, certificateItem := range source.Certificates { + // Shadow the loop variable to avoid aliasing + certificateItem := certificateItem + var certificate CertificateConfiguration + err := certificate.AssignProperties_From_CertificateConfiguration(&certificateItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CertificateConfiguration() to populate field Certificates") + } + certificateList[certificateIndex] = certificate + } + service.Certificates = certificateList + } else { + service.Certificates = nil + } + + // CustomProperties + service.CustomProperties = genruntime.CloneMapOfStringToString(source.CustomProperties) + + // DisableGateway + if source.DisableGateway != nil { + disableGateway := *source.DisableGateway + service.DisableGateway = &disableGateway + } else { + service.DisableGateway = nil + } + + // EnableClientCertificate + if source.EnableClientCertificate != nil { + enableClientCertificate := *source.EnableClientCertificate + service.EnableClientCertificate = &enableClientCertificate + } else { + service.EnableClientCertificate = nil + } + + // HostnameConfigurations + if source.HostnameConfigurations != nil { + hostnameConfigurationList := make([]HostnameConfiguration, len(source.HostnameConfigurations)) + for hostnameConfigurationIndex, hostnameConfigurationItem := range source.HostnameConfigurations { + // Shadow the loop variable to avoid aliasing + hostnameConfigurationItem := hostnameConfigurationItem + var hostnameConfiguration HostnameConfiguration + err := hostnameConfiguration.AssignProperties_From_HostnameConfiguration(&hostnameConfigurationItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_HostnameConfiguration() to populate field HostnameConfigurations") + } + hostnameConfigurationList[hostnameConfigurationIndex] = hostnameConfiguration + } + service.HostnameConfigurations = hostnameConfigurationList + } else { + service.HostnameConfigurations = nil + } + + // Identity + if source.Identity != nil { + var identity ApiManagementServiceIdentity + err := identity.AssignProperties_From_ApiManagementServiceIdentity(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ApiManagementServiceIdentity() to populate field Identity") + } + service.Identity = &identity + } else { + service.Identity = nil + } + + // Location + service.Location = genruntime.ClonePointerToString(source.Location) + + // NatGatewayState + if source.NatGatewayState != nil { + natGatewayState := ApiManagementServiceProperties_NatGatewayState(*source.NatGatewayState) + service.NatGatewayState = &natGatewayState + } else { + service.NatGatewayState = nil + } + + // NotificationSenderEmail + if source.NotificationSenderEmail != nil { + notificationSenderEmail := *source.NotificationSenderEmail + service.NotificationSenderEmail = ¬ificationSenderEmail + } else { + service.NotificationSenderEmail = nil + } + + // Owner + if source.Owner != nil { + owner := source.Owner.Copy() + service.Owner = &owner + } else { + service.Owner = nil + } + + // PublicIpAddressReference + if source.PublicIpAddressReference != nil { + publicIpAddressReference := source.PublicIpAddressReference.Copy() + service.PublicIpAddressReference = &publicIpAddressReference + } else { + service.PublicIpAddressReference = nil + } + + // PublicNetworkAccess + if source.PublicNetworkAccess != nil { + publicNetworkAccess := ApiManagementServiceProperties_PublicNetworkAccess(*source.PublicNetworkAccess) + service.PublicNetworkAccess = &publicNetworkAccess + } else { + service.PublicNetworkAccess = nil + } + + // PublisherEmail + if source.PublisherEmail != nil { + publisherEmail := *source.PublisherEmail + service.PublisherEmail = &publisherEmail + } else { + service.PublisherEmail = nil + } + + // PublisherName + if source.PublisherName != nil { + publisherName := *source.PublisherName + service.PublisherName = &publisherName + } else { + service.PublisherName = nil + } + + // Restore + if source.Restore != nil { + restore := *source.Restore + service.Restore = &restore + } else { + service.Restore = nil + } + + // Sku + if source.Sku != nil { + var sku ApiManagementServiceSkuProperties + err := sku.AssignProperties_From_ApiManagementServiceSkuProperties(source.Sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ApiManagementServiceSkuProperties() to populate field Sku") + } + service.Sku = &sku + } else { + service.Sku = nil + } + + // Tags + service.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // VirtualNetworkConfiguration + if source.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration VirtualNetworkConfiguration + err := virtualNetworkConfiguration.AssignProperties_From_VirtualNetworkConfiguration(source.VirtualNetworkConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_VirtualNetworkConfiguration() to populate field VirtualNetworkConfiguration") + } + service.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } else { + service.VirtualNetworkConfiguration = nil + } + + // VirtualNetworkType + if source.VirtualNetworkType != nil { + virtualNetworkType := ApiManagementServiceProperties_VirtualNetworkType(*source.VirtualNetworkType) + service.VirtualNetworkType = &virtualNetworkType + } else { + service.VirtualNetworkType = nil + } + + // Zones + service.Zones = genruntime.CloneSliceOfString(source.Zones) + + // No error + return nil +} + +// AssignProperties_To_Service_Spec populates the provided destination Service_Spec from our Service_Spec +func (service *Service_Spec) AssignProperties_To_Service_Spec(destination *v20220801s.Service_Spec) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AdditionalLocations + if service.AdditionalLocations != nil { + additionalLocationList := make([]v20220801s.AdditionalLocation, len(service.AdditionalLocations)) + for additionalLocationIndex, additionalLocationItem := range service.AdditionalLocations { + // Shadow the loop variable to avoid aliasing + additionalLocationItem := additionalLocationItem + var additionalLocation v20220801s.AdditionalLocation + err := additionalLocationItem.AssignProperties_To_AdditionalLocation(&additionalLocation) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AdditionalLocation() to populate field AdditionalLocations") + } + additionalLocationList[additionalLocationIndex] = additionalLocation + } + destination.AdditionalLocations = additionalLocationList + } else { + destination.AdditionalLocations = nil + } + + // ApiVersionConstraint + if service.ApiVersionConstraint != nil { + var apiVersionConstraint v20220801s.ApiVersionConstraint + err := service.ApiVersionConstraint.AssignProperties_To_ApiVersionConstraint(&apiVersionConstraint) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ApiVersionConstraint() to populate field ApiVersionConstraint") + } + destination.ApiVersionConstraint = &apiVersionConstraint + } else { + destination.ApiVersionConstraint = nil + } + + // AzureName + destination.AzureName = service.AzureName + + // Certificates + if service.Certificates != nil { + certificateList := make([]v20220801s.CertificateConfiguration, len(service.Certificates)) + for certificateIndex, certificateItem := range service.Certificates { + // Shadow the loop variable to avoid aliasing + certificateItem := certificateItem + var certificate v20220801s.CertificateConfiguration + err := certificateItem.AssignProperties_To_CertificateConfiguration(&certificate) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CertificateConfiguration() to populate field Certificates") + } + certificateList[certificateIndex] = certificate + } + destination.Certificates = certificateList + } else { + destination.Certificates = nil + } + + // CustomProperties + destination.CustomProperties = genruntime.CloneMapOfStringToString(service.CustomProperties) + + // DisableGateway + if service.DisableGateway != nil { + disableGateway := *service.DisableGateway + destination.DisableGateway = &disableGateway + } else { + destination.DisableGateway = nil + } + + // EnableClientCertificate + if service.EnableClientCertificate != nil { + enableClientCertificate := *service.EnableClientCertificate + destination.EnableClientCertificate = &enableClientCertificate + } else { + destination.EnableClientCertificate = nil + } + + // HostnameConfigurations + if service.HostnameConfigurations != nil { + hostnameConfigurationList := make([]v20220801s.HostnameConfiguration, len(service.HostnameConfigurations)) + for hostnameConfigurationIndex, hostnameConfigurationItem := range service.HostnameConfigurations { + // Shadow the loop variable to avoid aliasing + hostnameConfigurationItem := hostnameConfigurationItem + var hostnameConfiguration v20220801s.HostnameConfiguration + err := hostnameConfigurationItem.AssignProperties_To_HostnameConfiguration(&hostnameConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_HostnameConfiguration() to populate field HostnameConfigurations") + } + hostnameConfigurationList[hostnameConfigurationIndex] = hostnameConfiguration + } + destination.HostnameConfigurations = hostnameConfigurationList + } else { + destination.HostnameConfigurations = nil + } + + // Identity + if service.Identity != nil { + var identity v20220801s.ApiManagementServiceIdentity + err := service.Identity.AssignProperties_To_ApiManagementServiceIdentity(&identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ApiManagementServiceIdentity() to populate field Identity") + } + destination.Identity = &identity + } else { + destination.Identity = nil + } + + // Location + destination.Location = genruntime.ClonePointerToString(service.Location) + + // NatGatewayState + if service.NatGatewayState != nil { + natGatewayState := string(*service.NatGatewayState) + destination.NatGatewayState = &natGatewayState + } else { + destination.NatGatewayState = nil + } + + // NotificationSenderEmail + if service.NotificationSenderEmail != nil { + notificationSenderEmail := *service.NotificationSenderEmail + destination.NotificationSenderEmail = ¬ificationSenderEmail + } else { + destination.NotificationSenderEmail = nil + } + + // OriginalVersion + destination.OriginalVersion = service.OriginalVersion() + + // Owner + if service.Owner != nil { + owner := service.Owner.Copy() + destination.Owner = &owner + } else { + destination.Owner = nil + } + + // PublicIpAddressReference + if service.PublicIpAddressReference != nil { + publicIpAddressReference := service.PublicIpAddressReference.Copy() + destination.PublicIpAddressReference = &publicIpAddressReference + } else { + destination.PublicIpAddressReference = nil + } + + // PublicNetworkAccess + if service.PublicNetworkAccess != nil { + publicNetworkAccess := string(*service.PublicNetworkAccess) + destination.PublicNetworkAccess = &publicNetworkAccess + } else { + destination.PublicNetworkAccess = nil + } + + // PublisherEmail + if service.PublisherEmail != nil { + publisherEmail := *service.PublisherEmail + destination.PublisherEmail = &publisherEmail + } else { + destination.PublisherEmail = nil + } + + // PublisherName + if service.PublisherName != nil { + publisherName := *service.PublisherName + destination.PublisherName = &publisherName + } else { + destination.PublisherName = nil + } + + // Restore + if service.Restore != nil { + restore := *service.Restore + destination.Restore = &restore + } else { + destination.Restore = nil + } + + // Sku + if service.Sku != nil { + var sku v20220801s.ApiManagementServiceSkuProperties + err := service.Sku.AssignProperties_To_ApiManagementServiceSkuProperties(&sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ApiManagementServiceSkuProperties() to populate field Sku") + } + destination.Sku = &sku + } else { + destination.Sku = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(service.Tags) + + // VirtualNetworkConfiguration + if service.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration v20220801s.VirtualNetworkConfiguration + err := service.VirtualNetworkConfiguration.AssignProperties_To_VirtualNetworkConfiguration(&virtualNetworkConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_VirtualNetworkConfiguration() to populate field VirtualNetworkConfiguration") + } + destination.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } else { + destination.VirtualNetworkConfiguration = nil + } + + // VirtualNetworkType + if service.VirtualNetworkType != nil { + virtualNetworkType := string(*service.VirtualNetworkType) + destination.VirtualNetworkType = &virtualNetworkType + } else { + destination.VirtualNetworkType = nil + } + + // Zones + destination.Zones = genruntime.CloneSliceOfString(service.Zones) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_Service_STATUS populates our Service_Spec from the provided source Service_STATUS +func (service *Service_Spec) Initialize_From_Service_STATUS(source *Service_STATUS) error { + + // AdditionalLocations + if source.AdditionalLocations != nil { + additionalLocationList := make([]AdditionalLocation, len(source.AdditionalLocations)) + for additionalLocationIndex, additionalLocationItem := range source.AdditionalLocations { + // Shadow the loop variable to avoid aliasing + additionalLocationItem := additionalLocationItem + var additionalLocation AdditionalLocation + err := additionalLocation.Initialize_From_AdditionalLocation_STATUS(&additionalLocationItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_AdditionalLocation_STATUS() to populate field AdditionalLocations") + } + additionalLocationList[additionalLocationIndex] = additionalLocation + } + service.AdditionalLocations = additionalLocationList + } else { + service.AdditionalLocations = nil + } + + // ApiVersionConstraint + if source.ApiVersionConstraint != nil { + var apiVersionConstraint ApiVersionConstraint + err := apiVersionConstraint.Initialize_From_ApiVersionConstraint_STATUS(source.ApiVersionConstraint) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ApiVersionConstraint_STATUS() to populate field ApiVersionConstraint") + } + service.ApiVersionConstraint = &apiVersionConstraint + } else { + service.ApiVersionConstraint = nil + } + + // Certificates + if source.Certificates != nil { + certificateList := make([]CertificateConfiguration, len(source.Certificates)) + for certificateIndex, certificateItem := range source.Certificates { + // Shadow the loop variable to avoid aliasing + certificateItem := certificateItem + var certificate CertificateConfiguration + err := certificate.Initialize_From_CertificateConfiguration_STATUS(&certificateItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_CertificateConfiguration_STATUS() to populate field Certificates") + } + certificateList[certificateIndex] = certificate + } + service.Certificates = certificateList + } else { + service.Certificates = nil + } + + // CustomProperties + service.CustomProperties = genruntime.CloneMapOfStringToString(source.CustomProperties) + + // DisableGateway + if source.DisableGateway != nil { + disableGateway := *source.DisableGateway + service.DisableGateway = &disableGateway + } else { + service.DisableGateway = nil + } + + // EnableClientCertificate + if source.EnableClientCertificate != nil { + enableClientCertificate := *source.EnableClientCertificate + service.EnableClientCertificate = &enableClientCertificate + } else { + service.EnableClientCertificate = nil + } + + // HostnameConfigurations + if source.HostnameConfigurations != nil { + hostnameConfigurationList := make([]HostnameConfiguration, len(source.HostnameConfigurations)) + for hostnameConfigurationIndex, hostnameConfigurationItem := range source.HostnameConfigurations { + // Shadow the loop variable to avoid aliasing + hostnameConfigurationItem := hostnameConfigurationItem + var hostnameConfiguration HostnameConfiguration + err := hostnameConfiguration.Initialize_From_HostnameConfiguration_STATUS(&hostnameConfigurationItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_HostnameConfiguration_STATUS() to populate field HostnameConfigurations") + } + hostnameConfigurationList[hostnameConfigurationIndex] = hostnameConfiguration + } + service.HostnameConfigurations = hostnameConfigurationList + } else { + service.HostnameConfigurations = nil + } + + // Identity + if source.Identity != nil { + var identity ApiManagementServiceIdentity + err := identity.Initialize_From_ApiManagementServiceIdentity_STATUS(source.Identity) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ApiManagementServiceIdentity_STATUS() to populate field Identity") + } + service.Identity = &identity + } else { + service.Identity = nil + } + + // Location + service.Location = genruntime.ClonePointerToString(source.Location) + + // NatGatewayState + if source.NatGatewayState != nil { + natGatewayState := ApiManagementServiceProperties_NatGatewayState(*source.NatGatewayState) + service.NatGatewayState = &natGatewayState + } else { + service.NatGatewayState = nil + } + + // NotificationSenderEmail + if source.NotificationSenderEmail != nil { + notificationSenderEmail := *source.NotificationSenderEmail + service.NotificationSenderEmail = ¬ificationSenderEmail + } else { + service.NotificationSenderEmail = nil + } + + // PublicIpAddressReference + if source.PublicIpAddressId != nil { + publicIpAddressReference := genruntime.CreateResourceReferenceFromARMID(*source.PublicIpAddressId) + service.PublicIpAddressReference = &publicIpAddressReference + } else { + service.PublicIpAddressReference = nil + } + + // PublicNetworkAccess + if source.PublicNetworkAccess != nil { + publicNetworkAccess := ApiManagementServiceProperties_PublicNetworkAccess(*source.PublicNetworkAccess) + service.PublicNetworkAccess = &publicNetworkAccess + } else { + service.PublicNetworkAccess = nil + } + + // PublisherEmail + if source.PublisherEmail != nil { + publisherEmail := *source.PublisherEmail + service.PublisherEmail = &publisherEmail + } else { + service.PublisherEmail = nil + } + + // PublisherName + if source.PublisherName != nil { + publisherName := *source.PublisherName + service.PublisherName = &publisherName + } else { + service.PublisherName = nil + } + + // Restore + if source.Restore != nil { + restore := *source.Restore + service.Restore = &restore + } else { + service.Restore = nil + } + + // Sku + if source.Sku != nil { + var sku ApiManagementServiceSkuProperties + err := sku.Initialize_From_ApiManagementServiceSkuProperties_STATUS(source.Sku) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ApiManagementServiceSkuProperties_STATUS() to populate field Sku") + } + service.Sku = &sku + } else { + service.Sku = nil + } + + // Tags + service.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // VirtualNetworkConfiguration + if source.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration VirtualNetworkConfiguration + err := virtualNetworkConfiguration.Initialize_From_VirtualNetworkConfiguration_STATUS(source.VirtualNetworkConfiguration) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_VirtualNetworkConfiguration_STATUS() to populate field VirtualNetworkConfiguration") + } + service.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } else { + service.VirtualNetworkConfiguration = nil + } + + // VirtualNetworkType + if source.VirtualNetworkType != nil { + virtualNetworkType := ApiManagementServiceProperties_VirtualNetworkType(*source.VirtualNetworkType) + service.VirtualNetworkType = &virtualNetworkType + } else { + service.VirtualNetworkType = nil + } + + // Zones + service.Zones = genruntime.CloneSliceOfString(source.Zones) + + // No error + return nil +} + +// OriginalVersion returns the original API version used to create the resource. +func (service *Service_Spec) OriginalVersion() string { + return GroupVersion.Version +} + +// SetAzureName sets the Azure name of the resource +func (service *Service_Spec) SetAzureName(azureName string) { service.AzureName = azureName } + +type Service_STATUS struct { + // AdditionalLocations: Additional datacenter locations of the API Management service. + AdditionalLocations []AdditionalLocation_STATUS `json:"additionalLocations,omitempty"` + + // ApiVersionConstraint: Control Plane Apis version constraint for the API Management service. + ApiVersionConstraint *ApiVersionConstraint_STATUS `json:"apiVersionConstraint,omitempty"` + + // Certificates: List of Certificates that need to be installed in the API Management service. Max supported certificates + // that can be installed is 10. + Certificates []CertificateConfiguration_STATUS `json:"certificates,omitempty"` + + // Conditions: The observed state of the resource + Conditions []conditions.Condition `json:"conditions,omitempty"` + + // CreatedAtUtc: Creation UTC date of the API Management service.The date conforms to the following format: + // `yyyy-MM-ddTHH:mm:ssZ` as specified by the ISO 8601 standard. + CreatedAtUtc *string `json:"createdAtUtc,omitempty"` + + // CustomProperties: Custom properties of the API Management service.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168` will disable the cipher + // TLS_RSA_WITH_3DES_EDE_CBC_SHA for all TLS(1.0, 1.1 and 1.2).
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11` can be used to disable just TLS 1.1.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10` can be used to disable TLS 1.0 on an API + // Management service.
Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11` can be + // used to disable just TLS 1.1 for communications with backends.
Setting + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10` can be used to disable TLS 1.0 for + // communications with backends.
Setting `Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2` can be + // used to enable HTTP2 protocol on an API Management service.
Not specifying any of these properties on PATCH + // operation will reset omitted properties' values to their defaults. For all the settings except Http2 the default value + // is `True` if the service was created on or before April 1, 2018 and `False` otherwise. Http2 setting's default value is + // `False`.

You can disable any of the following ciphers by using settings + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.[cipher_name]`: TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, + // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, + // TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, + // TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA. For example, + // `Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TLS_RSA_WITH_AES_128_CBC_SHA256`:`false`. The default + // value is `true` for them.
Note: The following ciphers can't be disabled since they are required by internal + // platform components: + // TLS_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 + CustomProperties map[string]string `json:"customProperties,omitempty"` + + // DeveloperPortalUrl: DEveloper Portal endpoint URL of the API Management service. + DeveloperPortalUrl *string `json:"developerPortalUrl,omitempty"` + + // DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to + // disable the gateway in master region. + DisableGateway *bool `json:"disableGateway,omitempty"` + + // EnableClientCertificate: Property only meant to be used for Consumption SKU Service. This enforces a client certificate + // to be presented on each request to the gateway. This also enables the ability to authenticate the certificate in the + // policy on the gateway. + EnableClientCertificate *bool `json:"enableClientCertificate,omitempty"` + + // Etag: ETag of the resource. + Etag *string `json:"etag,omitempty"` + + // GatewayRegionalUrl: Gateway URL of the API Management service in the Default Region. + GatewayRegionalUrl *string `json:"gatewayRegionalUrl,omitempty"` + + // GatewayUrl: Gateway URL of the API Management service. + GatewayUrl *string `json:"gatewayUrl,omitempty"` + + // HostnameConfigurations: Custom hostname configuration of the API Management service. + HostnameConfigurations []HostnameConfiguration_STATUS `json:"hostnameConfigurations,omitempty"` + + // Id: Resource ID. + Id *string `json:"id,omitempty"` + + // Identity: Managed service identity of the Api Management service. + Identity *ApiManagementServiceIdentity_STATUS `json:"identity,omitempty"` + + // Location: Resource location. + Location *string `json:"location,omitempty"` + + // ManagementApiUrl: Management API endpoint URL of the API Management service. + ManagementApiUrl *string `json:"managementApiUrl,omitempty"` + + // Name: Resource name. + Name *string `json:"name,omitempty"` + + // NatGatewayState: Property can be used to enable NAT Gateway for this API Management service. + NatGatewayState *ApiManagementServiceProperties_NatGatewayState_STATUS `json:"natGatewayState,omitempty"` + + // NotificationSenderEmail: Email address from which the notification will be sent. + NotificationSenderEmail *string `json:"notificationSenderEmail,omitempty"` + + // OutboundPublicIPAddresses: Outbound public IPV4 address prefixes associated with NAT Gateway deployed service. Available + // only for Premium SKU on stv2 platform. + OutboundPublicIPAddresses []string `json:"outboundPublicIPAddresses,omitempty"` + + // PlatformVersion: Compute Platform Version running the service in this location. + PlatformVersion *ApiManagementServiceProperties_PlatformVersion_STATUS `json:"platformVersion,omitempty"` + + // PortalUrl: Publisher portal endpoint Url of the API Management service. + PortalUrl *string `json:"portalUrl,omitempty"` + + // PrivateEndpointConnections: List of Private Endpoint Connections of this service. + PrivateEndpointConnections []RemotePrivateEndpointConnectionWrapper_STATUS `json:"privateEndpointConnections,omitempty"` + + // PrivateIPAddresses: Private Static Load Balanced IP addresses of the API Management service in Primary region which is + // deployed in an Internal Virtual Network. Available only for Basic, Standard, Premium and Isolated SKU. + PrivateIPAddresses []string `json:"privateIPAddresses,omitempty"` + + // ProvisioningState: The current provisioning state of the API Management service which can be one of the following: + // Created/Activating/Succeeded/Updating/Failed/Stopped/Terminating/TerminationFailed/Deleted. + ProvisioningState *string `json:"provisioningState,omitempty"` + + // PublicIPAddresses: Public Static Load Balanced IP addresses of the API Management service in Primary region. Available + // only for Basic, Standard, Premium and Isolated SKU. + PublicIPAddresses []string `json:"publicIPAddresses,omitempty"` + + // PublicIpAddressId: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in + // the region. Supported only for Developer and Premium SKU being deployed in Virtual Network. + PublicIpAddressId *string `json:"publicIpAddressId,omitempty"` + + // PublicNetworkAccess: Whether or not public endpoint access is allowed for this API Management service. Value is + // optional but if passed in, must be 'Enabled' or 'Disabled'. If 'Disabled', private endpoints are the exclusive access + // method. Default value is 'Enabled' + PublicNetworkAccess *ApiManagementServiceProperties_PublicNetworkAccess_STATUS `json:"publicNetworkAccess,omitempty"` + + // PublisherEmail: Publisher email. + PublisherEmail *string `json:"publisherEmail,omitempty"` + + // PublisherName: Publisher name. + PublisherName *string `json:"publisherName,omitempty"` + + // Restore: Undelete Api Management Service if it was previously soft-deleted. If this flag is specified and set to True + // all other properties will be ignored. + Restore *bool `json:"restore,omitempty"` + + // ScmUrl: SCM endpoint URL of the API Management service. + ScmUrl *string `json:"scmUrl,omitempty"` + + // Sku: SKU properties of the API Management service. + Sku *ApiManagementServiceSkuProperties_STATUS `json:"sku,omitempty"` + + // SystemData: Metadata pertaining to creation and last modification of the resource. + SystemData *SystemData_STATUS `json:"systemData,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // TargetProvisioningState: The provisioning state of the API Management service, which is targeted by the long running + // operation started on the service. + TargetProvisioningState *string `json:"targetProvisioningState,omitempty"` + + // Type: Resource type for API Management resource is set to Microsoft.ApiManagement. + Type *string `json:"type,omitempty"` + + // VirtualNetworkConfiguration: Virtual network configuration of the API Management service. + VirtualNetworkConfiguration *VirtualNetworkConfiguration_STATUS `json:"virtualNetworkConfiguration,omitempty"` + + // VirtualNetworkType: The type of VPN in which API Management service needs to be configured in. None (Default Value) + // means the API Management service is not part of any Virtual Network, External means the API Management deployment is set + // up inside a Virtual Network having an Internet Facing Endpoint, and Internal means that API Management deployment is + // setup inside a Virtual Network having an Intranet Facing Endpoint only. + VirtualNetworkType *ApiManagementServiceProperties_VirtualNetworkType_STATUS `json:"virtualNetworkType,omitempty"` + + // Zones: A list of availability zones denoting where the resource needs to come from. + Zones []string `json:"zones,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &Service_STATUS{} + +// ConvertStatusFrom populates our Service_STATUS from the provided source +func (service *Service_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + src, ok := source.(*v20220801s.Service_STATUS) + if ok { + // Populate our instance from source + return service.AssignProperties_From_Service_STATUS(src) + } + + // Convert to an intermediate form + src = &v20220801s.Service_STATUS{} + err := src.ConvertStatusFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusFrom()") + } + + // Update our instance from src + err = service.AssignProperties_From_Service_STATUS(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusFrom()") + } + + return nil +} + +// ConvertStatusTo populates the provided destination from our Service_STATUS +func (service *Service_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + dst, ok := destination.(*v20220801s.Service_STATUS) + if ok { + // Populate destination from our instance + return service.AssignProperties_To_Service_STATUS(dst) + } + + // Convert to an intermediate form + dst = &v20220801s.Service_STATUS{} + err := service.AssignProperties_To_Service_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 = &Service_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (service *Service_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &Service_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (service *Service_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(Service_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected Service_STATUS_ARM, got %T", armInput) + } + + // Set property "AdditionalLocations": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.AdditionalLocations { + var item1 AdditionalLocation_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + service.AdditionalLocations = append(service.AdditionalLocations, item1) + } + } + + // Set property "ApiVersionConstraint": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ApiVersionConstraint != nil { + var apiVersionConstraint1 ApiVersionConstraint_STATUS + err := apiVersionConstraint1.PopulateFromARM(owner, *typedInput.Properties.ApiVersionConstraint) + if err != nil { + return err + } + apiVersionConstraint := apiVersionConstraint1 + service.ApiVersionConstraint = &apiVersionConstraint + } + } + + // Set property "Certificates": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.Certificates { + var item1 CertificateConfiguration_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + service.Certificates = append(service.Certificates, item1) + } + } + + // no assignment for property "Conditions" + + // Set property "CreatedAtUtc": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.CreatedAtUtc != nil { + createdAtUtc := *typedInput.Properties.CreatedAtUtc + service.CreatedAtUtc = &createdAtUtc + } + } + + // Set property "CustomProperties": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.CustomProperties != nil { + service.CustomProperties = make(map[string]string, len(typedInput.Properties.CustomProperties)) + for key, value := range typedInput.Properties.CustomProperties { + service.CustomProperties[key] = value + } + } + } + + // Set property "DeveloperPortalUrl": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.DeveloperPortalUrl != nil { + developerPortalUrl := *typedInput.Properties.DeveloperPortalUrl + service.DeveloperPortalUrl = &developerPortalUrl + } + } + + // Set property "DisableGateway": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.DisableGateway != nil { + disableGateway := *typedInput.Properties.DisableGateway + service.DisableGateway = &disableGateway + } + } + + // Set property "EnableClientCertificate": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.EnableClientCertificate != nil { + enableClientCertificate := *typedInput.Properties.EnableClientCertificate + service.EnableClientCertificate = &enableClientCertificate + } + } + + // Set property "Etag": + if typedInput.Etag != nil { + etag := *typedInput.Etag + service.Etag = &etag + } + + // Set property "GatewayRegionalUrl": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.GatewayRegionalUrl != nil { + gatewayRegionalUrl := *typedInput.Properties.GatewayRegionalUrl + service.GatewayRegionalUrl = &gatewayRegionalUrl + } + } + + // Set property "GatewayUrl": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.GatewayUrl != nil { + gatewayUrl := *typedInput.Properties.GatewayUrl + service.GatewayUrl = &gatewayUrl + } + } + + // Set property "HostnameConfigurations": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.HostnameConfigurations { + var item1 HostnameConfiguration_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + service.HostnameConfigurations = append(service.HostnameConfigurations, item1) + } + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + service.Id = &id + } + + // Set property "Identity": + if typedInput.Identity != nil { + var identity1 ApiManagementServiceIdentity_STATUS + err := identity1.PopulateFromARM(owner, *typedInput.Identity) + if err != nil { + return err + } + identity := identity1 + service.Identity = &identity + } + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + service.Location = &location + } + + // Set property "ManagementApiUrl": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ManagementApiUrl != nil { + managementApiUrl := *typedInput.Properties.ManagementApiUrl + service.ManagementApiUrl = &managementApiUrl + } + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + service.Name = &name + } + + // Set property "NatGatewayState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NatGatewayState != nil { + natGatewayState := *typedInput.Properties.NatGatewayState + service.NatGatewayState = &natGatewayState + } + } + + // Set property "NotificationSenderEmail": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.NotificationSenderEmail != nil { + notificationSenderEmail := *typedInput.Properties.NotificationSenderEmail + service.NotificationSenderEmail = ¬ificationSenderEmail + } + } + + // Set property "OutboundPublicIPAddresses": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.OutboundPublicIPAddresses { + service.OutboundPublicIPAddresses = append(service.OutboundPublicIPAddresses, item) + } + } + + // Set property "PlatformVersion": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PlatformVersion != nil { + platformVersion := *typedInput.Properties.PlatformVersion + service.PlatformVersion = &platformVersion + } + } + + // Set property "PortalUrl": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PortalUrl != nil { + portalUrl := *typedInput.Properties.PortalUrl + service.PortalUrl = &portalUrl + } + } + + // Set property "PrivateEndpointConnections": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.PrivateEndpointConnections { + var item1 RemotePrivateEndpointConnectionWrapper_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + service.PrivateEndpointConnections = append(service.PrivateEndpointConnections, item1) + } + } + + // Set property "PrivateIPAddresses": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.PrivateIPAddresses { + service.PrivateIPAddresses = append(service.PrivateIPAddresses, item) + } + } + + // Set property "ProvisioningState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ProvisioningState != nil { + provisioningState := *typedInput.Properties.ProvisioningState + service.ProvisioningState = &provisioningState + } + } + + // Set property "PublicIPAddresses": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.PublicIPAddresses { + service.PublicIPAddresses = append(service.PublicIPAddresses, item) + } + } + + // Set property "PublicIpAddressId": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PublicIpAddressId != nil { + publicIpAddressId := *typedInput.Properties.PublicIpAddressId + service.PublicIpAddressId = &publicIpAddressId + } + } + + // Set property "PublicNetworkAccess": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PublicNetworkAccess != nil { + publicNetworkAccess := *typedInput.Properties.PublicNetworkAccess + service.PublicNetworkAccess = &publicNetworkAccess + } + } + + // Set property "PublisherEmail": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PublisherEmail != nil { + publisherEmail := *typedInput.Properties.PublisherEmail + service.PublisherEmail = &publisherEmail + } + } + + // Set property "PublisherName": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PublisherName != nil { + publisherName := *typedInput.Properties.PublisherName + service.PublisherName = &publisherName + } + } + + // Set property "Restore": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Restore != nil { + restore := *typedInput.Properties.Restore + service.Restore = &restore + } + } + + // Set property "ScmUrl": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ScmUrl != nil { + scmUrl := *typedInput.Properties.ScmUrl + service.ScmUrl = &scmUrl + } + } + + // Set property "Sku": + if typedInput.Sku != nil { + var sku1 ApiManagementServiceSkuProperties_STATUS + err := sku1.PopulateFromARM(owner, *typedInput.Sku) + if err != nil { + return err + } + sku := sku1 + service.Sku = &sku + } + + // Set property "SystemData": + if typedInput.SystemData != nil { + var systemData1 SystemData_STATUS + err := systemData1.PopulateFromARM(owner, *typedInput.SystemData) + if err != nil { + return err + } + systemData := systemData1 + service.SystemData = &systemData + } + + // Set property "Tags": + if typedInput.Tags != nil { + service.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + service.Tags[key] = value + } + } + + // Set property "TargetProvisioningState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.TargetProvisioningState != nil { + targetProvisioningState := *typedInput.Properties.TargetProvisioningState + service.TargetProvisioningState = &targetProvisioningState + } + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + service.Type = &typeVar + } + + // Set property "VirtualNetworkConfiguration": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration1 VirtualNetworkConfiguration_STATUS + err := virtualNetworkConfiguration1.PopulateFromARM(owner, *typedInput.Properties.VirtualNetworkConfiguration) + if err != nil { + return err + } + virtualNetworkConfiguration := virtualNetworkConfiguration1 + service.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } + } + + // Set property "VirtualNetworkType": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.VirtualNetworkType != nil { + virtualNetworkType := *typedInput.Properties.VirtualNetworkType + service.VirtualNetworkType = &virtualNetworkType + } + } + + // Set property "Zones": + for _, item := range typedInput.Zones { + service.Zones = append(service.Zones, item) + } + + // No error + return nil +} + +// AssignProperties_From_Service_STATUS populates our Service_STATUS from the provided source Service_STATUS +func (service *Service_STATUS) AssignProperties_From_Service_STATUS(source *v20220801s.Service_STATUS) error { + + // AdditionalLocations + if source.AdditionalLocations != nil { + additionalLocationList := make([]AdditionalLocation_STATUS, len(source.AdditionalLocations)) + for additionalLocationIndex, additionalLocationItem := range source.AdditionalLocations { + // Shadow the loop variable to avoid aliasing + additionalLocationItem := additionalLocationItem + var additionalLocation AdditionalLocation_STATUS + err := additionalLocation.AssignProperties_From_AdditionalLocation_STATUS(&additionalLocationItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_AdditionalLocation_STATUS() to populate field AdditionalLocations") + } + additionalLocationList[additionalLocationIndex] = additionalLocation + } + service.AdditionalLocations = additionalLocationList + } else { + service.AdditionalLocations = nil + } + + // ApiVersionConstraint + if source.ApiVersionConstraint != nil { + var apiVersionConstraint ApiVersionConstraint_STATUS + err := apiVersionConstraint.AssignProperties_From_ApiVersionConstraint_STATUS(source.ApiVersionConstraint) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ApiVersionConstraint_STATUS() to populate field ApiVersionConstraint") + } + service.ApiVersionConstraint = &apiVersionConstraint + } else { + service.ApiVersionConstraint = nil + } + + // Certificates + if source.Certificates != nil { + certificateList := make([]CertificateConfiguration_STATUS, len(source.Certificates)) + for certificateIndex, certificateItem := range source.Certificates { + // Shadow the loop variable to avoid aliasing + certificateItem := certificateItem + var certificate CertificateConfiguration_STATUS + err := certificate.AssignProperties_From_CertificateConfiguration_STATUS(&certificateItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CertificateConfiguration_STATUS() to populate field Certificates") + } + certificateList[certificateIndex] = certificate + } + service.Certificates = certificateList + } else { + service.Certificates = nil + } + + // Conditions + service.Conditions = genruntime.CloneSliceOfCondition(source.Conditions) + + // CreatedAtUtc + service.CreatedAtUtc = genruntime.ClonePointerToString(source.CreatedAtUtc) + + // CustomProperties + service.CustomProperties = genruntime.CloneMapOfStringToString(source.CustomProperties) + + // DeveloperPortalUrl + service.DeveloperPortalUrl = genruntime.ClonePointerToString(source.DeveloperPortalUrl) + + // DisableGateway + if source.DisableGateway != nil { + disableGateway := *source.DisableGateway + service.DisableGateway = &disableGateway + } else { + service.DisableGateway = nil + } + + // EnableClientCertificate + if source.EnableClientCertificate != nil { + enableClientCertificate := *source.EnableClientCertificate + service.EnableClientCertificate = &enableClientCertificate + } else { + service.EnableClientCertificate = nil + } + + // Etag + service.Etag = genruntime.ClonePointerToString(source.Etag) + + // GatewayRegionalUrl + service.GatewayRegionalUrl = genruntime.ClonePointerToString(source.GatewayRegionalUrl) + + // GatewayUrl + service.GatewayUrl = genruntime.ClonePointerToString(source.GatewayUrl) + + // HostnameConfigurations + if source.HostnameConfigurations != nil { + hostnameConfigurationList := make([]HostnameConfiguration_STATUS, len(source.HostnameConfigurations)) + for hostnameConfigurationIndex, hostnameConfigurationItem := range source.HostnameConfigurations { + // Shadow the loop variable to avoid aliasing + hostnameConfigurationItem := hostnameConfigurationItem + var hostnameConfiguration HostnameConfiguration_STATUS + err := hostnameConfiguration.AssignProperties_From_HostnameConfiguration_STATUS(&hostnameConfigurationItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_HostnameConfiguration_STATUS() to populate field HostnameConfigurations") + } + hostnameConfigurationList[hostnameConfigurationIndex] = hostnameConfiguration + } + service.HostnameConfigurations = hostnameConfigurationList + } else { + service.HostnameConfigurations = nil + } + + // Id + service.Id = genruntime.ClonePointerToString(source.Id) + + // Identity + if source.Identity != nil { + var identity ApiManagementServiceIdentity_STATUS + err := identity.AssignProperties_From_ApiManagementServiceIdentity_STATUS(source.Identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ApiManagementServiceIdentity_STATUS() to populate field Identity") + } + service.Identity = &identity + } else { + service.Identity = nil + } + + // Location + service.Location = genruntime.ClonePointerToString(source.Location) + + // ManagementApiUrl + service.ManagementApiUrl = genruntime.ClonePointerToString(source.ManagementApiUrl) + + // Name + service.Name = genruntime.ClonePointerToString(source.Name) + + // NatGatewayState + if source.NatGatewayState != nil { + natGatewayState := ApiManagementServiceProperties_NatGatewayState_STATUS(*source.NatGatewayState) + service.NatGatewayState = &natGatewayState + } else { + service.NatGatewayState = nil + } + + // NotificationSenderEmail + service.NotificationSenderEmail = genruntime.ClonePointerToString(source.NotificationSenderEmail) + + // OutboundPublicIPAddresses + service.OutboundPublicIPAddresses = genruntime.CloneSliceOfString(source.OutboundPublicIPAddresses) + + // PlatformVersion + if source.PlatformVersion != nil { + platformVersion := ApiManagementServiceProperties_PlatformVersion_STATUS(*source.PlatformVersion) + service.PlatformVersion = &platformVersion + } else { + service.PlatformVersion = nil + } + + // PortalUrl + service.PortalUrl = genruntime.ClonePointerToString(source.PortalUrl) + + // PrivateEndpointConnections + if source.PrivateEndpointConnections != nil { + privateEndpointConnectionList := make([]RemotePrivateEndpointConnectionWrapper_STATUS, len(source.PrivateEndpointConnections)) + for privateEndpointConnectionIndex, privateEndpointConnectionItem := range source.PrivateEndpointConnections { + // Shadow the loop variable to avoid aliasing + privateEndpointConnectionItem := privateEndpointConnectionItem + var privateEndpointConnection RemotePrivateEndpointConnectionWrapper_STATUS + err := privateEndpointConnection.AssignProperties_From_RemotePrivateEndpointConnectionWrapper_STATUS(&privateEndpointConnectionItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_RemotePrivateEndpointConnectionWrapper_STATUS() to populate field PrivateEndpointConnections") + } + privateEndpointConnectionList[privateEndpointConnectionIndex] = privateEndpointConnection + } + service.PrivateEndpointConnections = privateEndpointConnectionList + } else { + service.PrivateEndpointConnections = nil + } + + // PrivateIPAddresses + service.PrivateIPAddresses = genruntime.CloneSliceOfString(source.PrivateIPAddresses) + + // ProvisioningState + service.ProvisioningState = genruntime.ClonePointerToString(source.ProvisioningState) + + // PublicIPAddresses + service.PublicIPAddresses = genruntime.CloneSliceOfString(source.PublicIPAddresses) + + // PublicIpAddressId + service.PublicIpAddressId = genruntime.ClonePointerToString(source.PublicIpAddressId) + + // PublicNetworkAccess + if source.PublicNetworkAccess != nil { + publicNetworkAccess := ApiManagementServiceProperties_PublicNetworkAccess_STATUS(*source.PublicNetworkAccess) + service.PublicNetworkAccess = &publicNetworkAccess + } else { + service.PublicNetworkAccess = nil + } + + // PublisherEmail + service.PublisherEmail = genruntime.ClonePointerToString(source.PublisherEmail) + + // PublisherName + service.PublisherName = genruntime.ClonePointerToString(source.PublisherName) + + // Restore + if source.Restore != nil { + restore := *source.Restore + service.Restore = &restore + } else { + service.Restore = nil + } + + // ScmUrl + service.ScmUrl = genruntime.ClonePointerToString(source.ScmUrl) + + // Sku + if source.Sku != nil { + var sku ApiManagementServiceSkuProperties_STATUS + err := sku.AssignProperties_From_ApiManagementServiceSkuProperties_STATUS(source.Sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ApiManagementServiceSkuProperties_STATUS() to populate field Sku") + } + service.Sku = &sku + } else { + service.Sku = nil + } + + // SystemData + if source.SystemData != nil { + var systemDatum SystemData_STATUS + err := systemDatum.AssignProperties_From_SystemData_STATUS(source.SystemData) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_SystemData_STATUS() to populate field SystemData") + } + service.SystemData = &systemDatum + } else { + service.SystemData = nil + } + + // Tags + service.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // TargetProvisioningState + service.TargetProvisioningState = genruntime.ClonePointerToString(source.TargetProvisioningState) + + // Type + service.Type = genruntime.ClonePointerToString(source.Type) + + // VirtualNetworkConfiguration + if source.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration VirtualNetworkConfiguration_STATUS + err := virtualNetworkConfiguration.AssignProperties_From_VirtualNetworkConfiguration_STATUS(source.VirtualNetworkConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_VirtualNetworkConfiguration_STATUS() to populate field VirtualNetworkConfiguration") + } + service.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } else { + service.VirtualNetworkConfiguration = nil + } + + // VirtualNetworkType + if source.VirtualNetworkType != nil { + virtualNetworkType := ApiManagementServiceProperties_VirtualNetworkType_STATUS(*source.VirtualNetworkType) + service.VirtualNetworkType = &virtualNetworkType + } else { + service.VirtualNetworkType = nil + } + + // Zones + service.Zones = genruntime.CloneSliceOfString(source.Zones) + + // No error + return nil +} + +// AssignProperties_To_Service_STATUS populates the provided destination Service_STATUS from our Service_STATUS +func (service *Service_STATUS) AssignProperties_To_Service_STATUS(destination *v20220801s.Service_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AdditionalLocations + if service.AdditionalLocations != nil { + additionalLocationList := make([]v20220801s.AdditionalLocation_STATUS, len(service.AdditionalLocations)) + for additionalLocationIndex, additionalLocationItem := range service.AdditionalLocations { + // Shadow the loop variable to avoid aliasing + additionalLocationItem := additionalLocationItem + var additionalLocation v20220801s.AdditionalLocation_STATUS + err := additionalLocationItem.AssignProperties_To_AdditionalLocation_STATUS(&additionalLocation) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_AdditionalLocation_STATUS() to populate field AdditionalLocations") + } + additionalLocationList[additionalLocationIndex] = additionalLocation + } + destination.AdditionalLocations = additionalLocationList + } else { + destination.AdditionalLocations = nil + } + + // ApiVersionConstraint + if service.ApiVersionConstraint != nil { + var apiVersionConstraint v20220801s.ApiVersionConstraint_STATUS + err := service.ApiVersionConstraint.AssignProperties_To_ApiVersionConstraint_STATUS(&apiVersionConstraint) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ApiVersionConstraint_STATUS() to populate field ApiVersionConstraint") + } + destination.ApiVersionConstraint = &apiVersionConstraint + } else { + destination.ApiVersionConstraint = nil + } + + // Certificates + if service.Certificates != nil { + certificateList := make([]v20220801s.CertificateConfiguration_STATUS, len(service.Certificates)) + for certificateIndex, certificateItem := range service.Certificates { + // Shadow the loop variable to avoid aliasing + certificateItem := certificateItem + var certificate v20220801s.CertificateConfiguration_STATUS + err := certificateItem.AssignProperties_To_CertificateConfiguration_STATUS(&certificate) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CertificateConfiguration_STATUS() to populate field Certificates") + } + certificateList[certificateIndex] = certificate + } + destination.Certificates = certificateList + } else { + destination.Certificates = nil + } + + // Conditions + destination.Conditions = genruntime.CloneSliceOfCondition(service.Conditions) + + // CreatedAtUtc + destination.CreatedAtUtc = genruntime.ClonePointerToString(service.CreatedAtUtc) + + // CustomProperties + destination.CustomProperties = genruntime.CloneMapOfStringToString(service.CustomProperties) + + // DeveloperPortalUrl + destination.DeveloperPortalUrl = genruntime.ClonePointerToString(service.DeveloperPortalUrl) + + // DisableGateway + if service.DisableGateway != nil { + disableGateway := *service.DisableGateway + destination.DisableGateway = &disableGateway + } else { + destination.DisableGateway = nil + } + + // EnableClientCertificate + if service.EnableClientCertificate != nil { + enableClientCertificate := *service.EnableClientCertificate + destination.EnableClientCertificate = &enableClientCertificate + } else { + destination.EnableClientCertificate = nil + } + + // Etag + destination.Etag = genruntime.ClonePointerToString(service.Etag) + + // GatewayRegionalUrl + destination.GatewayRegionalUrl = genruntime.ClonePointerToString(service.GatewayRegionalUrl) + + // GatewayUrl + destination.GatewayUrl = genruntime.ClonePointerToString(service.GatewayUrl) + + // HostnameConfigurations + if service.HostnameConfigurations != nil { + hostnameConfigurationList := make([]v20220801s.HostnameConfiguration_STATUS, len(service.HostnameConfigurations)) + for hostnameConfigurationIndex, hostnameConfigurationItem := range service.HostnameConfigurations { + // Shadow the loop variable to avoid aliasing + hostnameConfigurationItem := hostnameConfigurationItem + var hostnameConfiguration v20220801s.HostnameConfiguration_STATUS + err := hostnameConfigurationItem.AssignProperties_To_HostnameConfiguration_STATUS(&hostnameConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_HostnameConfiguration_STATUS() to populate field HostnameConfigurations") + } + hostnameConfigurationList[hostnameConfigurationIndex] = hostnameConfiguration + } + destination.HostnameConfigurations = hostnameConfigurationList + } else { + destination.HostnameConfigurations = nil + } + + // Id + destination.Id = genruntime.ClonePointerToString(service.Id) + + // Identity + if service.Identity != nil { + var identity v20220801s.ApiManagementServiceIdentity_STATUS + err := service.Identity.AssignProperties_To_ApiManagementServiceIdentity_STATUS(&identity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ApiManagementServiceIdentity_STATUS() to populate field Identity") + } + destination.Identity = &identity + } else { + destination.Identity = nil + } + + // Location + destination.Location = genruntime.ClonePointerToString(service.Location) + + // ManagementApiUrl + destination.ManagementApiUrl = genruntime.ClonePointerToString(service.ManagementApiUrl) + + // Name + destination.Name = genruntime.ClonePointerToString(service.Name) + + // NatGatewayState + if service.NatGatewayState != nil { + natGatewayState := string(*service.NatGatewayState) + destination.NatGatewayState = &natGatewayState + } else { + destination.NatGatewayState = nil + } + + // NotificationSenderEmail + destination.NotificationSenderEmail = genruntime.ClonePointerToString(service.NotificationSenderEmail) + + // OutboundPublicIPAddresses + destination.OutboundPublicIPAddresses = genruntime.CloneSliceOfString(service.OutboundPublicIPAddresses) + + // PlatformVersion + if service.PlatformVersion != nil { + platformVersion := string(*service.PlatformVersion) + destination.PlatformVersion = &platformVersion + } else { + destination.PlatformVersion = nil + } + + // PortalUrl + destination.PortalUrl = genruntime.ClonePointerToString(service.PortalUrl) + + // PrivateEndpointConnections + if service.PrivateEndpointConnections != nil { + privateEndpointConnectionList := make([]v20220801s.RemotePrivateEndpointConnectionWrapper_STATUS, len(service.PrivateEndpointConnections)) + for privateEndpointConnectionIndex, privateEndpointConnectionItem := range service.PrivateEndpointConnections { + // Shadow the loop variable to avoid aliasing + privateEndpointConnectionItem := privateEndpointConnectionItem + var privateEndpointConnection v20220801s.RemotePrivateEndpointConnectionWrapper_STATUS + err := privateEndpointConnectionItem.AssignProperties_To_RemotePrivateEndpointConnectionWrapper_STATUS(&privateEndpointConnection) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_RemotePrivateEndpointConnectionWrapper_STATUS() to populate field PrivateEndpointConnections") + } + privateEndpointConnectionList[privateEndpointConnectionIndex] = privateEndpointConnection + } + destination.PrivateEndpointConnections = privateEndpointConnectionList + } else { + destination.PrivateEndpointConnections = nil + } + + // PrivateIPAddresses + destination.PrivateIPAddresses = genruntime.CloneSliceOfString(service.PrivateIPAddresses) + + // ProvisioningState + destination.ProvisioningState = genruntime.ClonePointerToString(service.ProvisioningState) + + // PublicIPAddresses + destination.PublicIPAddresses = genruntime.CloneSliceOfString(service.PublicIPAddresses) + + // PublicIpAddressId + destination.PublicIpAddressId = genruntime.ClonePointerToString(service.PublicIpAddressId) + + // PublicNetworkAccess + if service.PublicNetworkAccess != nil { + publicNetworkAccess := string(*service.PublicNetworkAccess) + destination.PublicNetworkAccess = &publicNetworkAccess + } else { + destination.PublicNetworkAccess = nil + } + + // PublisherEmail + destination.PublisherEmail = genruntime.ClonePointerToString(service.PublisherEmail) + + // PublisherName + destination.PublisherName = genruntime.ClonePointerToString(service.PublisherName) + + // Restore + if service.Restore != nil { + restore := *service.Restore + destination.Restore = &restore + } else { + destination.Restore = nil + } + + // ScmUrl + destination.ScmUrl = genruntime.ClonePointerToString(service.ScmUrl) + + // Sku + if service.Sku != nil { + var sku v20220801s.ApiManagementServiceSkuProperties_STATUS + err := service.Sku.AssignProperties_To_ApiManagementServiceSkuProperties_STATUS(&sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ApiManagementServiceSkuProperties_STATUS() to populate field Sku") + } + destination.Sku = &sku + } else { + destination.Sku = nil + } + + // SystemData + if service.SystemData != nil { + var systemDatum v20220801s.SystemData_STATUS + err := service.SystemData.AssignProperties_To_SystemData_STATUS(&systemDatum) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_SystemData_STATUS() to populate field SystemData") + } + destination.SystemData = &systemDatum + } else { + destination.SystemData = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(service.Tags) + + // TargetProvisioningState + destination.TargetProvisioningState = genruntime.ClonePointerToString(service.TargetProvisioningState) + + // Type + destination.Type = genruntime.ClonePointerToString(service.Type) + + // VirtualNetworkConfiguration + if service.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration v20220801s.VirtualNetworkConfiguration_STATUS + err := service.VirtualNetworkConfiguration.AssignProperties_To_VirtualNetworkConfiguration_STATUS(&virtualNetworkConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_VirtualNetworkConfiguration_STATUS() to populate field VirtualNetworkConfiguration") + } + destination.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } else { + destination.VirtualNetworkConfiguration = nil + } + + // VirtualNetworkType + if service.VirtualNetworkType != nil { + virtualNetworkType := string(*service.VirtualNetworkType) + destination.VirtualNetworkType = &virtualNetworkType + } else { + destination.VirtualNetworkType = nil + } + + // Zones + destination.Zones = genruntime.CloneSliceOfString(service.Zones) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Description of an additional API Management resource location. +type AdditionalLocation struct { + // DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to + // disable the gateway in this additional location. + DisableGateway *bool `json:"disableGateway,omitempty"` + + // +kubebuilder:validation:Required + // Location: The location name of the additional region among Azure Data center regions. + Location *string `json:"location,omitempty"` + + // NatGatewayState: Property can be used to enable NAT Gateway for this API Management service. + NatGatewayState *AdditionalLocation_NatGatewayState `json:"natGatewayState,omitempty"` + + // PublicIpAddressReference: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed + // service in the location. Supported only for Premium SKU being deployed in Virtual Network. + PublicIpAddressReference *genruntime.ResourceReference `armReference:"PublicIpAddressId" json:"publicIpAddressReference,omitempty"` + + // +kubebuilder:validation:Required + // Sku: SKU properties of the API Management service. + Sku *ApiManagementServiceSkuProperties `json:"sku,omitempty"` + + // VirtualNetworkConfiguration: Virtual network configuration for the location. + VirtualNetworkConfiguration *VirtualNetworkConfiguration `json:"virtualNetworkConfiguration,omitempty"` + + // Zones: A list of availability zones denoting where the resource needs to come from. + Zones []string `json:"zones,omitempty"` +} + +var _ genruntime.ARMTransformer = &AdditionalLocation{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (location *AdditionalLocation) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if location == nil { + return nil, nil + } + result := &AdditionalLocation_ARM{} + + // Set property "DisableGateway": + if location.DisableGateway != nil { + disableGateway := *location.DisableGateway + result.DisableGateway = &disableGateway + } + + // Set property "Location": + if location.Location != nil { + location1 := *location.Location + result.Location = &location1 + } + + // Set property "NatGatewayState": + if location.NatGatewayState != nil { + natGatewayState := *location.NatGatewayState + result.NatGatewayState = &natGatewayState + } + + // Set property "PublicIpAddressId": + if location.PublicIpAddressReference != nil { + publicIpAddressReferenceARMID, err := resolved.ResolvedReferences.Lookup(*location.PublicIpAddressReference) + if err != nil { + return nil, err + } + publicIpAddressReference := publicIpAddressReferenceARMID + result.PublicIpAddressId = &publicIpAddressReference + } + + // Set property "Sku": + if location.Sku != nil { + sku_ARM, err := (*location.Sku).ConvertToARM(resolved) + if err != nil { + return nil, err + } + sku := *sku_ARM.(*ApiManagementServiceSkuProperties_ARM) + result.Sku = &sku + } + + // Set property "VirtualNetworkConfiguration": + if location.VirtualNetworkConfiguration != nil { + virtualNetworkConfiguration_ARM, err := (*location.VirtualNetworkConfiguration).ConvertToARM(resolved) + if err != nil { + return nil, err + } + virtualNetworkConfiguration := *virtualNetworkConfiguration_ARM.(*VirtualNetworkConfiguration_ARM) + result.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } + + // Set property "Zones": + for _, item := range location.Zones { + result.Zones = append(result.Zones, item) + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (location *AdditionalLocation) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &AdditionalLocation_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (location *AdditionalLocation) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(AdditionalLocation_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected AdditionalLocation_ARM, got %T", armInput) + } + + // Set property "DisableGateway": + if typedInput.DisableGateway != nil { + disableGateway := *typedInput.DisableGateway + location.DisableGateway = &disableGateway + } + + // Set property "Location": + if typedInput.Location != nil { + location1 := *typedInput.Location + location.Location = &location1 + } + + // Set property "NatGatewayState": + if typedInput.NatGatewayState != nil { + natGatewayState := *typedInput.NatGatewayState + location.NatGatewayState = &natGatewayState + } + + // no assignment for property "PublicIpAddressReference" + + // Set property "Sku": + if typedInput.Sku != nil { + var sku1 ApiManagementServiceSkuProperties + err := sku1.PopulateFromARM(owner, *typedInput.Sku) + if err != nil { + return err + } + sku := sku1 + location.Sku = &sku + } + + // Set property "VirtualNetworkConfiguration": + if typedInput.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration1 VirtualNetworkConfiguration + err := virtualNetworkConfiguration1.PopulateFromARM(owner, *typedInput.VirtualNetworkConfiguration) + if err != nil { + return err + } + virtualNetworkConfiguration := virtualNetworkConfiguration1 + location.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } + + // Set property "Zones": + for _, item := range typedInput.Zones { + location.Zones = append(location.Zones, item) + } + + // No error + return nil +} + +// AssignProperties_From_AdditionalLocation populates our AdditionalLocation from the provided source AdditionalLocation +func (location *AdditionalLocation) AssignProperties_From_AdditionalLocation(source *v20220801s.AdditionalLocation) error { + + // DisableGateway + if source.DisableGateway != nil { + disableGateway := *source.DisableGateway + location.DisableGateway = &disableGateway + } else { + location.DisableGateway = nil + } + + // Location + location.Location = genruntime.ClonePointerToString(source.Location) + + // NatGatewayState + if source.NatGatewayState != nil { + natGatewayState := AdditionalLocation_NatGatewayState(*source.NatGatewayState) + location.NatGatewayState = &natGatewayState + } else { + location.NatGatewayState = nil + } + + // PublicIpAddressReference + if source.PublicIpAddressReference != nil { + publicIpAddressReference := source.PublicIpAddressReference.Copy() + location.PublicIpAddressReference = &publicIpAddressReference + } else { + location.PublicIpAddressReference = nil + } + + // Sku + if source.Sku != nil { + var sku ApiManagementServiceSkuProperties + err := sku.AssignProperties_From_ApiManagementServiceSkuProperties(source.Sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ApiManagementServiceSkuProperties() to populate field Sku") + } + location.Sku = &sku + } else { + location.Sku = nil + } + + // VirtualNetworkConfiguration + if source.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration VirtualNetworkConfiguration + err := virtualNetworkConfiguration.AssignProperties_From_VirtualNetworkConfiguration(source.VirtualNetworkConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_VirtualNetworkConfiguration() to populate field VirtualNetworkConfiguration") + } + location.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } else { + location.VirtualNetworkConfiguration = nil + } + + // Zones + location.Zones = genruntime.CloneSliceOfString(source.Zones) + + // No error + return nil +} + +// AssignProperties_To_AdditionalLocation populates the provided destination AdditionalLocation from our AdditionalLocation +func (location *AdditionalLocation) AssignProperties_To_AdditionalLocation(destination *v20220801s.AdditionalLocation) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // DisableGateway + if location.DisableGateway != nil { + disableGateway := *location.DisableGateway + destination.DisableGateway = &disableGateway + } else { + destination.DisableGateway = nil + } + + // Location + destination.Location = genruntime.ClonePointerToString(location.Location) + + // NatGatewayState + if location.NatGatewayState != nil { + natGatewayState := string(*location.NatGatewayState) + destination.NatGatewayState = &natGatewayState + } else { + destination.NatGatewayState = nil + } + + // PublicIpAddressReference + if location.PublicIpAddressReference != nil { + publicIpAddressReference := location.PublicIpAddressReference.Copy() + destination.PublicIpAddressReference = &publicIpAddressReference + } else { + destination.PublicIpAddressReference = nil + } + + // Sku + if location.Sku != nil { + var sku v20220801s.ApiManagementServiceSkuProperties + err := location.Sku.AssignProperties_To_ApiManagementServiceSkuProperties(&sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ApiManagementServiceSkuProperties() to populate field Sku") + } + destination.Sku = &sku + } else { + destination.Sku = nil + } + + // VirtualNetworkConfiguration + if location.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration v20220801s.VirtualNetworkConfiguration + err := location.VirtualNetworkConfiguration.AssignProperties_To_VirtualNetworkConfiguration(&virtualNetworkConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_VirtualNetworkConfiguration() to populate field VirtualNetworkConfiguration") + } + destination.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } else { + destination.VirtualNetworkConfiguration = nil + } + + // Zones + destination.Zones = genruntime.CloneSliceOfString(location.Zones) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_AdditionalLocation_STATUS populates our AdditionalLocation from the provided source AdditionalLocation_STATUS +func (location *AdditionalLocation) Initialize_From_AdditionalLocation_STATUS(source *AdditionalLocation_STATUS) error { + + // DisableGateway + if source.DisableGateway != nil { + disableGateway := *source.DisableGateway + location.DisableGateway = &disableGateway + } else { + location.DisableGateway = nil + } + + // Location + location.Location = genruntime.ClonePointerToString(source.Location) + + // NatGatewayState + if source.NatGatewayState != nil { + natGatewayState := AdditionalLocation_NatGatewayState(*source.NatGatewayState) + location.NatGatewayState = &natGatewayState + } else { + location.NatGatewayState = nil + } + + // PublicIpAddressReference + if source.PublicIpAddressId != nil { + publicIpAddressReference := genruntime.CreateResourceReferenceFromARMID(*source.PublicIpAddressId) + location.PublicIpAddressReference = &publicIpAddressReference + } else { + location.PublicIpAddressReference = nil + } + + // Sku + if source.Sku != nil { + var sku ApiManagementServiceSkuProperties + err := sku.Initialize_From_ApiManagementServiceSkuProperties_STATUS(source.Sku) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_ApiManagementServiceSkuProperties_STATUS() to populate field Sku") + } + location.Sku = &sku + } else { + location.Sku = nil + } + + // VirtualNetworkConfiguration + if source.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration VirtualNetworkConfiguration + err := virtualNetworkConfiguration.Initialize_From_VirtualNetworkConfiguration_STATUS(source.VirtualNetworkConfiguration) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_VirtualNetworkConfiguration_STATUS() to populate field VirtualNetworkConfiguration") + } + location.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } else { + location.VirtualNetworkConfiguration = nil + } + + // Zones + location.Zones = genruntime.CloneSliceOfString(source.Zones) + + // No error + return nil +} + +// Description of an additional API Management resource location. +type AdditionalLocation_STATUS struct { + // DisableGateway: Property only valid for an Api Management service deployed in multiple locations. This can be used to + // disable the gateway in this additional location. + DisableGateway *bool `json:"disableGateway,omitempty"` + + // GatewayRegionalUrl: Gateway URL of the API Management service in the Region. + GatewayRegionalUrl *string `json:"gatewayRegionalUrl,omitempty"` + + // Location: The location name of the additional region among Azure Data center regions. + Location *string `json:"location,omitempty"` + + // NatGatewayState: Property can be used to enable NAT Gateway for this API Management service. + NatGatewayState *AdditionalLocation_NatGatewayState_STATUS `json:"natGatewayState,omitempty"` + + // OutboundPublicIPAddresses: Outbound public IPV4 address prefixes associated with NAT Gateway deployed service. Available + // only for Premium SKU on stv2 platform. + OutboundPublicIPAddresses []string `json:"outboundPublicIPAddresses,omitempty"` + + // PlatformVersion: Compute Platform Version running the service. + PlatformVersion *AdditionalLocation_PlatformVersion_STATUS `json:"platformVersion,omitempty"` + + // PrivateIPAddresses: Private Static Load Balanced IP addresses of the API Management service which is deployed in an + // Internal Virtual Network in a particular additional location. Available only for Basic, Standard, Premium and Isolated + // SKU. + PrivateIPAddresses []string `json:"privateIPAddresses,omitempty"` + + // PublicIPAddresses: Public Static Load Balanced IP addresses of the API Management service in the additional location. + // Available only for Basic, Standard, Premium and Isolated SKU. + PublicIPAddresses []string `json:"publicIPAddresses,omitempty"` + + // PublicIpAddressId: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed service in + // the location. Supported only for Premium SKU being deployed in Virtual Network. + PublicIpAddressId *string `json:"publicIpAddressId,omitempty"` + + // Sku: SKU properties of the API Management service. + Sku *ApiManagementServiceSkuProperties_STATUS `json:"sku,omitempty"` + + // VirtualNetworkConfiguration: Virtual network configuration for the location. + VirtualNetworkConfiguration *VirtualNetworkConfiguration_STATUS `json:"virtualNetworkConfiguration,omitempty"` + + // Zones: A list of availability zones denoting where the resource needs to come from. + Zones []string `json:"zones,omitempty"` +} + +var _ genruntime.FromARMConverter = &AdditionalLocation_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (location *AdditionalLocation_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &AdditionalLocation_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (location *AdditionalLocation_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(AdditionalLocation_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected AdditionalLocation_STATUS_ARM, got %T", armInput) + } + + // Set property "DisableGateway": + if typedInput.DisableGateway != nil { + disableGateway := *typedInput.DisableGateway + location.DisableGateway = &disableGateway + } + + // Set property "GatewayRegionalUrl": + if typedInput.GatewayRegionalUrl != nil { + gatewayRegionalUrl := *typedInput.GatewayRegionalUrl + location.GatewayRegionalUrl = &gatewayRegionalUrl + } + + // Set property "Location": + if typedInput.Location != nil { + location1 := *typedInput.Location + location.Location = &location1 + } + + // Set property "NatGatewayState": + if typedInput.NatGatewayState != nil { + natGatewayState := *typedInput.NatGatewayState + location.NatGatewayState = &natGatewayState + } + + // Set property "OutboundPublicIPAddresses": + for _, item := range typedInput.OutboundPublicIPAddresses { + location.OutboundPublicIPAddresses = append(location.OutboundPublicIPAddresses, item) + } + + // Set property "PlatformVersion": + if typedInput.PlatformVersion != nil { + platformVersion := *typedInput.PlatformVersion + location.PlatformVersion = &platformVersion + } + + // Set property "PrivateIPAddresses": + for _, item := range typedInput.PrivateIPAddresses { + location.PrivateIPAddresses = append(location.PrivateIPAddresses, item) + } + + // Set property "PublicIPAddresses": + for _, item := range typedInput.PublicIPAddresses { + location.PublicIPAddresses = append(location.PublicIPAddresses, item) + } + + // Set property "PublicIpAddressId": + if typedInput.PublicIpAddressId != nil { + publicIpAddressId := *typedInput.PublicIpAddressId + location.PublicIpAddressId = &publicIpAddressId + } + + // Set property "Sku": + if typedInput.Sku != nil { + var sku1 ApiManagementServiceSkuProperties_STATUS + err := sku1.PopulateFromARM(owner, *typedInput.Sku) + if err != nil { + return err + } + sku := sku1 + location.Sku = &sku + } + + // Set property "VirtualNetworkConfiguration": + if typedInput.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration1 VirtualNetworkConfiguration_STATUS + err := virtualNetworkConfiguration1.PopulateFromARM(owner, *typedInput.VirtualNetworkConfiguration) + if err != nil { + return err + } + virtualNetworkConfiguration := virtualNetworkConfiguration1 + location.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } + + // Set property "Zones": + for _, item := range typedInput.Zones { + location.Zones = append(location.Zones, item) + } + + // No error + return nil +} + +// AssignProperties_From_AdditionalLocation_STATUS populates our AdditionalLocation_STATUS from the provided source AdditionalLocation_STATUS +func (location *AdditionalLocation_STATUS) AssignProperties_From_AdditionalLocation_STATUS(source *v20220801s.AdditionalLocation_STATUS) error { + + // DisableGateway + if source.DisableGateway != nil { + disableGateway := *source.DisableGateway + location.DisableGateway = &disableGateway + } else { + location.DisableGateway = nil + } + + // GatewayRegionalUrl + location.GatewayRegionalUrl = genruntime.ClonePointerToString(source.GatewayRegionalUrl) + + // Location + location.Location = genruntime.ClonePointerToString(source.Location) + + // NatGatewayState + if source.NatGatewayState != nil { + natGatewayState := AdditionalLocation_NatGatewayState_STATUS(*source.NatGatewayState) + location.NatGatewayState = &natGatewayState + } else { + location.NatGatewayState = nil + } + + // OutboundPublicIPAddresses + location.OutboundPublicIPAddresses = genruntime.CloneSliceOfString(source.OutboundPublicIPAddresses) + + // PlatformVersion + if source.PlatformVersion != nil { + platformVersion := AdditionalLocation_PlatformVersion_STATUS(*source.PlatformVersion) + location.PlatformVersion = &platformVersion + } else { + location.PlatformVersion = nil + } + + // PrivateIPAddresses + location.PrivateIPAddresses = genruntime.CloneSliceOfString(source.PrivateIPAddresses) + + // PublicIPAddresses + location.PublicIPAddresses = genruntime.CloneSliceOfString(source.PublicIPAddresses) + + // PublicIpAddressId + location.PublicIpAddressId = genruntime.ClonePointerToString(source.PublicIpAddressId) + + // Sku + if source.Sku != nil { + var sku ApiManagementServiceSkuProperties_STATUS + err := sku.AssignProperties_From_ApiManagementServiceSkuProperties_STATUS(source.Sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ApiManagementServiceSkuProperties_STATUS() to populate field Sku") + } + location.Sku = &sku + } else { + location.Sku = nil + } + + // VirtualNetworkConfiguration + if source.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration VirtualNetworkConfiguration_STATUS + err := virtualNetworkConfiguration.AssignProperties_From_VirtualNetworkConfiguration_STATUS(source.VirtualNetworkConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_VirtualNetworkConfiguration_STATUS() to populate field VirtualNetworkConfiguration") + } + location.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } else { + location.VirtualNetworkConfiguration = nil + } + + // Zones + location.Zones = genruntime.CloneSliceOfString(source.Zones) + + // No error + return nil +} + +// AssignProperties_To_AdditionalLocation_STATUS populates the provided destination AdditionalLocation_STATUS from our AdditionalLocation_STATUS +func (location *AdditionalLocation_STATUS) AssignProperties_To_AdditionalLocation_STATUS(destination *v20220801s.AdditionalLocation_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // DisableGateway + if location.DisableGateway != nil { + disableGateway := *location.DisableGateway + destination.DisableGateway = &disableGateway + } else { + destination.DisableGateway = nil + } + + // GatewayRegionalUrl + destination.GatewayRegionalUrl = genruntime.ClonePointerToString(location.GatewayRegionalUrl) + + // Location + destination.Location = genruntime.ClonePointerToString(location.Location) + + // NatGatewayState + if location.NatGatewayState != nil { + natGatewayState := string(*location.NatGatewayState) + destination.NatGatewayState = &natGatewayState + } else { + destination.NatGatewayState = nil + } + + // OutboundPublicIPAddresses + destination.OutboundPublicIPAddresses = genruntime.CloneSliceOfString(location.OutboundPublicIPAddresses) + + // PlatformVersion + if location.PlatformVersion != nil { + platformVersion := string(*location.PlatformVersion) + destination.PlatformVersion = &platformVersion + } else { + destination.PlatformVersion = nil + } + + // PrivateIPAddresses + destination.PrivateIPAddresses = genruntime.CloneSliceOfString(location.PrivateIPAddresses) + + // PublicIPAddresses + destination.PublicIPAddresses = genruntime.CloneSliceOfString(location.PublicIPAddresses) + + // PublicIpAddressId + destination.PublicIpAddressId = genruntime.ClonePointerToString(location.PublicIpAddressId) + + // Sku + if location.Sku != nil { + var sku v20220801s.ApiManagementServiceSkuProperties_STATUS + err := location.Sku.AssignProperties_To_ApiManagementServiceSkuProperties_STATUS(&sku) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ApiManagementServiceSkuProperties_STATUS() to populate field Sku") + } + destination.Sku = &sku + } else { + destination.Sku = nil + } + + // VirtualNetworkConfiguration + if location.VirtualNetworkConfiguration != nil { + var virtualNetworkConfiguration v20220801s.VirtualNetworkConfiguration_STATUS + err := location.VirtualNetworkConfiguration.AssignProperties_To_VirtualNetworkConfiguration_STATUS(&virtualNetworkConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_VirtualNetworkConfiguration_STATUS() to populate field VirtualNetworkConfiguration") + } + destination.VirtualNetworkConfiguration = &virtualNetworkConfiguration + } else { + destination.VirtualNetworkConfiguration = nil + } + + // Zones + destination.Zones = genruntime.CloneSliceOfString(location.Zones) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Identity properties of the Api Management service resource. +type ApiManagementServiceIdentity struct { + // +kubebuilder:validation:Required + // Type: The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly + // created identity and a set of user assigned identities. The type 'None' will remove any identities from the service. + Type *ApiManagementServiceIdentity_Type `json:"type,omitempty"` + + // UserAssignedIdentities: The list of user identities associated with the resource. The user identity + // dictionary key references will be ARM resource ids in the form: + // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ + // providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + UserAssignedIdentities []UserAssignedIdentityDetails `json:"userAssignedIdentities,omitempty"` +} + +var _ genruntime.ARMTransformer = &ApiManagementServiceIdentity{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (identity *ApiManagementServiceIdentity) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if identity == nil { + return nil, nil + } + result := &ApiManagementServiceIdentity_ARM{} + + // Set property "Type": + if identity.Type != nil { + typeVar := *identity.Type + result.Type = &typeVar + } + + // Set property "UserAssignedIdentities": + result.UserAssignedIdentities = make(map[string]UserAssignedIdentityDetails_ARM, len(identity.UserAssignedIdentities)) + for _, ident := range identity.UserAssignedIdentities { + identARMID, err := resolved.ResolvedReferences.Lookup(ident.Reference) + if err != nil { + return nil, err + } + key := identARMID + result.UserAssignedIdentities[key] = UserAssignedIdentityDetails_ARM{} + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (identity *ApiManagementServiceIdentity) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ApiManagementServiceIdentity_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (identity *ApiManagementServiceIdentity) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ApiManagementServiceIdentity_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ApiManagementServiceIdentity_ARM, got %T", armInput) + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + identity.Type = &typeVar + } + + // no assignment for property "UserAssignedIdentities" + + // No error + return nil +} + +// AssignProperties_From_ApiManagementServiceIdentity populates our ApiManagementServiceIdentity from the provided source ApiManagementServiceIdentity +func (identity *ApiManagementServiceIdentity) AssignProperties_From_ApiManagementServiceIdentity(source *v20220801s.ApiManagementServiceIdentity) error { + + // Type + if source.Type != nil { + typeVar := ApiManagementServiceIdentity_Type(*source.Type) + identity.Type = &typeVar + } else { + identity.Type = nil + } + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]UserAssignedIdentityDetails, len(source.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range source.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity UserAssignedIdentityDetails + err := userAssignedIdentity.AssignProperties_From_UserAssignedIdentityDetails(&userAssignedIdentityItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserAssignedIdentityDetails() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + identity.UserAssignedIdentities = userAssignedIdentityList + } else { + identity.UserAssignedIdentities = nil + } + + // No error + return nil +} + +// AssignProperties_To_ApiManagementServiceIdentity populates the provided destination ApiManagementServiceIdentity from our ApiManagementServiceIdentity +func (identity *ApiManagementServiceIdentity) AssignProperties_To_ApiManagementServiceIdentity(destination *v20220801s.ApiManagementServiceIdentity) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Type + if identity.Type != nil { + typeVar := string(*identity.Type) + destination.Type = &typeVar + } else { + destination.Type = nil + } + + // UserAssignedIdentities + if identity.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]v20220801s.UserAssignedIdentityDetails, len(identity.UserAssignedIdentities)) + for userAssignedIdentityIndex, userAssignedIdentityItem := range identity.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityItem := userAssignedIdentityItem + var userAssignedIdentity v20220801s.UserAssignedIdentityDetails + err := userAssignedIdentityItem.AssignProperties_To_UserAssignedIdentityDetails(&userAssignedIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserAssignedIdentityDetails() to populate field UserAssignedIdentities") + } + userAssignedIdentityList[userAssignedIdentityIndex] = userAssignedIdentity + } + destination.UserAssignedIdentities = userAssignedIdentityList + } else { + destination.UserAssignedIdentities = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ApiManagementServiceIdentity_STATUS populates our ApiManagementServiceIdentity from the provided source ApiManagementServiceIdentity_STATUS +func (identity *ApiManagementServiceIdentity) Initialize_From_ApiManagementServiceIdentity_STATUS(source *ApiManagementServiceIdentity_STATUS) error { + + // Type + if source.Type != nil { + typeVar := ApiManagementServiceIdentity_Type(*source.Type) + identity.Type = &typeVar + } else { + identity.Type = nil + } + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityList := make([]UserAssignedIdentityDetails, 0, len(source.UserAssignedIdentities)) + for userAssignedIdentitiesKey := range source.UserAssignedIdentities { + userAssignedIdentitiesRef := genruntime.CreateResourceReferenceFromARMID(userAssignedIdentitiesKey) + userAssignedIdentityList = append(userAssignedIdentityList, UserAssignedIdentityDetails{Reference: userAssignedIdentitiesRef}) + } + identity.UserAssignedIdentities = userAssignedIdentityList + } else { + identity.UserAssignedIdentities = nil + } + + // No error + return nil +} + +// Identity properties of the Api Management service resource. +type ApiManagementServiceIdentity_STATUS struct { + // PrincipalId: The principal id of the identity. + PrincipalId *string `json:"principalId,omitempty"` + + // TenantId: The client tenant id of the identity. + TenantId *string `json:"tenantId,omitempty"` + + // Type: The type of identity used for the resource. The type 'SystemAssigned, UserAssigned' includes both an implicitly + // created identity and a set of user assigned identities. The type 'None' will remove any identities from the service. + Type *ApiManagementServiceIdentity_Type_STATUS `json:"type,omitempty"` + + // UserAssignedIdentities: The list of user identities associated with the resource. The user identity + // dictionary key references will be ARM resource ids in the form: + // '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/ + // providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'. + UserAssignedIdentities map[string]UserIdentityProperties_STATUS `json:"userAssignedIdentities,omitempty"` +} + +var _ genruntime.FromARMConverter = &ApiManagementServiceIdentity_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (identity *ApiManagementServiceIdentity_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ApiManagementServiceIdentity_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (identity *ApiManagementServiceIdentity_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ApiManagementServiceIdentity_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ApiManagementServiceIdentity_STATUS_ARM, got %T", armInput) + } + + // Set property "PrincipalId": + if typedInput.PrincipalId != nil { + principalId := *typedInput.PrincipalId + identity.PrincipalId = &principalId + } + + // Set property "TenantId": + if typedInput.TenantId != nil { + tenantId := *typedInput.TenantId + identity.TenantId = &tenantId + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + identity.Type = &typeVar + } + + // Set property "UserAssignedIdentities": + if typedInput.UserAssignedIdentities != nil { + identity.UserAssignedIdentities = make(map[string]UserIdentityProperties_STATUS, len(typedInput.UserAssignedIdentities)) + for key, value := range typedInput.UserAssignedIdentities { + var value1 UserIdentityProperties_STATUS + err := value1.PopulateFromARM(owner, value) + if err != nil { + return err + } + identity.UserAssignedIdentities[key] = value1 + } + } + + // No error + return nil +} + +// AssignProperties_From_ApiManagementServiceIdentity_STATUS populates our ApiManagementServiceIdentity_STATUS from the provided source ApiManagementServiceIdentity_STATUS +func (identity *ApiManagementServiceIdentity_STATUS) AssignProperties_From_ApiManagementServiceIdentity_STATUS(source *v20220801s.ApiManagementServiceIdentity_STATUS) error { + + // PrincipalId + identity.PrincipalId = genruntime.ClonePointerToString(source.PrincipalId) + + // TenantId + identity.TenantId = genruntime.ClonePointerToString(source.TenantId) + + // Type + if source.Type != nil { + typeVar := ApiManagementServiceIdentity_Type_STATUS(*source.Type) + identity.Type = &typeVar + } else { + identity.Type = nil + } + + // UserAssignedIdentities + if source.UserAssignedIdentities != nil { + userAssignedIdentityMap := make(map[string]UserIdentityProperties_STATUS, len(source.UserAssignedIdentities)) + for userAssignedIdentityKey, userAssignedIdentityValue := range source.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityValue := userAssignedIdentityValue + var userAssignedIdentity UserIdentityProperties_STATUS + err := userAssignedIdentity.AssignProperties_From_UserIdentityProperties_STATUS(&userAssignedIdentityValue) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_UserIdentityProperties_STATUS() to populate field UserAssignedIdentities") + } + userAssignedIdentityMap[userAssignedIdentityKey] = userAssignedIdentity + } + identity.UserAssignedIdentities = userAssignedIdentityMap + } else { + identity.UserAssignedIdentities = nil + } + + // No error + return nil +} + +// AssignProperties_To_ApiManagementServiceIdentity_STATUS populates the provided destination ApiManagementServiceIdentity_STATUS from our ApiManagementServiceIdentity_STATUS +func (identity *ApiManagementServiceIdentity_STATUS) AssignProperties_To_ApiManagementServiceIdentity_STATUS(destination *v20220801s.ApiManagementServiceIdentity_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // PrincipalId + destination.PrincipalId = genruntime.ClonePointerToString(identity.PrincipalId) + + // TenantId + destination.TenantId = genruntime.ClonePointerToString(identity.TenantId) + + // Type + if identity.Type != nil { + typeVar := string(*identity.Type) + destination.Type = &typeVar + } else { + destination.Type = nil + } + + // UserAssignedIdentities + if identity.UserAssignedIdentities != nil { + userAssignedIdentityMap := make(map[string]v20220801s.UserIdentityProperties_STATUS, len(identity.UserAssignedIdentities)) + for userAssignedIdentityKey, userAssignedIdentityValue := range identity.UserAssignedIdentities { + // Shadow the loop variable to avoid aliasing + userAssignedIdentityValue := userAssignedIdentityValue + var userAssignedIdentity v20220801s.UserIdentityProperties_STATUS + err := userAssignedIdentityValue.AssignProperties_To_UserIdentityProperties_STATUS(&userAssignedIdentity) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_UserIdentityProperties_STATUS() to populate field UserAssignedIdentities") + } + userAssignedIdentityMap[userAssignedIdentityKey] = userAssignedIdentity + } + destination.UserAssignedIdentities = userAssignedIdentityMap + } else { + destination.UserAssignedIdentities = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"Disabled","Enabled"} +type ApiManagementServiceProperties_NatGatewayState string + +const ( + ApiManagementServiceProperties_NatGatewayState_Disabled = ApiManagementServiceProperties_NatGatewayState("Disabled") + ApiManagementServiceProperties_NatGatewayState_Enabled = ApiManagementServiceProperties_NatGatewayState("Enabled") +) + +type ApiManagementServiceProperties_NatGatewayState_STATUS string + +const ( + ApiManagementServiceProperties_NatGatewayState_STATUS_Disabled = ApiManagementServiceProperties_NatGatewayState_STATUS("Disabled") + ApiManagementServiceProperties_NatGatewayState_STATUS_Enabled = ApiManagementServiceProperties_NatGatewayState_STATUS("Enabled") +) + +type ApiManagementServiceProperties_PlatformVersion_STATUS string + +const ( + ApiManagementServiceProperties_PlatformVersion_STATUS_Mtv1 = ApiManagementServiceProperties_PlatformVersion_STATUS("mtv1") + ApiManagementServiceProperties_PlatformVersion_STATUS_Stv1 = ApiManagementServiceProperties_PlatformVersion_STATUS("stv1") + ApiManagementServiceProperties_PlatformVersion_STATUS_Stv2 = ApiManagementServiceProperties_PlatformVersion_STATUS("stv2") + ApiManagementServiceProperties_PlatformVersion_STATUS_Undetermined = ApiManagementServiceProperties_PlatformVersion_STATUS("undetermined") +) + +// +kubebuilder:validation:Enum={"Disabled","Enabled"} +type ApiManagementServiceProperties_PublicNetworkAccess string + +const ( + ApiManagementServiceProperties_PublicNetworkAccess_Disabled = ApiManagementServiceProperties_PublicNetworkAccess("Disabled") + ApiManagementServiceProperties_PublicNetworkAccess_Enabled = ApiManagementServiceProperties_PublicNetworkAccess("Enabled") +) + +type ApiManagementServiceProperties_PublicNetworkAccess_STATUS string + +const ( + ApiManagementServiceProperties_PublicNetworkAccess_STATUS_Disabled = ApiManagementServiceProperties_PublicNetworkAccess_STATUS("Disabled") + ApiManagementServiceProperties_PublicNetworkAccess_STATUS_Enabled = ApiManagementServiceProperties_PublicNetworkAccess_STATUS("Enabled") +) + +// +kubebuilder:validation:Enum={"External","Internal","None"} +type ApiManagementServiceProperties_VirtualNetworkType string + +const ( + ApiManagementServiceProperties_VirtualNetworkType_External = ApiManagementServiceProperties_VirtualNetworkType("External") + ApiManagementServiceProperties_VirtualNetworkType_Internal = ApiManagementServiceProperties_VirtualNetworkType("Internal") + ApiManagementServiceProperties_VirtualNetworkType_None = ApiManagementServiceProperties_VirtualNetworkType("None") +) + +type ApiManagementServiceProperties_VirtualNetworkType_STATUS string + +const ( + ApiManagementServiceProperties_VirtualNetworkType_STATUS_External = ApiManagementServiceProperties_VirtualNetworkType_STATUS("External") + ApiManagementServiceProperties_VirtualNetworkType_STATUS_Internal = ApiManagementServiceProperties_VirtualNetworkType_STATUS("Internal") + ApiManagementServiceProperties_VirtualNetworkType_STATUS_None = ApiManagementServiceProperties_VirtualNetworkType_STATUS("None") +) + +// API Management service resource SKU properties. +type ApiManagementServiceSkuProperties struct { + // +kubebuilder:validation:Required + // Capacity: Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0. + Capacity *int `json:"capacity,omitempty"` + + // +kubebuilder:validation:Required + // Name: Name of the Sku. + Name *ApiManagementServiceSkuProperties_Name `json:"name,omitempty"` +} + +var _ genruntime.ARMTransformer = &ApiManagementServiceSkuProperties{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (properties *ApiManagementServiceSkuProperties) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if properties == nil { + return nil, nil + } + result := &ApiManagementServiceSkuProperties_ARM{} + + // Set property "Capacity": + if properties.Capacity != nil { + capacity := *properties.Capacity + result.Capacity = &capacity + } + + // Set property "Name": + if properties.Name != nil { + name := *properties.Name + result.Name = &name + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (properties *ApiManagementServiceSkuProperties) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ApiManagementServiceSkuProperties_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (properties *ApiManagementServiceSkuProperties) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ApiManagementServiceSkuProperties_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ApiManagementServiceSkuProperties_ARM, got %T", armInput) + } + + // Set property "Capacity": + if typedInput.Capacity != nil { + capacity := *typedInput.Capacity + properties.Capacity = &capacity + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + properties.Name = &name + } + + // No error + return nil +} + +// AssignProperties_From_ApiManagementServiceSkuProperties populates our ApiManagementServiceSkuProperties from the provided source ApiManagementServiceSkuProperties +func (properties *ApiManagementServiceSkuProperties) AssignProperties_From_ApiManagementServiceSkuProperties(source *v20220801s.ApiManagementServiceSkuProperties) error { + + // Capacity + properties.Capacity = genruntime.ClonePointerToInt(source.Capacity) + + // Name + if source.Name != nil { + name := ApiManagementServiceSkuProperties_Name(*source.Name) + properties.Name = &name + } else { + properties.Name = nil + } + + // No error + return nil +} + +// AssignProperties_To_ApiManagementServiceSkuProperties populates the provided destination ApiManagementServiceSkuProperties from our ApiManagementServiceSkuProperties +func (properties *ApiManagementServiceSkuProperties) AssignProperties_To_ApiManagementServiceSkuProperties(destination *v20220801s.ApiManagementServiceSkuProperties) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Capacity + destination.Capacity = genruntime.ClonePointerToInt(properties.Capacity) + + // Name + if properties.Name != nil { + name := string(*properties.Name) + destination.Name = &name + } else { + destination.Name = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ApiManagementServiceSkuProperties_STATUS populates our ApiManagementServiceSkuProperties from the provided source ApiManagementServiceSkuProperties_STATUS +func (properties *ApiManagementServiceSkuProperties) Initialize_From_ApiManagementServiceSkuProperties_STATUS(source *ApiManagementServiceSkuProperties_STATUS) error { + + // Capacity + properties.Capacity = genruntime.ClonePointerToInt(source.Capacity) + + // Name + if source.Name != nil { + name := ApiManagementServiceSkuProperties_Name(*source.Name) + properties.Name = &name + } else { + properties.Name = nil + } + + // No error + return nil +} + +// API Management service resource SKU properties. +type ApiManagementServiceSkuProperties_STATUS struct { + // Capacity: Capacity of the SKU (number of deployed units of the SKU). For Consumption SKU capacity must be specified as 0. + Capacity *int `json:"capacity,omitempty"` + + // Name: Name of the Sku. + Name *ApiManagementServiceSkuProperties_Name_STATUS `json:"name,omitempty"` +} + +var _ genruntime.FromARMConverter = &ApiManagementServiceSkuProperties_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (properties *ApiManagementServiceSkuProperties_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ApiManagementServiceSkuProperties_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (properties *ApiManagementServiceSkuProperties_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ApiManagementServiceSkuProperties_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ApiManagementServiceSkuProperties_STATUS_ARM, got %T", armInput) + } + + // Set property "Capacity": + if typedInput.Capacity != nil { + capacity := *typedInput.Capacity + properties.Capacity = &capacity + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + properties.Name = &name + } + + // No error + return nil +} + +// AssignProperties_From_ApiManagementServiceSkuProperties_STATUS populates our ApiManagementServiceSkuProperties_STATUS from the provided source ApiManagementServiceSkuProperties_STATUS +func (properties *ApiManagementServiceSkuProperties_STATUS) AssignProperties_From_ApiManagementServiceSkuProperties_STATUS(source *v20220801s.ApiManagementServiceSkuProperties_STATUS) error { + + // Capacity + properties.Capacity = genruntime.ClonePointerToInt(source.Capacity) + + // Name + if source.Name != nil { + name := ApiManagementServiceSkuProperties_Name_STATUS(*source.Name) + properties.Name = &name + } else { + properties.Name = nil + } + + // No error + return nil +} + +// AssignProperties_To_ApiManagementServiceSkuProperties_STATUS populates the provided destination ApiManagementServiceSkuProperties_STATUS from our ApiManagementServiceSkuProperties_STATUS +func (properties *ApiManagementServiceSkuProperties_STATUS) AssignProperties_To_ApiManagementServiceSkuProperties_STATUS(destination *v20220801s.ApiManagementServiceSkuProperties_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Capacity + destination.Capacity = genruntime.ClonePointerToInt(properties.Capacity) + + // Name + if properties.Name != nil { + name := string(*properties.Name) + destination.Name = &name + } else { + destination.Name = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Control Plane Apis version constraint for the API Management service. +type ApiVersionConstraint struct { + // MinApiVersion: Limit control plane API calls to API Management service with version equal to or newer than this value. + MinApiVersion *string `json:"minApiVersion,omitempty"` +} + +var _ genruntime.ARMTransformer = &ApiVersionConstraint{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (constraint *ApiVersionConstraint) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if constraint == nil { + return nil, nil + } + result := &ApiVersionConstraint_ARM{} + + // Set property "MinApiVersion": + if constraint.MinApiVersion != nil { + minApiVersion := *constraint.MinApiVersion + result.MinApiVersion = &minApiVersion + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (constraint *ApiVersionConstraint) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ApiVersionConstraint_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (constraint *ApiVersionConstraint) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ApiVersionConstraint_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ApiVersionConstraint_ARM, got %T", armInput) + } + + // Set property "MinApiVersion": + if typedInput.MinApiVersion != nil { + minApiVersion := *typedInput.MinApiVersion + constraint.MinApiVersion = &minApiVersion + } + + // No error + return nil +} + +// AssignProperties_From_ApiVersionConstraint populates our ApiVersionConstraint from the provided source ApiVersionConstraint +func (constraint *ApiVersionConstraint) AssignProperties_From_ApiVersionConstraint(source *v20220801s.ApiVersionConstraint) error { + + // MinApiVersion + constraint.MinApiVersion = genruntime.ClonePointerToString(source.MinApiVersion) + + // No error + return nil +} + +// AssignProperties_To_ApiVersionConstraint populates the provided destination ApiVersionConstraint from our ApiVersionConstraint +func (constraint *ApiVersionConstraint) AssignProperties_To_ApiVersionConstraint(destination *v20220801s.ApiVersionConstraint) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // MinApiVersion + destination.MinApiVersion = genruntime.ClonePointerToString(constraint.MinApiVersion) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_ApiVersionConstraint_STATUS populates our ApiVersionConstraint from the provided source ApiVersionConstraint_STATUS +func (constraint *ApiVersionConstraint) Initialize_From_ApiVersionConstraint_STATUS(source *ApiVersionConstraint_STATUS) error { + + // MinApiVersion + constraint.MinApiVersion = genruntime.ClonePointerToString(source.MinApiVersion) + + // No error + return nil +} + +// Control Plane Apis version constraint for the API Management service. +type ApiVersionConstraint_STATUS struct { + // MinApiVersion: Limit control plane API calls to API Management service with version equal to or newer than this value. + MinApiVersion *string `json:"minApiVersion,omitempty"` +} + +var _ genruntime.FromARMConverter = &ApiVersionConstraint_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (constraint *ApiVersionConstraint_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ApiVersionConstraint_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (constraint *ApiVersionConstraint_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ApiVersionConstraint_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ApiVersionConstraint_STATUS_ARM, got %T", armInput) + } + + // Set property "MinApiVersion": + if typedInput.MinApiVersion != nil { + minApiVersion := *typedInput.MinApiVersion + constraint.MinApiVersion = &minApiVersion + } + + // No error + return nil +} + +// AssignProperties_From_ApiVersionConstraint_STATUS populates our ApiVersionConstraint_STATUS from the provided source ApiVersionConstraint_STATUS +func (constraint *ApiVersionConstraint_STATUS) AssignProperties_From_ApiVersionConstraint_STATUS(source *v20220801s.ApiVersionConstraint_STATUS) error { + + // MinApiVersion + constraint.MinApiVersion = genruntime.ClonePointerToString(source.MinApiVersion) + + // No error + return nil +} + +// AssignProperties_To_ApiVersionConstraint_STATUS populates the provided destination ApiVersionConstraint_STATUS from our ApiVersionConstraint_STATUS +func (constraint *ApiVersionConstraint_STATUS) AssignProperties_To_ApiVersionConstraint_STATUS(destination *v20220801s.ApiVersionConstraint_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // MinApiVersion + destination.MinApiVersion = genruntime.ClonePointerToString(constraint.MinApiVersion) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Certificate configuration which consist of non-trusted intermediates and root certificates. +type CertificateConfiguration struct { + // Certificate: Certificate information. + Certificate *CertificateInformation `json:"certificate,omitempty"` + + // CertificatePassword: Certificate Password. + CertificatePassword *genruntime.SecretReference `json:"certificatePassword,omitempty"` + + // EncodedCertificate: Base64 Encoded certificate. + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + + // +kubebuilder:validation:Required + // StoreName: The System.Security.Cryptography.x509certificates.StoreName certificate store location. Only Root and + // CertificateAuthority are valid locations. + StoreName *CertificateConfiguration_StoreName `json:"storeName,omitempty"` +} + +var _ genruntime.ARMTransformer = &CertificateConfiguration{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (configuration *CertificateConfiguration) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if configuration == nil { + return nil, nil + } + result := &CertificateConfiguration_ARM{} + + // Set property "Certificate": + if configuration.Certificate != nil { + certificate_ARM, err := (*configuration.Certificate).ConvertToARM(resolved) + if err != nil { + return nil, err + } + certificate := *certificate_ARM.(*CertificateInformation_ARM) + result.Certificate = &certificate + } + + // Set property "CertificatePassword": + if configuration.CertificatePassword != nil { + certificatePasswordSecret, err := resolved.ResolvedSecrets.Lookup(*configuration.CertificatePassword) + if err != nil { + return nil, errors.Wrap(err, "looking up secret for property CertificatePassword") + } + certificatePassword := certificatePasswordSecret + result.CertificatePassword = &certificatePassword + } + + // Set property "EncodedCertificate": + if configuration.EncodedCertificate != nil { + encodedCertificate := *configuration.EncodedCertificate + result.EncodedCertificate = &encodedCertificate + } + + // Set property "StoreName": + if configuration.StoreName != nil { + storeName := *configuration.StoreName + result.StoreName = &storeName + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (configuration *CertificateConfiguration) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &CertificateConfiguration_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (configuration *CertificateConfiguration) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(CertificateConfiguration_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected CertificateConfiguration_ARM, got %T", armInput) + } + + // Set property "Certificate": + if typedInput.Certificate != nil { + var certificate1 CertificateInformation + err := certificate1.PopulateFromARM(owner, *typedInput.Certificate) + if err != nil { + return err + } + certificate := certificate1 + configuration.Certificate = &certificate + } + + // no assignment for property "CertificatePassword" + + // Set property "EncodedCertificate": + if typedInput.EncodedCertificate != nil { + encodedCertificate := *typedInput.EncodedCertificate + configuration.EncodedCertificate = &encodedCertificate + } + + // Set property "StoreName": + if typedInput.StoreName != nil { + storeName := *typedInput.StoreName + configuration.StoreName = &storeName + } + + // No error + return nil +} + +// AssignProperties_From_CertificateConfiguration populates our CertificateConfiguration from the provided source CertificateConfiguration +func (configuration *CertificateConfiguration) AssignProperties_From_CertificateConfiguration(source *v20220801s.CertificateConfiguration) error { + + // Certificate + if source.Certificate != nil { + var certificate CertificateInformation + err := certificate.AssignProperties_From_CertificateInformation(source.Certificate) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CertificateInformation() to populate field Certificate") + } + configuration.Certificate = &certificate + } else { + configuration.Certificate = nil + } + + // CertificatePassword + if source.CertificatePassword != nil { + certificatePassword := source.CertificatePassword.Copy() + configuration.CertificatePassword = &certificatePassword + } else { + configuration.CertificatePassword = nil + } + + // EncodedCertificate + configuration.EncodedCertificate = genruntime.ClonePointerToString(source.EncodedCertificate) + + // StoreName + if source.StoreName != nil { + storeName := CertificateConfiguration_StoreName(*source.StoreName) + configuration.StoreName = &storeName + } else { + configuration.StoreName = nil + } + + // No error + return nil +} + +// AssignProperties_To_CertificateConfiguration populates the provided destination CertificateConfiguration from our CertificateConfiguration +func (configuration *CertificateConfiguration) AssignProperties_To_CertificateConfiguration(destination *v20220801s.CertificateConfiguration) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Certificate + if configuration.Certificate != nil { + var certificate v20220801s.CertificateInformation + err := configuration.Certificate.AssignProperties_To_CertificateInformation(&certificate) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CertificateInformation() to populate field Certificate") + } + destination.Certificate = &certificate + } else { + destination.Certificate = nil + } + + // CertificatePassword + if configuration.CertificatePassword != nil { + certificatePassword := configuration.CertificatePassword.Copy() + destination.CertificatePassword = &certificatePassword + } else { + destination.CertificatePassword = nil + } + + // EncodedCertificate + destination.EncodedCertificate = genruntime.ClonePointerToString(configuration.EncodedCertificate) + + // StoreName + if configuration.StoreName != nil { + storeName := string(*configuration.StoreName) + destination.StoreName = &storeName + } else { + destination.StoreName = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_CertificateConfiguration_STATUS populates our CertificateConfiguration from the provided source CertificateConfiguration_STATUS +func (configuration *CertificateConfiguration) Initialize_From_CertificateConfiguration_STATUS(source *CertificateConfiguration_STATUS) error { + + // Certificate + if source.Certificate != nil { + var certificate CertificateInformation + err := certificate.Initialize_From_CertificateInformation_STATUS(source.Certificate) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_CertificateInformation_STATUS() to populate field Certificate") + } + configuration.Certificate = &certificate + } else { + configuration.Certificate = nil + } + + // EncodedCertificate + configuration.EncodedCertificate = genruntime.ClonePointerToString(source.EncodedCertificate) + + // StoreName + if source.StoreName != nil { + storeName := CertificateConfiguration_StoreName(*source.StoreName) + configuration.StoreName = &storeName + } else { + configuration.StoreName = nil + } + + // No error + return nil +} + +// Certificate configuration which consist of non-trusted intermediates and root certificates. +type CertificateConfiguration_STATUS struct { + // Certificate: Certificate information. + Certificate *CertificateInformation_STATUS `json:"certificate,omitempty"` + + // EncodedCertificate: Base64 Encoded certificate. + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + + // StoreName: The System.Security.Cryptography.x509certificates.StoreName certificate store location. Only Root and + // CertificateAuthority are valid locations. + StoreName *CertificateConfiguration_StoreName_STATUS `json:"storeName,omitempty"` +} + +var _ genruntime.FromARMConverter = &CertificateConfiguration_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (configuration *CertificateConfiguration_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &CertificateConfiguration_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (configuration *CertificateConfiguration_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(CertificateConfiguration_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected CertificateConfiguration_STATUS_ARM, got %T", armInput) + } + + // Set property "Certificate": + if typedInput.Certificate != nil { + var certificate1 CertificateInformation_STATUS + err := certificate1.PopulateFromARM(owner, *typedInput.Certificate) + if err != nil { + return err + } + certificate := certificate1 + configuration.Certificate = &certificate + } + + // Set property "EncodedCertificate": + if typedInput.EncodedCertificate != nil { + encodedCertificate := *typedInput.EncodedCertificate + configuration.EncodedCertificate = &encodedCertificate + } + + // Set property "StoreName": + if typedInput.StoreName != nil { + storeName := *typedInput.StoreName + configuration.StoreName = &storeName + } + + // No error + return nil +} + +// AssignProperties_From_CertificateConfiguration_STATUS populates our CertificateConfiguration_STATUS from the provided source CertificateConfiguration_STATUS +func (configuration *CertificateConfiguration_STATUS) AssignProperties_From_CertificateConfiguration_STATUS(source *v20220801s.CertificateConfiguration_STATUS) error { + + // Certificate + if source.Certificate != nil { + var certificate CertificateInformation_STATUS + err := certificate.AssignProperties_From_CertificateInformation_STATUS(source.Certificate) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CertificateInformation_STATUS() to populate field Certificate") + } + configuration.Certificate = &certificate + } else { + configuration.Certificate = nil + } + + // EncodedCertificate + configuration.EncodedCertificate = genruntime.ClonePointerToString(source.EncodedCertificate) + + // StoreName + if source.StoreName != nil { + storeName := CertificateConfiguration_StoreName_STATUS(*source.StoreName) + configuration.StoreName = &storeName + } else { + configuration.StoreName = nil + } + + // No error + return nil +} + +// AssignProperties_To_CertificateConfiguration_STATUS populates the provided destination CertificateConfiguration_STATUS from our CertificateConfiguration_STATUS +func (configuration *CertificateConfiguration_STATUS) AssignProperties_To_CertificateConfiguration_STATUS(destination *v20220801s.CertificateConfiguration_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Certificate + if configuration.Certificate != nil { + var certificate v20220801s.CertificateInformation_STATUS + err := configuration.Certificate.AssignProperties_To_CertificateInformation_STATUS(&certificate) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CertificateInformation_STATUS() to populate field Certificate") + } + destination.Certificate = &certificate + } else { + destination.Certificate = nil + } + + // EncodedCertificate + destination.EncodedCertificate = genruntime.ClonePointerToString(configuration.EncodedCertificate) + + // StoreName + if configuration.StoreName != nil { + storeName := string(*configuration.StoreName) + destination.StoreName = &storeName + } else { + destination.StoreName = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Custom hostname configuration. +type HostnameConfiguration struct { + // Certificate: Certificate information. + Certificate *CertificateInformation `json:"certificate,omitempty"` + + // CertificatePassword: Certificate Password. + CertificatePassword *genruntime.SecretReference `json:"certificatePassword,omitempty"` + + // CertificateSource: Certificate Source. + CertificateSource *HostnameConfiguration_CertificateSource `json:"certificateSource,omitempty"` + + // CertificateStatus: Certificate Status. + CertificateStatus *HostnameConfiguration_CertificateStatus `json:"certificateStatus,omitempty"` + + // DefaultSslBinding: Specify true to setup the certificate associated with this Hostname as the Default SSL Certificate. + // If a client does not send the SNI header, then this will be the certificate that will be challenged. The property is + // useful if a service has multiple custom hostname enabled and it needs to decide on the default ssl certificate. The + // setting only applied to gateway Hostname Type. + DefaultSslBinding *bool `json:"defaultSslBinding,omitempty"` + + // EncodedCertificate: Base64 Encoded certificate. + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + + // +kubebuilder:validation:Required + // HostName: Hostname to configure on the Api Management service. + HostName *string `json:"hostName,omitempty"` + + // IdentityClientId: System or User Assigned Managed identity clientId as generated by Azure AD, which has GET access to + // the keyVault containing the SSL certificate. + IdentityClientId *string `json:"identityClientId,omitempty" optionalConfigMapPair:"IdentityClientId"` + + // IdentityClientIdFromConfig: System or User Assigned Managed identity clientId as generated by Azure AD, which has GET + // access to the keyVault containing the SSL certificate. + IdentityClientIdFromConfig *genruntime.ConfigMapReference `json:"identityClientIdFromConfig,omitempty" optionalConfigMapPair:"IdentityClientId"` + + // KeyVaultId: Url to the KeyVault Secret containing the Ssl Certificate. If absolute Url containing version is provided, + // auto-update of ssl certificate will not work. This requires Api Management service to be configured with aka.ms/apimmsi. + // The secret should be of type *application/x-pkcs12* + KeyVaultId *string `json:"keyVaultId,omitempty"` + + // NegotiateClientCertificate: Specify true to always negotiate client certificate on the hostname. Default Value is false. + NegotiateClientCertificate *bool `json:"negotiateClientCertificate,omitempty"` + + // +kubebuilder:validation:Required + // Type: Hostname type. + Type *HostnameConfiguration_Type `json:"type,omitempty"` +} + +var _ genruntime.ARMTransformer = &HostnameConfiguration{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (configuration *HostnameConfiguration) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if configuration == nil { + return nil, nil + } + result := &HostnameConfiguration_ARM{} + + // Set property "Certificate": + if configuration.Certificate != nil { + certificate_ARM, err := (*configuration.Certificate).ConvertToARM(resolved) + if err != nil { + return nil, err + } + certificate := *certificate_ARM.(*CertificateInformation_ARM) + result.Certificate = &certificate + } + + // Set property "CertificatePassword": + if configuration.CertificatePassword != nil { + certificatePasswordSecret, err := resolved.ResolvedSecrets.Lookup(*configuration.CertificatePassword) + if err != nil { + return nil, errors.Wrap(err, "looking up secret for property CertificatePassword") + } + certificatePassword := certificatePasswordSecret + result.CertificatePassword = &certificatePassword + } + + // Set property "CertificateSource": + if configuration.CertificateSource != nil { + certificateSource := *configuration.CertificateSource + result.CertificateSource = &certificateSource + } + + // Set property "CertificateStatus": + if configuration.CertificateStatus != nil { + certificateStatus := *configuration.CertificateStatus + result.CertificateStatus = &certificateStatus + } + + // Set property "DefaultSslBinding": + if configuration.DefaultSslBinding != nil { + defaultSslBinding := *configuration.DefaultSslBinding + result.DefaultSslBinding = &defaultSslBinding + } + + // Set property "EncodedCertificate": + if configuration.EncodedCertificate != nil { + encodedCertificate := *configuration.EncodedCertificate + result.EncodedCertificate = &encodedCertificate + } + + // Set property "HostName": + if configuration.HostName != nil { + hostName := *configuration.HostName + result.HostName = &hostName + } + + // Set property "IdentityClientId": + if configuration.IdentityClientId != nil { + identityClientId := *configuration.IdentityClientId + result.IdentityClientId = &identityClientId + } + if configuration.IdentityClientIdFromConfig != nil { + identityClientIdValue, err := resolved.ResolvedConfigMaps.Lookup(*configuration.IdentityClientIdFromConfig) + if err != nil { + return nil, errors.Wrap(err, "looking up configmap for property IdentityClientId") + } + identityClientId := identityClientIdValue + result.IdentityClientId = &identityClientId + } + + // Set property "KeyVaultId": + if configuration.KeyVaultId != nil { + keyVaultId := *configuration.KeyVaultId + result.KeyVaultId = &keyVaultId + } + + // Set property "NegotiateClientCertificate": + if configuration.NegotiateClientCertificate != nil { + negotiateClientCertificate := *configuration.NegotiateClientCertificate + result.NegotiateClientCertificate = &negotiateClientCertificate + } + + // Set property "Type": + if configuration.Type != nil { + typeVar := *configuration.Type + result.Type = &typeVar + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (configuration *HostnameConfiguration) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &HostnameConfiguration_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (configuration *HostnameConfiguration) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(HostnameConfiguration_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected HostnameConfiguration_ARM, got %T", armInput) + } + + // Set property "Certificate": + if typedInput.Certificate != nil { + var certificate1 CertificateInformation + err := certificate1.PopulateFromARM(owner, *typedInput.Certificate) + if err != nil { + return err + } + certificate := certificate1 + configuration.Certificate = &certificate + } + + // no assignment for property "CertificatePassword" + + // Set property "CertificateSource": + if typedInput.CertificateSource != nil { + certificateSource := *typedInput.CertificateSource + configuration.CertificateSource = &certificateSource + } + + // Set property "CertificateStatus": + if typedInput.CertificateStatus != nil { + certificateStatus := *typedInput.CertificateStatus + configuration.CertificateStatus = &certificateStatus + } + + // Set property "DefaultSslBinding": + if typedInput.DefaultSslBinding != nil { + defaultSslBinding := *typedInput.DefaultSslBinding + configuration.DefaultSslBinding = &defaultSslBinding + } + + // Set property "EncodedCertificate": + if typedInput.EncodedCertificate != nil { + encodedCertificate := *typedInput.EncodedCertificate + configuration.EncodedCertificate = &encodedCertificate + } + + // Set property "HostName": + if typedInput.HostName != nil { + hostName := *typedInput.HostName + configuration.HostName = &hostName + } + + // Set property "IdentityClientId": + if typedInput.IdentityClientId != nil { + identityClientId := *typedInput.IdentityClientId + configuration.IdentityClientId = &identityClientId + } + + // no assignment for property "IdentityClientIdFromConfig" + + // Set property "KeyVaultId": + if typedInput.KeyVaultId != nil { + keyVaultId := *typedInput.KeyVaultId + configuration.KeyVaultId = &keyVaultId + } + + // Set property "NegotiateClientCertificate": + if typedInput.NegotiateClientCertificate != nil { + negotiateClientCertificate := *typedInput.NegotiateClientCertificate + configuration.NegotiateClientCertificate = &negotiateClientCertificate + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + configuration.Type = &typeVar + } + + // No error + return nil +} + +// AssignProperties_From_HostnameConfiguration populates our HostnameConfiguration from the provided source HostnameConfiguration +func (configuration *HostnameConfiguration) AssignProperties_From_HostnameConfiguration(source *v20220801s.HostnameConfiguration) error { + + // Certificate + if source.Certificate != nil { + var certificate CertificateInformation + err := certificate.AssignProperties_From_CertificateInformation(source.Certificate) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CertificateInformation() to populate field Certificate") + } + configuration.Certificate = &certificate + } else { + configuration.Certificate = nil + } + + // CertificatePassword + if source.CertificatePassword != nil { + certificatePassword := source.CertificatePassword.Copy() + configuration.CertificatePassword = &certificatePassword + } else { + configuration.CertificatePassword = nil + } + + // CertificateSource + if source.CertificateSource != nil { + certificateSource := HostnameConfiguration_CertificateSource(*source.CertificateSource) + configuration.CertificateSource = &certificateSource + } else { + configuration.CertificateSource = nil + } + + // CertificateStatus + if source.CertificateStatus != nil { + certificateStatus := HostnameConfiguration_CertificateStatus(*source.CertificateStatus) + configuration.CertificateStatus = &certificateStatus + } else { + configuration.CertificateStatus = nil + } + + // DefaultSslBinding + if source.DefaultSslBinding != nil { + defaultSslBinding := *source.DefaultSslBinding + configuration.DefaultSslBinding = &defaultSslBinding + } else { + configuration.DefaultSslBinding = nil + } + + // EncodedCertificate + configuration.EncodedCertificate = genruntime.ClonePointerToString(source.EncodedCertificate) + + // HostName + configuration.HostName = genruntime.ClonePointerToString(source.HostName) + + // IdentityClientId + configuration.IdentityClientId = genruntime.ClonePointerToString(source.IdentityClientId) + + // IdentityClientIdFromConfig + if source.IdentityClientIdFromConfig != nil { + identityClientIdFromConfig := source.IdentityClientIdFromConfig.Copy() + configuration.IdentityClientIdFromConfig = &identityClientIdFromConfig + } else { + configuration.IdentityClientIdFromConfig = nil + } + + // KeyVaultId + configuration.KeyVaultId = genruntime.ClonePointerToString(source.KeyVaultId) + + // NegotiateClientCertificate + if source.NegotiateClientCertificate != nil { + negotiateClientCertificate := *source.NegotiateClientCertificate + configuration.NegotiateClientCertificate = &negotiateClientCertificate + } else { + configuration.NegotiateClientCertificate = nil + } + + // Type + if source.Type != nil { + typeVar := HostnameConfiguration_Type(*source.Type) + configuration.Type = &typeVar + } else { + configuration.Type = nil + } + + // No error + return nil +} + +// AssignProperties_To_HostnameConfiguration populates the provided destination HostnameConfiguration from our HostnameConfiguration +func (configuration *HostnameConfiguration) AssignProperties_To_HostnameConfiguration(destination *v20220801s.HostnameConfiguration) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Certificate + if configuration.Certificate != nil { + var certificate v20220801s.CertificateInformation + err := configuration.Certificate.AssignProperties_To_CertificateInformation(&certificate) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CertificateInformation() to populate field Certificate") + } + destination.Certificate = &certificate + } else { + destination.Certificate = nil + } + + // CertificatePassword + if configuration.CertificatePassword != nil { + certificatePassword := configuration.CertificatePassword.Copy() + destination.CertificatePassword = &certificatePassword + } else { + destination.CertificatePassword = nil + } + + // CertificateSource + if configuration.CertificateSource != nil { + certificateSource := string(*configuration.CertificateSource) + destination.CertificateSource = &certificateSource + } else { + destination.CertificateSource = nil + } + + // CertificateStatus + if configuration.CertificateStatus != nil { + certificateStatus := string(*configuration.CertificateStatus) + destination.CertificateStatus = &certificateStatus + } else { + destination.CertificateStatus = nil + } + + // DefaultSslBinding + if configuration.DefaultSslBinding != nil { + defaultSslBinding := *configuration.DefaultSslBinding + destination.DefaultSslBinding = &defaultSslBinding + } else { + destination.DefaultSslBinding = nil + } + + // EncodedCertificate + destination.EncodedCertificate = genruntime.ClonePointerToString(configuration.EncodedCertificate) + + // HostName + destination.HostName = genruntime.ClonePointerToString(configuration.HostName) + + // IdentityClientId + destination.IdentityClientId = genruntime.ClonePointerToString(configuration.IdentityClientId) + + // IdentityClientIdFromConfig + if configuration.IdentityClientIdFromConfig != nil { + identityClientIdFromConfig := configuration.IdentityClientIdFromConfig.Copy() + destination.IdentityClientIdFromConfig = &identityClientIdFromConfig + } else { + destination.IdentityClientIdFromConfig = nil + } + + // KeyVaultId + destination.KeyVaultId = genruntime.ClonePointerToString(configuration.KeyVaultId) + + // NegotiateClientCertificate + if configuration.NegotiateClientCertificate != nil { + negotiateClientCertificate := *configuration.NegotiateClientCertificate + destination.NegotiateClientCertificate = &negotiateClientCertificate + } else { + destination.NegotiateClientCertificate = nil + } + + // Type + if configuration.Type != nil { + typeVar := string(*configuration.Type) + destination.Type = &typeVar + } else { + destination.Type = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_HostnameConfiguration_STATUS populates our HostnameConfiguration from the provided source HostnameConfiguration_STATUS +func (configuration *HostnameConfiguration) Initialize_From_HostnameConfiguration_STATUS(source *HostnameConfiguration_STATUS) error { + + // Certificate + if source.Certificate != nil { + var certificate CertificateInformation + err := certificate.Initialize_From_CertificateInformation_STATUS(source.Certificate) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_CertificateInformation_STATUS() to populate field Certificate") + } + configuration.Certificate = &certificate + } else { + configuration.Certificate = nil + } + + // CertificateSource + if source.CertificateSource != nil { + certificateSource := HostnameConfiguration_CertificateSource(*source.CertificateSource) + configuration.CertificateSource = &certificateSource + } else { + configuration.CertificateSource = nil + } + + // CertificateStatus + if source.CertificateStatus != nil { + certificateStatus := HostnameConfiguration_CertificateStatus(*source.CertificateStatus) + configuration.CertificateStatus = &certificateStatus + } else { + configuration.CertificateStatus = nil + } + + // DefaultSslBinding + if source.DefaultSslBinding != nil { + defaultSslBinding := *source.DefaultSslBinding + configuration.DefaultSslBinding = &defaultSslBinding + } else { + configuration.DefaultSslBinding = nil + } + + // EncodedCertificate + configuration.EncodedCertificate = genruntime.ClonePointerToString(source.EncodedCertificate) + + // HostName + configuration.HostName = genruntime.ClonePointerToString(source.HostName) + + // IdentityClientId + configuration.IdentityClientId = genruntime.ClonePointerToString(source.IdentityClientId) + + // KeyVaultId + configuration.KeyVaultId = genruntime.ClonePointerToString(source.KeyVaultId) + + // NegotiateClientCertificate + if source.NegotiateClientCertificate != nil { + negotiateClientCertificate := *source.NegotiateClientCertificate + configuration.NegotiateClientCertificate = &negotiateClientCertificate + } else { + configuration.NegotiateClientCertificate = nil + } + + // Type + if source.Type != nil { + typeVar := HostnameConfiguration_Type(*source.Type) + configuration.Type = &typeVar + } else { + configuration.Type = nil + } + + // No error + return nil +} + +// Custom hostname configuration. +type HostnameConfiguration_STATUS struct { + // Certificate: Certificate information. + Certificate *CertificateInformation_STATUS `json:"certificate,omitempty"` + + // CertificateSource: Certificate Source. + CertificateSource *HostnameConfiguration_CertificateSource_STATUS `json:"certificateSource,omitempty"` + + // CertificateStatus: Certificate Status. + CertificateStatus *HostnameConfiguration_CertificateStatus_STATUS `json:"certificateStatus,omitempty"` + + // DefaultSslBinding: Specify true to setup the certificate associated with this Hostname as the Default SSL Certificate. + // If a client does not send the SNI header, then this will be the certificate that will be challenged. The property is + // useful if a service has multiple custom hostname enabled and it needs to decide on the default ssl certificate. The + // setting only applied to gateway Hostname Type. + DefaultSslBinding *bool `json:"defaultSslBinding,omitempty"` + + // EncodedCertificate: Base64 Encoded certificate. + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + + // HostName: Hostname to configure on the Api Management service. + HostName *string `json:"hostName,omitempty"` + + // IdentityClientId: System or User Assigned Managed identity clientId as generated by Azure AD, which has GET access to + // the keyVault containing the SSL certificate. + IdentityClientId *string `json:"identityClientId,omitempty"` + + // KeyVaultId: Url to the KeyVault Secret containing the Ssl Certificate. If absolute Url containing version is provided, + // auto-update of ssl certificate will not work. This requires Api Management service to be configured with aka.ms/apimmsi. + // The secret should be of type *application/x-pkcs12* + KeyVaultId *string `json:"keyVaultId,omitempty"` + + // NegotiateClientCertificate: Specify true to always negotiate client certificate on the hostname. Default Value is false. + NegotiateClientCertificate *bool `json:"negotiateClientCertificate,omitempty"` + + // Type: Hostname type. + Type *HostnameConfiguration_Type_STATUS `json:"type,omitempty"` +} + +var _ genruntime.FromARMConverter = &HostnameConfiguration_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (configuration *HostnameConfiguration_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &HostnameConfiguration_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (configuration *HostnameConfiguration_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(HostnameConfiguration_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected HostnameConfiguration_STATUS_ARM, got %T", armInput) + } + + // Set property "Certificate": + if typedInput.Certificate != nil { + var certificate1 CertificateInformation_STATUS + err := certificate1.PopulateFromARM(owner, *typedInput.Certificate) + if err != nil { + return err + } + certificate := certificate1 + configuration.Certificate = &certificate + } + + // Set property "CertificateSource": + if typedInput.CertificateSource != nil { + certificateSource := *typedInput.CertificateSource + configuration.CertificateSource = &certificateSource + } + + // Set property "CertificateStatus": + if typedInput.CertificateStatus != nil { + certificateStatus := *typedInput.CertificateStatus + configuration.CertificateStatus = &certificateStatus + } + + // Set property "DefaultSslBinding": + if typedInput.DefaultSslBinding != nil { + defaultSslBinding := *typedInput.DefaultSslBinding + configuration.DefaultSslBinding = &defaultSslBinding + } + + // Set property "EncodedCertificate": + if typedInput.EncodedCertificate != nil { + encodedCertificate := *typedInput.EncodedCertificate + configuration.EncodedCertificate = &encodedCertificate + } + + // Set property "HostName": + if typedInput.HostName != nil { + hostName := *typedInput.HostName + configuration.HostName = &hostName + } + + // Set property "IdentityClientId": + if typedInput.IdentityClientId != nil { + identityClientId := *typedInput.IdentityClientId + configuration.IdentityClientId = &identityClientId + } + + // Set property "KeyVaultId": + if typedInput.KeyVaultId != nil { + keyVaultId := *typedInput.KeyVaultId + configuration.KeyVaultId = &keyVaultId + } + + // Set property "NegotiateClientCertificate": + if typedInput.NegotiateClientCertificate != nil { + negotiateClientCertificate := *typedInput.NegotiateClientCertificate + configuration.NegotiateClientCertificate = &negotiateClientCertificate + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + configuration.Type = &typeVar + } + + // No error + return nil +} + +// AssignProperties_From_HostnameConfiguration_STATUS populates our HostnameConfiguration_STATUS from the provided source HostnameConfiguration_STATUS +func (configuration *HostnameConfiguration_STATUS) AssignProperties_From_HostnameConfiguration_STATUS(source *v20220801s.HostnameConfiguration_STATUS) error { + + // Certificate + if source.Certificate != nil { + var certificate CertificateInformation_STATUS + err := certificate.AssignProperties_From_CertificateInformation_STATUS(source.Certificate) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_CertificateInformation_STATUS() to populate field Certificate") + } + configuration.Certificate = &certificate + } else { + configuration.Certificate = nil + } + + // CertificateSource + if source.CertificateSource != nil { + certificateSource := HostnameConfiguration_CertificateSource_STATUS(*source.CertificateSource) + configuration.CertificateSource = &certificateSource + } else { + configuration.CertificateSource = nil + } + + // CertificateStatus + if source.CertificateStatus != nil { + certificateStatus := HostnameConfiguration_CertificateStatus_STATUS(*source.CertificateStatus) + configuration.CertificateStatus = &certificateStatus + } else { + configuration.CertificateStatus = nil + } + + // DefaultSslBinding + if source.DefaultSslBinding != nil { + defaultSslBinding := *source.DefaultSslBinding + configuration.DefaultSslBinding = &defaultSslBinding + } else { + configuration.DefaultSslBinding = nil + } + + // EncodedCertificate + configuration.EncodedCertificate = genruntime.ClonePointerToString(source.EncodedCertificate) + + // HostName + configuration.HostName = genruntime.ClonePointerToString(source.HostName) + + // IdentityClientId + configuration.IdentityClientId = genruntime.ClonePointerToString(source.IdentityClientId) + + // KeyVaultId + configuration.KeyVaultId = genruntime.ClonePointerToString(source.KeyVaultId) + + // NegotiateClientCertificate + if source.NegotiateClientCertificate != nil { + negotiateClientCertificate := *source.NegotiateClientCertificate + configuration.NegotiateClientCertificate = &negotiateClientCertificate + } else { + configuration.NegotiateClientCertificate = nil + } + + // Type + if source.Type != nil { + typeVar := HostnameConfiguration_Type_STATUS(*source.Type) + configuration.Type = &typeVar + } else { + configuration.Type = nil + } + + // No error + return nil +} + +// AssignProperties_To_HostnameConfiguration_STATUS populates the provided destination HostnameConfiguration_STATUS from our HostnameConfiguration_STATUS +func (configuration *HostnameConfiguration_STATUS) AssignProperties_To_HostnameConfiguration_STATUS(destination *v20220801s.HostnameConfiguration_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Certificate + if configuration.Certificate != nil { + var certificate v20220801s.CertificateInformation_STATUS + err := configuration.Certificate.AssignProperties_To_CertificateInformation_STATUS(&certificate) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_CertificateInformation_STATUS() to populate field Certificate") + } + destination.Certificate = &certificate + } else { + destination.Certificate = nil + } + + // CertificateSource + if configuration.CertificateSource != nil { + certificateSource := string(*configuration.CertificateSource) + destination.CertificateSource = &certificateSource + } else { + destination.CertificateSource = nil + } + + // CertificateStatus + if configuration.CertificateStatus != nil { + certificateStatus := string(*configuration.CertificateStatus) + destination.CertificateStatus = &certificateStatus + } else { + destination.CertificateStatus = nil + } + + // DefaultSslBinding + if configuration.DefaultSslBinding != nil { + defaultSslBinding := *configuration.DefaultSslBinding + destination.DefaultSslBinding = &defaultSslBinding + } else { + destination.DefaultSslBinding = nil + } + + // EncodedCertificate + destination.EncodedCertificate = genruntime.ClonePointerToString(configuration.EncodedCertificate) + + // HostName + destination.HostName = genruntime.ClonePointerToString(configuration.HostName) + + // IdentityClientId + destination.IdentityClientId = genruntime.ClonePointerToString(configuration.IdentityClientId) + + // KeyVaultId + destination.KeyVaultId = genruntime.ClonePointerToString(configuration.KeyVaultId) + + // NegotiateClientCertificate + if configuration.NegotiateClientCertificate != nil { + negotiateClientCertificate := *configuration.NegotiateClientCertificate + destination.NegotiateClientCertificate = &negotiateClientCertificate + } else { + destination.NegotiateClientCertificate = nil + } + + // Type + if configuration.Type != nil { + typeVar := string(*configuration.Type) + destination.Type = &typeVar + } else { + destination.Type = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Remote Private Endpoint Connection resource. +type RemotePrivateEndpointConnectionWrapper_STATUS struct { + // GroupIds: All the Group ids. + GroupIds []string `json:"groupIds,omitempty"` + + // Id: Private Endpoint connection resource id + Id *string `json:"id,omitempty"` + + // Name: Private Endpoint Connection Name + Name *string `json:"name,omitempty"` + + // PrivateEndpoint: The resource of private end point. + PrivateEndpoint *ArmIdWrapper_STATUS `json:"privateEndpoint,omitempty"` + + // PrivateLinkServiceConnectionState: A collection of information about the state of the connection between service + // consumer and provider. + PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState_STATUS `json:"privateLinkServiceConnectionState,omitempty"` + + // ProvisioningState: The provisioning state of the private endpoint connection resource. + ProvisioningState *string `json:"provisioningState,omitempty"` + + // Type: Private Endpoint Connection Resource Type + Type *string `json:"type,omitempty"` +} + +var _ genruntime.FromARMConverter = &RemotePrivateEndpointConnectionWrapper_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (wrapper *RemotePrivateEndpointConnectionWrapper_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &RemotePrivateEndpointConnectionWrapper_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (wrapper *RemotePrivateEndpointConnectionWrapper_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(RemotePrivateEndpointConnectionWrapper_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected RemotePrivateEndpointConnectionWrapper_STATUS_ARM, got %T", armInput) + } + + // Set property "GroupIds": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.GroupIds { + wrapper.GroupIds = append(wrapper.GroupIds, item) + } + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + wrapper.Id = &id + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + wrapper.Name = &name + } + + // Set property "PrivateEndpoint": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PrivateEndpoint != nil { + var privateEndpoint1 ArmIdWrapper_STATUS + err := privateEndpoint1.PopulateFromARM(owner, *typedInput.Properties.PrivateEndpoint) + if err != nil { + return err + } + privateEndpoint := privateEndpoint1 + wrapper.PrivateEndpoint = &privateEndpoint + } + } + + // Set property "PrivateLinkServiceConnectionState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PrivateLinkServiceConnectionState != nil { + var privateLinkServiceConnectionState1 PrivateLinkServiceConnectionState_STATUS + err := privateLinkServiceConnectionState1.PopulateFromARM(owner, *typedInput.Properties.PrivateLinkServiceConnectionState) + if err != nil { + return err + } + privateLinkServiceConnectionState := privateLinkServiceConnectionState1 + wrapper.PrivateLinkServiceConnectionState = &privateLinkServiceConnectionState + } + } + + // Set property "ProvisioningState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ProvisioningState != nil { + provisioningState := *typedInput.Properties.ProvisioningState + wrapper.ProvisioningState = &provisioningState + } + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + wrapper.Type = &typeVar + } + + // No error + return nil +} + +// AssignProperties_From_RemotePrivateEndpointConnectionWrapper_STATUS populates our RemotePrivateEndpointConnectionWrapper_STATUS from the provided source RemotePrivateEndpointConnectionWrapper_STATUS +func (wrapper *RemotePrivateEndpointConnectionWrapper_STATUS) AssignProperties_From_RemotePrivateEndpointConnectionWrapper_STATUS(source *v20220801s.RemotePrivateEndpointConnectionWrapper_STATUS) error { + + // GroupIds + wrapper.GroupIds = genruntime.CloneSliceOfString(source.GroupIds) + + // Id + wrapper.Id = genruntime.ClonePointerToString(source.Id) + + // Name + wrapper.Name = genruntime.ClonePointerToString(source.Name) + + // PrivateEndpoint + if source.PrivateEndpoint != nil { + var privateEndpoint ArmIdWrapper_STATUS + err := privateEndpoint.AssignProperties_From_ArmIdWrapper_STATUS(source.PrivateEndpoint) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_ArmIdWrapper_STATUS() to populate field PrivateEndpoint") + } + wrapper.PrivateEndpoint = &privateEndpoint + } else { + wrapper.PrivateEndpoint = nil + } + + // PrivateLinkServiceConnectionState + if source.PrivateLinkServiceConnectionState != nil { + var privateLinkServiceConnectionState PrivateLinkServiceConnectionState_STATUS + err := privateLinkServiceConnectionState.AssignProperties_From_PrivateLinkServiceConnectionState_STATUS(source.PrivateLinkServiceConnectionState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrivateLinkServiceConnectionState_STATUS() to populate field PrivateLinkServiceConnectionState") + } + wrapper.PrivateLinkServiceConnectionState = &privateLinkServiceConnectionState + } else { + wrapper.PrivateLinkServiceConnectionState = nil + } + + // ProvisioningState + wrapper.ProvisioningState = genruntime.ClonePointerToString(source.ProvisioningState) + + // Type + wrapper.Type = genruntime.ClonePointerToString(source.Type) + + // No error + return nil +} + +// AssignProperties_To_RemotePrivateEndpointConnectionWrapper_STATUS populates the provided destination RemotePrivateEndpointConnectionWrapper_STATUS from our RemotePrivateEndpointConnectionWrapper_STATUS +func (wrapper *RemotePrivateEndpointConnectionWrapper_STATUS) AssignProperties_To_RemotePrivateEndpointConnectionWrapper_STATUS(destination *v20220801s.RemotePrivateEndpointConnectionWrapper_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // GroupIds + destination.GroupIds = genruntime.CloneSliceOfString(wrapper.GroupIds) + + // Id + destination.Id = genruntime.ClonePointerToString(wrapper.Id) + + // Name + destination.Name = genruntime.ClonePointerToString(wrapper.Name) + + // PrivateEndpoint + if wrapper.PrivateEndpoint != nil { + var privateEndpoint v20220801s.ArmIdWrapper_STATUS + err := wrapper.PrivateEndpoint.AssignProperties_To_ArmIdWrapper_STATUS(&privateEndpoint) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_ArmIdWrapper_STATUS() to populate field PrivateEndpoint") + } + destination.PrivateEndpoint = &privateEndpoint + } else { + destination.PrivateEndpoint = nil + } + + // PrivateLinkServiceConnectionState + if wrapper.PrivateLinkServiceConnectionState != nil { + var privateLinkServiceConnectionState v20220801s.PrivateLinkServiceConnectionState_STATUS + err := wrapper.PrivateLinkServiceConnectionState.AssignProperties_To_PrivateLinkServiceConnectionState_STATUS(&privateLinkServiceConnectionState) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrivateLinkServiceConnectionState_STATUS() to populate field PrivateLinkServiceConnectionState") + } + destination.PrivateLinkServiceConnectionState = &privateLinkServiceConnectionState + } else { + destination.PrivateLinkServiceConnectionState = nil + } + + // ProvisioningState + destination.ProvisioningState = genruntime.ClonePointerToString(wrapper.ProvisioningState) + + // Type + destination.Type = genruntime.ClonePointerToString(wrapper.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Metadata pertaining to creation and last modification of the resource. +type SystemData_STATUS struct { + // CreatedAt: The timestamp of resource creation (UTC). + CreatedAt *string `json:"createdAt,omitempty"` + + // CreatedBy: The identity that created the resource. + CreatedBy *string `json:"createdBy,omitempty"` + + // CreatedByType: The type of identity that created the resource. + CreatedByType *SystemData_CreatedByType_STATUS `json:"createdByType,omitempty"` + + // LastModifiedAt: The timestamp of resource last modification (UTC) + LastModifiedAt *string `json:"lastModifiedAt,omitempty"` + + // LastModifiedBy: The identity that last modified the resource. + LastModifiedBy *string `json:"lastModifiedBy,omitempty"` + + // LastModifiedByType: The type of identity that last modified the resource. + LastModifiedByType *SystemData_LastModifiedByType_STATUS `json:"lastModifiedByType,omitempty"` +} + +var _ genruntime.FromARMConverter = &SystemData_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (data *SystemData_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &SystemData_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (data *SystemData_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(SystemData_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected SystemData_STATUS_ARM, got %T", armInput) + } + + // Set property "CreatedAt": + if typedInput.CreatedAt != nil { + createdAt := *typedInput.CreatedAt + data.CreatedAt = &createdAt + } + + // Set property "CreatedBy": + if typedInput.CreatedBy != nil { + createdBy := *typedInput.CreatedBy + data.CreatedBy = &createdBy + } + + // Set property "CreatedByType": + if typedInput.CreatedByType != nil { + createdByType := *typedInput.CreatedByType + data.CreatedByType = &createdByType + } + + // Set property "LastModifiedAt": + if typedInput.LastModifiedAt != nil { + lastModifiedAt := *typedInput.LastModifiedAt + data.LastModifiedAt = &lastModifiedAt + } + + // Set property "LastModifiedBy": + if typedInput.LastModifiedBy != nil { + lastModifiedBy := *typedInput.LastModifiedBy + data.LastModifiedBy = &lastModifiedBy + } + + // Set property "LastModifiedByType": + if typedInput.LastModifiedByType != nil { + lastModifiedByType := *typedInput.LastModifiedByType + data.LastModifiedByType = &lastModifiedByType + } + + // No error + return nil +} + +// AssignProperties_From_SystemData_STATUS populates our SystemData_STATUS from the provided source SystemData_STATUS +func (data *SystemData_STATUS) AssignProperties_From_SystemData_STATUS(source *v20220801s.SystemData_STATUS) error { + + // CreatedAt + data.CreatedAt = genruntime.ClonePointerToString(source.CreatedAt) + + // CreatedBy + data.CreatedBy = genruntime.ClonePointerToString(source.CreatedBy) + + // CreatedByType + if source.CreatedByType != nil { + createdByType := SystemData_CreatedByType_STATUS(*source.CreatedByType) + data.CreatedByType = &createdByType + } else { + data.CreatedByType = nil + } + + // LastModifiedAt + data.LastModifiedAt = genruntime.ClonePointerToString(source.LastModifiedAt) + + // LastModifiedBy + data.LastModifiedBy = genruntime.ClonePointerToString(source.LastModifiedBy) + + // LastModifiedByType + if source.LastModifiedByType != nil { + lastModifiedByType := SystemData_LastModifiedByType_STATUS(*source.LastModifiedByType) + data.LastModifiedByType = &lastModifiedByType + } else { + data.LastModifiedByType = nil + } + + // No error + return nil +} + +// AssignProperties_To_SystemData_STATUS populates the provided destination SystemData_STATUS from our SystemData_STATUS +func (data *SystemData_STATUS) AssignProperties_To_SystemData_STATUS(destination *v20220801s.SystemData_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // CreatedAt + destination.CreatedAt = genruntime.ClonePointerToString(data.CreatedAt) + + // CreatedBy + destination.CreatedBy = genruntime.ClonePointerToString(data.CreatedBy) + + // CreatedByType + if data.CreatedByType != nil { + createdByType := string(*data.CreatedByType) + destination.CreatedByType = &createdByType + } else { + destination.CreatedByType = nil + } + + // LastModifiedAt + destination.LastModifiedAt = genruntime.ClonePointerToString(data.LastModifiedAt) + + // LastModifiedBy + destination.LastModifiedBy = genruntime.ClonePointerToString(data.LastModifiedBy) + + // LastModifiedByType + if data.LastModifiedByType != nil { + lastModifiedByType := string(*data.LastModifiedByType) + destination.LastModifiedByType = &lastModifiedByType + } else { + destination.LastModifiedByType = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Configuration of a virtual network to which API Management service is deployed. +type VirtualNetworkConfiguration struct { + // SubnetResourceReference: The full resource ID of a subnet in a virtual network to deploy the API Management service in. + SubnetResourceReference *genruntime.ResourceReference `armReference:"SubnetResourceId" json:"subnetResourceReference,omitempty"` +} + +var _ genruntime.ARMTransformer = &VirtualNetworkConfiguration{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (configuration *VirtualNetworkConfiguration) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if configuration == nil { + return nil, nil + } + result := &VirtualNetworkConfiguration_ARM{} + + // Set property "SubnetResourceId": + if configuration.SubnetResourceReference != nil { + subnetResourceReferenceARMID, err := resolved.ResolvedReferences.Lookup(*configuration.SubnetResourceReference) + if err != nil { + return nil, err + } + subnetResourceReference := subnetResourceReferenceARMID + result.SubnetResourceId = &subnetResourceReference + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (configuration *VirtualNetworkConfiguration) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &VirtualNetworkConfiguration_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (configuration *VirtualNetworkConfiguration) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + _, ok := armInput.(VirtualNetworkConfiguration_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected VirtualNetworkConfiguration_ARM, got %T", armInput) + } + + // no assignment for property "SubnetResourceReference" + + // No error + return nil +} + +// AssignProperties_From_VirtualNetworkConfiguration populates our VirtualNetworkConfiguration from the provided source VirtualNetworkConfiguration +func (configuration *VirtualNetworkConfiguration) AssignProperties_From_VirtualNetworkConfiguration(source *v20220801s.VirtualNetworkConfiguration) error { + + // SubnetResourceReference + if source.SubnetResourceReference != nil { + subnetResourceReference := source.SubnetResourceReference.Copy() + configuration.SubnetResourceReference = &subnetResourceReference + } else { + configuration.SubnetResourceReference = nil + } + + // No error + return nil +} + +// AssignProperties_To_VirtualNetworkConfiguration populates the provided destination VirtualNetworkConfiguration from our VirtualNetworkConfiguration +func (configuration *VirtualNetworkConfiguration) AssignProperties_To_VirtualNetworkConfiguration(destination *v20220801s.VirtualNetworkConfiguration) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // SubnetResourceReference + if configuration.SubnetResourceReference != nil { + subnetResourceReference := configuration.SubnetResourceReference.Copy() + destination.SubnetResourceReference = &subnetResourceReference + } else { + destination.SubnetResourceReference = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_VirtualNetworkConfiguration_STATUS populates our VirtualNetworkConfiguration from the provided source VirtualNetworkConfiguration_STATUS +func (configuration *VirtualNetworkConfiguration) Initialize_From_VirtualNetworkConfiguration_STATUS(source *VirtualNetworkConfiguration_STATUS) error { + + // SubnetResourceReference + if source.SubnetResourceId != nil { + subnetResourceReference := genruntime.CreateResourceReferenceFromARMID(*source.SubnetResourceId) + configuration.SubnetResourceReference = &subnetResourceReference + } else { + configuration.SubnetResourceReference = nil + } + + // No error + return nil +} + +// Configuration of a virtual network to which API Management service is deployed. +type VirtualNetworkConfiguration_STATUS struct { + // SubnetResourceId: The full resource ID of a subnet in a virtual network to deploy the API Management service in. + SubnetResourceId *string `json:"subnetResourceId,omitempty"` + + // Subnetname: The name of the subnet. + Subnetname *string `json:"subnetname,omitempty"` + + // Vnetid: The virtual network ID. This is typically a GUID. Expect a null GUID by default. + Vnetid *string `json:"vnetid,omitempty"` +} + +var _ genruntime.FromARMConverter = &VirtualNetworkConfiguration_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (configuration *VirtualNetworkConfiguration_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &VirtualNetworkConfiguration_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (configuration *VirtualNetworkConfiguration_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(VirtualNetworkConfiguration_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected VirtualNetworkConfiguration_STATUS_ARM, got %T", armInput) + } + + // Set property "SubnetResourceId": + if typedInput.SubnetResourceId != nil { + subnetResourceId := *typedInput.SubnetResourceId + configuration.SubnetResourceId = &subnetResourceId + } + + // Set property "Subnetname": + if typedInput.Subnetname != nil { + subnetname := *typedInput.Subnetname + configuration.Subnetname = &subnetname + } + + // Set property "Vnetid": + if typedInput.Vnetid != nil { + vnetid := *typedInput.Vnetid + configuration.Vnetid = &vnetid + } + + // No error + return nil +} + +// AssignProperties_From_VirtualNetworkConfiguration_STATUS populates our VirtualNetworkConfiguration_STATUS from the provided source VirtualNetworkConfiguration_STATUS +func (configuration *VirtualNetworkConfiguration_STATUS) AssignProperties_From_VirtualNetworkConfiguration_STATUS(source *v20220801s.VirtualNetworkConfiguration_STATUS) error { + + // SubnetResourceId + configuration.SubnetResourceId = genruntime.ClonePointerToString(source.SubnetResourceId) + + // Subnetname + configuration.Subnetname = genruntime.ClonePointerToString(source.Subnetname) + + // Vnetid + configuration.Vnetid = genruntime.ClonePointerToString(source.Vnetid) + + // No error + return nil +} + +// AssignProperties_To_VirtualNetworkConfiguration_STATUS populates the provided destination VirtualNetworkConfiguration_STATUS from our VirtualNetworkConfiguration_STATUS +func (configuration *VirtualNetworkConfiguration_STATUS) AssignProperties_To_VirtualNetworkConfiguration_STATUS(destination *v20220801s.VirtualNetworkConfiguration_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // SubnetResourceId + destination.SubnetResourceId = genruntime.ClonePointerToString(configuration.SubnetResourceId) + + // Subnetname + destination.Subnetname = genruntime.ClonePointerToString(configuration.Subnetname) + + // Vnetid + destination.Vnetid = genruntime.ClonePointerToString(configuration.Vnetid) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"Disabled","Enabled"} +type AdditionalLocation_NatGatewayState string + +const ( + AdditionalLocation_NatGatewayState_Disabled = AdditionalLocation_NatGatewayState("Disabled") + AdditionalLocation_NatGatewayState_Enabled = AdditionalLocation_NatGatewayState("Enabled") +) + +type AdditionalLocation_NatGatewayState_STATUS string + +const ( + AdditionalLocation_NatGatewayState_STATUS_Disabled = AdditionalLocation_NatGatewayState_STATUS("Disabled") + AdditionalLocation_NatGatewayState_STATUS_Enabled = AdditionalLocation_NatGatewayState_STATUS("Enabled") +) + +type AdditionalLocation_PlatformVersion_STATUS string + +const ( + AdditionalLocation_PlatformVersion_STATUS_Mtv1 = AdditionalLocation_PlatformVersion_STATUS("mtv1") + AdditionalLocation_PlatformVersion_STATUS_Stv1 = AdditionalLocation_PlatformVersion_STATUS("stv1") + AdditionalLocation_PlatformVersion_STATUS_Stv2 = AdditionalLocation_PlatformVersion_STATUS("stv2") + AdditionalLocation_PlatformVersion_STATUS_Undetermined = AdditionalLocation_PlatformVersion_STATUS("undetermined") +) + +// A wrapper for an ARM resource id +type ArmIdWrapper_STATUS struct { + Id *string `json:"id,omitempty"` +} + +var _ genruntime.FromARMConverter = &ArmIdWrapper_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (wrapper *ArmIdWrapper_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &ArmIdWrapper_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (wrapper *ArmIdWrapper_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(ArmIdWrapper_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected ArmIdWrapper_STATUS_ARM, got %T", armInput) + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + wrapper.Id = &id + } + + // No error + return nil +} + +// AssignProperties_From_ArmIdWrapper_STATUS populates our ArmIdWrapper_STATUS from the provided source ArmIdWrapper_STATUS +func (wrapper *ArmIdWrapper_STATUS) AssignProperties_From_ArmIdWrapper_STATUS(source *v20220801s.ArmIdWrapper_STATUS) error { + + // Id + wrapper.Id = genruntime.ClonePointerToString(source.Id) + + // No error + return nil +} + +// AssignProperties_To_ArmIdWrapper_STATUS populates the provided destination ArmIdWrapper_STATUS from our ArmIdWrapper_STATUS +func (wrapper *ArmIdWrapper_STATUS) AssignProperties_To_ArmIdWrapper_STATUS(destination *v20220801s.ArmIdWrapper_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Id + destination.Id = genruntime.ClonePointerToString(wrapper.Id) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"CertificateAuthority","Root"} +type CertificateConfiguration_StoreName string + +const ( + CertificateConfiguration_StoreName_CertificateAuthority = CertificateConfiguration_StoreName("CertificateAuthority") + CertificateConfiguration_StoreName_Root = CertificateConfiguration_StoreName("Root") +) + +type CertificateConfiguration_StoreName_STATUS string + +const ( + CertificateConfiguration_StoreName_STATUS_CertificateAuthority = CertificateConfiguration_StoreName_STATUS("CertificateAuthority") + CertificateConfiguration_StoreName_STATUS_Root = CertificateConfiguration_StoreName_STATUS("Root") +) + +// SSL certificate information. +type CertificateInformation struct { + // Expiry: Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as + // specified by the ISO 8601 standard. + Expiry *string `json:"expiry,omitempty" optionalConfigMapPair:"Expiry"` + + // ExpiryFromConfig: Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` + // as specified by the ISO 8601 standard. + ExpiryFromConfig *genruntime.ConfigMapReference `json:"expiryFromConfig,omitempty" optionalConfigMapPair:"Expiry"` + + // Subject: Subject of the certificate. + Subject *string `json:"subject,omitempty" optionalConfigMapPair:"Subject"` + + // SubjectFromConfig: Subject of the certificate. + SubjectFromConfig *genruntime.ConfigMapReference `json:"subjectFromConfig,omitempty" optionalConfigMapPair:"Subject"` + + // Thumbprint: Thumbprint of the certificate. + Thumbprint *string `json:"thumbprint,omitempty" optionalConfigMapPair:"Thumbprint"` + + // ThumbprintFromConfig: Thumbprint of the certificate. + ThumbprintFromConfig *genruntime.ConfigMapReference `json:"thumbprintFromConfig,omitempty" optionalConfigMapPair:"Thumbprint"` +} + +var _ genruntime.ARMTransformer = &CertificateInformation{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (information *CertificateInformation) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if information == nil { + return nil, nil + } + result := &CertificateInformation_ARM{} + + // Set property "Expiry": + if information.Expiry != nil { + expiry := *information.Expiry + result.Expiry = &expiry + } + if information.ExpiryFromConfig != nil { + expiryValue, err := resolved.ResolvedConfigMaps.Lookup(*information.ExpiryFromConfig) + if err != nil { + return nil, errors.Wrap(err, "looking up configmap for property Expiry") + } + expiry := expiryValue + result.Expiry = &expiry + } + + // Set property "Subject": + if information.Subject != nil { + subject := *information.Subject + result.Subject = &subject + } + if information.SubjectFromConfig != nil { + subjectValue, err := resolved.ResolvedConfigMaps.Lookup(*information.SubjectFromConfig) + if err != nil { + return nil, errors.Wrap(err, "looking up configmap for property Subject") + } + subject := subjectValue + result.Subject = &subject + } + + // Set property "Thumbprint": + if information.Thumbprint != nil { + thumbprint := *information.Thumbprint + result.Thumbprint = &thumbprint + } + if information.ThumbprintFromConfig != nil { + thumbprintValue, err := resolved.ResolvedConfigMaps.Lookup(*information.ThumbprintFromConfig) + if err != nil { + return nil, errors.Wrap(err, "looking up configmap for property Thumbprint") + } + thumbprint := thumbprintValue + result.Thumbprint = &thumbprint + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (information *CertificateInformation) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &CertificateInformation_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (information *CertificateInformation) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(CertificateInformation_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected CertificateInformation_ARM, got %T", armInput) + } + + // Set property "Expiry": + if typedInput.Expiry != nil { + expiry := *typedInput.Expiry + information.Expiry = &expiry + } + + // no assignment for property "ExpiryFromConfig" + + // Set property "Subject": + if typedInput.Subject != nil { + subject := *typedInput.Subject + information.Subject = &subject + } + + // no assignment for property "SubjectFromConfig" + + // Set property "Thumbprint": + if typedInput.Thumbprint != nil { + thumbprint := *typedInput.Thumbprint + information.Thumbprint = &thumbprint + } + + // no assignment for property "ThumbprintFromConfig" + + // No error + return nil +} + +// AssignProperties_From_CertificateInformation populates our CertificateInformation from the provided source CertificateInformation +func (information *CertificateInformation) AssignProperties_From_CertificateInformation(source *v20220801s.CertificateInformation) error { + + // Expiry + information.Expiry = genruntime.ClonePointerToString(source.Expiry) + + // ExpiryFromConfig + if source.ExpiryFromConfig != nil { + expiryFromConfig := source.ExpiryFromConfig.Copy() + information.ExpiryFromConfig = &expiryFromConfig + } else { + information.ExpiryFromConfig = nil + } + + // Subject + information.Subject = genruntime.ClonePointerToString(source.Subject) + + // SubjectFromConfig + if source.SubjectFromConfig != nil { + subjectFromConfig := source.SubjectFromConfig.Copy() + information.SubjectFromConfig = &subjectFromConfig + } else { + information.SubjectFromConfig = nil + } + + // Thumbprint + information.Thumbprint = genruntime.ClonePointerToString(source.Thumbprint) + + // ThumbprintFromConfig + if source.ThumbprintFromConfig != nil { + thumbprintFromConfig := source.ThumbprintFromConfig.Copy() + information.ThumbprintFromConfig = &thumbprintFromConfig + } else { + information.ThumbprintFromConfig = nil + } + + // No error + return nil +} + +// AssignProperties_To_CertificateInformation populates the provided destination CertificateInformation from our CertificateInformation +func (information *CertificateInformation) AssignProperties_To_CertificateInformation(destination *v20220801s.CertificateInformation) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Expiry + destination.Expiry = genruntime.ClonePointerToString(information.Expiry) + + // ExpiryFromConfig + if information.ExpiryFromConfig != nil { + expiryFromConfig := information.ExpiryFromConfig.Copy() + destination.ExpiryFromConfig = &expiryFromConfig + } else { + destination.ExpiryFromConfig = nil + } + + // Subject + destination.Subject = genruntime.ClonePointerToString(information.Subject) + + // SubjectFromConfig + if information.SubjectFromConfig != nil { + subjectFromConfig := information.SubjectFromConfig.Copy() + destination.SubjectFromConfig = &subjectFromConfig + } else { + destination.SubjectFromConfig = nil + } + + // Thumbprint + destination.Thumbprint = genruntime.ClonePointerToString(information.Thumbprint) + + // ThumbprintFromConfig + if information.ThumbprintFromConfig != nil { + thumbprintFromConfig := information.ThumbprintFromConfig.Copy() + destination.ThumbprintFromConfig = &thumbprintFromConfig + } else { + destination.ThumbprintFromConfig = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_CertificateInformation_STATUS populates our CertificateInformation from the provided source CertificateInformation_STATUS +func (information *CertificateInformation) Initialize_From_CertificateInformation_STATUS(source *CertificateInformation_STATUS) error { + + // Expiry + information.Expiry = genruntime.ClonePointerToString(source.Expiry) + + // Subject + information.Subject = genruntime.ClonePointerToString(source.Subject) + + // Thumbprint + information.Thumbprint = genruntime.ClonePointerToString(source.Thumbprint) + + // No error + return nil +} + +// SSL certificate information. +type CertificateInformation_STATUS struct { + // Expiry: Expiration date of the certificate. The date conforms to the following format: `yyyy-MM-ddTHH:mm:ssZ` as + // specified by the ISO 8601 standard. + Expiry *string `json:"expiry,omitempty"` + + // Subject: Subject of the certificate. + Subject *string `json:"subject,omitempty"` + + // Thumbprint: Thumbprint of the certificate. + Thumbprint *string `json:"thumbprint,omitempty"` +} + +var _ genruntime.FromARMConverter = &CertificateInformation_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (information *CertificateInformation_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &CertificateInformation_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (information *CertificateInformation_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(CertificateInformation_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected CertificateInformation_STATUS_ARM, got %T", armInput) + } + + // Set property "Expiry": + if typedInput.Expiry != nil { + expiry := *typedInput.Expiry + information.Expiry = &expiry + } + + // Set property "Subject": + if typedInput.Subject != nil { + subject := *typedInput.Subject + information.Subject = &subject + } + + // Set property "Thumbprint": + if typedInput.Thumbprint != nil { + thumbprint := *typedInput.Thumbprint + information.Thumbprint = &thumbprint + } + + // No error + return nil +} + +// AssignProperties_From_CertificateInformation_STATUS populates our CertificateInformation_STATUS from the provided source CertificateInformation_STATUS +func (information *CertificateInformation_STATUS) AssignProperties_From_CertificateInformation_STATUS(source *v20220801s.CertificateInformation_STATUS) error { + + // Expiry + information.Expiry = genruntime.ClonePointerToString(source.Expiry) + + // Subject + information.Subject = genruntime.ClonePointerToString(source.Subject) + + // Thumbprint + information.Thumbprint = genruntime.ClonePointerToString(source.Thumbprint) + + // No error + return nil +} + +// AssignProperties_To_CertificateInformation_STATUS populates the provided destination CertificateInformation_STATUS from our CertificateInformation_STATUS +func (information *CertificateInformation_STATUS) AssignProperties_To_CertificateInformation_STATUS(destination *v20220801s.CertificateInformation_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Expiry + destination.Expiry = genruntime.ClonePointerToString(information.Expiry) + + // Subject + destination.Subject = genruntime.ClonePointerToString(information.Subject) + + // Thumbprint + destination.Thumbprint = genruntime.ClonePointerToString(information.Thumbprint) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"BuiltIn","Custom","KeyVault","Managed"} +type HostnameConfiguration_CertificateSource string + +const ( + HostnameConfiguration_CertificateSource_BuiltIn = HostnameConfiguration_CertificateSource("BuiltIn") + HostnameConfiguration_CertificateSource_Custom = HostnameConfiguration_CertificateSource("Custom") + HostnameConfiguration_CertificateSource_KeyVault = HostnameConfiguration_CertificateSource("KeyVault") + HostnameConfiguration_CertificateSource_Managed = HostnameConfiguration_CertificateSource("Managed") +) + +type HostnameConfiguration_CertificateSource_STATUS string + +const ( + HostnameConfiguration_CertificateSource_STATUS_BuiltIn = HostnameConfiguration_CertificateSource_STATUS("BuiltIn") + HostnameConfiguration_CertificateSource_STATUS_Custom = HostnameConfiguration_CertificateSource_STATUS("Custom") + HostnameConfiguration_CertificateSource_STATUS_KeyVault = HostnameConfiguration_CertificateSource_STATUS("KeyVault") + HostnameConfiguration_CertificateSource_STATUS_Managed = HostnameConfiguration_CertificateSource_STATUS("Managed") +) + +// +kubebuilder:validation:Enum={"Completed","Failed","InProgress"} +type HostnameConfiguration_CertificateStatus string + +const ( + HostnameConfiguration_CertificateStatus_Completed = HostnameConfiguration_CertificateStatus("Completed") + HostnameConfiguration_CertificateStatus_Failed = HostnameConfiguration_CertificateStatus("Failed") + HostnameConfiguration_CertificateStatus_InProgress = HostnameConfiguration_CertificateStatus("InProgress") +) + +type HostnameConfiguration_CertificateStatus_STATUS string + +const ( + HostnameConfiguration_CertificateStatus_STATUS_Completed = HostnameConfiguration_CertificateStatus_STATUS("Completed") + HostnameConfiguration_CertificateStatus_STATUS_Failed = HostnameConfiguration_CertificateStatus_STATUS("Failed") + HostnameConfiguration_CertificateStatus_STATUS_InProgress = HostnameConfiguration_CertificateStatus_STATUS("InProgress") +) + +// +kubebuilder:validation:Enum={"DeveloperPortal","Management","Portal","Proxy","Scm"} +type HostnameConfiguration_Type string + +const ( + HostnameConfiguration_Type_DeveloperPortal = HostnameConfiguration_Type("DeveloperPortal") + HostnameConfiguration_Type_Management = HostnameConfiguration_Type("Management") + HostnameConfiguration_Type_Portal = HostnameConfiguration_Type("Portal") + HostnameConfiguration_Type_Proxy = HostnameConfiguration_Type("Proxy") + HostnameConfiguration_Type_Scm = HostnameConfiguration_Type("Scm") +) + +type HostnameConfiguration_Type_STATUS string + +const ( + HostnameConfiguration_Type_STATUS_DeveloperPortal = HostnameConfiguration_Type_STATUS("DeveloperPortal") + HostnameConfiguration_Type_STATUS_Management = HostnameConfiguration_Type_STATUS("Management") + HostnameConfiguration_Type_STATUS_Portal = HostnameConfiguration_Type_STATUS("Portal") + HostnameConfiguration_Type_STATUS_Proxy = HostnameConfiguration_Type_STATUS("Proxy") + HostnameConfiguration_Type_STATUS_Scm = HostnameConfiguration_Type_STATUS("Scm") +) + +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionState_STATUS struct { + // ActionsRequired: A message indicating if changes on the service provider require any updates on the consumer. + ActionsRequired *string `json:"actionsRequired,omitempty"` + + // Description: The reason for approval/rejection of the connection. + Description *string `json:"description,omitempty"` + + // Status: Indicates whether the connection has been Approved/Rejected/Removed by the owner of the service. + Status *PrivateEndpointServiceConnectionStatus_STATUS `json:"status,omitempty"` +} + +var _ genruntime.FromARMConverter = &PrivateLinkServiceConnectionState_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (state *PrivateLinkServiceConnectionState_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrivateLinkServiceConnectionState_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (state *PrivateLinkServiceConnectionState_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrivateLinkServiceConnectionState_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrivateLinkServiceConnectionState_STATUS_ARM, got %T", armInput) + } + + // Set property "ActionsRequired": + if typedInput.ActionsRequired != nil { + actionsRequired := *typedInput.ActionsRequired + state.ActionsRequired = &actionsRequired + } + + // Set property "Description": + if typedInput.Description != nil { + description := *typedInput.Description + state.Description = &description + } + + // Set property "Status": + if typedInput.Status != nil { + status := *typedInput.Status + state.Status = &status + } + + // No error + return nil +} + +// AssignProperties_From_PrivateLinkServiceConnectionState_STATUS populates our PrivateLinkServiceConnectionState_STATUS from the provided source PrivateLinkServiceConnectionState_STATUS +func (state *PrivateLinkServiceConnectionState_STATUS) AssignProperties_From_PrivateLinkServiceConnectionState_STATUS(source *v20220801s.PrivateLinkServiceConnectionState_STATUS) error { + + // ActionsRequired + state.ActionsRequired = genruntime.ClonePointerToString(source.ActionsRequired) + + // Description + state.Description = genruntime.ClonePointerToString(source.Description) + + // Status + if source.Status != nil { + status := PrivateEndpointServiceConnectionStatus_STATUS(*source.Status) + state.Status = &status + } else { + state.Status = nil + } + + // No error + return nil +} + +// AssignProperties_To_PrivateLinkServiceConnectionState_STATUS populates the provided destination PrivateLinkServiceConnectionState_STATUS from our PrivateLinkServiceConnectionState_STATUS +func (state *PrivateLinkServiceConnectionState_STATUS) AssignProperties_To_PrivateLinkServiceConnectionState_STATUS(destination *v20220801s.PrivateLinkServiceConnectionState_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ActionsRequired + destination.ActionsRequired = genruntime.ClonePointerToString(state.ActionsRequired) + + // Description + destination.Description = genruntime.ClonePointerToString(state.Description) + + // Status + if state.Status != nil { + status := string(*state.Status) + destination.Status = &status + } else { + destination.Status = nil + } + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Information about the user assigned identity for the resource +type UserAssignedIdentityDetails struct { + Reference genruntime.ResourceReference `armReference:"Reference" json:"reference,omitempty"` +} + +// AssignProperties_From_UserAssignedIdentityDetails populates our UserAssignedIdentityDetails from the provided source UserAssignedIdentityDetails +func (details *UserAssignedIdentityDetails) AssignProperties_From_UserAssignedIdentityDetails(source *v20220801s.UserAssignedIdentityDetails) error { + + // Reference + details.Reference = source.Reference.Copy() + + // No error + return nil +} + +// AssignProperties_To_UserAssignedIdentityDetails populates the provided destination UserAssignedIdentityDetails from our UserAssignedIdentityDetails +func (details *UserAssignedIdentityDetails) AssignProperties_To_UserAssignedIdentityDetails(destination *v20220801s.UserAssignedIdentityDetails) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Reference + destination.Reference = details.Reference.Copy() + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +type UserIdentityProperties_STATUS struct { + // ClientId: The client id of user assigned identity. + ClientId *string `json:"clientId,omitempty"` + + // PrincipalId: The principal id of user assigned identity. + PrincipalId *string `json:"principalId,omitempty"` +} + +var _ genruntime.FromARMConverter = &UserIdentityProperties_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (properties *UserIdentityProperties_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &UserIdentityProperties_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (properties *UserIdentityProperties_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(UserIdentityProperties_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected UserIdentityProperties_STATUS_ARM, got %T", armInput) + } + + // Set property "ClientId": + if typedInput.ClientId != nil { + clientId := *typedInput.ClientId + properties.ClientId = &clientId + } + + // Set property "PrincipalId": + if typedInput.PrincipalId != nil { + principalId := *typedInput.PrincipalId + properties.PrincipalId = &principalId + } + + // No error + return nil +} + +// AssignProperties_From_UserIdentityProperties_STATUS populates our UserIdentityProperties_STATUS from the provided source UserIdentityProperties_STATUS +func (properties *UserIdentityProperties_STATUS) AssignProperties_From_UserIdentityProperties_STATUS(source *v20220801s.UserIdentityProperties_STATUS) error { + + // ClientId + properties.ClientId = genruntime.ClonePointerToString(source.ClientId) + + // PrincipalId + properties.PrincipalId = genruntime.ClonePointerToString(source.PrincipalId) + + // No error + return nil +} + +// AssignProperties_To_UserIdentityProperties_STATUS populates the provided destination UserIdentityProperties_STATUS from our UserIdentityProperties_STATUS +func (properties *UserIdentityProperties_STATUS) AssignProperties_To_UserIdentityProperties_STATUS(destination *v20220801s.UserIdentityProperties_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ClientId + destination.ClientId = genruntime.ClonePointerToString(properties.ClientId) + + // PrincipalId + destination.PrincipalId = genruntime.ClonePointerToString(properties.PrincipalId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// The private endpoint connection status. +type PrivateEndpointServiceConnectionStatus_STATUS string + +const ( + PrivateEndpointServiceConnectionStatus_STATUS_Approved = PrivateEndpointServiceConnectionStatus_STATUS("Approved") + PrivateEndpointServiceConnectionStatus_STATUS_Pending = PrivateEndpointServiceConnectionStatus_STATUS("Pending") + PrivateEndpointServiceConnectionStatus_STATUS_Rejected = PrivateEndpointServiceConnectionStatus_STATUS("Rejected") +) + +func init() { + SchemeBuilder.Register(&Service{}, &ServiceList{}) +} diff --git a/v2/api/apimanagement/v1api20220801/service_types_gen_test.go b/v2/api/apimanagement/v1api20220801/service_types_gen_test.go new file mode 100644 index 00000000000..879c4b0e138 --- /dev/null +++ b/v2/api/apimanagement/v1api20220801/service_types_gen_test.go @@ -0,0 +1,2941 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220801 + +import ( + "encoding/json" + v20220801s "github.com/Azure/azure-service-operator/v2/api/apimanagement/v1api20220801storage" + "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_Service_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 Service to hub returns original", + prop.ForAll(RunResourceConversionTestForService, ServiceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunResourceConversionTestForService tests if a specific instance of Service round trips to the hub storage version and back losslessly +func RunResourceConversionTestForService(subject Service) string { + // Copy subject to make sure conversion doesn't modify it + copied := subject.DeepCopy() + + // Convert to our hub version + var hub v20220801s.Service + err := copied.ConvertTo(&hub) + if err != nil { + return err.Error() + } + + // Convert from our hub version + var actual Service + 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_Service_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from Service to Service via AssignProperties_To_Service & AssignProperties_From_Service returns original", + prop.ForAll(RunPropertyAssignmentTestForService, ServiceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForService tests if a specific instance of Service can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForService(subject Service) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20220801s.Service + err := copied.AssignProperties_To_Service(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual Service + err = actual.AssignProperties_From_Service(&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_Service_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 Service via JSON returns original", + prop.ForAll(RunJSONSerializationTestForService, ServiceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForService runs a test to see if a specific instance of Service round trips to JSON and back losslessly +func RunJSONSerializationTestForService(subject Service) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Service + 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 Service instances for property testing - lazily instantiated by ServiceGenerator() +var serviceGenerator gopter.Gen + +// ServiceGenerator returns a generator of Service instances for property testing. +func ServiceGenerator() gopter.Gen { + if serviceGenerator != nil { + return serviceGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForService(generators) + serviceGenerator = gen.Struct(reflect.TypeOf(Service{}), generators) + + return serviceGenerator +} + +// AddRelatedPropertyGeneratorsForService is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForService(gens map[string]gopter.Gen) { + gens["Spec"] = Service_SpecGenerator() + gens["Status"] = Service_STATUSGenerator() +} + +func Test_Service_Spec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from Service_Spec to Service_Spec via AssignProperties_To_Service_Spec & AssignProperties_From_Service_Spec returns original", + prop.ForAll(RunPropertyAssignmentTestForService_Spec, Service_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForService_Spec tests if a specific instance of Service_Spec can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForService_Spec(subject Service_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 v20220801s.Service_Spec + err := copied.AssignProperties_To_Service_Spec(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual Service_Spec + err = actual.AssignProperties_From_Service_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_Service_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 Service_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForService_Spec, Service_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForService_Spec runs a test to see if a specific instance of Service_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForService_Spec(subject Service_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Service_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 Service_Spec instances for property testing - lazily instantiated by Service_SpecGenerator() +var service_SpecGenerator gopter.Gen + +// Service_SpecGenerator returns a generator of Service_Spec instances for property testing. +// We first initialize service_SpecGenerator 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 Service_SpecGenerator() gopter.Gen { + if service_SpecGenerator != nil { + return service_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_Spec(generators) + service_SpecGenerator = gen.Struct(reflect.TypeOf(Service_Spec{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_Spec(generators) + AddRelatedPropertyGeneratorsForService_Spec(generators) + service_SpecGenerator = gen.Struct(reflect.TypeOf(Service_Spec{}), generators) + + return service_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForService_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForService_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["CustomProperties"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["EnableClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["NatGatewayState"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_NatGatewayState_Disabled, ApiManagementServiceProperties_NatGatewayState_Enabled)) + gens["NotificationSenderEmail"] = gen.PtrOf(gen.AlphaString()) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_PublicNetworkAccess_Disabled, ApiManagementServiceProperties_PublicNetworkAccess_Enabled)) + gens["PublisherEmail"] = gen.PtrOf(gen.AlphaString()) + gens["PublisherName"] = gen.PtrOf(gen.AlphaString()) + gens["Restore"] = gen.PtrOf(gen.Bool()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["VirtualNetworkType"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_VirtualNetworkType_External, ApiManagementServiceProperties_VirtualNetworkType_Internal, ApiManagementServiceProperties_VirtualNetworkType_None)) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForService_Spec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForService_Spec(gens map[string]gopter.Gen) { + gens["AdditionalLocations"] = gen.SliceOf(AdditionalLocationGenerator()) + gens["ApiVersionConstraint"] = gen.PtrOf(ApiVersionConstraintGenerator()) + gens["Certificates"] = gen.SliceOf(CertificateConfigurationGenerator()) + gens["HostnameConfigurations"] = gen.SliceOf(HostnameConfigurationGenerator()) + gens["Identity"] = gen.PtrOf(ApiManagementServiceIdentityGenerator()) + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuPropertiesGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfigurationGenerator()) +} + +func Test_Service_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from Service_STATUS to Service_STATUS via AssignProperties_To_Service_STATUS & AssignProperties_From_Service_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForService_STATUS, Service_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForService_STATUS tests if a specific instance of Service_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForService_STATUS(subject Service_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 v20220801s.Service_STATUS + err := copied.AssignProperties_To_Service_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual Service_STATUS + err = actual.AssignProperties_From_Service_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_Service_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 Service_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForService_STATUS, Service_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForService_STATUS runs a test to see if a specific instance of Service_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForService_STATUS(subject Service_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Service_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 Service_STATUS instances for property testing - lazily instantiated by Service_STATUSGenerator() +var service_STATUSGenerator gopter.Gen + +// Service_STATUSGenerator returns a generator of Service_STATUS instances for property testing. +// We first initialize service_STATUSGenerator 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 Service_STATUSGenerator() gopter.Gen { + if service_STATUSGenerator != nil { + return service_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_STATUS(generators) + service_STATUSGenerator = gen.Struct(reflect.TypeOf(Service_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_STATUS(generators) + AddRelatedPropertyGeneratorsForService_STATUS(generators) + service_STATUSGenerator = gen.Struct(reflect.TypeOf(Service_STATUS{}), generators) + + return service_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForService_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForService_STATUS(gens map[string]gopter.Gen) { + gens["CreatedAtUtc"] = gen.PtrOf(gen.AlphaString()) + gens["CustomProperties"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["DeveloperPortalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["EnableClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["Etag"] = gen.PtrOf(gen.AlphaString()) + gens["GatewayRegionalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["GatewayUrl"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["ManagementApiUrl"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NatGatewayState"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_NatGatewayState_STATUS_Disabled, ApiManagementServiceProperties_NatGatewayState_STATUS_Enabled)) + gens["NotificationSenderEmail"] = gen.PtrOf(gen.AlphaString()) + gens["OutboundPublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PlatformVersion"] = gen.PtrOf(gen.OneConstOf( + ApiManagementServiceProperties_PlatformVersion_STATUS_Mtv1, + ApiManagementServiceProperties_PlatformVersion_STATUS_Stv1, + ApiManagementServiceProperties_PlatformVersion_STATUS_Stv2, + ApiManagementServiceProperties_PlatformVersion_STATUS_Undetermined)) + gens["PortalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["PrivateIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["PublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PublicIpAddressId"] = gen.PtrOf(gen.AlphaString()) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_PublicNetworkAccess_STATUS_Disabled, ApiManagementServiceProperties_PublicNetworkAccess_STATUS_Enabled)) + gens["PublisherEmail"] = gen.PtrOf(gen.AlphaString()) + gens["PublisherName"] = gen.PtrOf(gen.AlphaString()) + gens["Restore"] = gen.PtrOf(gen.Bool()) + gens["ScmUrl"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["TargetProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) + gens["VirtualNetworkType"] = gen.PtrOf(gen.OneConstOf(ApiManagementServiceProperties_VirtualNetworkType_STATUS_External, ApiManagementServiceProperties_VirtualNetworkType_STATUS_Internal, ApiManagementServiceProperties_VirtualNetworkType_STATUS_None)) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForService_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForService_STATUS(gens map[string]gopter.Gen) { + gens["AdditionalLocations"] = gen.SliceOf(AdditionalLocation_STATUSGenerator()) + gens["ApiVersionConstraint"] = gen.PtrOf(ApiVersionConstraint_STATUSGenerator()) + gens["Certificates"] = gen.SliceOf(CertificateConfiguration_STATUSGenerator()) + gens["HostnameConfigurations"] = gen.SliceOf(HostnameConfiguration_STATUSGenerator()) + gens["Identity"] = gen.PtrOf(ApiManagementServiceIdentity_STATUSGenerator()) + gens["PrivateEndpointConnections"] = gen.SliceOf(RemotePrivateEndpointConnectionWrapper_STATUSGenerator()) + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuProperties_STATUSGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUSGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfiguration_STATUSGenerator()) +} + +func Test_AdditionalLocation_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AdditionalLocation to AdditionalLocation via AssignProperties_To_AdditionalLocation & AssignProperties_From_AdditionalLocation returns original", + prop.ForAll(RunPropertyAssignmentTestForAdditionalLocation, AdditionalLocationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAdditionalLocation tests if a specific instance of AdditionalLocation can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForAdditionalLocation(subject AdditionalLocation) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20220801s.AdditionalLocation + err := copied.AssignProperties_To_AdditionalLocation(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AdditionalLocation + err = actual.AssignProperties_From_AdditionalLocation(&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_AdditionalLocation_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AdditionalLocation via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAdditionalLocation, AdditionalLocationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAdditionalLocation runs a test to see if a specific instance of AdditionalLocation round trips to JSON and back losslessly +func RunJSONSerializationTestForAdditionalLocation(subject AdditionalLocation) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AdditionalLocation + 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 AdditionalLocation instances for property testing - lazily instantiated by AdditionalLocationGenerator() +var additionalLocationGenerator gopter.Gen + +// AdditionalLocationGenerator returns a generator of AdditionalLocation instances for property testing. +// We first initialize additionalLocationGenerator 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 AdditionalLocationGenerator() gopter.Gen { + if additionalLocationGenerator != nil { + return additionalLocationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation(generators) + additionalLocationGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation(generators) + AddRelatedPropertyGeneratorsForAdditionalLocation(generators) + additionalLocationGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation{}), generators) + + return additionalLocationGenerator +} + +// AddIndependentPropertyGeneratorsForAdditionalLocation is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAdditionalLocation(gens map[string]gopter.Gen) { + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["NatGatewayState"] = gen.PtrOf(gen.OneConstOf(AdditionalLocation_NatGatewayState_Disabled, AdditionalLocation_NatGatewayState_Enabled)) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAdditionalLocation is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAdditionalLocation(gens map[string]gopter.Gen) { + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuPropertiesGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfigurationGenerator()) +} + +func Test_AdditionalLocation_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from AdditionalLocation_STATUS to AdditionalLocation_STATUS via AssignProperties_To_AdditionalLocation_STATUS & AssignProperties_From_AdditionalLocation_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForAdditionalLocation_STATUS, AdditionalLocation_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAdditionalLocation_STATUS tests if a specific instance of AdditionalLocation_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForAdditionalLocation_STATUS(subject AdditionalLocation_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 v20220801s.AdditionalLocation_STATUS + err := copied.AssignProperties_To_AdditionalLocation_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual AdditionalLocation_STATUS + err = actual.AssignProperties_From_AdditionalLocation_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_AdditionalLocation_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 AdditionalLocation_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAdditionalLocation_STATUS, AdditionalLocation_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAdditionalLocation_STATUS runs a test to see if a specific instance of AdditionalLocation_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForAdditionalLocation_STATUS(subject AdditionalLocation_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AdditionalLocation_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 AdditionalLocation_STATUS instances for property testing - lazily instantiated by +// AdditionalLocation_STATUSGenerator() +var additionalLocation_STATUSGenerator gopter.Gen + +// AdditionalLocation_STATUSGenerator returns a generator of AdditionalLocation_STATUS instances for property testing. +// We first initialize additionalLocation_STATUSGenerator 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 AdditionalLocation_STATUSGenerator() gopter.Gen { + if additionalLocation_STATUSGenerator != nil { + return additionalLocation_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS(generators) + additionalLocation_STATUSGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS(generators) + AddRelatedPropertyGeneratorsForAdditionalLocation_STATUS(generators) + additionalLocation_STATUSGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation_STATUS{}), generators) + + return additionalLocation_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS(gens map[string]gopter.Gen) { + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["GatewayRegionalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["NatGatewayState"] = gen.PtrOf(gen.OneConstOf(AdditionalLocation_NatGatewayState_STATUS_Disabled, AdditionalLocation_NatGatewayState_STATUS_Enabled)) + gens["OutboundPublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PlatformVersion"] = gen.PtrOf(gen.OneConstOf( + AdditionalLocation_PlatformVersion_STATUS_Mtv1, + AdditionalLocation_PlatformVersion_STATUS_Stv1, + AdditionalLocation_PlatformVersion_STATUS_Stv2, + AdditionalLocation_PlatformVersion_STATUS_Undetermined)) + gens["PrivateIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PublicIpAddressId"] = gen.PtrOf(gen.AlphaString()) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAdditionalLocation_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAdditionalLocation_STATUS(gens map[string]gopter.Gen) { + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuProperties_STATUSGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfiguration_STATUSGenerator()) +} + +func Test_ApiManagementServiceIdentity_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ApiManagementServiceIdentity to ApiManagementServiceIdentity via AssignProperties_To_ApiManagementServiceIdentity & AssignProperties_From_ApiManagementServiceIdentity returns original", + prop.ForAll(RunPropertyAssignmentTestForApiManagementServiceIdentity, ApiManagementServiceIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForApiManagementServiceIdentity tests if a specific instance of ApiManagementServiceIdentity can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForApiManagementServiceIdentity(subject ApiManagementServiceIdentity) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20220801s.ApiManagementServiceIdentity + err := copied.AssignProperties_To_ApiManagementServiceIdentity(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ApiManagementServiceIdentity + err = actual.AssignProperties_From_ApiManagementServiceIdentity(&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_ApiManagementServiceIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApiManagementServiceIdentity via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceIdentity, ApiManagementServiceIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceIdentity runs a test to see if a specific instance of ApiManagementServiceIdentity round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceIdentity(subject ApiManagementServiceIdentity) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceIdentity + 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 ApiManagementServiceIdentity instances for property testing - lazily instantiated by +// ApiManagementServiceIdentityGenerator() +var apiManagementServiceIdentityGenerator gopter.Gen + +// ApiManagementServiceIdentityGenerator returns a generator of ApiManagementServiceIdentity instances for property testing. +// We first initialize apiManagementServiceIdentityGenerator 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 ApiManagementServiceIdentityGenerator() gopter.Gen { + if apiManagementServiceIdentityGenerator != nil { + return apiManagementServiceIdentityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity(generators) + apiManagementServiceIdentityGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity(generators) + AddRelatedPropertyGeneratorsForApiManagementServiceIdentity(generators) + apiManagementServiceIdentityGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity{}), generators) + + return apiManagementServiceIdentityGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceIdentity is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceIdentity(gens map[string]gopter.Gen) { + gens["Type"] = gen.PtrOf(gen.OneConstOf( + ApiManagementServiceIdentity_Type_None, + ApiManagementServiceIdentity_Type_SystemAssigned, + ApiManagementServiceIdentity_Type_SystemAssignedUserAssigned, + ApiManagementServiceIdentity_Type_UserAssigned)) +} + +// AddRelatedPropertyGeneratorsForApiManagementServiceIdentity is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForApiManagementServiceIdentity(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.SliceOf(UserAssignedIdentityDetailsGenerator()) +} + +func Test_ApiManagementServiceIdentity_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ApiManagementServiceIdentity_STATUS to ApiManagementServiceIdentity_STATUS via AssignProperties_To_ApiManagementServiceIdentity_STATUS & AssignProperties_From_ApiManagementServiceIdentity_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForApiManagementServiceIdentity_STATUS, ApiManagementServiceIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForApiManagementServiceIdentity_STATUS tests if a specific instance of ApiManagementServiceIdentity_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForApiManagementServiceIdentity_STATUS(subject ApiManagementServiceIdentity_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 v20220801s.ApiManagementServiceIdentity_STATUS + err := copied.AssignProperties_To_ApiManagementServiceIdentity_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ApiManagementServiceIdentity_STATUS + err = actual.AssignProperties_From_ApiManagementServiceIdentity_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_ApiManagementServiceIdentity_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 ApiManagementServiceIdentity_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceIdentity_STATUS, ApiManagementServiceIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceIdentity_STATUS runs a test to see if a specific instance of ApiManagementServiceIdentity_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceIdentity_STATUS(subject ApiManagementServiceIdentity_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceIdentity_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 ApiManagementServiceIdentity_STATUS instances for property testing - lazily instantiated by +// ApiManagementServiceIdentity_STATUSGenerator() +var apiManagementServiceIdentity_STATUSGenerator gopter.Gen + +// ApiManagementServiceIdentity_STATUSGenerator returns a generator of ApiManagementServiceIdentity_STATUS instances for property testing. +// We first initialize apiManagementServiceIdentity_STATUSGenerator 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 ApiManagementServiceIdentity_STATUSGenerator() gopter.Gen { + if apiManagementServiceIdentity_STATUSGenerator != nil { + return apiManagementServiceIdentity_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS(generators) + apiManagementServiceIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS(generators) + AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_STATUS(generators) + apiManagementServiceIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity_STATUS{}), generators) + + return apiManagementServiceIdentity_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS(gens map[string]gopter.Gen) { + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.OneConstOf( + ApiManagementServiceIdentity_Type_STATUS_None, + ApiManagementServiceIdentity_Type_STATUS_SystemAssigned, + ApiManagementServiceIdentity_Type_STATUS_SystemAssignedUserAssigned, + ApiManagementServiceIdentity_Type_STATUS_UserAssigned)) +} + +// AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_STATUS(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.MapOf(gen.AlphaString(), UserIdentityProperties_STATUSGenerator()) +} + +func Test_ApiManagementServiceSkuProperties_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ApiManagementServiceSkuProperties to ApiManagementServiceSkuProperties via AssignProperties_To_ApiManagementServiceSkuProperties & AssignProperties_From_ApiManagementServiceSkuProperties returns original", + prop.ForAll(RunPropertyAssignmentTestForApiManagementServiceSkuProperties, ApiManagementServiceSkuPropertiesGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForApiManagementServiceSkuProperties tests if a specific instance of ApiManagementServiceSkuProperties can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForApiManagementServiceSkuProperties(subject ApiManagementServiceSkuProperties) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20220801s.ApiManagementServiceSkuProperties + err := copied.AssignProperties_To_ApiManagementServiceSkuProperties(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ApiManagementServiceSkuProperties + err = actual.AssignProperties_From_ApiManagementServiceSkuProperties(&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_ApiManagementServiceSkuProperties_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApiManagementServiceSkuProperties via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceSkuProperties, ApiManagementServiceSkuPropertiesGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceSkuProperties runs a test to see if a specific instance of ApiManagementServiceSkuProperties round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceSkuProperties(subject ApiManagementServiceSkuProperties) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceSkuProperties + 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 ApiManagementServiceSkuProperties instances for property testing - lazily instantiated by +// ApiManagementServiceSkuPropertiesGenerator() +var apiManagementServiceSkuPropertiesGenerator gopter.Gen + +// ApiManagementServiceSkuPropertiesGenerator returns a generator of ApiManagementServiceSkuProperties instances for property testing. +func ApiManagementServiceSkuPropertiesGenerator() gopter.Gen { + if apiManagementServiceSkuPropertiesGenerator != nil { + return apiManagementServiceSkuPropertiesGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties(generators) + apiManagementServiceSkuPropertiesGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceSkuProperties{}), generators) + + return apiManagementServiceSkuPropertiesGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties(gens map[string]gopter.Gen) { + gens["Capacity"] = gen.PtrOf(gen.Int()) + gens["Name"] = gen.PtrOf(gen.OneConstOf( + ApiManagementServiceSkuProperties_Name_Basic, + ApiManagementServiceSkuProperties_Name_Consumption, + ApiManagementServiceSkuProperties_Name_Developer, + ApiManagementServiceSkuProperties_Name_Isolated, + ApiManagementServiceSkuProperties_Name_Premium, + ApiManagementServiceSkuProperties_Name_Standard)) +} + +func Test_ApiManagementServiceSkuProperties_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ApiManagementServiceSkuProperties_STATUS to ApiManagementServiceSkuProperties_STATUS via AssignProperties_To_ApiManagementServiceSkuProperties_STATUS & AssignProperties_From_ApiManagementServiceSkuProperties_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForApiManagementServiceSkuProperties_STATUS, ApiManagementServiceSkuProperties_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForApiManagementServiceSkuProperties_STATUS tests if a specific instance of ApiManagementServiceSkuProperties_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForApiManagementServiceSkuProperties_STATUS(subject ApiManagementServiceSkuProperties_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 v20220801s.ApiManagementServiceSkuProperties_STATUS + err := copied.AssignProperties_To_ApiManagementServiceSkuProperties_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ApiManagementServiceSkuProperties_STATUS + err = actual.AssignProperties_From_ApiManagementServiceSkuProperties_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_ApiManagementServiceSkuProperties_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 ApiManagementServiceSkuProperties_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceSkuProperties_STATUS, ApiManagementServiceSkuProperties_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceSkuProperties_STATUS runs a test to see if a specific instance of ApiManagementServiceSkuProperties_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceSkuProperties_STATUS(subject ApiManagementServiceSkuProperties_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceSkuProperties_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 ApiManagementServiceSkuProperties_STATUS instances for property testing - lazily instantiated by +// ApiManagementServiceSkuProperties_STATUSGenerator() +var apiManagementServiceSkuProperties_STATUSGenerator gopter.Gen + +// ApiManagementServiceSkuProperties_STATUSGenerator returns a generator of ApiManagementServiceSkuProperties_STATUS instances for property testing. +func ApiManagementServiceSkuProperties_STATUSGenerator() gopter.Gen { + if apiManagementServiceSkuProperties_STATUSGenerator != nil { + return apiManagementServiceSkuProperties_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_STATUS(generators) + apiManagementServiceSkuProperties_STATUSGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceSkuProperties_STATUS{}), generators) + + return apiManagementServiceSkuProperties_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_STATUS(gens map[string]gopter.Gen) { + gens["Capacity"] = gen.PtrOf(gen.Int()) + gens["Name"] = gen.PtrOf(gen.OneConstOf( + ApiManagementServiceSkuProperties_Name_STATUS_Basic, + ApiManagementServiceSkuProperties_Name_STATUS_Consumption, + ApiManagementServiceSkuProperties_Name_STATUS_Developer, + ApiManagementServiceSkuProperties_Name_STATUS_Isolated, + ApiManagementServiceSkuProperties_Name_STATUS_Premium, + ApiManagementServiceSkuProperties_Name_STATUS_Standard)) +} + +func Test_ApiVersionConstraint_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ApiVersionConstraint to ApiVersionConstraint via AssignProperties_To_ApiVersionConstraint & AssignProperties_From_ApiVersionConstraint returns original", + prop.ForAll(RunPropertyAssignmentTestForApiVersionConstraint, ApiVersionConstraintGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForApiVersionConstraint tests if a specific instance of ApiVersionConstraint can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForApiVersionConstraint(subject ApiVersionConstraint) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20220801s.ApiVersionConstraint + err := copied.AssignProperties_To_ApiVersionConstraint(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ApiVersionConstraint + err = actual.AssignProperties_From_ApiVersionConstraint(&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_ApiVersionConstraint_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApiVersionConstraint via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiVersionConstraint, ApiVersionConstraintGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiVersionConstraint runs a test to see if a specific instance of ApiVersionConstraint round trips to JSON and back losslessly +func RunJSONSerializationTestForApiVersionConstraint(subject ApiVersionConstraint) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiVersionConstraint + 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 ApiVersionConstraint instances for property testing - lazily instantiated by +// ApiVersionConstraintGenerator() +var apiVersionConstraintGenerator gopter.Gen + +// ApiVersionConstraintGenerator returns a generator of ApiVersionConstraint instances for property testing. +func ApiVersionConstraintGenerator() gopter.Gen { + if apiVersionConstraintGenerator != nil { + return apiVersionConstraintGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiVersionConstraint(generators) + apiVersionConstraintGenerator = gen.Struct(reflect.TypeOf(ApiVersionConstraint{}), generators) + + return apiVersionConstraintGenerator +} + +// AddIndependentPropertyGeneratorsForApiVersionConstraint is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiVersionConstraint(gens map[string]gopter.Gen) { + gens["MinApiVersion"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ApiVersionConstraint_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ApiVersionConstraint_STATUS to ApiVersionConstraint_STATUS via AssignProperties_To_ApiVersionConstraint_STATUS & AssignProperties_From_ApiVersionConstraint_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForApiVersionConstraint_STATUS, ApiVersionConstraint_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForApiVersionConstraint_STATUS tests if a specific instance of ApiVersionConstraint_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForApiVersionConstraint_STATUS(subject ApiVersionConstraint_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 v20220801s.ApiVersionConstraint_STATUS + err := copied.AssignProperties_To_ApiVersionConstraint_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ApiVersionConstraint_STATUS + err = actual.AssignProperties_From_ApiVersionConstraint_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_ApiVersionConstraint_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 ApiVersionConstraint_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiVersionConstraint_STATUS, ApiVersionConstraint_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiVersionConstraint_STATUS runs a test to see if a specific instance of ApiVersionConstraint_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForApiVersionConstraint_STATUS(subject ApiVersionConstraint_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiVersionConstraint_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 ApiVersionConstraint_STATUS instances for property testing - lazily instantiated by +// ApiVersionConstraint_STATUSGenerator() +var apiVersionConstraint_STATUSGenerator gopter.Gen + +// ApiVersionConstraint_STATUSGenerator returns a generator of ApiVersionConstraint_STATUS instances for property testing. +func ApiVersionConstraint_STATUSGenerator() gopter.Gen { + if apiVersionConstraint_STATUSGenerator != nil { + return apiVersionConstraint_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiVersionConstraint_STATUS(generators) + apiVersionConstraint_STATUSGenerator = gen.Struct(reflect.TypeOf(ApiVersionConstraint_STATUS{}), generators) + + return apiVersionConstraint_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForApiVersionConstraint_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiVersionConstraint_STATUS(gens map[string]gopter.Gen) { + gens["MinApiVersion"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CertificateConfiguration_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from CertificateConfiguration to CertificateConfiguration via AssignProperties_To_CertificateConfiguration & AssignProperties_From_CertificateConfiguration returns original", + prop.ForAll(RunPropertyAssignmentTestForCertificateConfiguration, CertificateConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForCertificateConfiguration tests if a specific instance of CertificateConfiguration can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForCertificateConfiguration(subject CertificateConfiguration) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20220801s.CertificateConfiguration + err := copied.AssignProperties_To_CertificateConfiguration(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual CertificateConfiguration + err = actual.AssignProperties_From_CertificateConfiguration(&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_CertificateConfiguration_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CertificateConfiguration via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateConfiguration, CertificateConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateConfiguration runs a test to see if a specific instance of CertificateConfiguration round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateConfiguration(subject CertificateConfiguration) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateConfiguration + 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 CertificateConfiguration instances for property testing - lazily instantiated by +// CertificateConfigurationGenerator() +var certificateConfigurationGenerator gopter.Gen + +// CertificateConfigurationGenerator returns a generator of CertificateConfiguration instances for property testing. +// We first initialize certificateConfigurationGenerator 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 CertificateConfigurationGenerator() gopter.Gen { + if certificateConfigurationGenerator != nil { + return certificateConfigurationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration(generators) + certificateConfigurationGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration(generators) + AddRelatedPropertyGeneratorsForCertificateConfiguration(generators) + certificateConfigurationGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration{}), generators) + + return certificateConfigurationGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateConfiguration is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateConfiguration(gens map[string]gopter.Gen) { + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["StoreName"] = gen.PtrOf(gen.OneConstOf(CertificateConfiguration_StoreName_CertificateAuthority, CertificateConfiguration_StoreName_Root)) +} + +// AddRelatedPropertyGeneratorsForCertificateConfiguration is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForCertificateConfiguration(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformationGenerator()) +} + +func Test_CertificateConfiguration_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from CertificateConfiguration_STATUS to CertificateConfiguration_STATUS via AssignProperties_To_CertificateConfiguration_STATUS & AssignProperties_From_CertificateConfiguration_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForCertificateConfiguration_STATUS, CertificateConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForCertificateConfiguration_STATUS tests if a specific instance of CertificateConfiguration_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForCertificateConfiguration_STATUS(subject CertificateConfiguration_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 v20220801s.CertificateConfiguration_STATUS + err := copied.AssignProperties_To_CertificateConfiguration_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual CertificateConfiguration_STATUS + err = actual.AssignProperties_From_CertificateConfiguration_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_CertificateConfiguration_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 CertificateConfiguration_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateConfiguration_STATUS, CertificateConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateConfiguration_STATUS runs a test to see if a specific instance of CertificateConfiguration_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateConfiguration_STATUS(subject CertificateConfiguration_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateConfiguration_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 CertificateConfiguration_STATUS instances for property testing - lazily instantiated by +// CertificateConfiguration_STATUSGenerator() +var certificateConfiguration_STATUSGenerator gopter.Gen + +// CertificateConfiguration_STATUSGenerator returns a generator of CertificateConfiguration_STATUS instances for property testing. +// We first initialize certificateConfiguration_STATUSGenerator 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 CertificateConfiguration_STATUSGenerator() gopter.Gen { + if certificateConfiguration_STATUSGenerator != nil { + return certificateConfiguration_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS(generators) + certificateConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS(generators) + AddRelatedPropertyGeneratorsForCertificateConfiguration_STATUS(generators) + certificateConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration_STATUS{}), generators) + + return certificateConfiguration_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["StoreName"] = gen.PtrOf(gen.OneConstOf(CertificateConfiguration_StoreName_STATUS_CertificateAuthority, CertificateConfiguration_StoreName_STATUS_Root)) +} + +// AddRelatedPropertyGeneratorsForCertificateConfiguration_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForCertificateConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformation_STATUSGenerator()) +} + +func Test_HostnameConfiguration_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from HostnameConfiguration to HostnameConfiguration via AssignProperties_To_HostnameConfiguration & AssignProperties_From_HostnameConfiguration returns original", + prop.ForAll(RunPropertyAssignmentTestForHostnameConfiguration, HostnameConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForHostnameConfiguration tests if a specific instance of HostnameConfiguration can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForHostnameConfiguration(subject HostnameConfiguration) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20220801s.HostnameConfiguration + err := copied.AssignProperties_To_HostnameConfiguration(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual HostnameConfiguration + err = actual.AssignProperties_From_HostnameConfiguration(&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_HostnameConfiguration_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of HostnameConfiguration via JSON returns original", + prop.ForAll(RunJSONSerializationTestForHostnameConfiguration, HostnameConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForHostnameConfiguration runs a test to see if a specific instance of HostnameConfiguration round trips to JSON and back losslessly +func RunJSONSerializationTestForHostnameConfiguration(subject HostnameConfiguration) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual HostnameConfiguration + 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 HostnameConfiguration instances for property testing - lazily instantiated by +// HostnameConfigurationGenerator() +var hostnameConfigurationGenerator gopter.Gen + +// HostnameConfigurationGenerator returns a generator of HostnameConfiguration instances for property testing. +// We first initialize hostnameConfigurationGenerator 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 HostnameConfigurationGenerator() gopter.Gen { + if hostnameConfigurationGenerator != nil { + return hostnameConfigurationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration(generators) + hostnameConfigurationGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration(generators) + AddRelatedPropertyGeneratorsForHostnameConfiguration(generators) + hostnameConfigurationGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration{}), generators) + + return hostnameConfigurationGenerator +} + +// AddIndependentPropertyGeneratorsForHostnameConfiguration is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForHostnameConfiguration(gens map[string]gopter.Gen) { + gens["CertificateSource"] = gen.PtrOf(gen.OneConstOf( + HostnameConfiguration_CertificateSource_BuiltIn, + HostnameConfiguration_CertificateSource_Custom, + HostnameConfiguration_CertificateSource_KeyVault, + HostnameConfiguration_CertificateSource_Managed)) + gens["CertificateStatus"] = gen.PtrOf(gen.OneConstOf(HostnameConfiguration_CertificateStatus_Completed, HostnameConfiguration_CertificateStatus_Failed, HostnameConfiguration_CertificateStatus_InProgress)) + gens["DefaultSslBinding"] = gen.PtrOf(gen.Bool()) + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["HostName"] = gen.PtrOf(gen.AlphaString()) + gens["IdentityClientId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultId"] = gen.PtrOf(gen.AlphaString()) + gens["NegotiateClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["Type"] = gen.PtrOf(gen.OneConstOf( + HostnameConfiguration_Type_DeveloperPortal, + HostnameConfiguration_Type_Management, + HostnameConfiguration_Type_Portal, + HostnameConfiguration_Type_Proxy, + HostnameConfiguration_Type_Scm)) +} + +// AddRelatedPropertyGeneratorsForHostnameConfiguration is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForHostnameConfiguration(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformationGenerator()) +} + +func Test_HostnameConfiguration_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from HostnameConfiguration_STATUS to HostnameConfiguration_STATUS via AssignProperties_To_HostnameConfiguration_STATUS & AssignProperties_From_HostnameConfiguration_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForHostnameConfiguration_STATUS, HostnameConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForHostnameConfiguration_STATUS tests if a specific instance of HostnameConfiguration_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForHostnameConfiguration_STATUS(subject HostnameConfiguration_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 v20220801s.HostnameConfiguration_STATUS + err := copied.AssignProperties_To_HostnameConfiguration_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual HostnameConfiguration_STATUS + err = actual.AssignProperties_From_HostnameConfiguration_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_HostnameConfiguration_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 HostnameConfiguration_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForHostnameConfiguration_STATUS, HostnameConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForHostnameConfiguration_STATUS runs a test to see if a specific instance of HostnameConfiguration_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForHostnameConfiguration_STATUS(subject HostnameConfiguration_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual HostnameConfiguration_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 HostnameConfiguration_STATUS instances for property testing - lazily instantiated by +// HostnameConfiguration_STATUSGenerator() +var hostnameConfiguration_STATUSGenerator gopter.Gen + +// HostnameConfiguration_STATUSGenerator returns a generator of HostnameConfiguration_STATUS instances for property testing. +// We first initialize hostnameConfiguration_STATUSGenerator 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 HostnameConfiguration_STATUSGenerator() gopter.Gen { + if hostnameConfiguration_STATUSGenerator != nil { + return hostnameConfiguration_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS(generators) + hostnameConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS(generators) + AddRelatedPropertyGeneratorsForHostnameConfiguration_STATUS(generators) + hostnameConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration_STATUS{}), generators) + + return hostnameConfiguration_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["CertificateSource"] = gen.PtrOf(gen.OneConstOf( + HostnameConfiguration_CertificateSource_STATUS_BuiltIn, + HostnameConfiguration_CertificateSource_STATUS_Custom, + HostnameConfiguration_CertificateSource_STATUS_KeyVault, + HostnameConfiguration_CertificateSource_STATUS_Managed)) + gens["CertificateStatus"] = gen.PtrOf(gen.OneConstOf(HostnameConfiguration_CertificateStatus_STATUS_Completed, HostnameConfiguration_CertificateStatus_STATUS_Failed, HostnameConfiguration_CertificateStatus_STATUS_InProgress)) + gens["DefaultSslBinding"] = gen.PtrOf(gen.Bool()) + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["HostName"] = gen.PtrOf(gen.AlphaString()) + gens["IdentityClientId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultId"] = gen.PtrOf(gen.AlphaString()) + gens["NegotiateClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["Type"] = gen.PtrOf(gen.OneConstOf( + HostnameConfiguration_Type_STATUS_DeveloperPortal, + HostnameConfiguration_Type_STATUS_Management, + HostnameConfiguration_Type_STATUS_Portal, + HostnameConfiguration_Type_STATUS_Proxy, + HostnameConfiguration_Type_STATUS_Scm)) +} + +// AddRelatedPropertyGeneratorsForHostnameConfiguration_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForHostnameConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformation_STATUSGenerator()) +} + +func Test_RemotePrivateEndpointConnectionWrapper_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from RemotePrivateEndpointConnectionWrapper_STATUS to RemotePrivateEndpointConnectionWrapper_STATUS via AssignProperties_To_RemotePrivateEndpointConnectionWrapper_STATUS & AssignProperties_From_RemotePrivateEndpointConnectionWrapper_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForRemotePrivateEndpointConnectionWrapper_STATUS, RemotePrivateEndpointConnectionWrapper_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForRemotePrivateEndpointConnectionWrapper_STATUS tests if a specific instance of RemotePrivateEndpointConnectionWrapper_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForRemotePrivateEndpointConnectionWrapper_STATUS(subject RemotePrivateEndpointConnectionWrapper_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 v20220801s.RemotePrivateEndpointConnectionWrapper_STATUS + err := copied.AssignProperties_To_RemotePrivateEndpointConnectionWrapper_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual RemotePrivateEndpointConnectionWrapper_STATUS + err = actual.AssignProperties_From_RemotePrivateEndpointConnectionWrapper_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_RemotePrivateEndpointConnectionWrapper_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 RemotePrivateEndpointConnectionWrapper_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRemotePrivateEndpointConnectionWrapper_STATUS, RemotePrivateEndpointConnectionWrapper_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRemotePrivateEndpointConnectionWrapper_STATUS runs a test to see if a specific instance of RemotePrivateEndpointConnectionWrapper_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForRemotePrivateEndpointConnectionWrapper_STATUS(subject RemotePrivateEndpointConnectionWrapper_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RemotePrivateEndpointConnectionWrapper_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 RemotePrivateEndpointConnectionWrapper_STATUS instances for property testing - lazily instantiated by +// RemotePrivateEndpointConnectionWrapper_STATUSGenerator() +var remotePrivateEndpointConnectionWrapper_STATUSGenerator gopter.Gen + +// RemotePrivateEndpointConnectionWrapper_STATUSGenerator returns a generator of RemotePrivateEndpointConnectionWrapper_STATUS instances for property testing. +// We first initialize remotePrivateEndpointConnectionWrapper_STATUSGenerator 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 RemotePrivateEndpointConnectionWrapper_STATUSGenerator() gopter.Gen { + if remotePrivateEndpointConnectionWrapper_STATUSGenerator != nil { + return remotePrivateEndpointConnectionWrapper_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS(generators) + remotePrivateEndpointConnectionWrapper_STATUSGenerator = gen.Struct(reflect.TypeOf(RemotePrivateEndpointConnectionWrapper_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS(generators) + AddRelatedPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS(generators) + remotePrivateEndpointConnectionWrapper_STATUSGenerator = gen.Struct(reflect.TypeOf(RemotePrivateEndpointConnectionWrapper_STATUS{}), generators) + + return remotePrivateEndpointConnectionWrapper_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS(gens map[string]gopter.Gen) { + gens["GroupIds"] = gen.SliceOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS(gens map[string]gopter.Gen) { + gens["PrivateEndpoint"] = gen.PtrOf(ArmIdWrapper_STATUSGenerator()) + gens["PrivateLinkServiceConnectionState"] = gen.PtrOf(PrivateLinkServiceConnectionState_STATUSGenerator()) +} + +func Test_SystemData_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from SystemData_STATUS to SystemData_STATUS via AssignProperties_To_SystemData_STATUS & AssignProperties_From_SystemData_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForSystemData_STATUS, SystemData_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForSystemData_STATUS tests if a specific instance of SystemData_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForSystemData_STATUS(subject SystemData_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 v20220801s.SystemData_STATUS + err := copied.AssignProperties_To_SystemData_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual SystemData_STATUS + err = actual.AssignProperties_From_SystemData_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_SystemData_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 SystemData_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSystemData_STATUS, SystemData_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSystemData_STATUS runs a test to see if a specific instance of SystemData_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForSystemData_STATUS(subject SystemData_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SystemData_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 SystemData_STATUS instances for property testing - lazily instantiated by SystemData_STATUSGenerator() +var systemData_STATUSGenerator gopter.Gen + +// SystemData_STATUSGenerator returns a generator of SystemData_STATUS instances for property testing. +func SystemData_STATUSGenerator() gopter.Gen { + if systemData_STATUSGenerator != nil { + return systemData_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSystemData_STATUS(generators) + systemData_STATUSGenerator = gen.Struct(reflect.TypeOf(SystemData_STATUS{}), generators) + + return systemData_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForSystemData_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSystemData_STATUS(gens map[string]gopter.Gen) { + gens["CreatedAt"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedByType"] = gen.PtrOf(gen.OneConstOf( + SystemData_CreatedByType_STATUS_Application, + SystemData_CreatedByType_STATUS_Key, + SystemData_CreatedByType_STATUS_ManagedIdentity, + SystemData_CreatedByType_STATUS_User)) + gens["LastModifiedAt"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedBy"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedByType"] = gen.PtrOf(gen.OneConstOf( + SystemData_LastModifiedByType_STATUS_Application, + SystemData_LastModifiedByType_STATUS_Key, + SystemData_LastModifiedByType_STATUS_ManagedIdentity, + SystemData_LastModifiedByType_STATUS_User)) +} + +func Test_VirtualNetworkConfiguration_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from VirtualNetworkConfiguration to VirtualNetworkConfiguration via AssignProperties_To_VirtualNetworkConfiguration & AssignProperties_From_VirtualNetworkConfiguration returns original", + prop.ForAll(RunPropertyAssignmentTestForVirtualNetworkConfiguration, VirtualNetworkConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForVirtualNetworkConfiguration tests if a specific instance of VirtualNetworkConfiguration can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForVirtualNetworkConfiguration(subject VirtualNetworkConfiguration) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20220801s.VirtualNetworkConfiguration + err := copied.AssignProperties_To_VirtualNetworkConfiguration(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual VirtualNetworkConfiguration + err = actual.AssignProperties_From_VirtualNetworkConfiguration(&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_VirtualNetworkConfiguration_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of VirtualNetworkConfiguration via JSON returns original", + prop.ForAll(RunJSONSerializationTestForVirtualNetworkConfiguration, VirtualNetworkConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForVirtualNetworkConfiguration runs a test to see if a specific instance of VirtualNetworkConfiguration round trips to JSON and back losslessly +func RunJSONSerializationTestForVirtualNetworkConfiguration(subject VirtualNetworkConfiguration) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual VirtualNetworkConfiguration + 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 VirtualNetworkConfiguration instances for property testing - lazily instantiated by +// VirtualNetworkConfigurationGenerator() +var virtualNetworkConfigurationGenerator gopter.Gen + +// VirtualNetworkConfigurationGenerator returns a generator of VirtualNetworkConfiguration instances for property testing. +func VirtualNetworkConfigurationGenerator() gopter.Gen { + if virtualNetworkConfigurationGenerator != nil { + return virtualNetworkConfigurationGenerator + } + + generators := make(map[string]gopter.Gen) + virtualNetworkConfigurationGenerator = gen.Struct(reflect.TypeOf(VirtualNetworkConfiguration{}), generators) + + return virtualNetworkConfigurationGenerator +} + +func Test_VirtualNetworkConfiguration_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from VirtualNetworkConfiguration_STATUS to VirtualNetworkConfiguration_STATUS via AssignProperties_To_VirtualNetworkConfiguration_STATUS & AssignProperties_From_VirtualNetworkConfiguration_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForVirtualNetworkConfiguration_STATUS, VirtualNetworkConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForVirtualNetworkConfiguration_STATUS tests if a specific instance of VirtualNetworkConfiguration_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForVirtualNetworkConfiguration_STATUS(subject VirtualNetworkConfiguration_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 v20220801s.VirtualNetworkConfiguration_STATUS + err := copied.AssignProperties_To_VirtualNetworkConfiguration_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual VirtualNetworkConfiguration_STATUS + err = actual.AssignProperties_From_VirtualNetworkConfiguration_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_VirtualNetworkConfiguration_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 VirtualNetworkConfiguration_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForVirtualNetworkConfiguration_STATUS, VirtualNetworkConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForVirtualNetworkConfiguration_STATUS runs a test to see if a specific instance of VirtualNetworkConfiguration_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForVirtualNetworkConfiguration_STATUS(subject VirtualNetworkConfiguration_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual VirtualNetworkConfiguration_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 VirtualNetworkConfiguration_STATUS instances for property testing - lazily instantiated by +// VirtualNetworkConfiguration_STATUSGenerator() +var virtualNetworkConfiguration_STATUSGenerator gopter.Gen + +// VirtualNetworkConfiguration_STATUSGenerator returns a generator of VirtualNetworkConfiguration_STATUS instances for property testing. +func VirtualNetworkConfiguration_STATUSGenerator() gopter.Gen { + if virtualNetworkConfiguration_STATUSGenerator != nil { + return virtualNetworkConfiguration_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_STATUS(generators) + virtualNetworkConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(VirtualNetworkConfiguration_STATUS{}), generators) + + return virtualNetworkConfiguration_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["SubnetResourceId"] = gen.PtrOf(gen.AlphaString()) + gens["Subnetname"] = gen.PtrOf(gen.AlphaString()) + gens["Vnetid"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ArmIdWrapper_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from ArmIdWrapper_STATUS to ArmIdWrapper_STATUS via AssignProperties_To_ArmIdWrapper_STATUS & AssignProperties_From_ArmIdWrapper_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForArmIdWrapper_STATUS, ArmIdWrapper_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForArmIdWrapper_STATUS tests if a specific instance of ArmIdWrapper_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForArmIdWrapper_STATUS(subject ArmIdWrapper_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 v20220801s.ArmIdWrapper_STATUS + err := copied.AssignProperties_To_ArmIdWrapper_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual ArmIdWrapper_STATUS + err = actual.AssignProperties_From_ArmIdWrapper_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_ArmIdWrapper_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 ArmIdWrapper_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForArmIdWrapper_STATUS, ArmIdWrapper_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForArmIdWrapper_STATUS runs a test to see if a specific instance of ArmIdWrapper_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForArmIdWrapper_STATUS(subject ArmIdWrapper_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ArmIdWrapper_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 ArmIdWrapper_STATUS instances for property testing - lazily instantiated by +// ArmIdWrapper_STATUSGenerator() +var armIdWrapper_STATUSGenerator gopter.Gen + +// ArmIdWrapper_STATUSGenerator returns a generator of ArmIdWrapper_STATUS instances for property testing. +func ArmIdWrapper_STATUSGenerator() gopter.Gen { + if armIdWrapper_STATUSGenerator != nil { + return armIdWrapper_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForArmIdWrapper_STATUS(generators) + armIdWrapper_STATUSGenerator = gen.Struct(reflect.TypeOf(ArmIdWrapper_STATUS{}), generators) + + return armIdWrapper_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForArmIdWrapper_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForArmIdWrapper_STATUS(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CertificateInformation_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from CertificateInformation to CertificateInformation via AssignProperties_To_CertificateInformation & AssignProperties_From_CertificateInformation returns original", + prop.ForAll(RunPropertyAssignmentTestForCertificateInformation, CertificateInformationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForCertificateInformation tests if a specific instance of CertificateInformation can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForCertificateInformation(subject CertificateInformation) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20220801s.CertificateInformation + err := copied.AssignProperties_To_CertificateInformation(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual CertificateInformation + err = actual.AssignProperties_From_CertificateInformation(&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_CertificateInformation_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CertificateInformation via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateInformation, CertificateInformationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateInformation runs a test to see if a specific instance of CertificateInformation round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateInformation(subject CertificateInformation) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateInformation + 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 CertificateInformation instances for property testing - lazily instantiated by +// CertificateInformationGenerator() +var certificateInformationGenerator gopter.Gen + +// CertificateInformationGenerator returns a generator of CertificateInformation instances for property testing. +func CertificateInformationGenerator() gopter.Gen { + if certificateInformationGenerator != nil { + return certificateInformationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateInformation(generators) + certificateInformationGenerator = gen.Struct(reflect.TypeOf(CertificateInformation{}), generators) + + return certificateInformationGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateInformation is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateInformation(gens map[string]gopter.Gen) { + gens["Expiry"] = gen.PtrOf(gen.AlphaString()) + gens["Subject"] = gen.PtrOf(gen.AlphaString()) + gens["Thumbprint"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CertificateInformation_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from CertificateInformation_STATUS to CertificateInformation_STATUS via AssignProperties_To_CertificateInformation_STATUS & AssignProperties_From_CertificateInformation_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForCertificateInformation_STATUS, CertificateInformation_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForCertificateInformation_STATUS tests if a specific instance of CertificateInformation_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForCertificateInformation_STATUS(subject CertificateInformation_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 v20220801s.CertificateInformation_STATUS + err := copied.AssignProperties_To_CertificateInformation_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual CertificateInformation_STATUS + err = actual.AssignProperties_From_CertificateInformation_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_CertificateInformation_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 CertificateInformation_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateInformation_STATUS, CertificateInformation_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateInformation_STATUS runs a test to see if a specific instance of CertificateInformation_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateInformation_STATUS(subject CertificateInformation_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateInformation_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 CertificateInformation_STATUS instances for property testing - lazily instantiated by +// CertificateInformation_STATUSGenerator() +var certificateInformation_STATUSGenerator gopter.Gen + +// CertificateInformation_STATUSGenerator returns a generator of CertificateInformation_STATUS instances for property testing. +func CertificateInformation_STATUSGenerator() gopter.Gen { + if certificateInformation_STATUSGenerator != nil { + return certificateInformation_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateInformation_STATUS(generators) + certificateInformation_STATUSGenerator = gen.Struct(reflect.TypeOf(CertificateInformation_STATUS{}), generators) + + return certificateInformation_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateInformation_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateInformation_STATUS(gens map[string]gopter.Gen) { + gens["Expiry"] = gen.PtrOf(gen.AlphaString()) + gens["Subject"] = gen.PtrOf(gen.AlphaString()) + gens["Thumbprint"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrivateLinkServiceConnectionState_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrivateLinkServiceConnectionState_STATUS to PrivateLinkServiceConnectionState_STATUS via AssignProperties_To_PrivateLinkServiceConnectionState_STATUS & AssignProperties_From_PrivateLinkServiceConnectionState_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPrivateLinkServiceConnectionState_STATUS, PrivateLinkServiceConnectionState_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrivateLinkServiceConnectionState_STATUS tests if a specific instance of PrivateLinkServiceConnectionState_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForPrivateLinkServiceConnectionState_STATUS(subject PrivateLinkServiceConnectionState_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 v20220801s.PrivateLinkServiceConnectionState_STATUS + err := copied.AssignProperties_To_PrivateLinkServiceConnectionState_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrivateLinkServiceConnectionState_STATUS + err = actual.AssignProperties_From_PrivateLinkServiceConnectionState_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_PrivateLinkServiceConnectionState_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 PrivateLinkServiceConnectionState_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateLinkServiceConnectionState_STATUS, PrivateLinkServiceConnectionState_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateLinkServiceConnectionState_STATUS runs a test to see if a specific instance of PrivateLinkServiceConnectionState_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateLinkServiceConnectionState_STATUS(subject PrivateLinkServiceConnectionState_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateLinkServiceConnectionState_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 PrivateLinkServiceConnectionState_STATUS instances for property testing - lazily instantiated by +// PrivateLinkServiceConnectionState_STATUSGenerator() +var privateLinkServiceConnectionState_STATUSGenerator gopter.Gen + +// PrivateLinkServiceConnectionState_STATUSGenerator returns a generator of PrivateLinkServiceConnectionState_STATUS instances for property testing. +func PrivateLinkServiceConnectionState_STATUSGenerator() gopter.Gen { + if privateLinkServiceConnectionState_STATUSGenerator != nil { + return privateLinkServiceConnectionState_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateLinkServiceConnectionState_STATUS(generators) + privateLinkServiceConnectionState_STATUSGenerator = gen.Struct(reflect.TypeOf(PrivateLinkServiceConnectionState_STATUS{}), generators) + + return privateLinkServiceConnectionState_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateLinkServiceConnectionState_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateLinkServiceConnectionState_STATUS(gens map[string]gopter.Gen) { + gens["ActionsRequired"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["Status"] = gen.PtrOf(gen.OneConstOf(PrivateEndpointServiceConnectionStatus_STATUS_Approved, PrivateEndpointServiceConnectionStatus_STATUS_Pending, PrivateEndpointServiceConnectionStatus_STATUS_Rejected)) +} + +func Test_UserAssignedIdentityDetails_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UserAssignedIdentityDetails to UserAssignedIdentityDetails via AssignProperties_To_UserAssignedIdentityDetails & AssignProperties_From_UserAssignedIdentityDetails returns original", + prop.ForAll(RunPropertyAssignmentTestForUserAssignedIdentityDetails, UserAssignedIdentityDetailsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUserAssignedIdentityDetails tests if a specific instance of UserAssignedIdentityDetails can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForUserAssignedIdentityDetails(subject UserAssignedIdentityDetails) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20220801s.UserAssignedIdentityDetails + err := copied.AssignProperties_To_UserAssignedIdentityDetails(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UserAssignedIdentityDetails + err = actual.AssignProperties_From_UserAssignedIdentityDetails(&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_UserAssignedIdentityDetails_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentityDetails via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentityDetails, UserAssignedIdentityDetailsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentityDetails runs a test to see if a specific instance of UserAssignedIdentityDetails round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentityDetails(subject UserAssignedIdentityDetails) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentityDetails + 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 UserAssignedIdentityDetails instances for property testing - lazily instantiated by +// UserAssignedIdentityDetailsGenerator() +var userAssignedIdentityDetailsGenerator gopter.Gen + +// UserAssignedIdentityDetailsGenerator returns a generator of UserAssignedIdentityDetails instances for property testing. +func UserAssignedIdentityDetailsGenerator() gopter.Gen { + if userAssignedIdentityDetailsGenerator != nil { + return userAssignedIdentityDetailsGenerator + } + + generators := make(map[string]gopter.Gen) + userAssignedIdentityDetailsGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentityDetails{}), generators) + + return userAssignedIdentityDetailsGenerator +} + +func Test_UserIdentityProperties_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from UserIdentityProperties_STATUS to UserIdentityProperties_STATUS via AssignProperties_To_UserIdentityProperties_STATUS & AssignProperties_From_UserIdentityProperties_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForUserIdentityProperties_STATUS, UserIdentityProperties_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForUserIdentityProperties_STATUS tests if a specific instance of UserIdentityProperties_STATUS can be assigned to v1api20220801storage and back losslessly +func RunPropertyAssignmentTestForUserIdentityProperties_STATUS(subject UserIdentityProperties_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 v20220801s.UserIdentityProperties_STATUS + err := copied.AssignProperties_To_UserIdentityProperties_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual UserIdentityProperties_STATUS + err = actual.AssignProperties_From_UserIdentityProperties_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_UserIdentityProperties_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 UserIdentityProperties_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserIdentityProperties_STATUS, UserIdentityProperties_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserIdentityProperties_STATUS runs a test to see if a specific instance of UserIdentityProperties_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForUserIdentityProperties_STATUS(subject UserIdentityProperties_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserIdentityProperties_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 UserIdentityProperties_STATUS instances for property testing - lazily instantiated by +// UserIdentityProperties_STATUSGenerator() +var userIdentityProperties_STATUSGenerator gopter.Gen + +// UserIdentityProperties_STATUSGenerator returns a generator of UserIdentityProperties_STATUS instances for property testing. +func UserIdentityProperties_STATUSGenerator() gopter.Gen { + if userIdentityProperties_STATUSGenerator != nil { + return userIdentityProperties_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUserIdentityProperties_STATUS(generators) + userIdentityProperties_STATUSGenerator = gen.Struct(reflect.TypeOf(UserIdentityProperties_STATUS{}), generators) + + return userIdentityProperties_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForUserIdentityProperties_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUserIdentityProperties_STATUS(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/apimanagement/v1api20220801/structure.txt b/v2/api/apimanagement/v1api20220801/structure.txt new file mode 100644 index 00000000000..ae33b195c1e --- /dev/null +++ b/v2/api/apimanagement/v1api20220801/structure.txt @@ -0,0 +1,551 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +github.com/Azure/azure-service-operator/v2/api/apimanagement/v1api20220801 +├── APIVersion: Enum (1 value) +│ └── "2022-08-01" +├── Service: Resource +│ ├── Owner: github.com/Azure/azure-service-operator/v2/api/resources/v1apiv20191001.ResourceGroup +│ ├── Spec: Object (23 properties) +│ │ ├── AdditionalLocations: Object (7 properties)[] +│ │ │ ├── DisableGateway: *bool +│ │ │ ├── Location: *string +│ │ │ ├── NatGatewayState: *Enum (2 values) +│ │ │ │ ├── "Disabled" +│ │ │ │ └── "Enabled" +│ │ │ ├── PublicIpAddressReference: *genruntime.ResourceReference +│ │ │ ├── Sku: *Object (2 properties) +│ │ │ │ ├── Capacity: *int +│ │ │ │ └── Name: *Enum (6 values) +│ │ │ │ ├── "Basic" +│ │ │ │ ├── "Consumption" +│ │ │ │ ├── "Developer" +│ │ │ │ ├── "Isolated" +│ │ │ │ ├── "Premium" +│ │ │ │ └── "Standard" +│ │ │ ├── VirtualNetworkConfiguration: *Object (1 property) +│ │ │ │ └── SubnetResourceReference: *genruntime.ResourceReference +│ │ │ └── Zones: string[] +│ │ ├── ApiVersionConstraint: *Object (1 property) +│ │ │ └── MinApiVersion: *string +│ │ ├── AzureName: Validated (3 rules) +│ │ │ ├── Rule 0: MaxLength: 50 +│ │ │ ├── Rule 1: MinLength: 1 +│ │ │ └── Rule 2: Pattern: "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" +│ │ ├── Certificates: Object (4 properties)[] +│ │ │ ├── Certificate: *Object (6 properties) +│ │ │ │ ├── Expiry: *string +│ │ │ │ ├── ExpiryFromConfig: *genruntime.ConfigMapReference +│ │ │ │ ├── Subject: *string +│ │ │ │ ├── SubjectFromConfig: *genruntime.ConfigMapReference +│ │ │ │ ├── Thumbprint: *string +│ │ │ │ └── ThumbprintFromConfig: *genruntime.ConfigMapReference +│ │ │ ├── CertificatePassword: *genruntime.SecretReference +│ │ │ ├── EncodedCertificate: *string +│ │ │ └── StoreName: *Enum (2 values) +│ │ │ ├── "CertificateAuthority" +│ │ │ └── "Root" +│ │ ├── CustomProperties: map[string]string +│ │ ├── DisableGateway: *bool +│ │ ├── EnableClientCertificate: *bool +│ │ ├── HostnameConfigurations: Object (12 properties)[] +│ │ │ ├── Certificate: *Object (6 properties) +│ │ │ │ ├── Expiry: *string +│ │ │ │ ├── ExpiryFromConfig: *genruntime.ConfigMapReference +│ │ │ │ ├── Subject: *string +│ │ │ │ ├── SubjectFromConfig: *genruntime.ConfigMapReference +│ │ │ │ ├── Thumbprint: *string +│ │ │ │ └── ThumbprintFromConfig: *genruntime.ConfigMapReference +│ │ │ ├── CertificatePassword: *genruntime.SecretReference +│ │ │ ├── CertificateSource: *Enum (4 values) +│ │ │ │ ├── "BuiltIn" +│ │ │ │ ├── "Custom" +│ │ │ │ ├── "KeyVault" +│ │ │ │ └── "Managed" +│ │ │ ├── CertificateStatus: *Enum (3 values) +│ │ │ │ ├── "Completed" +│ │ │ │ ├── "Failed" +│ │ │ │ └── "InProgress" +│ │ │ ├── DefaultSslBinding: *bool +│ │ │ ├── EncodedCertificate: *string +│ │ │ ├── HostName: *string +│ │ │ ├── IdentityClientId: *string +│ │ │ ├── IdentityClientIdFromConfig: *genruntime.ConfigMapReference +│ │ │ ├── KeyVaultId: *string +│ │ │ ├── NegotiateClientCertificate: *bool +│ │ │ └── Type: *Enum (5 values) +│ │ │ ├── "DeveloperPortal" +│ │ │ ├── "Management" +│ │ │ ├── "Portal" +│ │ │ ├── "Proxy" +│ │ │ └── "Scm" +│ │ ├── Identity: *Object (2 properties) +│ │ │ ├── Type: *Enum (4 values) +│ │ │ │ ├── "None" +│ │ │ │ ├── "SystemAssigned" +│ │ │ │ ├── "SystemAssigned, UserAssigned" +│ │ │ │ └── "UserAssigned" +│ │ │ └── UserAssignedIdentities: Object (1 property)[] +│ │ │ └── Reference: genruntime.ResourceReference +│ │ ├── Location: *string +│ │ ├── NatGatewayState: *Enum (2 values) +│ │ │ ├── "Disabled" +│ │ │ └── "Enabled" +│ │ ├── NotificationSenderEmail: Validated<*string> (1 rule) +│ │ │ └── Rule 0: MaxLength: 100 +│ │ ├── Owner: *genruntime.KnownResourceReference +│ │ ├── PublicIpAddressReference: *genruntime.ResourceReference +│ │ ├── PublicNetworkAccess: *Enum (2 values) +│ │ │ ├── "Disabled" +│ │ │ └── "Enabled" +│ │ ├── PublisherEmail: Validated<*string> (1 rule) +│ │ │ └── Rule 0: MaxLength: 100 +│ │ ├── PublisherName: Validated<*string> (1 rule) +│ │ │ └── Rule 0: MaxLength: 100 +│ │ ├── Restore: *bool +│ │ ├── Sku: *Object (2 properties) +│ │ │ ├── Capacity: *int +│ │ │ └── Name: *Enum (6 values) +│ │ │ ├── "Basic" +│ │ │ ├── "Consumption" +│ │ │ ├── "Developer" +│ │ │ ├── "Isolated" +│ │ │ ├── "Premium" +│ │ │ └── "Standard" +│ │ ├── Tags: map[string]string +│ │ ├── VirtualNetworkConfiguration: *Object (1 property) +│ │ │ └── SubnetResourceReference: *genruntime.ResourceReference +│ │ ├── VirtualNetworkType: *Enum (3 values) +│ │ │ ├── "External" +│ │ │ ├── "Internal" +│ │ │ └── "None" +│ │ └── Zones: string[] +│ └── Status: Object (41 properties) +│ ├── AdditionalLocations: Object (12 properties)[] +│ │ ├── DisableGateway: *bool +│ │ ├── GatewayRegionalUrl: *string +│ │ ├── Location: *string +│ │ ├── NatGatewayState: *Enum (2 values) +│ │ │ ├── "Disabled" +│ │ │ └── "Enabled" +│ │ ├── OutboundPublicIPAddresses: string[] +│ │ ├── PlatformVersion: *Enum (4 values) +│ │ │ ├── "mtv1" +│ │ │ ├── "stv1" +│ │ │ ├── "stv2" +│ │ │ └── "undetermined" +│ │ ├── PrivateIPAddresses: string[] +│ │ ├── PublicIPAddresses: string[] +│ │ ├── PublicIpAddressId: *string +│ │ ├── Sku: *Object (2 properties) +│ │ │ ├── Capacity: *int +│ │ │ └── Name: *Enum (6 values) +│ │ │ ├── "Basic" +│ │ │ ├── "Consumption" +│ │ │ ├── "Developer" +│ │ │ ├── "Isolated" +│ │ │ ├── "Premium" +│ │ │ └── "Standard" +│ │ ├── VirtualNetworkConfiguration: *Object (3 properties) +│ │ │ ├── SubnetResourceId: *string +│ │ │ ├── Subnetname: *string +│ │ │ └── Vnetid: *string +│ │ └── Zones: string[] +│ ├── ApiVersionConstraint: *Object (1 property) +│ │ └── MinApiVersion: *string +│ ├── Certificates: Object (3 properties)[] +│ │ ├── Certificate: *Object (3 properties) +│ │ │ ├── Expiry: *string +│ │ │ ├── Subject: *string +│ │ │ └── Thumbprint: *string +│ │ ├── EncodedCertificate: *string +│ │ └── StoreName: *Enum (2 values) +│ │ ├── "CertificateAuthority" +│ │ └── "Root" +│ ├── Conditions: conditions.Condition[] +│ ├── CreatedAtUtc: *string +│ ├── CustomProperties: map[string]string +│ ├── DeveloperPortalUrl: *string +│ ├── DisableGateway: *bool +│ ├── EnableClientCertificate: *bool +│ ├── Etag: *string +│ ├── GatewayRegionalUrl: *string +│ ├── GatewayUrl: *string +│ ├── HostnameConfigurations: Object (10 properties)[] +│ │ ├── Certificate: *Object (3 properties) +│ │ │ ├── Expiry: *string +│ │ │ ├── Subject: *string +│ │ │ └── Thumbprint: *string +│ │ ├── CertificateSource: *Enum (4 values) +│ │ │ ├── "BuiltIn" +│ │ │ ├── "Custom" +│ │ │ ├── "KeyVault" +│ │ │ └── "Managed" +│ │ ├── CertificateStatus: *Enum (3 values) +│ │ │ ├── "Completed" +│ │ │ ├── "Failed" +│ │ │ └── "InProgress" +│ │ ├── DefaultSslBinding: *bool +│ │ ├── EncodedCertificate: *string +│ │ ├── HostName: *string +│ │ ├── IdentityClientId: *string +│ │ ├── KeyVaultId: *string +│ │ ├── NegotiateClientCertificate: *bool +│ │ └── Type: *Enum (5 values) +│ │ ├── "DeveloperPortal" +│ │ ├── "Management" +│ │ ├── "Portal" +│ │ ├── "Proxy" +│ │ └── "Scm" +│ ├── Id: *string +│ ├── Identity: *Object (4 properties) +│ │ ├── PrincipalId: *string +│ │ ├── TenantId: *string +│ │ ├── Type: *Enum (4 values) +│ │ │ ├── "None" +│ │ │ ├── "SystemAssigned" +│ │ │ ├── "SystemAssigned, UserAssigned" +│ │ │ └── "UserAssigned" +│ │ └── UserAssignedIdentities: map[string]Object (2 properties) +│ │ ├── ClientId: *string +│ │ └── PrincipalId: *string +│ ├── Location: *string +│ ├── ManagementApiUrl: *string +│ ├── Name: *string +│ ├── NatGatewayState: *Enum (2 values) +│ │ ├── "Disabled" +│ │ └── "Enabled" +│ ├── NotificationSenderEmail: *string +│ ├── OutboundPublicIPAddresses: string[] +│ ├── PlatformVersion: *Enum (4 values) +│ │ ├── "mtv1" +│ │ ├── "stv1" +│ │ ├── "stv2" +│ │ └── "undetermined" +│ ├── PortalUrl: *string +│ ├── PrivateEndpointConnections: Object (7 properties)[] +│ │ ├── GroupIds: string[] +│ │ ├── Id: *string +│ │ ├── Name: *string +│ │ ├── PrivateEndpoint: *Object (1 property) +│ │ │ └── Id: *string +│ │ ├── PrivateLinkServiceConnectionState: *Object (3 properties) +│ │ │ ├── ActionsRequired: *string +│ │ │ ├── Description: *string +│ │ │ └── Status: *Enum (3 values) +│ │ │ ├── "Approved" +│ │ │ ├── "Pending" +│ │ │ └── "Rejected" +│ │ ├── ProvisioningState: *string +│ │ └── Type: *string +│ ├── PrivateIPAddresses: string[] +│ ├── ProvisioningState: *string +│ ├── PublicIPAddresses: string[] +│ ├── PublicIpAddressId: *string +│ ├── PublicNetworkAccess: *Enum (2 values) +│ │ ├── "Disabled" +│ │ └── "Enabled" +│ ├── PublisherEmail: *string +│ ├── PublisherName: *string +│ ├── Restore: *bool +│ ├── ScmUrl: *string +│ ├── Sku: *Object (2 properties) +│ │ ├── Capacity: *int +│ │ └── Name: *Enum (6 values) +│ │ ├── "Basic" +│ │ ├── "Consumption" +│ │ ├── "Developer" +│ │ ├── "Isolated" +│ │ ├── "Premium" +│ │ └── "Standard" +│ ├── SystemData: *Object (6 properties) +│ │ ├── CreatedAt: *string +│ │ ├── CreatedBy: *string +│ │ ├── CreatedByType: *Enum (4 values) +│ │ │ ├── "Application" +│ │ │ ├── "Key" +│ │ │ ├── "ManagedIdentity" +│ │ │ └── "User" +│ │ ├── LastModifiedAt: *string +│ │ ├── LastModifiedBy: *string +│ │ └── LastModifiedByType: *Enum (4 values) +│ │ ├── "Application" +│ │ ├── "Key" +│ │ ├── "ManagedIdentity" +│ │ └── "User" +│ ├── Tags: map[string]string +│ ├── TargetProvisioningState: *string +│ ├── Type: *string +│ ├── VirtualNetworkConfiguration: *Object (3 properties) +│ │ ├── SubnetResourceId: *string +│ │ ├── Subnetname: *string +│ │ └── Vnetid: *string +│ ├── VirtualNetworkType: *Enum (3 values) +│ │ ├── "External" +│ │ ├── "Internal" +│ │ └── "None" +│ └── Zones: string[] +├── Service_STATUS_ARM: Object (11 properties) +│ ├── Etag: *string +│ ├── Id: *string +│ ├── Identity: *Object (4 properties) +│ │ ├── PrincipalId: *string +│ │ ├── TenantId: *string +│ │ ├── Type: *Enum (4 values) +│ │ │ ├── "None" +│ │ │ ├── "SystemAssigned" +│ │ │ ├── "SystemAssigned, UserAssigned" +│ │ │ └── "UserAssigned" +│ │ └── UserAssignedIdentities: map[string]Object (2 properties) +│ │ ├── ClientId: *string +│ │ └── PrincipalId: *string +│ ├── Location: *string +│ ├── Name: *string +│ ├── Properties: *Object (30 properties) +│ │ ├── AdditionalLocations: Object (12 properties)[] +│ │ │ ├── DisableGateway: *bool +│ │ │ ├── GatewayRegionalUrl: *string +│ │ │ ├── Location: *string +│ │ │ ├── NatGatewayState: *Enum (2 values) +│ │ │ │ ├── "Disabled" +│ │ │ │ └── "Enabled" +│ │ │ ├── OutboundPublicIPAddresses: string[] +│ │ │ ├── PlatformVersion: *Enum (4 values) +│ │ │ │ ├── "mtv1" +│ │ │ │ ├── "stv1" +│ │ │ │ ├── "stv2" +│ │ │ │ └── "undetermined" +│ │ │ ├── PrivateIPAddresses: string[] +│ │ │ ├── PublicIPAddresses: string[] +│ │ │ ├── PublicIpAddressId: *string +│ │ │ ├── Sku: *Object (2 properties) +│ │ │ │ ├── Capacity: *int +│ │ │ │ └── Name: *Enum (6 values) +│ │ │ │ ├── "Basic" +│ │ │ │ ├── "Consumption" +│ │ │ │ ├── "Developer" +│ │ │ │ ├── "Isolated" +│ │ │ │ ├── "Premium" +│ │ │ │ └── "Standard" +│ │ │ ├── VirtualNetworkConfiguration: *Object (3 properties) +│ │ │ │ ├── SubnetResourceId: *string +│ │ │ │ ├── Subnetname: *string +│ │ │ │ └── Vnetid: *string +│ │ │ └── Zones: string[] +│ │ ├── ApiVersionConstraint: *Object (1 property) +│ │ │ └── MinApiVersion: *string +│ │ ├── Certificates: Object (3 properties)[] +│ │ │ ├── Certificate: *Object (3 properties) +│ │ │ │ ├── Expiry: *string +│ │ │ │ ├── Subject: *string +│ │ │ │ └── Thumbprint: *string +│ │ │ ├── EncodedCertificate: *string +│ │ │ └── StoreName: *Enum (2 values) +│ │ │ ├── "CertificateAuthority" +│ │ │ └── "Root" +│ │ ├── CreatedAtUtc: *string +│ │ ├── CustomProperties: map[string]string +│ │ ├── DeveloperPortalUrl: *string +│ │ ├── DisableGateway: *bool +│ │ ├── EnableClientCertificate: *bool +│ │ ├── GatewayRegionalUrl: *string +│ │ ├── GatewayUrl: *string +│ │ ├── HostnameConfigurations: Object (10 properties)[] +│ │ │ ├── Certificate: *Object (3 properties) +│ │ │ │ ├── Expiry: *string +│ │ │ │ ├── Subject: *string +│ │ │ │ └── Thumbprint: *string +│ │ │ ├── CertificateSource: *Enum (4 values) +│ │ │ │ ├── "BuiltIn" +│ │ │ │ ├── "Custom" +│ │ │ │ ├── "KeyVault" +│ │ │ │ └── "Managed" +│ │ │ ├── CertificateStatus: *Enum (3 values) +│ │ │ │ ├── "Completed" +│ │ │ │ ├── "Failed" +│ │ │ │ └── "InProgress" +│ │ │ ├── DefaultSslBinding: *bool +│ │ │ ├── EncodedCertificate: *string +│ │ │ ├── HostName: *string +│ │ │ ├── IdentityClientId: *string +│ │ │ ├── KeyVaultId: *string +│ │ │ ├── NegotiateClientCertificate: *bool +│ │ │ └── Type: *Enum (5 values) +│ │ │ ├── "DeveloperPortal" +│ │ │ ├── "Management" +│ │ │ ├── "Portal" +│ │ │ ├── "Proxy" +│ │ │ └── "Scm" +│ │ ├── ManagementApiUrl: *string +│ │ ├── NatGatewayState: *Enum (2 values) +│ │ │ ├── "Disabled" +│ │ │ └── "Enabled" +│ │ ├── NotificationSenderEmail: *string +│ │ ├── OutboundPublicIPAddresses: string[] +│ │ ├── PlatformVersion: *Enum (4 values) +│ │ │ ├── "mtv1" +│ │ │ ├── "stv1" +│ │ │ ├── "stv2" +│ │ │ └── "undetermined" +│ │ ├── PortalUrl: *string +│ │ ├── PrivateEndpointConnections: Object (4 properties)[] +│ │ │ ├── Id: *string +│ │ │ ├── Name: *string +│ │ │ ├── Properties: *Object (4 properties) +│ │ │ │ ├── GroupIds: string[] +│ │ │ │ ├── PrivateEndpoint: *Object (1 property) +│ │ │ │ │ └── Id: *string +│ │ │ │ ├── PrivateLinkServiceConnectionState: *Object (3 properties) +│ │ │ │ │ ├── ActionsRequired: *string +│ │ │ │ │ ├── Description: *string +│ │ │ │ │ └── Status: *Enum (3 values) +│ │ │ │ │ ├── "Approved" +│ │ │ │ │ ├── "Pending" +│ │ │ │ │ └── "Rejected" +│ │ │ │ └── ProvisioningState: *string +│ │ │ └── Type: *string +│ │ ├── PrivateIPAddresses: string[] +│ │ ├── ProvisioningState: *string +│ │ ├── PublicIPAddresses: string[] +│ │ ├── PublicIpAddressId: *string +│ │ ├── PublicNetworkAccess: *Enum (2 values) +│ │ │ ├── "Disabled" +│ │ │ └── "Enabled" +│ │ ├── PublisherEmail: *string +│ │ ├── PublisherName: *string +│ │ ├── Restore: *bool +│ │ ├── ScmUrl: *string +│ │ ├── TargetProvisioningState: *string +│ │ ├── VirtualNetworkConfiguration: *Object (3 properties) +│ │ │ ├── SubnetResourceId: *string +│ │ │ ├── Subnetname: *string +│ │ │ └── Vnetid: *string +│ │ └── VirtualNetworkType: *Enum (3 values) +│ │ ├── "External" +│ │ ├── "Internal" +│ │ └── "None" +│ ├── Sku: *Object (2 properties) +│ │ ├── Capacity: *int +│ │ └── Name: *Enum (6 values) +│ │ ├── "Basic" +│ │ ├── "Consumption" +│ │ ├── "Developer" +│ │ ├── "Isolated" +│ │ ├── "Premium" +│ │ └── "Standard" +│ ├── SystemData: *Object (6 properties) +│ │ ├── CreatedAt: *string +│ │ ├── CreatedBy: *string +│ │ ├── CreatedByType: *Enum (4 values) +│ │ │ ├── "Application" +│ │ │ ├── "Key" +│ │ │ ├── "ManagedIdentity" +│ │ │ └── "User" +│ │ ├── LastModifiedAt: *string +│ │ ├── LastModifiedBy: *string +│ │ └── LastModifiedByType: *Enum (4 values) +│ │ ├── "Application" +│ │ ├── "Key" +│ │ ├── "ManagedIdentity" +│ │ └── "User" +│ ├── Tags: map[string]string +│ ├── Type: *string +│ └── Zones: string[] +└── Service_Spec_ARM: Object (7 properties) + ├── Identity: *Object (2 properties) + │ ├── Type: *Enum (4 values) + │ │ ├── "None" + │ │ ├── "SystemAssigned" + │ │ ├── "SystemAssigned, UserAssigned" + │ │ └── "UserAssigned" + │ └── UserAssignedIdentities: map[string]Object (0 properties) + ├── Location: *string + ├── Name: string + ├── Properties: *Object (16 properties) + │ ├── AdditionalLocations: Object (7 properties)[] + │ │ ├── DisableGateway: *bool + │ │ ├── Location: *string + │ │ ├── NatGatewayState: *Enum (2 values) + │ │ │ ├── "Disabled" + │ │ │ └── "Enabled" + │ │ ├── PublicIpAddressId: *string + │ │ ├── Sku: *Object (2 properties) + │ │ │ ├── Capacity: *int + │ │ │ └── Name: *Enum (6 values) + │ │ │ ├── "Basic" + │ │ │ ├── "Consumption" + │ │ │ ├── "Developer" + │ │ │ ├── "Isolated" + │ │ │ ├── "Premium" + │ │ │ └── "Standard" + │ │ ├── VirtualNetworkConfiguration: *Object (1 property) + │ │ │ └── SubnetResourceId: *string + │ │ └── Zones: string[] + │ ├── ApiVersionConstraint: *Object (1 property) + │ │ └── MinApiVersion: *string + │ ├── Certificates: Object (4 properties)[] + │ │ ├── Certificate: *Object (3 properties) + │ │ │ ├── Expiry: *string + │ │ │ ├── Subject: *string + │ │ │ └── Thumbprint: *string + │ │ ├── CertificatePassword: *string + │ │ ├── EncodedCertificate: *string + │ │ └── StoreName: *Enum (2 values) + │ │ ├── "CertificateAuthority" + │ │ └── "Root" + │ ├── CustomProperties: map[string]string + │ ├── DisableGateway: *bool + │ ├── EnableClientCertificate: *bool + │ ├── HostnameConfigurations: Object (11 properties)[] + │ │ ├── Certificate: *Object (3 properties) + │ │ │ ├── Expiry: *string + │ │ │ ├── Subject: *string + │ │ │ └── Thumbprint: *string + │ │ ├── CertificatePassword: *string + │ │ ├── CertificateSource: *Enum (4 values) + │ │ │ ├── "BuiltIn" + │ │ │ ├── "Custom" + │ │ │ ├── "KeyVault" + │ │ │ └── "Managed" + │ │ ├── CertificateStatus: *Enum (3 values) + │ │ │ ├── "Completed" + │ │ │ ├── "Failed" + │ │ │ └── "InProgress" + │ │ ├── DefaultSslBinding: *bool + │ │ ├── EncodedCertificate: *string + │ │ ├── HostName: *string + │ │ ├── IdentityClientId: *string + │ │ ├── KeyVaultId: *string + │ │ ├── NegotiateClientCertificate: *bool + │ │ └── Type: *Enum (5 values) + │ │ ├── "DeveloperPortal" + │ │ ├── "Management" + │ │ ├── "Portal" + │ │ ├── "Proxy" + │ │ └── "Scm" + │ ├── NatGatewayState: *Enum (2 values) + │ │ ├── "Disabled" + │ │ └── "Enabled" + │ ├── NotificationSenderEmail: *string + │ ├── PublicIpAddressId: *string + │ ├── PublicNetworkAccess: *Enum (2 values) + │ │ ├── "Disabled" + │ │ └── "Enabled" + │ ├── PublisherEmail: *string + │ ├── PublisherName: *string + │ ├── Restore: *bool + │ ├── VirtualNetworkConfiguration: *Object (1 property) + │ │ └── SubnetResourceId: *string + │ └── VirtualNetworkType: *Enum (3 values) + │ ├── "External" + │ ├── "Internal" + │ └── "None" + ├── Sku: *Object (2 properties) + │ ├── Capacity: *int + │ └── Name: *Enum (6 values) + │ ├── "Basic" + │ ├── "Consumption" + │ ├── "Developer" + │ ├── "Isolated" + │ ├── "Premium" + │ └── "Standard" + ├── Tags: map[string]string + └── Zones: string[] diff --git a/v2/api/apimanagement/v1api20220801/zz_generated.deepcopy.go b/v2/api/apimanagement/v1api20220801/zz_generated.deepcopy.go new file mode 100644 index 00000000000..776fa720682 --- /dev/null +++ b/v2/api/apimanagement/v1api20220801/zz_generated.deepcopy.go @@ -0,0 +1,2428 @@ +//go:build !ignore_autogenerated + +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1api20220801 + +import ( + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AdditionalLocation) DeepCopyInto(out *AdditionalLocation) { + *out = *in + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *out = new(AdditionalLocation_NatGatewayState) + **out = **in + } + if in.PublicIpAddressReference != nil { + in, out := &in.PublicIpAddressReference, &out.PublicIpAddressReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration) + (*in).DeepCopyInto(*out) + } + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalLocation. +func (in *AdditionalLocation) DeepCopy() *AdditionalLocation { + if in == nil { + return nil + } + out := new(AdditionalLocation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AdditionalLocation_ARM) DeepCopyInto(out *AdditionalLocation_ARM) { + *out = *in + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *out = new(AdditionalLocation_NatGatewayState) + **out = **in + } + if in.PublicIpAddressId != nil { + in, out := &in.PublicIpAddressId, &out.PublicIpAddressId + *out = new(string) + **out = **in + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties_ARM) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration_ARM) + (*in).DeepCopyInto(*out) + } + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalLocation_ARM. +func (in *AdditionalLocation_ARM) DeepCopy() *AdditionalLocation_ARM { + if in == nil { + return nil + } + out := new(AdditionalLocation_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 *AdditionalLocation_STATUS) DeepCopyInto(out *AdditionalLocation_STATUS) { + *out = *in + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.GatewayRegionalUrl != nil { + in, out := &in.GatewayRegionalUrl, &out.GatewayRegionalUrl + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *out = new(AdditionalLocation_NatGatewayState_STATUS) + **out = **in + } + if in.OutboundPublicIPAddresses != nil { + in, out := &in.OutboundPublicIPAddresses, &out.OutboundPublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PlatformVersion != nil { + in, out := &in.PlatformVersion, &out.PlatformVersion + *out = new(AdditionalLocation_PlatformVersion_STATUS) + **out = **in + } + if in.PrivateIPAddresses != nil { + in, out := &in.PrivateIPAddresses, &out.PrivateIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PublicIPAddresses != nil { + in, out := &in.PublicIPAddresses, &out.PublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PublicIpAddressId != nil { + in, out := &in.PublicIpAddressId, &out.PublicIpAddressId + *out = new(string) + **out = **in + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties_STATUS) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalLocation_STATUS. +func (in *AdditionalLocation_STATUS) DeepCopy() *AdditionalLocation_STATUS { + if in == nil { + return nil + } + out := new(AdditionalLocation_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 *AdditionalLocation_STATUS_ARM) DeepCopyInto(out *AdditionalLocation_STATUS_ARM) { + *out = *in + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.GatewayRegionalUrl != nil { + in, out := &in.GatewayRegionalUrl, &out.GatewayRegionalUrl + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *out = new(AdditionalLocation_NatGatewayState_STATUS) + **out = **in + } + if in.OutboundPublicIPAddresses != nil { + in, out := &in.OutboundPublicIPAddresses, &out.OutboundPublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PlatformVersion != nil { + in, out := &in.PlatformVersion, &out.PlatformVersion + *out = new(AdditionalLocation_PlatformVersion_STATUS) + **out = **in + } + if in.PrivateIPAddresses != nil { + in, out := &in.PrivateIPAddresses, &out.PrivateIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PublicIPAddresses != nil { + in, out := &in.PublicIPAddresses, &out.PublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PublicIpAddressId != nil { + in, out := &in.PublicIpAddressId, &out.PublicIpAddressId + *out = new(string) + **out = **in + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalLocation_STATUS_ARM. +func (in *AdditionalLocation_STATUS_ARM) DeepCopy() *AdditionalLocation_STATUS_ARM { + if in == nil { + return nil + } + out := new(AdditionalLocation_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 *ApiManagementServiceIdentity) DeepCopyInto(out *ApiManagementServiceIdentity) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ApiManagementServiceIdentity_Type) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make([]UserAssignedIdentityDetails, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceIdentity. +func (in *ApiManagementServiceIdentity) DeepCopy() *ApiManagementServiceIdentity { + if in == nil { + return nil + } + out := new(ApiManagementServiceIdentity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApiManagementServiceIdentity_ARM) DeepCopyInto(out *ApiManagementServiceIdentity_ARM) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ApiManagementServiceIdentity_Type) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make(map[string]UserAssignedIdentityDetails_ARM, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceIdentity_ARM. +func (in *ApiManagementServiceIdentity_ARM) DeepCopy() *ApiManagementServiceIdentity_ARM { + if in == nil { + return nil + } + out := new(ApiManagementServiceIdentity_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 *ApiManagementServiceIdentity_STATUS) DeepCopyInto(out *ApiManagementServiceIdentity_STATUS) { + *out = *in + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *out = new(string) + **out = **in + } + if in.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ApiManagementServiceIdentity_Type_STATUS) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make(map[string]UserIdentityProperties_STATUS, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceIdentity_STATUS. +func (in *ApiManagementServiceIdentity_STATUS) DeepCopy() *ApiManagementServiceIdentity_STATUS { + if in == nil { + return nil + } + out := new(ApiManagementServiceIdentity_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 *ApiManagementServiceIdentity_STATUS_ARM) DeepCopyInto(out *ApiManagementServiceIdentity_STATUS_ARM) { + *out = *in + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *out = new(string) + **out = **in + } + if in.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(ApiManagementServiceIdentity_Type_STATUS) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make(map[string]UserIdentityProperties_STATUS_ARM, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceIdentity_STATUS_ARM. +func (in *ApiManagementServiceIdentity_STATUS_ARM) DeepCopy() *ApiManagementServiceIdentity_STATUS_ARM { + if in == nil { + return nil + } + out := new(ApiManagementServiceIdentity_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 *ApiManagementServiceProperties_ARM) DeepCopyInto(out *ApiManagementServiceProperties_ARM) { + *out = *in + if in.AdditionalLocations != nil { + in, out := &in.AdditionalLocations, &out.AdditionalLocations + *out = make([]AdditionalLocation_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiVersionConstraint != nil { + in, out := &in.ApiVersionConstraint, &out.ApiVersionConstraint + *out = new(ApiVersionConstraint_ARM) + (*in).DeepCopyInto(*out) + } + if in.Certificates != nil { + in, out := &in.Certificates, &out.Certificates + *out = make([]CertificateConfiguration_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CustomProperties != nil { + in, out := &in.CustomProperties, &out.CustomProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.EnableClientCertificate != nil { + in, out := &in.EnableClientCertificate, &out.EnableClientCertificate + *out = new(bool) + **out = **in + } + if in.HostnameConfigurations != nil { + in, out := &in.HostnameConfigurations, &out.HostnameConfigurations + *out = make([]HostnameConfiguration_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *out = new(ApiManagementServiceProperties_NatGatewayState) + **out = **in + } + if in.NotificationSenderEmail != nil { + in, out := &in.NotificationSenderEmail, &out.NotificationSenderEmail + *out = new(string) + **out = **in + } + if in.PublicIpAddressId != nil { + in, out := &in.PublicIpAddressId, &out.PublicIpAddressId + *out = new(string) + **out = **in + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(ApiManagementServiceProperties_PublicNetworkAccess) + **out = **in + } + if in.PublisherEmail != nil { + in, out := &in.PublisherEmail, &out.PublisherEmail + *out = new(string) + **out = **in + } + if in.PublisherName != nil { + in, out := &in.PublisherName, &out.PublisherName + *out = new(string) + **out = **in + } + if in.Restore != nil { + in, out := &in.Restore, &out.Restore + *out = new(bool) + **out = **in + } + if in.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration_ARM) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkType != nil { + in, out := &in.VirtualNetworkType, &out.VirtualNetworkType + *out = new(ApiManagementServiceProperties_VirtualNetworkType) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceProperties_ARM. +func (in *ApiManagementServiceProperties_ARM) DeepCopy() *ApiManagementServiceProperties_ARM { + if in == nil { + return nil + } + out := new(ApiManagementServiceProperties_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 *ApiManagementServiceProperties_STATUS_ARM) DeepCopyInto(out *ApiManagementServiceProperties_STATUS_ARM) { + *out = *in + if in.AdditionalLocations != nil { + in, out := &in.AdditionalLocations, &out.AdditionalLocations + *out = make([]AdditionalLocation_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiVersionConstraint != nil { + in, out := &in.ApiVersionConstraint, &out.ApiVersionConstraint + *out = new(ApiVersionConstraint_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Certificates != nil { + in, out := &in.Certificates, &out.Certificates + *out = make([]CertificateConfiguration_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CreatedAtUtc != nil { + in, out := &in.CreatedAtUtc, &out.CreatedAtUtc + *out = new(string) + **out = **in + } + if in.CustomProperties != nil { + in, out := &in.CustomProperties, &out.CustomProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.DeveloperPortalUrl != nil { + in, out := &in.DeveloperPortalUrl, &out.DeveloperPortalUrl + *out = new(string) + **out = **in + } + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.EnableClientCertificate != nil { + in, out := &in.EnableClientCertificate, &out.EnableClientCertificate + *out = new(bool) + **out = **in + } + if in.GatewayRegionalUrl != nil { + in, out := &in.GatewayRegionalUrl, &out.GatewayRegionalUrl + *out = new(string) + **out = **in + } + if in.GatewayUrl != nil { + in, out := &in.GatewayUrl, &out.GatewayUrl + *out = new(string) + **out = **in + } + if in.HostnameConfigurations != nil { + in, out := &in.HostnameConfigurations, &out.HostnameConfigurations + *out = make([]HostnameConfiguration_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ManagementApiUrl != nil { + in, out := &in.ManagementApiUrl, &out.ManagementApiUrl + *out = new(string) + **out = **in + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *out = new(ApiManagementServiceProperties_NatGatewayState_STATUS) + **out = **in + } + if in.NotificationSenderEmail != nil { + in, out := &in.NotificationSenderEmail, &out.NotificationSenderEmail + *out = new(string) + **out = **in + } + if in.OutboundPublicIPAddresses != nil { + in, out := &in.OutboundPublicIPAddresses, &out.OutboundPublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PlatformVersion != nil { + in, out := &in.PlatformVersion, &out.PlatformVersion + *out = new(ApiManagementServiceProperties_PlatformVersion_STATUS) + **out = **in + } + if in.PortalUrl != nil { + in, out := &in.PortalUrl, &out.PortalUrl + *out = new(string) + **out = **in + } + if in.PrivateEndpointConnections != nil { + in, out := &in.PrivateEndpointConnections, &out.PrivateEndpointConnections + *out = make([]RemotePrivateEndpointConnectionWrapper_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PrivateIPAddresses != nil { + in, out := &in.PrivateIPAddresses, &out.PrivateIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.PublicIPAddresses != nil { + in, out := &in.PublicIPAddresses, &out.PublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PublicIpAddressId != nil { + in, out := &in.PublicIpAddressId, &out.PublicIpAddressId + *out = new(string) + **out = **in + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(ApiManagementServiceProperties_PublicNetworkAccess_STATUS) + **out = **in + } + if in.PublisherEmail != nil { + in, out := &in.PublisherEmail, &out.PublisherEmail + *out = new(string) + **out = **in + } + if in.PublisherName != nil { + in, out := &in.PublisherName, &out.PublisherName + *out = new(string) + **out = **in + } + if in.Restore != nil { + in, out := &in.Restore, &out.Restore + *out = new(bool) + **out = **in + } + if in.ScmUrl != nil { + in, out := &in.ScmUrl, &out.ScmUrl + *out = new(string) + **out = **in + } + if in.TargetProvisioningState != nil { + in, out := &in.TargetProvisioningState, &out.TargetProvisioningState + *out = new(string) + **out = **in + } + if in.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkType != nil { + in, out := &in.VirtualNetworkType, &out.VirtualNetworkType + *out = new(ApiManagementServiceProperties_VirtualNetworkType_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceProperties_STATUS_ARM. +func (in *ApiManagementServiceProperties_STATUS_ARM) DeepCopy() *ApiManagementServiceProperties_STATUS_ARM { + if in == nil { + return nil + } + out := new(ApiManagementServiceProperties_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 *ApiManagementServiceSkuProperties) DeepCopyInto(out *ApiManagementServiceSkuProperties) { + *out = *in + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(int) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(ApiManagementServiceSkuProperties_Name) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceSkuProperties. +func (in *ApiManagementServiceSkuProperties) DeepCopy() *ApiManagementServiceSkuProperties { + if in == nil { + return nil + } + out := new(ApiManagementServiceSkuProperties) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApiManagementServiceSkuProperties_ARM) DeepCopyInto(out *ApiManagementServiceSkuProperties_ARM) { + *out = *in + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(int) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(ApiManagementServiceSkuProperties_Name) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceSkuProperties_ARM. +func (in *ApiManagementServiceSkuProperties_ARM) DeepCopy() *ApiManagementServiceSkuProperties_ARM { + if in == nil { + return nil + } + out := new(ApiManagementServiceSkuProperties_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 *ApiManagementServiceSkuProperties_STATUS) DeepCopyInto(out *ApiManagementServiceSkuProperties_STATUS) { + *out = *in + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(int) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(ApiManagementServiceSkuProperties_Name_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceSkuProperties_STATUS. +func (in *ApiManagementServiceSkuProperties_STATUS) DeepCopy() *ApiManagementServiceSkuProperties_STATUS { + if in == nil { + return nil + } + out := new(ApiManagementServiceSkuProperties_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 *ApiManagementServiceSkuProperties_STATUS_ARM) DeepCopyInto(out *ApiManagementServiceSkuProperties_STATUS_ARM) { + *out = *in + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(int) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(ApiManagementServiceSkuProperties_Name_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceSkuProperties_STATUS_ARM. +func (in *ApiManagementServiceSkuProperties_STATUS_ARM) DeepCopy() *ApiManagementServiceSkuProperties_STATUS_ARM { + if in == nil { + return nil + } + out := new(ApiManagementServiceSkuProperties_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 *ApiVersionConstraint) DeepCopyInto(out *ApiVersionConstraint) { + *out = *in + if in.MinApiVersion != nil { + in, out := &in.MinApiVersion, &out.MinApiVersion + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiVersionConstraint. +func (in *ApiVersionConstraint) DeepCopy() *ApiVersionConstraint { + if in == nil { + return nil + } + out := new(ApiVersionConstraint) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApiVersionConstraint_ARM) DeepCopyInto(out *ApiVersionConstraint_ARM) { + *out = *in + if in.MinApiVersion != nil { + in, out := &in.MinApiVersion, &out.MinApiVersion + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiVersionConstraint_ARM. +func (in *ApiVersionConstraint_ARM) DeepCopy() *ApiVersionConstraint_ARM { + if in == nil { + return nil + } + out := new(ApiVersionConstraint_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 *ApiVersionConstraint_STATUS) DeepCopyInto(out *ApiVersionConstraint_STATUS) { + *out = *in + if in.MinApiVersion != nil { + in, out := &in.MinApiVersion, &out.MinApiVersion + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiVersionConstraint_STATUS. +func (in *ApiVersionConstraint_STATUS) DeepCopy() *ApiVersionConstraint_STATUS { + if in == nil { + return nil + } + out := new(ApiVersionConstraint_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 *ApiVersionConstraint_STATUS_ARM) DeepCopyInto(out *ApiVersionConstraint_STATUS_ARM) { + *out = *in + if in.MinApiVersion != nil { + in, out := &in.MinApiVersion, &out.MinApiVersion + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiVersionConstraint_STATUS_ARM. +func (in *ApiVersionConstraint_STATUS_ARM) DeepCopy() *ApiVersionConstraint_STATUS_ARM { + if in == nil { + return nil + } + out := new(ApiVersionConstraint_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 *ArmIdWrapper_STATUS) DeepCopyInto(out *ArmIdWrapper_STATUS) { + *out = *in + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArmIdWrapper_STATUS. +func (in *ArmIdWrapper_STATUS) DeepCopy() *ArmIdWrapper_STATUS { + if in == nil { + return nil + } + out := new(ArmIdWrapper_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 *ArmIdWrapper_STATUS_ARM) DeepCopyInto(out *ArmIdWrapper_STATUS_ARM) { + *out = *in + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArmIdWrapper_STATUS_ARM. +func (in *ArmIdWrapper_STATUS_ARM) DeepCopy() *ArmIdWrapper_STATUS_ARM { + if in == nil { + return nil + } + out := new(ArmIdWrapper_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 *CertificateConfiguration) DeepCopyInto(out *CertificateConfiguration) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation) + (*in).DeepCopyInto(*out) + } + if in.CertificatePassword != nil { + in, out := &in.CertificatePassword, &out.CertificatePassword + *out = new(genruntime.SecretReference) + **out = **in + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *out = new(string) + **out = **in + } + if in.StoreName != nil { + in, out := &in.StoreName, &out.StoreName + *out = new(CertificateConfiguration_StoreName) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateConfiguration. +func (in *CertificateConfiguration) DeepCopy() *CertificateConfiguration { + if in == nil { + return nil + } + out := new(CertificateConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateConfiguration_ARM) DeepCopyInto(out *CertificateConfiguration_ARM) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation_ARM) + (*in).DeepCopyInto(*out) + } + if in.CertificatePassword != nil { + in, out := &in.CertificatePassword, &out.CertificatePassword + *out = new(string) + **out = **in + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *out = new(string) + **out = **in + } + if in.StoreName != nil { + in, out := &in.StoreName, &out.StoreName + *out = new(CertificateConfiguration_StoreName) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateConfiguration_ARM. +func (in *CertificateConfiguration_ARM) DeepCopy() *CertificateConfiguration_ARM { + if in == nil { + return nil + } + out := new(CertificateConfiguration_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 *CertificateConfiguration_STATUS) DeepCopyInto(out *CertificateConfiguration_STATUS) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation_STATUS) + (*in).DeepCopyInto(*out) + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *out = new(string) + **out = **in + } + if in.StoreName != nil { + in, out := &in.StoreName, &out.StoreName + *out = new(CertificateConfiguration_StoreName_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateConfiguration_STATUS. +func (in *CertificateConfiguration_STATUS) DeepCopy() *CertificateConfiguration_STATUS { + if in == nil { + return nil + } + out := new(CertificateConfiguration_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 *CertificateConfiguration_STATUS_ARM) DeepCopyInto(out *CertificateConfiguration_STATUS_ARM) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *out = new(string) + **out = **in + } + if in.StoreName != nil { + in, out := &in.StoreName, &out.StoreName + *out = new(CertificateConfiguration_StoreName_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateConfiguration_STATUS_ARM. +func (in *CertificateConfiguration_STATUS_ARM) DeepCopy() *CertificateConfiguration_STATUS_ARM { + if in == nil { + return nil + } + out := new(CertificateConfiguration_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 *CertificateInformation) DeepCopyInto(out *CertificateInformation) { + *out = *in + if in.Expiry != nil { + in, out := &in.Expiry, &out.Expiry + *out = new(string) + **out = **in + } + if in.ExpiryFromConfig != nil { + in, out := &in.ExpiryFromConfig, &out.ExpiryFromConfig + *out = new(genruntime.ConfigMapReference) + **out = **in + } + if in.Subject != nil { + in, out := &in.Subject, &out.Subject + *out = new(string) + **out = **in + } + if in.SubjectFromConfig != nil { + in, out := &in.SubjectFromConfig, &out.SubjectFromConfig + *out = new(genruntime.ConfigMapReference) + **out = **in + } + if in.Thumbprint != nil { + in, out := &in.Thumbprint, &out.Thumbprint + *out = new(string) + **out = **in + } + if in.ThumbprintFromConfig != nil { + in, out := &in.ThumbprintFromConfig, &out.ThumbprintFromConfig + *out = new(genruntime.ConfigMapReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateInformation. +func (in *CertificateInformation) DeepCopy() *CertificateInformation { + if in == nil { + return nil + } + out := new(CertificateInformation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateInformation_ARM) DeepCopyInto(out *CertificateInformation_ARM) { + *out = *in + if in.Expiry != nil { + in, out := &in.Expiry, &out.Expiry + *out = new(string) + **out = **in + } + if in.Subject != nil { + in, out := &in.Subject, &out.Subject + *out = new(string) + **out = **in + } + if in.Thumbprint != nil { + in, out := &in.Thumbprint, &out.Thumbprint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateInformation_ARM. +func (in *CertificateInformation_ARM) DeepCopy() *CertificateInformation_ARM { + if in == nil { + return nil + } + out := new(CertificateInformation_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 *CertificateInformation_STATUS) DeepCopyInto(out *CertificateInformation_STATUS) { + *out = *in + if in.Expiry != nil { + in, out := &in.Expiry, &out.Expiry + *out = new(string) + **out = **in + } + if in.Subject != nil { + in, out := &in.Subject, &out.Subject + *out = new(string) + **out = **in + } + if in.Thumbprint != nil { + in, out := &in.Thumbprint, &out.Thumbprint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateInformation_STATUS. +func (in *CertificateInformation_STATUS) DeepCopy() *CertificateInformation_STATUS { + if in == nil { + return nil + } + out := new(CertificateInformation_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 *CertificateInformation_STATUS_ARM) DeepCopyInto(out *CertificateInformation_STATUS_ARM) { + *out = *in + if in.Expiry != nil { + in, out := &in.Expiry, &out.Expiry + *out = new(string) + **out = **in + } + if in.Subject != nil { + in, out := &in.Subject, &out.Subject + *out = new(string) + **out = **in + } + if in.Thumbprint != nil { + in, out := &in.Thumbprint, &out.Thumbprint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateInformation_STATUS_ARM. +func (in *CertificateInformation_STATUS_ARM) DeepCopy() *CertificateInformation_STATUS_ARM { + if in == nil { + return nil + } + out := new(CertificateInformation_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 *HostnameConfiguration) DeepCopyInto(out *HostnameConfiguration) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation) + (*in).DeepCopyInto(*out) + } + if in.CertificatePassword != nil { + in, out := &in.CertificatePassword, &out.CertificatePassword + *out = new(genruntime.SecretReference) + **out = **in + } + if in.CertificateSource != nil { + in, out := &in.CertificateSource, &out.CertificateSource + *out = new(HostnameConfiguration_CertificateSource) + **out = **in + } + if in.CertificateStatus != nil { + in, out := &in.CertificateStatus, &out.CertificateStatus + *out = new(HostnameConfiguration_CertificateStatus) + **out = **in + } + if in.DefaultSslBinding != nil { + in, out := &in.DefaultSslBinding, &out.DefaultSslBinding + *out = new(bool) + **out = **in + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *out = new(string) + **out = **in + } + if in.HostName != nil { + in, out := &in.HostName, &out.HostName + *out = new(string) + **out = **in + } + if in.IdentityClientId != nil { + in, out := &in.IdentityClientId, &out.IdentityClientId + *out = new(string) + **out = **in + } + if in.IdentityClientIdFromConfig != nil { + in, out := &in.IdentityClientIdFromConfig, &out.IdentityClientIdFromConfig + *out = new(genruntime.ConfigMapReference) + **out = **in + } + if in.KeyVaultId != nil { + in, out := &in.KeyVaultId, &out.KeyVaultId + *out = new(string) + **out = **in + } + if in.NegotiateClientCertificate != nil { + in, out := &in.NegotiateClientCertificate, &out.NegotiateClientCertificate + *out = new(bool) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(HostnameConfiguration_Type) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostnameConfiguration. +func (in *HostnameConfiguration) DeepCopy() *HostnameConfiguration { + if in == nil { + return nil + } + out := new(HostnameConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostnameConfiguration_ARM) DeepCopyInto(out *HostnameConfiguration_ARM) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation_ARM) + (*in).DeepCopyInto(*out) + } + if in.CertificatePassword != nil { + in, out := &in.CertificatePassword, &out.CertificatePassword + *out = new(string) + **out = **in + } + if in.CertificateSource != nil { + in, out := &in.CertificateSource, &out.CertificateSource + *out = new(HostnameConfiguration_CertificateSource) + **out = **in + } + if in.CertificateStatus != nil { + in, out := &in.CertificateStatus, &out.CertificateStatus + *out = new(HostnameConfiguration_CertificateStatus) + **out = **in + } + if in.DefaultSslBinding != nil { + in, out := &in.DefaultSslBinding, &out.DefaultSslBinding + *out = new(bool) + **out = **in + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *out = new(string) + **out = **in + } + if in.HostName != nil { + in, out := &in.HostName, &out.HostName + *out = new(string) + **out = **in + } + if in.IdentityClientId != nil { + in, out := &in.IdentityClientId, &out.IdentityClientId + *out = new(string) + **out = **in + } + if in.KeyVaultId != nil { + in, out := &in.KeyVaultId, &out.KeyVaultId + *out = new(string) + **out = **in + } + if in.NegotiateClientCertificate != nil { + in, out := &in.NegotiateClientCertificate, &out.NegotiateClientCertificate + *out = new(bool) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(HostnameConfiguration_Type) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostnameConfiguration_ARM. +func (in *HostnameConfiguration_ARM) DeepCopy() *HostnameConfiguration_ARM { + if in == nil { + return nil + } + out := new(HostnameConfiguration_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 *HostnameConfiguration_STATUS) DeepCopyInto(out *HostnameConfiguration_STATUS) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation_STATUS) + (*in).DeepCopyInto(*out) + } + if in.CertificateSource != nil { + in, out := &in.CertificateSource, &out.CertificateSource + *out = new(HostnameConfiguration_CertificateSource_STATUS) + **out = **in + } + if in.CertificateStatus != nil { + in, out := &in.CertificateStatus, &out.CertificateStatus + *out = new(HostnameConfiguration_CertificateStatus_STATUS) + **out = **in + } + if in.DefaultSslBinding != nil { + in, out := &in.DefaultSslBinding, &out.DefaultSslBinding + *out = new(bool) + **out = **in + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *out = new(string) + **out = **in + } + if in.HostName != nil { + in, out := &in.HostName, &out.HostName + *out = new(string) + **out = **in + } + if in.IdentityClientId != nil { + in, out := &in.IdentityClientId, &out.IdentityClientId + *out = new(string) + **out = **in + } + if in.KeyVaultId != nil { + in, out := &in.KeyVaultId, &out.KeyVaultId + *out = new(string) + **out = **in + } + if in.NegotiateClientCertificate != nil { + in, out := &in.NegotiateClientCertificate, &out.NegotiateClientCertificate + *out = new(bool) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(HostnameConfiguration_Type_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostnameConfiguration_STATUS. +func (in *HostnameConfiguration_STATUS) DeepCopy() *HostnameConfiguration_STATUS { + if in == nil { + return nil + } + out := new(HostnameConfiguration_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 *HostnameConfiguration_STATUS_ARM) DeepCopyInto(out *HostnameConfiguration_STATUS_ARM) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.CertificateSource != nil { + in, out := &in.CertificateSource, &out.CertificateSource + *out = new(HostnameConfiguration_CertificateSource_STATUS) + **out = **in + } + if in.CertificateStatus != nil { + in, out := &in.CertificateStatus, &out.CertificateStatus + *out = new(HostnameConfiguration_CertificateStatus_STATUS) + **out = **in + } + if in.DefaultSslBinding != nil { + in, out := &in.DefaultSslBinding, &out.DefaultSslBinding + *out = new(bool) + **out = **in + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *out = new(string) + **out = **in + } + if in.HostName != nil { + in, out := &in.HostName, &out.HostName + *out = new(string) + **out = **in + } + if in.IdentityClientId != nil { + in, out := &in.IdentityClientId, &out.IdentityClientId + *out = new(string) + **out = **in + } + if in.KeyVaultId != nil { + in, out := &in.KeyVaultId, &out.KeyVaultId + *out = new(string) + **out = **in + } + if in.NegotiateClientCertificate != nil { + in, out := &in.NegotiateClientCertificate, &out.NegotiateClientCertificate + *out = new(bool) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(HostnameConfiguration_Type_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostnameConfiguration_STATUS_ARM. +func (in *HostnameConfiguration_STATUS_ARM) DeepCopy() *HostnameConfiguration_STATUS_ARM { + if in == nil { + return nil + } + out := new(HostnameConfiguration_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 *PrivateEndpointConnectionWrapperProperties_STATUS_ARM) DeepCopyInto(out *PrivateEndpointConnectionWrapperProperties_STATUS_ARM) { + *out = *in + if in.GroupIds != nil { + in, out := &in.GroupIds, &out.GroupIds + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PrivateEndpoint != nil { + in, out := &in.PrivateEndpoint, &out.PrivateEndpoint + *out = new(ArmIdWrapper_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.PrivateLinkServiceConnectionState != nil { + in, out := &in.PrivateLinkServiceConnectionState, &out.PrivateLinkServiceConnectionState + *out = new(PrivateLinkServiceConnectionState_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateEndpointConnectionWrapperProperties_STATUS_ARM. +func (in *PrivateEndpointConnectionWrapperProperties_STATUS_ARM) DeepCopy() *PrivateEndpointConnectionWrapperProperties_STATUS_ARM { + if in == nil { + return nil + } + out := new(PrivateEndpointConnectionWrapperProperties_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 *PrivateLinkServiceConnectionState_STATUS) DeepCopyInto(out *PrivateLinkServiceConnectionState_STATUS) { + *out = *in + if in.ActionsRequired != nil { + in, out := &in.ActionsRequired, &out.ActionsRequired + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(PrivateEndpointServiceConnectionStatus_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLinkServiceConnectionState_STATUS. +func (in *PrivateLinkServiceConnectionState_STATUS) DeepCopy() *PrivateLinkServiceConnectionState_STATUS { + if in == nil { + return nil + } + out := new(PrivateLinkServiceConnectionState_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 *PrivateLinkServiceConnectionState_STATUS_ARM) DeepCopyInto(out *PrivateLinkServiceConnectionState_STATUS_ARM) { + *out = *in + if in.ActionsRequired != nil { + in, out := &in.ActionsRequired, &out.ActionsRequired + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(PrivateEndpointServiceConnectionStatus_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLinkServiceConnectionState_STATUS_ARM. +func (in *PrivateLinkServiceConnectionState_STATUS_ARM) DeepCopy() *PrivateLinkServiceConnectionState_STATUS_ARM { + if in == nil { + return nil + } + out := new(PrivateLinkServiceConnectionState_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 *RemotePrivateEndpointConnectionWrapper_STATUS) DeepCopyInto(out *RemotePrivateEndpointConnectionWrapper_STATUS) { + *out = *in + if in.GroupIds != nil { + in, out := &in.GroupIds, &out.GroupIds + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PrivateEndpoint != nil { + in, out := &in.PrivateEndpoint, &out.PrivateEndpoint + *out = new(ArmIdWrapper_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PrivateLinkServiceConnectionState != nil { + in, out := &in.PrivateLinkServiceConnectionState, &out.PrivateLinkServiceConnectionState + *out = new(PrivateLinkServiceConnectionState_STATUS) + (*in).DeepCopyInto(*out) + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + 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 RemotePrivateEndpointConnectionWrapper_STATUS. +func (in *RemotePrivateEndpointConnectionWrapper_STATUS) DeepCopy() *RemotePrivateEndpointConnectionWrapper_STATUS { + if in == nil { + return nil + } + out := new(RemotePrivateEndpointConnectionWrapper_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 *RemotePrivateEndpointConnectionWrapper_STATUS_ARM) DeepCopyInto(out *RemotePrivateEndpointConnectionWrapper_STATUS_ARM) { + *out = *in + if in.Id != nil { + in, out := &in.Id, &out.Id + *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(PrivateEndpointConnectionWrapperProperties_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + 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 RemotePrivateEndpointConnectionWrapper_STATUS_ARM. +func (in *RemotePrivateEndpointConnectionWrapper_STATUS_ARM) DeepCopy() *RemotePrivateEndpointConnectionWrapper_STATUS_ARM { + if in == nil { + return nil + } + out := new(RemotePrivateEndpointConnectionWrapper_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 *Service) DeepCopyInto(out *Service) { + *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 Service. +func (in *Service) DeepCopy() *Service { + if in == nil { + return nil + } + out := new(Service) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Service) 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 *ServiceList) DeepCopyInto(out *ServiceList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Service, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceList. +func (in *ServiceList) DeepCopy() *ServiceList { + if in == nil { + return nil + } + out := new(ServiceList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServiceList) 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 *Service_STATUS) DeepCopyInto(out *Service_STATUS) { + *out = *in + if in.AdditionalLocations != nil { + in, out := &in.AdditionalLocations, &out.AdditionalLocations + *out = make([]AdditionalLocation_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiVersionConstraint != nil { + in, out := &in.ApiVersionConstraint, &out.ApiVersionConstraint + *out = new(ApiVersionConstraint_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Certificates != nil { + in, out := &in.Certificates, &out.Certificates + *out = make([]CertificateConfiguration_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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.CreatedAtUtc != nil { + in, out := &in.CreatedAtUtc, &out.CreatedAtUtc + *out = new(string) + **out = **in + } + if in.CustomProperties != nil { + in, out := &in.CustomProperties, &out.CustomProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.DeveloperPortalUrl != nil { + in, out := &in.DeveloperPortalUrl, &out.DeveloperPortalUrl + *out = new(string) + **out = **in + } + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.EnableClientCertificate != nil { + in, out := &in.EnableClientCertificate, &out.EnableClientCertificate + *out = new(bool) + **out = **in + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.GatewayRegionalUrl != nil { + in, out := &in.GatewayRegionalUrl, &out.GatewayRegionalUrl + *out = new(string) + **out = **in + } + if in.GatewayUrl != nil { + in, out := &in.GatewayUrl, &out.GatewayUrl + *out = new(string) + **out = **in + } + if in.HostnameConfigurations != nil { + in, out := &in.HostnameConfigurations, &out.HostnameConfigurations + *out = make([]HostnameConfiguration_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ApiManagementServiceIdentity_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.ManagementApiUrl != nil { + in, out := &in.ManagementApiUrl, &out.ManagementApiUrl + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *out = new(ApiManagementServiceProperties_NatGatewayState_STATUS) + **out = **in + } + if in.NotificationSenderEmail != nil { + in, out := &in.NotificationSenderEmail, &out.NotificationSenderEmail + *out = new(string) + **out = **in + } + if in.OutboundPublicIPAddresses != nil { + in, out := &in.OutboundPublicIPAddresses, &out.OutboundPublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PlatformVersion != nil { + in, out := &in.PlatformVersion, &out.PlatformVersion + *out = new(ApiManagementServiceProperties_PlatformVersion_STATUS) + **out = **in + } + if in.PortalUrl != nil { + in, out := &in.PortalUrl, &out.PortalUrl + *out = new(string) + **out = **in + } + if in.PrivateEndpointConnections != nil { + in, out := &in.PrivateEndpointConnections, &out.PrivateEndpointConnections + *out = make([]RemotePrivateEndpointConnectionWrapper_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PrivateIPAddresses != nil { + in, out := &in.PrivateIPAddresses, &out.PrivateIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(string) + **out = **in + } + if in.PublicIPAddresses != nil { + in, out := &in.PublicIPAddresses, &out.PublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PublicIpAddressId != nil { + in, out := &in.PublicIpAddressId, &out.PublicIpAddressId + *out = new(string) + **out = **in + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(ApiManagementServiceProperties_PublicNetworkAccess_STATUS) + **out = **in + } + if in.PublisherEmail != nil { + in, out := &in.PublisherEmail, &out.PublisherEmail + *out = new(string) + **out = **in + } + if in.PublisherName != nil { + in, out := &in.PublisherName, &out.PublisherName + *out = new(string) + **out = **in + } + if in.Restore != nil { + in, out := &in.Restore, &out.Restore + *out = new(bool) + **out = **in + } + if in.ScmUrl != nil { + in, out := &in.ScmUrl, &out.ScmUrl + *out = new(string) + **out = **in + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties_STATUS) + (*in).DeepCopyInto(*out) + } + if in.SystemData != nil { + in, out := &in.SystemData, &out.SystemData + *out = new(SystemData_STATUS) + (*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.TargetProvisioningState != nil { + in, out := &in.TargetProvisioningState, &out.TargetProvisioningState + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration_STATUS) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkType != nil { + in, out := &in.VirtualNetworkType, &out.VirtualNetworkType + *out = new(ApiManagementServiceProperties_VirtualNetworkType_STATUS) + **out = **in + } + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service_STATUS. +func (in *Service_STATUS) DeepCopy() *Service_STATUS { + if in == nil { + return nil + } + out := new(Service_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 *Service_STATUS_ARM) DeepCopyInto(out *Service_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.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ApiManagementServiceIdentity_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + 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(ApiManagementServiceProperties_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.SystemData != nil { + in, out := &in.SystemData, &out.SystemData + *out = new(SystemData_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 + } + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service_STATUS_ARM. +func (in *Service_STATUS_ARM) DeepCopy() *Service_STATUS_ARM { + if in == nil { + return nil + } + out := new(Service_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 *Service_Spec) DeepCopyInto(out *Service_Spec) { + *out = *in + if in.AdditionalLocations != nil { + in, out := &in.AdditionalLocations, &out.AdditionalLocations + *out = make([]AdditionalLocation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiVersionConstraint != nil { + in, out := &in.ApiVersionConstraint, &out.ApiVersionConstraint + *out = new(ApiVersionConstraint) + (*in).DeepCopyInto(*out) + } + if in.Certificates != nil { + in, out := &in.Certificates, &out.Certificates + *out = make([]CertificateConfiguration, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CustomProperties != nil { + in, out := &in.CustomProperties, &out.CustomProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.EnableClientCertificate != nil { + in, out := &in.EnableClientCertificate, &out.EnableClientCertificate + *out = new(bool) + **out = **in + } + if in.HostnameConfigurations != nil { + in, out := &in.HostnameConfigurations, &out.HostnameConfigurations + *out = make([]HostnameConfiguration, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ApiManagementServiceIdentity) + (*in).DeepCopyInto(*out) + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *out = new(ApiManagementServiceProperties_NatGatewayState) + **out = **in + } + if in.NotificationSenderEmail != nil { + in, out := &in.NotificationSenderEmail, &out.NotificationSenderEmail + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.KnownResourceReference) + **out = **in + } + if in.PublicIpAddressReference != nil { + in, out := &in.PublicIpAddressReference, &out.PublicIpAddressReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(ApiManagementServiceProperties_PublicNetworkAccess) + **out = **in + } + if in.PublisherEmail != nil { + in, out := &in.PublisherEmail, &out.PublisherEmail + *out = new(string) + **out = **in + } + if in.PublisherName != nil { + in, out := &in.PublisherName, &out.PublisherName + *out = new(string) + **out = **in + } + if in.Restore != nil { + in, out := &in.Restore, &out.Restore + *out = new(bool) + **out = **in + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties) + (*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.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkType != nil { + in, out := &in.VirtualNetworkType, &out.VirtualNetworkType + *out = new(ApiManagementServiceProperties_VirtualNetworkType) + **out = **in + } + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service_Spec. +func (in *Service_Spec) DeepCopy() *Service_Spec { + if in == nil { + return nil + } + out := new(Service_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 *Service_Spec_ARM) DeepCopyInto(out *Service_Spec_ARM) { + *out = *in + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ApiManagementServiceIdentity_ARM) + (*in).DeepCopyInto(*out) + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Properties != nil { + in, out := &in.Properties, &out.Properties + *out = new(ApiManagementServiceProperties_ARM) + (*in).DeepCopyInto(*out) + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties_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.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service_Spec_ARM. +func (in *Service_Spec_ARM) DeepCopy() *Service_Spec_ARM { + if in == nil { + return nil + } + out := new(Service_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 *SystemData_STATUS) DeepCopyInto(out *SystemData_STATUS) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.CreatedBy != nil { + in, out := &in.CreatedBy, &out.CreatedBy + *out = new(string) + **out = **in + } + if in.CreatedByType != nil { + in, out := &in.CreatedByType, &out.CreatedByType + *out = new(SystemData_CreatedByType_STATUS) + **out = **in + } + if in.LastModifiedAt != nil { + in, out := &in.LastModifiedAt, &out.LastModifiedAt + *out = new(string) + **out = **in + } + if in.LastModifiedBy != nil { + in, out := &in.LastModifiedBy, &out.LastModifiedBy + *out = new(string) + **out = **in + } + if in.LastModifiedByType != nil { + in, out := &in.LastModifiedByType, &out.LastModifiedByType + *out = new(SystemData_LastModifiedByType_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemData_STATUS. +func (in *SystemData_STATUS) DeepCopy() *SystemData_STATUS { + if in == nil { + return nil + } + out := new(SystemData_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 *SystemData_STATUS_ARM) DeepCopyInto(out *SystemData_STATUS_ARM) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.CreatedBy != nil { + in, out := &in.CreatedBy, &out.CreatedBy + *out = new(string) + **out = **in + } + if in.CreatedByType != nil { + in, out := &in.CreatedByType, &out.CreatedByType + *out = new(SystemData_CreatedByType_STATUS) + **out = **in + } + if in.LastModifiedAt != nil { + in, out := &in.LastModifiedAt, &out.LastModifiedAt + *out = new(string) + **out = **in + } + if in.LastModifiedBy != nil { + in, out := &in.LastModifiedBy, &out.LastModifiedBy + *out = new(string) + **out = **in + } + if in.LastModifiedByType != nil { + in, out := &in.LastModifiedByType, &out.LastModifiedByType + *out = new(SystemData_LastModifiedByType_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemData_STATUS_ARM. +func (in *SystemData_STATUS_ARM) DeepCopy() *SystemData_STATUS_ARM { + if in == nil { + return nil + } + out := new(SystemData_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 *UserAssignedIdentityDetails) DeepCopyInto(out *UserAssignedIdentityDetails) { + *out = *in + out.Reference = in.Reference +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentityDetails. +func (in *UserAssignedIdentityDetails) DeepCopy() *UserAssignedIdentityDetails { + if in == nil { + return nil + } + out := new(UserAssignedIdentityDetails) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserAssignedIdentityDetails_ARM) DeepCopyInto(out *UserAssignedIdentityDetails_ARM) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentityDetails_ARM. +func (in *UserAssignedIdentityDetails_ARM) DeepCopy() *UserAssignedIdentityDetails_ARM { + if in == nil { + return nil + } + out := new(UserAssignedIdentityDetails_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 *UserIdentityProperties_STATUS) DeepCopyInto(out *UserIdentityProperties_STATUS) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserIdentityProperties_STATUS. +func (in *UserIdentityProperties_STATUS) DeepCopy() *UserIdentityProperties_STATUS { + if in == nil { + return nil + } + out := new(UserIdentityProperties_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 *UserIdentityProperties_STATUS_ARM) DeepCopyInto(out *UserIdentityProperties_STATUS_ARM) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserIdentityProperties_STATUS_ARM. +func (in *UserIdentityProperties_STATUS_ARM) DeepCopy() *UserIdentityProperties_STATUS_ARM { + if in == nil { + return nil + } + out := new(UserIdentityProperties_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 *VirtualNetworkConfiguration) DeepCopyInto(out *VirtualNetworkConfiguration) { + *out = *in + if in.SubnetResourceReference != nil { + in, out := &in.SubnetResourceReference, &out.SubnetResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNetworkConfiguration. +func (in *VirtualNetworkConfiguration) DeepCopy() *VirtualNetworkConfiguration { + if in == nil { + return nil + } + out := new(VirtualNetworkConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VirtualNetworkConfiguration_ARM) DeepCopyInto(out *VirtualNetworkConfiguration_ARM) { + *out = *in + if in.SubnetResourceId != nil { + in, out := &in.SubnetResourceId, &out.SubnetResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNetworkConfiguration_ARM. +func (in *VirtualNetworkConfiguration_ARM) DeepCopy() *VirtualNetworkConfiguration_ARM { + if in == nil { + return nil + } + out := new(VirtualNetworkConfiguration_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 *VirtualNetworkConfiguration_STATUS) DeepCopyInto(out *VirtualNetworkConfiguration_STATUS) { + *out = *in + if in.SubnetResourceId != nil { + in, out := &in.SubnetResourceId, &out.SubnetResourceId + *out = new(string) + **out = **in + } + if in.Subnetname != nil { + in, out := &in.Subnetname, &out.Subnetname + *out = new(string) + **out = **in + } + if in.Vnetid != nil { + in, out := &in.Vnetid, &out.Vnetid + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNetworkConfiguration_STATUS. +func (in *VirtualNetworkConfiguration_STATUS) DeepCopy() *VirtualNetworkConfiguration_STATUS { + if in == nil { + return nil + } + out := new(VirtualNetworkConfiguration_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 *VirtualNetworkConfiguration_STATUS_ARM) DeepCopyInto(out *VirtualNetworkConfiguration_STATUS_ARM) { + *out = *in + if in.SubnetResourceId != nil { + in, out := &in.SubnetResourceId, &out.SubnetResourceId + *out = new(string) + **out = **in + } + if in.Subnetname != nil { + in, out := &in.Subnetname, &out.Subnetname + *out = new(string) + **out = **in + } + if in.Vnetid != nil { + in, out := &in.Vnetid, &out.Vnetid + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNetworkConfiguration_STATUS_ARM. +func (in *VirtualNetworkConfiguration_STATUS_ARM) DeepCopy() *VirtualNetworkConfiguration_STATUS_ARM { + if in == nil { + return nil + } + out := new(VirtualNetworkConfiguration_STATUS_ARM) + in.DeepCopyInto(out) + return out +} diff --git a/v2/api/apimanagement/v1api20220801storage/groupversion_info_gen.go b/v2/api/apimanagement/v1api20220801storage/groupversion_info_gen.go new file mode 100644 index 00000000000..6836fbc62cb --- /dev/null +++ b/v2/api/apimanagement/v1api20220801storage/groupversion_info_gen.go @@ -0,0 +1,31 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by azure-service-operator-codegen. DO NOT EDIT. + +// Package v1api20220801storage contains API Schema definitions for the apimanagement v1api20220801storage API group +// +kubebuilder:object:generate=true +// All object properties are optional by default, this will be overridden when needed: +// +kubebuilder:validation:Optional +// +groupName=apimanagement.azure.com +package v1api20220801storage + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +var ( + // GroupVersion is group version used to register these objects + GroupVersion = schema.GroupVersion{Group: "apimanagement.azure.com", Version: "v1api20220801storage"} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme + + localSchemeBuilder = SchemeBuilder.SchemeBuilder +) diff --git a/v2/api/apimanagement/v1api20220801storage/service_types_gen.go b/v2/api/apimanagement/v1api20220801storage/service_types_gen.go new file mode 100644 index 00000000000..2c8bc5605dd --- /dev/null +++ b/v2/api/apimanagement/v1api20220801storage/service_types_gen.go @@ -0,0 +1,498 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220801storage + +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=apimanagement.azure.com,resources=services,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=apimanagement.azure.com,resources={services/status,services/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 v1api20220801.Service +// Generator information: +// - Generated from: /apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/apimdeployment.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName} +type Service struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec Service_Spec `json:"spec,omitempty"` + Status Service_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &Service{} + +// GetConditions returns the conditions of the resource +func (service *Service) GetConditions() conditions.Conditions { + return service.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (service *Service) SetConditions(conditions conditions.Conditions) { + service.Status.Conditions = conditions +} + +var _ genruntime.KubernetesResource = &Service{} + +// AzureName returns the Azure name of the resource +func (service *Service) AzureName() string { + return service.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2022-08-01" +func (service Service) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (service *Service) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (service *Service) GetSpec() genruntime.ConvertibleSpec { + return &service.Spec +} + +// GetStatus returns the status of this resource +func (service *Service) GetStatus() genruntime.ConvertibleStatus { + return &service.Status +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.ApiManagement/service" +func (service *Service) GetType() string { + return "Microsoft.ApiManagement/service" +} + +// NewEmptyStatus returns a new empty (blank) status +func (service *Service) NewEmptyStatus() genruntime.ConvertibleStatus { + return &Service_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (service *Service) Owner() *genruntime.ResourceReference { + group, kind := genruntime.LookupOwnerGroupKind(service.Spec) + return service.Spec.Owner.AsResourceReference(group, kind) +} + +// SetStatus sets the status of this resource +func (service *Service) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*Service_STATUS); ok { + service.Status = *st + return nil + } + + // Convert status to required version + var st Service_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + service.Status = st + return nil +} + +// Hub marks that this Service is the hub type for conversion +func (service *Service) Hub() {} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (service *Service) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: service.Spec.OriginalVersion, + Kind: "Service", + } +} + +// +kubebuilder:object:root=true +// Storage version of v1api20220801.Service +// Generator information: +// - Generated from: /apimanagement/resource-manager/Microsoft.ApiManagement/stable/2022-08-01/apimdeployment.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ApiManagement/service/{serviceName} +type ServiceList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Service `json:"items"` +} + +// Storage version of v1api20220801.APIVersion +// +kubebuilder:validation:Enum={"2022-08-01"} +type APIVersion string + +const APIVersion_Value = APIVersion("2022-08-01") + +// Storage version of v1api20220801.Service_Spec +type Service_Spec struct { + AdditionalLocations []AdditionalLocation `json:"additionalLocations,omitempty"` + ApiVersionConstraint *ApiVersionConstraint `json:"apiVersionConstraint,omitempty"` + + // +kubebuilder:validation:MaxLength=50 + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:Pattern="^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" + // 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"` + Certificates []CertificateConfiguration `json:"certificates,omitempty"` + CustomProperties map[string]string `json:"customProperties,omitempty"` + DisableGateway *bool `json:"disableGateway,omitempty"` + EnableClientCertificate *bool `json:"enableClientCertificate,omitempty"` + HostnameConfigurations []HostnameConfiguration `json:"hostnameConfigurations,omitempty"` + Identity *ApiManagementServiceIdentity `json:"identity,omitempty"` + Location *string `json:"location,omitempty"` + NatGatewayState *string `json:"natGatewayState,omitempty"` + NotificationSenderEmail *string `json:"notificationSenderEmail,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"` + + // PublicIpAddressReference: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed + // service in the region. Supported only for Developer and Premium SKU being deployed in Virtual Network. + PublicIpAddressReference *genruntime.ResourceReference `armReference:"PublicIpAddressId" json:"publicIpAddressReference,omitempty"` + PublicNetworkAccess *string `json:"publicNetworkAccess,omitempty"` + PublisherEmail *string `json:"publisherEmail,omitempty"` + PublisherName *string `json:"publisherName,omitempty"` + Restore *bool `json:"restore,omitempty"` + Sku *ApiManagementServiceSkuProperties `json:"sku,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + VirtualNetworkConfiguration *VirtualNetworkConfiguration `json:"virtualNetworkConfiguration,omitempty"` + VirtualNetworkType *string `json:"virtualNetworkType,omitempty"` + Zones []string `json:"zones,omitempty"` +} + +var _ genruntime.ConvertibleSpec = &Service_Spec{} + +// ConvertSpecFrom populates our Service_Spec from the provided source +func (service *Service_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + if source == service { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return source.ConvertSpecTo(service) +} + +// ConvertSpecTo populates the provided destination from our Service_Spec +func (service *Service_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + if destination == service { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return destination.ConvertSpecFrom(service) +} + +// Storage version of v1api20220801.Service_STATUS +type Service_STATUS struct { + AdditionalLocations []AdditionalLocation_STATUS `json:"additionalLocations,omitempty"` + ApiVersionConstraint *ApiVersionConstraint_STATUS `json:"apiVersionConstraint,omitempty"` + Certificates []CertificateConfiguration_STATUS `json:"certificates,omitempty"` + Conditions []conditions.Condition `json:"conditions,omitempty"` + CreatedAtUtc *string `json:"createdAtUtc,omitempty"` + CustomProperties map[string]string `json:"customProperties,omitempty"` + DeveloperPortalUrl *string `json:"developerPortalUrl,omitempty"` + DisableGateway *bool `json:"disableGateway,omitempty"` + EnableClientCertificate *bool `json:"enableClientCertificate,omitempty"` + Etag *string `json:"etag,omitempty"` + GatewayRegionalUrl *string `json:"gatewayRegionalUrl,omitempty"` + GatewayUrl *string `json:"gatewayUrl,omitempty"` + HostnameConfigurations []HostnameConfiguration_STATUS `json:"hostnameConfigurations,omitempty"` + Id *string `json:"id,omitempty"` + Identity *ApiManagementServiceIdentity_STATUS `json:"identity,omitempty"` + Location *string `json:"location,omitempty"` + ManagementApiUrl *string `json:"managementApiUrl,omitempty"` + Name *string `json:"name,omitempty"` + NatGatewayState *string `json:"natGatewayState,omitempty"` + NotificationSenderEmail *string `json:"notificationSenderEmail,omitempty"` + OutboundPublicIPAddresses []string `json:"outboundPublicIPAddresses,omitempty"` + PlatformVersion *string `json:"platformVersion,omitempty"` + PortalUrl *string `json:"portalUrl,omitempty"` + PrivateEndpointConnections []RemotePrivateEndpointConnectionWrapper_STATUS `json:"privateEndpointConnections,omitempty"` + PrivateIPAddresses []string `json:"privateIPAddresses,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` + PublicIPAddresses []string `json:"publicIPAddresses,omitempty"` + PublicIpAddressId *string `json:"publicIpAddressId,omitempty"` + PublicNetworkAccess *string `json:"publicNetworkAccess,omitempty"` + PublisherEmail *string `json:"publisherEmail,omitempty"` + PublisherName *string `json:"publisherName,omitempty"` + Restore *bool `json:"restore,omitempty"` + ScmUrl *string `json:"scmUrl,omitempty"` + Sku *ApiManagementServiceSkuProperties_STATUS `json:"sku,omitempty"` + SystemData *SystemData_STATUS `json:"systemData,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + TargetProvisioningState *string `json:"targetProvisioningState,omitempty"` + Type *string `json:"type,omitempty"` + VirtualNetworkConfiguration *VirtualNetworkConfiguration_STATUS `json:"virtualNetworkConfiguration,omitempty"` + VirtualNetworkType *string `json:"virtualNetworkType,omitempty"` + Zones []string `json:"zones,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &Service_STATUS{} + +// ConvertStatusFrom populates our Service_STATUS from the provided source +func (service *Service_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + if source == service { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return source.ConvertStatusTo(service) +} + +// ConvertStatusTo populates the provided destination from our Service_STATUS +func (service *Service_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + if destination == service { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return destination.ConvertStatusFrom(service) +} + +// Storage version of v1api20220801.AdditionalLocation +// Description of an additional API Management resource location. +type AdditionalLocation struct { + DisableGateway *bool `json:"disableGateway,omitempty"` + Location *string `json:"location,omitempty"` + NatGatewayState *string `json:"natGatewayState,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // PublicIpAddressReference: Public Standard SKU IP V4 based IP address to be associated with Virtual Network deployed + // service in the location. Supported only for Premium SKU being deployed in Virtual Network. + PublicIpAddressReference *genruntime.ResourceReference `armReference:"PublicIpAddressId" json:"publicIpAddressReference,omitempty"` + Sku *ApiManagementServiceSkuProperties `json:"sku,omitempty"` + VirtualNetworkConfiguration *VirtualNetworkConfiguration `json:"virtualNetworkConfiguration,omitempty"` + Zones []string `json:"zones,omitempty"` +} + +// Storage version of v1api20220801.AdditionalLocation_STATUS +// Description of an additional API Management resource location. +type AdditionalLocation_STATUS struct { + DisableGateway *bool `json:"disableGateway,omitempty"` + GatewayRegionalUrl *string `json:"gatewayRegionalUrl,omitempty"` + Location *string `json:"location,omitempty"` + NatGatewayState *string `json:"natGatewayState,omitempty"` + OutboundPublicIPAddresses []string `json:"outboundPublicIPAddresses,omitempty"` + PlatformVersion *string `json:"platformVersion,omitempty"` + PrivateIPAddresses []string `json:"privateIPAddresses,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + PublicIPAddresses []string `json:"publicIPAddresses,omitempty"` + PublicIpAddressId *string `json:"publicIpAddressId,omitempty"` + Sku *ApiManagementServiceSkuProperties_STATUS `json:"sku,omitempty"` + VirtualNetworkConfiguration *VirtualNetworkConfiguration_STATUS `json:"virtualNetworkConfiguration,omitempty"` + Zones []string `json:"zones,omitempty"` +} + +// Storage version of v1api20220801.ApiManagementServiceIdentity +// Identity properties of the Api Management service resource. +type ApiManagementServiceIdentity struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Type *string `json:"type,omitempty"` + UserAssignedIdentities []UserAssignedIdentityDetails `json:"userAssignedIdentities,omitempty"` +} + +// Storage version of v1api20220801.ApiManagementServiceIdentity_STATUS +// Identity properties of the Api Management service resource. +type ApiManagementServiceIdentity_STATUS struct { + PrincipalId *string `json:"principalId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TenantId *string `json:"tenantId,omitempty"` + Type *string `json:"type,omitempty"` + UserAssignedIdentities map[string]UserIdentityProperties_STATUS `json:"userAssignedIdentities,omitempty"` +} + +// Storage version of v1api20220801.ApiManagementServiceSkuProperties +// API Management service resource SKU properties. +type ApiManagementServiceSkuProperties struct { + Capacity *int `json:"capacity,omitempty"` + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20220801.ApiManagementServiceSkuProperties_STATUS +// API Management service resource SKU properties. +type ApiManagementServiceSkuProperties_STATUS struct { + Capacity *int `json:"capacity,omitempty"` + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20220801.ApiVersionConstraint +// Control Plane Apis version constraint for the API Management service. +type ApiVersionConstraint struct { + MinApiVersion *string `json:"minApiVersion,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20220801.ApiVersionConstraint_STATUS +// Control Plane Apis version constraint for the API Management service. +type ApiVersionConstraint_STATUS struct { + MinApiVersion *string `json:"minApiVersion,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20220801.CertificateConfiguration +// Certificate configuration which consist of non-trusted intermediates and root certificates. +type CertificateConfiguration struct { + Certificate *CertificateInformation `json:"certificate,omitempty"` + CertificatePassword *genruntime.SecretReference `json:"certificatePassword,omitempty"` + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + StoreName *string `json:"storeName,omitempty"` +} + +// Storage version of v1api20220801.CertificateConfiguration_STATUS +// Certificate configuration which consist of non-trusted intermediates and root certificates. +type CertificateConfiguration_STATUS struct { + Certificate *CertificateInformation_STATUS `json:"certificate,omitempty"` + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + StoreName *string `json:"storeName,omitempty"` +} + +// Storage version of v1api20220801.HostnameConfiguration +// Custom hostname configuration. +type HostnameConfiguration struct { + Certificate *CertificateInformation `json:"certificate,omitempty"` + CertificatePassword *genruntime.SecretReference `json:"certificatePassword,omitempty"` + CertificateSource *string `json:"certificateSource,omitempty"` + CertificateStatus *string `json:"certificateStatus,omitempty"` + DefaultSslBinding *bool `json:"defaultSslBinding,omitempty"` + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + HostName *string `json:"hostName,omitempty"` + IdentityClientId *string `json:"identityClientId,omitempty" optionalConfigMapPair:"IdentityClientId"` + IdentityClientIdFromConfig *genruntime.ConfigMapReference `json:"identityClientIdFromConfig,omitempty" optionalConfigMapPair:"IdentityClientId"` + KeyVaultId *string `json:"keyVaultId,omitempty"` + NegotiateClientCertificate *bool `json:"negotiateClientCertificate,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Type *string `json:"type,omitempty"` +} + +// Storage version of v1api20220801.HostnameConfiguration_STATUS +// Custom hostname configuration. +type HostnameConfiguration_STATUS struct { + Certificate *CertificateInformation_STATUS `json:"certificate,omitempty"` + CertificateSource *string `json:"certificateSource,omitempty"` + CertificateStatus *string `json:"certificateStatus,omitempty"` + DefaultSslBinding *bool `json:"defaultSslBinding,omitempty"` + EncodedCertificate *string `json:"encodedCertificate,omitempty"` + HostName *string `json:"hostName,omitempty"` + IdentityClientId *string `json:"identityClientId,omitempty"` + KeyVaultId *string `json:"keyVaultId,omitempty"` + NegotiateClientCertificate *bool `json:"negotiateClientCertificate,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Type *string `json:"type,omitempty"` +} + +// Storage version of v1api20220801.RemotePrivateEndpointConnectionWrapper_STATUS +// Remote Private Endpoint Connection resource. +type RemotePrivateEndpointConnectionWrapper_STATUS struct { + GroupIds []string `json:"groupIds,omitempty"` + Id *string `json:"id,omitempty"` + Name *string `json:"name,omitempty"` + PrivateEndpoint *ArmIdWrapper_STATUS `json:"privateEndpoint,omitempty"` + PrivateLinkServiceConnectionState *PrivateLinkServiceConnectionState_STATUS `json:"privateLinkServiceConnectionState,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` + Type *string `json:"type,omitempty"` +} + +// Storage version of v1api20220801.SystemData_STATUS +// Metadata pertaining to creation and last modification of the resource. +type SystemData_STATUS struct { + CreatedAt *string `json:"createdAt,omitempty"` + CreatedBy *string `json:"createdBy,omitempty"` + CreatedByType *string `json:"createdByType,omitempty"` + LastModifiedAt *string `json:"lastModifiedAt,omitempty"` + LastModifiedBy *string `json:"lastModifiedBy,omitempty"` + LastModifiedByType *string `json:"lastModifiedByType,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20220801.VirtualNetworkConfiguration +// Configuration of a virtual network to which API Management service is deployed. +type VirtualNetworkConfiguration struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + + // SubnetResourceReference: The full resource ID of a subnet in a virtual network to deploy the API Management service in. + SubnetResourceReference *genruntime.ResourceReference `armReference:"SubnetResourceId" json:"subnetResourceReference,omitempty"` +} + +// Storage version of v1api20220801.VirtualNetworkConfiguration_STATUS +// Configuration of a virtual network to which API Management service is deployed. +type VirtualNetworkConfiguration_STATUS struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + SubnetResourceId *string `json:"subnetResourceId,omitempty"` + Subnetname *string `json:"subnetname,omitempty"` + Vnetid *string `json:"vnetid,omitempty"` +} + +// Storage version of v1api20220801.ArmIdWrapper_STATUS +// A wrapper for an ARM resource id +type ArmIdWrapper_STATUS struct { + Id *string `json:"id,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20220801.CertificateInformation +// SSL certificate information. +type CertificateInformation struct { + Expiry *string `json:"expiry,omitempty" optionalConfigMapPair:"Expiry"` + ExpiryFromConfig *genruntime.ConfigMapReference `json:"expiryFromConfig,omitempty" optionalConfigMapPair:"Expiry"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Subject *string `json:"subject,omitempty" optionalConfigMapPair:"Subject"` + SubjectFromConfig *genruntime.ConfigMapReference `json:"subjectFromConfig,omitempty" optionalConfigMapPair:"Subject"` + Thumbprint *string `json:"thumbprint,omitempty" optionalConfigMapPair:"Thumbprint"` + ThumbprintFromConfig *genruntime.ConfigMapReference `json:"thumbprintFromConfig,omitempty" optionalConfigMapPair:"Thumbprint"` +} + +// Storage version of v1api20220801.CertificateInformation_STATUS +// SSL certificate information. +type CertificateInformation_STATUS struct { + Expiry *string `json:"expiry,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Subject *string `json:"subject,omitempty"` + Thumbprint *string `json:"thumbprint,omitempty"` +} + +// Storage version of v1api20220801.PrivateLinkServiceConnectionState_STATUS +// A collection of information about the state of the connection between service consumer and provider. +type PrivateLinkServiceConnectionState_STATUS struct { + ActionsRequired *string `json:"actionsRequired,omitempty"` + Description *string `json:"description,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Status *string `json:"status,omitempty"` +} + +// Storage version of v1api20220801.UserAssignedIdentityDetails +// Information about the user assigned identity for the resource +type UserAssignedIdentityDetails struct { + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Reference genruntime.ResourceReference `armReference:"Reference" json:"reference,omitempty"` +} + +// Storage version of v1api20220801.UserIdentityProperties_STATUS +type UserIdentityProperties_STATUS struct { + ClientId *string `json:"clientId,omitempty"` + PrincipalId *string `json:"principalId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +func init() { + SchemeBuilder.Register(&Service{}, &ServiceList{}) +} diff --git a/v2/api/apimanagement/v1api20220801storage/service_types_gen_test.go b/v2/api/apimanagement/v1api20220801storage/service_types_gen_test.go new file mode 100644 index 00000000000..3829d4de9c7 --- /dev/null +++ b/v2/api/apimanagement/v1api20220801storage/service_types_gen_test.go @@ -0,0 +1,1794 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20220801storage + +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_Service_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 Service via JSON returns original", + prop.ForAll(RunJSONSerializationTestForService, ServiceGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForService runs a test to see if a specific instance of Service round trips to JSON and back losslessly +func RunJSONSerializationTestForService(subject Service) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Service + 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 Service instances for property testing - lazily instantiated by ServiceGenerator() +var serviceGenerator gopter.Gen + +// ServiceGenerator returns a generator of Service instances for property testing. +func ServiceGenerator() gopter.Gen { + if serviceGenerator != nil { + return serviceGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForService(generators) + serviceGenerator = gen.Struct(reflect.TypeOf(Service{}), generators) + + return serviceGenerator +} + +// AddRelatedPropertyGeneratorsForService is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForService(gens map[string]gopter.Gen) { + gens["Spec"] = Service_SpecGenerator() + gens["Status"] = Service_STATUSGenerator() +} + +func Test_Service_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 Service_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForService_Spec, Service_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForService_Spec runs a test to see if a specific instance of Service_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForService_Spec(subject Service_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Service_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 Service_Spec instances for property testing - lazily instantiated by Service_SpecGenerator() +var service_SpecGenerator gopter.Gen + +// Service_SpecGenerator returns a generator of Service_Spec instances for property testing. +// We first initialize service_SpecGenerator 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 Service_SpecGenerator() gopter.Gen { + if service_SpecGenerator != nil { + return service_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_Spec(generators) + service_SpecGenerator = gen.Struct(reflect.TypeOf(Service_Spec{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_Spec(generators) + AddRelatedPropertyGeneratorsForService_Spec(generators) + service_SpecGenerator = gen.Struct(reflect.TypeOf(Service_Spec{}), generators) + + return service_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForService_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForService_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["CustomProperties"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["EnableClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["NatGatewayState"] = gen.PtrOf(gen.AlphaString()) + gens["NotificationSenderEmail"] = gen.PtrOf(gen.AlphaString()) + gens["OriginalVersion"] = gen.AlphaString() + gens["PublicNetworkAccess"] = gen.PtrOf(gen.AlphaString()) + gens["PublisherEmail"] = gen.PtrOf(gen.AlphaString()) + gens["PublisherName"] = gen.PtrOf(gen.AlphaString()) + gens["Restore"] = gen.PtrOf(gen.Bool()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["VirtualNetworkType"] = gen.PtrOf(gen.AlphaString()) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForService_Spec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForService_Spec(gens map[string]gopter.Gen) { + gens["AdditionalLocations"] = gen.SliceOf(AdditionalLocationGenerator()) + gens["ApiVersionConstraint"] = gen.PtrOf(ApiVersionConstraintGenerator()) + gens["Certificates"] = gen.SliceOf(CertificateConfigurationGenerator()) + gens["HostnameConfigurations"] = gen.SliceOf(HostnameConfigurationGenerator()) + gens["Identity"] = gen.PtrOf(ApiManagementServiceIdentityGenerator()) + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuPropertiesGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfigurationGenerator()) +} + +func Test_Service_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 Service_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForService_STATUS, Service_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForService_STATUS runs a test to see if a specific instance of Service_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForService_STATUS(subject Service_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Service_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 Service_STATUS instances for property testing - lazily instantiated by Service_STATUSGenerator() +var service_STATUSGenerator gopter.Gen + +// Service_STATUSGenerator returns a generator of Service_STATUS instances for property testing. +// We first initialize service_STATUSGenerator 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 Service_STATUSGenerator() gopter.Gen { + if service_STATUSGenerator != nil { + return service_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_STATUS(generators) + service_STATUSGenerator = gen.Struct(reflect.TypeOf(Service_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForService_STATUS(generators) + AddRelatedPropertyGeneratorsForService_STATUS(generators) + service_STATUSGenerator = gen.Struct(reflect.TypeOf(Service_STATUS{}), generators) + + return service_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForService_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForService_STATUS(gens map[string]gopter.Gen) { + gens["CreatedAtUtc"] = gen.PtrOf(gen.AlphaString()) + gens["CustomProperties"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["DeveloperPortalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["EnableClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["Etag"] = gen.PtrOf(gen.AlphaString()) + gens["GatewayRegionalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["GatewayUrl"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["ManagementApiUrl"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["NatGatewayState"] = gen.PtrOf(gen.AlphaString()) + gens["NotificationSenderEmail"] = gen.PtrOf(gen.AlphaString()) + gens["OutboundPublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PlatformVersion"] = gen.PtrOf(gen.AlphaString()) + gens["PortalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["PrivateIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["PublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PublicIpAddressId"] = gen.PtrOf(gen.AlphaString()) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.AlphaString()) + gens["PublisherEmail"] = gen.PtrOf(gen.AlphaString()) + gens["PublisherName"] = gen.PtrOf(gen.AlphaString()) + gens["Restore"] = gen.PtrOf(gen.Bool()) + gens["ScmUrl"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf(gen.AlphaString(), gen.AlphaString()) + gens["TargetProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) + gens["VirtualNetworkType"] = gen.PtrOf(gen.AlphaString()) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForService_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForService_STATUS(gens map[string]gopter.Gen) { + gens["AdditionalLocations"] = gen.SliceOf(AdditionalLocation_STATUSGenerator()) + gens["ApiVersionConstraint"] = gen.PtrOf(ApiVersionConstraint_STATUSGenerator()) + gens["Certificates"] = gen.SliceOf(CertificateConfiguration_STATUSGenerator()) + gens["HostnameConfigurations"] = gen.SliceOf(HostnameConfiguration_STATUSGenerator()) + gens["Identity"] = gen.PtrOf(ApiManagementServiceIdentity_STATUSGenerator()) + gens["PrivateEndpointConnections"] = gen.SliceOf(RemotePrivateEndpointConnectionWrapper_STATUSGenerator()) + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuProperties_STATUSGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUSGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfiguration_STATUSGenerator()) +} + +func Test_AdditionalLocation_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of AdditionalLocation via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAdditionalLocation, AdditionalLocationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAdditionalLocation runs a test to see if a specific instance of AdditionalLocation round trips to JSON and back losslessly +func RunJSONSerializationTestForAdditionalLocation(subject AdditionalLocation) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AdditionalLocation + 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 AdditionalLocation instances for property testing - lazily instantiated by AdditionalLocationGenerator() +var additionalLocationGenerator gopter.Gen + +// AdditionalLocationGenerator returns a generator of AdditionalLocation instances for property testing. +// We first initialize additionalLocationGenerator 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 AdditionalLocationGenerator() gopter.Gen { + if additionalLocationGenerator != nil { + return additionalLocationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation(generators) + additionalLocationGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation(generators) + AddRelatedPropertyGeneratorsForAdditionalLocation(generators) + additionalLocationGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation{}), generators) + + return additionalLocationGenerator +} + +// AddIndependentPropertyGeneratorsForAdditionalLocation is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAdditionalLocation(gens map[string]gopter.Gen) { + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["NatGatewayState"] = gen.PtrOf(gen.AlphaString()) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAdditionalLocation is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAdditionalLocation(gens map[string]gopter.Gen) { + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuPropertiesGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfigurationGenerator()) +} + +func Test_AdditionalLocation_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 AdditionalLocation_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAdditionalLocation_STATUS, AdditionalLocation_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAdditionalLocation_STATUS runs a test to see if a specific instance of AdditionalLocation_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForAdditionalLocation_STATUS(subject AdditionalLocation_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AdditionalLocation_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 AdditionalLocation_STATUS instances for property testing - lazily instantiated by +// AdditionalLocation_STATUSGenerator() +var additionalLocation_STATUSGenerator gopter.Gen + +// AdditionalLocation_STATUSGenerator returns a generator of AdditionalLocation_STATUS instances for property testing. +// We first initialize additionalLocation_STATUSGenerator 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 AdditionalLocation_STATUSGenerator() gopter.Gen { + if additionalLocation_STATUSGenerator != nil { + return additionalLocation_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS(generators) + additionalLocation_STATUSGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS(generators) + AddRelatedPropertyGeneratorsForAdditionalLocation_STATUS(generators) + additionalLocation_STATUSGenerator = gen.Struct(reflect.TypeOf(AdditionalLocation_STATUS{}), generators) + + return additionalLocation_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAdditionalLocation_STATUS(gens map[string]gopter.Gen) { + gens["DisableGateway"] = gen.PtrOf(gen.Bool()) + gens["GatewayRegionalUrl"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["NatGatewayState"] = gen.PtrOf(gen.AlphaString()) + gens["OutboundPublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PlatformVersion"] = gen.PtrOf(gen.AlphaString()) + gens["PrivateIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PublicIPAddresses"] = gen.SliceOf(gen.AlphaString()) + gens["PublicIpAddressId"] = gen.PtrOf(gen.AlphaString()) + gens["Zones"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAdditionalLocation_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAdditionalLocation_STATUS(gens map[string]gopter.Gen) { + gens["Sku"] = gen.PtrOf(ApiManagementServiceSkuProperties_STATUSGenerator()) + gens["VirtualNetworkConfiguration"] = gen.PtrOf(VirtualNetworkConfiguration_STATUSGenerator()) +} + +func Test_ApiManagementServiceIdentity_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApiManagementServiceIdentity via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceIdentity, ApiManagementServiceIdentityGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceIdentity runs a test to see if a specific instance of ApiManagementServiceIdentity round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceIdentity(subject ApiManagementServiceIdentity) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceIdentity + 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 ApiManagementServiceIdentity instances for property testing - lazily instantiated by +// ApiManagementServiceIdentityGenerator() +var apiManagementServiceIdentityGenerator gopter.Gen + +// ApiManagementServiceIdentityGenerator returns a generator of ApiManagementServiceIdentity instances for property testing. +// We first initialize apiManagementServiceIdentityGenerator 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 ApiManagementServiceIdentityGenerator() gopter.Gen { + if apiManagementServiceIdentityGenerator != nil { + return apiManagementServiceIdentityGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity(generators) + apiManagementServiceIdentityGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity(generators) + AddRelatedPropertyGeneratorsForApiManagementServiceIdentity(generators) + apiManagementServiceIdentityGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity{}), generators) + + return apiManagementServiceIdentityGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceIdentity is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceIdentity(gens map[string]gopter.Gen) { + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForApiManagementServiceIdentity is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForApiManagementServiceIdentity(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.SliceOf(UserAssignedIdentityDetailsGenerator()) +} + +func Test_ApiManagementServiceIdentity_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 ApiManagementServiceIdentity_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceIdentity_STATUS, ApiManagementServiceIdentity_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceIdentity_STATUS runs a test to see if a specific instance of ApiManagementServiceIdentity_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceIdentity_STATUS(subject ApiManagementServiceIdentity_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceIdentity_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 ApiManagementServiceIdentity_STATUS instances for property testing - lazily instantiated by +// ApiManagementServiceIdentity_STATUSGenerator() +var apiManagementServiceIdentity_STATUSGenerator gopter.Gen + +// ApiManagementServiceIdentity_STATUSGenerator returns a generator of ApiManagementServiceIdentity_STATUS instances for property testing. +// We first initialize apiManagementServiceIdentity_STATUSGenerator 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 ApiManagementServiceIdentity_STATUSGenerator() gopter.Gen { + if apiManagementServiceIdentity_STATUSGenerator != nil { + return apiManagementServiceIdentity_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS(generators) + apiManagementServiceIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS(generators) + AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_STATUS(generators) + apiManagementServiceIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceIdentity_STATUS{}), generators) + + return apiManagementServiceIdentity_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceIdentity_STATUS(gens map[string]gopter.Gen) { + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) + gens["TenantId"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForApiManagementServiceIdentity_STATUS(gens map[string]gopter.Gen) { + gens["UserAssignedIdentities"] = gen.MapOf(gen.AlphaString(), UserIdentityProperties_STATUSGenerator()) +} + +func Test_ApiManagementServiceSkuProperties_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApiManagementServiceSkuProperties via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceSkuProperties, ApiManagementServiceSkuPropertiesGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceSkuProperties runs a test to see if a specific instance of ApiManagementServiceSkuProperties round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceSkuProperties(subject ApiManagementServiceSkuProperties) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceSkuProperties + 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 ApiManagementServiceSkuProperties instances for property testing - lazily instantiated by +// ApiManagementServiceSkuPropertiesGenerator() +var apiManagementServiceSkuPropertiesGenerator gopter.Gen + +// ApiManagementServiceSkuPropertiesGenerator returns a generator of ApiManagementServiceSkuProperties instances for property testing. +func ApiManagementServiceSkuPropertiesGenerator() gopter.Gen { + if apiManagementServiceSkuPropertiesGenerator != nil { + return apiManagementServiceSkuPropertiesGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties(generators) + apiManagementServiceSkuPropertiesGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceSkuProperties{}), generators) + + return apiManagementServiceSkuPropertiesGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties(gens map[string]gopter.Gen) { + gens["Capacity"] = gen.PtrOf(gen.Int()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ApiManagementServiceSkuProperties_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 ApiManagementServiceSkuProperties_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiManagementServiceSkuProperties_STATUS, ApiManagementServiceSkuProperties_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiManagementServiceSkuProperties_STATUS runs a test to see if a specific instance of ApiManagementServiceSkuProperties_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForApiManagementServiceSkuProperties_STATUS(subject ApiManagementServiceSkuProperties_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiManagementServiceSkuProperties_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 ApiManagementServiceSkuProperties_STATUS instances for property testing - lazily instantiated by +// ApiManagementServiceSkuProperties_STATUSGenerator() +var apiManagementServiceSkuProperties_STATUSGenerator gopter.Gen + +// ApiManagementServiceSkuProperties_STATUSGenerator returns a generator of ApiManagementServiceSkuProperties_STATUS instances for property testing. +func ApiManagementServiceSkuProperties_STATUSGenerator() gopter.Gen { + if apiManagementServiceSkuProperties_STATUSGenerator != nil { + return apiManagementServiceSkuProperties_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_STATUS(generators) + apiManagementServiceSkuProperties_STATUSGenerator = gen.Struct(reflect.TypeOf(ApiManagementServiceSkuProperties_STATUS{}), generators) + + return apiManagementServiceSkuProperties_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiManagementServiceSkuProperties_STATUS(gens map[string]gopter.Gen) { + gens["Capacity"] = gen.PtrOf(gen.Int()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ApiVersionConstraint_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of ApiVersionConstraint via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiVersionConstraint, ApiVersionConstraintGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiVersionConstraint runs a test to see if a specific instance of ApiVersionConstraint round trips to JSON and back losslessly +func RunJSONSerializationTestForApiVersionConstraint(subject ApiVersionConstraint) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiVersionConstraint + 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 ApiVersionConstraint instances for property testing - lazily instantiated by +// ApiVersionConstraintGenerator() +var apiVersionConstraintGenerator gopter.Gen + +// ApiVersionConstraintGenerator returns a generator of ApiVersionConstraint instances for property testing. +func ApiVersionConstraintGenerator() gopter.Gen { + if apiVersionConstraintGenerator != nil { + return apiVersionConstraintGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiVersionConstraint(generators) + apiVersionConstraintGenerator = gen.Struct(reflect.TypeOf(ApiVersionConstraint{}), generators) + + return apiVersionConstraintGenerator +} + +// AddIndependentPropertyGeneratorsForApiVersionConstraint is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiVersionConstraint(gens map[string]gopter.Gen) { + gens["MinApiVersion"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ApiVersionConstraint_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 ApiVersionConstraint_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForApiVersionConstraint_STATUS, ApiVersionConstraint_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForApiVersionConstraint_STATUS runs a test to see if a specific instance of ApiVersionConstraint_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForApiVersionConstraint_STATUS(subject ApiVersionConstraint_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ApiVersionConstraint_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 ApiVersionConstraint_STATUS instances for property testing - lazily instantiated by +// ApiVersionConstraint_STATUSGenerator() +var apiVersionConstraint_STATUSGenerator gopter.Gen + +// ApiVersionConstraint_STATUSGenerator returns a generator of ApiVersionConstraint_STATUS instances for property testing. +func ApiVersionConstraint_STATUSGenerator() gopter.Gen { + if apiVersionConstraint_STATUSGenerator != nil { + return apiVersionConstraint_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForApiVersionConstraint_STATUS(generators) + apiVersionConstraint_STATUSGenerator = gen.Struct(reflect.TypeOf(ApiVersionConstraint_STATUS{}), generators) + + return apiVersionConstraint_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForApiVersionConstraint_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForApiVersionConstraint_STATUS(gens map[string]gopter.Gen) { + gens["MinApiVersion"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CertificateConfiguration_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CertificateConfiguration via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateConfiguration, CertificateConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateConfiguration runs a test to see if a specific instance of CertificateConfiguration round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateConfiguration(subject CertificateConfiguration) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateConfiguration + 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 CertificateConfiguration instances for property testing - lazily instantiated by +// CertificateConfigurationGenerator() +var certificateConfigurationGenerator gopter.Gen + +// CertificateConfigurationGenerator returns a generator of CertificateConfiguration instances for property testing. +// We first initialize certificateConfigurationGenerator 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 CertificateConfigurationGenerator() gopter.Gen { + if certificateConfigurationGenerator != nil { + return certificateConfigurationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration(generators) + certificateConfigurationGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration(generators) + AddRelatedPropertyGeneratorsForCertificateConfiguration(generators) + certificateConfigurationGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration{}), generators) + + return certificateConfigurationGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateConfiguration is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateConfiguration(gens map[string]gopter.Gen) { + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["StoreName"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForCertificateConfiguration is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForCertificateConfiguration(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformationGenerator()) +} + +func Test_CertificateConfiguration_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 CertificateConfiguration_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateConfiguration_STATUS, CertificateConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateConfiguration_STATUS runs a test to see if a specific instance of CertificateConfiguration_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateConfiguration_STATUS(subject CertificateConfiguration_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateConfiguration_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 CertificateConfiguration_STATUS instances for property testing - lazily instantiated by +// CertificateConfiguration_STATUSGenerator() +var certificateConfiguration_STATUSGenerator gopter.Gen + +// CertificateConfiguration_STATUSGenerator returns a generator of CertificateConfiguration_STATUS instances for property testing. +// We first initialize certificateConfiguration_STATUSGenerator 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 CertificateConfiguration_STATUSGenerator() gopter.Gen { + if certificateConfiguration_STATUSGenerator != nil { + return certificateConfiguration_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS(generators) + certificateConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS(generators) + AddRelatedPropertyGeneratorsForCertificateConfiguration_STATUS(generators) + certificateConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(CertificateConfiguration_STATUS{}), generators) + + return certificateConfiguration_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["StoreName"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForCertificateConfiguration_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForCertificateConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformation_STATUSGenerator()) +} + +func Test_HostnameConfiguration_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of HostnameConfiguration via JSON returns original", + prop.ForAll(RunJSONSerializationTestForHostnameConfiguration, HostnameConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForHostnameConfiguration runs a test to see if a specific instance of HostnameConfiguration round trips to JSON and back losslessly +func RunJSONSerializationTestForHostnameConfiguration(subject HostnameConfiguration) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual HostnameConfiguration + 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 HostnameConfiguration instances for property testing - lazily instantiated by +// HostnameConfigurationGenerator() +var hostnameConfigurationGenerator gopter.Gen + +// HostnameConfigurationGenerator returns a generator of HostnameConfiguration instances for property testing. +// We first initialize hostnameConfigurationGenerator 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 HostnameConfigurationGenerator() gopter.Gen { + if hostnameConfigurationGenerator != nil { + return hostnameConfigurationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration(generators) + hostnameConfigurationGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration(generators) + AddRelatedPropertyGeneratorsForHostnameConfiguration(generators) + hostnameConfigurationGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration{}), generators) + + return hostnameConfigurationGenerator +} + +// AddIndependentPropertyGeneratorsForHostnameConfiguration is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForHostnameConfiguration(gens map[string]gopter.Gen) { + gens["CertificateSource"] = gen.PtrOf(gen.AlphaString()) + gens["CertificateStatus"] = gen.PtrOf(gen.AlphaString()) + gens["DefaultSslBinding"] = gen.PtrOf(gen.Bool()) + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["HostName"] = gen.PtrOf(gen.AlphaString()) + gens["IdentityClientId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultId"] = gen.PtrOf(gen.AlphaString()) + gens["NegotiateClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForHostnameConfiguration is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForHostnameConfiguration(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformationGenerator()) +} + +func Test_HostnameConfiguration_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 HostnameConfiguration_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForHostnameConfiguration_STATUS, HostnameConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForHostnameConfiguration_STATUS runs a test to see if a specific instance of HostnameConfiguration_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForHostnameConfiguration_STATUS(subject HostnameConfiguration_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual HostnameConfiguration_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 HostnameConfiguration_STATUS instances for property testing - lazily instantiated by +// HostnameConfiguration_STATUSGenerator() +var hostnameConfiguration_STATUSGenerator gopter.Gen + +// HostnameConfiguration_STATUSGenerator returns a generator of HostnameConfiguration_STATUS instances for property testing. +// We first initialize hostnameConfiguration_STATUSGenerator 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 HostnameConfiguration_STATUSGenerator() gopter.Gen { + if hostnameConfiguration_STATUSGenerator != nil { + return hostnameConfiguration_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS(generators) + hostnameConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS(generators) + AddRelatedPropertyGeneratorsForHostnameConfiguration_STATUS(generators) + hostnameConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(HostnameConfiguration_STATUS{}), generators) + + return hostnameConfiguration_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForHostnameConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["CertificateSource"] = gen.PtrOf(gen.AlphaString()) + gens["CertificateStatus"] = gen.PtrOf(gen.AlphaString()) + gens["DefaultSslBinding"] = gen.PtrOf(gen.Bool()) + gens["EncodedCertificate"] = gen.PtrOf(gen.AlphaString()) + gens["HostName"] = gen.PtrOf(gen.AlphaString()) + gens["IdentityClientId"] = gen.PtrOf(gen.AlphaString()) + gens["KeyVaultId"] = gen.PtrOf(gen.AlphaString()) + gens["NegotiateClientCertificate"] = gen.PtrOf(gen.Bool()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForHostnameConfiguration_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForHostnameConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["Certificate"] = gen.PtrOf(CertificateInformation_STATUSGenerator()) +} + +func Test_RemotePrivateEndpointConnectionWrapper_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 RemotePrivateEndpointConnectionWrapper_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForRemotePrivateEndpointConnectionWrapper_STATUS, RemotePrivateEndpointConnectionWrapper_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForRemotePrivateEndpointConnectionWrapper_STATUS runs a test to see if a specific instance of RemotePrivateEndpointConnectionWrapper_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForRemotePrivateEndpointConnectionWrapper_STATUS(subject RemotePrivateEndpointConnectionWrapper_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual RemotePrivateEndpointConnectionWrapper_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 RemotePrivateEndpointConnectionWrapper_STATUS instances for property testing - lazily instantiated by +// RemotePrivateEndpointConnectionWrapper_STATUSGenerator() +var remotePrivateEndpointConnectionWrapper_STATUSGenerator gopter.Gen + +// RemotePrivateEndpointConnectionWrapper_STATUSGenerator returns a generator of RemotePrivateEndpointConnectionWrapper_STATUS instances for property testing. +// We first initialize remotePrivateEndpointConnectionWrapper_STATUSGenerator 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 RemotePrivateEndpointConnectionWrapper_STATUSGenerator() gopter.Gen { + if remotePrivateEndpointConnectionWrapper_STATUSGenerator != nil { + return remotePrivateEndpointConnectionWrapper_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS(generators) + remotePrivateEndpointConnectionWrapper_STATUSGenerator = gen.Struct(reflect.TypeOf(RemotePrivateEndpointConnectionWrapper_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS(generators) + AddRelatedPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS(generators) + remotePrivateEndpointConnectionWrapper_STATUSGenerator = gen.Struct(reflect.TypeOf(RemotePrivateEndpointConnectionWrapper_STATUS{}), generators) + + return remotePrivateEndpointConnectionWrapper_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS(gens map[string]gopter.Gen) { + gens["GroupIds"] = gen.SliceOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForRemotePrivateEndpointConnectionWrapper_STATUS(gens map[string]gopter.Gen) { + gens["PrivateEndpoint"] = gen.PtrOf(ArmIdWrapper_STATUSGenerator()) + gens["PrivateLinkServiceConnectionState"] = gen.PtrOf(PrivateLinkServiceConnectionState_STATUSGenerator()) +} + +func Test_SystemData_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 SystemData_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForSystemData_STATUS, SystemData_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForSystemData_STATUS runs a test to see if a specific instance of SystemData_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForSystemData_STATUS(subject SystemData_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual SystemData_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 SystemData_STATUS instances for property testing - lazily instantiated by SystemData_STATUSGenerator() +var systemData_STATUSGenerator gopter.Gen + +// SystemData_STATUSGenerator returns a generator of SystemData_STATUS instances for property testing. +func SystemData_STATUSGenerator() gopter.Gen { + if systemData_STATUSGenerator != nil { + return systemData_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForSystemData_STATUS(generators) + systemData_STATUSGenerator = gen.Struct(reflect.TypeOf(SystemData_STATUS{}), generators) + + return systemData_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForSystemData_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForSystemData_STATUS(gens map[string]gopter.Gen) { + gens["CreatedAt"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedBy"] = gen.PtrOf(gen.AlphaString()) + gens["CreatedByType"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedAt"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedBy"] = gen.PtrOf(gen.AlphaString()) + gens["LastModifiedByType"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_VirtualNetworkConfiguration_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of VirtualNetworkConfiguration via JSON returns original", + prop.ForAll(RunJSONSerializationTestForVirtualNetworkConfiguration, VirtualNetworkConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForVirtualNetworkConfiguration runs a test to see if a specific instance of VirtualNetworkConfiguration round trips to JSON and back losslessly +func RunJSONSerializationTestForVirtualNetworkConfiguration(subject VirtualNetworkConfiguration) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual VirtualNetworkConfiguration + 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 VirtualNetworkConfiguration instances for property testing - lazily instantiated by +// VirtualNetworkConfigurationGenerator() +var virtualNetworkConfigurationGenerator gopter.Gen + +// VirtualNetworkConfigurationGenerator returns a generator of VirtualNetworkConfiguration instances for property testing. +func VirtualNetworkConfigurationGenerator() gopter.Gen { + if virtualNetworkConfigurationGenerator != nil { + return virtualNetworkConfigurationGenerator + } + + generators := make(map[string]gopter.Gen) + virtualNetworkConfigurationGenerator = gen.Struct(reflect.TypeOf(VirtualNetworkConfiguration{}), generators) + + return virtualNetworkConfigurationGenerator +} + +func Test_VirtualNetworkConfiguration_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 VirtualNetworkConfiguration_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForVirtualNetworkConfiguration_STATUS, VirtualNetworkConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForVirtualNetworkConfiguration_STATUS runs a test to see if a specific instance of VirtualNetworkConfiguration_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForVirtualNetworkConfiguration_STATUS(subject VirtualNetworkConfiguration_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual VirtualNetworkConfiguration_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 VirtualNetworkConfiguration_STATUS instances for property testing - lazily instantiated by +// VirtualNetworkConfiguration_STATUSGenerator() +var virtualNetworkConfiguration_STATUSGenerator gopter.Gen + +// VirtualNetworkConfiguration_STATUSGenerator returns a generator of VirtualNetworkConfiguration_STATUS instances for property testing. +func VirtualNetworkConfiguration_STATUSGenerator() gopter.Gen { + if virtualNetworkConfiguration_STATUSGenerator != nil { + return virtualNetworkConfiguration_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_STATUS(generators) + virtualNetworkConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(VirtualNetworkConfiguration_STATUS{}), generators) + + return virtualNetworkConfiguration_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForVirtualNetworkConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["SubnetResourceId"] = gen.PtrOf(gen.AlphaString()) + gens["Subnetname"] = gen.PtrOf(gen.AlphaString()) + gens["Vnetid"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_ArmIdWrapper_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 ArmIdWrapper_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForArmIdWrapper_STATUS, ArmIdWrapper_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForArmIdWrapper_STATUS runs a test to see if a specific instance of ArmIdWrapper_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForArmIdWrapper_STATUS(subject ArmIdWrapper_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual ArmIdWrapper_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 ArmIdWrapper_STATUS instances for property testing - lazily instantiated by +// ArmIdWrapper_STATUSGenerator() +var armIdWrapper_STATUSGenerator gopter.Gen + +// ArmIdWrapper_STATUSGenerator returns a generator of ArmIdWrapper_STATUS instances for property testing. +func ArmIdWrapper_STATUSGenerator() gopter.Gen { + if armIdWrapper_STATUSGenerator != nil { + return armIdWrapper_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForArmIdWrapper_STATUS(generators) + armIdWrapper_STATUSGenerator = gen.Struct(reflect.TypeOf(ArmIdWrapper_STATUS{}), generators) + + return armIdWrapper_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForArmIdWrapper_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForArmIdWrapper_STATUS(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CertificateInformation_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of CertificateInformation via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateInformation, CertificateInformationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateInformation runs a test to see if a specific instance of CertificateInformation round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateInformation(subject CertificateInformation) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateInformation + 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 CertificateInformation instances for property testing - lazily instantiated by +// CertificateInformationGenerator() +var certificateInformationGenerator gopter.Gen + +// CertificateInformationGenerator returns a generator of CertificateInformation instances for property testing. +func CertificateInformationGenerator() gopter.Gen { + if certificateInformationGenerator != nil { + return certificateInformationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateInformation(generators) + certificateInformationGenerator = gen.Struct(reflect.TypeOf(CertificateInformation{}), generators) + + return certificateInformationGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateInformation is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateInformation(gens map[string]gopter.Gen) { + gens["Expiry"] = gen.PtrOf(gen.AlphaString()) + gens["Subject"] = gen.PtrOf(gen.AlphaString()) + gens["Thumbprint"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_CertificateInformation_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 CertificateInformation_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForCertificateInformation_STATUS, CertificateInformation_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForCertificateInformation_STATUS runs a test to see if a specific instance of CertificateInformation_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForCertificateInformation_STATUS(subject CertificateInformation_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual CertificateInformation_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 CertificateInformation_STATUS instances for property testing - lazily instantiated by +// CertificateInformation_STATUSGenerator() +var certificateInformation_STATUSGenerator gopter.Gen + +// CertificateInformation_STATUSGenerator returns a generator of CertificateInformation_STATUS instances for property testing. +func CertificateInformation_STATUSGenerator() gopter.Gen { + if certificateInformation_STATUSGenerator != nil { + return certificateInformation_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForCertificateInformation_STATUS(generators) + certificateInformation_STATUSGenerator = gen.Struct(reflect.TypeOf(CertificateInformation_STATUS{}), generators) + + return certificateInformation_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForCertificateInformation_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForCertificateInformation_STATUS(gens map[string]gopter.Gen) { + gens["Expiry"] = gen.PtrOf(gen.AlphaString()) + gens["Subject"] = gen.PtrOf(gen.AlphaString()) + gens["Thumbprint"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrivateLinkServiceConnectionState_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 PrivateLinkServiceConnectionState_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateLinkServiceConnectionState_STATUS, PrivateLinkServiceConnectionState_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateLinkServiceConnectionState_STATUS runs a test to see if a specific instance of PrivateLinkServiceConnectionState_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateLinkServiceConnectionState_STATUS(subject PrivateLinkServiceConnectionState_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateLinkServiceConnectionState_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 PrivateLinkServiceConnectionState_STATUS instances for property testing - lazily instantiated by +// PrivateLinkServiceConnectionState_STATUSGenerator() +var privateLinkServiceConnectionState_STATUSGenerator gopter.Gen + +// PrivateLinkServiceConnectionState_STATUSGenerator returns a generator of PrivateLinkServiceConnectionState_STATUS instances for property testing. +func PrivateLinkServiceConnectionState_STATUSGenerator() gopter.Gen { + if privateLinkServiceConnectionState_STATUSGenerator != nil { + return privateLinkServiceConnectionState_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateLinkServiceConnectionState_STATUS(generators) + privateLinkServiceConnectionState_STATUSGenerator = gen.Struct(reflect.TypeOf(PrivateLinkServiceConnectionState_STATUS{}), generators) + + return privateLinkServiceConnectionState_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateLinkServiceConnectionState_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateLinkServiceConnectionState_STATUS(gens map[string]gopter.Gen) { + gens["ActionsRequired"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["Status"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_UserAssignedIdentityDetails_WhenSerializedToJson_DeserializesAsEqual(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MinSuccessfulTests = 100 + parameters.MaxSize = 3 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip of UserAssignedIdentityDetails via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserAssignedIdentityDetails, UserAssignedIdentityDetailsGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserAssignedIdentityDetails runs a test to see if a specific instance of UserAssignedIdentityDetails round trips to JSON and back losslessly +func RunJSONSerializationTestForUserAssignedIdentityDetails(subject UserAssignedIdentityDetails) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserAssignedIdentityDetails + 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 UserAssignedIdentityDetails instances for property testing - lazily instantiated by +// UserAssignedIdentityDetailsGenerator() +var userAssignedIdentityDetailsGenerator gopter.Gen + +// UserAssignedIdentityDetailsGenerator returns a generator of UserAssignedIdentityDetails instances for property testing. +func UserAssignedIdentityDetailsGenerator() gopter.Gen { + if userAssignedIdentityDetailsGenerator != nil { + return userAssignedIdentityDetailsGenerator + } + + generators := make(map[string]gopter.Gen) + userAssignedIdentityDetailsGenerator = gen.Struct(reflect.TypeOf(UserAssignedIdentityDetails{}), generators) + + return userAssignedIdentityDetailsGenerator +} + +func Test_UserIdentityProperties_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 UserIdentityProperties_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForUserIdentityProperties_STATUS, UserIdentityProperties_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForUserIdentityProperties_STATUS runs a test to see if a specific instance of UserIdentityProperties_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForUserIdentityProperties_STATUS(subject UserIdentityProperties_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual UserIdentityProperties_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 UserIdentityProperties_STATUS instances for property testing - lazily instantiated by +// UserIdentityProperties_STATUSGenerator() +var userIdentityProperties_STATUSGenerator gopter.Gen + +// UserIdentityProperties_STATUSGenerator returns a generator of UserIdentityProperties_STATUS instances for property testing. +func UserIdentityProperties_STATUSGenerator() gopter.Gen { + if userIdentityProperties_STATUSGenerator != nil { + return userIdentityProperties_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForUserIdentityProperties_STATUS(generators) + userIdentityProperties_STATUSGenerator = gen.Struct(reflect.TypeOf(UserIdentityProperties_STATUS{}), generators) + + return userIdentityProperties_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForUserIdentityProperties_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForUserIdentityProperties_STATUS(gens map[string]gopter.Gen) { + gens["ClientId"] = gen.PtrOf(gen.AlphaString()) + gens["PrincipalId"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/apimanagement/v1api20220801storage/structure.txt b/v2/api/apimanagement/v1api20220801storage/structure.txt new file mode 100644 index 00000000000..2720b8e7627 --- /dev/null +++ b/v2/api/apimanagement/v1api20220801storage/structure.txt @@ -0,0 +1,216 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +github.com/Azure/azure-service-operator/v2/api/apimanagement/v1api20220801storage +├── APIVersion: Enum (1 value) +│ └── "2022-08-01" +└── Service: Resource + ├── Owner: github.com/Azure/azure-service-operator/v2/api/resources/v1apiv20191001.ResourceGroup + ├── Spec: Object (25 properties) + │ ├── AdditionalLocations: Object (8 properties)[] + │ │ ├── DisableGateway: *bool + │ │ ├── Location: *string + │ │ ├── NatGatewayState: *string + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ ├── PublicIpAddressReference: *genruntime.ResourceReference + │ │ ├── Sku: *Object (3 properties) + │ │ │ ├── Capacity: *int + │ │ │ ├── Name: *string + │ │ │ └── PropertyBag: genruntime.PropertyBag + │ │ ├── VirtualNetworkConfiguration: *Object (2 properties) + │ │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ │ └── SubnetResourceReference: *genruntime.ResourceReference + │ │ └── Zones: string[] + │ ├── ApiVersionConstraint: *Object (2 properties) + │ │ ├── MinApiVersion: *string + │ │ └── PropertyBag: genruntime.PropertyBag + │ ├── AzureName: Validated (3 rules) + │ │ ├── Rule 0: MaxLength: 50 + │ │ ├── Rule 1: MinLength: 1 + │ │ └── Rule 2: Pattern: "^[a-zA-Z](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$" + │ ├── Certificates: Object (5 properties)[] + │ │ ├── Certificate: *Object (7 properties) + │ │ │ ├── Expiry: *string + │ │ │ ├── ExpiryFromConfig: *genruntime.ConfigMapReference + │ │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ │ ├── Subject: *string + │ │ │ ├── SubjectFromConfig: *genruntime.ConfigMapReference + │ │ │ ├── Thumbprint: *string + │ │ │ └── ThumbprintFromConfig: *genruntime.ConfigMapReference + │ │ ├── CertificatePassword: *genruntime.SecretReference + │ │ ├── EncodedCertificate: *string + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ └── StoreName: *string + │ ├── CustomProperties: map[string]string + │ ├── DisableGateway: *bool + │ ├── EnableClientCertificate: *bool + │ ├── HostnameConfigurations: Object (13 properties)[] + │ │ ├── Certificate: *Object (7 properties) + │ │ │ ├── Expiry: *string + │ │ │ ├── ExpiryFromConfig: *genruntime.ConfigMapReference + │ │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ │ ├── Subject: *string + │ │ │ ├── SubjectFromConfig: *genruntime.ConfigMapReference + │ │ │ ├── Thumbprint: *string + │ │ │ └── ThumbprintFromConfig: *genruntime.ConfigMapReference + │ │ ├── CertificatePassword: *genruntime.SecretReference + │ │ ├── CertificateSource: *string + │ │ ├── CertificateStatus: *string + │ │ ├── DefaultSslBinding: *bool + │ │ ├── EncodedCertificate: *string + │ │ ├── HostName: *string + │ │ ├── IdentityClientId: *string + │ │ ├── IdentityClientIdFromConfig: *genruntime.ConfigMapReference + │ │ ├── KeyVaultId: *string + │ │ ├── NegotiateClientCertificate: *bool + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ └── Type: *string + │ ├── Identity: *Object (3 properties) + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ ├── Type: *string + │ │ └── UserAssignedIdentities: Object (2 properties)[] + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ └── Reference: genruntime.ResourceReference + │ ├── Location: *string + │ ├── NatGatewayState: *string + │ ├── NotificationSenderEmail: *string + │ ├── OriginalVersion: string + │ ├── Owner: *genruntime.KnownResourceReference + │ ├── PropertyBag: genruntime.PropertyBag + │ ├── PublicIpAddressReference: *genruntime.ResourceReference + │ ├── PublicNetworkAccess: *string + │ ├── PublisherEmail: *string + │ ├── PublisherName: *string + │ ├── Restore: *bool + │ ├── Sku: *Object (3 properties) + │ │ ├── Capacity: *int + │ │ ├── Name: *string + │ │ └── PropertyBag: genruntime.PropertyBag + │ ├── Tags: map[string]string + │ ├── VirtualNetworkConfiguration: *Object (2 properties) + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ └── SubnetResourceReference: *genruntime.ResourceReference + │ ├── VirtualNetworkType: *string + │ └── Zones: string[] + └── Status: Object (42 properties) + ├── AdditionalLocations: Object (13 properties)[] + │ ├── DisableGateway: *bool + │ ├── GatewayRegionalUrl: *string + │ ├── Location: *string + │ ├── NatGatewayState: *string + │ ├── OutboundPublicIPAddresses: string[] + │ ├── PlatformVersion: *string + │ ├── PrivateIPAddresses: string[] + │ ├── PropertyBag: genruntime.PropertyBag + │ ├── PublicIPAddresses: string[] + │ ├── PublicIpAddressId: *string + │ ├── Sku: *Object (3 properties) + │ │ ├── Capacity: *int + │ │ ├── Name: *string + │ │ └── PropertyBag: genruntime.PropertyBag + │ ├── VirtualNetworkConfiguration: *Object (4 properties) + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ ├── SubnetResourceId: *string + │ │ ├── Subnetname: *string + │ │ └── Vnetid: *string + │ └── Zones: string[] + ├── ApiVersionConstraint: *Object (2 properties) + │ ├── MinApiVersion: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── Certificates: Object (4 properties)[] + │ ├── Certificate: *Object (4 properties) + │ │ ├── Expiry: *string + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ ├── Subject: *string + │ │ └── Thumbprint: *string + │ ├── EncodedCertificate: *string + │ ├── PropertyBag: genruntime.PropertyBag + │ └── StoreName: *string + ├── Conditions: conditions.Condition[] + ├── CreatedAtUtc: *string + ├── CustomProperties: map[string]string + ├── DeveloperPortalUrl: *string + ├── DisableGateway: *bool + ├── EnableClientCertificate: *bool + ├── Etag: *string + ├── GatewayRegionalUrl: *string + ├── GatewayUrl: *string + ├── HostnameConfigurations: Object (11 properties)[] + │ ├── Certificate: *Object (4 properties) + │ │ ├── Expiry: *string + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ ├── Subject: *string + │ │ └── Thumbprint: *string + │ ├── CertificateSource: *string + │ ├── CertificateStatus: *string + │ ├── DefaultSslBinding: *bool + │ ├── EncodedCertificate: *string + │ ├── HostName: *string + │ ├── IdentityClientId: *string + │ ├── KeyVaultId: *string + │ ├── NegotiateClientCertificate: *bool + │ ├── PropertyBag: genruntime.PropertyBag + │ └── Type: *string + ├── Id: *string + ├── Identity: *Object (5 properties) + │ ├── PrincipalId: *string + │ ├── PropertyBag: genruntime.PropertyBag + │ ├── TenantId: *string + │ ├── Type: *string + │ └── UserAssignedIdentities: map[string]Object (3 properties) + │ ├── ClientId: *string + │ ├── PrincipalId: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── Location: *string + ├── ManagementApiUrl: *string + ├── Name: *string + ├── NatGatewayState: *string + ├── NotificationSenderEmail: *string + ├── OutboundPublicIPAddresses: string[] + ├── PlatformVersion: *string + ├── PortalUrl: *string + ├── PrivateEndpointConnections: Object (8 properties)[] + │ ├── GroupIds: string[] + │ ├── Id: *string + │ ├── Name: *string + │ ├── PrivateEndpoint: *Object (2 properties) + │ │ ├── Id: *string + │ │ └── PropertyBag: genruntime.PropertyBag + │ ├── PrivateLinkServiceConnectionState: *Object (4 properties) + │ │ ├── ActionsRequired: *string + │ │ ├── Description: *string + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ └── Status: *string + │ ├── PropertyBag: genruntime.PropertyBag + │ ├── ProvisioningState: *string + │ └── Type: *string + ├── PrivateIPAddresses: string[] + ├── PropertyBag: genruntime.PropertyBag + ├── ProvisioningState: *string + ├── PublicIPAddresses: string[] + ├── PublicIpAddressId: *string + ├── PublicNetworkAccess: *string + ├── PublisherEmail: *string + ├── PublisherName: *string + ├── Restore: *bool + ├── ScmUrl: *string + ├── Sku: *Object (3 properties) + │ ├── Capacity: *int + │ ├── Name: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── SystemData: *Object (7 properties) + │ ├── CreatedAt: *string + │ ├── CreatedBy: *string + │ ├── CreatedByType: *string + │ ├── LastModifiedAt: *string + │ ├── LastModifiedBy: *string + │ ├── LastModifiedByType: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── Tags: map[string]string + ├── TargetProvisioningState: *string + ├── Type: *string + ├── VirtualNetworkConfiguration: *Object (4 properties) + │ ├── PropertyBag: genruntime.PropertyBag + │ ├── SubnetResourceId: *string + │ ├── Subnetname: *string + │ └── Vnetid: *string + ├── VirtualNetworkType: *string + └── Zones: string[] diff --git a/v2/api/apimanagement/v1api20220801storage/zz_generated.deepcopy.go b/v2/api/apimanagement/v1api20220801storage/zz_generated.deepcopy.go new file mode 100644 index 00000000000..0494f86cd2c --- /dev/null +++ b/v2/api/apimanagement/v1api20220801storage/zz_generated.deepcopy.go @@ -0,0 +1,1407 @@ +//go:build !ignore_autogenerated + +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1api20220801storage + +import ( + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AdditionalLocation) DeepCopyInto(out *AdditionalLocation) { + *out = *in + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *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.PublicIpAddressReference != nil { + in, out := &in.PublicIpAddressReference, &out.PublicIpAddressReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration) + (*in).DeepCopyInto(*out) + } + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalLocation. +func (in *AdditionalLocation) DeepCopy() *AdditionalLocation { + if in == nil { + return nil + } + out := new(AdditionalLocation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AdditionalLocation_STATUS) DeepCopyInto(out *AdditionalLocation_STATUS) { + *out = *in + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.GatewayRegionalUrl != nil { + in, out := &in.GatewayRegionalUrl, &out.GatewayRegionalUrl + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *out = new(string) + **out = **in + } + if in.OutboundPublicIPAddresses != nil { + in, out := &in.OutboundPublicIPAddresses, &out.OutboundPublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PlatformVersion != nil { + in, out := &in.PlatformVersion, &out.PlatformVersion + *out = new(string) + **out = **in + } + if in.PrivateIPAddresses != nil { + in, out := &in.PrivateIPAddresses, &out.PrivateIPAddresses + *out = make([]string, len(*in)) + copy(*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.PublicIPAddresses != nil { + in, out := &in.PublicIPAddresses, &out.PublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PublicIpAddressId != nil { + in, out := &in.PublicIpAddressId, &out.PublicIpAddressId + *out = new(string) + **out = **in + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties_STATUS) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdditionalLocation_STATUS. +func (in *AdditionalLocation_STATUS) DeepCopy() *AdditionalLocation_STATUS { + if in == nil { + return nil + } + out := new(AdditionalLocation_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 *ApiManagementServiceIdentity) DeepCopyInto(out *ApiManagementServiceIdentity) { + *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.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make([]UserAssignedIdentityDetails, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceIdentity. +func (in *ApiManagementServiceIdentity) DeepCopy() *ApiManagementServiceIdentity { + if in == nil { + return nil + } + out := new(ApiManagementServiceIdentity) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApiManagementServiceIdentity_STATUS) DeepCopyInto(out *ApiManagementServiceIdentity_STATUS) { + *out = *in + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *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.TenantId != nil { + in, out := &in.TenantId, &out.TenantId + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UserAssignedIdentities != nil { + in, out := &in.UserAssignedIdentities, &out.UserAssignedIdentities + *out = make(map[string]UserIdentityProperties_STATUS, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceIdentity_STATUS. +func (in *ApiManagementServiceIdentity_STATUS) DeepCopy() *ApiManagementServiceIdentity_STATUS { + if in == nil { + return nil + } + out := new(ApiManagementServiceIdentity_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 *ApiManagementServiceSkuProperties) DeepCopyInto(out *ApiManagementServiceSkuProperties) { + *out = *in + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(int) + **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 + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceSkuProperties. +func (in *ApiManagementServiceSkuProperties) DeepCopy() *ApiManagementServiceSkuProperties { + if in == nil { + return nil + } + out := new(ApiManagementServiceSkuProperties) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApiManagementServiceSkuProperties_STATUS) DeepCopyInto(out *ApiManagementServiceSkuProperties_STATUS) { + *out = *in + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(int) + **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 + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiManagementServiceSkuProperties_STATUS. +func (in *ApiManagementServiceSkuProperties_STATUS) DeepCopy() *ApiManagementServiceSkuProperties_STATUS { + if in == nil { + return nil + } + out := new(ApiManagementServiceSkuProperties_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 *ApiVersionConstraint) DeepCopyInto(out *ApiVersionConstraint) { + *out = *in + if in.MinApiVersion != nil { + in, out := &in.MinApiVersion, &out.MinApiVersion + *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 + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiVersionConstraint. +func (in *ApiVersionConstraint) DeepCopy() *ApiVersionConstraint { + if in == nil { + return nil + } + out := new(ApiVersionConstraint) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ApiVersionConstraint_STATUS) DeepCopyInto(out *ApiVersionConstraint_STATUS) { + *out = *in + if in.MinApiVersion != nil { + in, out := &in.MinApiVersion, &out.MinApiVersion + *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 + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiVersionConstraint_STATUS. +func (in *ApiVersionConstraint_STATUS) DeepCopy() *ApiVersionConstraint_STATUS { + if in == nil { + return nil + } + out := new(ApiVersionConstraint_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 *ArmIdWrapper_STATUS) DeepCopyInto(out *ArmIdWrapper_STATUS) { + *out = *in + if in.Id != nil { + in, out := &in.Id, &out.Id + *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 + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArmIdWrapper_STATUS. +func (in *ArmIdWrapper_STATUS) DeepCopy() *ArmIdWrapper_STATUS { + if in == nil { + return nil + } + out := new(ArmIdWrapper_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 *CertificateConfiguration) DeepCopyInto(out *CertificateConfiguration) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation) + (*in).DeepCopyInto(*out) + } + if in.CertificatePassword != nil { + in, out := &in.CertificatePassword, &out.CertificatePassword + *out = new(genruntime.SecretReference) + **out = **in + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *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.StoreName != nil { + in, out := &in.StoreName, &out.StoreName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateConfiguration. +func (in *CertificateConfiguration) DeepCopy() *CertificateConfiguration { + if in == nil { + return nil + } + out := new(CertificateConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateConfiguration_STATUS) DeepCopyInto(out *CertificateConfiguration_STATUS) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation_STATUS) + (*in).DeepCopyInto(*out) + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *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.StoreName != nil { + in, out := &in.StoreName, &out.StoreName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateConfiguration_STATUS. +func (in *CertificateConfiguration_STATUS) DeepCopy() *CertificateConfiguration_STATUS { + if in == nil { + return nil + } + out := new(CertificateConfiguration_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 *CertificateInformation) DeepCopyInto(out *CertificateInformation) { + *out = *in + if in.Expiry != nil { + in, out := &in.Expiry, &out.Expiry + *out = new(string) + **out = **in + } + if in.ExpiryFromConfig != nil { + in, out := &in.ExpiryFromConfig, &out.ExpiryFromConfig + *out = new(genruntime.ConfigMapReference) + **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.Subject != nil { + in, out := &in.Subject, &out.Subject + *out = new(string) + **out = **in + } + if in.SubjectFromConfig != nil { + in, out := &in.SubjectFromConfig, &out.SubjectFromConfig + *out = new(genruntime.ConfigMapReference) + **out = **in + } + if in.Thumbprint != nil { + in, out := &in.Thumbprint, &out.Thumbprint + *out = new(string) + **out = **in + } + if in.ThumbprintFromConfig != nil { + in, out := &in.ThumbprintFromConfig, &out.ThumbprintFromConfig + *out = new(genruntime.ConfigMapReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateInformation. +func (in *CertificateInformation) DeepCopy() *CertificateInformation { + if in == nil { + return nil + } + out := new(CertificateInformation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateInformation_STATUS) DeepCopyInto(out *CertificateInformation_STATUS) { + *out = *in + if in.Expiry != nil { + in, out := &in.Expiry, &out.Expiry + *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.Subject != nil { + in, out := &in.Subject, &out.Subject + *out = new(string) + **out = **in + } + if in.Thumbprint != nil { + in, out := &in.Thumbprint, &out.Thumbprint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateInformation_STATUS. +func (in *CertificateInformation_STATUS) DeepCopy() *CertificateInformation_STATUS { + if in == nil { + return nil + } + out := new(CertificateInformation_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 *HostnameConfiguration) DeepCopyInto(out *HostnameConfiguration) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation) + (*in).DeepCopyInto(*out) + } + if in.CertificatePassword != nil { + in, out := &in.CertificatePassword, &out.CertificatePassword + *out = new(genruntime.SecretReference) + **out = **in + } + if in.CertificateSource != nil { + in, out := &in.CertificateSource, &out.CertificateSource + *out = new(string) + **out = **in + } + if in.CertificateStatus != nil { + in, out := &in.CertificateStatus, &out.CertificateStatus + *out = new(string) + **out = **in + } + if in.DefaultSslBinding != nil { + in, out := &in.DefaultSslBinding, &out.DefaultSslBinding + *out = new(bool) + **out = **in + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *out = new(string) + **out = **in + } + if in.HostName != nil { + in, out := &in.HostName, &out.HostName + *out = new(string) + **out = **in + } + if in.IdentityClientId != nil { + in, out := &in.IdentityClientId, &out.IdentityClientId + *out = new(string) + **out = **in + } + if in.IdentityClientIdFromConfig != nil { + in, out := &in.IdentityClientIdFromConfig, &out.IdentityClientIdFromConfig + *out = new(genruntime.ConfigMapReference) + **out = **in + } + if in.KeyVaultId != nil { + in, out := &in.KeyVaultId, &out.KeyVaultId + *out = new(string) + **out = **in + } + if in.NegotiateClientCertificate != nil { + in, out := &in.NegotiateClientCertificate, &out.NegotiateClientCertificate + *out = new(bool) + **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.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 HostnameConfiguration. +func (in *HostnameConfiguration) DeepCopy() *HostnameConfiguration { + if in == nil { + return nil + } + out := new(HostnameConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostnameConfiguration_STATUS) DeepCopyInto(out *HostnameConfiguration_STATUS) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(CertificateInformation_STATUS) + (*in).DeepCopyInto(*out) + } + if in.CertificateSource != nil { + in, out := &in.CertificateSource, &out.CertificateSource + *out = new(string) + **out = **in + } + if in.CertificateStatus != nil { + in, out := &in.CertificateStatus, &out.CertificateStatus + *out = new(string) + **out = **in + } + if in.DefaultSslBinding != nil { + in, out := &in.DefaultSslBinding, &out.DefaultSslBinding + *out = new(bool) + **out = **in + } + if in.EncodedCertificate != nil { + in, out := &in.EncodedCertificate, &out.EncodedCertificate + *out = new(string) + **out = **in + } + if in.HostName != nil { + in, out := &in.HostName, &out.HostName + *out = new(string) + **out = **in + } + if in.IdentityClientId != nil { + in, out := &in.IdentityClientId, &out.IdentityClientId + *out = new(string) + **out = **in + } + if in.KeyVaultId != nil { + in, out := &in.KeyVaultId, &out.KeyVaultId + *out = new(string) + **out = **in + } + if in.NegotiateClientCertificate != nil { + in, out := &in.NegotiateClientCertificate, &out.NegotiateClientCertificate + *out = new(bool) + **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.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 HostnameConfiguration_STATUS. +func (in *HostnameConfiguration_STATUS) DeepCopy() *HostnameConfiguration_STATUS { + if in == nil { + return nil + } + out := new(HostnameConfiguration_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 *PrivateLinkServiceConnectionState_STATUS) DeepCopyInto(out *PrivateLinkServiceConnectionState_STATUS) { + *out = *in + if in.ActionsRequired != nil { + in, out := &in.ActionsRequired, &out.ActionsRequired + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *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.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrivateLinkServiceConnectionState_STATUS. +func (in *PrivateLinkServiceConnectionState_STATUS) DeepCopy() *PrivateLinkServiceConnectionState_STATUS { + if in == nil { + return nil + } + out := new(PrivateLinkServiceConnectionState_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 *RemotePrivateEndpointConnectionWrapper_STATUS) DeepCopyInto(out *RemotePrivateEndpointConnectionWrapper_STATUS) { + *out = *in + if in.GroupIds != nil { + in, out := &in.GroupIds, &out.GroupIds + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PrivateEndpoint != nil { + in, out := &in.PrivateEndpoint, &out.PrivateEndpoint + *out = new(ArmIdWrapper_STATUS) + (*in).DeepCopyInto(*out) + } + if in.PrivateLinkServiceConnectionState != nil { + in, out := &in.PrivateLinkServiceConnectionState, &out.PrivateLinkServiceConnectionState + *out = new(PrivateLinkServiceConnectionState_STATUS) + (*in).DeepCopyInto(*out) + } + 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.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 RemotePrivateEndpointConnectionWrapper_STATUS. +func (in *RemotePrivateEndpointConnectionWrapper_STATUS) DeepCopy() *RemotePrivateEndpointConnectionWrapper_STATUS { + if in == nil { + return nil + } + out := new(RemotePrivateEndpointConnectionWrapper_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 *Service) DeepCopyInto(out *Service) { + *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 Service. +func (in *Service) DeepCopy() *Service { + if in == nil { + return nil + } + out := new(Service) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Service) 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 *ServiceList) DeepCopyInto(out *ServiceList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Service, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceList. +func (in *ServiceList) DeepCopy() *ServiceList { + if in == nil { + return nil + } + out := new(ServiceList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServiceList) 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 *Service_STATUS) DeepCopyInto(out *Service_STATUS) { + *out = *in + if in.AdditionalLocations != nil { + in, out := &in.AdditionalLocations, &out.AdditionalLocations + *out = make([]AdditionalLocation_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiVersionConstraint != nil { + in, out := &in.ApiVersionConstraint, &out.ApiVersionConstraint + *out = new(ApiVersionConstraint_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Certificates != nil { + in, out := &in.Certificates, &out.Certificates + *out = make([]CertificateConfiguration_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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.CreatedAtUtc != nil { + in, out := &in.CreatedAtUtc, &out.CreatedAtUtc + *out = new(string) + **out = **in + } + if in.CustomProperties != nil { + in, out := &in.CustomProperties, &out.CustomProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.DeveloperPortalUrl != nil { + in, out := &in.DeveloperPortalUrl, &out.DeveloperPortalUrl + *out = new(string) + **out = **in + } + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.EnableClientCertificate != nil { + in, out := &in.EnableClientCertificate, &out.EnableClientCertificate + *out = new(bool) + **out = **in + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.GatewayRegionalUrl != nil { + in, out := &in.GatewayRegionalUrl, &out.GatewayRegionalUrl + *out = new(string) + **out = **in + } + if in.GatewayUrl != nil { + in, out := &in.GatewayUrl, &out.GatewayUrl + *out = new(string) + **out = **in + } + if in.HostnameConfigurations != nil { + in, out := &in.HostnameConfigurations, &out.HostnameConfigurations + *out = make([]HostnameConfiguration_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ApiManagementServiceIdentity_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.ManagementApiUrl != nil { + in, out := &in.ManagementApiUrl, &out.ManagementApiUrl + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *out = new(string) + **out = **in + } + if in.NotificationSenderEmail != nil { + in, out := &in.NotificationSenderEmail, &out.NotificationSenderEmail + *out = new(string) + **out = **in + } + if in.OutboundPublicIPAddresses != nil { + in, out := &in.OutboundPublicIPAddresses, &out.OutboundPublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PlatformVersion != nil { + in, out := &in.PlatformVersion, &out.PlatformVersion + *out = new(string) + **out = **in + } + if in.PortalUrl != nil { + in, out := &in.PortalUrl, &out.PortalUrl + *out = new(string) + **out = **in + } + if in.PrivateEndpointConnections != nil { + in, out := &in.PrivateEndpointConnections, &out.PrivateEndpointConnections + *out = make([]RemotePrivateEndpointConnectionWrapper_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PrivateIPAddresses != nil { + in, out := &in.PrivateIPAddresses, &out.PrivateIPAddresses + *out = make([]string, len(*in)) + copy(*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.PublicIPAddresses != nil { + in, out := &in.PublicIPAddresses, &out.PublicIPAddresses + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.PublicIpAddressId != nil { + in, out := &in.PublicIpAddressId, &out.PublicIpAddressId + *out = new(string) + **out = **in + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(string) + **out = **in + } + if in.PublisherEmail != nil { + in, out := &in.PublisherEmail, &out.PublisherEmail + *out = new(string) + **out = **in + } + if in.PublisherName != nil { + in, out := &in.PublisherName, &out.PublisherName + *out = new(string) + **out = **in + } + if in.Restore != nil { + in, out := &in.Restore, &out.Restore + *out = new(bool) + **out = **in + } + if in.ScmUrl != nil { + in, out := &in.ScmUrl, &out.ScmUrl + *out = new(string) + **out = **in + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties_STATUS) + (*in).DeepCopyInto(*out) + } + if in.SystemData != nil { + in, out := &in.SystemData, &out.SystemData + *out = new(SystemData_STATUS) + (*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.TargetProvisioningState != nil { + in, out := &in.TargetProvisioningState, &out.TargetProvisioningState + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration_STATUS) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkType != nil { + in, out := &in.VirtualNetworkType, &out.VirtualNetworkType + *out = new(string) + **out = **in + } + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service_STATUS. +func (in *Service_STATUS) DeepCopy() *Service_STATUS { + if in == nil { + return nil + } + out := new(Service_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 *Service_Spec) DeepCopyInto(out *Service_Spec) { + *out = *in + if in.AdditionalLocations != nil { + in, out := &in.AdditionalLocations, &out.AdditionalLocations + *out = make([]AdditionalLocation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ApiVersionConstraint != nil { + in, out := &in.ApiVersionConstraint, &out.ApiVersionConstraint + *out = new(ApiVersionConstraint) + (*in).DeepCopyInto(*out) + } + if in.Certificates != nil { + in, out := &in.Certificates, &out.Certificates + *out = make([]CertificateConfiguration, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CustomProperties != nil { + in, out := &in.CustomProperties, &out.CustomProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.DisableGateway != nil { + in, out := &in.DisableGateway, &out.DisableGateway + *out = new(bool) + **out = **in + } + if in.EnableClientCertificate != nil { + in, out := &in.EnableClientCertificate, &out.EnableClientCertificate + *out = new(bool) + **out = **in + } + if in.HostnameConfigurations != nil { + in, out := &in.HostnameConfigurations, &out.HostnameConfigurations + *out = make([]HostnameConfiguration, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Identity != nil { + in, out := &in.Identity, &out.Identity + *out = new(ApiManagementServiceIdentity) + (*in).DeepCopyInto(*out) + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.NatGatewayState != nil { + in, out := &in.NatGatewayState, &out.NatGatewayState + *out = new(string) + **out = **in + } + if in.NotificationSenderEmail != nil { + in, out := &in.NotificationSenderEmail, &out.NotificationSenderEmail + *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.PublicIpAddressReference != nil { + in, out := &in.PublicIpAddressReference, &out.PublicIpAddressReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(string) + **out = **in + } + if in.PublisherEmail != nil { + in, out := &in.PublisherEmail, &out.PublisherEmail + *out = new(string) + **out = **in + } + if in.PublisherName != nil { + in, out := &in.PublisherName, &out.PublisherName + *out = new(string) + **out = **in + } + if in.Restore != nil { + in, out := &in.Restore, &out.Restore + *out = new(bool) + **out = **in + } + if in.Sku != nil { + in, out := &in.Sku, &out.Sku + *out = new(ApiManagementServiceSkuProperties) + (*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.VirtualNetworkConfiguration != nil { + in, out := &in.VirtualNetworkConfiguration, &out.VirtualNetworkConfiguration + *out = new(VirtualNetworkConfiguration) + (*in).DeepCopyInto(*out) + } + if in.VirtualNetworkType != nil { + in, out := &in.VirtualNetworkType, &out.VirtualNetworkType + *out = new(string) + **out = **in + } + if in.Zones != nil { + in, out := &in.Zones, &out.Zones + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Service_Spec. +func (in *Service_Spec) DeepCopy() *Service_Spec { + if in == nil { + return nil + } + out := new(Service_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 *SystemData_STATUS) DeepCopyInto(out *SystemData_STATUS) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.CreatedBy != nil { + in, out := &in.CreatedBy, &out.CreatedBy + *out = new(string) + **out = **in + } + if in.CreatedByType != nil { + in, out := &in.CreatedByType, &out.CreatedByType + *out = new(string) + **out = **in + } + if in.LastModifiedAt != nil { + in, out := &in.LastModifiedAt, &out.LastModifiedAt + *out = new(string) + **out = **in + } + if in.LastModifiedBy != nil { + in, out := &in.LastModifiedBy, &out.LastModifiedBy + *out = new(string) + **out = **in + } + if in.LastModifiedByType != nil { + in, out := &in.LastModifiedByType, &out.LastModifiedByType + *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 + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SystemData_STATUS. +func (in *SystemData_STATUS) DeepCopy() *SystemData_STATUS { + if in == nil { + return nil + } + out := new(SystemData_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 *UserAssignedIdentityDetails) DeepCopyInto(out *UserAssignedIdentityDetails) { + *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 + } + } + out.Reference = in.Reference +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserAssignedIdentityDetails. +func (in *UserAssignedIdentityDetails) DeepCopy() *UserAssignedIdentityDetails { + if in == nil { + return nil + } + out := new(UserAssignedIdentityDetails) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserIdentityProperties_STATUS) DeepCopyInto(out *UserIdentityProperties_STATUS) { + *out = *in + if in.ClientId != nil { + in, out := &in.ClientId, &out.ClientId + *out = new(string) + **out = **in + } + if in.PrincipalId != nil { + in, out := &in.PrincipalId, &out.PrincipalId + *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 + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserIdentityProperties_STATUS. +func (in *UserIdentityProperties_STATUS) DeepCopy() *UserIdentityProperties_STATUS { + if in == nil { + return nil + } + out := new(UserIdentityProperties_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 *VirtualNetworkConfiguration) DeepCopyInto(out *VirtualNetworkConfiguration) { + *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.SubnetResourceReference != nil { + in, out := &in.SubnetResourceReference, &out.SubnetResourceReference + *out = new(genruntime.ResourceReference) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNetworkConfiguration. +func (in *VirtualNetworkConfiguration) DeepCopy() *VirtualNetworkConfiguration { + if in == nil { + return nil + } + out := new(VirtualNetworkConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VirtualNetworkConfiguration_STATUS) DeepCopyInto(out *VirtualNetworkConfiguration_STATUS) { + *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.SubnetResourceId != nil { + in, out := &in.SubnetResourceId, &out.SubnetResourceId + *out = new(string) + **out = **in + } + if in.Subnetname != nil { + in, out := &in.Subnetname, &out.Subnetname + *out = new(string) + **out = **in + } + if in.Vnetid != nil { + in, out := &in.Vnetid, &out.Vnetid + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VirtualNetworkConfiguration_STATUS. +func (in *VirtualNetworkConfiguration_STATUS) DeepCopy() *VirtualNetworkConfiguration_STATUS { + if in == nil { + return nil + } + out := new(VirtualNetworkConfiguration_STATUS) + in.DeepCopyInto(out) + return out +} diff --git a/v2/api/apimanagement/versions_matrix.md b/v2/api/apimanagement/versions_matrix.md new file mode 100644 index 00000000000..de37307fd41 --- /dev/null +++ b/v2/api/apimanagement/versions_matrix.md @@ -0,0 +1,56 @@ +| Type Definitions in package "apimanagement" | v1api20220801 | +|-----------------------------------------------------------|---------------| +| APIVersion | v1api20220801 | +| AdditionalLocation | v1api20220801 | +| AdditionalLocation_NatGatewayState | v1api20220801 | +| AdditionalLocation_NatGatewayState_STATUS | v1api20220801 | +| AdditionalLocation_PlatformVersion_STATUS | v1api20220801 | +| AdditionalLocation_STATUS | v1api20220801 | +| ApiManagementServiceIdentity | v1api20220801 | +| ApiManagementServiceIdentity_STATUS | v1api20220801 | +| ApiManagementServiceIdentity_Type | v1api20220801 | +| ApiManagementServiceIdentity_Type_STATUS | v1api20220801 | +| ApiManagementServiceProperties | v1api20220801 | +| ApiManagementServiceProperties_NatGatewayState | v1api20220801 | +| ApiManagementServiceProperties_NatGatewayState_STATUS | v1api20220801 | +| ApiManagementServiceProperties_PlatformVersion_STATUS | v1api20220801 | +| ApiManagementServiceProperties_PublicNetworkAccess | v1api20220801 | +| ApiManagementServiceProperties_PublicNetworkAccess_STATUS | v1api20220801 | +| ApiManagementServiceProperties_STATUS | v1api20220801 | +| ApiManagementServiceProperties_VirtualNetworkType | v1api20220801 | +| ApiManagementServiceProperties_VirtualNetworkType_STATUS | v1api20220801 | +| ApiManagementServiceSkuProperties | v1api20220801 | +| ApiManagementServiceSkuProperties_Name | v1api20220801 | +| ApiManagementServiceSkuProperties_Name_STATUS | v1api20220801 | +| ApiManagementServiceSkuProperties_STATUS | v1api20220801 | +| ApiVersionConstraint | v1api20220801 | +| ApiVersionConstraint_STATUS | v1api20220801 | +| ArmIdWrapper_STATUS | v1api20220801 | +| CertificateConfiguration | v1api20220801 | +| CertificateConfiguration_STATUS | v1api20220801 | +| CertificateConfiguration_StoreName | v1api20220801 | +| CertificateConfiguration_StoreName_STATUS | v1api20220801 | +| CertificateInformation | v1api20220801 | +| CertificateInformation_STATUS | v1api20220801 | +| HostnameConfiguration | v1api20220801 | +| HostnameConfiguration_CertificateSource | v1api20220801 | +| HostnameConfiguration_CertificateSource_STATUS | v1api20220801 | +| HostnameConfiguration_CertificateStatus | v1api20220801 | +| HostnameConfiguration_CertificateStatus_STATUS | v1api20220801 | +| HostnameConfiguration_STATUS | v1api20220801 | +| HostnameConfiguration_Type | v1api20220801 | +| HostnameConfiguration_Type_STATUS | v1api20220801 | +| PrivateEndpointConnectionWrapperProperties_STATUS | v1api20220801 | +| PrivateEndpointServiceConnectionStatus_STATUS | v1api20220801 | +| PrivateLinkServiceConnectionState_STATUS | v1api20220801 | +| RemotePrivateEndpointConnectionWrapper_STATUS | v1api20220801 | +| Service | v1api20220801 | +| Service_STATUS | v1api20220801 | +| Service_Spec | v1api20220801 | +| SystemData_CreatedByType_STATUS | v1api20220801 | +| SystemData_LastModifiedByType_STATUS | v1api20220801 | +| SystemData_STATUS | v1api20220801 | +| UserAssignedIdentityDetails | v1api20220801 | +| UserIdentityProperties_STATUS | v1api20220801 | +| VirtualNetworkConfiguration | v1api20220801 | +| VirtualNetworkConfiguration_STATUS | v1api20220801 | diff --git a/v2/azure-arm.yaml b/v2/azure-arm.yaml index 4abd70d5686..b4cf01635b2 100644 --- a/v2/azure-arm.yaml +++ b/v2/azure-arm.yaml @@ -154,6 +154,11 @@ typeTransformers: because: AccessKeys is only set on response to PUT/CREATE, but we fill out Status via GET so this field is always empty. It also contains secrets we wouldn't want to expose in status anyway. # Properties that should have been marked as ReadOnly in the Swagger + - name: ApiManagementServiceProperties + group: apimanagement + property: PrivateEndpointConnections + remove: true + because: This property should be marked readonly - name: BackupVault_Spec group: dataprotection property: SystemData @@ -683,6 +688,35 @@ status: # sub-resource. # objectModelConfiguration: + apimanagement: + 2022-08-01: + AdditionalLocation: + PublicIpAddressId: + $armReference: true + Service: + $export: true + $supportedFrom: v2.4.0 + ApiManagementServiceProperties: + PublicIpAddressId: + $armReference: true + CertificateInformation: + Expiry: + $importConfigMapMode: optional + Subject: + $importConfigMapMode: optional + Thumbprint: + $importConfigMapMode: optional + CertificateConfiguration: + CertificatePassword: + $isSecret: true + HostnameConfiguration: + CertificatePassword: + $isSecret: true + IdentityClientId: + $importConfigMapMode: optional + VirtualNetworkConfiguration: + SubnetResourceId: + $armReference: true appconfiguration: 2022-05-01: ConfigurationStore: diff --git a/v2/internal/controllers/controller_resources_gen.go b/v2/internal/controllers/controller_resources_gen.go index f57b2754e1b..5e5db80f6a5 100644 --- a/v2/internal/controllers/controller_resources_gen.go +++ b/v2/internal/controllers/controller_resources_gen.go @@ -4,6 +4,9 @@ package controllers import ( + apimanagement_customizations "github.com/Azure/azure-service-operator/v2/api/apimanagement/customizations" + apimanagement_v20220801 "github.com/Azure/azure-service-operator/v2/api/apimanagement/v1api20220801" + apimanagement_v20220801s "github.com/Azure/azure-service-operator/v2/api/apimanagement/v1api20220801storage" appconfiguration_customizations "github.com/Azure/azure-service-operator/v2/api/appconfiguration/customizations" appconfiguration_v20220501 "github.com/Azure/azure-service-operator/v2/api/appconfiguration/v1api20220501" appconfiguration_v20220501s "github.com/Azure/azure-service-operator/v2/api/appconfiguration/v1api20220501storage" @@ -228,6 +231,57 @@ import ( // getKnownStorageTypes returns the list of storage types which can be reconciled. func getKnownStorageTypes() []*registration.StorageType { var result []*registration.StorageType + result = append(result, ®istration.StorageType{ + Obj: new(apimanagement_v20220801s.Service), + Indexes: []registration.Index{ + { + Key: ".spec.certificates.certificatePassword", + Func: indexApimanagementServiceCertificatesCertificatePassword, + }, + { + Key: ".spec.certificates.certificate.expiryFromConfig", + Func: indexApimanagementServiceCertificatesExpiryFromConfig, + }, + { + Key: ".spec.certificates.certificate.subjectFromConfig", + Func: indexApimanagementServiceCertificatesSubjectFromConfig, + }, + { + Key: ".spec.certificates.certificate.thumbprintFromConfig", + Func: indexApimanagementServiceCertificatesThumbprintFromConfig, + }, + { + Key: ".spec.hostnameConfigurations.certificatePassword", + Func: indexApimanagementServiceHostnameConfigurationsCertificatePassword, + }, + { + Key: ".spec.hostnameConfigurations.certificate.expiryFromConfig", + Func: indexApimanagementServiceHostnameConfigurationsExpiryFromConfig, + }, + { + Key: ".spec.hostnameConfigurations.identityClientIdFromConfig", + Func: indexApimanagementServiceHostnameConfigurationsIdentityClientIdFromConfig, + }, + { + Key: ".spec.hostnameConfigurations.certificate.subjectFromConfig", + Func: indexApimanagementServiceHostnameConfigurationsSubjectFromConfig, + }, + { + Key: ".spec.hostnameConfigurations.certificate.thumbprintFromConfig", + Func: indexApimanagementServiceHostnameConfigurationsThumbprintFromConfig, + }, + }, + Watches: []registration.Watch{ + { + Type: &v1.Secret{}, + MakeEventHandler: watchSecretsFactory([]string{".spec.certificates.certificatePassword", ".spec.hostnameConfigurations.certificatePassword"}, &apimanagement_v20220801s.ServiceList{}), + }, + { + Type: &v1.ConfigMap{}, + MakeEventHandler: watchConfigMapsFactory([]string{".spec.certificates.certificate.expiryFromConfig", ".spec.certificates.certificate.subjectFromConfig", ".spec.certificates.certificate.thumbprintFromConfig", ".spec.hostnameConfigurations.certificate.expiryFromConfig", ".spec.hostnameConfigurations.certificate.subjectFromConfig", ".spec.hostnameConfigurations.certificate.thumbprintFromConfig", ".spec.hostnameConfigurations.identityClientIdFromConfig"}, &apimanagement_v20220801s.ServiceList{}), + }, + }, + }) result = append(result, ®istration.StorageType{Obj: new(appconfiguration_v20220501s.ConfigurationStore)}) result = append(result, ®istration.StorageType{ Obj: new(authorization_v20200801ps.RoleAssignment), @@ -884,6 +938,8 @@ func getKnownStorageTypes() []*registration.StorageType { // getKnownTypes returns the list of all types. func getKnownTypes() []client.Object { var result []client.Object + result = append(result, new(apimanagement_v20220801.Service)) + result = append(result, new(apimanagement_v20220801s.Service)) result = append(result, new(appconfiguration_v1beta20220501.ConfigurationStore)) result = append(result, new(appconfiguration_v1beta20220501s.ConfigurationStore)) result = append(result, new(appconfiguration_v20220501.ConfigurationStore)) @@ -1595,6 +1651,8 @@ func getKnownTypes() []client.Object { func createScheme() *runtime.Scheme { scheme := runtime.NewScheme() _ = clientgoscheme.AddToScheme(scheme) + _ = apimanagement_v20220801.AddToScheme(scheme) + _ = apimanagement_v20220801s.AddToScheme(scheme) _ = appconfiguration_v1beta20220501.AddToScheme(scheme) _ = appconfiguration_v1beta20220501s.AddToScheme(scheme) _ = appconfiguration_v20220501.AddToScheme(scheme) @@ -1781,6 +1839,7 @@ func createScheme() *runtime.Scheme { // getResourceExtensions returns a list of resource extensions func getResourceExtensions() []genruntime.ResourceExtension { var result []genruntime.ResourceExtension + result = append(result, &apimanagement_customizations.ServiceExtension{}) result = append(result, &appconfiguration_customizations.ConfigurationStoreExtension{}) result = append(result, &authorization_customizations.RoleAssignmentExtension{}) result = append(result, &batch_customizations.BatchAccountExtension{}) @@ -1948,6 +2007,168 @@ func getResourceExtensions() []genruntime.ResourceExtension { return result } +// indexApimanagementServiceCertificatesCertificatePassword an index function for apimanagement_v20220801s.Service .spec.certificates.certificatePassword +func indexApimanagementServiceCertificatesCertificatePassword(rawObj client.Object) []string { + obj, ok := rawObj.(*apimanagement_v20220801s.Service) + if !ok { + return nil + } + var result []string + for _, certificateItem := range obj.Spec.Certificates { + if certificateItem.CertificatePassword == nil { + continue + } + result = append(result, certificateItem.CertificatePassword.Index()...) + } + return result +} + +// indexApimanagementServiceCertificatesExpiryFromConfig an index function for apimanagement_v20220801s.Service .spec.certificates.certificate.expiryFromConfig +func indexApimanagementServiceCertificatesExpiryFromConfig(rawObj client.Object) []string { + obj, ok := rawObj.(*apimanagement_v20220801s.Service) + if !ok { + return nil + } + var result []string + for _, certificateItem := range obj.Spec.Certificates { + if certificateItem.Certificate == nil { + continue + } + if certificateItem.Certificate.ExpiryFromConfig == nil { + continue + } + result = append(result, certificateItem.Certificate.ExpiryFromConfig.Index()...) + } + return result +} + +// indexApimanagementServiceCertificatesSubjectFromConfig an index function for apimanagement_v20220801s.Service .spec.certificates.certificate.subjectFromConfig +func indexApimanagementServiceCertificatesSubjectFromConfig(rawObj client.Object) []string { + obj, ok := rawObj.(*apimanagement_v20220801s.Service) + if !ok { + return nil + } + var result []string + for _, certificateItem := range obj.Spec.Certificates { + if certificateItem.Certificate == nil { + continue + } + if certificateItem.Certificate.SubjectFromConfig == nil { + continue + } + result = append(result, certificateItem.Certificate.SubjectFromConfig.Index()...) + } + return result +} + +// indexApimanagementServiceCertificatesThumbprintFromConfig an index function for apimanagement_v20220801s.Service .spec.certificates.certificate.thumbprintFromConfig +func indexApimanagementServiceCertificatesThumbprintFromConfig(rawObj client.Object) []string { + obj, ok := rawObj.(*apimanagement_v20220801s.Service) + if !ok { + return nil + } + var result []string + for _, certificateItem := range obj.Spec.Certificates { + if certificateItem.Certificate == nil { + continue + } + if certificateItem.Certificate.ThumbprintFromConfig == nil { + continue + } + result = append(result, certificateItem.Certificate.ThumbprintFromConfig.Index()...) + } + return result +} + +// indexApimanagementServiceHostnameConfigurationsCertificatePassword an index function for apimanagement_v20220801s.Service .spec.hostnameConfigurations.certificatePassword +func indexApimanagementServiceHostnameConfigurationsCertificatePassword(rawObj client.Object) []string { + obj, ok := rawObj.(*apimanagement_v20220801s.Service) + if !ok { + return nil + } + var result []string + for _, hostnameConfigurationItem := range obj.Spec.HostnameConfigurations { + if hostnameConfigurationItem.CertificatePassword == nil { + continue + } + result = append(result, hostnameConfigurationItem.CertificatePassword.Index()...) + } + return result +} + +// indexApimanagementServiceHostnameConfigurationsExpiryFromConfig an index function for apimanagement_v20220801s.Service .spec.hostnameConfigurations.certificate.expiryFromConfig +func indexApimanagementServiceHostnameConfigurationsExpiryFromConfig(rawObj client.Object) []string { + obj, ok := rawObj.(*apimanagement_v20220801s.Service) + if !ok { + return nil + } + var result []string + for _, hostnameConfigurationItem := range obj.Spec.HostnameConfigurations { + if hostnameConfigurationItem.Certificate == nil { + continue + } + if hostnameConfigurationItem.Certificate.ExpiryFromConfig == nil { + continue + } + result = append(result, hostnameConfigurationItem.Certificate.ExpiryFromConfig.Index()...) + } + return result +} + +// indexApimanagementServiceHostnameConfigurationsIdentityClientIdFromConfig an index function for apimanagement_v20220801s.Service .spec.hostnameConfigurations.identityClientIdFromConfig +func indexApimanagementServiceHostnameConfigurationsIdentityClientIdFromConfig(rawObj client.Object) []string { + obj, ok := rawObj.(*apimanagement_v20220801s.Service) + if !ok { + return nil + } + var result []string + for _, hostnameConfigurationItem := range obj.Spec.HostnameConfigurations { + if hostnameConfigurationItem.IdentityClientIdFromConfig == nil { + continue + } + result = append(result, hostnameConfigurationItem.IdentityClientIdFromConfig.Index()...) + } + return result +} + +// indexApimanagementServiceHostnameConfigurationsSubjectFromConfig an index function for apimanagement_v20220801s.Service .spec.hostnameConfigurations.certificate.subjectFromConfig +func indexApimanagementServiceHostnameConfigurationsSubjectFromConfig(rawObj client.Object) []string { + obj, ok := rawObj.(*apimanagement_v20220801s.Service) + if !ok { + return nil + } + var result []string + for _, hostnameConfigurationItem := range obj.Spec.HostnameConfigurations { + if hostnameConfigurationItem.Certificate == nil { + continue + } + if hostnameConfigurationItem.Certificate.SubjectFromConfig == nil { + continue + } + result = append(result, hostnameConfigurationItem.Certificate.SubjectFromConfig.Index()...) + } + return result +} + +// indexApimanagementServiceHostnameConfigurationsThumbprintFromConfig an index function for apimanagement_v20220801s.Service .spec.hostnameConfigurations.certificate.thumbprintFromConfig +func indexApimanagementServiceHostnameConfigurationsThumbprintFromConfig(rawObj client.Object) []string { + obj, ok := rawObj.(*apimanagement_v20220801s.Service) + if !ok { + return nil + } + var result []string + for _, hostnameConfigurationItem := range obj.Spec.HostnameConfigurations { + if hostnameConfigurationItem.Certificate == nil { + continue + } + if hostnameConfigurationItem.Certificate.ThumbprintFromConfig == nil { + continue + } + result = append(result, hostnameConfigurationItem.Certificate.ThumbprintFromConfig.Index()...) + } + return result +} + // indexAuthorizationRoleAssignmentPrincipalIdFromConfig an index function for authorization_v20200801ps.RoleAssignment .spec.principalIdFromConfig func indexAuthorizationRoleAssignmentPrincipalIdFromConfig(rawObj client.Object) []string { obj, ok := rawObj.(*authorization_v20200801ps.RoleAssignment) diff --git a/v2/internal/controllers/crd_apimanagement_20220801_test.go b/v2/internal/controllers/crd_apimanagement_20220801_test.go new file mode 100644 index 00000000000..d4bb29b63ee --- /dev/null +++ b/v2/internal/controllers/crd_apimanagement_20220801_test.go @@ -0,0 +1,58 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +package controllers_test + +import ( + "testing" + + . "github.com/onsi/gomega" + + apim "github.com/Azure/azure-service-operator/v2/api/apimanagement/v1api20220801" + "github.com/Azure/azure-service-operator/v2/internal/testcommon" + "github.com/Azure/azure-service-operator/v2/internal/util/to" +) + +func Test_ApiManagement_20220801_CRUD(t *testing.T) { + t.Parallel() + + if *isLive { + t.Skip("skipping test in live mode as it takes a very long time to provision an APIM service (1+h)") + } + + tc := globalTestContext.ForTest(t) + + rg := tc.CreateTestResourceGroupAndWait() + + sku := apim.ApiManagementServiceSkuProperties{ + Capacity: to.Ptr(1), + Name: to.Ptr(apim.ApiManagementServiceSkuProperties_Name_Developer), + } + + // Create an APIM instance + service := apim.Service{ + ObjectMeta: tc.MakeObjectMetaWithName(tc.Namer.GenerateName("apim")), + Spec: apim.Service_Spec{ + Location: tc.AzureRegion, + Owner: testcommon.AsOwner(rg), + PublisherEmail: to.Ptr("ASO@testing.com"), + PublisherName: to.Ptr("ASOTesting"), + Sku: &sku, + }, + } + + tc.CreateResourceAndWait(&service) + + tc.Expect(service.Status.Id).ToNot(BeNil()) + + tc.Expect(service.Status.Id).ToNot(BeNil()) + + // Update the service to ensure that works + tc.T.Log("updating tags on apim") + old := service.DeepCopy() + service.Spec.Tags = map[string]string{"scratchcard": "lanyard"} + tc.PatchResourceAndWait(old, &service) + tc.Expect(service.Status.Tags).To(HaveKey("scratchcard")) +} diff --git a/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20210101preview_test.go b/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20210101preview_test.go index c0b05fb7ca1..34a7a4a6019 100644 --- a/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20210101preview_test.go +++ b/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20210101preview_test.go @@ -38,6 +38,10 @@ func Test_ServiceBus_Namespace_Basic_v1api20210101preview_CRUD(t *testing.T) { ServiceBus_Queue_v1api20210101preview_CRUD(tc, namespace) }, }, + ) + + // This must run at the end as it modifies the namespace + tc.RunSubtests( testcommon.Subtest{ Name: "Namespace secrets", Test: func(tc *testcommon.KubePerTestContext) { diff --git a/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20211101_test.go b/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20211101_test.go index aee886ea23b..bc1f01fdfb0 100644 --- a/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20211101_test.go +++ b/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20211101_test.go @@ -38,9 +38,15 @@ func Test_ServiceBus_Namespace_Basic_v1api20211101_CRUD(t *testing.T) { ServiceBus_Queue_v1api20211101_CRUD(tc, namespace) }, }, + ) + + // This must run at the end as it modifies the namespace + tc.RunSubtests( testcommon.Subtest{ Name: "Namespace secrets", - Test: func(tc *testcommon.KubePerTestContext) { ServiceBus_Namespace_Secrets_v1api20211101(tc, namespace) }, + Test: func(tc *testcommon.KubePerTestContext) { + ServiceBus_Namespace_Secrets_v1api20211101(tc, namespace) + }, }, ) diff --git a/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20221001preview_test.go b/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20221001preview_test.go index 03813eac2c4..b8f04323d9f 100644 --- a/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20221001preview_test.go +++ b/v2/internal/controllers/crd_servicebus_namespace_basic_v1api20221001preview_test.go @@ -38,13 +38,16 @@ func Test_ServiceBus_Namespace_Basic_v1api20221001preview_CRUD(t *testing.T) { ServiceBus_NamespacesQueue_v1api20221001preview_CRUD(tc, namespace) }, }, + ) + + // This must run at the end as it modifies the namespace + tc.RunSubtests( testcommon.Subtest{ Name: "Namespace secrets", Test: func(tc *testcommon.KubePerTestContext) { ServiceBus_Namespace_Secrets_v1api20221001preview(tc, namespace) }, - }, - ) + }) tc.DeleteResourceAndWait(namespace) diff --git a/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20210101preview_test.go b/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20210101preview_test.go index 813e624da1f..ce108278f2f 100644 --- a/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20210101preview_test.go +++ b/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20210101preview_test.go @@ -51,13 +51,16 @@ func Test_ServiceBus_Namespace_Standard_v1api20210101preview_CRUD(t *testing.T) ServiceBus_NamespacesAuthorizationRule_v1api20210101preview_CRUD(tc, namespace) }, }, + ) + + // This must run at the end as it modifies the namespace + tc.RunSubtests( testcommon.Subtest{ Name: "NamespaceSecrets CRUD", Test: func(tc *testcommon.KubePerTestContext) { ServiceBus_Namespace_Secrets_v1api20210101preview(tc, namespace) }, - }, - ) + }) tc.DeleteResourceAndWait(namespace) diff --git a/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20211101_test.go b/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20211101_test.go index 14f9b063cc1..4c41911c9b2 100644 --- a/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20211101_test.go +++ b/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20211101_test.go @@ -51,6 +51,10 @@ func Test_ServiceBus_Namespace_Standard_v1api20211101_CRUD(t *testing.T) { ServiceBus_NamespacesAuthorizationRule_v1api20211101_CRUD(tc, namespace) }, }, + ) + + // This must run at the end as it modifies the namespace + tc.RunSubtests( testcommon.Subtest{ Name: "NamespaceSecrets CRUD", Test: func(tc *testcommon.KubePerTestContext) { diff --git a/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20221001preview_test.go b/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20221001preview_test.go index 3d68f60903f..81d52993dc9 100644 --- a/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20221001preview_test.go +++ b/v2/internal/controllers/crd_servicebus_namespace_standard_v1api20221001preview_test.go @@ -51,13 +51,16 @@ func Test_ServiceBus_Namespace_Standard_v1api20221001preview_CRUD(t *testing.T) ServiceBus_AuthorizationRule_v1api20221001preview_CRUD(tc, namespace) }, }, + ) + + // This must run at the end as it modifies the namespace. + tc.RunSubtests( testcommon.Subtest{ Name: "NamespaceSecrets CRUD", Test: func(tc *testcommon.KubePerTestContext) { ServiceBus_Namespace_Secrets_v1api20221001preview(tc, namespace) }, - }, - ) + }) tc.DeleteResourceAndWait(namespace) diff --git a/v2/internal/controllers/recordings/Test_ApiManagement_20220801_CRUD.yaml b/v2/internal/controllers/recordings/Test_ApiManagement_20220801_CRUD.yaml new file mode 100644 index 00000000000..705a1f70b89 --- /dev/null +++ b/v2/internal/controllers/recordings/Test_ApiManagement_20220801_CRUD.yaml @@ -0,0 +1,670 @@ +--- +version: 1 +interactions: +- request: + body: '{"location":"westus2","name":"asotest-rg-pwokuh","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh?api-version=2020-06-01 + method: PUT + response: + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh","name":"asotest-rg-pwokuh","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh?api-version=2020-06-01 + method: GET + response: + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh","name":"asotest-rg-pwokuh","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"location":"westus2","name":"asotest-apim-sczlzm","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh/providers/Microsoft.ApiManagement/service/asotest-apim-sczlzm?api-version=2022-08-01 + method: PUT + response: + body: '{"etag":"AAAAAABLnPw=","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting","notificationSenderEmail":"apimgmt-noreply@mail.windowsazure.com","provisioningState":"Succeeded","targetProvisioningState":"","createdAtUtc":"2001-02-03T04:05:06Z","gatewayUrl":"https://asotest-apim-sczlzm.azure-api.net","gatewayRegionalUrl":"https://asotest-apim-sczlzm-westus2-01.regional.azure-api.net","portalUrl":"https://asotest-apim-sczlzm.portal.azure-api.net","developerPortalUrl":"https://asotest-apim-sczlzm.developer.azure-api.net","managementApiUrl":"https://asotest-apim-sczlzm.management.azure-api.net","scmUrl":"https://asotest-apim-sczlzm.scm.azure-api.net","hostnameConfigurations":[{"type":"Proxy","hostName":"asotest-apim-sczlzm.azure-api.net","encodedCertificate":null,"keyVaultId":null,"certificatePassword":null,"negotiateClientCertificate":false,"certificate":null,"defaultSslBinding":true,"identityClientId":null,"certificateSource":"BuiltIn","certificateStatus":null}],"publicIPAddresses":["40.64.71.62"],"privateIPAddresses":null,"additionalLocations":null,"virtualNetworkConfiguration":null,"customProperties":{"Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2":"False"},"virtualNetworkType":"None","certificates":null,"disableGateway":false,"natGatewayState":"Disabled","outboundPublicIPAddresses":["40.64.71.62"],"apiVersionConstraint":{"minApiVersion":null},"publicIpAddressId":null,"publicNetworkAccess":"Enabled","privateEndpointConnections":null,"platformVersion":"stv2"},"sku":{"name":"Developer","capacity":1},"identity":null,"zones":null,"systemData":{"createdBy":"32329496-f577-4a3e-9103-429eb74063a6","createdByType":"Application","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"32329496-f577-4a3e-9103-429eb74063a6","lastModifiedByType":"Application","lastModifiedAt":"2001-02-03T04:05:06Z"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh/providers/Microsoft.ApiManagement/service/asotest-apim-sczlzm","name":"asotest-apim-sczlzm","type":"Microsoft.ApiManagement/service","location":"West + US 2","tags":{}}' + headers: + Cache-Control: + - no-cache + Content-Type: + - application/json; charset=utf-8 + Etag: + - '"AAAAAABLnPw="' + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23999" + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh/providers/Microsoft.ApiManagement/service/asotest-apim-sczlzm?api-version=2022-08-01 + method: GET + response: + body: '{"etag":"AAAAAABLnPw=","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting","notificationSenderEmail":"apimgmt-noreply@mail.windowsazure.com","provisioningState":"Succeeded","targetProvisioningState":"","createdAtUtc":"2001-02-03T04:05:06Z","gatewayUrl":"https://asotest-apim-sczlzm.azure-api.net","gatewayRegionalUrl":"https://asotest-apim-sczlzm-westus2-01.regional.azure-api.net","portalUrl":"https://asotest-apim-sczlzm.portal.azure-api.net","developerPortalUrl":"https://asotest-apim-sczlzm.developer.azure-api.net","managementApiUrl":"https://asotest-apim-sczlzm.management.azure-api.net","scmUrl":"https://asotest-apim-sczlzm.scm.azure-api.net","hostnameConfigurations":[{"type":"Proxy","hostName":"asotest-apim-sczlzm.azure-api.net","encodedCertificate":null,"keyVaultId":null,"certificatePassword":null,"negotiateClientCertificate":false,"certificate":null,"defaultSslBinding":true,"identityClientId":null,"certificateSource":"BuiltIn","certificateStatus":null}],"publicIPAddresses":["40.64.71.62"],"privateIPAddresses":null,"additionalLocations":null,"virtualNetworkConfiguration":null,"customProperties":{"Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2":"False"},"virtualNetworkType":"None","certificates":null,"disableGateway":false,"natGatewayState":"Disabled","outboundPublicIPAddresses":["40.64.71.62"],"apiVersionConstraint":{"minApiVersion":null},"publicIpAddressId":null,"publicNetworkAccess":"Enabled","privateEndpointConnections":null,"platformVersion":"stv2"},"sku":{"name":"Developer","capacity":1},"identity":null,"zones":null,"systemData":{"createdBy":"32329496-f577-4a3e-9103-429eb74063a6","createdByType":"Application","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"32329496-f577-4a3e-9103-429eb74063a6","lastModifiedByType":"Application","lastModifiedAt":"2001-02-03T04:05:06Z"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh/providers/Microsoft.ApiManagement/service/asotest-apim-sczlzm","name":"asotest-apim-sczlzm","type":"Microsoft.ApiManagement/service","location":"West + US 2","tags":{}}' + headers: + Cache-Control: + - no-cache + Content-Type: + - application/json; charset=utf-8 + Etag: + - '"AAAAAABLnPw="' + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"location":"westus2","name":"asotest-apim-sczlzm","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"},"tags":{"scratchcard":"lanyard"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "203" + Content-Type: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh/providers/Microsoft.ApiManagement/service/asotest-apim-sczlzm?api-version=2022-08-01 + method: PUT + response: + body: '{"etag":"AAAAAABLo7k=","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting","notificationSenderEmail":"apimgmt-noreply@mail.windowsazure.com","provisioningState":"Succeeded","targetProvisioningState":"","createdAtUtc":"2001-02-03T04:05:06Z","gatewayUrl":"https://asotest-apim-sczlzm.azure-api.net","gatewayRegionalUrl":"https://asotest-apim-sczlzm-westus2-01.regional.azure-api.net","portalUrl":"https://asotest-apim-sczlzm.portal.azure-api.net","developerPortalUrl":"https://asotest-apim-sczlzm.developer.azure-api.net","managementApiUrl":"https://asotest-apim-sczlzm.management.azure-api.net","scmUrl":"https://asotest-apim-sczlzm.scm.azure-api.net","hostnameConfigurations":[{"type":"Proxy","hostName":"asotest-apim-sczlzm.azure-api.net","encodedCertificate":null,"keyVaultId":null,"certificatePassword":null,"negotiateClientCertificate":false,"certificate":null,"defaultSslBinding":true,"identityClientId":null,"certificateSource":"BuiltIn","certificateStatus":null}],"publicIPAddresses":["40.64.71.62"],"privateIPAddresses":null,"additionalLocations":null,"virtualNetworkConfiguration":null,"customProperties":{"Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2":"False"},"virtualNetworkType":"None","certificates":null,"disableGateway":false,"natGatewayState":"Disabled","outboundPublicIPAddresses":["40.64.71.62"],"apiVersionConstraint":{"minApiVersion":null},"publicIpAddressId":null,"publicNetworkAccess":"Enabled","privateEndpointConnections":null,"platformVersion":"stv2"},"sku":{"name":"Developer","capacity":1},"identity":null,"zones":null,"systemData":{"createdBy":"32329496-f577-4a3e-9103-429eb74063a6","createdByType":"Application","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"32329496-f577-4a3e-9103-429eb74063a6","lastModifiedByType":"Application","lastModifiedAt":"2001-02-03T04:05:06Z"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh/providers/Microsoft.ApiManagement/service/asotest-apim-sczlzm","name":"asotest-apim-sczlzm","type":"Microsoft.ApiManagement/service","location":"West + US 2","tags":{"scratchcard":"lanyard"}}' + headers: + Cache-Control: + - no-cache + Content-Type: + - application/json; charset=utf-8 + Etag: + - '"AAAAAABLo7k="' + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23998" + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh/providers/Microsoft.ApiManagement/service/asotest-apim-sczlzm?api-version=2022-08-01 + method: GET + response: + body: '{"etag":"AAAAAABLo7k=","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting","notificationSenderEmail":"apimgmt-noreply@mail.windowsazure.com","provisioningState":"Succeeded","targetProvisioningState":"","createdAtUtc":"2001-02-03T04:05:06Z","gatewayUrl":"https://asotest-apim-sczlzm.azure-api.net","gatewayRegionalUrl":"https://asotest-apim-sczlzm-westus2-01.regional.azure-api.net","portalUrl":"https://asotest-apim-sczlzm.portal.azure-api.net","developerPortalUrl":"https://asotest-apim-sczlzm.developer.azure-api.net","managementApiUrl":"https://asotest-apim-sczlzm.management.azure-api.net","scmUrl":"https://asotest-apim-sczlzm.scm.azure-api.net","hostnameConfigurations":[{"type":"Proxy","hostName":"asotest-apim-sczlzm.azure-api.net","encodedCertificate":null,"keyVaultId":null,"certificatePassword":null,"negotiateClientCertificate":false,"certificate":null,"defaultSslBinding":true,"identityClientId":null,"certificateSource":"BuiltIn","certificateStatus":null}],"publicIPAddresses":["40.64.71.62"],"privateIPAddresses":null,"additionalLocations":null,"virtualNetworkConfiguration":null,"customProperties":{"Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2":"False"},"virtualNetworkType":"None","certificates":null,"disableGateway":false,"natGatewayState":"Disabled","outboundPublicIPAddresses":["40.64.71.62"],"apiVersionConstraint":{"minApiVersion":null},"publicIpAddressId":null,"publicNetworkAccess":"Enabled","privateEndpointConnections":null,"platformVersion":"stv2"},"sku":{"name":"Developer","capacity":1},"identity":null,"zones":null,"systemData":{"createdBy":"32329496-f577-4a3e-9103-429eb74063a6","createdByType":"Application","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"32329496-f577-4a3e-9103-429eb74063a6","lastModifiedByType":"Application","lastModifiedAt":"2001-02-03T04:05:06Z"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh/providers/Microsoft.ApiManagement/service/asotest-apim-sczlzm","name":"asotest-apim-sczlzm","type":"Microsoft.ApiManagement/service","location":"West + US 2","tags":{"scratchcard":"lanyard"}}' + headers: + Cache-Control: + - no-cache + Content-Type: + - application/json; charset=utf-8 + Etag: + - '"AAAAAABLo7k="' + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh?api-version=2020-06-01 + method: DELETE + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129595078549&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=Qv8Bbt8S7FtFUM4on7QH1Yz47-Ia2Rt3Xzh_zMuqFhHttmLOwFYbpTOIhcXQIs6xOTNbeoSdfzllWTC-j4jpYRBWCRwiYx5dRInRk8_tHqa7mB49oGKlxjFc9JdL9bsFFcONarFXilc6PE2ydnS2NgIPYCrxWDiNLqjvu9PPEplWetBwZKom1s-vz44MW8G4T8-l2dd-x84Y8galpBNG6whWE0dvv20N5vmAu_tsWLZVRWyUk77-n3FhRddAgMSsrJUrbW3kOuYnZk70NaeHh-puUFTUNUlQOiu1W9Hmnur6Aohw3ul-cnw1BISQQGJDrgtZkSxO2M05sn5G5phkBw&h=_n9-MIv6tsD_OWyNHINjq624notDaS0h_9By4grsoxM + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129748675866&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=nAH_qF0kLuEUZ45M5cC6WOjX5MCZarLLYXOdwqW97wdBUca7KIMS-UzbWOL8o8YoD3dfAcc_JM3cfESPO4pENmextd7g8CcHaUEXUsZXpDX8WNOpmWS_DtvDH92LEo-RD4iqj_n_DyBYbLxLUpGTjuBidfYsf3rebWdvy4IWFtFHrjHdU4tkHLNss82Um9pz4EHr4_F-sfxCemzK44aSodxiI72XREjF-ZaByvb7KXEnKKsonMlG3eeD-2kNroYS7RlewTe4dvzL1FQwCQnJpejkgfsXDBlx8uV3bXRCmw9Dc2wrjKnh3uSzgpBiXu8QmaHA80FnQZfmDDAPkWuRjQ&h=3hGHU89Osx-uK7CJ6_7UgOh4L7tchE9j-tSlhUlThrI + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129901799621&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=eJs6PU2S6nccceLu0OnRzBsr_1Yi0vSUeaHVKkWk65oBJVq0nOVxCQhtpEgqbuoW9FapvYl6VE1XWO7Iq5_671yagGbv73ti1mzgthXZND44puR6wYY85DVjYsL2Na-eQdyrNIyrKOAdp1OM-qML0LUl1rUvEtyQnftydbLLUCNsh_ydrjD0NqoqmAg5dzC9gsZvHzKzrInFQl8GXFhdzzz1tK8Fl2Mq3_-q65a83UkCCS8Elz_R4ZQOOPe9rSLnWNBO0opRqSwoQBGCQ_tZMHI-_PsUIa3dd7doMC7Ae4YnauHyQiCL2CxV5_ePXp9Z5VCe_Ke34Tf9pLoCpDhEkg&h=5UFZq3YEcceIYVWzCjxztiMJnDDiK-2xZeEq4o90o_I + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319130054923359&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=pFCx32SNZgqI8xedwRyCz5ybkcacGOjnEnLKFQp6yMmVc1rqYf1XY8W4SZWHmUyL6YLvQqACAcu8MQm6mvvAN8a4U2SfPSWx8x44rYV2U2g1sqb7TQ27iuGbXxdH59o5jXnpU_PBOMrQMoooZDuvhZ4RGCdCChgIegBRXJEIlJxjlLpx__d9XJoZlPJc9FH1gZ8HD7-OS_nEtgIXHJvfGPWbL5H8FAbICdo2eF33cn3b5mbfZg7-Nlr-Jy9L9EVLWch-8OPD4iYd4lrQByQDU1zD4cldLDaKU7AmvhkjhweYkSLgKQRFJ3tSN6UHZKYIPvFej6Fg1uWmzKtv2unZeQ&h=jEYgfRQv6drD7K6Ei_PhMOW0q0MCnDv3dFFAIu5Zs-o + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319130207890842&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=e9zz5v4tRyHwRV323xaDitd3mrgZfNlcN_uGAmPcy845KJAjTx_6b0UGCrOfosxo0X7ZM_NsK_XcxDqRpIBqjOnd6yVTAfn5wRkMts8HSsLNz5jtyMvgAXYN7hW5nrMfQLY9_ChunO9G2t-71NuiUE0CBbsn2jkcEwuYS1OHcXbV7cenCN7HEDpiNZwUPAnbPRW8eQvMzOegRUzc9xC3xr1q-C0v17vY8U6Jk_uNA3Hgaoz4iDQX3qzopChAHw-FFQeRlDWmDLtnSD6DQNq7sm7uiVx_0ikYP5WVxLafknudJKRe1a2RsxQcs9W5AlFfAsTIv59FaSNJUXS-o15oNg&h=VudqtJEoTlCF4tr6Uqq68OY3ock1kHQmK33Y9a4xWQg + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319130361014624&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=lBCfxDr8APVosaM-PLIGf9lkOaDfLLdrGOHtDusjGRUidM1MZvnZueKpYeIUT9teKqsLjFpnEXzpAktJx6CP-DIUY-XLHZ4LCyH5HegFSKDeQFdr8FVTl3fDl2iAMJQrkqgsdrfEKjC6qAOQhmmqlhlvYl_rCO0tpqvp1bacNq21KdiYC9RyOgJYg7A8fFd5yJUFkXkZ003cnjK9fGqYzTRp9P5wxy0x22viA40l688tPu6QIUQ-ojNKxIeRVpaM91tb0auaPw_yhJeqE5Ve9FHMKWVtDnQ-AU0y_hTwcY1JZV-wC7xA5LvRPTUjR4_1nXHWYWVaGPZp9Wy8eudMTw&h=dGdPW1FdniAB3L4Ljo8BfJN_T3vv1PNi3C_rwyZMXkQ + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319130514138316&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=Hqm-lRF7l8Rl5KpK6uRp54Hj3b5NBk4xwjNwlc2kuxuUqvRFjxvRIQNnk-kdlXzMYpgrjx83Rr_hSoYcipdXhEVm3Ty2Qnip4F-KBLfhn6Rpaa1cXMq45wn2E0skOUboaqA4dqE_j13K_NUA4joBrqhXrkQfVRS6aLZYWOQttIUiIJ5ljRUbXffwUaWYPoGVbnb9ySLLZpIvz9jsfpncLs3iKUE1RuAXl-PnSx8xbO31S1oUcuUhHTfBUWSZCIKhhY8p_qoaWr1-3wAquuZgzfrl03N4JhHi_dPqa8Dn8O7bWDVO2FXQJQrlCBP5Uh3OpoJWWIxPYt_dsIQuEhBjcQ&h=507vfqRw6zp4wRCcjO_u17qfMINIaFcwtlsgRgmza80 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319130667425045&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=CLu1J7t2zy94qY8Hqs_nZEB4WAzmgPpYLI6Qqqierj5UdyQ3Jxt1qnJrzv1MALPCtyhSCvChm1G6S79wNncW005eO4YDiXsNzz3prKPK7l27FzV75Gic2BCAterQnefst4beSx69B6D9RYa8_MQhGs4eanBiwuyxmgi9kf8qrj3tQGXp_m2nbZY9RQJ7-DPXMt-cV62qnfQdcRJPcMqOZZkvt3xxl8USSBvuPtCm0wV3Bathp1V2y4JwbxJiIHrMNEwE73QRtKZSGxLL07RXE1gTz-aYMo1_eHIrCufIlh-DrKXP2hvKz8VRUqkh1Jcb4jA3Vf2trwPMIEXpTb0www&h=qkizZYvqCFyCQDzAScNJ_C82Z1cyfl4YLv6h4Mb_Zkk + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "8" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319130820548656&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=JPGCrb6qh7moa7VRtscsPAxpRsaI9hGN57KFBctlj4d21sRNKPBGjl4Vrt42H9hmW-Yt5Bu2BptoiihaDy-3g-BpSiA27G8UnUsTc4Chku60PSVonlBdYSHnduDnOLI2AXfO9r61KxtSI6ndvAiNrCquvetql88O6OrSk7ra5iFTyn2FHaC1q6yV2tA90OF0nptIi6VMrFoCyGby0jYnK-cmTw6---TT6sSEux3Dgm_GHVvAPKTDFZQ1rtzhCRSH_FZL8ZAPbGDvElhUq2KZEmr1KMxEypmiC3DE8B9FScc2_rjorZFxlSnLU8z-P0h3c6ZpHeOWinFJ8YAGkn3JBg&h=kUnDRUjZQMiew8hbExx69CkBcr-sq1Tp3n1UBCT7nmw + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "9" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319130974297363&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DgfIERN6zufLbBfi5M9wl6Whg0wSJpvJiRUWGqVhzOOyMUA6y_HqUDpYh97Ob9sNljrFtMr30S3xrxXVppCM3DNsJ1YSGPp6D_tLszPChh8gOFpf6CrQUwj_D_FH8816AkAEum6g_z52r8wx8amCSidTOqIfjchygy6XB1WXjB_G82xUVZiylm65sJaPzVK5EuBKLlGd7wv7uO1V6UpCDg3PnBBrMC--1qoIVURd7sfSBFF1jAOY4LqchR1VEdFz3CPEOuE2sXBB3ltTuU4BAK4N_E1Q98XmkcOsTL7nK7mvKIMZ9I7mBkCzAAJdPLrVdkvXAlT8G7AdPH52BUlBMg&h=gsoIDLftBIw6dnsTpIJV2kRppAol9-PoDb0SX42XLBA + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "10" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319131127421120&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=btsE2HS-vdJYz3Bu8K-vr3IJI4TeTcufgy3ireudFGmD-T8w4ngfkyTmxvihbN7doJ-KtOvD6aWfhdwkmCwffaNfdQavfJhVSL0c2XBvIzY0GXExMUAPmAkKwy8OvMG07iCcYVXW8T1p_eAkNTGjYT42Tl5xnyIb2z46J01DmBC_rUpuJ77df23AYzVCv-piwhgZFRNPor-mKPXB42MY3eWtt51VP2TkhMa8tnDw7h16sPl7j5Qs2knEL2GQsH-7ybDFoDpfIgExKR_700H0rkzdbvvZmKIh2M2-v1OGfBZzwJZbeIDV-crg9CMwWu8zK96BC6JNCDEsPYOeDgGjAQ&h=vTy5kuJn_r5BpTG8FDpJ21yPZ8lSMZikV0E6m3G4Rlg + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "11" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319131280544879&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=AYUkQQ1jciGYO-EuaR_Xmc3cZhYOm0g2tPeRS0BQ7YOYARP4Wg4WZ-OfJi2NiUHCtaehmcPH_HaETpGW4DDr-x4OQLoHnEpnmjocyvtrlgtfMdx2j39z3zyGucUasaPGwaEtY7peDVpw1OL0PunoMYR8O1W79ALvKp7rrnbUkfO-aZRe0874mrMEjdSeQt8Gzpk64LizgDXhSWwK-qVjbKwnneqQ7nKVYOOQmyQLK7zkX7bxplwBLZQORgGNtIS996xp5MgZshvRhpQk4xZbU7C1UDAM8AlF1Btaoz5df65UreMDpDYdzVB3WeM34FALtR-gUuffFT0yN96OBmqryw&h=1gLJ-iGxukKIBBud8ACudlpT_5hl9t7DXgUYh9-7JwM + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "12" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRQV09LVUgtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319129441798500&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ofnklslakbNCIN3qiFR2rpUvp5JVGZbsWGQLGmpFmuA9eRRqWpkRO8gFnLpjHtGoCFJcHYnfcuirc5DJfIQidS7OWfiPIVgr9DziktcFTbtPCenEFEzHxjZtduILXmOWz_N0N0BXfSsPotPhszII4QGV6fU3Bj2Ez8kWjrVux-IllAeTvw84Wqzoe7Yu8Or04PqBdRsIr3jPTZYcQrh6nTB1EOUXoU3t_t1Bn5Tlc6PyJAR5xJTOMg4Rb2zQxtGk-gRZR4scFokx36R0qf0WBzWqx46e8ujoi-ZZVwwhjUVu1JVnbucor5ebuATKneYPAOgeGmlkohyzQ_ItycXYvg&h=KGiklNQWOugTZtp2iNMCHRlaJsjmvTcgMiyOrr9TSmQ + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-pwokuh/providers/Microsoft.ApiManagement/service/asotest-apim-sczlzm?api-version=2022-08-01 + method: DELETE + response: + body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-pwokuh'' + 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-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + status: 404 Not Found + code: 404 + duration: "" diff --git a/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Apimanagement_v1api20220801_CreationAndDeletion.yaml b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Apimanagement_v1api20220801_CreationAndDeletion.yaml new file mode 100644 index 00000000000..0a710bc8158 --- /dev/null +++ b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Apimanagement_v1api20220801_CreationAndDeletion.yaml @@ -0,0 +1,1257 @@ +--- +version: 1 +interactions: +- request: + body: '{"location":"westus2","name":"asotest-rg-nnxzgr","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr?api-version=2020-06-01 + method: PUT + response: + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr","name":"asotest-rg-nnxzgr","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr?api-version=2020-06-01 + method: GET + response: + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr","name":"asotest-rg-nnxzgr","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + status: 200 OK + code: 200 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23999" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23998" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23997" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23996" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23995" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23994" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23993" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23992" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "8" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23991" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "9" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23990" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "10" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23989" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "11" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23994" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "12" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23993" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "13" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23992" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "14" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23991" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "15" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23990" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "16" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"error":{"code":"ServiceLocked","message":"The API Service asotestcbcchw + is transitioning at this time. Please try the request again later.","details":null,"innerError":null}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "176" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23994" + status: 409 Conflict + code: 409 + duration: "" +- request: + body: '{"location":"westcentralus","name":"asotestcbcchw","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting"},"sku":{"capacity":1,"name":"Developer"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "170" + Content-Type: + - application/json + Test-Request-Attempt: + - "17" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: PUT + response: + body: '{"etag":"AAAAAAAe15I=","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting","notificationSenderEmail":"apimgmt-noreply@mail.windowsazure.com","provisioningState":"Succeeded","targetProvisioningState":"","createdAtUtc":"2001-02-03T04:05:06Z","gatewayUrl":"https://asotestcbcchw.azure-api.net","gatewayRegionalUrl":"https://asotestcbcchw-westcentralus-01.regional.azure-api.net","portalUrl":"https://asotestcbcchw.portal.azure-api.net","developerPortalUrl":"https://asotestcbcchw.developer.azure-api.net","managementApiUrl":"https://asotestcbcchw.management.azure-api.net","scmUrl":"https://asotestcbcchw.scm.azure-api.net","hostnameConfigurations":[{"type":"Proxy","hostName":"asotestcbcchw.azure-api.net","encodedCertificate":null,"keyVaultId":null,"certificatePassword":null,"negotiateClientCertificate":false,"certificate":null,"defaultSslBinding":true,"identityClientId":null,"certificateSource":"BuiltIn","certificateStatus":null}],"publicIPAddresses":["20.69.45.26"],"privateIPAddresses":null,"additionalLocations":null,"virtualNetworkConfiguration":null,"customProperties":{"Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2":"False"},"virtualNetworkType":"None","certificates":null,"disableGateway":false,"natGatewayState":"Disabled","outboundPublicIPAddresses":["20.69.45.26"],"apiVersionConstraint":{"minApiVersion":null},"publicIpAddressId":null,"publicNetworkAccess":"Enabled","privateEndpointConnections":null,"platformVersion":"stv2"},"sku":{"name":"Developer","capacity":1},"identity":null,"zones":null,"systemData":{"createdBy":"32329496-f577-4a3e-9103-429eb74063a6","createdByType":"Application","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"32329496-f577-4a3e-9103-429eb74063a6","lastModifiedByType":"Application","lastModifiedAt":"2001-02-03T04:05:06Z"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw","name":"asotestcbcchw","type":"Microsoft.ApiManagement/service","location":"West + Central US","tags":{}}' + headers: + Cache-Control: + - no-cache + Content-Type: + - application/json; charset=utf-8 + Etag: + - '"AAAAAAAe15I="' + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "23993" + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: GET + response: + body: '{"etag":"AAAAAAAe15I=","properties":{"publisherEmail":"ASO@testing.com","publisherName":"ASOTesting","notificationSenderEmail":"apimgmt-noreply@mail.windowsazure.com","provisioningState":"Succeeded","targetProvisioningState":"","createdAtUtc":"2001-02-03T04:05:06Z","gatewayUrl":"https://asotestcbcchw.azure-api.net","gatewayRegionalUrl":"https://asotestcbcchw-westcentralus-01.regional.azure-api.net","portalUrl":"https://asotestcbcchw.portal.azure-api.net","developerPortalUrl":"https://asotestcbcchw.developer.azure-api.net","managementApiUrl":"https://asotestcbcchw.management.azure-api.net","scmUrl":"https://asotestcbcchw.scm.azure-api.net","hostnameConfigurations":[{"type":"Proxy","hostName":"asotestcbcchw.azure-api.net","encodedCertificate":null,"keyVaultId":null,"certificatePassword":null,"negotiateClientCertificate":false,"certificate":null,"defaultSslBinding":true,"identityClientId":null,"certificateSource":"BuiltIn","certificateStatus":null}],"publicIPAddresses":["20.69.45.26"],"privateIPAddresses":null,"additionalLocations":null,"virtualNetworkConfiguration":null,"customProperties":{"Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Ciphers.TripleDes168":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls10":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Tls11":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Security.Backend.Protocols.Ssl30":"False","Microsoft.WindowsAzure.ApiManagement.Gateway.Protocols.Server.Http2":"False"},"virtualNetworkType":"None","certificates":null,"disableGateway":false,"natGatewayState":"Disabled","outboundPublicIPAddresses":["20.69.45.26"],"apiVersionConstraint":{"minApiVersion":null},"publicIpAddressId":null,"publicNetworkAccess":"Enabled","privateEndpointConnections":null,"platformVersion":"stv2"},"sku":{"name":"Developer","capacity":1},"identity":null,"zones":null,"systemData":{"createdBy":"32329496-f577-4a3e-9103-429eb74063a6","createdByType":"Application","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"32329496-f577-4a3e-9103-429eb74063a6","lastModifiedByType":"Application","lastModifiedAt":"2001-02-03T04:05:06Z"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw","name":"asotestcbcchw","type":"Microsoft.ApiManagement/service","location":"West + Central US","tags":{}}' + headers: + Cache-Control: + - no-cache + Content-Type: + - application/json; charset=utf-8 + Etag: + - '"AAAAAAAe15I="' + Expires: + - "-1" + Pragma: + - no-cache + Server: + - Microsoft-HTTPAPI/2.0 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Content-Type-Options: + - nosniff + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr?api-version=2020-06-01 + method: DELETE + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394268261484&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=W4PRiLCaZT2qkp0WfZinGP58ZHswerxZ9UbaVYTZcAUA8J2jeOECkSVXKWwe60aRL_nPNwNGF8IiAsz9kOw9-isM0Kz9EtkymGFRe1bYzyE8ozYYHuq9sdJLGNjcVogz1zNXBvTAXFIjHF0UiRt4r5Mq5mclzeZEXgV4gB5CL59flZR6__yTx8jslkItE4TMg4YlEdh0t7Wm_P0etGrWFHHUCT4UiUNWlcstjXT2hKLgsHAsDjicY9azNRJ6B2r39GDTOcQI_pdaLhqCXskPEg3Ndsz8GDTHlvxQV3H1c569gp7OaBR837cVUMT9Oq8j_tJwfXCxLMvEP27myvsjcA&h=ReaYdxtNx1ub9HkJ4SarCElpUIcsVygaSN-fNAi30o4 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394421513853&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=JgrkKRtNgr8T8zTxT0i7OIyRUF1EfPkrmzvS7Q8nvInXlP6lX8Yd9ZDakXh-g7Op6534AVvjyTaPtqSyqmzWVsxWbR101Sk44ye63-G6uy18muygsIDdPF5kbzxGT6lSA9JjlyOr5Qr8ohdzETHuhERQMGkDNppapNe8Oi2w0yenoD28QyyhCWH1DExUDaqkZ5c5VcS0HQXCKrZL0ysP-C8XGzAtK1xdLjFPvqsVcsz5wRs9otHkg7R6u-YUoYEzkazy-YswyYkfwadEFGanLeEEjhldBM_6iwA36zs304nowlVtNpfdfe3fljEZ2ajUgkKzPXqS1BP0Ox3fomE_hw&h=f5SQmizqk1vNZM53-2Dh3QVuV6ygC_UNCE5i8XcnD_4 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394574639480&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=bMPlwuGWSGnRRYf_u7scJpKFqDt9Da_oY0GSk35oVsR8OqzeC0ddo-qXehhF8AJ1SqAjieV-UWN5KB5gJzbTdLCSCF4re9587JRS6r_NiicC2kTAJHangcBoc6MrE81DW6-Rh6KyGvDBv9UzzLlN8EXCSny5HFXBGohY6f_GJ7EY7ou_NrVn8Q3DE5vOdqu25r9oU0odO_BtwH8ivExcEnG7hDfNxtysHfr0MMV3e6iHOUuEoeyPmf7cuqm7dmVIbxmvndE6on9Nh-amSBUk4SiO60gExCOqYETQNKbz-JkmvjIXlfso6gWvUjwGF_fz6DL_OeSbYliEwRCB4VExVA&h=pAcOHsrnpDwCQf4ukgH5moF30enouu6GXwzYTB4keSU + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394727765127&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=XMswSEESAjLfOHkp1a-vSE87ekZHD824C8rwPaJDM_EpBMgVvBYI9p14gXGxkISMzzP_NsysE7NK5WwgYUldP9A0Y1K4whj-sZB51oQrXVlaKcspqgMKif_0wjLkHptuAHEHS7Dr7XOo0G8UU8-6jaChOl9nypHWmL5GmA1QOg_pXb1sxns6Vf6gG8sR8mMIXYCWfQ31bSz37FLWDbCHyC_ta3UknDe7WD9WVJSTBWUHjXHFcZhqoYKxuWJN0KiGagrES4lVxNFCRY4dk9niFMEANSJF-FqA386dddXtMpS7-H8XZ41cd0TlwnMuTbkM4RJiDZE2cZ9JskTukESmHw&h=V-6MsInji8_kTu8cIjbzqVztRppsRKiOcf_BPDy-lRI + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394881515809&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ZpzGaYgCLJ1GhcoBuWMzHJKoDVzMvp80gBi30ngGPeWqDs0HIfGuy4Rlhzz7sRIzQR_1mRNbWCJe2gBlLKW_AgOvpJepHwsTqzq6Rpaq7mqjyCh1qpKHhgDeiPWz19NcDMx0MYXy8cMzOQu-DG8msZuDRRmTT5ioKUlgqYqZTkBkFP7FX6IvDxYnG7mLk8J8uBWe2ib1vNeQVX4Ps9ftT2nTOH9h0608DoJUdOD_A3vSrnRgkxoZTWbYylyJ8ZCVinh1vY83FBYXS79iMxubfEIwFfzg3nRTZKTUZ1MsbfJRuYob-XOzleMA0qOCBcyteGdVeTzT8KxBCiSbicEhAw&h=fMWEANJ-GFBGeQKKak_M0esqfN3iCvTnv958ypVz-sg + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319395034954089&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=IBSgKlO6dA9XfToAfmhb9P3jnqTlAmu8-F3iGt5Nn3a93Hr8TCqYatLQqq_DfFJpZ1bxlvUyzwwxYv6kIfbAJ5S7KTlmhrxwIYMc9kzrI2kgBvxqUEL2Dq7q22NNrippIfJH3uKuofusmt0FxZB6J7oNM5qkOvu0gJ1ev1sTOS1iOfVPG2GW-M1kylHR2Nor8t2a2SwXLL65hSdN6kCsmh4Xpb0FjUR1DCWg6UFTNsF-gUJwWRQJSSrnlNQd4MtjB0wBhdOB-WZ7uPSN9BW68bdlaVEqNuwKmHmTjdd0kGtl0W7SAn2VKI1n6yFGoBqKlgr_1fYvlranWAKmOqYlUQ&h=v8TwTCd-BcL70jZG3SNRZOC5Us3KofL_XYsMyzaVgOE + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319395188080106&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=TPFCeaVQfKmffVFGjDpenxOo59iFF0lNzGUmD7sA5jV8pKFqc_L6QBqEW1SsErpFabRR9SAPdBERYYtz97WFuNzt-HQaQxiqEshaUpE38l-8uvMO7OlsJERkCW9pUPdrBcyoNru9opnhuKGXSWTmniL2VT5RWc1V1k5Z40f69y3LMMybRe1i3tpEcfwZ6U5k68QZnEy23PFGMrMkMBekNz3mf5H2FX-ESPUdAfrKscYV4UQpdiXdeBXzhjyAUSI9vuGe4umZEz6kjuX2lnTQGfl9G0-gfMqwtg-cmmCaqDDR02YhFiqcx6ztRJBrfPcRHRy8OdsKCvmQ9Zg-Iy6k5Q&h=Ll6wkT43JxtSeoNspftBGow_oq8b_Lj1alhjqVRNbY8 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319395341205288&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=PM3bAQmAEfXj8Kv82FnWCNYoLbqoJCEnRpj9lb_cHpscodbItqPiHGtNzfqD3vkazoUjHhNVCuqs_x6Efsa3Y4_wdc7O8ZqgY2NJGW8wqOJqT3ACAAZk0owPeiAqSZnvuOJQwYOgkBWgCVWlZzlqehIoUG7yiMzuWcfXVaM5ihqmE3K74KdOWrgR4_LrOTJxUUgpP4bKh6G_OHKiBCHjgNWRuouJd5j6KensISgE75GFHTMke3R_sJgRTVA4aFAlA7I9O-PNNm-9MQUU1v1frvw7lmwaXySTKfOLGrdLZzJhK80DMvrhfeitdo9PXD7ze6TDVv4e-8H_20hxmdxZlA&h=6f8GCCoR5LIIgFp7baDKekWmdLGwJTLOVb31mwSmlMQ + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "8" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319395494643380&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=ki14ASEmvEv_nJjl9h7LoT9dbhoQObTyHhjOBcsX7nyZ2ouguZjwOY9CWUocCFWNbDbJ6IG7aP5Cn3F0Xvsb7B19p24oDMweqErjtjqQqWJS8jCZkIxFG5w14LDUmYgnmj0TlL57BrzfYRUXQVeDhwYbjI5f53U2FTtCjwg0lq794v5x1IocLB-9TCsam021n2hKbgya9kL5M7VnONxnoKQQPnJU55JhWC46Btth3DOiuD6WvvTT0PTFB8KDmCUZX_jsYHtgaNi0BnxuaZFqil-pVchEZAmQ1B7aFTLJ5Em7ygNINHOyrCGE9Psm7kTZtBuCWrdXYExbKGB8XUjkqQ&h=XCtZQ2GI7nBrZIToPb4hv63uuBl9gppFqnVHsdVxLF8 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "9" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319395648081455&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=VGjUPZI6JJQrmdDalzkKhb2o-dAGuY5GytvUxyezV9ZtsZXpCfIDSKgCGcCigGQ6MQw2Dw4BgPKduykqTqR0_MkRAkmc51bx69wCuFegj1ZeWHzDiupAq_sHKr2Br51uYCrKqJsbacixr_bC96qk3f85XKRqLE4mfHUKppV4yt-ytjaW-mwd1W_5AFfUwufZsBdPerLA75JEutbdFL2iudrl66wE2XJntY0dulehB0VUbkpvJ2-MUq3PUrF7VmqK-AeJlI4vk85wIpBmE6LUA3mSnh3SJP2HCnB8aAKuYDa_kS7d5MVpKn_wq0r-znEvxWTgIdMuu_n0NCikCjL7NA&h=wlvJYCjhLB61EeLgV-puibjbjSA04ghE3AiqfnTFl14 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "10" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319395801362916&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=h77-xrMyiM2hz9HX1rtEeLSQy1xn-J0gc8oiheiK_1RnmjgqTH9xHm5CB48wXiVI2vz1s0EIQyqdnxj-_-RwJWXMuA2zbxqjFU_o_Q_mnDZHul8YE3c-pnUBIfZeQ10MoqWesjDsaIKIanQdEarniv926myQgkO--vV5ifVUFAWLLRrn388hCksrNIVZlHuLYsxcGZi-Sq8u44vR-PiUta234gu7pOVszED3Wo-lCXR-FWEeoVCab4lQLU2YlrFup1NB89HkkkR93KKcX75BfvQUSX8YSuVwOXB4GcYRy29vSSNKeoXbP7KLqwUQbrpWbfbd2aVTUfCkA6oCW0wiyQ&h=8L0ozj4TalCN3I526s3srWpNEKkSZI95V_QMc9LqbTs + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "11" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319395954488173&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=NmRivI_jDUS_0DLNbLwU8Y4d1vf5b4fIe7Wbt5GnNwWYH6KKY8wqGjESEv0WlcPAiY3BsNYJwj7EDpfqbhlXYF6_1Y1r4W5XANp1-aLHWjy_v7qVKV9L3zGzBu1kXWBsgAMzHO2lMg9DR5x-bQO1eC0XE1_LKjDwGamz4GTbfGhj3p5MDt13OZ9ecEK3iYhFIPuD8H23a32rbl4xxjJRaYTI6ju1z2w6mqlZJmMF4hhwIhzrlipCqNQjJ25P-W7slxoT9lWBtzNSFHAdD1DO9PA0vgYETWTn9E9CFqRfGCp4-shH13vsmY4um_8nylaV0KtX2FoIIqQ6hf6uBVXuig&h=ZcNQabMQSdw3O5uSTtjMt1lcVdrvFBZ7MHq_ljx3dm8 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 202 Accepted + code: 202 + duration: "" +- request: + body: "" + form: {} + headers: + Test-Request-Attempt: + - "12" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkROTlhaR1ItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638319394114949715&c=MIIHHjCCBgagAwIBAgITfwHPkDeMFREo3srnmQAEAc-QNzANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjMwODAyMTQxMTEyWhcNMjQwNzI3MTQxMTEyWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKitd-rzzV3Jpc3YK1S1KKsqeYzKrh4i8pFWP9gLw89VlCaB62w-zpHA-lwk5eUIBJ8DmUVN_5GN3fhBC66i_54fnxRwkxGGH_mth4r-Yz34khtX6VK_-4Md9Sq5mtTG0LPoIxGRtzVAvZEQOo-1rctARs4DYwTtef2iMKuLkeY9c6WEqV32b_HKhJa2AYtLV86N4Vz4NbJEU1xGyfpge2zzYHdDR70WCS81xhjl3sTbt6WeRx9xGS6QQsrTK2g4B2fGFmeB5KScCIdpApMEUKO1_PgV9sSZxFzHK1owPQiumJwWAagaJm2aNP7LdUiTEF0eBIA309r204KL4-kK2HkCAwEAAaOCBAswggQHMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBQ0OhiKnZOSPxrLWG3-btZSrlAOyDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMBcGA1UdIAQQMA4wDAYKKwYBBAGCN3sBATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBABSP4ZDyin7llkeZjLnLnduUX1uOkBJxhEHka8Ayx4WAiovVTkkiJgPVuZ-vlWUCbHyh6Pn4hPsE4BXCFkmg_9-edk6GL21aBvGRzZcAi7ydNt28n5JvhiYXfaKAyeH_syBvfWVYKwGbKirZQ_mf99jkUTJGwWqfqLEEwESl6Q5uYLxdclkdd2cc_LdIyeF1OgjtS1q6LRhZb4mrtErtVbH9oSTMAjRet4T4hjGNKwvxpiRsqmCsvszKZwOVQePpd8DJXGOhf45jXeVErnUunQDjOy2Ew7n_SO2ZRmDI27adEZJO8D7jeoDnpyX6pAWsLwqUnDCIGeX5RfiDIexaExY&s=DnoMr-7ATlUCGf3KmyhXdX-SjsLwUg9eBgGqJB0UcBvPFMdwxvYcTyJOTLtnKNIxuUS7pB4Zl0ALzW2y6wloWkVTU9sxJfd8QSw-fG4871HYnw__FYEcn-b_g2b0LgjEWY1iQNs9YP1XYzSnCj8bePNWEUgQRhx8pl1gt94qjEtFOjqrWW_lxTdjdBb0RU-alFH12jj9Zj6Gf5_YPBnruI8kJGEvj_Oa3b_XI5lOA9b7RLOyjiLrx5ce-ynGmHYVCJy_wAKMsyBM4jXGnLDwQsYILCDLKfRifiPCo8I7l-daituyfHRDSPjlCpyx9glcW_-bY9rYbzup679WkAgBAg&h=IAwiJtBEodYkkD-Gq_s6tAvkq_KznwNBUKAKSUy2Rqg + method: GET + response: + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Content-Type-Options: + - nosniff + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-nnxzgr/providers/Microsoft.ApiManagement/service/asotestcbcchw?api-version=2022-08-01 + method: DELETE + response: + body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-nnxzgr'' + 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-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + status: 404 Not Found + code: 404 + duration: "" diff --git a/v2/internal/reflecthelpers/reflect_helpers.go b/v2/internal/reflecthelpers/reflect_helpers.go index 7d7764600a7..847c7fc8fb6 100644 --- a/v2/internal/reflecthelpers/reflect_helpers.go +++ b/v2/internal/reflecthelpers/reflect_helpers.go @@ -282,3 +282,96 @@ func getItemsField(listPtr client.ObjectList) (reflect.Value, error) { return itemsField, nil } + +// SetProperty sets the property on the provided object to the provided value. +// obj is the object to modify. +// propertyPath is a dot-separated path to the property to set. +// value is the value to set the property to. +// Returns an error if any of the properties in the path do not exist, if the property is not settable, +// or if the value provided is incompatible. +func SetProperty(obj any, propertyPath string, value any) error { + if obj == nil { + return errors.Errorf("provided object was nil") + } + + if propertyPath == "" { + return errors.Errorf("property path was empty") + } + + steps := strings.Split(propertyPath, ".") + return setPropertyCore(obj, steps, value) +} + +func setPropertyCore(obj any, propertyPath []string, value any) (err error) { + // Catch any panic that occurs when setting the field and turn it into an error return + defer func() { + if recovered := recover(); recovered != nil { + err = errors.Errorf("failed to set property %s: %s", propertyPath[0], recovered) + } + }() + + // Get the underlying object we need to modify + subject := reflect.ValueOf(obj) + + // Dereference pointers + if subject.Kind() == reflect.Ptr { + subject = subject.Elem() + } + + // Check we have a struct + if subject.Kind() != reflect.Struct { + return errors.Errorf("provided object was not a struct, was %s", subject.Kind()) + } + + // Get the field we need to modify + field := subject.FieldByName(propertyPath[0]) + + // Check the field exists + if field == (reflect.Value{}) { + return errors.Errorf("provided object did not have a field named %s", propertyPath[0]) + } + + // If this is not the last property in the path, we need to recurse + if len(propertyPath) > 1 { + if field.Kind() == reflect.Ptr { + // Field is a pointer; initialize it if needed, then pass the pointer recursively + if field.IsNil() { + newValue := reflect.New(field.Type().Elem()) + field.Set(newValue) + } + + err = setPropertyCore(field.Interface(), propertyPath[1:], value) + if err != nil { + return errors.Wrapf(err, "failed to set property %s", + propertyPath[0]) + } + + return nil + } + + // Field is not a pointer, so we need to pass the address of the field recursively + err = setPropertyCore(field.Addr().Interface(), propertyPath[1:], value) + if err != nil { + return errors.Wrapf(err, "failed to set property %s", + propertyPath[0]) + } + + return nil + } + + // If this is the last property in the path, we need to set the value, if we can + if !field.CanSet() { + return errors.Errorf("field %s was not settable", propertyPath[0]) + } + + // Cast value to the type required by the field + valueKind := reflect.ValueOf(value) + if !valueKind.CanConvert(field.Type()) { + return errors.Errorf("value of kind %s was not compatible with field %s", valueKind, propertyPath[0]) + } + + value = valueKind.Convert(field.Type()).Interface() + + field.Set(reflect.ValueOf(value)) + return nil +} diff --git a/v2/internal/reflecthelpers/reflect_helpers_test.go b/v2/internal/reflecthelpers/reflect_helpers_test.go index 373c6258a47..7606c9c46d7 100644 --- a/v2/internal/reflecthelpers/reflect_helpers_test.go +++ b/v2/internal/reflecthelpers/reflect_helpers_test.go @@ -25,7 +25,8 @@ import ( type ResourceWithReferences struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - Spec ResourceWithReferencesSpec `json:"spec,omitempty"` + Spec ResourceWithReferencesSpec `json:"spec,omitempty"` + Status ResourceWithReferencesStatus `json:"status,omitempty"` } var _ client.Object = &ResourceWithReferences{} @@ -118,10 +119,21 @@ func (in *ResourceWithReferencesSpec) PopulateFromARM(owner genruntime.Arbitrary panic("not expected to be called") } +type ResourceWithReferencesStatus struct { + ProvisioningState *ProvisioningState `json:"provisioningState,omitempty"` +} + type ResourceReference struct { Reference genruntime.ResourceReference `armReference:"Id" json:"reference"` } +type ProvisioningState string + +const ( + ProvisioningStateSucceeded ProvisioningState = "Succeeded" + ProvisioningStateFailed ProvisioningState = "Failed" +) + func Test_FindReferences(t *testing.T) { t.Parallel() g := NewGomegaWithT(t) @@ -408,3 +420,172 @@ func Test_SetObjectListItems(t *testing.T) { g.Expect(list.Items).To(HaveLen(1)) g.Expect(list.Items[0].GetName()).To(Equal("test-group")) } + +func Test_SetProperty_TargetingStringProperty_MakesChange(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + subject := &ResourceWithReferencesSpec{ + AzureName: "azureName", + } + + newValue := "newName" + err := reflecthelpers.SetProperty(subject, "AzureName", newValue) + g.Expect(err).ToNot(HaveOccurred()) + g.Expect(subject.AzureName).To(Equal(newValue)) +} + +func Test_SetProperty_TargetingMultipleProperties_MakesChanges(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + subject := &ResourceWithReferencesSpec{ + AzureName: "azureName", + Location: "westus", + PropertyWithTag: to.Ptr("hello"), + } + + name := "dorothy" + location := "land-of-oz" + property := to.Ptr("flying-house") + + g.Expect(reflecthelpers.SetProperty(subject, "AzureName", name)).To(Succeed()) + g.Expect(reflecthelpers.SetProperty(subject, "Location", location)).To(Succeed()) + g.Expect(reflecthelpers.SetProperty(subject, "PropertyWithTag", property)).To(Succeed()) + + g.Expect(subject.AzureName).To(Equal(name)) + g.Expect(subject.Location).To(Equal(location)) + g.Expect(subject.PropertyWithTag).To(Equal(property)) +} + +func Test_SetProperty_TargetingNestedStringProperty_MakesChange(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + subject := &ResourceWithReferences{ + Spec: ResourceWithReferencesSpec{ + AzureName: "azureName", + }, + } + + newValue := "newName" + err := reflecthelpers.SetProperty(subject, "Spec.AzureName", newValue) + g.Expect(err).ToNot(HaveOccurred()) + g.Expect(subject.Spec.AzureName).To(Equal(newValue)) +} + +func Test_SetProperty_TargetingMultipleNestedProperties_MakesChange(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + subject := &ResourceWithReferences{ + Spec: ResourceWithReferencesSpec{ + AzureName: "azureName", + Location: "westus", + PropertyWithTag: to.Ptr("hello"), + }, + } + + name := "dorothy" + location := "land-of-oz" + property := to.Ptr("flying-house") + + g.Expect(reflecthelpers.SetProperty(subject, "Spec.AzureName", name)).To(Succeed()) + g.Expect(reflecthelpers.SetProperty(subject, "Spec.Location", location)).To(Succeed()) + g.Expect(reflecthelpers.SetProperty(subject, "Spec.PropertyWithTag", property)).To(Succeed()) + + g.Expect(subject.Spec.AzureName).To(Equal(name)) + g.Expect(subject.Spec.Location).To(Equal(location)) + g.Expect(subject.Spec.PropertyWithTag).To(Equal(property)) +} + +func Test_SetProperty_TargetingNestedNestedStringProperty_MakesChange(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + subject := &ResourceWithReferences{ + Spec: ResourceWithReferencesSpec{ + AzureName: "azureName", + }, + } + + newValue := "newName" + err := reflecthelpers.SetProperty(subject, "Spec.Owner.Name", newValue) + g.Expect(err).ToNot(HaveOccurred()) + g.Expect(subject.Spec.Owner.Name).To(Equal(newValue)) +} + +func Test_SetProperty_TargetingMultipleNestedNestedProperties_MakesChanges(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + subject := &ResourceWithReferences{} + + name := "lock" + key := "key" + + g.Expect(reflecthelpers.SetProperty(subject, "Spec.Secret.Name", name)).To(Succeed()) + g.Expect(reflecthelpers.SetProperty(subject, "Spec.Secret.Key", key)).To(Succeed()) + + g.Expect(subject.Spec.Secret.Name).To(Equal(name)) + g.Expect(subject.Spec.Secret.Key).To(Equal(key)) +} + +func Test_SetProperty_TargetingUnknownProperty_ReturnsExpectedError(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + subject := &ResourceWithReferencesSpec{ + AzureName: "azureName", + } + + err := reflecthelpers.SetProperty(subject, "UnknownProperty", "newValue") + g.Expect(err).To(HaveOccurred()) + g.Expect(err).To(MatchError(ContainSubstring("UnknownProperty"))) +} + +func Test_SetProperty_TargetingUnknownNestedProperty_ReturnsExpectedError(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + subject := &ResourceWithReferencesSpec{} + + err := reflecthelpers.SetProperty(subject, "Owner.UnknownProperty", "newValue") + g.Expect(err).To(HaveOccurred()) + + g.Expect(err).To(MatchError(ContainSubstring("Owner"))) + g.Expect(err).To(MatchError(ContainSubstring("UnknownProperty"))) +} + +func Test_SetProperty_WhenValueOfWrongType_ReturnsExpectedError(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + subject := &ResourceWithReferences{ + Spec: ResourceWithReferencesSpec{ + AzureName: "azureName", + }, + } + + err := reflecthelpers.SetProperty(subject, "Spec.AzureName", make([]int, 0, 10)) + g.Expect(err).To(HaveOccurred()) + g.Expect(err).To(MatchError(ContainSubstring("Spec"))) + g.Expect(err).To(MatchError(ContainSubstring("AzureName"))) + g.Expect(err).To(MatchError(ContainSubstring("kind []"))) + g.Expect(err).To(MatchError(ContainSubstring("not compatible"))) +} + +func Test_SetProperty_WhenValueOfCompatibleType_ModifiesValue(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + subject := &ResourceWithReferences{ + Status: ResourceWithReferencesStatus{ + ProvisioningState: to.Ptr(ProvisioningStateSucceeded), + }, + } + + err := reflecthelpers.SetProperty(subject, "Status.ProvisioningState", to.Ptr(string(ProvisioningStateFailed))) + g.Expect(err).ToNot(HaveOccurred()) + g.Expect(*subject.Status.ProvisioningState).To(Equal(ProvisioningStateFailed)) +} diff --git a/v2/samples/apimanagement/v1api20220801/v1api20220801_service.yaml b/v2/samples/apimanagement/v1api20220801/v1api20220801_service.yaml new file mode 100644 index 00000000000..8fcab20dd1d --- /dev/null +++ b/v2/samples/apimanagement/v1api20220801/v1api20220801_service.yaml @@ -0,0 +1,14 @@ +apiVersion: apimanagement.azure.com/v1api20220801 +kind: Service +metadata: + name: sampleapimservice + namespace: default +spec: + location: westcentralus + sku: + capacity: 1 + name: Developer + owner: + name: aso-sample-rg + publisherEmail: ASO@testing.com + publisherName: ASOTesting diff --git a/v2/tools/generator/go.mod b/v2/tools/generator/go.mod index 288f601e6a0..dc81994cde9 100644 --- a/v2/tools/generator/go.mod +++ b/v2/tools/generator/go.mod @@ -24,7 +24,7 @@ require ( github.com/leanovate/gopter v0.2.9 github.com/onsi/gomega v1.28.0 github.com/pkg/errors v0.9.1 - github.com/rs/zerolog v1.30.0 + github.com/rs/zerolog v1.31.0 github.com/sebdah/goldie/v2 v2.5.3 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 diff --git a/v2/tools/generator/go.sum b/v2/tools/generator/go.sum index 6b4f6f7c2f5..0d1b6df53c2 100644 --- a/v2/tools/generator/go.sum +++ b/v2/tools/generator/go.sum @@ -62,10 +62,8 @@ github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= @@ -83,8 +81,8 @@ github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/f github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.30.0 h1:SymVODrcRsaRaSInD9yQtKbtWqwsfoPcRff/oRXLj4c= -github.com/rs/zerolog v1.30.0/go.mod h1:/tk+P47gFdPXq4QYjvCmT5/Gsug2nagsFWBWhAiSi1w= +github.com/rs/zerolog v1.31.0 h1:FcTR3NnLWW+NnTwwhFWiJSZr4ECLpqCm6QsEnyvbV4A= +github.com/rs/zerolog v1.31.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sebdah/goldie/v2 v2.5.3 h1:9ES/mNN+HNUbNWpVAlrzuZ7jE+Nrczbj8uFRjM7624Y= github.com/sebdah/goldie/v2 v2.5.3/go.mod h1:oZ9fp0+se1eapSRjfYbsV/0Hqhbuu3bJVvKI/NNtssI= @@ -118,8 +116,6 @@ golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o=