From 24f54c2a3448bed9a62e5cdf57651327d990f935 Mon Sep 17 00:00:00 2001 From: Matthew Christopher Date: Thu, 30 May 2024 15:47:53 -0700 Subject: [PATCH] Add Prom Rule groups and Azure Monitor accounts (workspaces) This fixes #4014. --- docs/hugo/content/reference/_index.md | 24 + .../reference/alertsmanagement/_index.md | 15 + docs/hugo/content/reference/monitor/_index.md | 15 + ...ometheus_rule_group_extension_types_gen.go | 20 + .../customizations/structure.txt | 3 + v2/api/alertsmanagement/v1api20230301/doc.go | 10 + .../v1api20230301/groupversion_info_gen.go | 32 + ...rometheus_rule_group_spec_arm_types_gen.go | 108 + ...heus_rule_group_spec_arm_types_gen_test.go | 388 +++ ...metheus_rule_group_status_arm_types_gen.go | 160 ++ ...us_rule_group_status_arm_types_gen_test.go | 466 ++++ .../prometheus_rule_group_types_gen.go | 2418 +++++++++++++++++ .../prometheus_rule_group_types_gen_test.go | 1211 +++++++++ .../storage/groupversion_info_gen.go | 32 + .../prometheus_rule_group_types_gen.go | 307 +++ .../prometheus_rule_group_types_gen_test.go | 740 +++++ .../v1api20230301/storage/structure.txt | 75 + .../storage/zz_generated.deepcopy.go | 579 ++++ .../v1api20230301/structure.txt | 141 + .../v1api20230301/zz_generated.deepcopy.go | 985 +++++++ v2/api/alertsmanagement/versions_matrix.md | 17 + .../account_extension_types_gen.go | 20 + v2/api/monitor/customizations/structure.txt | 3 + .../account_spec_arm_types_gen.go | 32 + .../account_spec_arm_types_gen_test.go | 82 + .../account_status_arm_types_gen.go | 133 + .../account_status_arm_types_gen_test.go | 442 +++ .../v1api20230403/account_types_gen.go | 1393 ++++++++++ .../v1api20230403/account_types_gen_test.go | 830 ++++++ v2/api/monitor/v1api20230403/doc.go | 10 + .../v1api20230403/groupversion_info_gen.go | 32 + .../storage/account_types_gen.go | 260 ++ .../storage/account_types_gen_test.go | 480 ++++ .../storage/groupversion_info_gen.go | 32 + .../v1api20230403/storage/structure.txt | 44 + .../storage/zz_generated.deepcopy.go | 355 +++ v2/api/monitor/v1api20230403/structure.txt | 97 + .../v1api20230403/zz_generated.deepcopy.go | 559 ++++ v2/api/monitor/versions_matrix.md | 15 + v2/azure-arm.yaml | 16 + ...prometheusrulegroup_crud_v20230301_test.go | 75 + .../controllers/controller_resources_gen.go | 18 + .../monitor_account_crud_v20230403_test.go | 47 + ...tsManagement_PrometheusRuleGroup_CRUD.yaml | 975 +++++++ ...ent_v1api20230301_CreationAndDeletion.yaml | 918 +++++++ ...tor_v1api20230403_CreationAndDeletion.yaml | 737 +++++ .../refs/v1api20230403_monitor_account.yaml | 9 + .../v1api20230301_prometheusrulegroup.yaml | 23 + .../v1api20230403/v1api20230403_account.yaml | 9 + 49 files changed, 15392 insertions(+) create mode 100644 docs/hugo/content/reference/alertsmanagement/_index.md create mode 100644 docs/hugo/content/reference/monitor/_index.md create mode 100644 v2/api/alertsmanagement/customizations/prometheus_rule_group_extension_types_gen.go create mode 100644 v2/api/alertsmanagement/customizations/structure.txt create mode 100644 v2/api/alertsmanagement/v1api20230301/doc.go create mode 100644 v2/api/alertsmanagement/v1api20230301/groupversion_info_gen.go create mode 100644 v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_spec_arm_types_gen.go create mode 100644 v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_spec_arm_types_gen_test.go create mode 100644 v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_status_arm_types_gen.go create mode 100644 v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_status_arm_types_gen_test.go create mode 100644 v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_types_gen.go create mode 100644 v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_types_gen_test.go create mode 100644 v2/api/alertsmanagement/v1api20230301/storage/groupversion_info_gen.go create mode 100644 v2/api/alertsmanagement/v1api20230301/storage/prometheus_rule_group_types_gen.go create mode 100644 v2/api/alertsmanagement/v1api20230301/storage/prometheus_rule_group_types_gen_test.go create mode 100644 v2/api/alertsmanagement/v1api20230301/storage/structure.txt create mode 100644 v2/api/alertsmanagement/v1api20230301/storage/zz_generated.deepcopy.go create mode 100644 v2/api/alertsmanagement/v1api20230301/structure.txt create mode 100644 v2/api/alertsmanagement/v1api20230301/zz_generated.deepcopy.go create mode 100644 v2/api/alertsmanagement/versions_matrix.md create mode 100644 v2/api/monitor/customizations/account_extension_types_gen.go create mode 100644 v2/api/monitor/customizations/structure.txt create mode 100644 v2/api/monitor/v1api20230403/account_spec_arm_types_gen.go create mode 100644 v2/api/monitor/v1api20230403/account_spec_arm_types_gen_test.go create mode 100644 v2/api/monitor/v1api20230403/account_status_arm_types_gen.go create mode 100644 v2/api/monitor/v1api20230403/account_status_arm_types_gen_test.go create mode 100644 v2/api/monitor/v1api20230403/account_types_gen.go create mode 100644 v2/api/monitor/v1api20230403/account_types_gen_test.go create mode 100644 v2/api/monitor/v1api20230403/doc.go create mode 100644 v2/api/monitor/v1api20230403/groupversion_info_gen.go create mode 100644 v2/api/monitor/v1api20230403/storage/account_types_gen.go create mode 100644 v2/api/monitor/v1api20230403/storage/account_types_gen_test.go create mode 100644 v2/api/monitor/v1api20230403/storage/groupversion_info_gen.go create mode 100644 v2/api/monitor/v1api20230403/storage/structure.txt create mode 100644 v2/api/monitor/v1api20230403/storage/zz_generated.deepcopy.go create mode 100644 v2/api/monitor/v1api20230403/structure.txt create mode 100644 v2/api/monitor/v1api20230403/zz_generated.deepcopy.go create mode 100644 v2/api/monitor/versions_matrix.md create mode 100644 v2/internal/controllers/alertsmanagement_prometheusrulegroup_crud_v20230301_test.go create mode 100644 v2/internal/controllers/monitor_account_crud_v20230403_test.go create mode 100644 v2/internal/controllers/recordings/Test_AlertsManagement_PrometheusRuleGroup_CRUD.yaml create mode 100644 v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Alertsmanagement_v1api20230301_CreationAndDeletion.yaml create mode 100644 v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Monitor_v1api20230403_CreationAndDeletion.yaml create mode 100644 v2/samples/alertsmanagement/v1api20230301/refs/v1api20230403_monitor_account.yaml create mode 100644 v2/samples/alertsmanagement/v1api20230301/v1api20230301_prometheusrulegroup.yaml create mode 100644 v2/samples/monitor/v1api20230403/v1api20230403_account.yaml diff --git a/docs/hugo/content/reference/_index.md b/docs/hugo/content/reference/_index.md index 146b76fb97d..7b7f1664f4a 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.) +## AlertsManagement + +To install the CRDs for these resources, your ASO configuration must include `alertsmanagement.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 | +|---------------------|-------------|---------------|----------------|--------| +| PrometheusRuleGroup | 2023-03-01 | v1api20230301 | v2.8.0 | - | + ## 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. @@ -464,6 +476,18 @@ These resource(s) are available for use in the current release of ASO. Different | [UserAssignedIdentity](https://azure.github.io/azure-service-operator/reference/managedidentity/v1api20230131/#managedidentity.azure.com/v1api20230131.UserAssignedIdentity) | 2023-01-31 | v1api20230131 | v2.5.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/managedidentity/v1api20230131/v1api20230131_userassignedidentity.yaml) | | [UserAssignedIdentity](https://azure.github.io/azure-service-operator/reference/managedidentity/v1api20181130/#managedidentity.azure.com/v1api20181130.UserAssignedIdentity) | 2018-11-30 | v1api20181130 | v2.0.0 | [View](https://github.com/Azure/azure-service-operator/tree/main/v2/samples/managedidentity/v1api20181130/v1api20181130_userassignedidentity.yaml) | +## Monitor + +To install the CRDs for these resources, your ASO configuration must include `monitor.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 | +|----------|-------------|---------------|----------------|--------| +| Account | 2023-04-03 | v1api20230403 | v2.8.0 | - | + ## Network To install the CRDs for these resources, your ASO configuration must include `network.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/alertsmanagement/_index.md b/docs/hugo/content/reference/alertsmanagement/_index.md new file mode 100644 index 00000000000..66080a49e1b --- /dev/null +++ b/docs/hugo/content/reference/alertsmanagement/_index.md @@ -0,0 +1,15 @@ +--- +title: AlertsManagement Supported Resources +linktitle: AlertsManagement +no_list: true +--- +To install the CRDs for these resources, your ASO configuration must include `alertsmanagement.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 | +|---------------------|-------------|---------------|----------------|--------| +| PrometheusRuleGroup | 2023-03-01 | v1api20230301 | v2.8.0 | - | + diff --git a/docs/hugo/content/reference/monitor/_index.md b/docs/hugo/content/reference/monitor/_index.md new file mode 100644 index 00000000000..edf05d60e0b --- /dev/null +++ b/docs/hugo/content/reference/monitor/_index.md @@ -0,0 +1,15 @@ +--- +title: Monitor Supported Resources +linktitle: Monitor +no_list: true +--- +To install the CRDs for these resources, your ASO configuration must include `monitor.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 | +|----------|-------------|---------------|----------------|--------| +| Account | 2023-04-03 | v1api20230403 | v2.8.0 | - | + diff --git a/v2/api/alertsmanagement/customizations/prometheus_rule_group_extension_types_gen.go b/v2/api/alertsmanagement/customizations/prometheus_rule_group_extension_types_gen.go new file mode 100644 index 00000000000..2930607158a --- /dev/null +++ b/v2/api/alertsmanagement/customizations/prometheus_rule_group_extension_types_gen.go @@ -0,0 +1,20 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package customizations + +import ( + v20230301 "github.com/Azure/azure-service-operator/v2/api/alertsmanagement/v1api20230301" + v20230301s "github.com/Azure/azure-service-operator/v2/api/alertsmanagement/v1api20230301/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +type PrometheusRuleGroupExtension struct { +} + +// GetExtendedResources Returns the KubernetesResource slice for Resource versions +func (extension *PrometheusRuleGroupExtension) GetExtendedResources() []genruntime.KubernetesResource { + return []genruntime.KubernetesResource{ + &v20230301.PrometheusRuleGroup{}, + &v20230301s.PrometheusRuleGroup{}} +} diff --git a/v2/api/alertsmanagement/customizations/structure.txt b/v2/api/alertsmanagement/customizations/structure.txt new file mode 100644 index 00000000000..b1f7a908a82 --- /dev/null +++ b/v2/api/alertsmanagement/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/alertsmanagement/customizations +└── PrometheusRuleGroupExtension: Object (0 properties) diff --git a/v2/api/alertsmanagement/v1api20230301/doc.go b/v2/api/alertsmanagement/v1api20230301/doc.go new file mode 100644 index 00000000000..a525a71d1f0 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/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 v1api20230301 contains API Schema definitions for the alertsmanagement v1api20230301 API group +// +groupName=alertsmanagement.azure.com +package v1api20230301 diff --git a/v2/api/alertsmanagement/v1api20230301/groupversion_info_gen.go b/v2/api/alertsmanagement/v1api20230301/groupversion_info_gen.go new file mode 100644 index 00000000000..a85daa99ff8 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/groupversion_info_gen.go @@ -0,0 +1,32 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by azure-service-operator-codegen. DO NOT EDIT. + +// Package v1api20230301 contains API Schema definitions for the alertsmanagement v1api20230301 API group +// +kubebuilder:object:generate=true +// All object properties are optional by default, this will be overridden when needed: +// +kubebuilder:validation:Optional +// +groupName=alertsmanagement.azure.com +// +versionName=v1api20230301 +package v1api20230301 + +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: "alertsmanagement.azure.com", Version: "v1api20230301"} + + // 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/alertsmanagement/v1api20230301/prometheus_rule_group_spec_arm_types_gen.go b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_spec_arm_types_gen.go new file mode 100644 index 00000000000..fc68e323375 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_spec_arm_types_gen.go @@ -0,0 +1,108 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230301 + +import "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + +type PrometheusRuleGroup_Spec_ARM struct { + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + Name string `json:"name,omitempty"` + + // Properties: The Prometheus rule group properties of the resource. + Properties *PrometheusRuleGroupProperties_ARM `json:"properties,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` +} + +var _ genruntime.ARMResourceSpec = &PrometheusRuleGroup_Spec_ARM{} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-03-01" +func (group PrometheusRuleGroup_Spec_ARM) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetName returns the Name of the resource +func (group *PrometheusRuleGroup_Spec_ARM) GetName() string { + return group.Name +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.AlertsManagement/prometheusRuleGroups" +func (group *PrometheusRuleGroup_Spec_ARM) GetType() string { + return "Microsoft.AlertsManagement/prometheusRuleGroups" +} + +// An Azure Prometheus rule group. +type PrometheusRuleGroupProperties_ARM struct { + // ClusterName: Apply rule to data from a specific cluster. + ClusterName *string `json:"clusterName,omitempty"` + + // Description: Rule group description. + Description *string `json:"description,omitempty"` + + // Enabled: Enable/disable rule group. + Enabled *bool `json:"enabled,omitempty"` + + // Interval: The interval in which to run the Prometheus rule group represented in ISO 8601 duration format. Should be + // between 1 and 15 minutes + Interval *string `json:"interval,omitempty"` + + // Rules: Defines the rules in the Prometheus rule group. + Rules []PrometheusRule_ARM `json:"rules,omitempty"` + Scopes []string `json:"scopes,omitempty"` +} + +// An Azure Prometheus alerting or recording rule. +type PrometheusRule_ARM struct { + // Actions: Actions that are performed when the alert rule becomes active, and when an alert condition is resolved. + Actions []PrometheusRuleGroupAction_ARM `json:"actions,omitempty"` + + // Alert: Alert rule name. + Alert *string `json:"alert,omitempty"` + + // Annotations: The annotations clause specifies a set of informational labels that can be used to store longer additional + // information such as alert descriptions or runbook links. The annotation values can be templated. + Annotations map[string]string `json:"annotations,omitempty"` + + // Enabled: Enable/disable rule. + Enabled *bool `json:"enabled,omitempty"` + + // Expression: The PromQL expression to evaluate. https://prometheus.io/docs/prometheus/latest/querying/basics/. Evaluated + // periodically as given by 'interval', and the result recorded as a new set of time series with the metric name as given + // by 'record'. + Expression *string `json:"expression,omitempty"` + + // For: The amount of time alert must be active before firing. + For *string `json:"for,omitempty"` + + // Labels: Labels to add or overwrite before storing the result. + Labels map[string]string `json:"labels,omitempty"` + + // Record: Recorded metrics name. + Record *string `json:"record,omitempty"` + + // ResolveConfiguration: Defines the configuration for resolving fired alerts. Only relevant for alerts. + ResolveConfiguration *PrometheusRuleResolveConfiguration_ARM `json:"resolveConfiguration,omitempty"` + + // Severity: The severity of the alerts fired by the rule. Must be between 0 and 4. + Severity *int `json:"severity,omitempty"` +} + +// An alert action. Only relevant for alerts. +type PrometheusRuleGroupAction_ARM struct { + ActionGroupId *string `json:"actionGroupId,omitempty"` + + // ActionProperties: The properties of an action group object. + ActionProperties map[string]string `json:"actionProperties,omitempty"` +} + +// Specifies the Prometheus alert rule configuration. +type PrometheusRuleResolveConfiguration_ARM struct { + // AutoResolved: Enable alert auto-resolution. + AutoResolved *bool `json:"autoResolved,omitempty"` + + // TimeToResolve: Alert auto-resolution timeout. + TimeToResolve *string `json:"timeToResolve,omitempty"` +} diff --git a/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_spec_arm_types_gen_test.go b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_spec_arm_types_gen_test.go new file mode 100644 index 00000000000..7db7c90769c --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_spec_arm_types_gen_test.go @@ -0,0 +1,388 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230301 + +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_PrometheusRuleGroup_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 PrometheusRuleGroup_Spec_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroup_Spec_ARM, PrometheusRuleGroup_Spec_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroup_Spec_ARM runs a test to see if a specific instance of PrometheusRuleGroup_Spec_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroup_Spec_ARM(subject PrometheusRuleGroup_Spec_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroup_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 PrometheusRuleGroup_Spec_ARM instances for property testing - lazily instantiated by +// PrometheusRuleGroup_Spec_ARMGenerator() +var prometheusRuleGroup_Spec_ARMGenerator gopter.Gen + +// PrometheusRuleGroup_Spec_ARMGenerator returns a generator of PrometheusRuleGroup_Spec_ARM instances for property testing. +// We first initialize prometheusRuleGroup_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 PrometheusRuleGroup_Spec_ARMGenerator() gopter.Gen { + if prometheusRuleGroup_Spec_ARMGenerator != nil { + return prometheusRuleGroup_Spec_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_Spec_ARM(generators) + prometheusRuleGroup_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_Spec_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_Spec_ARM(generators) + AddRelatedPropertyGeneratorsForPrometheusRuleGroup_Spec_ARM(generators) + prometheusRuleGroup_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_Spec_ARM{}), generators) + + return prometheusRuleGroup_Spec_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroup_Spec_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroup_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()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRuleGroup_Spec_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRuleGroup_Spec_ARM(gens map[string]gopter.Gen) { + gens["Properties"] = gen.PtrOf(PrometheusRuleGroupProperties_ARMGenerator()) +} + +func Test_PrometheusRuleGroupProperties_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 PrometheusRuleGroupProperties_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroupProperties_ARM, PrometheusRuleGroupProperties_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroupProperties_ARM runs a test to see if a specific instance of PrometheusRuleGroupProperties_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroupProperties_ARM(subject PrometheusRuleGroupProperties_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroupProperties_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 PrometheusRuleGroupProperties_ARM instances for property testing - lazily instantiated by +// PrometheusRuleGroupProperties_ARMGenerator() +var prometheusRuleGroupProperties_ARMGenerator gopter.Gen + +// PrometheusRuleGroupProperties_ARMGenerator returns a generator of PrometheusRuleGroupProperties_ARM instances for property testing. +// We first initialize prometheusRuleGroupProperties_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 PrometheusRuleGroupProperties_ARMGenerator() gopter.Gen { + if prometheusRuleGroupProperties_ARMGenerator != nil { + return prometheusRuleGroupProperties_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroupProperties_ARM(generators) + prometheusRuleGroupProperties_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroupProperties_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroupProperties_ARM(generators) + AddRelatedPropertyGeneratorsForPrometheusRuleGroupProperties_ARM(generators) + prometheusRuleGroupProperties_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroupProperties_ARM{}), generators) + + return prometheusRuleGroupProperties_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroupProperties_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroupProperties_ARM(gens map[string]gopter.Gen) { + gens["ClusterName"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Interval"] = gen.PtrOf(gen.AlphaString()) + gens["Scopes"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRuleGroupProperties_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRuleGroupProperties_ARM(gens map[string]gopter.Gen) { + gens["Rules"] = gen.SliceOf(PrometheusRule_ARMGenerator()) +} + +func Test_PrometheusRule_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 PrometheusRule_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRule_ARM, PrometheusRule_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRule_ARM runs a test to see if a specific instance of PrometheusRule_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRule_ARM(subject PrometheusRule_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRule_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 PrometheusRule_ARM instances for property testing - lazily instantiated by PrometheusRule_ARMGenerator() +var prometheusRule_ARMGenerator gopter.Gen + +// PrometheusRule_ARMGenerator returns a generator of PrometheusRule_ARM instances for property testing. +// We first initialize prometheusRule_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 PrometheusRule_ARMGenerator() gopter.Gen { + if prometheusRule_ARMGenerator != nil { + return prometheusRule_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule_ARM(generators) + prometheusRule_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRule_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule_ARM(generators) + AddRelatedPropertyGeneratorsForPrometheusRule_ARM(generators) + prometheusRule_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRule_ARM{}), generators) + + return prometheusRule_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRule_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRule_ARM(gens map[string]gopter.Gen) { + gens["Alert"] = gen.PtrOf(gen.AlphaString()) + gens["Annotations"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Expression"] = gen.PtrOf(gen.AlphaString()) + gens["For"] = gen.PtrOf(gen.AlphaString()) + gens["Labels"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Record"] = gen.PtrOf(gen.AlphaString()) + gens["Severity"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRule_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRule_ARM(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(PrometheusRuleGroupAction_ARMGenerator()) + gens["ResolveConfiguration"] = gen.PtrOf(PrometheusRuleResolveConfiguration_ARMGenerator()) +} + +func Test_PrometheusRuleGroupAction_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 PrometheusRuleGroupAction_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroupAction_ARM, PrometheusRuleGroupAction_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroupAction_ARM runs a test to see if a specific instance of PrometheusRuleGroupAction_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroupAction_ARM(subject PrometheusRuleGroupAction_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroupAction_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 PrometheusRuleGroupAction_ARM instances for property testing - lazily instantiated by +// PrometheusRuleGroupAction_ARMGenerator() +var prometheusRuleGroupAction_ARMGenerator gopter.Gen + +// PrometheusRuleGroupAction_ARMGenerator returns a generator of PrometheusRuleGroupAction_ARM instances for property testing. +func PrometheusRuleGroupAction_ARMGenerator() gopter.Gen { + if prometheusRuleGroupAction_ARMGenerator != nil { + return prometheusRuleGroupAction_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_ARM(generators) + prometheusRuleGroupAction_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroupAction_ARM{}), generators) + + return prometheusRuleGroupAction_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_ARM(gens map[string]gopter.Gen) { + gens["ActionGroupId"] = gen.PtrOf(gen.AlphaString()) + gens["ActionProperties"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} + +func Test_PrometheusRuleResolveConfiguration_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 PrometheusRuleResolveConfiguration_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleResolveConfiguration_ARM, PrometheusRuleResolveConfiguration_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleResolveConfiguration_ARM runs a test to see if a specific instance of PrometheusRuleResolveConfiguration_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleResolveConfiguration_ARM(subject PrometheusRuleResolveConfiguration_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleResolveConfiguration_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 PrometheusRuleResolveConfiguration_ARM instances for property testing - lazily instantiated by +// PrometheusRuleResolveConfiguration_ARMGenerator() +var prometheusRuleResolveConfiguration_ARMGenerator gopter.Gen + +// PrometheusRuleResolveConfiguration_ARMGenerator returns a generator of PrometheusRuleResolveConfiguration_ARM instances for property testing. +func PrometheusRuleResolveConfiguration_ARMGenerator() gopter.Gen { + if prometheusRuleResolveConfiguration_ARMGenerator != nil { + return prometheusRuleResolveConfiguration_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_ARM(generators) + prometheusRuleResolveConfiguration_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleResolveConfiguration_ARM{}), generators) + + return prometheusRuleResolveConfiguration_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_ARM(gens map[string]gopter.Gen) { + gens["AutoResolved"] = gen.PtrOf(gen.Bool()) + gens["TimeToResolve"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_status_arm_types_gen.go b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_status_arm_types_gen.go new file mode 100644 index 00000000000..7a2d0cd65e0 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_status_arm_types_gen.go @@ -0,0 +1,160 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230301 + +type PrometheusRuleGroup_STATUS_ARM struct { + // Id: Fully qualified resource ID for the resource. Ex - + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + Id *string `json:"id,omitempty"` + + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + + // Name: The name of the resource + Name *string `json:"name,omitempty"` + + // Properties: The Prometheus rule group properties of the resource. + Properties *PrometheusRuleGroupProperties_STATUS_ARM `json:"properties,omitempty"` + + // SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData_STATUS_ARM `json:"systemData,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// An Azure Prometheus rule group. +type PrometheusRuleGroupProperties_STATUS_ARM struct { + // ClusterName: Apply rule to data from a specific cluster. + ClusterName *string `json:"clusterName,omitempty"` + + // Description: Rule group description. + Description *string `json:"description,omitempty"` + + // Enabled: Enable/disable rule group. + Enabled *bool `json:"enabled,omitempty"` + + // Interval: The interval in which to run the Prometheus rule group represented in ISO 8601 duration format. Should be + // between 1 and 15 minutes + Interval *string `json:"interval,omitempty"` + + // Rules: Defines the rules in the Prometheus rule group. + Rules []PrometheusRule_STATUS_ARM `json:"rules,omitempty"` + + // Scopes: Target Azure Monitor workspaces resource ids. This api-version is currently limited to creating with one scope. + // This may change in future. + Scopes []string `json:"scopes,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"` +} + +// An Azure Prometheus alerting or recording rule. +type PrometheusRule_STATUS_ARM struct { + // Actions: Actions that are performed when the alert rule becomes active, and when an alert condition is resolved. + Actions []PrometheusRuleGroupAction_STATUS_ARM `json:"actions,omitempty"` + + // Alert: Alert rule name. + Alert *string `json:"alert,omitempty"` + + // Annotations: The annotations clause specifies a set of informational labels that can be used to store longer additional + // information such as alert descriptions or runbook links. The annotation values can be templated. + Annotations map[string]string `json:"annotations,omitempty"` + + // Enabled: Enable/disable rule. + Enabled *bool `json:"enabled,omitempty"` + + // Expression: The PromQL expression to evaluate. https://prometheus.io/docs/prometheus/latest/querying/basics/. Evaluated + // periodically as given by 'interval', and the result recorded as a new set of time series with the metric name as given + // by 'record'. + Expression *string `json:"expression,omitempty"` + + // For: The amount of time alert must be active before firing. + For *string `json:"for,omitempty"` + + // Labels: Labels to add or overwrite before storing the result. + Labels map[string]string `json:"labels,omitempty"` + + // Record: Recorded metrics name. + Record *string `json:"record,omitempty"` + + // ResolveConfiguration: Defines the configuration for resolving fired alerts. Only relevant for alerts. + ResolveConfiguration *PrometheusRuleResolveConfiguration_STATUS_ARM `json:"resolveConfiguration,omitempty"` + + // Severity: The severity of the alerts fired by the rule. Must be between 0 and 4. + Severity *int `json:"severity,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") +) + +// Mapping from string to SystemData_CreatedByType_STATUS +var systemData_CreatedByType_STATUS_Values = map[string]SystemData_CreatedByType_STATUS{ + "application": SystemData_CreatedByType_STATUS_Application, + "key": SystemData_CreatedByType_STATUS_Key, + "managedidentity": SystemData_CreatedByType_STATUS_ManagedIdentity, + "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") +) + +// Mapping from string to SystemData_LastModifiedByType_STATUS +var systemData_LastModifiedByType_STATUS_Values = map[string]SystemData_LastModifiedByType_STATUS{ + "application": SystemData_LastModifiedByType_STATUS_Application, + "key": SystemData_LastModifiedByType_STATUS_Key, + "managedidentity": SystemData_LastModifiedByType_STATUS_ManagedIdentity, + "user": SystemData_LastModifiedByType_STATUS_User, +} + +// An alert action. Only relevant for alerts. +type PrometheusRuleGroupAction_STATUS_ARM struct { + // ActionGroupId: The resource id of the action group to use. + ActionGroupId *string `json:"actionGroupId,omitempty"` + + // ActionProperties: The properties of an action group object. + ActionProperties map[string]string `json:"actionProperties,omitempty"` +} + +// Specifies the Prometheus alert rule configuration. +type PrometheusRuleResolveConfiguration_STATUS_ARM struct { + // AutoResolved: Enable alert auto-resolution. + AutoResolved *bool `json:"autoResolved,omitempty"` + + // TimeToResolve: Alert auto-resolution timeout. + TimeToResolve *string `json:"timeToResolve,omitempty"` +} diff --git a/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_status_arm_types_gen_test.go b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_status_arm_types_gen_test.go new file mode 100644 index 00000000000..a572d95ef29 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_status_arm_types_gen_test.go @@ -0,0 +1,466 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230301 + +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_PrometheusRuleGroup_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 PrometheusRuleGroup_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroup_STATUS_ARM, PrometheusRuleGroup_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroup_STATUS_ARM runs a test to see if a specific instance of PrometheusRuleGroup_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroup_STATUS_ARM(subject PrometheusRuleGroup_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroup_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 PrometheusRuleGroup_STATUS_ARM instances for property testing - lazily instantiated by +// PrometheusRuleGroup_STATUS_ARMGenerator() +var prometheusRuleGroup_STATUS_ARMGenerator gopter.Gen + +// PrometheusRuleGroup_STATUS_ARMGenerator returns a generator of PrometheusRuleGroup_STATUS_ARM instances for property testing. +// We first initialize prometheusRuleGroup_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 PrometheusRuleGroup_STATUS_ARMGenerator() gopter.Gen { + if prometheusRuleGroup_STATUS_ARMGenerator != nil { + return prometheusRuleGroup_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS_ARM(generators) + prometheusRuleGroup_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForPrometheusRuleGroup_STATUS_ARM(generators) + prometheusRuleGroup_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_STATUS_ARM{}), generators) + + return prometheusRuleGroup_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS_ARM(gens map[string]gopter.Gen) { + 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()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRuleGroup_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRuleGroup_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Properties"] = gen.PtrOf(PrometheusRuleGroupProperties_STATUS_ARMGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUS_ARMGenerator()) +} + +func Test_PrometheusRuleGroupProperties_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 PrometheusRuleGroupProperties_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroupProperties_STATUS_ARM, PrometheusRuleGroupProperties_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroupProperties_STATUS_ARM runs a test to see if a specific instance of PrometheusRuleGroupProperties_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroupProperties_STATUS_ARM(subject PrometheusRuleGroupProperties_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroupProperties_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 PrometheusRuleGroupProperties_STATUS_ARM instances for property testing - lazily instantiated by +// PrometheusRuleGroupProperties_STATUS_ARMGenerator() +var prometheusRuleGroupProperties_STATUS_ARMGenerator gopter.Gen + +// PrometheusRuleGroupProperties_STATUS_ARMGenerator returns a generator of PrometheusRuleGroupProperties_STATUS_ARM instances for property testing. +// We first initialize prometheusRuleGroupProperties_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 PrometheusRuleGroupProperties_STATUS_ARMGenerator() gopter.Gen { + if prometheusRuleGroupProperties_STATUS_ARMGenerator != nil { + return prometheusRuleGroupProperties_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroupProperties_STATUS_ARM(generators) + prometheusRuleGroupProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroupProperties_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroupProperties_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForPrometheusRuleGroupProperties_STATUS_ARM(generators) + prometheusRuleGroupProperties_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroupProperties_STATUS_ARM{}), generators) + + return prometheusRuleGroupProperties_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroupProperties_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroupProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["ClusterName"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Interval"] = gen.PtrOf(gen.AlphaString()) + gens["Scopes"] = gen.SliceOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRuleGroupProperties_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRuleGroupProperties_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Rules"] = gen.SliceOf(PrometheusRule_STATUS_ARMGenerator()) +} + +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_PrometheusRule_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 PrometheusRule_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRule_STATUS_ARM, PrometheusRule_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRule_STATUS_ARM runs a test to see if a specific instance of PrometheusRule_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRule_STATUS_ARM(subject PrometheusRule_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRule_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 PrometheusRule_STATUS_ARM instances for property testing - lazily instantiated by +// PrometheusRule_STATUS_ARMGenerator() +var prometheusRule_STATUS_ARMGenerator gopter.Gen + +// PrometheusRule_STATUS_ARMGenerator returns a generator of PrometheusRule_STATUS_ARM instances for property testing. +// We first initialize prometheusRule_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 PrometheusRule_STATUS_ARMGenerator() gopter.Gen { + if prometheusRule_STATUS_ARMGenerator != nil { + return prometheusRule_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule_STATUS_ARM(generators) + prometheusRule_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRule_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForPrometheusRule_STATUS_ARM(generators) + prometheusRule_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRule_STATUS_ARM{}), generators) + + return prometheusRule_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRule_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRule_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Alert"] = gen.PtrOf(gen.AlphaString()) + gens["Annotations"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Expression"] = gen.PtrOf(gen.AlphaString()) + gens["For"] = gen.PtrOf(gen.AlphaString()) + gens["Labels"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Record"] = gen.PtrOf(gen.AlphaString()) + gens["Severity"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRule_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRule_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(PrometheusRuleGroupAction_STATUS_ARMGenerator()) + gens["ResolveConfiguration"] = gen.PtrOf(PrometheusRuleResolveConfiguration_STATUS_ARMGenerator()) +} + +func Test_PrometheusRuleGroupAction_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 PrometheusRuleGroupAction_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroupAction_STATUS_ARM, PrometheusRuleGroupAction_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroupAction_STATUS_ARM runs a test to see if a specific instance of PrometheusRuleGroupAction_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroupAction_STATUS_ARM(subject PrometheusRuleGroupAction_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroupAction_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 PrometheusRuleGroupAction_STATUS_ARM instances for property testing - lazily instantiated by +// PrometheusRuleGroupAction_STATUS_ARMGenerator() +var prometheusRuleGroupAction_STATUS_ARMGenerator gopter.Gen + +// PrometheusRuleGroupAction_STATUS_ARMGenerator returns a generator of PrometheusRuleGroupAction_STATUS_ARM instances for property testing. +func PrometheusRuleGroupAction_STATUS_ARMGenerator() gopter.Gen { + if prometheusRuleGroupAction_STATUS_ARMGenerator != nil { + return prometheusRuleGroupAction_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_STATUS_ARM(generators) + prometheusRuleGroupAction_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroupAction_STATUS_ARM{}), generators) + + return prometheusRuleGroupAction_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_STATUS_ARM(gens map[string]gopter.Gen) { + gens["ActionGroupId"] = gen.PtrOf(gen.AlphaString()) + gens["ActionProperties"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} + +func Test_PrometheusRuleResolveConfiguration_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 PrometheusRuleResolveConfiguration_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleResolveConfiguration_STATUS_ARM, PrometheusRuleResolveConfiguration_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleResolveConfiguration_STATUS_ARM runs a test to see if a specific instance of PrometheusRuleResolveConfiguration_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleResolveConfiguration_STATUS_ARM(subject PrometheusRuleResolveConfiguration_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleResolveConfiguration_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 PrometheusRuleResolveConfiguration_STATUS_ARM instances for property testing - lazily instantiated by +// PrometheusRuleResolveConfiguration_STATUS_ARMGenerator() +var prometheusRuleResolveConfiguration_STATUS_ARMGenerator gopter.Gen + +// PrometheusRuleResolveConfiguration_STATUS_ARMGenerator returns a generator of PrometheusRuleResolveConfiguration_STATUS_ARM instances for property testing. +func PrometheusRuleResolveConfiguration_STATUS_ARMGenerator() gopter.Gen { + if prometheusRuleResolveConfiguration_STATUS_ARMGenerator != nil { + return prometheusRuleResolveConfiguration_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_STATUS_ARM(generators) + prometheusRuleResolveConfiguration_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleResolveConfiguration_STATUS_ARM{}), generators) + + return prometheusRuleResolveConfiguration_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AutoResolved"] = gen.PtrOf(gen.Bool()) + gens["TimeToResolve"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_types_gen.go b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_types_gen.go new file mode 100644 index 00000000000..18bdeef5fe2 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_types_gen.go @@ -0,0 +1,2418 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230301 + +import ( + "fmt" + v20230301s "github.com/Azure/azure-service-operator/v2/api/alertsmanagement/v1api20230301/storage" + "github.com/Azure/azure-service-operator/v2/internal/reflecthelpers" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/conversion" + "sigs.k8s.io/controller-runtime/pkg/webhook/admission" +) + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" +// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message" +// Generator information: +// - Generated from: /alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2023-03-01/PrometheusRuleGroups.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/prometheusRuleGroups/{ruleGroupName} +type PrometheusRuleGroup struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec PrometheusRuleGroup_Spec `json:"spec,omitempty"` + Status PrometheusRuleGroup_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &PrometheusRuleGroup{} + +// GetConditions returns the conditions of the resource +func (group *PrometheusRuleGroup) GetConditions() conditions.Conditions { + return group.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (group *PrometheusRuleGroup) SetConditions(conditions conditions.Conditions) { + group.Status.Conditions = conditions +} + +var _ conversion.Convertible = &PrometheusRuleGroup{} + +// ConvertFrom populates our PrometheusRuleGroup from the provided hub PrometheusRuleGroup +func (group *PrometheusRuleGroup) ConvertFrom(hub conversion.Hub) error { + source, ok := hub.(*v20230301s.PrometheusRuleGroup) + if !ok { + return fmt.Errorf("expected alertsmanagement/v1api20230301/storage/PrometheusRuleGroup but received %T instead", hub) + } + + return group.AssignProperties_From_PrometheusRuleGroup(source) +} + +// ConvertTo populates the provided hub PrometheusRuleGroup from our PrometheusRuleGroup +func (group *PrometheusRuleGroup) ConvertTo(hub conversion.Hub) error { + destination, ok := hub.(*v20230301s.PrometheusRuleGroup) + if !ok { + return fmt.Errorf("expected alertsmanagement/v1api20230301/storage/PrometheusRuleGroup but received %T instead", hub) + } + + return group.AssignProperties_To_PrometheusRuleGroup(destination) +} + +// +kubebuilder:webhook:path=/mutate-alertsmanagement-azure-com-v1api20230301-prometheusrulegroup,mutating=true,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=alertsmanagement.azure.com,resources=prometheusrulegroups,verbs=create;update,versions=v1api20230301,name=default.v1api20230301.prometheusrulegroups.alertsmanagement.azure.com,admissionReviewVersions=v1 + +var _ admission.Defaulter = &PrometheusRuleGroup{} + +// Default applies defaults to the PrometheusRuleGroup resource +func (group *PrometheusRuleGroup) Default() { + group.defaultImpl() + var temp any = group + if runtimeDefaulter, ok := temp.(genruntime.Defaulter); ok { + runtimeDefaulter.CustomDefault() + } +} + +// defaultAzureName defaults the Azure name of the resource to the Kubernetes name +func (group *PrometheusRuleGroup) defaultAzureName() { + if group.Spec.AzureName == "" { + group.Spec.AzureName = group.Name + } +} + +// defaultImpl applies the code generated defaults to the PrometheusRuleGroup resource +func (group *PrometheusRuleGroup) defaultImpl() { group.defaultAzureName() } + +var _ genruntime.ImportableResource = &PrometheusRuleGroup{} + +// InitializeSpec initializes the spec for this resource from the given status +func (group *PrometheusRuleGroup) InitializeSpec(status genruntime.ConvertibleStatus) error { + if s, ok := status.(*PrometheusRuleGroup_STATUS); ok { + return group.Spec.Initialize_From_PrometheusRuleGroup_STATUS(s) + } + + return fmt.Errorf("expected Status of type PrometheusRuleGroup_STATUS but received %T instead", status) +} + +var _ genruntime.KubernetesResource = &PrometheusRuleGroup{} + +// AzureName returns the Azure name of the resource +func (group *PrometheusRuleGroup) AzureName() string { + return group.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-03-01" +func (group PrometheusRuleGroup) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (group *PrometheusRuleGroup) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (group *PrometheusRuleGroup) GetSpec() genruntime.ConvertibleSpec { + return &group.Spec +} + +// GetStatus returns the status of this resource +func (group *PrometheusRuleGroup) GetStatus() genruntime.ConvertibleStatus { + return &group.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (group *PrometheusRuleGroup) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.AlertsManagement/prometheusRuleGroups" +func (group *PrometheusRuleGroup) GetType() string { + return "Microsoft.AlertsManagement/prometheusRuleGroups" +} + +// NewEmptyStatus returns a new empty (blank) status +func (group *PrometheusRuleGroup) NewEmptyStatus() genruntime.ConvertibleStatus { + return &PrometheusRuleGroup_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (group *PrometheusRuleGroup) Owner() *genruntime.ResourceReference { + ownerGroup, ownerKind := genruntime.LookupOwnerGroupKind(group.Spec) + return group.Spec.Owner.AsResourceReference(ownerGroup, ownerKind) +} + +// SetStatus sets the status of this resource +func (group *PrometheusRuleGroup) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*PrometheusRuleGroup_STATUS); ok { + group.Status = *st + return nil + } + + // Convert status to required version + var st PrometheusRuleGroup_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + group.Status = st + return nil +} + +// +kubebuilder:webhook:path=/validate-alertsmanagement-azure-com-v1api20230301-prometheusrulegroup,mutating=false,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=alertsmanagement.azure.com,resources=prometheusrulegroups,verbs=create;update,versions=v1api20230301,name=validate.v1api20230301.prometheusrulegroups.alertsmanagement.azure.com,admissionReviewVersions=v1 + +var _ admission.Validator = &PrometheusRuleGroup{} + +// ValidateCreate validates the creation of the resource +func (group *PrometheusRuleGroup) ValidateCreate() (admission.Warnings, error) { + validations := group.createValidations() + var temp any = group + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.CreateValidations()...) + } + return genruntime.ValidateCreate(validations) +} + +// ValidateDelete validates the deletion of the resource +func (group *PrometheusRuleGroup) ValidateDelete() (admission.Warnings, error) { + validations := group.deleteValidations() + var temp any = group + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.DeleteValidations()...) + } + return genruntime.ValidateDelete(validations) +} + +// ValidateUpdate validates an update of the resource +func (group *PrometheusRuleGroup) ValidateUpdate(old runtime.Object) (admission.Warnings, error) { + validations := group.updateValidations() + var temp any = group + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.UpdateValidations()...) + } + return genruntime.ValidateUpdate(old, validations) +} + +// createValidations validates the creation of the resource +func (group *PrometheusRuleGroup) createValidations() []func() (admission.Warnings, error) { + return []func() (admission.Warnings, error){group.validateResourceReferences, group.validateOwnerReference} +} + +// deleteValidations validates the deletion of the resource +func (group *PrometheusRuleGroup) deleteValidations() []func() (admission.Warnings, error) { + return nil +} + +// updateValidations validates the update of the resource +func (group *PrometheusRuleGroup) updateValidations() []func(old runtime.Object) (admission.Warnings, error) { + return []func(old runtime.Object) (admission.Warnings, error){ + func(old runtime.Object) (admission.Warnings, error) { + return group.validateResourceReferences() + }, + group.validateWriteOnceProperties, + func(old runtime.Object) (admission.Warnings, error) { + return group.validateOwnerReference() + }, + } +} + +// validateOwnerReference validates the owner field +func (group *PrometheusRuleGroup) validateOwnerReference() (admission.Warnings, error) { + return genruntime.ValidateOwner(group) +} + +// validateResourceReferences validates all resource references +func (group *PrometheusRuleGroup) validateResourceReferences() (admission.Warnings, error) { + refs, err := reflecthelpers.FindResourceReferences(&group.Spec) + if err != nil { + return nil, err + } + return genruntime.ValidateResourceReferences(refs) +} + +// validateWriteOnceProperties validates all WriteOnce properties +func (group *PrometheusRuleGroup) validateWriteOnceProperties(old runtime.Object) (admission.Warnings, error) { + oldObj, ok := old.(*PrometheusRuleGroup) + if !ok { + return nil, nil + } + + return genruntime.ValidateWriteOnceProperties(oldObj, group) +} + +// AssignProperties_From_PrometheusRuleGroup populates our PrometheusRuleGroup from the provided source PrometheusRuleGroup +func (group *PrometheusRuleGroup) AssignProperties_From_PrometheusRuleGroup(source *v20230301s.PrometheusRuleGroup) error { + + // ObjectMeta + group.ObjectMeta = *source.ObjectMeta.DeepCopy() + + // Spec + var spec PrometheusRuleGroup_Spec + err := spec.AssignProperties_From_PrometheusRuleGroup_Spec(&source.Spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrometheusRuleGroup_Spec() to populate field Spec") + } + group.Spec = spec + + // Status + var status PrometheusRuleGroup_STATUS + err = status.AssignProperties_From_PrometheusRuleGroup_STATUS(&source.Status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrometheusRuleGroup_STATUS() to populate field Status") + } + group.Status = status + + // No error + return nil +} + +// AssignProperties_To_PrometheusRuleGroup populates the provided destination PrometheusRuleGroup from our PrometheusRuleGroup +func (group *PrometheusRuleGroup) AssignProperties_To_PrometheusRuleGroup(destination *v20230301s.PrometheusRuleGroup) error { + + // ObjectMeta + destination.ObjectMeta = *group.ObjectMeta.DeepCopy() + + // Spec + var spec v20230301s.PrometheusRuleGroup_Spec + err := group.Spec.AssignProperties_To_PrometheusRuleGroup_Spec(&spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrometheusRuleGroup_Spec() to populate field Spec") + } + destination.Spec = spec + + // Status + var status v20230301s.PrometheusRuleGroup_STATUS + err = group.Status.AssignProperties_To_PrometheusRuleGroup_STATUS(&status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrometheusRuleGroup_STATUS() to populate field Status") + } + destination.Status = status + + // No error + return nil +} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (group *PrometheusRuleGroup) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: group.Spec.OriginalVersion(), + Kind: "PrometheusRuleGroup", + } +} + +// +kubebuilder:object:root=true +// Generator information: +// - Generated from: /alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2023-03-01/PrometheusRuleGroups.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/prometheusRuleGroups/{ruleGroupName} +type PrometheusRuleGroupList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PrometheusRuleGroup `json:"items"` +} + +// +kubebuilder:validation:Enum={"2023-03-01"} +type APIVersion string + +const APIVersion_Value = APIVersion("2023-03-01") + +type PrometheusRuleGroup_Spec struct { + // +kubebuilder:validation:Pattern="^[^:@/#{}%&+*<>?]+$" + // 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"` + + // ClusterName: Apply rule to data from a specific cluster. + ClusterName *string `json:"clusterName,omitempty"` + + // Description: Rule group description. + Description *string `json:"description,omitempty"` + + // Enabled: Enable/disable rule group. + Enabled *bool `json:"enabled,omitempty"` + + // Interval: The interval in which to run the Prometheus rule group represented in ISO 8601 duration format. Should be + // between 1 and 15 minutes + Interval *string `json:"interval,omitempty"` + + // +kubebuilder:validation:Required + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a + // reference to a resources.azure.com/ResourceGroup resource + Owner *genruntime.KnownResourceReference `group:"resources.azure.com" json:"owner,omitempty" kind:"ResourceGroup"` + + // +kubebuilder:validation:Required + // Rules: Defines the rules in the Prometheus rule group. + Rules []PrometheusRule `json:"rules,omitempty"` + + // +kubebuilder:validation:Required + // ScopesReferences: Target Azure Monitor workspaces resource ids. This api-version is currently limited to creating with + // one scope. This may change in future. + ScopesReferences []genruntime.ResourceReference `armReference:"Scopes" json:"scopesReferences,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` +} + +var _ genruntime.ARMTransformer = &PrometheusRuleGroup_Spec{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (group *PrometheusRuleGroup_Spec) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if group == nil { + return nil, nil + } + result := &PrometheusRuleGroup_Spec_ARM{} + + // Set property "Location": + if group.Location != nil { + location := *group.Location + result.Location = &location + } + + // Set property "Name": + result.Name = resolved.Name + + // Set property "Properties": + if group.ClusterName != nil || + group.Description != nil || + group.Enabled != nil || + group.Interval != nil || + group.Rules != nil || + group.ScopesReferences != nil { + result.Properties = &PrometheusRuleGroupProperties_ARM{} + } + if group.ClusterName != nil { + clusterName := *group.ClusterName + result.Properties.ClusterName = &clusterName + } + if group.Description != nil { + description := *group.Description + result.Properties.Description = &description + } + if group.Enabled != nil { + enabled := *group.Enabled + result.Properties.Enabled = &enabled + } + if group.Interval != nil { + interval := *group.Interval + result.Properties.Interval = &interval + } + for _, item := range group.Rules { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.Properties.Rules = append(result.Properties.Rules, *item_ARM.(*PrometheusRule_ARM)) + } + for _, item := range group.ScopesReferences { + itemARMID, err := resolved.ResolvedReferences.Lookup(item) + if err != nil { + return nil, err + } + result.Properties.Scopes = append(result.Properties.Scopes, itemARMID) + } + + // Set property "Tags": + if group.Tags != nil { + result.Tags = make(map[string]string, len(group.Tags)) + for key, value := range group.Tags { + result.Tags[key] = value + } + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (group *PrometheusRuleGroup_Spec) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrometheusRuleGroup_Spec_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (group *PrometheusRuleGroup_Spec) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrometheusRuleGroup_Spec_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrometheusRuleGroup_Spec_ARM, got %T", armInput) + } + + // Set property "AzureName": + group.SetAzureName(genruntime.ExtractKubernetesResourceNameFromARMName(typedInput.Name)) + + // Set property "ClusterName": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ClusterName != nil { + clusterName := *typedInput.Properties.ClusterName + group.ClusterName = &clusterName + } + } + + // Set property "Description": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Description != nil { + description := *typedInput.Properties.Description + group.Description = &description + } + } + + // Set property "Enabled": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Enabled != nil { + enabled := *typedInput.Properties.Enabled + group.Enabled = &enabled + } + } + + // Set property "Interval": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Interval != nil { + interval := *typedInput.Properties.Interval + group.Interval = &interval + } + } + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + group.Location = &location + } + + // Set property "Owner": + group.Owner = &genruntime.KnownResourceReference{ + Name: owner.Name, + ARMID: owner.ARMID, + } + + // Set property "Rules": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.Rules { + var item1 PrometheusRule + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + group.Rules = append(group.Rules, item1) + } + } + + // no assignment for property "ScopesReferences" + + // Set property "Tags": + if typedInput.Tags != nil { + group.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + group.Tags[key] = value + } + } + + // No error + return nil +} + +var _ genruntime.ConvertibleSpec = &PrometheusRuleGroup_Spec{} + +// ConvertSpecFrom populates our PrometheusRuleGroup_Spec from the provided source +func (group *PrometheusRuleGroup_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + src, ok := source.(*v20230301s.PrometheusRuleGroup_Spec) + if ok { + // Populate our instance from source + return group.AssignProperties_From_PrometheusRuleGroup_Spec(src) + } + + // Convert to an intermediate form + src = &v20230301s.PrometheusRuleGroup_Spec{} + err := src.ConvertSpecFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecFrom()") + } + + // Update our instance from src + err = group.AssignProperties_From_PrometheusRuleGroup_Spec(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecFrom()") + } + + return nil +} + +// ConvertSpecTo populates the provided destination from our PrometheusRuleGroup_Spec +func (group *PrometheusRuleGroup_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + dst, ok := destination.(*v20230301s.PrometheusRuleGroup_Spec) + if ok { + // Populate destination from our instance + return group.AssignProperties_To_PrometheusRuleGroup_Spec(dst) + } + + // Convert to an intermediate form + dst = &v20230301s.PrometheusRuleGroup_Spec{} + err := group.AssignProperties_To_PrometheusRuleGroup_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_PrometheusRuleGroup_Spec populates our PrometheusRuleGroup_Spec from the provided source PrometheusRuleGroup_Spec +func (group *PrometheusRuleGroup_Spec) AssignProperties_From_PrometheusRuleGroup_Spec(source *v20230301s.PrometheusRuleGroup_Spec) error { + + // AzureName + group.AzureName = source.AzureName + + // ClusterName + group.ClusterName = genruntime.ClonePointerToString(source.ClusterName) + + // Description + group.Description = genruntime.ClonePointerToString(source.Description) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + group.Enabled = &enabled + } else { + group.Enabled = nil + } + + // Interval + group.Interval = genruntime.ClonePointerToString(source.Interval) + + // Location + group.Location = genruntime.ClonePointerToString(source.Location) + + // Owner + if source.Owner != nil { + owner := source.Owner.Copy() + group.Owner = &owner + } else { + group.Owner = nil + } + + // Rules + if source.Rules != nil { + ruleList := make([]PrometheusRule, len(source.Rules)) + for ruleIndex, ruleItem := range source.Rules { + // Shadow the loop variable to avoid aliasing + ruleItem := ruleItem + var rule PrometheusRule + err := rule.AssignProperties_From_PrometheusRule(&ruleItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrometheusRule() to populate field Rules") + } + ruleList[ruleIndex] = rule + } + group.Rules = ruleList + } else { + group.Rules = nil + } + + // ScopesReferences + if source.ScopesReferences != nil { + scopesReferenceList := make([]genruntime.ResourceReference, len(source.ScopesReferences)) + for scopesReferenceIndex, scopesReferenceItem := range source.ScopesReferences { + // Shadow the loop variable to avoid aliasing + scopesReferenceItem := scopesReferenceItem + scopesReferenceList[scopesReferenceIndex] = scopesReferenceItem.Copy() + } + group.ScopesReferences = scopesReferenceList + } else { + group.ScopesReferences = nil + } + + // Tags + group.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // No error + return nil +} + +// AssignProperties_To_PrometheusRuleGroup_Spec populates the provided destination PrometheusRuleGroup_Spec from our PrometheusRuleGroup_Spec +func (group *PrometheusRuleGroup_Spec) AssignProperties_To_PrometheusRuleGroup_Spec(destination *v20230301s.PrometheusRuleGroup_Spec) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AzureName + destination.AzureName = group.AzureName + + // ClusterName + destination.ClusterName = genruntime.ClonePointerToString(group.ClusterName) + + // Description + destination.Description = genruntime.ClonePointerToString(group.Description) + + // Enabled + if group.Enabled != nil { + enabled := *group.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Interval + destination.Interval = genruntime.ClonePointerToString(group.Interval) + + // Location + destination.Location = genruntime.ClonePointerToString(group.Location) + + // OriginalVersion + destination.OriginalVersion = group.OriginalVersion() + + // Owner + if group.Owner != nil { + owner := group.Owner.Copy() + destination.Owner = &owner + } else { + destination.Owner = nil + } + + // Rules + if group.Rules != nil { + ruleList := make([]v20230301s.PrometheusRule, len(group.Rules)) + for ruleIndex, ruleItem := range group.Rules { + // Shadow the loop variable to avoid aliasing + ruleItem := ruleItem + var rule v20230301s.PrometheusRule + err := ruleItem.AssignProperties_To_PrometheusRule(&rule) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrometheusRule() to populate field Rules") + } + ruleList[ruleIndex] = rule + } + destination.Rules = ruleList + } else { + destination.Rules = nil + } + + // ScopesReferences + if group.ScopesReferences != nil { + scopesReferenceList := make([]genruntime.ResourceReference, len(group.ScopesReferences)) + for scopesReferenceIndex, scopesReferenceItem := range group.ScopesReferences { + // Shadow the loop variable to avoid aliasing + scopesReferenceItem := scopesReferenceItem + scopesReferenceList[scopesReferenceIndex] = scopesReferenceItem.Copy() + } + destination.ScopesReferences = scopesReferenceList + } else { + destination.ScopesReferences = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(group.Tags) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_PrometheusRuleGroup_STATUS populates our PrometheusRuleGroup_Spec from the provided source PrometheusRuleGroup_STATUS +func (group *PrometheusRuleGroup_Spec) Initialize_From_PrometheusRuleGroup_STATUS(source *PrometheusRuleGroup_STATUS) error { + + // ClusterName + group.ClusterName = genruntime.ClonePointerToString(source.ClusterName) + + // Description + group.Description = genruntime.ClonePointerToString(source.Description) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + group.Enabled = &enabled + } else { + group.Enabled = nil + } + + // Interval + group.Interval = genruntime.ClonePointerToString(source.Interval) + + // Location + group.Location = genruntime.ClonePointerToString(source.Location) + + // Rules + if source.Rules != nil { + ruleList := make([]PrometheusRule, len(source.Rules)) + for ruleIndex, ruleItem := range source.Rules { + // Shadow the loop variable to avoid aliasing + ruleItem := ruleItem + var rule PrometheusRule + err := rule.Initialize_From_PrometheusRule_STATUS(&ruleItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_PrometheusRule_STATUS() to populate field Rules") + } + ruleList[ruleIndex] = rule + } + group.Rules = ruleList + } else { + group.Rules = nil + } + + // Tags + group.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // No error + return nil +} + +// OriginalVersion returns the original API version used to create the resource. +func (group *PrometheusRuleGroup_Spec) OriginalVersion() string { + return GroupVersion.Version +} + +// SetAzureName sets the Azure name of the resource +func (group *PrometheusRuleGroup_Spec) SetAzureName(azureName string) { group.AzureName = azureName } + +type PrometheusRuleGroup_STATUS struct { + // ClusterName: Apply rule to data from a specific cluster. + ClusterName *string `json:"clusterName,omitempty"` + + // Conditions: The observed state of the resource + Conditions []conditions.Condition `json:"conditions,omitempty"` + + // Description: Rule group description. + Description *string `json:"description,omitempty"` + + // Enabled: Enable/disable rule group. + Enabled *bool `json:"enabled,omitempty"` + + // Id: Fully qualified resource ID for the resource. Ex - + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + Id *string `json:"id,omitempty"` + + // Interval: The interval in which to run the Prometheus rule group represented in ISO 8601 duration format. Should be + // between 1 and 15 minutes + Interval *string `json:"interval,omitempty"` + + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + + // Name: The name of the resource + Name *string `json:"name,omitempty"` + + // Rules: Defines the rules in the Prometheus rule group. + Rules []PrometheusRule_STATUS `json:"rules,omitempty"` + + // Scopes: Target Azure Monitor workspaces resource ids. This api-version is currently limited to creating with one scope. + // This may change in future. + Scopes []string `json:"scopes,omitempty"` + + // SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData_STATUS `json:"systemData,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &PrometheusRuleGroup_STATUS{} + +// ConvertStatusFrom populates our PrometheusRuleGroup_STATUS from the provided source +func (group *PrometheusRuleGroup_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + src, ok := source.(*v20230301s.PrometheusRuleGroup_STATUS) + if ok { + // Populate our instance from source + return group.AssignProperties_From_PrometheusRuleGroup_STATUS(src) + } + + // Convert to an intermediate form + src = &v20230301s.PrometheusRuleGroup_STATUS{} + err := src.ConvertStatusFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusFrom()") + } + + // Update our instance from src + err = group.AssignProperties_From_PrometheusRuleGroup_STATUS(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusFrom()") + } + + return nil +} + +// ConvertStatusTo populates the provided destination from our PrometheusRuleGroup_STATUS +func (group *PrometheusRuleGroup_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + dst, ok := destination.(*v20230301s.PrometheusRuleGroup_STATUS) + if ok { + // Populate destination from our instance + return group.AssignProperties_To_PrometheusRuleGroup_STATUS(dst) + } + + // Convert to an intermediate form + dst = &v20230301s.PrometheusRuleGroup_STATUS{} + err := group.AssignProperties_To_PrometheusRuleGroup_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 = &PrometheusRuleGroup_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (group *PrometheusRuleGroup_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrometheusRuleGroup_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (group *PrometheusRuleGroup_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrometheusRuleGroup_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrometheusRuleGroup_STATUS_ARM, got %T", armInput) + } + + // Set property "ClusterName": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ClusterName != nil { + clusterName := *typedInput.Properties.ClusterName + group.ClusterName = &clusterName + } + } + + // no assignment for property "Conditions" + + // Set property "Description": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Description != nil { + description := *typedInput.Properties.Description + group.Description = &description + } + } + + // Set property "Enabled": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Enabled != nil { + enabled := *typedInput.Properties.Enabled + group.Enabled = &enabled + } + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + group.Id = &id + } + + // Set property "Interval": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Interval != nil { + interval := *typedInput.Properties.Interval + group.Interval = &interval + } + } + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + group.Location = &location + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + group.Name = &name + } + + // Set property "Rules": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.Rules { + var item1 PrometheusRule_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + group.Rules = append(group.Rules, item1) + } + } + + // Set property "Scopes": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.Scopes { + group.Scopes = append(group.Scopes, item) + } + } + + // Set property "SystemData": + if typedInput.SystemData != nil { + var systemData1 SystemData_STATUS + err := systemData1.PopulateFromARM(owner, *typedInput.SystemData) + if err != nil { + return err + } + systemData := systemData1 + group.SystemData = &systemData + } + + // Set property "Tags": + if typedInput.Tags != nil { + group.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + group.Tags[key] = value + } + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + group.Type = &typeVar + } + + // No error + return nil +} + +// AssignProperties_From_PrometheusRuleGroup_STATUS populates our PrometheusRuleGroup_STATUS from the provided source PrometheusRuleGroup_STATUS +func (group *PrometheusRuleGroup_STATUS) AssignProperties_From_PrometheusRuleGroup_STATUS(source *v20230301s.PrometheusRuleGroup_STATUS) error { + + // ClusterName + group.ClusterName = genruntime.ClonePointerToString(source.ClusterName) + + // Conditions + group.Conditions = genruntime.CloneSliceOfCondition(source.Conditions) + + // Description + group.Description = genruntime.ClonePointerToString(source.Description) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + group.Enabled = &enabled + } else { + group.Enabled = nil + } + + // Id + group.Id = genruntime.ClonePointerToString(source.Id) + + // Interval + group.Interval = genruntime.ClonePointerToString(source.Interval) + + // Location + group.Location = genruntime.ClonePointerToString(source.Location) + + // Name + group.Name = genruntime.ClonePointerToString(source.Name) + + // Rules + if source.Rules != nil { + ruleList := make([]PrometheusRule_STATUS, len(source.Rules)) + for ruleIndex, ruleItem := range source.Rules { + // Shadow the loop variable to avoid aliasing + ruleItem := ruleItem + var rule PrometheusRule_STATUS + err := rule.AssignProperties_From_PrometheusRule_STATUS(&ruleItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrometheusRule_STATUS() to populate field Rules") + } + ruleList[ruleIndex] = rule + } + group.Rules = ruleList + } else { + group.Rules = nil + } + + // Scopes + group.Scopes = genruntime.CloneSliceOfString(source.Scopes) + + // 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") + } + group.SystemData = &systemDatum + } else { + group.SystemData = nil + } + + // Tags + group.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + group.Type = genruntime.ClonePointerToString(source.Type) + + // No error + return nil +} + +// AssignProperties_To_PrometheusRuleGroup_STATUS populates the provided destination PrometheusRuleGroup_STATUS from our PrometheusRuleGroup_STATUS +func (group *PrometheusRuleGroup_STATUS) AssignProperties_To_PrometheusRuleGroup_STATUS(destination *v20230301s.PrometheusRuleGroup_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ClusterName + destination.ClusterName = genruntime.ClonePointerToString(group.ClusterName) + + // Conditions + destination.Conditions = genruntime.CloneSliceOfCondition(group.Conditions) + + // Description + destination.Description = genruntime.ClonePointerToString(group.Description) + + // Enabled + if group.Enabled != nil { + enabled := *group.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Id + destination.Id = genruntime.ClonePointerToString(group.Id) + + // Interval + destination.Interval = genruntime.ClonePointerToString(group.Interval) + + // Location + destination.Location = genruntime.ClonePointerToString(group.Location) + + // Name + destination.Name = genruntime.ClonePointerToString(group.Name) + + // Rules + if group.Rules != nil { + ruleList := make([]v20230301s.PrometheusRule_STATUS, len(group.Rules)) + for ruleIndex, ruleItem := range group.Rules { + // Shadow the loop variable to avoid aliasing + ruleItem := ruleItem + var rule v20230301s.PrometheusRule_STATUS + err := ruleItem.AssignProperties_To_PrometheusRule_STATUS(&rule) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrometheusRule_STATUS() to populate field Rules") + } + ruleList[ruleIndex] = rule + } + destination.Rules = ruleList + } else { + destination.Rules = nil + } + + // Scopes + destination.Scopes = genruntime.CloneSliceOfString(group.Scopes) + + // SystemData + if group.SystemData != nil { + var systemDatum v20230301s.SystemData_STATUS + err := group.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(group.Tags) + + // Type + destination.Type = genruntime.ClonePointerToString(group.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// An Azure Prometheus alerting or recording rule. +type PrometheusRule struct { + // Actions: Actions that are performed when the alert rule becomes active, and when an alert condition is resolved. + Actions []PrometheusRuleGroupAction `json:"actions,omitempty"` + + // Alert: Alert rule name. + Alert *string `json:"alert,omitempty"` + + // Annotations: The annotations clause specifies a set of informational labels that can be used to store longer additional + // information such as alert descriptions or runbook links. The annotation values can be templated. + Annotations map[string]string `json:"annotations,omitempty"` + + // Enabled: Enable/disable rule. + Enabled *bool `json:"enabled,omitempty"` + + // +kubebuilder:validation:Required + // Expression: The PromQL expression to evaluate. https://prometheus.io/docs/prometheus/latest/querying/basics/. Evaluated + // periodically as given by 'interval', and the result recorded as a new set of time series with the metric name as given + // by 'record'. + Expression *string `json:"expression,omitempty"` + + // For: The amount of time alert must be active before firing. + For *string `json:"for,omitempty"` + + // Labels: Labels to add or overwrite before storing the result. + Labels map[string]string `json:"labels,omitempty"` + + // Record: Recorded metrics name. + Record *string `json:"record,omitempty"` + + // ResolveConfiguration: Defines the configuration for resolving fired alerts. Only relevant for alerts. + ResolveConfiguration *PrometheusRuleResolveConfiguration `json:"resolveConfiguration,omitempty"` + + // Severity: The severity of the alerts fired by the rule. Must be between 0 and 4. + Severity *int `json:"severity,omitempty"` +} + +var _ genruntime.ARMTransformer = &PrometheusRule{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (rule *PrometheusRule) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if rule == nil { + return nil, nil + } + result := &PrometheusRule_ARM{} + + // Set property "Actions": + for _, item := range rule.Actions { + item_ARM, err := item.ConvertToARM(resolved) + if err != nil { + return nil, err + } + result.Actions = append(result.Actions, *item_ARM.(*PrometheusRuleGroupAction_ARM)) + } + + // Set property "Alert": + if rule.Alert != nil { + alert := *rule.Alert + result.Alert = &alert + } + + // Set property "Annotations": + if rule.Annotations != nil { + result.Annotations = make(map[string]string, len(rule.Annotations)) + for key, value := range rule.Annotations { + result.Annotations[key] = value + } + } + + // Set property "Enabled": + if rule.Enabled != nil { + enabled := *rule.Enabled + result.Enabled = &enabled + } + + // Set property "Expression": + if rule.Expression != nil { + expression := *rule.Expression + result.Expression = &expression + } + + // Set property "For": + if rule.For != nil { + f := *rule.For + result.For = &f + } + + // Set property "Labels": + if rule.Labels != nil { + result.Labels = make(map[string]string, len(rule.Labels)) + for key, value := range rule.Labels { + result.Labels[key] = value + } + } + + // Set property "Record": + if rule.Record != nil { + record := *rule.Record + result.Record = &record + } + + // Set property "ResolveConfiguration": + if rule.ResolveConfiguration != nil { + resolveConfiguration_ARM, err := (*rule.ResolveConfiguration).ConvertToARM(resolved) + if err != nil { + return nil, err + } + resolveConfiguration := *resolveConfiguration_ARM.(*PrometheusRuleResolveConfiguration_ARM) + result.ResolveConfiguration = &resolveConfiguration + } + + // Set property "Severity": + if rule.Severity != nil { + severity := *rule.Severity + result.Severity = &severity + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (rule *PrometheusRule) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrometheusRule_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (rule *PrometheusRule) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrometheusRule_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrometheusRule_ARM, got %T", armInput) + } + + // Set property "Actions": + for _, item := range typedInput.Actions { + var item1 PrometheusRuleGroupAction + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + rule.Actions = append(rule.Actions, item1) + } + + // Set property "Alert": + if typedInput.Alert != nil { + alert := *typedInput.Alert + rule.Alert = &alert + } + + // Set property "Annotations": + if typedInput.Annotations != nil { + rule.Annotations = make(map[string]string, len(typedInput.Annotations)) + for key, value := range typedInput.Annotations { + rule.Annotations[key] = value + } + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + rule.Enabled = &enabled + } + + // Set property "Expression": + if typedInput.Expression != nil { + expression := *typedInput.Expression + rule.Expression = &expression + } + + // Set property "For": + if typedInput.For != nil { + f := *typedInput.For + rule.For = &f + } + + // Set property "Labels": + if typedInput.Labels != nil { + rule.Labels = make(map[string]string, len(typedInput.Labels)) + for key, value := range typedInput.Labels { + rule.Labels[key] = value + } + } + + // Set property "Record": + if typedInput.Record != nil { + record := *typedInput.Record + rule.Record = &record + } + + // Set property "ResolveConfiguration": + if typedInput.ResolveConfiguration != nil { + var resolveConfiguration1 PrometheusRuleResolveConfiguration + err := resolveConfiguration1.PopulateFromARM(owner, *typedInput.ResolveConfiguration) + if err != nil { + return err + } + resolveConfiguration := resolveConfiguration1 + rule.ResolveConfiguration = &resolveConfiguration + } + + // Set property "Severity": + if typedInput.Severity != nil { + severity := *typedInput.Severity + rule.Severity = &severity + } + + // No error + return nil +} + +// AssignProperties_From_PrometheusRule populates our PrometheusRule from the provided source PrometheusRule +func (rule *PrometheusRule) AssignProperties_From_PrometheusRule(source *v20230301s.PrometheusRule) error { + + // Actions + if source.Actions != nil { + actionList := make([]PrometheusRuleGroupAction, len(source.Actions)) + for actionIndex, actionItem := range source.Actions { + // Shadow the loop variable to avoid aliasing + actionItem := actionItem + var action PrometheusRuleGroupAction + err := action.AssignProperties_From_PrometheusRuleGroupAction(&actionItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrometheusRuleGroupAction() to populate field Actions") + } + actionList[actionIndex] = action + } + rule.Actions = actionList + } else { + rule.Actions = nil + } + + // Alert + rule.Alert = genruntime.ClonePointerToString(source.Alert) + + // Annotations + rule.Annotations = genruntime.CloneMapOfStringToString(source.Annotations) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + rule.Enabled = &enabled + } else { + rule.Enabled = nil + } + + // Expression + rule.Expression = genruntime.ClonePointerToString(source.Expression) + + // For + rule.For = genruntime.ClonePointerToString(source.For) + + // Labels + rule.Labels = genruntime.CloneMapOfStringToString(source.Labels) + + // Record + rule.Record = genruntime.ClonePointerToString(source.Record) + + // ResolveConfiguration + if source.ResolveConfiguration != nil { + var resolveConfiguration PrometheusRuleResolveConfiguration + err := resolveConfiguration.AssignProperties_From_PrometheusRuleResolveConfiguration(source.ResolveConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrometheusRuleResolveConfiguration() to populate field ResolveConfiguration") + } + rule.ResolveConfiguration = &resolveConfiguration + } else { + rule.ResolveConfiguration = nil + } + + // Severity + rule.Severity = genruntime.ClonePointerToInt(source.Severity) + + // No error + return nil +} + +// AssignProperties_To_PrometheusRule populates the provided destination PrometheusRule from our PrometheusRule +func (rule *PrometheusRule) AssignProperties_To_PrometheusRule(destination *v20230301s.PrometheusRule) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Actions + if rule.Actions != nil { + actionList := make([]v20230301s.PrometheusRuleGroupAction, len(rule.Actions)) + for actionIndex, actionItem := range rule.Actions { + // Shadow the loop variable to avoid aliasing + actionItem := actionItem + var action v20230301s.PrometheusRuleGroupAction + err := actionItem.AssignProperties_To_PrometheusRuleGroupAction(&action) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrometheusRuleGroupAction() to populate field Actions") + } + actionList[actionIndex] = action + } + destination.Actions = actionList + } else { + destination.Actions = nil + } + + // Alert + destination.Alert = genruntime.ClonePointerToString(rule.Alert) + + // Annotations + destination.Annotations = genruntime.CloneMapOfStringToString(rule.Annotations) + + // Enabled + if rule.Enabled != nil { + enabled := *rule.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Expression + destination.Expression = genruntime.ClonePointerToString(rule.Expression) + + // For + destination.For = genruntime.ClonePointerToString(rule.For) + + // Labels + destination.Labels = genruntime.CloneMapOfStringToString(rule.Labels) + + // Record + destination.Record = genruntime.ClonePointerToString(rule.Record) + + // ResolveConfiguration + if rule.ResolveConfiguration != nil { + var resolveConfiguration v20230301s.PrometheusRuleResolveConfiguration + err := rule.ResolveConfiguration.AssignProperties_To_PrometheusRuleResolveConfiguration(&resolveConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrometheusRuleResolveConfiguration() to populate field ResolveConfiguration") + } + destination.ResolveConfiguration = &resolveConfiguration + } else { + destination.ResolveConfiguration = nil + } + + // Severity + destination.Severity = genruntime.ClonePointerToInt(rule.Severity) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_PrometheusRule_STATUS populates our PrometheusRule from the provided source PrometheusRule_STATUS +func (rule *PrometheusRule) Initialize_From_PrometheusRule_STATUS(source *PrometheusRule_STATUS) error { + + // Actions + if source.Actions != nil { + actionList := make([]PrometheusRuleGroupAction, len(source.Actions)) + for actionIndex, actionItem := range source.Actions { + // Shadow the loop variable to avoid aliasing + actionItem := actionItem + var action PrometheusRuleGroupAction + err := action.Initialize_From_PrometheusRuleGroupAction_STATUS(&actionItem) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_PrometheusRuleGroupAction_STATUS() to populate field Actions") + } + actionList[actionIndex] = action + } + rule.Actions = actionList + } else { + rule.Actions = nil + } + + // Alert + rule.Alert = genruntime.ClonePointerToString(source.Alert) + + // Annotations + rule.Annotations = genruntime.CloneMapOfStringToString(source.Annotations) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + rule.Enabled = &enabled + } else { + rule.Enabled = nil + } + + // Expression + rule.Expression = genruntime.ClonePointerToString(source.Expression) + + // For + rule.For = genruntime.ClonePointerToString(source.For) + + // Labels + rule.Labels = genruntime.CloneMapOfStringToString(source.Labels) + + // Record + rule.Record = genruntime.ClonePointerToString(source.Record) + + // ResolveConfiguration + if source.ResolveConfiguration != nil { + var resolveConfiguration PrometheusRuleResolveConfiguration + err := resolveConfiguration.Initialize_From_PrometheusRuleResolveConfiguration_STATUS(source.ResolveConfiguration) + if err != nil { + return errors.Wrap(err, "calling Initialize_From_PrometheusRuleResolveConfiguration_STATUS() to populate field ResolveConfiguration") + } + rule.ResolveConfiguration = &resolveConfiguration + } else { + rule.ResolveConfiguration = nil + } + + // Severity + rule.Severity = genruntime.ClonePointerToInt(source.Severity) + + // No error + return nil +} + +// An Azure Prometheus alerting or recording rule. +type PrometheusRule_STATUS struct { + // Actions: Actions that are performed when the alert rule becomes active, and when an alert condition is resolved. + Actions []PrometheusRuleGroupAction_STATUS `json:"actions,omitempty"` + + // Alert: Alert rule name. + Alert *string `json:"alert,omitempty"` + + // Annotations: The annotations clause specifies a set of informational labels that can be used to store longer additional + // information such as alert descriptions or runbook links. The annotation values can be templated. + Annotations map[string]string `json:"annotations,omitempty"` + + // Enabled: Enable/disable rule. + Enabled *bool `json:"enabled,omitempty"` + + // Expression: The PromQL expression to evaluate. https://prometheus.io/docs/prometheus/latest/querying/basics/. Evaluated + // periodically as given by 'interval', and the result recorded as a new set of time series with the metric name as given + // by 'record'. + Expression *string `json:"expression,omitempty"` + + // For: The amount of time alert must be active before firing. + For *string `json:"for,omitempty"` + + // Labels: Labels to add or overwrite before storing the result. + Labels map[string]string `json:"labels,omitempty"` + + // Record: Recorded metrics name. + Record *string `json:"record,omitempty"` + + // ResolveConfiguration: Defines the configuration for resolving fired alerts. Only relevant for alerts. + ResolveConfiguration *PrometheusRuleResolveConfiguration_STATUS `json:"resolveConfiguration,omitempty"` + + // Severity: The severity of the alerts fired by the rule. Must be between 0 and 4. + Severity *int `json:"severity,omitempty"` +} + +var _ genruntime.FromARMConverter = &PrometheusRule_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (rule *PrometheusRule_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrometheusRule_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (rule *PrometheusRule_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrometheusRule_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrometheusRule_STATUS_ARM, got %T", armInput) + } + + // Set property "Actions": + for _, item := range typedInput.Actions { + var item1 PrometheusRuleGroupAction_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + rule.Actions = append(rule.Actions, item1) + } + + // Set property "Alert": + if typedInput.Alert != nil { + alert := *typedInput.Alert + rule.Alert = &alert + } + + // Set property "Annotations": + if typedInput.Annotations != nil { + rule.Annotations = make(map[string]string, len(typedInput.Annotations)) + for key, value := range typedInput.Annotations { + rule.Annotations[key] = value + } + } + + // Set property "Enabled": + if typedInput.Enabled != nil { + enabled := *typedInput.Enabled + rule.Enabled = &enabled + } + + // Set property "Expression": + if typedInput.Expression != nil { + expression := *typedInput.Expression + rule.Expression = &expression + } + + // Set property "For": + if typedInput.For != nil { + f := *typedInput.For + rule.For = &f + } + + // Set property "Labels": + if typedInput.Labels != nil { + rule.Labels = make(map[string]string, len(typedInput.Labels)) + for key, value := range typedInput.Labels { + rule.Labels[key] = value + } + } + + // Set property "Record": + if typedInput.Record != nil { + record := *typedInput.Record + rule.Record = &record + } + + // Set property "ResolveConfiguration": + if typedInput.ResolveConfiguration != nil { + var resolveConfiguration1 PrometheusRuleResolveConfiguration_STATUS + err := resolveConfiguration1.PopulateFromARM(owner, *typedInput.ResolveConfiguration) + if err != nil { + return err + } + resolveConfiguration := resolveConfiguration1 + rule.ResolveConfiguration = &resolveConfiguration + } + + // Set property "Severity": + if typedInput.Severity != nil { + severity := *typedInput.Severity + rule.Severity = &severity + } + + // No error + return nil +} + +// AssignProperties_From_PrometheusRule_STATUS populates our PrometheusRule_STATUS from the provided source PrometheusRule_STATUS +func (rule *PrometheusRule_STATUS) AssignProperties_From_PrometheusRule_STATUS(source *v20230301s.PrometheusRule_STATUS) error { + + // Actions + if source.Actions != nil { + actionList := make([]PrometheusRuleGroupAction_STATUS, len(source.Actions)) + for actionIndex, actionItem := range source.Actions { + // Shadow the loop variable to avoid aliasing + actionItem := actionItem + var action PrometheusRuleGroupAction_STATUS + err := action.AssignProperties_From_PrometheusRuleGroupAction_STATUS(&actionItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrometheusRuleGroupAction_STATUS() to populate field Actions") + } + actionList[actionIndex] = action + } + rule.Actions = actionList + } else { + rule.Actions = nil + } + + // Alert + rule.Alert = genruntime.ClonePointerToString(source.Alert) + + // Annotations + rule.Annotations = genruntime.CloneMapOfStringToString(source.Annotations) + + // Enabled + if source.Enabled != nil { + enabled := *source.Enabled + rule.Enabled = &enabled + } else { + rule.Enabled = nil + } + + // Expression + rule.Expression = genruntime.ClonePointerToString(source.Expression) + + // For + rule.For = genruntime.ClonePointerToString(source.For) + + // Labels + rule.Labels = genruntime.CloneMapOfStringToString(source.Labels) + + // Record + rule.Record = genruntime.ClonePointerToString(source.Record) + + // ResolveConfiguration + if source.ResolveConfiguration != nil { + var resolveConfiguration PrometheusRuleResolveConfiguration_STATUS + err := resolveConfiguration.AssignProperties_From_PrometheusRuleResolveConfiguration_STATUS(source.ResolveConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrometheusRuleResolveConfiguration_STATUS() to populate field ResolveConfiguration") + } + rule.ResolveConfiguration = &resolveConfiguration + } else { + rule.ResolveConfiguration = nil + } + + // Severity + rule.Severity = genruntime.ClonePointerToInt(source.Severity) + + // No error + return nil +} + +// AssignProperties_To_PrometheusRule_STATUS populates the provided destination PrometheusRule_STATUS from our PrometheusRule_STATUS +func (rule *PrometheusRule_STATUS) AssignProperties_To_PrometheusRule_STATUS(destination *v20230301s.PrometheusRule_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Actions + if rule.Actions != nil { + actionList := make([]v20230301s.PrometheusRuleGroupAction_STATUS, len(rule.Actions)) + for actionIndex, actionItem := range rule.Actions { + // Shadow the loop variable to avoid aliasing + actionItem := actionItem + var action v20230301s.PrometheusRuleGroupAction_STATUS + err := actionItem.AssignProperties_To_PrometheusRuleGroupAction_STATUS(&action) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrometheusRuleGroupAction_STATUS() to populate field Actions") + } + actionList[actionIndex] = action + } + destination.Actions = actionList + } else { + destination.Actions = nil + } + + // Alert + destination.Alert = genruntime.ClonePointerToString(rule.Alert) + + // Annotations + destination.Annotations = genruntime.CloneMapOfStringToString(rule.Annotations) + + // Enabled + if rule.Enabled != nil { + enabled := *rule.Enabled + destination.Enabled = &enabled + } else { + destination.Enabled = nil + } + + // Expression + destination.Expression = genruntime.ClonePointerToString(rule.Expression) + + // For + destination.For = genruntime.ClonePointerToString(rule.For) + + // Labels + destination.Labels = genruntime.CloneMapOfStringToString(rule.Labels) + + // Record + destination.Record = genruntime.ClonePointerToString(rule.Record) + + // ResolveConfiguration + if rule.ResolveConfiguration != nil { + var resolveConfiguration v20230301s.PrometheusRuleResolveConfiguration_STATUS + err := rule.ResolveConfiguration.AssignProperties_To_PrometheusRuleResolveConfiguration_STATUS(&resolveConfiguration) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrometheusRuleResolveConfiguration_STATUS() to populate field ResolveConfiguration") + } + destination.ResolveConfiguration = &resolveConfiguration + } else { + destination.ResolveConfiguration = nil + } + + // Severity + destination.Severity = genruntime.ClonePointerToInt(rule.Severity) + + // 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 *v20230301s.SystemData_STATUS) error { + + // CreatedAt + data.CreatedAt = genruntime.ClonePointerToString(source.CreatedAt) + + // CreatedBy + data.CreatedBy = genruntime.ClonePointerToString(source.CreatedBy) + + // CreatedByType + if source.CreatedByType != nil { + createdByType := *source.CreatedByType + createdByTypeTemp := genruntime.ToEnum(createdByType, systemData_CreatedByType_STATUS_Values) + data.CreatedByType = &createdByTypeTemp + } else { + data.CreatedByType = nil + } + + // LastModifiedAt + data.LastModifiedAt = genruntime.ClonePointerToString(source.LastModifiedAt) + + // LastModifiedBy + data.LastModifiedBy = genruntime.ClonePointerToString(source.LastModifiedBy) + + // LastModifiedByType + if source.LastModifiedByType != nil { + lastModifiedByType := *source.LastModifiedByType + lastModifiedByTypeTemp := genruntime.ToEnum(lastModifiedByType, systemData_LastModifiedByType_STATUS_Values) + data.LastModifiedByType = &lastModifiedByTypeTemp + } 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 *v20230301s.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 +} + +// An alert action. Only relevant for alerts. +type PrometheusRuleGroupAction struct { + // ActionGroupReference: The resource id of the action group to use. + ActionGroupReference *genruntime.ResourceReference `armReference:"ActionGroupId" json:"actionGroupReference,omitempty"` + + // ActionProperties: The properties of an action group object. + ActionProperties map[string]string `json:"actionProperties,omitempty"` +} + +var _ genruntime.ARMTransformer = &PrometheusRuleGroupAction{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (action *PrometheusRuleGroupAction) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if action == nil { + return nil, nil + } + result := &PrometheusRuleGroupAction_ARM{} + + // Set property "ActionGroupId": + if action.ActionGroupReference != nil { + actionGroupReferenceARMID, err := resolved.ResolvedReferences.Lookup(*action.ActionGroupReference) + if err != nil { + return nil, err + } + actionGroupReference := actionGroupReferenceARMID + result.ActionGroupId = &actionGroupReference + } + + // Set property "ActionProperties": + if action.ActionProperties != nil { + result.ActionProperties = make(map[string]string, len(action.ActionProperties)) + for key, value := range action.ActionProperties { + result.ActionProperties[key] = value + } + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (action *PrometheusRuleGroupAction) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrometheusRuleGroupAction_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (action *PrometheusRuleGroupAction) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrometheusRuleGroupAction_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrometheusRuleGroupAction_ARM, got %T", armInput) + } + + // no assignment for property "ActionGroupReference" + + // Set property "ActionProperties": + if typedInput.ActionProperties != nil { + action.ActionProperties = make(map[string]string, len(typedInput.ActionProperties)) + for key, value := range typedInput.ActionProperties { + action.ActionProperties[key] = value + } + } + + // No error + return nil +} + +// AssignProperties_From_PrometheusRuleGroupAction populates our PrometheusRuleGroupAction from the provided source PrometheusRuleGroupAction +func (action *PrometheusRuleGroupAction) AssignProperties_From_PrometheusRuleGroupAction(source *v20230301s.PrometheusRuleGroupAction) error { + + // ActionGroupReference + if source.ActionGroupReference != nil { + actionGroupReference := source.ActionGroupReference.Copy() + action.ActionGroupReference = &actionGroupReference + } else { + action.ActionGroupReference = nil + } + + // ActionProperties + action.ActionProperties = genruntime.CloneMapOfStringToString(source.ActionProperties) + + // No error + return nil +} + +// AssignProperties_To_PrometheusRuleGroupAction populates the provided destination PrometheusRuleGroupAction from our PrometheusRuleGroupAction +func (action *PrometheusRuleGroupAction) AssignProperties_To_PrometheusRuleGroupAction(destination *v20230301s.PrometheusRuleGroupAction) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ActionGroupReference + if action.ActionGroupReference != nil { + actionGroupReference := action.ActionGroupReference.Copy() + destination.ActionGroupReference = &actionGroupReference + } else { + destination.ActionGroupReference = nil + } + + // ActionProperties + destination.ActionProperties = genruntime.CloneMapOfStringToString(action.ActionProperties) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_PrometheusRuleGroupAction_STATUS populates our PrometheusRuleGroupAction from the provided source PrometheusRuleGroupAction_STATUS +func (action *PrometheusRuleGroupAction) Initialize_From_PrometheusRuleGroupAction_STATUS(source *PrometheusRuleGroupAction_STATUS) error { + + // ActionGroupReference + if source.ActionGroupId != nil { + actionGroupReference := genruntime.CreateResourceReferenceFromARMID(*source.ActionGroupId) + action.ActionGroupReference = &actionGroupReference + } else { + action.ActionGroupReference = nil + } + + // ActionProperties + action.ActionProperties = genruntime.CloneMapOfStringToString(source.ActionProperties) + + // No error + return nil +} + +// An alert action. Only relevant for alerts. +type PrometheusRuleGroupAction_STATUS struct { + // ActionGroupId: The resource id of the action group to use. + ActionGroupId *string `json:"actionGroupId,omitempty"` + + // ActionProperties: The properties of an action group object. + ActionProperties map[string]string `json:"actionProperties,omitempty"` +} + +var _ genruntime.FromARMConverter = &PrometheusRuleGroupAction_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (action *PrometheusRuleGroupAction_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrometheusRuleGroupAction_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (action *PrometheusRuleGroupAction_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrometheusRuleGroupAction_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrometheusRuleGroupAction_STATUS_ARM, got %T", armInput) + } + + // Set property "ActionGroupId": + if typedInput.ActionGroupId != nil { + actionGroupId := *typedInput.ActionGroupId + action.ActionGroupId = &actionGroupId + } + + // Set property "ActionProperties": + if typedInput.ActionProperties != nil { + action.ActionProperties = make(map[string]string, len(typedInput.ActionProperties)) + for key, value := range typedInput.ActionProperties { + action.ActionProperties[key] = value + } + } + + // No error + return nil +} + +// AssignProperties_From_PrometheusRuleGroupAction_STATUS populates our PrometheusRuleGroupAction_STATUS from the provided source PrometheusRuleGroupAction_STATUS +func (action *PrometheusRuleGroupAction_STATUS) AssignProperties_From_PrometheusRuleGroupAction_STATUS(source *v20230301s.PrometheusRuleGroupAction_STATUS) error { + + // ActionGroupId + action.ActionGroupId = genruntime.ClonePointerToString(source.ActionGroupId) + + // ActionProperties + action.ActionProperties = genruntime.CloneMapOfStringToString(source.ActionProperties) + + // No error + return nil +} + +// AssignProperties_To_PrometheusRuleGroupAction_STATUS populates the provided destination PrometheusRuleGroupAction_STATUS from our PrometheusRuleGroupAction_STATUS +func (action *PrometheusRuleGroupAction_STATUS) AssignProperties_To_PrometheusRuleGroupAction_STATUS(destination *v20230301s.PrometheusRuleGroupAction_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // ActionGroupId + destination.ActionGroupId = genruntime.ClonePointerToString(action.ActionGroupId) + + // ActionProperties + destination.ActionProperties = genruntime.CloneMapOfStringToString(action.ActionProperties) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Specifies the Prometheus alert rule configuration. +type PrometheusRuleResolveConfiguration struct { + // AutoResolved: Enable alert auto-resolution. + AutoResolved *bool `json:"autoResolved,omitempty"` + + // TimeToResolve: Alert auto-resolution timeout. + TimeToResolve *string `json:"timeToResolve,omitempty"` +} + +var _ genruntime.ARMTransformer = &PrometheusRuleResolveConfiguration{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (configuration *PrometheusRuleResolveConfiguration) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if configuration == nil { + return nil, nil + } + result := &PrometheusRuleResolveConfiguration_ARM{} + + // Set property "AutoResolved": + if configuration.AutoResolved != nil { + autoResolved := *configuration.AutoResolved + result.AutoResolved = &autoResolved + } + + // Set property "TimeToResolve": + if configuration.TimeToResolve != nil { + timeToResolve := *configuration.TimeToResolve + result.TimeToResolve = &timeToResolve + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (configuration *PrometheusRuleResolveConfiguration) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrometheusRuleResolveConfiguration_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (configuration *PrometheusRuleResolveConfiguration) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrometheusRuleResolveConfiguration_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrometheusRuleResolveConfiguration_ARM, got %T", armInput) + } + + // Set property "AutoResolved": + if typedInput.AutoResolved != nil { + autoResolved := *typedInput.AutoResolved + configuration.AutoResolved = &autoResolved + } + + // Set property "TimeToResolve": + if typedInput.TimeToResolve != nil { + timeToResolve := *typedInput.TimeToResolve + configuration.TimeToResolve = &timeToResolve + } + + // No error + return nil +} + +// AssignProperties_From_PrometheusRuleResolveConfiguration populates our PrometheusRuleResolveConfiguration from the provided source PrometheusRuleResolveConfiguration +func (configuration *PrometheusRuleResolveConfiguration) AssignProperties_From_PrometheusRuleResolveConfiguration(source *v20230301s.PrometheusRuleResolveConfiguration) error { + + // AutoResolved + if source.AutoResolved != nil { + autoResolved := *source.AutoResolved + configuration.AutoResolved = &autoResolved + } else { + configuration.AutoResolved = nil + } + + // TimeToResolve + configuration.TimeToResolve = genruntime.ClonePointerToString(source.TimeToResolve) + + // No error + return nil +} + +// AssignProperties_To_PrometheusRuleResolveConfiguration populates the provided destination PrometheusRuleResolveConfiguration from our PrometheusRuleResolveConfiguration +func (configuration *PrometheusRuleResolveConfiguration) AssignProperties_To_PrometheusRuleResolveConfiguration(destination *v20230301s.PrometheusRuleResolveConfiguration) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AutoResolved + if configuration.AutoResolved != nil { + autoResolved := *configuration.AutoResolved + destination.AutoResolved = &autoResolved + } else { + destination.AutoResolved = nil + } + + // TimeToResolve + destination.TimeToResolve = genruntime.ClonePointerToString(configuration.TimeToResolve) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_PrometheusRuleResolveConfiguration_STATUS populates our PrometheusRuleResolveConfiguration from the provided source PrometheusRuleResolveConfiguration_STATUS +func (configuration *PrometheusRuleResolveConfiguration) Initialize_From_PrometheusRuleResolveConfiguration_STATUS(source *PrometheusRuleResolveConfiguration_STATUS) error { + + // AutoResolved + if source.AutoResolved != nil { + autoResolved := *source.AutoResolved + configuration.AutoResolved = &autoResolved + } else { + configuration.AutoResolved = nil + } + + // TimeToResolve + configuration.TimeToResolve = genruntime.ClonePointerToString(source.TimeToResolve) + + // No error + return nil +} + +// Specifies the Prometheus alert rule configuration. +type PrometheusRuleResolveConfiguration_STATUS struct { + // AutoResolved: Enable alert auto-resolution. + AutoResolved *bool `json:"autoResolved,omitempty"` + + // TimeToResolve: Alert auto-resolution timeout. + TimeToResolve *string `json:"timeToResolve,omitempty"` +} + +var _ genruntime.FromARMConverter = &PrometheusRuleResolveConfiguration_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (configuration *PrometheusRuleResolveConfiguration_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrometheusRuleResolveConfiguration_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (configuration *PrometheusRuleResolveConfiguration_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrometheusRuleResolveConfiguration_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrometheusRuleResolveConfiguration_STATUS_ARM, got %T", armInput) + } + + // Set property "AutoResolved": + if typedInput.AutoResolved != nil { + autoResolved := *typedInput.AutoResolved + configuration.AutoResolved = &autoResolved + } + + // Set property "TimeToResolve": + if typedInput.TimeToResolve != nil { + timeToResolve := *typedInput.TimeToResolve + configuration.TimeToResolve = &timeToResolve + } + + // No error + return nil +} + +// AssignProperties_From_PrometheusRuleResolveConfiguration_STATUS populates our PrometheusRuleResolveConfiguration_STATUS from the provided source PrometheusRuleResolveConfiguration_STATUS +func (configuration *PrometheusRuleResolveConfiguration_STATUS) AssignProperties_From_PrometheusRuleResolveConfiguration_STATUS(source *v20230301s.PrometheusRuleResolveConfiguration_STATUS) error { + + // AutoResolved + if source.AutoResolved != nil { + autoResolved := *source.AutoResolved + configuration.AutoResolved = &autoResolved + } else { + configuration.AutoResolved = nil + } + + // TimeToResolve + configuration.TimeToResolve = genruntime.ClonePointerToString(source.TimeToResolve) + + // No error + return nil +} + +// AssignProperties_To_PrometheusRuleResolveConfiguration_STATUS populates the provided destination PrometheusRuleResolveConfiguration_STATUS from our PrometheusRuleResolveConfiguration_STATUS +func (configuration *PrometheusRuleResolveConfiguration_STATUS) AssignProperties_To_PrometheusRuleResolveConfiguration_STATUS(destination *v20230301s.PrometheusRuleResolveConfiguration_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AutoResolved + if configuration.AutoResolved != nil { + autoResolved := *configuration.AutoResolved + destination.AutoResolved = &autoResolved + } else { + destination.AutoResolved = nil + } + + // TimeToResolve + destination.TimeToResolve = genruntime.ClonePointerToString(configuration.TimeToResolve) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +func init() { + SchemeBuilder.Register(&PrometheusRuleGroup{}, &PrometheusRuleGroupList{}) +} diff --git a/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_types_gen_test.go b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_types_gen_test.go new file mode 100644 index 00000000000..c7c431fc023 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/prometheus_rule_group_types_gen_test.go @@ -0,0 +1,1211 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230301 + +import ( + "encoding/json" + v20230301s "github.com/Azure/azure-service-operator/v2/api/alertsmanagement/v1api20230301/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_PrometheusRuleGroup_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 PrometheusRuleGroup to hub returns original", + prop.ForAll(RunResourceConversionTestForPrometheusRuleGroup, PrometheusRuleGroupGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunResourceConversionTestForPrometheusRuleGroup tests if a specific instance of PrometheusRuleGroup round trips to the hub storage version and back losslessly +func RunResourceConversionTestForPrometheusRuleGroup(subject PrometheusRuleGroup) string { + // Copy subject to make sure conversion doesn't modify it + copied := subject.DeepCopy() + + // Convert to our hub version + var hub v20230301s.PrometheusRuleGroup + err := copied.ConvertTo(&hub) + if err != nil { + return err.Error() + } + + // Convert from our hub version + var actual PrometheusRuleGroup + 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_PrometheusRuleGroup_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrometheusRuleGroup to PrometheusRuleGroup via AssignProperties_To_PrometheusRuleGroup & AssignProperties_From_PrometheusRuleGroup returns original", + prop.ForAll(RunPropertyAssignmentTestForPrometheusRuleGroup, PrometheusRuleGroupGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrometheusRuleGroup tests if a specific instance of PrometheusRuleGroup can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrometheusRuleGroup(subject PrometheusRuleGroup) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230301s.PrometheusRuleGroup + err := copied.AssignProperties_To_PrometheusRuleGroup(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrometheusRuleGroup + err = actual.AssignProperties_From_PrometheusRuleGroup(&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_PrometheusRuleGroup_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 PrometheusRuleGroup via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroup, PrometheusRuleGroupGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroup runs a test to see if a specific instance of PrometheusRuleGroup round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroup(subject PrometheusRuleGroup) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroup + 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 PrometheusRuleGroup instances for property testing - lazily instantiated by +// PrometheusRuleGroupGenerator() +var prometheusRuleGroupGenerator gopter.Gen + +// PrometheusRuleGroupGenerator returns a generator of PrometheusRuleGroup instances for property testing. +func PrometheusRuleGroupGenerator() gopter.Gen { + if prometheusRuleGroupGenerator != nil { + return prometheusRuleGroupGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForPrometheusRuleGroup(generators) + prometheusRuleGroupGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup{}), generators) + + return prometheusRuleGroupGenerator +} + +// AddRelatedPropertyGeneratorsForPrometheusRuleGroup is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRuleGroup(gens map[string]gopter.Gen) { + gens["Spec"] = PrometheusRuleGroup_SpecGenerator() + gens["Status"] = PrometheusRuleGroup_STATUSGenerator() +} + +func Test_PrometheusRuleGroup_Spec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrometheusRuleGroup_Spec to PrometheusRuleGroup_Spec via AssignProperties_To_PrometheusRuleGroup_Spec & AssignProperties_From_PrometheusRuleGroup_Spec returns original", + prop.ForAll(RunPropertyAssignmentTestForPrometheusRuleGroup_Spec, PrometheusRuleGroup_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrometheusRuleGroup_Spec tests if a specific instance of PrometheusRuleGroup_Spec can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrometheusRuleGroup_Spec(subject PrometheusRuleGroup_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 v20230301s.PrometheusRuleGroup_Spec + err := copied.AssignProperties_To_PrometheusRuleGroup_Spec(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrometheusRuleGroup_Spec + err = actual.AssignProperties_From_PrometheusRuleGroup_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_PrometheusRuleGroup_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 PrometheusRuleGroup_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroup_Spec, PrometheusRuleGroup_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroup_Spec runs a test to see if a specific instance of PrometheusRuleGroup_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroup_Spec(subject PrometheusRuleGroup_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroup_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 PrometheusRuleGroup_Spec instances for property testing - lazily instantiated by +// PrometheusRuleGroup_SpecGenerator() +var prometheusRuleGroup_SpecGenerator gopter.Gen + +// PrometheusRuleGroup_SpecGenerator returns a generator of PrometheusRuleGroup_Spec instances for property testing. +// We first initialize prometheusRuleGroup_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 PrometheusRuleGroup_SpecGenerator() gopter.Gen { + if prometheusRuleGroup_SpecGenerator != nil { + return prometheusRuleGroup_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_Spec(generators) + prometheusRuleGroup_SpecGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_Spec{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_Spec(generators) + AddRelatedPropertyGeneratorsForPrometheusRuleGroup_Spec(generators) + prometheusRuleGroup_SpecGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_Spec{}), generators) + + return prometheusRuleGroup_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroup_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroup_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["ClusterName"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Interval"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRuleGroup_Spec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRuleGroup_Spec(gens map[string]gopter.Gen) { + gens["Rules"] = gen.SliceOf(PrometheusRuleGenerator()) +} + +func Test_PrometheusRuleGroup_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrometheusRuleGroup_STATUS to PrometheusRuleGroup_STATUS via AssignProperties_To_PrometheusRuleGroup_STATUS & AssignProperties_From_PrometheusRuleGroup_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPrometheusRuleGroup_STATUS, PrometheusRuleGroup_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrometheusRuleGroup_STATUS tests if a specific instance of PrometheusRuleGroup_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrometheusRuleGroup_STATUS(subject PrometheusRuleGroup_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 v20230301s.PrometheusRuleGroup_STATUS + err := copied.AssignProperties_To_PrometheusRuleGroup_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrometheusRuleGroup_STATUS + err = actual.AssignProperties_From_PrometheusRuleGroup_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_PrometheusRuleGroup_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 PrometheusRuleGroup_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroup_STATUS, PrometheusRuleGroup_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroup_STATUS runs a test to see if a specific instance of PrometheusRuleGroup_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroup_STATUS(subject PrometheusRuleGroup_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroup_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 PrometheusRuleGroup_STATUS instances for property testing - lazily instantiated by +// PrometheusRuleGroup_STATUSGenerator() +var prometheusRuleGroup_STATUSGenerator gopter.Gen + +// PrometheusRuleGroup_STATUSGenerator returns a generator of PrometheusRuleGroup_STATUS instances for property testing. +// We first initialize prometheusRuleGroup_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 PrometheusRuleGroup_STATUSGenerator() gopter.Gen { + if prometheusRuleGroup_STATUSGenerator != nil { + return prometheusRuleGroup_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS(generators) + prometheusRuleGroup_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS(generators) + AddRelatedPropertyGeneratorsForPrometheusRuleGroup_STATUS(generators) + prometheusRuleGroup_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_STATUS{}), generators) + + return prometheusRuleGroup_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS(gens map[string]gopter.Gen) { + gens["ClusterName"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Interval"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Scopes"] = gen.SliceOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRuleGroup_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRuleGroup_STATUS(gens map[string]gopter.Gen) { + gens["Rules"] = gen.SliceOf(PrometheusRule_STATUSGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUSGenerator()) +} + +func Test_PrometheusRule_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrometheusRule to PrometheusRule via AssignProperties_To_PrometheusRule & AssignProperties_From_PrometheusRule returns original", + prop.ForAll(RunPropertyAssignmentTestForPrometheusRule, PrometheusRuleGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrometheusRule tests if a specific instance of PrometheusRule can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrometheusRule(subject PrometheusRule) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230301s.PrometheusRule + err := copied.AssignProperties_To_PrometheusRule(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrometheusRule + err = actual.AssignProperties_From_PrometheusRule(&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_PrometheusRule_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 PrometheusRule via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRule, PrometheusRuleGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRule runs a test to see if a specific instance of PrometheusRule round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRule(subject PrometheusRule) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRule + 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 PrometheusRule instances for property testing - lazily instantiated by PrometheusRuleGenerator() +var prometheusRuleGenerator gopter.Gen + +// PrometheusRuleGenerator returns a generator of PrometheusRule instances for property testing. +// We first initialize prometheusRuleGenerator 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 PrometheusRuleGenerator() gopter.Gen { + if prometheusRuleGenerator != nil { + return prometheusRuleGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule(generators) + prometheusRuleGenerator = gen.Struct(reflect.TypeOf(PrometheusRule{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule(generators) + AddRelatedPropertyGeneratorsForPrometheusRule(generators) + prometheusRuleGenerator = gen.Struct(reflect.TypeOf(PrometheusRule{}), generators) + + return prometheusRuleGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRule is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRule(gens map[string]gopter.Gen) { + gens["Alert"] = gen.PtrOf(gen.AlphaString()) + gens["Annotations"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Expression"] = gen.PtrOf(gen.AlphaString()) + gens["For"] = gen.PtrOf(gen.AlphaString()) + gens["Labels"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Record"] = gen.PtrOf(gen.AlphaString()) + gens["Severity"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRule is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRule(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(PrometheusRuleGroupActionGenerator()) + gens["ResolveConfiguration"] = gen.PtrOf(PrometheusRuleResolveConfigurationGenerator()) +} + +func Test_PrometheusRule_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrometheusRule_STATUS to PrometheusRule_STATUS via AssignProperties_To_PrometheusRule_STATUS & AssignProperties_From_PrometheusRule_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPrometheusRule_STATUS, PrometheusRule_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrometheusRule_STATUS tests if a specific instance of PrometheusRule_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrometheusRule_STATUS(subject PrometheusRule_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 v20230301s.PrometheusRule_STATUS + err := copied.AssignProperties_To_PrometheusRule_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrometheusRule_STATUS + err = actual.AssignProperties_From_PrometheusRule_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_PrometheusRule_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 PrometheusRule_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRule_STATUS, PrometheusRule_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRule_STATUS runs a test to see if a specific instance of PrometheusRule_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRule_STATUS(subject PrometheusRule_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRule_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 PrometheusRule_STATUS instances for property testing - lazily instantiated by +// PrometheusRule_STATUSGenerator() +var prometheusRule_STATUSGenerator gopter.Gen + +// PrometheusRule_STATUSGenerator returns a generator of PrometheusRule_STATUS instances for property testing. +// We first initialize prometheusRule_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 PrometheusRule_STATUSGenerator() gopter.Gen { + if prometheusRule_STATUSGenerator != nil { + return prometheusRule_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule_STATUS(generators) + prometheusRule_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRule_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule_STATUS(generators) + AddRelatedPropertyGeneratorsForPrometheusRule_STATUS(generators) + prometheusRule_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRule_STATUS{}), generators) + + return prometheusRule_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRule_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRule_STATUS(gens map[string]gopter.Gen) { + gens["Alert"] = gen.PtrOf(gen.AlphaString()) + gens["Annotations"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Expression"] = gen.PtrOf(gen.AlphaString()) + gens["For"] = gen.PtrOf(gen.AlphaString()) + gens["Labels"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Record"] = gen.PtrOf(gen.AlphaString()) + gens["Severity"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRule_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRule_STATUS(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(PrometheusRuleGroupAction_STATUSGenerator()) + gens["ResolveConfiguration"] = gen.PtrOf(PrometheusRuleResolveConfiguration_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 storage 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 v20230301s.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_PrometheusRuleGroupAction_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrometheusRuleGroupAction to PrometheusRuleGroupAction via AssignProperties_To_PrometheusRuleGroupAction & AssignProperties_From_PrometheusRuleGroupAction returns original", + prop.ForAll(RunPropertyAssignmentTestForPrometheusRuleGroupAction, PrometheusRuleGroupActionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrometheusRuleGroupAction tests if a specific instance of PrometheusRuleGroupAction can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrometheusRuleGroupAction(subject PrometheusRuleGroupAction) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230301s.PrometheusRuleGroupAction + err := copied.AssignProperties_To_PrometheusRuleGroupAction(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrometheusRuleGroupAction + err = actual.AssignProperties_From_PrometheusRuleGroupAction(&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_PrometheusRuleGroupAction_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 PrometheusRuleGroupAction via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroupAction, PrometheusRuleGroupActionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroupAction runs a test to see if a specific instance of PrometheusRuleGroupAction round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroupAction(subject PrometheusRuleGroupAction) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroupAction + 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 PrometheusRuleGroupAction instances for property testing - lazily instantiated by +// PrometheusRuleGroupActionGenerator() +var prometheusRuleGroupActionGenerator gopter.Gen + +// PrometheusRuleGroupActionGenerator returns a generator of PrometheusRuleGroupAction instances for property testing. +func PrometheusRuleGroupActionGenerator() gopter.Gen { + if prometheusRuleGroupActionGenerator != nil { + return prometheusRuleGroupActionGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction(generators) + prometheusRuleGroupActionGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroupAction{}), generators) + + return prometheusRuleGroupActionGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction(gens map[string]gopter.Gen) { + gens["ActionProperties"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} + +func Test_PrometheusRuleGroupAction_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrometheusRuleGroupAction_STATUS to PrometheusRuleGroupAction_STATUS via AssignProperties_To_PrometheusRuleGroupAction_STATUS & AssignProperties_From_PrometheusRuleGroupAction_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPrometheusRuleGroupAction_STATUS, PrometheusRuleGroupAction_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrometheusRuleGroupAction_STATUS tests if a specific instance of PrometheusRuleGroupAction_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrometheusRuleGroupAction_STATUS(subject PrometheusRuleGroupAction_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 v20230301s.PrometheusRuleGroupAction_STATUS + err := copied.AssignProperties_To_PrometheusRuleGroupAction_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrometheusRuleGroupAction_STATUS + err = actual.AssignProperties_From_PrometheusRuleGroupAction_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_PrometheusRuleGroupAction_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 PrometheusRuleGroupAction_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroupAction_STATUS, PrometheusRuleGroupAction_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroupAction_STATUS runs a test to see if a specific instance of PrometheusRuleGroupAction_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroupAction_STATUS(subject PrometheusRuleGroupAction_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroupAction_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 PrometheusRuleGroupAction_STATUS instances for property testing - lazily instantiated by +// PrometheusRuleGroupAction_STATUSGenerator() +var prometheusRuleGroupAction_STATUSGenerator gopter.Gen + +// PrometheusRuleGroupAction_STATUSGenerator returns a generator of PrometheusRuleGroupAction_STATUS instances for property testing. +func PrometheusRuleGroupAction_STATUSGenerator() gopter.Gen { + if prometheusRuleGroupAction_STATUSGenerator != nil { + return prometheusRuleGroupAction_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_STATUS(generators) + prometheusRuleGroupAction_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroupAction_STATUS{}), generators) + + return prometheusRuleGroupAction_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_STATUS(gens map[string]gopter.Gen) { + gens["ActionGroupId"] = gen.PtrOf(gen.AlphaString()) + gens["ActionProperties"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} + +func Test_PrometheusRuleResolveConfiguration_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrometheusRuleResolveConfiguration to PrometheusRuleResolveConfiguration via AssignProperties_To_PrometheusRuleResolveConfiguration & AssignProperties_From_PrometheusRuleResolveConfiguration returns original", + prop.ForAll(RunPropertyAssignmentTestForPrometheusRuleResolveConfiguration, PrometheusRuleResolveConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrometheusRuleResolveConfiguration tests if a specific instance of PrometheusRuleResolveConfiguration can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrometheusRuleResolveConfiguration(subject PrometheusRuleResolveConfiguration) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230301s.PrometheusRuleResolveConfiguration + err := copied.AssignProperties_To_PrometheusRuleResolveConfiguration(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrometheusRuleResolveConfiguration + err = actual.AssignProperties_From_PrometheusRuleResolveConfiguration(&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_PrometheusRuleResolveConfiguration_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 PrometheusRuleResolveConfiguration via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleResolveConfiguration, PrometheusRuleResolveConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleResolveConfiguration runs a test to see if a specific instance of PrometheusRuleResolveConfiguration round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleResolveConfiguration(subject PrometheusRuleResolveConfiguration) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleResolveConfiguration + 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 PrometheusRuleResolveConfiguration instances for property testing - lazily instantiated by +// PrometheusRuleResolveConfigurationGenerator() +var prometheusRuleResolveConfigurationGenerator gopter.Gen + +// PrometheusRuleResolveConfigurationGenerator returns a generator of PrometheusRuleResolveConfiguration instances for property testing. +func PrometheusRuleResolveConfigurationGenerator() gopter.Gen { + if prometheusRuleResolveConfigurationGenerator != nil { + return prometheusRuleResolveConfigurationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration(generators) + prometheusRuleResolveConfigurationGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleResolveConfiguration{}), generators) + + return prometheusRuleResolveConfigurationGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration(gens map[string]gopter.Gen) { + gens["AutoResolved"] = gen.PtrOf(gen.Bool()) + gens["TimeToResolve"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrometheusRuleResolveConfiguration_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrometheusRuleResolveConfiguration_STATUS to PrometheusRuleResolveConfiguration_STATUS via AssignProperties_To_PrometheusRuleResolveConfiguration_STATUS & AssignProperties_From_PrometheusRuleResolveConfiguration_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPrometheusRuleResolveConfiguration_STATUS, PrometheusRuleResolveConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrometheusRuleResolveConfiguration_STATUS tests if a specific instance of PrometheusRuleResolveConfiguration_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrometheusRuleResolveConfiguration_STATUS(subject PrometheusRuleResolveConfiguration_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 v20230301s.PrometheusRuleResolveConfiguration_STATUS + err := copied.AssignProperties_To_PrometheusRuleResolveConfiguration_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrometheusRuleResolveConfiguration_STATUS + err = actual.AssignProperties_From_PrometheusRuleResolveConfiguration_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_PrometheusRuleResolveConfiguration_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 PrometheusRuleResolveConfiguration_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleResolveConfiguration_STATUS, PrometheusRuleResolveConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleResolveConfiguration_STATUS runs a test to see if a specific instance of PrometheusRuleResolveConfiguration_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleResolveConfiguration_STATUS(subject PrometheusRuleResolveConfiguration_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleResolveConfiguration_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 PrometheusRuleResolveConfiguration_STATUS instances for property testing - lazily instantiated by +// PrometheusRuleResolveConfiguration_STATUSGenerator() +var prometheusRuleResolveConfiguration_STATUSGenerator gopter.Gen + +// PrometheusRuleResolveConfiguration_STATUSGenerator returns a generator of PrometheusRuleResolveConfiguration_STATUS instances for property testing. +func PrometheusRuleResolveConfiguration_STATUSGenerator() gopter.Gen { + if prometheusRuleResolveConfiguration_STATUSGenerator != nil { + return prometheusRuleResolveConfiguration_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_STATUS(generators) + prometheusRuleResolveConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleResolveConfiguration_STATUS{}), generators) + + return prometheusRuleResolveConfiguration_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["AutoResolved"] = gen.PtrOf(gen.Bool()) + gens["TimeToResolve"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/alertsmanagement/v1api20230301/storage/groupversion_info_gen.go b/v2/api/alertsmanagement/v1api20230301/storage/groupversion_info_gen.go new file mode 100644 index 00000000000..f1c3b1e0000 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/storage/groupversion_info_gen.go @@ -0,0 +1,32 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by azure-service-operator-codegen. DO NOT EDIT. + +// Package storage contains API Schema definitions for the alertsmanagement storage API group +// +kubebuilder:object:generate=true +// All object properties are optional by default, this will be overridden when needed: +// +kubebuilder:validation:Optional +// +groupName=alertsmanagement.azure.com +// +versionName=v1api20230301storage +package storage + +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: "alertsmanagement.azure.com", Version: "v1api20230301storage"} + + // 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/alertsmanagement/v1api20230301/storage/prometheus_rule_group_types_gen.go b/v2/api/alertsmanagement/v1api20230301/storage/prometheus_rule_group_types_gen.go new file mode 100644 index 00000000000..41af0154c72 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/storage/prometheus_rule_group_types_gen.go @@ -0,0 +1,307 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// +kubebuilder:rbac:groups=alertsmanagement.azure.com,resources=prometheusrulegroups,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=alertsmanagement.azure.com,resources={prometheusrulegroups/status,prometheusrulegroups/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 v1api20230301.PrometheusRuleGroup +// Generator information: +// - Generated from: /alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2023-03-01/PrometheusRuleGroups.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/prometheusRuleGroups/{ruleGroupName} +type PrometheusRuleGroup struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec PrometheusRuleGroup_Spec `json:"spec,omitempty"` + Status PrometheusRuleGroup_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &PrometheusRuleGroup{} + +// GetConditions returns the conditions of the resource +func (group *PrometheusRuleGroup) GetConditions() conditions.Conditions { + return group.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (group *PrometheusRuleGroup) SetConditions(conditions conditions.Conditions) { + group.Status.Conditions = conditions +} + +var _ genruntime.KubernetesResource = &PrometheusRuleGroup{} + +// AzureName returns the Azure name of the resource +func (group *PrometheusRuleGroup) AzureName() string { + return group.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-03-01" +func (group PrometheusRuleGroup) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (group *PrometheusRuleGroup) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (group *PrometheusRuleGroup) GetSpec() genruntime.ConvertibleSpec { + return &group.Spec +} + +// GetStatus returns the status of this resource +func (group *PrometheusRuleGroup) GetStatus() genruntime.ConvertibleStatus { + return &group.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (group *PrometheusRuleGroup) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.AlertsManagement/prometheusRuleGroups" +func (group *PrometheusRuleGroup) GetType() string { + return "Microsoft.AlertsManagement/prometheusRuleGroups" +} + +// NewEmptyStatus returns a new empty (blank) status +func (group *PrometheusRuleGroup) NewEmptyStatus() genruntime.ConvertibleStatus { + return &PrometheusRuleGroup_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (group *PrometheusRuleGroup) Owner() *genruntime.ResourceReference { + ownerGroup, ownerKind := genruntime.LookupOwnerGroupKind(group.Spec) + return group.Spec.Owner.AsResourceReference(ownerGroup, ownerKind) +} + +// SetStatus sets the status of this resource +func (group *PrometheusRuleGroup) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*PrometheusRuleGroup_STATUS); ok { + group.Status = *st + return nil + } + + // Convert status to required version + var st PrometheusRuleGroup_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + group.Status = st + return nil +} + +// Hub marks that this PrometheusRuleGroup is the hub type for conversion +func (group *PrometheusRuleGroup) Hub() {} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (group *PrometheusRuleGroup) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: group.Spec.OriginalVersion, + Kind: "PrometheusRuleGroup", + } +} + +// +kubebuilder:object:root=true +// Storage version of v1api20230301.PrometheusRuleGroup +// Generator information: +// - Generated from: /alertsmanagement/resource-manager/Microsoft.AlertsManagement/stable/2023-03-01/PrometheusRuleGroups.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.AlertsManagement/prometheusRuleGroups/{ruleGroupName} +type PrometheusRuleGroupList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PrometheusRuleGroup `json:"items"` +} + +// Storage version of v1api20230301.APIVersion +// +kubebuilder:validation:Enum={"2023-03-01"} +type APIVersion string + +const APIVersion_Value = APIVersion("2023-03-01") + +// Storage version of v1api20230301.PrometheusRuleGroup_Spec +type PrometheusRuleGroup_Spec struct { + // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it + // doesn't have to be. + AzureName string `json:"azureName,omitempty"` + ClusterName *string `json:"clusterName,omitempty"` + Description *string `json:"description,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + Interval *string `json:"interval,omitempty"` + Location *string `json:"location,omitempty"` + OriginalVersion string `json:"originalVersion,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a + // reference to a resources.azure.com/ResourceGroup resource + Owner *genruntime.KnownResourceReference `group:"resources.azure.com" json:"owner,omitempty" kind:"ResourceGroup"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Rules []PrometheusRule `json:"rules,omitempty"` + ScopesReferences []genruntime.ResourceReference `armReference:"Scopes" json:"scopesReferences,omitempty"` + Tags map[string]string `json:"tags,omitempty"` +} + +var _ genruntime.ConvertibleSpec = &PrometheusRuleGroup_Spec{} + +// ConvertSpecFrom populates our PrometheusRuleGroup_Spec from the provided source +func (group *PrometheusRuleGroup_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + if source == group { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return source.ConvertSpecTo(group) +} + +// ConvertSpecTo populates the provided destination from our PrometheusRuleGroup_Spec +func (group *PrometheusRuleGroup_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + if destination == group { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return destination.ConvertSpecFrom(group) +} + +// Storage version of v1api20230301.PrometheusRuleGroup_STATUS +type PrometheusRuleGroup_STATUS struct { + ClusterName *string `json:"clusterName,omitempty"` + Conditions []conditions.Condition `json:"conditions,omitempty"` + Description *string `json:"description,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + Id *string `json:"id,omitempty"` + Interval *string `json:"interval,omitempty"` + Location *string `json:"location,omitempty"` + Name *string `json:"name,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Rules []PrometheusRule_STATUS `json:"rules,omitempty"` + Scopes []string `json:"scopes,omitempty"` + SystemData *SystemData_STATUS `json:"systemData,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &PrometheusRuleGroup_STATUS{} + +// ConvertStatusFrom populates our PrometheusRuleGroup_STATUS from the provided source +func (group *PrometheusRuleGroup_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + if source == group { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return source.ConvertStatusTo(group) +} + +// ConvertStatusTo populates the provided destination from our PrometheusRuleGroup_STATUS +func (group *PrometheusRuleGroup_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + if destination == group { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return destination.ConvertStatusFrom(group) +} + +// Storage version of v1api20230301.PrometheusRule +// An Azure Prometheus alerting or recording rule. +type PrometheusRule struct { + Actions []PrometheusRuleGroupAction `json:"actions,omitempty"` + Alert *string `json:"alert,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + Expression *string `json:"expression,omitempty"` + For *string `json:"for,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Record *string `json:"record,omitempty"` + ResolveConfiguration *PrometheusRuleResolveConfiguration `json:"resolveConfiguration,omitempty"` + Severity *int `json:"severity,omitempty"` +} + +// Storage version of v1api20230301.PrometheusRule_STATUS +// An Azure Prometheus alerting or recording rule. +type PrometheusRule_STATUS struct { + Actions []PrometheusRuleGroupAction_STATUS `json:"actions,omitempty"` + Alert *string `json:"alert,omitempty"` + Annotations map[string]string `json:"annotations,omitempty"` + Enabled *bool `json:"enabled,omitempty"` + Expression *string `json:"expression,omitempty"` + For *string `json:"for,omitempty"` + Labels map[string]string `json:"labels,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Record *string `json:"record,omitempty"` + ResolveConfiguration *PrometheusRuleResolveConfiguration_STATUS `json:"resolveConfiguration,omitempty"` + Severity *int `json:"severity,omitempty"` +} + +// Storage version of v1api20230301.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 v1api20230301.PrometheusRuleGroupAction +// An alert action. Only relevant for alerts. +type PrometheusRuleGroupAction struct { + // ActionGroupReference: The resource id of the action group to use. + ActionGroupReference *genruntime.ResourceReference `armReference:"ActionGroupId" json:"actionGroupReference,omitempty"` + ActionProperties map[string]string `json:"actionProperties,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20230301.PrometheusRuleGroupAction_STATUS +// An alert action. Only relevant for alerts. +type PrometheusRuleGroupAction_STATUS struct { + ActionGroupId *string `json:"actionGroupId,omitempty"` + ActionProperties map[string]string `json:"actionProperties,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20230301.PrometheusRuleResolveConfiguration +// Specifies the Prometheus alert rule configuration. +type PrometheusRuleResolveConfiguration struct { + AutoResolved *bool `json:"autoResolved,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TimeToResolve *string `json:"timeToResolve,omitempty"` +} + +// Storage version of v1api20230301.PrometheusRuleResolveConfiguration_STATUS +// Specifies the Prometheus alert rule configuration. +type PrometheusRuleResolveConfiguration_STATUS struct { + AutoResolved *bool `json:"autoResolved,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + TimeToResolve *string `json:"timeToResolve,omitempty"` +} + +func init() { + SchemeBuilder.Register(&PrometheusRuleGroup{}, &PrometheusRuleGroupList{}) +} diff --git a/v2/api/alertsmanagement/v1api20230301/storage/prometheus_rule_group_types_gen_test.go b/v2/api/alertsmanagement/v1api20230301/storage/prometheus_rule_group_types_gen_test.go new file mode 100644 index 00000000000..55a97b3c282 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/storage/prometheus_rule_group_types_gen_test.go @@ -0,0 +1,740 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_PrometheusRuleGroup_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 PrometheusRuleGroup via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroup, PrometheusRuleGroupGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroup runs a test to see if a specific instance of PrometheusRuleGroup round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroup(subject PrometheusRuleGroup) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroup + 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 PrometheusRuleGroup instances for property testing - lazily instantiated by +// PrometheusRuleGroupGenerator() +var prometheusRuleGroupGenerator gopter.Gen + +// PrometheusRuleGroupGenerator returns a generator of PrometheusRuleGroup instances for property testing. +func PrometheusRuleGroupGenerator() gopter.Gen { + if prometheusRuleGroupGenerator != nil { + return prometheusRuleGroupGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForPrometheusRuleGroup(generators) + prometheusRuleGroupGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup{}), generators) + + return prometheusRuleGroupGenerator +} + +// AddRelatedPropertyGeneratorsForPrometheusRuleGroup is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRuleGroup(gens map[string]gopter.Gen) { + gens["Spec"] = PrometheusRuleGroup_SpecGenerator() + gens["Status"] = PrometheusRuleGroup_STATUSGenerator() +} + +func Test_PrometheusRuleGroup_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 PrometheusRuleGroup_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroup_Spec, PrometheusRuleGroup_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroup_Spec runs a test to see if a specific instance of PrometheusRuleGroup_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroup_Spec(subject PrometheusRuleGroup_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroup_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 PrometheusRuleGroup_Spec instances for property testing - lazily instantiated by +// PrometheusRuleGroup_SpecGenerator() +var prometheusRuleGroup_SpecGenerator gopter.Gen + +// PrometheusRuleGroup_SpecGenerator returns a generator of PrometheusRuleGroup_Spec instances for property testing. +// We first initialize prometheusRuleGroup_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 PrometheusRuleGroup_SpecGenerator() gopter.Gen { + if prometheusRuleGroup_SpecGenerator != nil { + return prometheusRuleGroup_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_Spec(generators) + prometheusRuleGroup_SpecGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_Spec{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_Spec(generators) + AddRelatedPropertyGeneratorsForPrometheusRuleGroup_Spec(generators) + prometheusRuleGroup_SpecGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_Spec{}), generators) + + return prometheusRuleGroup_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroup_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroup_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["ClusterName"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Interval"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["OriginalVersion"] = gen.AlphaString() + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRuleGroup_Spec is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRuleGroup_Spec(gens map[string]gopter.Gen) { + gens["Rules"] = gen.SliceOf(PrometheusRuleGenerator()) +} + +func Test_PrometheusRuleGroup_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 PrometheusRuleGroup_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroup_STATUS, PrometheusRuleGroup_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroup_STATUS runs a test to see if a specific instance of PrometheusRuleGroup_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroup_STATUS(subject PrometheusRuleGroup_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroup_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 PrometheusRuleGroup_STATUS instances for property testing - lazily instantiated by +// PrometheusRuleGroup_STATUSGenerator() +var prometheusRuleGroup_STATUSGenerator gopter.Gen + +// PrometheusRuleGroup_STATUSGenerator returns a generator of PrometheusRuleGroup_STATUS instances for property testing. +// We first initialize prometheusRuleGroup_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 PrometheusRuleGroup_STATUSGenerator() gopter.Gen { + if prometheusRuleGroup_STATUSGenerator != nil { + return prometheusRuleGroup_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS(generators) + prometheusRuleGroup_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS(generators) + AddRelatedPropertyGeneratorsForPrometheusRuleGroup_STATUS(generators) + prometheusRuleGroup_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroup_STATUS{}), generators) + + return prometheusRuleGroup_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroup_STATUS(gens map[string]gopter.Gen) { + gens["ClusterName"] = gen.PtrOf(gen.AlphaString()) + gens["Description"] = gen.PtrOf(gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Interval"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["Scopes"] = gen.SliceOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRuleGroup_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRuleGroup_STATUS(gens map[string]gopter.Gen) { + gens["Rules"] = gen.SliceOf(PrometheusRule_STATUSGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUSGenerator()) +} + +func Test_PrometheusRule_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 PrometheusRule via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRule, PrometheusRuleGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRule runs a test to see if a specific instance of PrometheusRule round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRule(subject PrometheusRule) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRule + 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 PrometheusRule instances for property testing - lazily instantiated by PrometheusRuleGenerator() +var prometheusRuleGenerator gopter.Gen + +// PrometheusRuleGenerator returns a generator of PrometheusRule instances for property testing. +// We first initialize prometheusRuleGenerator 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 PrometheusRuleGenerator() gopter.Gen { + if prometheusRuleGenerator != nil { + return prometheusRuleGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule(generators) + prometheusRuleGenerator = gen.Struct(reflect.TypeOf(PrometheusRule{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule(generators) + AddRelatedPropertyGeneratorsForPrometheusRule(generators) + prometheusRuleGenerator = gen.Struct(reflect.TypeOf(PrometheusRule{}), generators) + + return prometheusRuleGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRule is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRule(gens map[string]gopter.Gen) { + gens["Alert"] = gen.PtrOf(gen.AlphaString()) + gens["Annotations"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Expression"] = gen.PtrOf(gen.AlphaString()) + gens["For"] = gen.PtrOf(gen.AlphaString()) + gens["Labels"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Record"] = gen.PtrOf(gen.AlphaString()) + gens["Severity"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRule is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRule(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(PrometheusRuleGroupActionGenerator()) + gens["ResolveConfiguration"] = gen.PtrOf(PrometheusRuleResolveConfigurationGenerator()) +} + +func Test_PrometheusRule_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 PrometheusRule_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRule_STATUS, PrometheusRule_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRule_STATUS runs a test to see if a specific instance of PrometheusRule_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRule_STATUS(subject PrometheusRule_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRule_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 PrometheusRule_STATUS instances for property testing - lazily instantiated by +// PrometheusRule_STATUSGenerator() +var prometheusRule_STATUSGenerator gopter.Gen + +// PrometheusRule_STATUSGenerator returns a generator of PrometheusRule_STATUS instances for property testing. +// We first initialize prometheusRule_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 PrometheusRule_STATUSGenerator() gopter.Gen { + if prometheusRule_STATUSGenerator != nil { + return prometheusRule_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule_STATUS(generators) + prometheusRule_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRule_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRule_STATUS(generators) + AddRelatedPropertyGeneratorsForPrometheusRule_STATUS(generators) + prometheusRule_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRule_STATUS{}), generators) + + return prometheusRule_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRule_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRule_STATUS(gens map[string]gopter.Gen) { + gens["Alert"] = gen.PtrOf(gen.AlphaString()) + gens["Annotations"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Enabled"] = gen.PtrOf(gen.Bool()) + gens["Expression"] = gen.PtrOf(gen.AlphaString()) + gens["For"] = gen.PtrOf(gen.AlphaString()) + gens["Labels"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Record"] = gen.PtrOf(gen.AlphaString()) + gens["Severity"] = gen.PtrOf(gen.Int()) +} + +// AddRelatedPropertyGeneratorsForPrometheusRule_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForPrometheusRule_STATUS(gens map[string]gopter.Gen) { + gens["Actions"] = gen.SliceOf(PrometheusRuleGroupAction_STATUSGenerator()) + gens["ResolveConfiguration"] = gen.PtrOf(PrometheusRuleResolveConfiguration_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_PrometheusRuleGroupAction_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 PrometheusRuleGroupAction via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroupAction, PrometheusRuleGroupActionGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroupAction runs a test to see if a specific instance of PrometheusRuleGroupAction round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroupAction(subject PrometheusRuleGroupAction) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroupAction + 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 PrometheusRuleGroupAction instances for property testing - lazily instantiated by +// PrometheusRuleGroupActionGenerator() +var prometheusRuleGroupActionGenerator gopter.Gen + +// PrometheusRuleGroupActionGenerator returns a generator of PrometheusRuleGroupAction instances for property testing. +func PrometheusRuleGroupActionGenerator() gopter.Gen { + if prometheusRuleGroupActionGenerator != nil { + return prometheusRuleGroupActionGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction(generators) + prometheusRuleGroupActionGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroupAction{}), generators) + + return prometheusRuleGroupActionGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction(gens map[string]gopter.Gen) { + gens["ActionProperties"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} + +func Test_PrometheusRuleGroupAction_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 PrometheusRuleGroupAction_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleGroupAction_STATUS, PrometheusRuleGroupAction_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleGroupAction_STATUS runs a test to see if a specific instance of PrometheusRuleGroupAction_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleGroupAction_STATUS(subject PrometheusRuleGroupAction_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleGroupAction_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 PrometheusRuleGroupAction_STATUS instances for property testing - lazily instantiated by +// PrometheusRuleGroupAction_STATUSGenerator() +var prometheusRuleGroupAction_STATUSGenerator gopter.Gen + +// PrometheusRuleGroupAction_STATUSGenerator returns a generator of PrometheusRuleGroupAction_STATUS instances for property testing. +func PrometheusRuleGroupAction_STATUSGenerator() gopter.Gen { + if prometheusRuleGroupAction_STATUSGenerator != nil { + return prometheusRuleGroupAction_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_STATUS(generators) + prometheusRuleGroupAction_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleGroupAction_STATUS{}), generators) + + return prometheusRuleGroupAction_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleGroupAction_STATUS(gens map[string]gopter.Gen) { + gens["ActionGroupId"] = gen.PtrOf(gen.AlphaString()) + gens["ActionProperties"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} + +func Test_PrometheusRuleResolveConfiguration_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 PrometheusRuleResolveConfiguration via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleResolveConfiguration, PrometheusRuleResolveConfigurationGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleResolveConfiguration runs a test to see if a specific instance of PrometheusRuleResolveConfiguration round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleResolveConfiguration(subject PrometheusRuleResolveConfiguration) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleResolveConfiguration + 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 PrometheusRuleResolveConfiguration instances for property testing - lazily instantiated by +// PrometheusRuleResolveConfigurationGenerator() +var prometheusRuleResolveConfigurationGenerator gopter.Gen + +// PrometheusRuleResolveConfigurationGenerator returns a generator of PrometheusRuleResolveConfiguration instances for property testing. +func PrometheusRuleResolveConfigurationGenerator() gopter.Gen { + if prometheusRuleResolveConfigurationGenerator != nil { + return prometheusRuleResolveConfigurationGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration(generators) + prometheusRuleResolveConfigurationGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleResolveConfiguration{}), generators) + + return prometheusRuleResolveConfigurationGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration(gens map[string]gopter.Gen) { + gens["AutoResolved"] = gen.PtrOf(gen.Bool()) + gens["TimeToResolve"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrometheusRuleResolveConfiguration_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 PrometheusRuleResolveConfiguration_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrometheusRuleResolveConfiguration_STATUS, PrometheusRuleResolveConfiguration_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrometheusRuleResolveConfiguration_STATUS runs a test to see if a specific instance of PrometheusRuleResolveConfiguration_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrometheusRuleResolveConfiguration_STATUS(subject PrometheusRuleResolveConfiguration_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrometheusRuleResolveConfiguration_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 PrometheusRuleResolveConfiguration_STATUS instances for property testing - lazily instantiated by +// PrometheusRuleResolveConfiguration_STATUSGenerator() +var prometheusRuleResolveConfiguration_STATUSGenerator gopter.Gen + +// PrometheusRuleResolveConfiguration_STATUSGenerator returns a generator of PrometheusRuleResolveConfiguration_STATUS instances for property testing. +func PrometheusRuleResolveConfiguration_STATUSGenerator() gopter.Gen { + if prometheusRuleResolveConfiguration_STATUSGenerator != nil { + return prometheusRuleResolveConfiguration_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_STATUS(generators) + prometheusRuleResolveConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(PrometheusRuleResolveConfiguration_STATUS{}), generators) + + return prometheusRuleResolveConfiguration_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrometheusRuleResolveConfiguration_STATUS(gens map[string]gopter.Gen) { + gens["AutoResolved"] = gen.PtrOf(gen.Bool()) + gens["TimeToResolve"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/alertsmanagement/v1api20230301/storage/structure.txt b/v2/api/alertsmanagement/v1api20230301/storage/structure.txt new file mode 100644 index 00000000000..80a41d09a52 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/storage/structure.txt @@ -0,0 +1,75 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +github.com/Azure/azure-service-operator/v2/api/alertsmanagement/v1api20230301/storage +├── APIVersion: Enum (1 value) +│ └── "2023-03-01" +└── PrometheusRuleGroup: Resource + ├── Owner: resources/v1apiv20191001.ResourceGroup + ├── Spec: Object (12 properties) + │ ├── AzureName: string + │ ├── ClusterName: *string + │ ├── Description: *string + │ ├── Enabled: *bool + │ ├── Interval: *string + │ ├── Location: *string + │ ├── OriginalVersion: string + │ ├── Owner: *genruntime.KnownResourceReference + │ ├── PropertyBag: genruntime.PropertyBag + │ ├── Rules: Object (11 properties)[] + │ │ ├── Actions: Object (3 properties)[] + │ │ │ ├── ActionGroupReference: *genruntime.ResourceReference + │ │ │ ├── ActionProperties: map[string]string + │ │ │ └── PropertyBag: genruntime.PropertyBag + │ │ ├── Alert: *string + │ │ ├── Annotations: map[string]string + │ │ ├── Enabled: *bool + │ │ ├── Expression: *string + │ │ ├── For: *string + │ │ ├── Labels: map[string]string + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ ├── Record: *string + │ │ ├── ResolveConfiguration: *Object (3 properties) + │ │ │ ├── AutoResolved: *bool + │ │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ │ └── TimeToResolve: *string + │ │ └── Severity: *int + │ ├── ScopesReferences: genruntime.ResourceReference[] + │ └── Tags: map[string]string + └── Status: Object (14 properties) + ├── ClusterName: *string + ├── Conditions: conditions.Condition[] + ├── Description: *string + ├── Enabled: *bool + ├── Id: *string + ├── Interval: *string + ├── Location: *string + ├── Name: *string + ├── PropertyBag: genruntime.PropertyBag + ├── Rules: Object (11 properties)[] + │ ├── Actions: Object (3 properties)[] + │ │ ├── ActionGroupId: *string + │ │ ├── ActionProperties: map[string]string + │ │ └── PropertyBag: genruntime.PropertyBag + │ ├── Alert: *string + │ ├── Annotations: map[string]string + │ ├── Enabled: *bool + │ ├── Expression: *string + │ ├── For: *string + │ ├── Labels: map[string]string + │ ├── PropertyBag: genruntime.PropertyBag + │ ├── Record: *string + │ ├── ResolveConfiguration: *Object (3 properties) + │ │ ├── AutoResolved: *bool + │ │ ├── PropertyBag: genruntime.PropertyBag + │ │ └── TimeToResolve: *string + │ └── Severity: *int + ├── Scopes: string[] + ├── SystemData: *Object (7 properties) + │ ├── CreatedAt: *string + │ ├── CreatedBy: *string + │ ├── CreatedByType: *string + │ ├── LastModifiedAt: *string + │ ├── LastModifiedBy: *string + │ ├── LastModifiedByType: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── Tags: map[string]string + └── Type: *string diff --git a/v2/api/alertsmanagement/v1api20230301/storage/zz_generated.deepcopy.go b/v2/api/alertsmanagement/v1api20230301/storage/zz_generated.deepcopy.go new file mode 100644 index 00000000000..1f14e43f931 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/storage/zz_generated.deepcopy.go @@ -0,0 +1,579 @@ +//go:build !ignore_autogenerated + +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package storage + +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 *PrometheusRule) DeepCopyInto(out *PrometheusRule) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]PrometheusRuleGroupAction, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Alert != nil { + in, out := &in.Alert, &out.Alert + *out = new(string) + **out = **in + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expression != nil { + in, out := &in.Expression, &out.Expression + *out = new(string) + **out = **in + } + if in.For != nil { + in, out := &in.For, &out.For + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + 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.Record != nil { + in, out := &in.Record, &out.Record + *out = new(string) + **out = **in + } + if in.ResolveConfiguration != nil { + in, out := &in.ResolveConfiguration, &out.ResolveConfiguration + *out = new(PrometheusRuleResolveConfiguration) + (*in).DeepCopyInto(*out) + } + if in.Severity != nil { + in, out := &in.Severity, &out.Severity + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRule. +func (in *PrometheusRule) DeepCopy() *PrometheusRule { + if in == nil { + return nil + } + out := new(PrometheusRule) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrometheusRuleGroup) DeepCopyInto(out *PrometheusRuleGroup) { + *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 PrometheusRuleGroup. +func (in *PrometheusRuleGroup) DeepCopy() *PrometheusRuleGroup { + if in == nil { + return nil + } + out := new(PrometheusRuleGroup) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrometheusRuleGroup) 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 *PrometheusRuleGroupAction) DeepCopyInto(out *PrometheusRuleGroupAction) { + *out = *in + if in.ActionGroupReference != nil { + in, out := &in.ActionGroupReference, &out.ActionGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.ActionProperties != nil { + in, out := &in.ActionProperties, &out.ActionProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + 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 PrometheusRuleGroupAction. +func (in *PrometheusRuleGroupAction) DeepCopy() *PrometheusRuleGroupAction { + if in == nil { + return nil + } + out := new(PrometheusRuleGroupAction) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrometheusRuleGroupAction_STATUS) DeepCopyInto(out *PrometheusRuleGroupAction_STATUS) { + *out = *in + if in.ActionGroupId != nil { + in, out := &in.ActionGroupId, &out.ActionGroupId + *out = new(string) + **out = **in + } + if in.ActionProperties != nil { + in, out := &in.ActionProperties, &out.ActionProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + 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 PrometheusRuleGroupAction_STATUS. +func (in *PrometheusRuleGroupAction_STATUS) DeepCopy() *PrometheusRuleGroupAction_STATUS { + if in == nil { + return nil + } + out := new(PrometheusRuleGroupAction_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 *PrometheusRuleGroupList) DeepCopyInto(out *PrometheusRuleGroupList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PrometheusRuleGroup, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroupList. +func (in *PrometheusRuleGroupList) DeepCopy() *PrometheusRuleGroupList { + if in == nil { + return nil + } + out := new(PrometheusRuleGroupList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrometheusRuleGroupList) 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 *PrometheusRuleGroup_STATUS) DeepCopyInto(out *PrometheusRuleGroup_STATUS) { + *out = *in + if in.ClusterName != nil { + in, out := &in.ClusterName, &out.ClusterName + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Interval != nil { + in, out := &in.Interval, &out.Interval + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]PrometheusRule_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Scopes != nil { + in, out := &in.Scopes, &out.Scopes + *out = make([]string, len(*in)) + copy(*out, *in) + } + 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.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 PrometheusRuleGroup_STATUS. +func (in *PrometheusRuleGroup_STATUS) DeepCopy() *PrometheusRuleGroup_STATUS { + if in == nil { + return nil + } + out := new(PrometheusRuleGroup_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 *PrometheusRuleGroup_Spec) DeepCopyInto(out *PrometheusRuleGroup_Spec) { + *out = *in + if in.ClusterName != nil { + in, out := &in.ClusterName, &out.ClusterName + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Interval != nil { + in, out := &in.Interval, &out.Interval + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.KnownResourceReference) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]PrometheusRule, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ScopesReferences != nil { + in, out := &in.ScopesReferences, &out.ScopesReferences + *out = make([]genruntime.ResourceReference, len(*in)) + copy(*out, *in) + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroup_Spec. +func (in *PrometheusRuleGroup_Spec) DeepCopy() *PrometheusRuleGroup_Spec { + if in == nil { + return nil + } + out := new(PrometheusRuleGroup_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 *PrometheusRuleResolveConfiguration) DeepCopyInto(out *PrometheusRuleResolveConfiguration) { + *out = *in + if in.AutoResolved != nil { + in, out := &in.AutoResolved, &out.AutoResolved + *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.TimeToResolve != nil { + in, out := &in.TimeToResolve, &out.TimeToResolve + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleResolveConfiguration. +func (in *PrometheusRuleResolveConfiguration) DeepCopy() *PrometheusRuleResolveConfiguration { + if in == nil { + return nil + } + out := new(PrometheusRuleResolveConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrometheusRuleResolveConfiguration_STATUS) DeepCopyInto(out *PrometheusRuleResolveConfiguration_STATUS) { + *out = *in + if in.AutoResolved != nil { + in, out := &in.AutoResolved, &out.AutoResolved + *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.TimeToResolve != nil { + in, out := &in.TimeToResolve, &out.TimeToResolve + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleResolveConfiguration_STATUS. +func (in *PrometheusRuleResolveConfiguration_STATUS) DeepCopy() *PrometheusRuleResolveConfiguration_STATUS { + if in == nil { + return nil + } + out := new(PrometheusRuleResolveConfiguration_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 *PrometheusRule_STATUS) DeepCopyInto(out *PrometheusRule_STATUS) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]PrometheusRuleGroupAction_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Alert != nil { + in, out := &in.Alert, &out.Alert + *out = new(string) + **out = **in + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expression != nil { + in, out := &in.Expression, &out.Expression + *out = new(string) + **out = **in + } + if in.For != nil { + in, out := &in.For, &out.For + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + 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.Record != nil { + in, out := &in.Record, &out.Record + *out = new(string) + **out = **in + } + if in.ResolveConfiguration != nil { + in, out := &in.ResolveConfiguration, &out.ResolveConfiguration + *out = new(PrometheusRuleResolveConfiguration_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Severity != nil { + in, out := &in.Severity, &out.Severity + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRule_STATUS. +func (in *PrometheusRule_STATUS) DeepCopy() *PrometheusRule_STATUS { + if in == nil { + return nil + } + out := new(PrometheusRule_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) 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 +} diff --git a/v2/api/alertsmanagement/v1api20230301/structure.txt b/v2/api/alertsmanagement/v1api20230301/structure.txt new file mode 100644 index 00000000000..42bee562226 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/structure.txt @@ -0,0 +1,141 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +github.com/Azure/azure-service-operator/v2/api/alertsmanagement/v1api20230301 +├── APIVersion: Enum (1 value) +│ └── "2023-03-01" +├── PrometheusRuleGroup: Resource +│ ├── Owner: resources/v1apiv20191001.ResourceGroup +│ ├── Spec: Object (10 properties) +│ │ ├── AzureName: Validated (1 rule) +│ │ │ └── Rule 0: Pattern: "^[^:@/#{}%&+*<>?]+$" +│ │ ├── ClusterName: *string +│ │ ├── Description: *string +│ │ ├── Enabled: *bool +│ │ ├── Interval: *string +│ │ ├── Location: *string +│ │ ├── Owner: *genruntime.KnownResourceReference +│ │ ├── Rules: Object (10 properties)[] +│ │ │ ├── Actions: Object (2 properties)[] +│ │ │ │ ├── ActionGroupReference: *genruntime.ResourceReference +│ │ │ │ └── ActionProperties: map[string]string +│ │ │ ├── Alert: *string +│ │ │ ├── Annotations: map[string]string +│ │ │ ├── Enabled: *bool +│ │ │ ├── Expression: *string +│ │ │ ├── For: *string +│ │ │ ├── Labels: map[string]string +│ │ │ ├── Record: *string +│ │ │ ├── ResolveConfiguration: *Object (2 properties) +│ │ │ │ ├── AutoResolved: *bool +│ │ │ │ └── TimeToResolve: *string +│ │ │ └── Severity: *int +│ │ ├── ScopesReferences: genruntime.ResourceReference[] +│ │ └── Tags: map[string]string +│ └── Status: Object (13 properties) +│ ├── ClusterName: *string +│ ├── Conditions: conditions.Condition[] +│ ├── Description: *string +│ ├── Enabled: *bool +│ ├── Id: *string +│ ├── Interval: *string +│ ├── Location: *string +│ ├── Name: *string +│ ├── Rules: Object (10 properties)[] +│ │ ├── Actions: Object (2 properties)[] +│ │ │ ├── ActionGroupId: *string +│ │ │ └── ActionProperties: map[string]string +│ │ ├── Alert: *string +│ │ ├── Annotations: map[string]string +│ │ ├── Enabled: *bool +│ │ ├── Expression: *string +│ │ ├── For: *string +│ │ ├── Labels: map[string]string +│ │ ├── Record: *string +│ │ ├── ResolveConfiguration: *Object (2 properties) +│ │ │ ├── AutoResolved: *bool +│ │ │ └── TimeToResolve: *string +│ │ └── Severity: *int +│ ├── Scopes: string[] +│ ├── 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 +├── PrometheusRuleGroup_STATUS_ARM: Object (7 properties) +│ ├── Id: *string +│ ├── Location: *string +│ ├── Name: *string +│ ├── Properties: *Object (6 properties) +│ │ ├── ClusterName: *string +│ │ ├── Description: *string +│ │ ├── Enabled: *bool +│ │ ├── Interval: *string +│ │ ├── Rules: Object (10 properties)[] +│ │ │ ├── Actions: Object (2 properties)[] +│ │ │ │ ├── ActionGroupId: *string +│ │ │ │ └── ActionProperties: map[string]string +│ │ │ ├── Alert: *string +│ │ │ ├── Annotations: map[string]string +│ │ │ ├── Enabled: *bool +│ │ │ ├── Expression: *string +│ │ │ ├── For: *string +│ │ │ ├── Labels: map[string]string +│ │ │ ├── Record: *string +│ │ │ ├── ResolveConfiguration: *Object (2 properties) +│ │ │ │ ├── AutoResolved: *bool +│ │ │ │ └── TimeToResolve: *string +│ │ │ └── Severity: *int +│ │ └── Scopes: string[] +│ ├── 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 +└── PrometheusRuleGroup_Spec_ARM: Object (4 properties) + ├── Location: *string + ├── Name: string + ├── Properties: *Object (6 properties) + │ ├── ClusterName: *string + │ ├── Description: *string + │ ├── Enabled: *bool + │ ├── Interval: *string + │ ├── Rules: Object (10 properties)[] + │ │ ├── Actions: Object (2 properties)[] + │ │ │ ├── ActionGroupId: *string + │ │ │ └── ActionProperties: map[string]string + │ │ ├── Alert: *string + │ │ ├── Annotations: map[string]string + │ │ ├── Enabled: *bool + │ │ ├── Expression: *string + │ │ ├── For: *string + │ │ ├── Labels: map[string]string + │ │ ├── Record: *string + │ │ ├── ResolveConfiguration: *Object (2 properties) + │ │ │ ├── AutoResolved: *bool + │ │ │ └── TimeToResolve: *string + │ │ └── Severity: *int + │ └── Scopes: string[] + └── Tags: map[string]string diff --git a/v2/api/alertsmanagement/v1api20230301/zz_generated.deepcopy.go b/v2/api/alertsmanagement/v1api20230301/zz_generated.deepcopy.go new file mode 100644 index 00000000000..6ea203151a3 --- /dev/null +++ b/v2/api/alertsmanagement/v1api20230301/zz_generated.deepcopy.go @@ -0,0 +1,985 @@ +//go:build !ignore_autogenerated + +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1api20230301 + +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 *PrometheusRule) DeepCopyInto(out *PrometheusRule) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]PrometheusRuleGroupAction, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Alert != nil { + in, out := &in.Alert, &out.Alert + *out = new(string) + **out = **in + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expression != nil { + in, out := &in.Expression, &out.Expression + *out = new(string) + **out = **in + } + if in.For != nil { + in, out := &in.For, &out.For + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Record != nil { + in, out := &in.Record, &out.Record + *out = new(string) + **out = **in + } + if in.ResolveConfiguration != nil { + in, out := &in.ResolveConfiguration, &out.ResolveConfiguration + *out = new(PrometheusRuleResolveConfiguration) + (*in).DeepCopyInto(*out) + } + if in.Severity != nil { + in, out := &in.Severity, &out.Severity + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRule. +func (in *PrometheusRule) DeepCopy() *PrometheusRule { + if in == nil { + return nil + } + out := new(PrometheusRule) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrometheusRuleGroup) DeepCopyInto(out *PrometheusRuleGroup) { + *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 PrometheusRuleGroup. +func (in *PrometheusRuleGroup) DeepCopy() *PrometheusRuleGroup { + if in == nil { + return nil + } + out := new(PrometheusRuleGroup) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrometheusRuleGroup) 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 *PrometheusRuleGroupAction) DeepCopyInto(out *PrometheusRuleGroupAction) { + *out = *in + if in.ActionGroupReference != nil { + in, out := &in.ActionGroupReference, &out.ActionGroupReference + *out = new(genruntime.ResourceReference) + **out = **in + } + if in.ActionProperties != nil { + in, out := &in.ActionProperties, &out.ActionProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroupAction. +func (in *PrometheusRuleGroupAction) DeepCopy() *PrometheusRuleGroupAction { + if in == nil { + return nil + } + out := new(PrometheusRuleGroupAction) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrometheusRuleGroupAction_ARM) DeepCopyInto(out *PrometheusRuleGroupAction_ARM) { + *out = *in + if in.ActionGroupId != nil { + in, out := &in.ActionGroupId, &out.ActionGroupId + *out = new(string) + **out = **in + } + if in.ActionProperties != nil { + in, out := &in.ActionProperties, &out.ActionProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroupAction_ARM. +func (in *PrometheusRuleGroupAction_ARM) DeepCopy() *PrometheusRuleGroupAction_ARM { + if in == nil { + return nil + } + out := new(PrometheusRuleGroupAction_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 *PrometheusRuleGroupAction_STATUS) DeepCopyInto(out *PrometheusRuleGroupAction_STATUS) { + *out = *in + if in.ActionGroupId != nil { + in, out := &in.ActionGroupId, &out.ActionGroupId + *out = new(string) + **out = **in + } + if in.ActionProperties != nil { + in, out := &in.ActionProperties, &out.ActionProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroupAction_STATUS. +func (in *PrometheusRuleGroupAction_STATUS) DeepCopy() *PrometheusRuleGroupAction_STATUS { + if in == nil { + return nil + } + out := new(PrometheusRuleGroupAction_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 *PrometheusRuleGroupAction_STATUS_ARM) DeepCopyInto(out *PrometheusRuleGroupAction_STATUS_ARM) { + *out = *in + if in.ActionGroupId != nil { + in, out := &in.ActionGroupId, &out.ActionGroupId + *out = new(string) + **out = **in + } + if in.ActionProperties != nil { + in, out := &in.ActionProperties, &out.ActionProperties + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroupAction_STATUS_ARM. +func (in *PrometheusRuleGroupAction_STATUS_ARM) DeepCopy() *PrometheusRuleGroupAction_STATUS_ARM { + if in == nil { + return nil + } + out := new(PrometheusRuleGroupAction_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 *PrometheusRuleGroupList) DeepCopyInto(out *PrometheusRuleGroupList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PrometheusRuleGroup, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroupList. +func (in *PrometheusRuleGroupList) DeepCopy() *PrometheusRuleGroupList { + if in == nil { + return nil + } + out := new(PrometheusRuleGroupList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PrometheusRuleGroupList) 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 *PrometheusRuleGroupProperties_ARM) DeepCopyInto(out *PrometheusRuleGroupProperties_ARM) { + *out = *in + if in.ClusterName != nil { + in, out := &in.ClusterName, &out.ClusterName + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Interval != nil { + in, out := &in.Interval, &out.Interval + *out = new(string) + **out = **in + } + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]PrometheusRule_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Scopes != nil { + in, out := &in.Scopes, &out.Scopes + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroupProperties_ARM. +func (in *PrometheusRuleGroupProperties_ARM) DeepCopy() *PrometheusRuleGroupProperties_ARM { + if in == nil { + return nil + } + out := new(PrometheusRuleGroupProperties_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 *PrometheusRuleGroupProperties_STATUS_ARM) DeepCopyInto(out *PrometheusRuleGroupProperties_STATUS_ARM) { + *out = *in + if in.ClusterName != nil { + in, out := &in.ClusterName, &out.ClusterName + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Interval != nil { + in, out := &in.Interval, &out.Interval + *out = new(string) + **out = **in + } + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]PrometheusRule_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Scopes != nil { + in, out := &in.Scopes, &out.Scopes + *out = make([]string, len(*in)) + copy(*out, *in) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroupProperties_STATUS_ARM. +func (in *PrometheusRuleGroupProperties_STATUS_ARM) DeepCopy() *PrometheusRuleGroupProperties_STATUS_ARM { + if in == nil { + return nil + } + out := new(PrometheusRuleGroupProperties_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 *PrometheusRuleGroup_STATUS) DeepCopyInto(out *PrometheusRuleGroup_STATUS) { + *out = *in + if in.ClusterName != nil { + in, out := &in.ClusterName, &out.ClusterName + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Interval != nil { + in, out := &in.Interval, &out.Interval + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]PrometheusRule_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Scopes != nil { + in, out := &in.Scopes, &out.Scopes + *out = make([]string, len(*in)) + copy(*out, *in) + } + 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.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 PrometheusRuleGroup_STATUS. +func (in *PrometheusRuleGroup_STATUS) DeepCopy() *PrometheusRuleGroup_STATUS { + if in == nil { + return nil + } + out := new(PrometheusRuleGroup_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 *PrometheusRuleGroup_STATUS_ARM) DeepCopyInto(out *PrometheusRuleGroup_STATUS_ARM) { + *out = *in + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Properties != nil { + in, out := &in.Properties, &out.Properties + *out = new(PrometheusRuleGroupProperties_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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroup_STATUS_ARM. +func (in *PrometheusRuleGroup_STATUS_ARM) DeepCopy() *PrometheusRuleGroup_STATUS_ARM { + if in == nil { + return nil + } + out := new(PrometheusRuleGroup_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 *PrometheusRuleGroup_Spec) DeepCopyInto(out *PrometheusRuleGroup_Spec) { + *out = *in + if in.ClusterName != nil { + in, out := &in.ClusterName, &out.ClusterName + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Interval != nil { + in, out := &in.Interval, &out.Interval + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.KnownResourceReference) + **out = **in + } + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = make([]PrometheusRule, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ScopesReferences != nil { + in, out := &in.ScopesReferences, &out.ScopesReferences + *out = make([]genruntime.ResourceReference, len(*in)) + copy(*out, *in) + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroup_Spec. +func (in *PrometheusRuleGroup_Spec) DeepCopy() *PrometheusRuleGroup_Spec { + if in == nil { + return nil + } + out := new(PrometheusRuleGroup_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 *PrometheusRuleGroup_Spec_ARM) DeepCopyInto(out *PrometheusRuleGroup_Spec_ARM) { + *out = *in + 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(PrometheusRuleGroupProperties_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 + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleGroup_Spec_ARM. +func (in *PrometheusRuleGroup_Spec_ARM) DeepCopy() *PrometheusRuleGroup_Spec_ARM { + if in == nil { + return nil + } + out := new(PrometheusRuleGroup_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 *PrometheusRuleResolveConfiguration) DeepCopyInto(out *PrometheusRuleResolveConfiguration) { + *out = *in + if in.AutoResolved != nil { + in, out := &in.AutoResolved, &out.AutoResolved + *out = new(bool) + **out = **in + } + if in.TimeToResolve != nil { + in, out := &in.TimeToResolve, &out.TimeToResolve + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleResolveConfiguration. +func (in *PrometheusRuleResolveConfiguration) DeepCopy() *PrometheusRuleResolveConfiguration { + if in == nil { + return nil + } + out := new(PrometheusRuleResolveConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PrometheusRuleResolveConfiguration_ARM) DeepCopyInto(out *PrometheusRuleResolveConfiguration_ARM) { + *out = *in + if in.AutoResolved != nil { + in, out := &in.AutoResolved, &out.AutoResolved + *out = new(bool) + **out = **in + } + if in.TimeToResolve != nil { + in, out := &in.TimeToResolve, &out.TimeToResolve + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleResolveConfiguration_ARM. +func (in *PrometheusRuleResolveConfiguration_ARM) DeepCopy() *PrometheusRuleResolveConfiguration_ARM { + if in == nil { + return nil + } + out := new(PrometheusRuleResolveConfiguration_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 *PrometheusRuleResolveConfiguration_STATUS) DeepCopyInto(out *PrometheusRuleResolveConfiguration_STATUS) { + *out = *in + if in.AutoResolved != nil { + in, out := &in.AutoResolved, &out.AutoResolved + *out = new(bool) + **out = **in + } + if in.TimeToResolve != nil { + in, out := &in.TimeToResolve, &out.TimeToResolve + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleResolveConfiguration_STATUS. +func (in *PrometheusRuleResolveConfiguration_STATUS) DeepCopy() *PrometheusRuleResolveConfiguration_STATUS { + if in == nil { + return nil + } + out := new(PrometheusRuleResolveConfiguration_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 *PrometheusRuleResolveConfiguration_STATUS_ARM) DeepCopyInto(out *PrometheusRuleResolveConfiguration_STATUS_ARM) { + *out = *in + if in.AutoResolved != nil { + in, out := &in.AutoResolved, &out.AutoResolved + *out = new(bool) + **out = **in + } + if in.TimeToResolve != nil { + in, out := &in.TimeToResolve, &out.TimeToResolve + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRuleResolveConfiguration_STATUS_ARM. +func (in *PrometheusRuleResolveConfiguration_STATUS_ARM) DeepCopy() *PrometheusRuleResolveConfiguration_STATUS_ARM { + if in == nil { + return nil + } + out := new(PrometheusRuleResolveConfiguration_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 *PrometheusRule_ARM) DeepCopyInto(out *PrometheusRule_ARM) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]PrometheusRuleGroupAction_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Alert != nil { + in, out := &in.Alert, &out.Alert + *out = new(string) + **out = **in + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expression != nil { + in, out := &in.Expression, &out.Expression + *out = new(string) + **out = **in + } + if in.For != nil { + in, out := &in.For, &out.For + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Record != nil { + in, out := &in.Record, &out.Record + *out = new(string) + **out = **in + } + if in.ResolveConfiguration != nil { + in, out := &in.ResolveConfiguration, &out.ResolveConfiguration + *out = new(PrometheusRuleResolveConfiguration_ARM) + (*in).DeepCopyInto(*out) + } + if in.Severity != nil { + in, out := &in.Severity, &out.Severity + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRule_ARM. +func (in *PrometheusRule_ARM) DeepCopy() *PrometheusRule_ARM { + if in == nil { + return nil + } + out := new(PrometheusRule_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 *PrometheusRule_STATUS) DeepCopyInto(out *PrometheusRule_STATUS) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]PrometheusRuleGroupAction_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Alert != nil { + in, out := &in.Alert, &out.Alert + *out = new(string) + **out = **in + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expression != nil { + in, out := &in.Expression, &out.Expression + *out = new(string) + **out = **in + } + if in.For != nil { + in, out := &in.For, &out.For + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Record != nil { + in, out := &in.Record, &out.Record + *out = new(string) + **out = **in + } + if in.ResolveConfiguration != nil { + in, out := &in.ResolveConfiguration, &out.ResolveConfiguration + *out = new(PrometheusRuleResolveConfiguration_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Severity != nil { + in, out := &in.Severity, &out.Severity + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRule_STATUS. +func (in *PrometheusRule_STATUS) DeepCopy() *PrometheusRule_STATUS { + if in == nil { + return nil + } + out := new(PrometheusRule_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 *PrometheusRule_STATUS_ARM) DeepCopyInto(out *PrometheusRule_STATUS_ARM) { + *out = *in + if in.Actions != nil { + in, out := &in.Actions, &out.Actions + *out = make([]PrometheusRuleGroupAction_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Alert != nil { + in, out := &in.Alert, &out.Alert + *out = new(string) + **out = **in + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expression != nil { + in, out := &in.Expression, &out.Expression + *out = new(string) + **out = **in + } + if in.For != nil { + in, out := &in.For, &out.For + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Record != nil { + in, out := &in.Record, &out.Record + *out = new(string) + **out = **in + } + if in.ResolveConfiguration != nil { + in, out := &in.ResolveConfiguration, &out.ResolveConfiguration + *out = new(PrometheusRuleResolveConfiguration_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Severity != nil { + in, out := &in.Severity, &out.Severity + *out = new(int) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PrometheusRule_STATUS_ARM. +func (in *PrometheusRule_STATUS_ARM) DeepCopy() *PrometheusRule_STATUS_ARM { + if in == nil { + return nil + } + out := new(PrometheusRule_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 *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 +} diff --git a/v2/api/alertsmanagement/versions_matrix.md b/v2/api/alertsmanagement/versions_matrix.md new file mode 100644 index 00000000000..1954562e126 --- /dev/null +++ b/v2/api/alertsmanagement/versions_matrix.md @@ -0,0 +1,17 @@ +| Type Definitions in package "alertsmanagement" | v1api20230301 | +|------------------------------------------------|---------------| +| APIVersion | v1api20230301 | +| PrometheusRule | v1api20230301 | +| PrometheusRuleGroup | v1api20230301 | +| PrometheusRuleGroupAction | v1api20230301 | +| PrometheusRuleGroupAction_STATUS | v1api20230301 | +| PrometheusRuleGroupProperties | v1api20230301 | +| PrometheusRuleGroupProperties_STATUS | v1api20230301 | +| PrometheusRuleGroup_STATUS | v1api20230301 | +| PrometheusRuleGroup_Spec | v1api20230301 | +| PrometheusRuleResolveConfiguration | v1api20230301 | +| PrometheusRuleResolveConfiguration_STATUS | v1api20230301 | +| PrometheusRule_STATUS | v1api20230301 | +| SystemData_CreatedByType_STATUS | v1api20230301 | +| SystemData_LastModifiedByType_STATUS | v1api20230301 | +| SystemData_STATUS | v1api20230301 | diff --git a/v2/api/monitor/customizations/account_extension_types_gen.go b/v2/api/monitor/customizations/account_extension_types_gen.go new file mode 100644 index 00000000000..2c037034578 --- /dev/null +++ b/v2/api/monitor/customizations/account_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 ( + v20230403 "github.com/Azure/azure-service-operator/v2/api/monitor/v1api20230403" + v20230403s "github.com/Azure/azure-service-operator/v2/api/monitor/v1api20230403/storage" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +type AccountExtension struct { +} + +// GetExtendedResources Returns the KubernetesResource slice for Resource versions +func (extension *AccountExtension) GetExtendedResources() []genruntime.KubernetesResource { + return []genruntime.KubernetesResource{ + &v20230403.Account{}, + &v20230403s.Account{}} +} diff --git a/v2/api/monitor/customizations/structure.txt b/v2/api/monitor/customizations/structure.txt new file mode 100644 index 00000000000..9b0097184cd --- /dev/null +++ b/v2/api/monitor/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/monitor/customizations +└── AccountExtension: Object (0 properties) diff --git a/v2/api/monitor/v1api20230403/account_spec_arm_types_gen.go b/v2/api/monitor/v1api20230403/account_spec_arm_types_gen.go new file mode 100644 index 00000000000..8dd77d7bc64 --- /dev/null +++ b/v2/api/monitor/v1api20230403/account_spec_arm_types_gen.go @@ -0,0 +1,32 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230403 + +import "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + +type Account_Spec_ARM struct { + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + Name string `json:"name,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` +} + +var _ genruntime.ARMResourceSpec = &Account_Spec_ARM{} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-04-03" +func (account Account_Spec_ARM) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetName returns the Name of the resource +func (account *Account_Spec_ARM) GetName() string { + return account.Name +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.Monitor/accounts" +func (account *Account_Spec_ARM) GetType() string { + return "Microsoft.Monitor/accounts" +} diff --git a/v2/api/monitor/v1api20230403/account_spec_arm_types_gen_test.go b/v2/api/monitor/v1api20230403/account_spec_arm_types_gen_test.go new file mode 100644 index 00000000000..cb0d6d9aa76 --- /dev/null +++ b/v2/api/monitor/v1api20230403/account_spec_arm_types_gen_test.go @@ -0,0 +1,82 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230403 + +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_Account_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 Account_Spec_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAccount_Spec_ARM, Account_Spec_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAccount_Spec_ARM runs a test to see if a specific instance of Account_Spec_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForAccount_Spec_ARM(subject Account_Spec_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Account_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 Account_Spec_ARM instances for property testing - lazily instantiated by Account_Spec_ARMGenerator() +var account_Spec_ARMGenerator gopter.Gen + +// Account_Spec_ARMGenerator returns a generator of Account_Spec_ARM instances for property testing. +func Account_Spec_ARMGenerator() gopter.Gen { + if account_Spec_ARMGenerator != nil { + return account_Spec_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAccount_Spec_ARM(generators) + account_Spec_ARMGenerator = gen.Struct(reflect.TypeOf(Account_Spec_ARM{}), generators) + + return account_Spec_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForAccount_Spec_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAccount_Spec_ARM(gens map[string]gopter.Gen) { + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.AlphaString() + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} diff --git a/v2/api/monitor/v1api20230403/account_status_arm_types_gen.go b/v2/api/monitor/v1api20230403/account_status_arm_types_gen.go new file mode 100644 index 00000000000..5612f1f497e --- /dev/null +++ b/v2/api/monitor/v1api20230403/account_status_arm_types_gen.go @@ -0,0 +1,133 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230403 + +type Account_STATUS_ARM struct { + // Etag: Resource entity tag (ETag) + Etag *string `json:"etag,omitempty"` + + // Id: Fully qualified resource ID for the resource. Ex - + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + Id *string `json:"id,omitempty"` + + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + + // Name: The name of the resource + Name *string `json:"name,omitempty"` + + // Properties: Resource properties + Properties *AzureMonitorWorkspace_STATUS_ARM `json:"properties,omitempty"` + + // SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData_STATUS_ARM `json:"systemData,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +// Properties of an Azure Monitor Workspace +type AzureMonitorWorkspace_STATUS_ARM struct { + // AccountId: The immutable Id of the Azure Monitor Workspace. This property is read-only. + AccountId *string `json:"accountId,omitempty"` + + // DefaultIngestionSettings: The Data Collection Rule and Endpoint used for ingestion by default. + DefaultIngestionSettings *IngestionSettings_STATUS_ARM `json:"defaultIngestionSettings,omitempty"` + + // Metrics: Properties related to the metrics container in the Azure Monitor Workspace + Metrics *Metrics_STATUS_ARM `json:"metrics,omitempty"` + + // PrivateEndpointConnections: List of private endpoint connections + PrivateEndpointConnections []PrivateEndpointConnection_STATUS_ARM `json:"privateEndpointConnections,omitempty"` + + // ProvisioningState: The provisioning state of the Azure Monitor Workspace. Set to Succeeded if everything is healthy. + ProvisioningState *AzureMonitorWorkspace_ProvisioningState_STATUS `json:"provisioningState,omitempty"` + + // PublicNetworkAccess: Gets or sets allow or disallow public network access to Azure Monitor Workspace + PublicNetworkAccess *AzureMonitorWorkspace_PublicNetworkAccess_STATUS `json:"publicNetworkAccess,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"` +} + +// Settings for data ingestion +type IngestionSettings_STATUS_ARM struct { + // DataCollectionEndpointResourceId: The Azure resource Id of the default data collection endpoint for this Azure Monitor + // Workspace. + DataCollectionEndpointResourceId *string `json:"dataCollectionEndpointResourceId,omitempty"` + + // DataCollectionRuleResourceId: The Azure resource Id of the default data collection rule for this Azure Monitor Workspace. + DataCollectionRuleResourceId *string `json:"dataCollectionRuleResourceId,omitempty"` +} + +// Properties related to the metrics container in the Azure Monitor Workspace +type Metrics_STATUS_ARM struct { + // InternalId: An internal identifier for the metrics container. Only to be used by the system + InternalId *string `json:"internalId,omitempty"` + + // PrometheusQueryEndpoint: The Prometheus query endpoint for the Azure Monitor Workspace + PrometheusQueryEndpoint *string `json:"prometheusQueryEndpoint,omitempty"` +} + +// The private endpoint connection resource. +type PrivateEndpointConnection_STATUS_ARM struct { + // Id: Fully qualified resource ID for the resource. E.g. + // "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + Id *string `json:"id,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") +) + +// Mapping from string to SystemData_CreatedByType_STATUS +var systemData_CreatedByType_STATUS_Values = map[string]SystemData_CreatedByType_STATUS{ + "application": SystemData_CreatedByType_STATUS_Application, + "key": SystemData_CreatedByType_STATUS_Key, + "managedidentity": SystemData_CreatedByType_STATUS_ManagedIdentity, + "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") +) + +// Mapping from string to SystemData_LastModifiedByType_STATUS +var systemData_LastModifiedByType_STATUS_Values = map[string]SystemData_LastModifiedByType_STATUS{ + "application": SystemData_LastModifiedByType_STATUS_Application, + "key": SystemData_LastModifiedByType_STATUS_Key, + "managedidentity": SystemData_LastModifiedByType_STATUS_ManagedIdentity, + "user": SystemData_LastModifiedByType_STATUS_User, +} diff --git a/v2/api/monitor/v1api20230403/account_status_arm_types_gen_test.go b/v2/api/monitor/v1api20230403/account_status_arm_types_gen_test.go new file mode 100644 index 00000000000..f73377f4120 --- /dev/null +++ b/v2/api/monitor/v1api20230403/account_status_arm_types_gen_test.go @@ -0,0 +1,442 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230403 + +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_Account_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 Account_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAccount_STATUS_ARM, Account_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAccount_STATUS_ARM runs a test to see if a specific instance of Account_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForAccount_STATUS_ARM(subject Account_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Account_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 Account_STATUS_ARM instances for property testing - lazily instantiated by Account_STATUS_ARMGenerator() +var account_STATUS_ARMGenerator gopter.Gen + +// Account_STATUS_ARMGenerator returns a generator of Account_STATUS_ARM instances for property testing. +// We first initialize account_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 Account_STATUS_ARMGenerator() gopter.Gen { + if account_STATUS_ARMGenerator != nil { + return account_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAccount_STATUS_ARM(generators) + account_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(Account_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAccount_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForAccount_STATUS_ARM(generators) + account_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(Account_STATUS_ARM{}), generators) + + return account_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForAccount_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAccount_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()) +} + +// AddRelatedPropertyGeneratorsForAccount_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAccount_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Properties"] = gen.PtrOf(AzureMonitorWorkspace_STATUS_ARMGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUS_ARMGenerator()) +} + +func Test_AzureMonitorWorkspace_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 AzureMonitorWorkspace_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAzureMonitorWorkspace_STATUS_ARM, AzureMonitorWorkspace_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAzureMonitorWorkspace_STATUS_ARM runs a test to see if a specific instance of AzureMonitorWorkspace_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForAzureMonitorWorkspace_STATUS_ARM(subject AzureMonitorWorkspace_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual AzureMonitorWorkspace_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 AzureMonitorWorkspace_STATUS_ARM instances for property testing - lazily instantiated by +// AzureMonitorWorkspace_STATUS_ARMGenerator() +var azureMonitorWorkspace_STATUS_ARMGenerator gopter.Gen + +// AzureMonitorWorkspace_STATUS_ARMGenerator returns a generator of AzureMonitorWorkspace_STATUS_ARM instances for property testing. +// We first initialize azureMonitorWorkspace_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 AzureMonitorWorkspace_STATUS_ARMGenerator() gopter.Gen { + if azureMonitorWorkspace_STATUS_ARMGenerator != nil { + return azureMonitorWorkspace_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAzureMonitorWorkspace_STATUS_ARM(generators) + azureMonitorWorkspace_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(AzureMonitorWorkspace_STATUS_ARM{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAzureMonitorWorkspace_STATUS_ARM(generators) + AddRelatedPropertyGeneratorsForAzureMonitorWorkspace_STATUS_ARM(generators) + azureMonitorWorkspace_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(AzureMonitorWorkspace_STATUS_ARM{}), generators) + + return azureMonitorWorkspace_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForAzureMonitorWorkspace_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAzureMonitorWorkspace_STATUS_ARM(gens map[string]gopter.Gen) { + gens["AccountId"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.OneConstOf( + AzureMonitorWorkspace_ProvisioningState_STATUS_Canceled, + AzureMonitorWorkspace_ProvisioningState_STATUS_Creating, + AzureMonitorWorkspace_ProvisioningState_STATUS_Deleting, + AzureMonitorWorkspace_ProvisioningState_STATUS_Failed, + AzureMonitorWorkspace_ProvisioningState_STATUS_Succeeded)) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.OneConstOf(AzureMonitorWorkspace_PublicNetworkAccess_STATUS_Disabled, AzureMonitorWorkspace_PublicNetworkAccess_STATUS_Enabled)) +} + +// AddRelatedPropertyGeneratorsForAzureMonitorWorkspace_STATUS_ARM is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAzureMonitorWorkspace_STATUS_ARM(gens map[string]gopter.Gen) { + gens["DefaultIngestionSettings"] = gen.PtrOf(IngestionSettings_STATUS_ARMGenerator()) + gens["Metrics"] = gen.PtrOf(Metrics_STATUS_ARMGenerator()) + gens["PrivateEndpointConnections"] = gen.SliceOf(PrivateEndpointConnection_STATUS_ARMGenerator()) +} + +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_IngestionSettings_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 IngestionSettings_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIngestionSettings_STATUS_ARM, IngestionSettings_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIngestionSettings_STATUS_ARM runs a test to see if a specific instance of IngestionSettings_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForIngestionSettings_STATUS_ARM(subject IngestionSettings_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IngestionSettings_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 IngestionSettings_STATUS_ARM instances for property testing - lazily instantiated by +// IngestionSettings_STATUS_ARMGenerator() +var ingestionSettings_STATUS_ARMGenerator gopter.Gen + +// IngestionSettings_STATUS_ARMGenerator returns a generator of IngestionSettings_STATUS_ARM instances for property testing. +func IngestionSettings_STATUS_ARMGenerator() gopter.Gen { + if ingestionSettings_STATUS_ARMGenerator != nil { + return ingestionSettings_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIngestionSettings_STATUS_ARM(generators) + ingestionSettings_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(IngestionSettings_STATUS_ARM{}), generators) + + return ingestionSettings_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForIngestionSettings_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIngestionSettings_STATUS_ARM(gens map[string]gopter.Gen) { + gens["DataCollectionEndpointResourceId"] = gen.PtrOf(gen.AlphaString()) + gens["DataCollectionRuleResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_Metrics_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 Metrics_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForMetrics_STATUS_ARM, Metrics_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForMetrics_STATUS_ARM runs a test to see if a specific instance of Metrics_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForMetrics_STATUS_ARM(subject Metrics_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Metrics_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 Metrics_STATUS_ARM instances for property testing - lazily instantiated by Metrics_STATUS_ARMGenerator() +var metrics_STATUS_ARMGenerator gopter.Gen + +// Metrics_STATUS_ARMGenerator returns a generator of Metrics_STATUS_ARM instances for property testing. +func Metrics_STATUS_ARMGenerator() gopter.Gen { + if metrics_STATUS_ARMGenerator != nil { + return metrics_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForMetrics_STATUS_ARM(generators) + metrics_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(Metrics_STATUS_ARM{}), generators) + + return metrics_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForMetrics_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForMetrics_STATUS_ARM(gens map[string]gopter.Gen) { + gens["InternalId"] = gen.PtrOf(gen.AlphaString()) + gens["PrometheusQueryEndpoint"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrivateEndpointConnection_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 PrivateEndpointConnection_STATUS_ARM via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateEndpointConnection_STATUS_ARM, PrivateEndpointConnection_STATUS_ARMGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateEndpointConnection_STATUS_ARM runs a test to see if a specific instance of PrivateEndpointConnection_STATUS_ARM round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateEndpointConnection_STATUS_ARM(subject PrivateEndpointConnection_STATUS_ARM) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateEndpointConnection_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 PrivateEndpointConnection_STATUS_ARM instances for property testing - lazily instantiated by +// PrivateEndpointConnection_STATUS_ARMGenerator() +var privateEndpointConnection_STATUS_ARMGenerator gopter.Gen + +// PrivateEndpointConnection_STATUS_ARMGenerator returns a generator of PrivateEndpointConnection_STATUS_ARM instances for property testing. +func PrivateEndpointConnection_STATUS_ARMGenerator() gopter.Gen { + if privateEndpointConnection_STATUS_ARMGenerator != nil { + return privateEndpointConnection_STATUS_ARMGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateEndpointConnection_STATUS_ARM(generators) + privateEndpointConnection_STATUS_ARMGenerator = gen.Struct(reflect.TypeOf(PrivateEndpointConnection_STATUS_ARM{}), generators) + + return privateEndpointConnection_STATUS_ARMGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateEndpointConnection_STATUS_ARM is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateEndpointConnection_STATUS_ARM(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) +} diff --git a/v2/api/monitor/v1api20230403/account_types_gen.go b/v2/api/monitor/v1api20230403/account_types_gen.go new file mode 100644 index 00000000000..7c219633c17 --- /dev/null +++ b/v2/api/monitor/v1api20230403/account_types_gen.go @@ -0,0 +1,1393 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230403 + +import ( + "fmt" + v20230403s "github.com/Azure/azure-service-operator/v2/api/monitor/v1api20230403/storage" + "github.com/Azure/azure-service-operator/v2/internal/reflecthelpers" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/conversion" + "sigs.k8s.io/controller-runtime/pkg/webhook/admission" +) + +// +kubebuilder:object:root=true +// +kubebuilder:subresource:status +// +kubebuilder:printcolumn:name="Ready",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="Severity",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].severity" +// +kubebuilder:printcolumn:name="Reason",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].reason" +// +kubebuilder:printcolumn:name="Message",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].message" +// Generator information: +// - Generated from: /monitor/resource-manager/Microsoft.Monitor/stable/2023-04-03/monitoringAccounts_API.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Monitor/accounts/{azureMonitorWorkspaceName} +type Account struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec Account_Spec `json:"spec,omitempty"` + Status Account_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &Account{} + +// GetConditions returns the conditions of the resource +func (account *Account) GetConditions() conditions.Conditions { + return account.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (account *Account) SetConditions(conditions conditions.Conditions) { + account.Status.Conditions = conditions +} + +var _ conversion.Convertible = &Account{} + +// ConvertFrom populates our Account from the provided hub Account +func (account *Account) ConvertFrom(hub conversion.Hub) error { + source, ok := hub.(*v20230403s.Account) + if !ok { + return fmt.Errorf("expected monitor/v1api20230403/storage/Account but received %T instead", hub) + } + + return account.AssignProperties_From_Account(source) +} + +// ConvertTo populates the provided hub Account from our Account +func (account *Account) ConvertTo(hub conversion.Hub) error { + destination, ok := hub.(*v20230403s.Account) + if !ok { + return fmt.Errorf("expected monitor/v1api20230403/storage/Account but received %T instead", hub) + } + + return account.AssignProperties_To_Account(destination) +} + +// +kubebuilder:webhook:path=/mutate-monitor-azure-com-v1api20230403-account,mutating=true,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=monitor.azure.com,resources=accounts,verbs=create;update,versions=v1api20230403,name=default.v1api20230403.accounts.monitor.azure.com,admissionReviewVersions=v1 + +var _ admission.Defaulter = &Account{} + +// Default applies defaults to the Account resource +func (account *Account) Default() { + account.defaultImpl() + var temp any = account + if runtimeDefaulter, ok := temp.(genruntime.Defaulter); ok { + runtimeDefaulter.CustomDefault() + } +} + +// defaultAzureName defaults the Azure name of the resource to the Kubernetes name +func (account *Account) defaultAzureName() { + if account.Spec.AzureName == "" { + account.Spec.AzureName = account.Name + } +} + +// defaultImpl applies the code generated defaults to the Account resource +func (account *Account) defaultImpl() { account.defaultAzureName() } + +var _ genruntime.ImportableResource = &Account{} + +// InitializeSpec initializes the spec for this resource from the given status +func (account *Account) InitializeSpec(status genruntime.ConvertibleStatus) error { + if s, ok := status.(*Account_STATUS); ok { + return account.Spec.Initialize_From_Account_STATUS(s) + } + + return fmt.Errorf("expected Status of type Account_STATUS but received %T instead", status) +} + +var _ genruntime.KubernetesResource = &Account{} + +// AzureName returns the Azure name of the resource +func (account *Account) AzureName() string { + return account.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-04-03" +func (account Account) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (account *Account) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (account *Account) GetSpec() genruntime.ConvertibleSpec { + return &account.Spec +} + +// GetStatus returns the status of this resource +func (account *Account) GetStatus() genruntime.ConvertibleStatus { + return &account.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (account *Account) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.Monitor/accounts" +func (account *Account) GetType() string { + return "Microsoft.Monitor/accounts" +} + +// NewEmptyStatus returns a new empty (blank) status +func (account *Account) NewEmptyStatus() genruntime.ConvertibleStatus { + return &Account_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (account *Account) Owner() *genruntime.ResourceReference { + group, kind := genruntime.LookupOwnerGroupKind(account.Spec) + return account.Spec.Owner.AsResourceReference(group, kind) +} + +// SetStatus sets the status of this resource +func (account *Account) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*Account_STATUS); ok { + account.Status = *st + return nil + } + + // Convert status to required version + var st Account_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + account.Status = st + return nil +} + +// +kubebuilder:webhook:path=/validate-monitor-azure-com-v1api20230403-account,mutating=false,sideEffects=None,matchPolicy=Exact,failurePolicy=fail,groups=monitor.azure.com,resources=accounts,verbs=create;update,versions=v1api20230403,name=validate.v1api20230403.accounts.monitor.azure.com,admissionReviewVersions=v1 + +var _ admission.Validator = &Account{} + +// ValidateCreate validates the creation of the resource +func (account *Account) ValidateCreate() (admission.Warnings, error) { + validations := account.createValidations() + var temp any = account + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.CreateValidations()...) + } + return genruntime.ValidateCreate(validations) +} + +// ValidateDelete validates the deletion of the resource +func (account *Account) ValidateDelete() (admission.Warnings, error) { + validations := account.deleteValidations() + var temp any = account + if runtimeValidator, ok := temp.(genruntime.Validator); ok { + validations = append(validations, runtimeValidator.DeleteValidations()...) + } + return genruntime.ValidateDelete(validations) +} + +// ValidateUpdate validates an update of the resource +func (account *Account) ValidateUpdate(old runtime.Object) (admission.Warnings, error) { + validations := account.updateValidations() + var temp any = account + 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 (account *Account) createValidations() []func() (admission.Warnings, error) { + return []func() (admission.Warnings, error){account.validateResourceReferences, account.validateOwnerReference} +} + +// deleteValidations validates the deletion of the resource +func (account *Account) deleteValidations() []func() (admission.Warnings, error) { + return nil +} + +// updateValidations validates the update of the resource +func (account *Account) updateValidations() []func(old runtime.Object) (admission.Warnings, error) { + return []func(old runtime.Object) (admission.Warnings, error){ + func(old runtime.Object) (admission.Warnings, error) { + return account.validateResourceReferences() + }, + account.validateWriteOnceProperties, + func(old runtime.Object) (admission.Warnings, error) { + return account.validateOwnerReference() + }, + } +} + +// validateOwnerReference validates the owner field +func (account *Account) validateOwnerReference() (admission.Warnings, error) { + return genruntime.ValidateOwner(account) +} + +// validateResourceReferences validates all resource references +func (account *Account) validateResourceReferences() (admission.Warnings, error) { + refs, err := reflecthelpers.FindResourceReferences(&account.Spec) + if err != nil { + return nil, err + } + return genruntime.ValidateResourceReferences(refs) +} + +// validateWriteOnceProperties validates all WriteOnce properties +func (account *Account) validateWriteOnceProperties(old runtime.Object) (admission.Warnings, error) { + oldObj, ok := old.(*Account) + if !ok { + return nil, nil + } + + return genruntime.ValidateWriteOnceProperties(oldObj, account) +} + +// AssignProperties_From_Account populates our Account from the provided source Account +func (account *Account) AssignProperties_From_Account(source *v20230403s.Account) error { + + // ObjectMeta + account.ObjectMeta = *source.ObjectMeta.DeepCopy() + + // Spec + var spec Account_Spec + err := spec.AssignProperties_From_Account_Spec(&source.Spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_Account_Spec() to populate field Spec") + } + account.Spec = spec + + // Status + var status Account_STATUS + err = status.AssignProperties_From_Account_STATUS(&source.Status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_Account_STATUS() to populate field Status") + } + account.Status = status + + // No error + return nil +} + +// AssignProperties_To_Account populates the provided destination Account from our Account +func (account *Account) AssignProperties_To_Account(destination *v20230403s.Account) error { + + // ObjectMeta + destination.ObjectMeta = *account.ObjectMeta.DeepCopy() + + // Spec + var spec v20230403s.Account_Spec + err := account.Spec.AssignProperties_To_Account_Spec(&spec) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_Account_Spec() to populate field Spec") + } + destination.Spec = spec + + // Status + var status v20230403s.Account_STATUS + err = account.Status.AssignProperties_To_Account_STATUS(&status) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_Account_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 (account *Account) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: account.Spec.OriginalVersion(), + Kind: "Account", + } +} + +// +kubebuilder:object:root=true +// Generator information: +// - Generated from: /monitor/resource-manager/Microsoft.Monitor/stable/2023-04-03/monitoringAccounts_API.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Monitor/accounts/{azureMonitorWorkspaceName} +type AccountList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Account `json:"items"` +} + +type Account_Spec struct { + // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it + // doesn't have to be. + AzureName string `json:"azureName,omitempty"` + + // +kubebuilder:validation:Required + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a + // reference to a resources.azure.com/ResourceGroup resource + Owner *genruntime.KnownResourceReference `group:"resources.azure.com" json:"owner,omitempty" kind:"ResourceGroup"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` +} + +var _ genruntime.ARMTransformer = &Account_Spec{} + +// ConvertToARM converts from a Kubernetes CRD object to an ARM object +func (account *Account_Spec) ConvertToARM(resolved genruntime.ConvertToARMResolvedDetails) (interface{}, error) { + if account == nil { + return nil, nil + } + result := &Account_Spec_ARM{} + + // Set property "Location": + if account.Location != nil { + location := *account.Location + result.Location = &location + } + + // Set property "Name": + result.Name = resolved.Name + + // Set property "Tags": + if account.Tags != nil { + result.Tags = make(map[string]string, len(account.Tags)) + for key, value := range account.Tags { + result.Tags[key] = value + } + } + return result, nil +} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (account *Account_Spec) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &Account_Spec_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (account *Account_Spec) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(Account_Spec_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected Account_Spec_ARM, got %T", armInput) + } + + // Set property "AzureName": + account.SetAzureName(genruntime.ExtractKubernetesResourceNameFromARMName(typedInput.Name)) + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + account.Location = &location + } + + // Set property "Owner": + account.Owner = &genruntime.KnownResourceReference{ + Name: owner.Name, + ARMID: owner.ARMID, + } + + // Set property "Tags": + if typedInput.Tags != nil { + account.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + account.Tags[key] = value + } + } + + // No error + return nil +} + +var _ genruntime.ConvertibleSpec = &Account_Spec{} + +// ConvertSpecFrom populates our Account_Spec from the provided source +func (account *Account_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + src, ok := source.(*v20230403s.Account_Spec) + if ok { + // Populate our instance from source + return account.AssignProperties_From_Account_Spec(src) + } + + // Convert to an intermediate form + src = &v20230403s.Account_Spec{} + err := src.ConvertSpecFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertSpecFrom()") + } + + // Update our instance from src + err = account.AssignProperties_From_Account_Spec(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertSpecFrom()") + } + + return nil +} + +// ConvertSpecTo populates the provided destination from our Account_Spec +func (account *Account_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + dst, ok := destination.(*v20230403s.Account_Spec) + if ok { + // Populate destination from our instance + return account.AssignProperties_To_Account_Spec(dst) + } + + // Convert to an intermediate form + dst = &v20230403s.Account_Spec{} + err := account.AssignProperties_To_Account_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_Account_Spec populates our Account_Spec from the provided source Account_Spec +func (account *Account_Spec) AssignProperties_From_Account_Spec(source *v20230403s.Account_Spec) error { + + // AzureName + account.AzureName = source.AzureName + + // Location + account.Location = genruntime.ClonePointerToString(source.Location) + + // Owner + if source.Owner != nil { + owner := source.Owner.Copy() + account.Owner = &owner + } else { + account.Owner = nil + } + + // Tags + account.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // No error + return nil +} + +// AssignProperties_To_Account_Spec populates the provided destination Account_Spec from our Account_Spec +func (account *Account_Spec) AssignProperties_To_Account_Spec(destination *v20230403s.Account_Spec) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AzureName + destination.AzureName = account.AzureName + + // Location + destination.Location = genruntime.ClonePointerToString(account.Location) + + // OriginalVersion + destination.OriginalVersion = account.OriginalVersion() + + // Owner + if account.Owner != nil { + owner := account.Owner.Copy() + destination.Owner = &owner + } else { + destination.Owner = nil + } + + // Tags + destination.Tags = genruntime.CloneMapOfStringToString(account.Tags) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Initialize_From_Account_STATUS populates our Account_Spec from the provided source Account_STATUS +func (account *Account_Spec) Initialize_From_Account_STATUS(source *Account_STATUS) error { + + // Location + account.Location = genruntime.ClonePointerToString(source.Location) + + // Tags + account.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // No error + return nil +} + +// OriginalVersion returns the original API version used to create the resource. +func (account *Account_Spec) OriginalVersion() string { + return GroupVersion.Version +} + +// SetAzureName sets the Azure name of the resource +func (account *Account_Spec) SetAzureName(azureName string) { account.AzureName = azureName } + +type Account_STATUS struct { + // AccountId: The immutable Id of the Azure Monitor Workspace. This property is read-only. + AccountId *string `json:"accountId,omitempty"` + + // Conditions: The observed state of the resource + Conditions []conditions.Condition `json:"conditions,omitempty"` + + // DefaultIngestionSettings: The Data Collection Rule and Endpoint used for ingestion by default. + DefaultIngestionSettings *IngestionSettings_STATUS `json:"defaultIngestionSettings,omitempty"` + + // Etag: Resource entity tag (ETag) + Etag *string `json:"etag,omitempty"` + + // Id: Fully qualified resource ID for the resource. Ex - + // /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName} + Id *string `json:"id,omitempty"` + + // Location: The geo-location where the resource lives + Location *string `json:"location,omitempty"` + + // Metrics: Properties related to the metrics container in the Azure Monitor Workspace + Metrics *Metrics_STATUS `json:"metrics,omitempty"` + + // Name: The name of the resource + Name *string `json:"name,omitempty"` + + // PrivateEndpointConnections: List of private endpoint connections + PrivateEndpointConnections []PrivateEndpointConnection_STATUS `json:"privateEndpointConnections,omitempty"` + + // ProvisioningState: The provisioning state of the Azure Monitor Workspace. Set to Succeeded if everything is healthy. + ProvisioningState *AzureMonitorWorkspace_ProvisioningState_STATUS `json:"provisioningState,omitempty"` + + // PublicNetworkAccess: Gets or sets allow or disallow public network access to Azure Monitor Workspace + PublicNetworkAccess *AzureMonitorWorkspace_PublicNetworkAccess_STATUS `json:"publicNetworkAccess,omitempty"` + + // SystemData: Azure Resource Manager metadata containing createdBy and modifiedBy information. + SystemData *SystemData_STATUS `json:"systemData,omitempty"` + + // Tags: Resource tags. + Tags map[string]string `json:"tags,omitempty"` + + // Type: The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts" + Type *string `json:"type,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &Account_STATUS{} + +// ConvertStatusFrom populates our Account_STATUS from the provided source +func (account *Account_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + src, ok := source.(*v20230403s.Account_STATUS) + if ok { + // Populate our instance from source + return account.AssignProperties_From_Account_STATUS(src) + } + + // Convert to an intermediate form + src = &v20230403s.Account_STATUS{} + err := src.ConvertStatusFrom(source) + if err != nil { + return errors.Wrap(err, "initial step of conversion in ConvertStatusFrom()") + } + + // Update our instance from src + err = account.AssignProperties_From_Account_STATUS(src) + if err != nil { + return errors.Wrap(err, "final step of conversion in ConvertStatusFrom()") + } + + return nil +} + +// ConvertStatusTo populates the provided destination from our Account_STATUS +func (account *Account_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + dst, ok := destination.(*v20230403s.Account_STATUS) + if ok { + // Populate destination from our instance + return account.AssignProperties_To_Account_STATUS(dst) + } + + // Convert to an intermediate form + dst = &v20230403s.Account_STATUS{} + err := account.AssignProperties_To_Account_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 = &Account_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (account *Account_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &Account_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (account *Account_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(Account_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected Account_STATUS_ARM, got %T", armInput) + } + + // Set property "AccountId": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.AccountId != nil { + accountId := *typedInput.Properties.AccountId + account.AccountId = &accountId + } + } + + // no assignment for property "Conditions" + + // Set property "DefaultIngestionSettings": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.DefaultIngestionSettings != nil { + var defaultIngestionSettings1 IngestionSettings_STATUS + err := defaultIngestionSettings1.PopulateFromARM(owner, *typedInput.Properties.DefaultIngestionSettings) + if err != nil { + return err + } + defaultIngestionSettings := defaultIngestionSettings1 + account.DefaultIngestionSettings = &defaultIngestionSettings + } + } + + // Set property "Etag": + if typedInput.Etag != nil { + etag := *typedInput.Etag + account.Etag = &etag + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + account.Id = &id + } + + // Set property "Location": + if typedInput.Location != nil { + location := *typedInput.Location + account.Location = &location + } + + // Set property "Metrics": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.Metrics != nil { + var metrics1 Metrics_STATUS + err := metrics1.PopulateFromARM(owner, *typedInput.Properties.Metrics) + if err != nil { + return err + } + metrics := metrics1 + account.Metrics = &metrics + } + } + + // Set property "Name": + if typedInput.Name != nil { + name := *typedInput.Name + account.Name = &name + } + + // Set property "PrivateEndpointConnections": + // copying flattened property: + if typedInput.Properties != nil { + for _, item := range typedInput.Properties.PrivateEndpointConnections { + var item1 PrivateEndpointConnection_STATUS + err := item1.PopulateFromARM(owner, item) + if err != nil { + return err + } + account.PrivateEndpointConnections = append(account.PrivateEndpointConnections, item1) + } + } + + // Set property "ProvisioningState": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.ProvisioningState != nil { + provisioningState := *typedInput.Properties.ProvisioningState + account.ProvisioningState = &provisioningState + } + } + + // Set property "PublicNetworkAccess": + // copying flattened property: + if typedInput.Properties != nil { + if typedInput.Properties.PublicNetworkAccess != nil { + publicNetworkAccess := *typedInput.Properties.PublicNetworkAccess + account.PublicNetworkAccess = &publicNetworkAccess + } + } + + // Set property "SystemData": + if typedInput.SystemData != nil { + var systemData1 SystemData_STATUS + err := systemData1.PopulateFromARM(owner, *typedInput.SystemData) + if err != nil { + return err + } + systemData := systemData1 + account.SystemData = &systemData + } + + // Set property "Tags": + if typedInput.Tags != nil { + account.Tags = make(map[string]string, len(typedInput.Tags)) + for key, value := range typedInput.Tags { + account.Tags[key] = value + } + } + + // Set property "Type": + if typedInput.Type != nil { + typeVar := *typedInput.Type + account.Type = &typeVar + } + + // No error + return nil +} + +// AssignProperties_From_Account_STATUS populates our Account_STATUS from the provided source Account_STATUS +func (account *Account_STATUS) AssignProperties_From_Account_STATUS(source *v20230403s.Account_STATUS) error { + + // AccountId + account.AccountId = genruntime.ClonePointerToString(source.AccountId) + + // Conditions + account.Conditions = genruntime.CloneSliceOfCondition(source.Conditions) + + // DefaultIngestionSettings + if source.DefaultIngestionSettings != nil { + var defaultIngestionSetting IngestionSettings_STATUS + err := defaultIngestionSetting.AssignProperties_From_IngestionSettings_STATUS(source.DefaultIngestionSettings) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_IngestionSettings_STATUS() to populate field DefaultIngestionSettings") + } + account.DefaultIngestionSettings = &defaultIngestionSetting + } else { + account.DefaultIngestionSettings = nil + } + + // Etag + account.Etag = genruntime.ClonePointerToString(source.Etag) + + // Id + account.Id = genruntime.ClonePointerToString(source.Id) + + // Location + account.Location = genruntime.ClonePointerToString(source.Location) + + // Metrics + if source.Metrics != nil { + var metric Metrics_STATUS + err := metric.AssignProperties_From_Metrics_STATUS(source.Metrics) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_Metrics_STATUS() to populate field Metrics") + } + account.Metrics = &metric + } else { + account.Metrics = nil + } + + // Name + account.Name = genruntime.ClonePointerToString(source.Name) + + // PrivateEndpointConnections + if source.PrivateEndpointConnections != nil { + privateEndpointConnectionList := make([]PrivateEndpointConnection_STATUS, len(source.PrivateEndpointConnections)) + for privateEndpointConnectionIndex, privateEndpointConnectionItem := range source.PrivateEndpointConnections { + // Shadow the loop variable to avoid aliasing + privateEndpointConnectionItem := privateEndpointConnectionItem + var privateEndpointConnection PrivateEndpointConnection_STATUS + err := privateEndpointConnection.AssignProperties_From_PrivateEndpointConnection_STATUS(&privateEndpointConnectionItem) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_From_PrivateEndpointConnection_STATUS() to populate field PrivateEndpointConnections") + } + privateEndpointConnectionList[privateEndpointConnectionIndex] = privateEndpointConnection + } + account.PrivateEndpointConnections = privateEndpointConnectionList + } else { + account.PrivateEndpointConnections = nil + } + + // ProvisioningState + if source.ProvisioningState != nil { + provisioningState := *source.ProvisioningState + provisioningStateTemp := genruntime.ToEnum(provisioningState, azureMonitorWorkspace_ProvisioningState_STATUS_Values) + account.ProvisioningState = &provisioningStateTemp + } else { + account.ProvisioningState = nil + } + + // PublicNetworkAccess + if source.PublicNetworkAccess != nil { + publicNetworkAccess := *source.PublicNetworkAccess + publicNetworkAccessTemp := genruntime.ToEnum(publicNetworkAccess, azureMonitorWorkspace_PublicNetworkAccess_STATUS_Values) + account.PublicNetworkAccess = &publicNetworkAccessTemp + } else { + account.PublicNetworkAccess = 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") + } + account.SystemData = &systemDatum + } else { + account.SystemData = nil + } + + // Tags + account.Tags = genruntime.CloneMapOfStringToString(source.Tags) + + // Type + account.Type = genruntime.ClonePointerToString(source.Type) + + // No error + return nil +} + +// AssignProperties_To_Account_STATUS populates the provided destination Account_STATUS from our Account_STATUS +func (account *Account_STATUS) AssignProperties_To_Account_STATUS(destination *v20230403s.Account_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // AccountId + destination.AccountId = genruntime.ClonePointerToString(account.AccountId) + + // Conditions + destination.Conditions = genruntime.CloneSliceOfCondition(account.Conditions) + + // DefaultIngestionSettings + if account.DefaultIngestionSettings != nil { + var defaultIngestionSetting v20230403s.IngestionSettings_STATUS + err := account.DefaultIngestionSettings.AssignProperties_To_IngestionSettings_STATUS(&defaultIngestionSetting) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_IngestionSettings_STATUS() to populate field DefaultIngestionSettings") + } + destination.DefaultIngestionSettings = &defaultIngestionSetting + } else { + destination.DefaultIngestionSettings = nil + } + + // Etag + destination.Etag = genruntime.ClonePointerToString(account.Etag) + + // Id + destination.Id = genruntime.ClonePointerToString(account.Id) + + // Location + destination.Location = genruntime.ClonePointerToString(account.Location) + + // Metrics + if account.Metrics != nil { + var metric v20230403s.Metrics_STATUS + err := account.Metrics.AssignProperties_To_Metrics_STATUS(&metric) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_Metrics_STATUS() to populate field Metrics") + } + destination.Metrics = &metric + } else { + destination.Metrics = nil + } + + // Name + destination.Name = genruntime.ClonePointerToString(account.Name) + + // PrivateEndpointConnections + if account.PrivateEndpointConnections != nil { + privateEndpointConnectionList := make([]v20230403s.PrivateEndpointConnection_STATUS, len(account.PrivateEndpointConnections)) + for privateEndpointConnectionIndex, privateEndpointConnectionItem := range account.PrivateEndpointConnections { + // Shadow the loop variable to avoid aliasing + privateEndpointConnectionItem := privateEndpointConnectionItem + var privateEndpointConnection v20230403s.PrivateEndpointConnection_STATUS + err := privateEndpointConnectionItem.AssignProperties_To_PrivateEndpointConnection_STATUS(&privateEndpointConnection) + if err != nil { + return errors.Wrap(err, "calling AssignProperties_To_PrivateEndpointConnection_STATUS() to populate field PrivateEndpointConnections") + } + privateEndpointConnectionList[privateEndpointConnectionIndex] = privateEndpointConnection + } + destination.PrivateEndpointConnections = privateEndpointConnectionList + } else { + destination.PrivateEndpointConnections = nil + } + + // ProvisioningState + if account.ProvisioningState != nil { + provisioningState := string(*account.ProvisioningState) + destination.ProvisioningState = &provisioningState + } else { + destination.ProvisioningState = nil + } + + // PublicNetworkAccess + if account.PublicNetworkAccess != nil { + publicNetworkAccess := string(*account.PublicNetworkAccess) + destination.PublicNetworkAccess = &publicNetworkAccess + } else { + destination.PublicNetworkAccess = nil + } + + // SystemData + if account.SystemData != nil { + var systemDatum v20230403s.SystemData_STATUS + err := account.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(account.Tags) + + // Type + destination.Type = genruntime.ClonePointerToString(account.Type) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// +kubebuilder:validation:Enum={"2023-04-03"} +type APIVersion string + +const APIVersion_Value = APIVersion("2023-04-03") + +type AzureMonitorWorkspace_ProvisioningState_STATUS string + +const ( + AzureMonitorWorkspace_ProvisioningState_STATUS_Canceled = AzureMonitorWorkspace_ProvisioningState_STATUS("Canceled") + AzureMonitorWorkspace_ProvisioningState_STATUS_Creating = AzureMonitorWorkspace_ProvisioningState_STATUS("Creating") + AzureMonitorWorkspace_ProvisioningState_STATUS_Deleting = AzureMonitorWorkspace_ProvisioningState_STATUS("Deleting") + AzureMonitorWorkspace_ProvisioningState_STATUS_Failed = AzureMonitorWorkspace_ProvisioningState_STATUS("Failed") + AzureMonitorWorkspace_ProvisioningState_STATUS_Succeeded = AzureMonitorWorkspace_ProvisioningState_STATUS("Succeeded") +) + +// Mapping from string to AzureMonitorWorkspace_ProvisioningState_STATUS +var azureMonitorWorkspace_ProvisioningState_STATUS_Values = map[string]AzureMonitorWorkspace_ProvisioningState_STATUS{ + "canceled": AzureMonitorWorkspace_ProvisioningState_STATUS_Canceled, + "creating": AzureMonitorWorkspace_ProvisioningState_STATUS_Creating, + "deleting": AzureMonitorWorkspace_ProvisioningState_STATUS_Deleting, + "failed": AzureMonitorWorkspace_ProvisioningState_STATUS_Failed, + "succeeded": AzureMonitorWorkspace_ProvisioningState_STATUS_Succeeded, +} + +type AzureMonitorWorkspace_PublicNetworkAccess_STATUS string + +const ( + AzureMonitorWorkspace_PublicNetworkAccess_STATUS_Disabled = AzureMonitorWorkspace_PublicNetworkAccess_STATUS("Disabled") + AzureMonitorWorkspace_PublicNetworkAccess_STATUS_Enabled = AzureMonitorWorkspace_PublicNetworkAccess_STATUS("Enabled") +) + +// Mapping from string to AzureMonitorWorkspace_PublicNetworkAccess_STATUS +var azureMonitorWorkspace_PublicNetworkAccess_STATUS_Values = map[string]AzureMonitorWorkspace_PublicNetworkAccess_STATUS{ + "disabled": AzureMonitorWorkspace_PublicNetworkAccess_STATUS_Disabled, + "enabled": AzureMonitorWorkspace_PublicNetworkAccess_STATUS_Enabled, +} + +// Settings for data ingestion +type IngestionSettings_STATUS struct { + // DataCollectionEndpointResourceId: The Azure resource Id of the default data collection endpoint for this Azure Monitor + // Workspace. + DataCollectionEndpointResourceId *string `json:"dataCollectionEndpointResourceId,omitempty"` + + // DataCollectionRuleResourceId: The Azure resource Id of the default data collection rule for this Azure Monitor Workspace. + DataCollectionRuleResourceId *string `json:"dataCollectionRuleResourceId,omitempty"` +} + +var _ genruntime.FromARMConverter = &IngestionSettings_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (settings *IngestionSettings_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &IngestionSettings_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (settings *IngestionSettings_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(IngestionSettings_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected IngestionSettings_STATUS_ARM, got %T", armInput) + } + + // Set property "DataCollectionEndpointResourceId": + if typedInput.DataCollectionEndpointResourceId != nil { + dataCollectionEndpointResourceId := *typedInput.DataCollectionEndpointResourceId + settings.DataCollectionEndpointResourceId = &dataCollectionEndpointResourceId + } + + // Set property "DataCollectionRuleResourceId": + if typedInput.DataCollectionRuleResourceId != nil { + dataCollectionRuleResourceId := *typedInput.DataCollectionRuleResourceId + settings.DataCollectionRuleResourceId = &dataCollectionRuleResourceId + } + + // No error + return nil +} + +// AssignProperties_From_IngestionSettings_STATUS populates our IngestionSettings_STATUS from the provided source IngestionSettings_STATUS +func (settings *IngestionSettings_STATUS) AssignProperties_From_IngestionSettings_STATUS(source *v20230403s.IngestionSettings_STATUS) error { + + // DataCollectionEndpointResourceId + settings.DataCollectionEndpointResourceId = genruntime.ClonePointerToString(source.DataCollectionEndpointResourceId) + + // DataCollectionRuleResourceId + settings.DataCollectionRuleResourceId = genruntime.ClonePointerToString(source.DataCollectionRuleResourceId) + + // No error + return nil +} + +// AssignProperties_To_IngestionSettings_STATUS populates the provided destination IngestionSettings_STATUS from our IngestionSettings_STATUS +func (settings *IngestionSettings_STATUS) AssignProperties_To_IngestionSettings_STATUS(destination *v20230403s.IngestionSettings_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // DataCollectionEndpointResourceId + destination.DataCollectionEndpointResourceId = genruntime.ClonePointerToString(settings.DataCollectionEndpointResourceId) + + // DataCollectionRuleResourceId + destination.DataCollectionRuleResourceId = genruntime.ClonePointerToString(settings.DataCollectionRuleResourceId) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// Properties related to the metrics container in the Azure Monitor Workspace +type Metrics_STATUS struct { + // InternalId: An internal identifier for the metrics container. Only to be used by the system + InternalId *string `json:"internalId,omitempty"` + + // PrometheusQueryEndpoint: The Prometheus query endpoint for the Azure Monitor Workspace + PrometheusQueryEndpoint *string `json:"prometheusQueryEndpoint,omitempty"` +} + +var _ genruntime.FromARMConverter = &Metrics_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (metrics *Metrics_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &Metrics_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (metrics *Metrics_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(Metrics_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected Metrics_STATUS_ARM, got %T", armInput) + } + + // Set property "InternalId": + if typedInput.InternalId != nil { + internalId := *typedInput.InternalId + metrics.InternalId = &internalId + } + + // Set property "PrometheusQueryEndpoint": + if typedInput.PrometheusQueryEndpoint != nil { + prometheusQueryEndpoint := *typedInput.PrometheusQueryEndpoint + metrics.PrometheusQueryEndpoint = &prometheusQueryEndpoint + } + + // No error + return nil +} + +// AssignProperties_From_Metrics_STATUS populates our Metrics_STATUS from the provided source Metrics_STATUS +func (metrics *Metrics_STATUS) AssignProperties_From_Metrics_STATUS(source *v20230403s.Metrics_STATUS) error { + + // InternalId + metrics.InternalId = genruntime.ClonePointerToString(source.InternalId) + + // PrometheusQueryEndpoint + metrics.PrometheusQueryEndpoint = genruntime.ClonePointerToString(source.PrometheusQueryEndpoint) + + // No error + return nil +} + +// AssignProperties_To_Metrics_STATUS populates the provided destination Metrics_STATUS from our Metrics_STATUS +func (metrics *Metrics_STATUS) AssignProperties_To_Metrics_STATUS(destination *v20230403s.Metrics_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // InternalId + destination.InternalId = genruntime.ClonePointerToString(metrics.InternalId) + + // PrometheusQueryEndpoint + destination.PrometheusQueryEndpoint = genruntime.ClonePointerToString(metrics.PrometheusQueryEndpoint) + + // Update the property bag + if len(propertyBag) > 0 { + destination.PropertyBag = propertyBag + } else { + destination.PropertyBag = nil + } + + // No error + return nil +} + +// The private endpoint connection resource. +type PrivateEndpointConnection_STATUS struct { + // Id: Fully qualified resource ID for the resource. E.g. + // "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}" + Id *string `json:"id,omitempty"` +} + +var _ genruntime.FromARMConverter = &PrivateEndpointConnection_STATUS{} + +// NewEmptyARMValue returns an empty ARM value suitable for deserializing into +func (connection *PrivateEndpointConnection_STATUS) NewEmptyARMValue() genruntime.ARMResourceStatus { + return &PrivateEndpointConnection_STATUS_ARM{} +} + +// PopulateFromARM populates a Kubernetes CRD object from an Azure ARM object +func (connection *PrivateEndpointConnection_STATUS) PopulateFromARM(owner genruntime.ArbitraryOwnerReference, armInput interface{}) error { + typedInput, ok := armInput.(PrivateEndpointConnection_STATUS_ARM) + if !ok { + return fmt.Errorf("unexpected type supplied for PopulateFromARM() function. Expected PrivateEndpointConnection_STATUS_ARM, got %T", armInput) + } + + // Set property "Id": + if typedInput.Id != nil { + id := *typedInput.Id + connection.Id = &id + } + + // No error + return nil +} + +// AssignProperties_From_PrivateEndpointConnection_STATUS populates our PrivateEndpointConnection_STATUS from the provided source PrivateEndpointConnection_STATUS +func (connection *PrivateEndpointConnection_STATUS) AssignProperties_From_PrivateEndpointConnection_STATUS(source *v20230403s.PrivateEndpointConnection_STATUS) error { + + // Id + connection.Id = genruntime.ClonePointerToString(source.Id) + + // No error + return nil +} + +// AssignProperties_To_PrivateEndpointConnection_STATUS populates the provided destination PrivateEndpointConnection_STATUS from our PrivateEndpointConnection_STATUS +func (connection *PrivateEndpointConnection_STATUS) AssignProperties_To_PrivateEndpointConnection_STATUS(destination *v20230403s.PrivateEndpointConnection_STATUS) error { + // Create a new property bag + propertyBag := genruntime.NewPropertyBag() + + // Id + destination.Id = genruntime.ClonePointerToString(connection.Id) + + // 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 *v20230403s.SystemData_STATUS) error { + + // CreatedAt + data.CreatedAt = genruntime.ClonePointerToString(source.CreatedAt) + + // CreatedBy + data.CreatedBy = genruntime.ClonePointerToString(source.CreatedBy) + + // CreatedByType + if source.CreatedByType != nil { + createdByType := *source.CreatedByType + createdByTypeTemp := genruntime.ToEnum(createdByType, systemData_CreatedByType_STATUS_Values) + data.CreatedByType = &createdByTypeTemp + } else { + data.CreatedByType = nil + } + + // LastModifiedAt + data.LastModifiedAt = genruntime.ClonePointerToString(source.LastModifiedAt) + + // LastModifiedBy + data.LastModifiedBy = genruntime.ClonePointerToString(source.LastModifiedBy) + + // LastModifiedByType + if source.LastModifiedByType != nil { + lastModifiedByType := *source.LastModifiedByType + lastModifiedByTypeTemp := genruntime.ToEnum(lastModifiedByType, systemData_LastModifiedByType_STATUS_Values) + data.LastModifiedByType = &lastModifiedByTypeTemp + } 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 *v20230403s.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 +} + +func init() { + SchemeBuilder.Register(&Account{}, &AccountList{}) +} diff --git a/v2/api/monitor/v1api20230403/account_types_gen_test.go b/v2/api/monitor/v1api20230403/account_types_gen_test.go new file mode 100644 index 00000000000..04fb32e3694 --- /dev/null +++ b/v2/api/monitor/v1api20230403/account_types_gen_test.go @@ -0,0 +1,830 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package v1api20230403 + +import ( + "encoding/json" + v20230403s "github.com/Azure/azure-service-operator/v2/api/monitor/v1api20230403/storage" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_Account_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 Account to hub returns original", + prop.ForAll(RunResourceConversionTestForAccount, AccountGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunResourceConversionTestForAccount tests if a specific instance of Account round trips to the hub storage version and back losslessly +func RunResourceConversionTestForAccount(subject Account) string { + // Copy subject to make sure conversion doesn't modify it + copied := subject.DeepCopy() + + // Convert to our hub version + var hub v20230403s.Account + err := copied.ConvertTo(&hub) + if err != nil { + return err.Error() + } + + // Convert from our hub version + var actual Account + 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_Account_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from Account to Account via AssignProperties_To_Account & AssignProperties_From_Account returns original", + prop.ForAll(RunPropertyAssignmentTestForAccount, AccountGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAccount tests if a specific instance of Account can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAccount(subject Account) string { + // Copy subject to make sure assignment doesn't modify it + copied := subject.DeepCopy() + + // Use AssignPropertiesTo() for the first stage of conversion + var other v20230403s.Account + err := copied.AssignProperties_To_Account(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual Account + err = actual.AssignProperties_From_Account(&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_Account_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 Account via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAccount, AccountGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAccount runs a test to see if a specific instance of Account round trips to JSON and back losslessly +func RunJSONSerializationTestForAccount(subject Account) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Account + 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 Account instances for property testing - lazily instantiated by AccountGenerator() +var accountGenerator gopter.Gen + +// AccountGenerator returns a generator of Account instances for property testing. +func AccountGenerator() gopter.Gen { + if accountGenerator != nil { + return accountGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForAccount(generators) + accountGenerator = gen.Struct(reflect.TypeOf(Account{}), generators) + + return accountGenerator +} + +// AddRelatedPropertyGeneratorsForAccount is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAccount(gens map[string]gopter.Gen) { + gens["Spec"] = Account_SpecGenerator() + gens["Status"] = Account_STATUSGenerator() +} + +func Test_Account_Spec_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from Account_Spec to Account_Spec via AssignProperties_To_Account_Spec & AssignProperties_From_Account_Spec returns original", + prop.ForAll(RunPropertyAssignmentTestForAccount_Spec, Account_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAccount_Spec tests if a specific instance of Account_Spec can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAccount_Spec(subject Account_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 v20230403s.Account_Spec + err := copied.AssignProperties_To_Account_Spec(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual Account_Spec + err = actual.AssignProperties_From_Account_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_Account_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 Account_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAccount_Spec, Account_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAccount_Spec runs a test to see if a specific instance of Account_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForAccount_Spec(subject Account_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Account_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 Account_Spec instances for property testing - lazily instantiated by Account_SpecGenerator() +var account_SpecGenerator gopter.Gen + +// Account_SpecGenerator returns a generator of Account_Spec instances for property testing. +func Account_SpecGenerator() gopter.Gen { + if account_SpecGenerator != nil { + return account_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAccount_Spec(generators) + account_SpecGenerator = gen.Struct(reflect.TypeOf(Account_Spec{}), generators) + + return account_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForAccount_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAccount_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} + +func Test_Account_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from Account_STATUS to Account_STATUS via AssignProperties_To_Account_STATUS & AssignProperties_From_Account_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForAccount_STATUS, Account_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForAccount_STATUS tests if a specific instance of Account_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForAccount_STATUS(subject Account_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 v20230403s.Account_STATUS + err := copied.AssignProperties_To_Account_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual Account_STATUS + err = actual.AssignProperties_From_Account_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_Account_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 Account_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAccount_STATUS, Account_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAccount_STATUS runs a test to see if a specific instance of Account_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForAccount_STATUS(subject Account_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Account_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 Account_STATUS instances for property testing - lazily instantiated by Account_STATUSGenerator() +var account_STATUSGenerator gopter.Gen + +// Account_STATUSGenerator returns a generator of Account_STATUS instances for property testing. +// We first initialize account_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 Account_STATUSGenerator() gopter.Gen { + if account_STATUSGenerator != nil { + return account_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAccount_STATUS(generators) + account_STATUSGenerator = gen.Struct(reflect.TypeOf(Account_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAccount_STATUS(generators) + AddRelatedPropertyGeneratorsForAccount_STATUS(generators) + account_STATUSGenerator = gen.Struct(reflect.TypeOf(Account_STATUS{}), generators) + + return account_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForAccount_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAccount_STATUS(gens map[string]gopter.Gen) { + gens["AccountId"] = gen.PtrOf(gen.AlphaString()) + gens["Etag"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.OneConstOf( + AzureMonitorWorkspace_ProvisioningState_STATUS_Canceled, + AzureMonitorWorkspace_ProvisioningState_STATUS_Creating, + AzureMonitorWorkspace_ProvisioningState_STATUS_Deleting, + AzureMonitorWorkspace_ProvisioningState_STATUS_Failed, + AzureMonitorWorkspace_ProvisioningState_STATUS_Succeeded)) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.OneConstOf(AzureMonitorWorkspace_PublicNetworkAccess_STATUS_Disabled, AzureMonitorWorkspace_PublicNetworkAccess_STATUS_Enabled)) + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAccount_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAccount_STATUS(gens map[string]gopter.Gen) { + gens["DefaultIngestionSettings"] = gen.PtrOf(IngestionSettings_STATUSGenerator()) + gens["Metrics"] = gen.PtrOf(Metrics_STATUSGenerator()) + gens["PrivateEndpointConnections"] = gen.SliceOf(PrivateEndpointConnection_STATUSGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUSGenerator()) +} + +func Test_IngestionSettings_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from IngestionSettings_STATUS to IngestionSettings_STATUS via AssignProperties_To_IngestionSettings_STATUS & AssignProperties_From_IngestionSettings_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForIngestionSettings_STATUS, IngestionSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForIngestionSettings_STATUS tests if a specific instance of IngestionSettings_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForIngestionSettings_STATUS(subject IngestionSettings_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 v20230403s.IngestionSettings_STATUS + err := copied.AssignProperties_To_IngestionSettings_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual IngestionSettings_STATUS + err = actual.AssignProperties_From_IngestionSettings_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_IngestionSettings_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 IngestionSettings_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIngestionSettings_STATUS, IngestionSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIngestionSettings_STATUS runs a test to see if a specific instance of IngestionSettings_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIngestionSettings_STATUS(subject IngestionSettings_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IngestionSettings_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 IngestionSettings_STATUS instances for property testing - lazily instantiated by +// IngestionSettings_STATUSGenerator() +var ingestionSettings_STATUSGenerator gopter.Gen + +// IngestionSettings_STATUSGenerator returns a generator of IngestionSettings_STATUS instances for property testing. +func IngestionSettings_STATUSGenerator() gopter.Gen { + if ingestionSettings_STATUSGenerator != nil { + return ingestionSettings_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIngestionSettings_STATUS(generators) + ingestionSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(IngestionSettings_STATUS{}), generators) + + return ingestionSettings_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIngestionSettings_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIngestionSettings_STATUS(gens map[string]gopter.Gen) { + gens["DataCollectionEndpointResourceId"] = gen.PtrOf(gen.AlphaString()) + gens["DataCollectionRuleResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_Metrics_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from Metrics_STATUS to Metrics_STATUS via AssignProperties_To_Metrics_STATUS & AssignProperties_From_Metrics_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForMetrics_STATUS, Metrics_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForMetrics_STATUS tests if a specific instance of Metrics_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForMetrics_STATUS(subject Metrics_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 v20230403s.Metrics_STATUS + err := copied.AssignProperties_To_Metrics_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual Metrics_STATUS + err = actual.AssignProperties_From_Metrics_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_Metrics_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 Metrics_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForMetrics_STATUS, Metrics_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForMetrics_STATUS runs a test to see if a specific instance of Metrics_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForMetrics_STATUS(subject Metrics_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Metrics_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 Metrics_STATUS instances for property testing - lazily instantiated by Metrics_STATUSGenerator() +var metrics_STATUSGenerator gopter.Gen + +// Metrics_STATUSGenerator returns a generator of Metrics_STATUS instances for property testing. +func Metrics_STATUSGenerator() gopter.Gen { + if metrics_STATUSGenerator != nil { + return metrics_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForMetrics_STATUS(generators) + metrics_STATUSGenerator = gen.Struct(reflect.TypeOf(Metrics_STATUS{}), generators) + + return metrics_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForMetrics_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForMetrics_STATUS(gens map[string]gopter.Gen) { + gens["InternalId"] = gen.PtrOf(gen.AlphaString()) + gens["PrometheusQueryEndpoint"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrivateEndpointConnection_STATUS_WhenPropertiesConverted_RoundTripsWithoutLoss(t *testing.T) { + t.Parallel() + parameters := gopter.DefaultTestParameters() + parameters.MaxSize = 10 + properties := gopter.NewProperties(parameters) + properties.Property( + "Round trip from PrivateEndpointConnection_STATUS to PrivateEndpointConnection_STATUS via AssignProperties_To_PrivateEndpointConnection_STATUS & AssignProperties_From_PrivateEndpointConnection_STATUS returns original", + prop.ForAll(RunPropertyAssignmentTestForPrivateEndpointConnection_STATUS, PrivateEndpointConnection_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(false, 240, os.Stdout)) +} + +// RunPropertyAssignmentTestForPrivateEndpointConnection_STATUS tests if a specific instance of PrivateEndpointConnection_STATUS can be assigned to storage and back losslessly +func RunPropertyAssignmentTestForPrivateEndpointConnection_STATUS(subject PrivateEndpointConnection_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 v20230403s.PrivateEndpointConnection_STATUS + err := copied.AssignProperties_To_PrivateEndpointConnection_STATUS(&other) + if err != nil { + return err.Error() + } + + // Use AssignPropertiesFrom() to convert back to our original type + var actual PrivateEndpointConnection_STATUS + err = actual.AssignProperties_From_PrivateEndpointConnection_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_PrivateEndpointConnection_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 PrivateEndpointConnection_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateEndpointConnection_STATUS, PrivateEndpointConnection_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateEndpointConnection_STATUS runs a test to see if a specific instance of PrivateEndpointConnection_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateEndpointConnection_STATUS(subject PrivateEndpointConnection_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateEndpointConnection_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 PrivateEndpointConnection_STATUS instances for property testing - lazily instantiated by +// PrivateEndpointConnection_STATUSGenerator() +var privateEndpointConnection_STATUSGenerator gopter.Gen + +// PrivateEndpointConnection_STATUSGenerator returns a generator of PrivateEndpointConnection_STATUS instances for property testing. +func PrivateEndpointConnection_STATUSGenerator() gopter.Gen { + if privateEndpointConnection_STATUSGenerator != nil { + return privateEndpointConnection_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateEndpointConnection_STATUS(generators) + privateEndpointConnection_STATUSGenerator = gen.Struct(reflect.TypeOf(PrivateEndpointConnection_STATUS{}), generators) + + return privateEndpointConnection_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateEndpointConnection_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateEndpointConnection_STATUS(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) +} + +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 storage 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 v20230403s.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)) +} diff --git a/v2/api/monitor/v1api20230403/doc.go b/v2/api/monitor/v1api20230403/doc.go new file mode 100644 index 00000000000..94ca7eb1773 --- /dev/null +++ b/v2/api/monitor/v1api20230403/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 v1api20230403 contains API Schema definitions for the monitor v1api20230403 API group +// +groupName=monitor.azure.com +package v1api20230403 diff --git a/v2/api/monitor/v1api20230403/groupversion_info_gen.go b/v2/api/monitor/v1api20230403/groupversion_info_gen.go new file mode 100644 index 00000000000..f71af232b11 --- /dev/null +++ b/v2/api/monitor/v1api20230403/groupversion_info_gen.go @@ -0,0 +1,32 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by azure-service-operator-codegen. DO NOT EDIT. + +// Package v1api20230403 contains API Schema definitions for the monitor v1api20230403 API group +// +kubebuilder:object:generate=true +// All object properties are optional by default, this will be overridden when needed: +// +kubebuilder:validation:Optional +// +groupName=monitor.azure.com +// +versionName=v1api20230403 +package v1api20230403 + +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: "monitor.azure.com", Version: "v1api20230403"} + + // 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/monitor/v1api20230403/storage/account_types_gen.go b/v2/api/monitor/v1api20230403/storage/account_types_gen.go new file mode 100644 index 00000000000..7d0574bd4b1 --- /dev/null +++ b/v2/api/monitor/v1api20230403/storage/account_types_gen.go @@ -0,0 +1,260 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime/conditions" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// +kubebuilder:rbac:groups=monitor.azure.com,resources=accounts,verbs=get;list;watch;create;update;patch;delete +// +kubebuilder:rbac:groups=monitor.azure.com,resources={accounts/status,accounts/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 v1api20230403.Account +// Generator information: +// - Generated from: /monitor/resource-manager/Microsoft.Monitor/stable/2023-04-03/monitoringAccounts_API.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Monitor/accounts/{azureMonitorWorkspaceName} +type Account struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec Account_Spec `json:"spec,omitempty"` + Status Account_STATUS `json:"status,omitempty"` +} + +var _ conditions.Conditioner = &Account{} + +// GetConditions returns the conditions of the resource +func (account *Account) GetConditions() conditions.Conditions { + return account.Status.Conditions +} + +// SetConditions sets the conditions on the resource status +func (account *Account) SetConditions(conditions conditions.Conditions) { + account.Status.Conditions = conditions +} + +var _ genruntime.KubernetesResource = &Account{} + +// AzureName returns the Azure name of the resource +func (account *Account) AzureName() string { + return account.Spec.AzureName +} + +// GetAPIVersion returns the ARM API version of the resource. This is always "2023-04-03" +func (account Account) GetAPIVersion() string { + return string(APIVersion_Value) +} + +// GetResourceScope returns the scope of the resource +func (account *Account) GetResourceScope() genruntime.ResourceScope { + return genruntime.ResourceScopeResourceGroup +} + +// GetSpec returns the specification of this resource +func (account *Account) GetSpec() genruntime.ConvertibleSpec { + return &account.Spec +} + +// GetStatus returns the status of this resource +func (account *Account) GetStatus() genruntime.ConvertibleStatus { + return &account.Status +} + +// GetSupportedOperations returns the operations supported by the resource +func (account *Account) GetSupportedOperations() []genruntime.ResourceOperation { + return []genruntime.ResourceOperation{ + genruntime.ResourceOperationDelete, + genruntime.ResourceOperationGet, + genruntime.ResourceOperationPut, + } +} + +// GetType returns the ARM Type of the resource. This is always "Microsoft.Monitor/accounts" +func (account *Account) GetType() string { + return "Microsoft.Monitor/accounts" +} + +// NewEmptyStatus returns a new empty (blank) status +func (account *Account) NewEmptyStatus() genruntime.ConvertibleStatus { + return &Account_STATUS{} +} + +// Owner returns the ResourceReference of the owner +func (account *Account) Owner() *genruntime.ResourceReference { + group, kind := genruntime.LookupOwnerGroupKind(account.Spec) + return account.Spec.Owner.AsResourceReference(group, kind) +} + +// SetStatus sets the status of this resource +func (account *Account) SetStatus(status genruntime.ConvertibleStatus) error { + // If we have exactly the right type of status, assign it + if st, ok := status.(*Account_STATUS); ok { + account.Status = *st + return nil + } + + // Convert status to required version + var st Account_STATUS + err := status.ConvertStatusTo(&st) + if err != nil { + return errors.Wrap(err, "failed to convert status") + } + + account.Status = st + return nil +} + +// Hub marks that this Account is the hub type for conversion +func (account *Account) Hub() {} + +// OriginalGVK returns a GroupValueKind for the original API version used to create the resource +func (account *Account) OriginalGVK() *schema.GroupVersionKind { + return &schema.GroupVersionKind{ + Group: GroupVersion.Group, + Version: account.Spec.OriginalVersion, + Kind: "Account", + } +} + +// +kubebuilder:object:root=true +// Storage version of v1api20230403.Account +// Generator information: +// - Generated from: /monitor/resource-manager/Microsoft.Monitor/stable/2023-04-03/monitoringAccounts_API.json +// - ARM URI: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Monitor/accounts/{azureMonitorWorkspaceName} +type AccountList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Account `json:"items"` +} + +// Storage version of v1api20230403.Account_Spec +type Account_Spec struct { + // AzureName: The name of the resource in Azure. This is often the same as the name of the resource in Kubernetes but it + // doesn't have to be. + AzureName string `json:"azureName,omitempty"` + Location *string `json:"location,omitempty"` + OriginalVersion string `json:"originalVersion,omitempty"` + + // +kubebuilder:validation:Required + // Owner: The owner of the resource. The owner controls where the resource goes when it is deployed. The owner also + // controls the resources lifecycle. When the owner is deleted the resource will also be deleted. Owner is expected to be a + // reference to a resources.azure.com/ResourceGroup resource + Owner *genruntime.KnownResourceReference `group:"resources.azure.com" json:"owner,omitempty" kind:"ResourceGroup"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + Tags map[string]string `json:"tags,omitempty"` +} + +var _ genruntime.ConvertibleSpec = &Account_Spec{} + +// ConvertSpecFrom populates our Account_Spec from the provided source +func (account *Account_Spec) ConvertSpecFrom(source genruntime.ConvertibleSpec) error { + if source == account { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return source.ConvertSpecTo(account) +} + +// ConvertSpecTo populates the provided destination from our Account_Spec +func (account *Account_Spec) ConvertSpecTo(destination genruntime.ConvertibleSpec) error { + if destination == account { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleSpec") + } + + return destination.ConvertSpecFrom(account) +} + +// Storage version of v1api20230403.Account_STATUS +type Account_STATUS struct { + AccountId *string `json:"accountId,omitempty"` + Conditions []conditions.Condition `json:"conditions,omitempty"` + DefaultIngestionSettings *IngestionSettings_STATUS `json:"defaultIngestionSettings,omitempty"` + Etag *string `json:"etag,omitempty"` + Id *string `json:"id,omitempty"` + Location *string `json:"location,omitempty"` + Metrics *Metrics_STATUS `json:"metrics,omitempty"` + Name *string `json:"name,omitempty"` + PrivateEndpointConnections []PrivateEndpointConnection_STATUS `json:"privateEndpointConnections,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` + ProvisioningState *string `json:"provisioningState,omitempty"` + PublicNetworkAccess *string `json:"publicNetworkAccess,omitempty"` + SystemData *SystemData_STATUS `json:"systemData,omitempty"` + Tags map[string]string `json:"tags,omitempty"` + Type *string `json:"type,omitempty"` +} + +var _ genruntime.ConvertibleStatus = &Account_STATUS{} + +// ConvertStatusFrom populates our Account_STATUS from the provided source +func (account *Account_STATUS) ConvertStatusFrom(source genruntime.ConvertibleStatus) error { + if source == account { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return source.ConvertStatusTo(account) +} + +// ConvertStatusTo populates the provided destination from our Account_STATUS +func (account *Account_STATUS) ConvertStatusTo(destination genruntime.ConvertibleStatus) error { + if destination == account { + return errors.New("attempted conversion between unrelated implementations of github.com/Azure/azure-service-operator/v2/pkg/genruntime/ConvertibleStatus") + } + + return destination.ConvertStatusFrom(account) +} + +// Storage version of v1api20230403.APIVersion +// +kubebuilder:validation:Enum={"2023-04-03"} +type APIVersion string + +const APIVersion_Value = APIVersion("2023-04-03") + +// Storage version of v1api20230403.IngestionSettings_STATUS +// Settings for data ingestion +type IngestionSettings_STATUS struct { + DataCollectionEndpointResourceId *string `json:"dataCollectionEndpointResourceId,omitempty"` + DataCollectionRuleResourceId *string `json:"dataCollectionRuleResourceId,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20230403.Metrics_STATUS +// Properties related to the metrics container in the Azure Monitor Workspace +type Metrics_STATUS struct { + InternalId *string `json:"internalId,omitempty"` + PrometheusQueryEndpoint *string `json:"prometheusQueryEndpoint,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20230403.PrivateEndpointConnection_STATUS +// The private endpoint connection resource. +type PrivateEndpointConnection_STATUS struct { + Id *string `json:"id,omitempty"` + PropertyBag genruntime.PropertyBag `json:"$propertyBag,omitempty"` +} + +// Storage version of v1api20230403.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"` +} + +func init() { + SchemeBuilder.Register(&Account{}, &AccountList{}) +} diff --git a/v2/api/monitor/v1api20230403/storage/account_types_gen_test.go b/v2/api/monitor/v1api20230403/storage/account_types_gen_test.go new file mode 100644 index 00000000000..823cdfc1c71 --- /dev/null +++ b/v2/api/monitor/v1api20230403/storage/account_types_gen_test.go @@ -0,0 +1,480 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT license. +package storage + +import ( + "encoding/json" + "github.com/google/go-cmp/cmp" + "github.com/google/go-cmp/cmp/cmpopts" + "github.com/kr/pretty" + "github.com/kylelemons/godebug/diff" + "github.com/leanovate/gopter" + "github.com/leanovate/gopter/gen" + "github.com/leanovate/gopter/prop" + "os" + "reflect" + "testing" +) + +func Test_Account_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 Account via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAccount, AccountGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAccount runs a test to see if a specific instance of Account round trips to JSON and back losslessly +func RunJSONSerializationTestForAccount(subject Account) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Account + 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 Account instances for property testing - lazily instantiated by AccountGenerator() +var accountGenerator gopter.Gen + +// AccountGenerator returns a generator of Account instances for property testing. +func AccountGenerator() gopter.Gen { + if accountGenerator != nil { + return accountGenerator + } + + generators := make(map[string]gopter.Gen) + AddRelatedPropertyGeneratorsForAccount(generators) + accountGenerator = gen.Struct(reflect.TypeOf(Account{}), generators) + + return accountGenerator +} + +// AddRelatedPropertyGeneratorsForAccount is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAccount(gens map[string]gopter.Gen) { + gens["Spec"] = Account_SpecGenerator() + gens["Status"] = Account_STATUSGenerator() +} + +func Test_Account_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 Account_Spec via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAccount_Spec, Account_SpecGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAccount_Spec runs a test to see if a specific instance of Account_Spec round trips to JSON and back losslessly +func RunJSONSerializationTestForAccount_Spec(subject Account_Spec) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Account_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 Account_Spec instances for property testing - lazily instantiated by Account_SpecGenerator() +var account_SpecGenerator gopter.Gen + +// Account_SpecGenerator returns a generator of Account_Spec instances for property testing. +func Account_SpecGenerator() gopter.Gen { + if account_SpecGenerator != nil { + return account_SpecGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAccount_Spec(generators) + account_SpecGenerator = gen.Struct(reflect.TypeOf(Account_Spec{}), generators) + + return account_SpecGenerator +} + +// AddIndependentPropertyGeneratorsForAccount_Spec is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAccount_Spec(gens map[string]gopter.Gen) { + gens["AzureName"] = gen.AlphaString() + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["OriginalVersion"] = gen.AlphaString() + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) +} + +func Test_Account_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 Account_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForAccount_STATUS, Account_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForAccount_STATUS runs a test to see if a specific instance of Account_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForAccount_STATUS(subject Account_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Account_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 Account_STATUS instances for property testing - lazily instantiated by Account_STATUSGenerator() +var account_STATUSGenerator gopter.Gen + +// Account_STATUSGenerator returns a generator of Account_STATUS instances for property testing. +// We first initialize account_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 Account_STATUSGenerator() gopter.Gen { + if account_STATUSGenerator != nil { + return account_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAccount_STATUS(generators) + account_STATUSGenerator = gen.Struct(reflect.TypeOf(Account_STATUS{}), generators) + + // The above call to gen.Struct() captures the map, so create a new one + generators = make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForAccount_STATUS(generators) + AddRelatedPropertyGeneratorsForAccount_STATUS(generators) + account_STATUSGenerator = gen.Struct(reflect.TypeOf(Account_STATUS{}), generators) + + return account_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForAccount_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForAccount_STATUS(gens map[string]gopter.Gen) { + gens["AccountId"] = gen.PtrOf(gen.AlphaString()) + gens["Etag"] = gen.PtrOf(gen.AlphaString()) + gens["Id"] = gen.PtrOf(gen.AlphaString()) + gens["Location"] = gen.PtrOf(gen.AlphaString()) + gens["Name"] = gen.PtrOf(gen.AlphaString()) + gens["ProvisioningState"] = gen.PtrOf(gen.AlphaString()) + gens["PublicNetworkAccess"] = gen.PtrOf(gen.AlphaString()) + gens["Tags"] = gen.MapOf( + gen.AlphaString(), + gen.AlphaString()) + gens["Type"] = gen.PtrOf(gen.AlphaString()) +} + +// AddRelatedPropertyGeneratorsForAccount_STATUS is a factory method for creating gopter generators +func AddRelatedPropertyGeneratorsForAccount_STATUS(gens map[string]gopter.Gen) { + gens["DefaultIngestionSettings"] = gen.PtrOf(IngestionSettings_STATUSGenerator()) + gens["Metrics"] = gen.PtrOf(Metrics_STATUSGenerator()) + gens["PrivateEndpointConnections"] = gen.SliceOf(PrivateEndpointConnection_STATUSGenerator()) + gens["SystemData"] = gen.PtrOf(SystemData_STATUSGenerator()) +} + +func Test_IngestionSettings_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 IngestionSettings_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForIngestionSettings_STATUS, IngestionSettings_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForIngestionSettings_STATUS runs a test to see if a specific instance of IngestionSettings_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForIngestionSettings_STATUS(subject IngestionSettings_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual IngestionSettings_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 IngestionSettings_STATUS instances for property testing - lazily instantiated by +// IngestionSettings_STATUSGenerator() +var ingestionSettings_STATUSGenerator gopter.Gen + +// IngestionSettings_STATUSGenerator returns a generator of IngestionSettings_STATUS instances for property testing. +func IngestionSettings_STATUSGenerator() gopter.Gen { + if ingestionSettings_STATUSGenerator != nil { + return ingestionSettings_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForIngestionSettings_STATUS(generators) + ingestionSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(IngestionSettings_STATUS{}), generators) + + return ingestionSettings_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForIngestionSettings_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForIngestionSettings_STATUS(gens map[string]gopter.Gen) { + gens["DataCollectionEndpointResourceId"] = gen.PtrOf(gen.AlphaString()) + gens["DataCollectionRuleResourceId"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_Metrics_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 Metrics_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForMetrics_STATUS, Metrics_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForMetrics_STATUS runs a test to see if a specific instance of Metrics_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForMetrics_STATUS(subject Metrics_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual Metrics_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 Metrics_STATUS instances for property testing - lazily instantiated by Metrics_STATUSGenerator() +var metrics_STATUSGenerator gopter.Gen + +// Metrics_STATUSGenerator returns a generator of Metrics_STATUS instances for property testing. +func Metrics_STATUSGenerator() gopter.Gen { + if metrics_STATUSGenerator != nil { + return metrics_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForMetrics_STATUS(generators) + metrics_STATUSGenerator = gen.Struct(reflect.TypeOf(Metrics_STATUS{}), generators) + + return metrics_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForMetrics_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForMetrics_STATUS(gens map[string]gopter.Gen) { + gens["InternalId"] = gen.PtrOf(gen.AlphaString()) + gens["PrometheusQueryEndpoint"] = gen.PtrOf(gen.AlphaString()) +} + +func Test_PrivateEndpointConnection_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 PrivateEndpointConnection_STATUS via JSON returns original", + prop.ForAll(RunJSONSerializationTestForPrivateEndpointConnection_STATUS, PrivateEndpointConnection_STATUSGenerator())) + properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout)) +} + +// RunJSONSerializationTestForPrivateEndpointConnection_STATUS runs a test to see if a specific instance of PrivateEndpointConnection_STATUS round trips to JSON and back losslessly +func RunJSONSerializationTestForPrivateEndpointConnection_STATUS(subject PrivateEndpointConnection_STATUS) string { + // Serialize to JSON + bin, err := json.Marshal(subject) + if err != nil { + return err.Error() + } + + // Deserialize back into memory + var actual PrivateEndpointConnection_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 PrivateEndpointConnection_STATUS instances for property testing - lazily instantiated by +// PrivateEndpointConnection_STATUSGenerator() +var privateEndpointConnection_STATUSGenerator gopter.Gen + +// PrivateEndpointConnection_STATUSGenerator returns a generator of PrivateEndpointConnection_STATUS instances for property testing. +func PrivateEndpointConnection_STATUSGenerator() gopter.Gen { + if privateEndpointConnection_STATUSGenerator != nil { + return privateEndpointConnection_STATUSGenerator + } + + generators := make(map[string]gopter.Gen) + AddIndependentPropertyGeneratorsForPrivateEndpointConnection_STATUS(generators) + privateEndpointConnection_STATUSGenerator = gen.Struct(reflect.TypeOf(PrivateEndpointConnection_STATUS{}), generators) + + return privateEndpointConnection_STATUSGenerator +} + +// AddIndependentPropertyGeneratorsForPrivateEndpointConnection_STATUS is a factory method for creating gopter generators +func AddIndependentPropertyGeneratorsForPrivateEndpointConnection_STATUS(gens map[string]gopter.Gen) { + gens["Id"] = gen.PtrOf(gen.AlphaString()) +} + +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()) +} diff --git a/v2/api/monitor/v1api20230403/storage/groupversion_info_gen.go b/v2/api/monitor/v1api20230403/storage/groupversion_info_gen.go new file mode 100644 index 00000000000..2d07e602307 --- /dev/null +++ b/v2/api/monitor/v1api20230403/storage/groupversion_info_gen.go @@ -0,0 +1,32 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by azure-service-operator-codegen. DO NOT EDIT. + +// Package storage contains API Schema definitions for the monitor storage API group +// +kubebuilder:object:generate=true +// All object properties are optional by default, this will be overridden when needed: +// +kubebuilder:validation:Optional +// +groupName=monitor.azure.com +// +versionName=v1api20230403storage +package storage + +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: "monitor.azure.com", Version: "v1api20230403storage"} + + // 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/monitor/v1api20230403/storage/structure.txt b/v2/api/monitor/v1api20230403/storage/structure.txt new file mode 100644 index 00000000000..1268c7c9fd8 --- /dev/null +++ b/v2/api/monitor/v1api20230403/storage/structure.txt @@ -0,0 +1,44 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +github.com/Azure/azure-service-operator/v2/api/monitor/v1api20230403/storage +├── APIVersion: Enum (1 value) +│ └── "2023-04-03" +└── Account: Resource + ├── Owner: resources/v1apiv20191001.ResourceGroup + ├── Spec: Object (6 properties) + │ ├── AzureName: string + │ ├── Location: *string + │ ├── OriginalVersion: string + │ ├── Owner: *genruntime.KnownResourceReference + │ ├── PropertyBag: genruntime.PropertyBag + │ └── Tags: map[string]string + └── Status: Object (15 properties) + ├── AccountId: *string + ├── Conditions: conditions.Condition[] + ├── DefaultIngestionSettings: *Object (3 properties) + │ ├── DataCollectionEndpointResourceId: *string + │ ├── DataCollectionRuleResourceId: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── Etag: *string + ├── Id: *string + ├── Location: *string + ├── Metrics: *Object (3 properties) + │ ├── InternalId: *string + │ ├── PrometheusQueryEndpoint: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── Name: *string + ├── PrivateEndpointConnections: Object (2 properties)[] + │ ├── Id: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── PropertyBag: genruntime.PropertyBag + ├── ProvisioningState: *string + ├── PublicNetworkAccess: *string + ├── SystemData: *Object (7 properties) + │ ├── CreatedAt: *string + │ ├── CreatedBy: *string + │ ├── CreatedByType: *string + │ ├── LastModifiedAt: *string + │ ├── LastModifiedBy: *string + │ ├── LastModifiedByType: *string + │ └── PropertyBag: genruntime.PropertyBag + ├── Tags: map[string]string + └── Type: *string diff --git a/v2/api/monitor/v1api20230403/storage/zz_generated.deepcopy.go b/v2/api/monitor/v1api20230403/storage/zz_generated.deepcopy.go new file mode 100644 index 00000000000..ca8d46f3020 --- /dev/null +++ b/v2/api/monitor/v1api20230403/storage/zz_generated.deepcopy.go @@ -0,0 +1,355 @@ +//go:build !ignore_autogenerated + +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package storage + +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 *Account) DeepCopyInto(out *Account) { + *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 Account. +func (in *Account) DeepCopy() *Account { + if in == nil { + return nil + } + out := new(Account) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Account) 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 *AccountList) DeepCopyInto(out *AccountList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Account, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccountList. +func (in *AccountList) DeepCopy() *AccountList { + if in == nil { + return nil + } + out := new(AccountList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AccountList) 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 *Account_STATUS) DeepCopyInto(out *Account_STATUS) { + *out = *in + if in.AccountId != nil { + in, out := &in.AccountId, &out.AccountId + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DefaultIngestionSettings != nil { + in, out := &in.DefaultIngestionSettings, &out.DefaultIngestionSettings + *out = new(IngestionSettings_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Metrics != nil { + in, out := &in.Metrics, &out.Metrics + *out = new(Metrics_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PrivateEndpointConnections != nil { + in, out := &in.PrivateEndpointConnections, &out.PrivateEndpointConnections + *out = make([]PrivateEndpointConnection_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(string) + **out = **in + } + 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.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 Account_STATUS. +func (in *Account_STATUS) DeepCopy() *Account_STATUS { + if in == nil { + return nil + } + out := new(Account_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 *Account_Spec) DeepCopyInto(out *Account_Spec) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.KnownResourceReference) + **out = **in + } + if in.PropertyBag != nil { + in, out := &in.PropertyBag, &out.PropertyBag + *out = make(genruntime.PropertyBag, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Account_Spec. +func (in *Account_Spec) DeepCopy() *Account_Spec { + if in == nil { + return nil + } + out := new(Account_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 *IngestionSettings_STATUS) DeepCopyInto(out *IngestionSettings_STATUS) { + *out = *in + if in.DataCollectionEndpointResourceId != nil { + in, out := &in.DataCollectionEndpointResourceId, &out.DataCollectionEndpointResourceId + *out = new(string) + **out = **in + } + if in.DataCollectionRuleResourceId != nil { + in, out := &in.DataCollectionRuleResourceId, &out.DataCollectionRuleResourceId + *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 IngestionSettings_STATUS. +func (in *IngestionSettings_STATUS) DeepCopy() *IngestionSettings_STATUS { + if in == nil { + return nil + } + out := new(IngestionSettings_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 *Metrics_STATUS) DeepCopyInto(out *Metrics_STATUS) { + *out = *in + if in.InternalId != nil { + in, out := &in.InternalId, &out.InternalId + *out = new(string) + **out = **in + } + if in.PrometheusQueryEndpoint != nil { + in, out := &in.PrometheusQueryEndpoint, &out.PrometheusQueryEndpoint + *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 Metrics_STATUS. +func (in *Metrics_STATUS) DeepCopy() *Metrics_STATUS { + if in == nil { + return nil + } + out := new(Metrics_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 *PrivateEndpointConnection_STATUS) DeepCopyInto(out *PrivateEndpointConnection_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 PrivateEndpointConnection_STATUS. +func (in *PrivateEndpointConnection_STATUS) DeepCopy() *PrivateEndpointConnection_STATUS { + if in == nil { + return nil + } + out := new(PrivateEndpointConnection_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) 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 +} diff --git a/v2/api/monitor/v1api20230403/structure.txt b/v2/api/monitor/v1api20230403/structure.txt new file mode 100644 index 00000000000..16b4dfa9335 --- /dev/null +++ b/v2/api/monitor/v1api20230403/structure.txt @@ -0,0 +1,97 @@ +// Code generated by azure-service-operator-codegen. DO NOT EDIT. +github.com/Azure/azure-service-operator/v2/api/monitor/v1api20230403 +├── APIVersion: Enum (1 value) +│ └── "2023-04-03" +├── Account: Resource +│ ├── Owner: resources/v1apiv20191001.ResourceGroup +│ ├── Spec: Object (4 properties) +│ │ ├── AzureName: string +│ │ ├── Location: *string +│ │ ├── Owner: *genruntime.KnownResourceReference +│ │ └── Tags: map[string]string +│ └── Status: Object (14 properties) +│ ├── AccountId: *string +│ ├── Conditions: conditions.Condition[] +│ ├── DefaultIngestionSettings: *Object (2 properties) +│ │ ├── DataCollectionEndpointResourceId: *string +│ │ └── DataCollectionRuleResourceId: *string +│ ├── Etag: *string +│ ├── Id: *string +│ ├── Location: *string +│ ├── Metrics: *Object (2 properties) +│ │ ├── InternalId: *string +│ │ └── PrometheusQueryEndpoint: *string +│ ├── Name: *string +│ ├── PrivateEndpointConnections: Object (1 property)[] +│ │ └── Id: *string +│ ├── ProvisioningState: *Enum (5 values) +│ │ ├── "Canceled" +│ │ ├── "Creating" +│ │ ├── "Deleting" +│ │ ├── "Failed" +│ │ └── "Succeeded" +│ ├── PublicNetworkAccess: *Enum (2 values) +│ │ ├── "Disabled" +│ │ └── "Enabled" +│ ├── 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 +├── Account_STATUS_ARM: Object (8 properties) +│ ├── Etag: *string +│ ├── Id: *string +│ ├── Location: *string +│ ├── Name: *string +│ ├── Properties: *Object (6 properties) +│ │ ├── AccountId: *string +│ │ ├── DefaultIngestionSettings: *Object (2 properties) +│ │ │ ├── DataCollectionEndpointResourceId: *string +│ │ │ └── DataCollectionRuleResourceId: *string +│ │ ├── Metrics: *Object (2 properties) +│ │ │ ├── InternalId: *string +│ │ │ └── PrometheusQueryEndpoint: *string +│ │ ├── PrivateEndpointConnections: Object (1 property)[] +│ │ │ └── Id: *string +│ │ ├── ProvisioningState: *Enum (5 values) +│ │ │ ├── "Canceled" +│ │ │ ├── "Creating" +│ │ │ ├── "Deleting" +│ │ │ ├── "Failed" +│ │ │ └── "Succeeded" +│ │ └── PublicNetworkAccess: *Enum (2 values) +│ │ ├── "Disabled" +│ │ └── "Enabled" +│ ├── 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 +└── Account_Spec_ARM: Object (3 properties) + ├── Location: *string + ├── Name: string + └── Tags: map[string]string diff --git a/v2/api/monitor/v1api20230403/zz_generated.deepcopy.go b/v2/api/monitor/v1api20230403/zz_generated.deepcopy.go new file mode 100644 index 00000000000..5ea67278c4c --- /dev/null +++ b/v2/api/monitor/v1api20230403/zz_generated.deepcopy.go @@ -0,0 +1,559 @@ +//go:build !ignore_autogenerated + +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1api20230403 + +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 *Account) DeepCopyInto(out *Account) { + *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 Account. +func (in *Account) DeepCopy() *Account { + if in == nil { + return nil + } + out := new(Account) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Account) 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 *AccountList) DeepCopyInto(out *AccountList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Account, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccountList. +func (in *AccountList) DeepCopy() *AccountList { + if in == nil { + return nil + } + out := new(AccountList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AccountList) 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 *Account_STATUS) DeepCopyInto(out *Account_STATUS) { + *out = *in + if in.AccountId != nil { + in, out := &in.AccountId, &out.AccountId + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]conditions.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DefaultIngestionSettings != nil { + in, out := &in.DefaultIngestionSettings, &out.DefaultIngestionSettings + *out = new(IngestionSettings_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Metrics != nil { + in, out := &in.Metrics, &out.Metrics + *out = new(Metrics_STATUS) + (*in).DeepCopyInto(*out) + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PrivateEndpointConnections != nil { + in, out := &in.PrivateEndpointConnections, &out.PrivateEndpointConnections + *out = make([]PrivateEndpointConnection_STATUS, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(AzureMonitorWorkspace_ProvisioningState_STATUS) + **out = **in + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(AzureMonitorWorkspace_PublicNetworkAccess_STATUS) + **out = **in + } + 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.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 Account_STATUS. +func (in *Account_STATUS) DeepCopy() *Account_STATUS { + if in == nil { + return nil + } + out := new(Account_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 *Account_STATUS_ARM) DeepCopyInto(out *Account_STATUS_ARM) { + *out = *in + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.Id != nil { + in, out := &in.Id, &out.Id + *out = new(string) + **out = **in + } + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Properties != nil { + in, out := &in.Properties, &out.Properties + *out = new(AzureMonitorWorkspace_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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Account_STATUS_ARM. +func (in *Account_STATUS_ARM) DeepCopy() *Account_STATUS_ARM { + if in == nil { + return nil + } + out := new(Account_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 *Account_Spec) DeepCopyInto(out *Account_Spec) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(genruntime.KnownResourceReference) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Account_Spec. +func (in *Account_Spec) DeepCopy() *Account_Spec { + if in == nil { + return nil + } + out := new(Account_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 *Account_Spec_ARM) DeepCopyInto(out *Account_Spec_ARM) { + *out = *in + if in.Location != nil { + in, out := &in.Location, &out.Location + *out = new(string) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]string, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Account_Spec_ARM. +func (in *Account_Spec_ARM) DeepCopy() *Account_Spec_ARM { + if in == nil { + return nil + } + out := new(Account_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 *AzureMonitorWorkspace_STATUS_ARM) DeepCopyInto(out *AzureMonitorWorkspace_STATUS_ARM) { + *out = *in + if in.AccountId != nil { + in, out := &in.AccountId, &out.AccountId + *out = new(string) + **out = **in + } + if in.DefaultIngestionSettings != nil { + in, out := &in.DefaultIngestionSettings, &out.DefaultIngestionSettings + *out = new(IngestionSettings_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.Metrics != nil { + in, out := &in.Metrics, &out.Metrics + *out = new(Metrics_STATUS_ARM) + (*in).DeepCopyInto(*out) + } + if in.PrivateEndpointConnections != nil { + in, out := &in.PrivateEndpointConnections, &out.PrivateEndpointConnections + *out = make([]PrivateEndpointConnection_STATUS_ARM, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ProvisioningState != nil { + in, out := &in.ProvisioningState, &out.ProvisioningState + *out = new(AzureMonitorWorkspace_ProvisioningState_STATUS) + **out = **in + } + if in.PublicNetworkAccess != nil { + in, out := &in.PublicNetworkAccess, &out.PublicNetworkAccess + *out = new(AzureMonitorWorkspace_PublicNetworkAccess_STATUS) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AzureMonitorWorkspace_STATUS_ARM. +func (in *AzureMonitorWorkspace_STATUS_ARM) DeepCopy() *AzureMonitorWorkspace_STATUS_ARM { + if in == nil { + return nil + } + out := new(AzureMonitorWorkspace_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 *IngestionSettings_STATUS) DeepCopyInto(out *IngestionSettings_STATUS) { + *out = *in + if in.DataCollectionEndpointResourceId != nil { + in, out := &in.DataCollectionEndpointResourceId, &out.DataCollectionEndpointResourceId + *out = new(string) + **out = **in + } + if in.DataCollectionRuleResourceId != nil { + in, out := &in.DataCollectionRuleResourceId, &out.DataCollectionRuleResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngestionSettings_STATUS. +func (in *IngestionSettings_STATUS) DeepCopy() *IngestionSettings_STATUS { + if in == nil { + return nil + } + out := new(IngestionSettings_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 *IngestionSettings_STATUS_ARM) DeepCopyInto(out *IngestionSettings_STATUS_ARM) { + *out = *in + if in.DataCollectionEndpointResourceId != nil { + in, out := &in.DataCollectionEndpointResourceId, &out.DataCollectionEndpointResourceId + *out = new(string) + **out = **in + } + if in.DataCollectionRuleResourceId != nil { + in, out := &in.DataCollectionRuleResourceId, &out.DataCollectionRuleResourceId + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngestionSettings_STATUS_ARM. +func (in *IngestionSettings_STATUS_ARM) DeepCopy() *IngestionSettings_STATUS_ARM { + if in == nil { + return nil + } + out := new(IngestionSettings_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 *Metrics_STATUS) DeepCopyInto(out *Metrics_STATUS) { + *out = *in + if in.InternalId != nil { + in, out := &in.InternalId, &out.InternalId + *out = new(string) + **out = **in + } + if in.PrometheusQueryEndpoint != nil { + in, out := &in.PrometheusQueryEndpoint, &out.PrometheusQueryEndpoint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metrics_STATUS. +func (in *Metrics_STATUS) DeepCopy() *Metrics_STATUS { + if in == nil { + return nil + } + out := new(Metrics_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 *Metrics_STATUS_ARM) DeepCopyInto(out *Metrics_STATUS_ARM) { + *out = *in + if in.InternalId != nil { + in, out := &in.InternalId, &out.InternalId + *out = new(string) + **out = **in + } + if in.PrometheusQueryEndpoint != nil { + in, out := &in.PrometheusQueryEndpoint, &out.PrometheusQueryEndpoint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Metrics_STATUS_ARM. +func (in *Metrics_STATUS_ARM) DeepCopy() *Metrics_STATUS_ARM { + if in == nil { + return nil + } + out := new(Metrics_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 *PrivateEndpointConnection_STATUS) DeepCopyInto(out *PrivateEndpointConnection_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 PrivateEndpointConnection_STATUS. +func (in *PrivateEndpointConnection_STATUS) DeepCopy() *PrivateEndpointConnection_STATUS { + if in == nil { + return nil + } + out := new(PrivateEndpointConnection_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 *PrivateEndpointConnection_STATUS_ARM) DeepCopyInto(out *PrivateEndpointConnection_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 PrivateEndpointConnection_STATUS_ARM. +func (in *PrivateEndpointConnection_STATUS_ARM) DeepCopy() *PrivateEndpointConnection_STATUS_ARM { + if in == nil { + return nil + } + out := new(PrivateEndpointConnection_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 *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 +} diff --git a/v2/api/monitor/versions_matrix.md b/v2/api/monitor/versions_matrix.md new file mode 100644 index 00000000000..11fcc6fa483 --- /dev/null +++ b/v2/api/monitor/versions_matrix.md @@ -0,0 +1,15 @@ +| Type Definitions in package "monitor" | v1api20230403 | +|--------------------------------------------------|---------------| +| APIVersion | v1api20230403 | +| Account | v1api20230403 | +| Account_STATUS | v1api20230403 | +| Account_Spec | v1api20230403 | +| AzureMonitorWorkspace_ProvisioningState_STATUS | v1api20230403 | +| AzureMonitorWorkspace_PublicNetworkAccess_STATUS | v1api20230403 | +| AzureMonitorWorkspace_STATUS | v1api20230403 | +| IngestionSettings_STATUS | v1api20230403 | +| Metrics_STATUS | v1api20230403 | +| PrivateEndpointConnection_STATUS | v1api20230403 | +| SystemData_CreatedByType_STATUS | v1api20230403 | +| SystemData_LastModifiedByType_STATUS | v1api20230403 | +| SystemData_STATUS | v1api20230403 | diff --git a/v2/azure-arm.yaml b/v2/azure-arm.yaml index ba257575e69..e2fc9d2af2b 100644 --- a/v2/azure-arm.yaml +++ b/v2/azure-arm.yaml @@ -871,6 +871,17 @@ status: # in the ASO types. The shape serialized to ARM uses the original name. # objectModelConfiguration: + alertsmanagement: + 2023-03-01: + PrometheusRuleGroup: + $export: true + $supportedFrom: v2.8.0 + PrometheusRuleGroupProperties: + Scopes: + $armReference: true + PrometheusRuleGroupAction: + ActionGroupId: + $armReference: true apimanagement: 2022-08-01: AdditionalLocation: @@ -2424,6 +2435,11 @@ objectModelConfiguration: Workspaces_Connection: $exportAs: WorkspacesConnection $supportedFrom: v2.0.0-beta.2 + monitor: + 2023-04-03: + Account: + $export: true + $supportedFrom: v2.8.0 network: 2018-05-01: DnsZone: diff --git a/v2/internal/controllers/alertsmanagement_prometheusrulegroup_crud_v20230301_test.go b/v2/internal/controllers/alertsmanagement_prometheusrulegroup_crud_v20230301_test.go new file mode 100644 index 00000000000..e1f4a25e182 --- /dev/null +++ b/v2/internal/controllers/alertsmanagement_prometheusrulegroup_crud_v20230301_test.go @@ -0,0 +1,75 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +package controllers_test + +import ( + "context" + "testing" + + . "github.com/onsi/gomega" + + alertsmanagement "github.com/Azure/azure-service-operator/v2/api/alertsmanagement/v1api20230301" + monitor "github.com/Azure/azure-service-operator/v2/api/monitor/v1api20230403" + "github.com/Azure/azure-service-operator/v2/internal/testcommon" + "github.com/Azure/azure-service-operator/v2/internal/util/to" + "github.com/Azure/azure-service-operator/v2/pkg/genruntime" +) + +func Test_AlertsManagement_PrometheusRuleGroup_CRUD(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + tc := globalTestContext.ForTest(t) + rg := tc.CreateTestResourceGroupAndWait() + + acct := &monitor.Account{ + ObjectMeta: tc.MakeObjectMeta("acct"), + Spec: monitor.Account_Spec{ + Location: tc.AzureRegion, + Owner: testcommon.AsOwner(rg), + }, + } + + // Create a Prometheus Rule Group + // This was adapted from https://learn.microsoft.com/en-us/azure/azure-monitor/essentials/prometheus-rule-groups#template-example-for-a-prometheus-rule-group + ruleGroup := &alertsmanagement.PrometheusRuleGroup{ + ObjectMeta: tc.MakeObjectMeta("promrule"), + Spec: alertsmanagement.PrometheusRuleGroup_Spec{ + Location: tc.AzureRegion, + Owner: testcommon.AsOwner(rg), + Enabled: to.Ptr(true), + ClusterName: to.Ptr("mycluster"), + Interval: to.Ptr("PT1M"), + ScopesReferences: []genruntime.ResourceReference{ + *tc.MakeReferenceFromResource(acct), + }, + Rules: []alertsmanagement.PrometheusRule{ + { + Enabled: to.Ptr(true), + Expression: to.Ptr("1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job=\"node\", mode=~\"idle|iowait|steal\"}[5m])))"), + Labels: map[string]string{ + "workload_type": "job", + }, + Record: to.Ptr("instance:node_cpu_utilisation:rate5m"), + }, + }, + }, + } + tc.CreateResourcesAndWait(ruleGroup, acct) + + // Ensure that the status is what we expect + tc.Expect(ruleGroup.Status.Id).ToNot(BeNil()) + armId := *ruleGroup.Status.Id + + tc.DeleteResourceAndWait(ruleGroup) + + // Ensure that the resource was really deleted in Azure + ctx := context.Background() + exists, retryAfter, err := tc.AzureClient.CheckExistenceWithGetByID(ctx, armId, string(alertsmanagement.APIVersion_Value)) + g.Expect(err).ToNot(HaveOccurred()) + g.Expect(retryAfter).To(BeZero()) + g.Expect(exists).To(BeFalse()) +} diff --git a/v2/internal/controllers/controller_resources_gen.go b/v2/internal/controllers/controller_resources_gen.go index a5e73d808e7..d2a602f25a4 100644 --- a/v2/internal/controllers/controller_resources_gen.go +++ b/v2/internal/controllers/controller_resources_gen.go @@ -4,6 +4,9 @@ package controllers import ( + alertsmanagement_customizations "github.com/Azure/azure-service-operator/v2/api/alertsmanagement/customizations" + alertsmanagement_v20230301 "github.com/Azure/azure-service-operator/v2/api/alertsmanagement/v1api20230301" + alertsmanagement_v20230301s "github.com/Azure/azure-service-operator/v2/api/alertsmanagement/v1api20230301/storage" 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/v1api20220801/storage" @@ -136,6 +139,9 @@ import ( managedidentity_v20220131ps "github.com/Azure/azure-service-operator/v2/api/managedidentity/v1api20220131preview/storage" managedidentity_v20230131 "github.com/Azure/azure-service-operator/v2/api/managedidentity/v1api20230131" managedidentity_v20230131s "github.com/Azure/azure-service-operator/v2/api/managedidentity/v1api20230131/storage" + monitor_customizations "github.com/Azure/azure-service-operator/v2/api/monitor/customizations" + monitor_v20230403 "github.com/Azure/azure-service-operator/v2/api/monitor/v1api20230403" + monitor_v20230403s "github.com/Azure/azure-service-operator/v2/api/monitor/v1api20230403/storage" networkfrontdoor_customizations "github.com/Azure/azure-service-operator/v2/api/network.frontdoor/customizations" networkfrontdoor_v20220501 "github.com/Azure/azure-service-operator/v2/api/network.frontdoor/v1api20220501" networkfrontdoor_v20220501s "github.com/Azure/azure-service-operator/v2/api/network.frontdoor/v1api20220501/storage" @@ -201,6 +207,7 @@ 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(alertsmanagement_v20230301s.PrometheusRuleGroup)}) result = append(result, ®istration.StorageType{Obj: new(apimanagement_v20220801s.Api)}) result = append(result, ®istration.StorageType{Obj: new(apimanagement_v20220801s.ApiVersionSet)}) result = append(result, ®istration.StorageType{ @@ -795,6 +802,7 @@ func getKnownStorageTypes() []*registration.StorageType { }, }) result = append(result, ®istration.StorageType{Obj: new(managedidentity_v20230131s.UserAssignedIdentity)}) + result = append(result, ®istration.StorageType{Obj: new(monitor_v20230403s.Account)}) result = append(result, ®istration.StorageType{Obj: new(network_v20180501s.DnsZone)}) result = append(result, ®istration.StorageType{Obj: new(network_v20180501s.DnsZonesAAAARecord)}) result = append(result, ®istration.StorageType{Obj: new(network_v20180501s.DnsZonesARecord)}) @@ -1116,6 +1124,8 @@ func getKnownStorageTypes() []*registration.StorageType { // getKnownTypes returns the list of all types. func getKnownTypes() []client.Object { var result []client.Object + result = append(result, new(alertsmanagement_v20230301.PrometheusRuleGroup)) + result = append(result, new(alertsmanagement_v20230301s.PrometheusRuleGroup)) result = append( result, new(apimanagement_v20220801.Api), @@ -1598,6 +1608,8 @@ func getKnownTypes() []client.Object { result, new(managedidentity_v20230131s.FederatedIdentityCredential), new(managedidentity_v20230131s.UserAssignedIdentity)) + result = append(result, new(monitor_v20230403.Account)) + result = append(result, new(monitor_v20230403s.Account)) result = append( result, new(network_v20180501.DnsZone), @@ -1907,6 +1919,8 @@ func getKnownTypes() []client.Object { func createScheme() *runtime.Scheme { scheme := runtime.NewScheme() _ = clientgoscheme.AddToScheme(scheme) + _ = alertsmanagement_v20230301.AddToScheme(scheme) + _ = alertsmanagement_v20230301s.AddToScheme(scheme) _ = apimanagement_v20220801.AddToScheme(scheme) _ = apimanagement_v20220801s.AddToScheme(scheme) _ = apimanagement_v20230501p.AddToScheme(scheme) @@ -2015,6 +2029,8 @@ func createScheme() *runtime.Scheme { _ = managedidentity_v20220131ps.AddToScheme(scheme) _ = managedidentity_v20230131.AddToScheme(scheme) _ = managedidentity_v20230131s.AddToScheme(scheme) + _ = monitor_v20230403.AddToScheme(scheme) + _ = monitor_v20230403s.AddToScheme(scheme) _ = network_v20180501.AddToScheme(scheme) _ = network_v20180501s.AddToScheme(scheme) _ = network_v20180901.AddToScheme(scheme) @@ -2063,6 +2079,7 @@ func createScheme() *runtime.Scheme { // getResourceExtensions returns a list of resource extensions func getResourceExtensions() []genruntime.ResourceExtension { var result []genruntime.ResourceExtension + result = append(result, &alertsmanagement_customizations.PrometheusRuleGroupExtension{}) result = append(result, &apimanagement_customizations.ApiExtension{}) result = append(result, &apimanagement_customizations.ApiVersionSetExtension{}) result = append(result, &apimanagement_customizations.AuthorizationProviderExtension{}) @@ -2165,6 +2182,7 @@ func getResourceExtensions() []genruntime.ResourceExtension { result = append(result, &machinelearningservices_customizations.WorkspacesConnectionExtension{}) result = append(result, &managedidentity_customizations.FederatedIdentityCredentialExtension{}) result = append(result, &managedidentity_customizations.UserAssignedIdentityExtension{}) + result = append(result, &monitor_customizations.AccountExtension{}) result = append(result, &network_customizations.ApplicationGatewayExtension{}) result = append(result, &network_customizations.BastionHostExtension{}) result = append(result, &network_customizations.DnsForwardingRuleSetsForwardingRuleExtension{}) diff --git a/v2/internal/controllers/monitor_account_crud_v20230403_test.go b/v2/internal/controllers/monitor_account_crud_v20230403_test.go new file mode 100644 index 00000000000..24d7ec03c8a --- /dev/null +++ b/v2/internal/controllers/monitor_account_crud_v20230403_test.go @@ -0,0 +1,47 @@ +/* +Copyright (c) Microsoft Corporation. +Licensed under the MIT license. +*/ + +package controllers_test + +import ( + "context" + "testing" + + . "github.com/onsi/gomega" + + monitor "github.com/Azure/azure-service-operator/v2/api/monitor/v1api20230403" + "github.com/Azure/azure-service-operator/v2/internal/testcommon" +) + +func Test_Monitor_Account_CRUD(t *testing.T) { + t.Parallel() + g := NewGomegaWithT(t) + + tc := globalTestContext.ForTest(t) + rg := tc.CreateTestResourceGroupAndWait() + + // This was adapted from https://github.com/Azure/azure-rest-api-specs/blob/main/specification/monitor/resource-manager/Microsoft.Monitor/stable/2023-04-03/examples/AzureMonitorWorkspacesCreate.json + acct := &monitor.Account{ + ObjectMeta: tc.MakeObjectMeta("acct"), + Spec: monitor.Account_Spec{ + Location: tc.AzureRegion, + Owner: testcommon.AsOwner(rg), + }, + } + tc.CreateResourcesAndWait(acct) + + // Ensure that the status is what we expect + tc.Expect(acct.Status.Id).ToNot(BeNil()) + armId := *acct.Status.Id + + tc.DeleteResourceAndWait(acct) + + // Ensure that the resource was really deleted in Azure + ctx := context.Background() + exists, retryAfter, err := tc.AzureClient.CheckExistenceWithGetByID(ctx, armId, string(monitor.APIVersion_Value)) + g.Expect(err).ToNot(HaveOccurred()) + g.Expect(retryAfter).To(BeZero()) + g.Expect(exists).To(BeFalse()) +} diff --git a/v2/internal/controllers/recordings/Test_AlertsManagement_PrometheusRuleGroup_CRUD.yaml b/v2/internal/controllers/recordings/Test_AlertsManagement_PrometheusRuleGroup_CRUD.yaml new file mode 100644 index 00000000000..67edf0f0758 --- /dev/null +++ b/v2/internal/controllers/recordings/Test_AlertsManagement_PrometheusRuleGroup_CRUD.yaml @@ -0,0 +1,975 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 93 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-rg-jjrepc","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Hash: + - 830b73a1ce9ea3d8e19f50a8f4f4295c536c341f52bb8ff40d1dc0700581fbcb + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc?api-version=2020-06-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc","name":"asotest-rg-jjrepc","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F4E35694FC7C4671ACBD4E5FC79F02F3 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:32:10Z' + status: 201 Created + code: 201 + duration: 242.969206ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc?api-version=2020-06-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc","name":"asotest-rg-jjrepc","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 787A0ECAF36040129ED880217C79BB02 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:32:10Z' + status: 200 OK + code: 200 + duration: 23.124539ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 527 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-promrule-vtyazz","properties":{"clusterName":"mycluster","enabled":true,"interval":"PT1M","rules":[{"enabled":true,"expression":"1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job=\"node\", mode=~\"idle|iowait|steal\"}[5m])))","labels":{"workload_type":"job"},"record":"instance:node_cpu_utilisation:rate5m"}],"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.Monitor/accounts/asotest-acct-abqzbu"]}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "527" + Content-Type: + - application/json + Test-Request-Hash: + - 5b7b3dc6400dbaed69c30f1a109c919e780a82c92f19f83b91ebc1eb11acdc5d + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.AlertsManagement/prometheusRuleGroups/asotest-promrule-vtyazz?api-version=2023-03-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 927 + uncompressed: false + body: "{\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.AlertsManagement/prometheusRuleGroups/asotest-promrule-vtyazz\",\r\n \"name\": \"asotest-promrule-vtyazz\",\r\n \"type\": \"Microsoft.AlertsManagement/prometheusRuleGroups\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"enabled\": true,\r\n \"clusterName\": \"mycluster\",\r\n \"scopes\": [\r\n \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.Monitor/accounts/asotest-acct-abqzbu\"\r\n ],\r\n \"rules\": [\r\n {\r\n \"record\": \"instance:node_cpu_utilisation:rate5m\",\r\n \"enabled\": true,\r\n \"expression\": \"1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job=\\\"node\\\", mode=~\\\"idle|iowait|steal\\\"}[5m])))\",\r\n \"labels\": {\r\n \"workload_type\": \"job\"\r\n }\r\n }\r\n ],\r\n \"interval\": \"PT1M\"\r\n }\r\n}" + headers: + Api-Supported-Versions: + - 2021-07-22-preview, 2023-03-01, 2023-09-01-preview + Arr-Disable-Session-Affinity: + - "true" + Cache-Control: + - no-cache + Content-Length: + - "927" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Aspnet-Version: + - 4.0.30319 + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "299" + X-Msedge-Ref: + - 'Ref A: 06FE1B09BAD44E328EA4E83B4BF5EFFA Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:32:13Z' + X-Powered-By: + - ASP.NET + status: 200 OK + code: 200 + duration: 1.674086426s + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.AlertsManagement/prometheusRuleGroups/asotest-promrule-vtyazz?api-version=2023-03-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 927 + uncompressed: false + body: "{\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.AlertsManagement/prometheusRuleGroups/asotest-promrule-vtyazz\",\r\n \"name\": \"asotest-promrule-vtyazz\",\r\n \"type\": \"Microsoft.AlertsManagement/prometheusRuleGroups\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"enabled\": true,\r\n \"clusterName\": \"mycluster\",\r\n \"scopes\": [\r\n \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.Monitor/accounts/asotest-acct-abqzbu\"\r\n ],\r\n \"rules\": [\r\n {\r\n \"record\": \"instance:node_cpu_utilisation:rate5m\",\r\n \"enabled\": true,\r\n \"expression\": \"1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job=\\\"node\\\", mode=~\\\"idle|iowait|steal\\\"}[5m])))\",\r\n \"labels\": {\r\n \"workload_type\": \"job\"\r\n }\r\n }\r\n ],\r\n \"interval\": \"PT1M\"\r\n }\r\n}" + headers: + Api-Supported-Versions: + - 2021-07-22-preview, 2023-03-01, 2023-09-01-preview + Arr-Disable-Session-Affinity: + - "true" + Cache-Control: + - no-cache + Content-Length: + - "927" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Aspnet-Version: + - 4.0.30319 + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 8619F66413F4493883118D3DE0787302 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:32:17Z' + X-Powered-By: + - ASP.NET + status: 200 OK + code: 200 + duration: 239.983607ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 51 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-acct-abqzbu"}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "51" + Content-Type: + - application/json + Test-Request-Hash: + - 36995d07438df770a93c8d5329e5101754666b9dc18c57a41fbe310d4d632ad6 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.Monitor/accounts/asotest-acct-abqzbu?api-version=2023-04-03 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1283 + uncompressed: false + body: '{"properties":{"accountId":"148d5dbc-989a-4c9b-bdd6-e1800bdf49b0","metrics":{"prometheusQueryEndpoint":"https://asotest-acct-abqzbu-bta4hvefcjafahhp.westus2.prometheus.monitor.azure.com","internalId":"mac_148d5dbc-989a-4c9b-bdd6-e1800bdf49b0"},"provisioningState":"Succeeded","defaultIngestionSettings":{"dataCollectionRuleResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_asotest-acct-abqzbu_westus2_managed/providers/Microsoft.Insights/dataCollectionRules/asotest-acct-abqzbu","dataCollectionEndpointResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_asotest-acct-abqzbu_westus2_managed/providers/Microsoft.Insights/dataCollectionEndpoints/asotest-acct-abqzbu"},"publicNetworkAccess":"Enabled"},"location":"westus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-jjrepc/providers/microsoft.monitor/accounts/asotest-acct-abqzbu","name":"asotest-acct-abqzbu","type":"Microsoft.Monitor/accounts","etag":"\"ed00ab21-0000-0800-0000-6658fe730000\"","systemData":{"createdBy":"matthchr@microsoft.com","createdByType":"User","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"matthchr@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2001-02-03T04:05:06Z"}}' + headers: + Api-Supported-Versions: + - 2021-06-01-preview, 2021-06-03-preview, 2023-04-01, 2023-04-03, 2023-06-01-preview + Cache-Control: + - no-cache + Content-Length: + - "1283" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Request-Context: + - appId=cid-v1:74683e7d-3ee8-4856-bfe7-e63c83b6737e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 4DD43AC8FC2F41C9AA0EFC7265D3AA8C Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:32:12Z' + status: 200 OK + code: 200 + duration: 6.8529667s + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.Monitor/accounts/asotest-acct-abqzbu?api-version=2023-04-03 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1283 + uncompressed: false + body: '{"properties":{"accountId":"148d5dbc-989a-4c9b-bdd6-e1800bdf49b0","metrics":{"prometheusQueryEndpoint":"https://asotest-acct-abqzbu-bta4hvefcjafahhp.westus2.prometheus.monitor.azure.com","internalId":"mac_148d5dbc-989a-4c9b-bdd6-e1800bdf49b0"},"provisioningState":"Succeeded","defaultIngestionSettings":{"dataCollectionRuleResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_asotest-acct-abqzbu_westus2_managed/providers/Microsoft.Insights/dataCollectionRules/asotest-acct-abqzbu","dataCollectionEndpointResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_asotest-acct-abqzbu_westus2_managed/providers/Microsoft.Insights/dataCollectionEndpoints/asotest-acct-abqzbu"},"publicNetworkAccess":"Enabled"},"location":"westus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-jjrepc/providers/microsoft.monitor/accounts/asotest-acct-abqzbu","name":"asotest-acct-abqzbu","type":"Microsoft.Monitor/accounts","etag":"\"ed00ab21-0000-0800-0000-6658fe730000\"","systemData":{"createdBy":"matthchr@microsoft.com","createdByType":"User","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"matthchr@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2001-02-03T04:05:06Z"}}' + headers: + Api-Supported-Versions: + - 2021-06-01-preview, 2021-06-03-preview, 2023-04-01, 2023-04-03, 2023-06-01-preview + Cache-Control: + - no-cache + Content-Length: + - "1283" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Request-Context: + - appId=cid-v1:74683e7d-3ee8-4856-bfe7-e63c83b6737e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: BC301422EF1E43E49039C3CFD72C4B7D Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:32:26Z' + status: 200 OK + code: 200 + duration: 84.036445ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.AlertsManagement/prometheusRuleGroups/asotest-promrule-vtyazz?api-version=2023-03-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Api-Supported-Versions: + - 2021-07-22-preview, 2023-03-01, 2023-09-01-preview + Arr-Disable-Session-Affinity: + - "true" + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Aspnet-Version: + - 4.0.30319 + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: C964C947734447B69B085F31CD0AF8D1 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:32:27Z' + X-Powered-By: + - ASP.NET + status: 200 OK + code: 200 + duration: 925.331701ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.AlertsManagement/prometheusRuleGroups/asotest-promrule-vtyazz?api-version=2023-03-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 260 + uncompressed: false + body: '{"error":{"code":"ResourceNotFound","message":"The Resource ''Microsoft.AlertsManagement/prometheusRuleGroups/asotest-promrule-vtyazz'' under resource group ''asotest-rg-jjrepc'' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "260" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 552EC74F1C8F44F1A0EED731011AEC46 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:32:32Z' + status: 404 Not Found + code: 404 + duration: 33.185358ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc?api-version=2020-06-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051526478490&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=g7_4r31VtkTlwlMagdHXLk0oSuCqkQlhqqeCTGe9MQ-jlK3XVHrt9mdpeGB_5bYf7MgI6VUspeonGVxMHn1gnQyK1A2FgKmckEeXxau1_JBlv4025Wr1laQuLqTigUTY3wACvZM_-ajK0QfL_cZhbwqxIFuvMtbo6foFnS4akQkBnyRiUUlRwsdprxlOfIkhIb3ytik2Y9r5yezMlhjNfqJ0mKaXp4OjWxZy-inF_HNEVaRxnzD_jmMfni0Bj6HHZw9PAnrwm881x4ZivV9qvdc47Tlk8oAFYEe8CykS-34zjD-SmiaU3kMIQFSE6TxeMcZHiD1jhyLtzg1-fFidxQ&h=lvPQszcuy-sfwmNbJsTsSYdgdBazgp7DnGUr5HC5Jwo + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: E0FDF67F1A8441ABAAC9A0906DD2E4C0 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:32:32Z' + status: 202 Accepted + code: 202 + duration: 151.192564ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051526478490&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=g7_4r31VtkTlwlMagdHXLk0oSuCqkQlhqqeCTGe9MQ-jlK3XVHrt9mdpeGB_5bYf7MgI6VUspeonGVxMHn1gnQyK1A2FgKmckEeXxau1_JBlv4025Wr1laQuLqTigUTY3wACvZM_-ajK0QfL_cZhbwqxIFuvMtbo6foFnS4akQkBnyRiUUlRwsdprxlOfIkhIb3ytik2Y9r5yezMlhjNfqJ0mKaXp4OjWxZy-inF_HNEVaRxnzD_jmMfni0Bj6HHZw9PAnrwm881x4ZivV9qvdc47Tlk8oAFYEe8CykS-34zjD-SmiaU3kMIQFSE6TxeMcZHiD1jhyLtzg1-fFidxQ&h=lvPQszcuy-sfwmNbJsTsSYdgdBazgp7DnGUr5HC5Jwo + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051678761150&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=MGc_iYb8F5oafBj7wwarpklz4oYGwz4PQ_b6y6P_G_0pZOLrRc0AcCMmi16226D9MI6sHdPF4obFYpLIRo8ZuzubEENeogS1fPZJuO_0dMpZRX6Gc5ILyuwMzjr9n8g9FajpzRc7OGHNK1bwCu3gMbudUHpiKRUQoIJVZIMgBpiLxT8FlXrIhiesIBOuim6fplDOiTsCyyF2ytJK9AOaKaxZwh2ScxqGbJbF9S5cWEab5yZWAYLC6pTs-XS-pePcIWhg3T9meV95nnlqf7UyqzVcAl4R4iH5Dcucc9ZNs7sp2Dws-DeL9x5p2AHCnU_fecRduVc4kTMnBOhVb1MCWg&h=J94xVLqW_O5iNZOc8n61V_Ojtkq52POh9QylithgFoM + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: ADBACE25AC0A41569C41BDA87FE9E715 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:32:47Z' + status: 202 Accepted + code: 202 + duration: 30.335454ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051526478490&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=g7_4r31VtkTlwlMagdHXLk0oSuCqkQlhqqeCTGe9MQ-jlK3XVHrt9mdpeGB_5bYf7MgI6VUspeonGVxMHn1gnQyK1A2FgKmckEeXxau1_JBlv4025Wr1laQuLqTigUTY3wACvZM_-ajK0QfL_cZhbwqxIFuvMtbo6foFnS4akQkBnyRiUUlRwsdprxlOfIkhIb3ytik2Y9r5yezMlhjNfqJ0mKaXp4OjWxZy-inF_HNEVaRxnzD_jmMfni0Bj6HHZw9PAnrwm881x4ZivV9qvdc47Tlk8oAFYEe8CykS-34zjD-SmiaU3kMIQFSE6TxeMcZHiD1jhyLtzg1-fFidxQ&h=lvPQszcuy-sfwmNbJsTsSYdgdBazgp7DnGUr5HC5Jwo + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051829332104&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=HIrgZjrjmVv_mppgSwRAE-ryxACo0TMIV6NTgjL6YkzxLOOQ_UAwe9RaN9zcYwSz7N0mSG7BP_KUbag4zvP_kSK2JahW3GlIKFI-NSwhIyirmOmFA5ma7SqCRcsuyHNubFLLhvp6f7kdAv1XHy91awh2mddxAedG2Wn2Ldnpbx3tDNApLH6auir1RBLGSpDdwl_7KNYAATmxCptepsBbbQyoFeyqv8GnsaNV0OeXCT1lkMsmdOjYoXKXpMLw8M0__zhU27FaBJeor9e8keq6_ckvDi_YJyppO3PHxMRbbItURJ37CPRhrMwJn7J4lb-eS6TNi_Q8DBiGYCBAdTR9QQ&h=0SFYV6E5SdUjtPGFSd86FgbMbsnCoJHZW34uACQiMe8 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 56574F3DA5B6412599D00D894286FB21 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:33:02Z' + status: 202 Accepted + code: 202 + duration: 32.68456ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051526478490&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=g7_4r31VtkTlwlMagdHXLk0oSuCqkQlhqqeCTGe9MQ-jlK3XVHrt9mdpeGB_5bYf7MgI6VUspeonGVxMHn1gnQyK1A2FgKmckEeXxau1_JBlv4025Wr1laQuLqTigUTY3wACvZM_-ajK0QfL_cZhbwqxIFuvMtbo6foFnS4akQkBnyRiUUlRwsdprxlOfIkhIb3ytik2Y9r5yezMlhjNfqJ0mKaXp4OjWxZy-inF_HNEVaRxnzD_jmMfni0Bj6HHZw9PAnrwm881x4ZivV9qvdc47Tlk8oAFYEe8CykS-34zjD-SmiaU3kMIQFSE6TxeMcZHiD1jhyLtzg1-fFidxQ&h=lvPQszcuy-sfwmNbJsTsSYdgdBazgp7DnGUr5HC5Jwo + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051980069237&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=AJ4fLTVTwVq2ip0aPYl8h-t6W4dBPT7ufdqRDH_iVz1UzPTguGZssHH9dgcDFxj2cc-97ToJcita2d51UKgMPi2uiFYnrycFrs9qsVwuny_tTXWbkk3lQRE5OjtmddBMF3LeZAOQPXu9ryR-BpJ_PhFTb8ghW26lg2uchgrEpq-J7VnMycOhu_OmfLOFatllR7qdIrygo0rdJ3FF3JHKEA2z-oKxpLAxPLGhhvd1W-xwZZyyVzRjPvbGtIH5FkZyh9j7oW0MiJfL6sAaMpT7Xy9LTJ0caHdUv7viWWMqPbmJUAN7YWzE8Gni33y_yfgm5I_UkfpQD9xBsB-zfvu-8Q&h=bIyG_4SlcnVuFV5LDXTJXj1qGHyY4md9dDH2Jo66mrA + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 3740C98B6E214EE6A9C718A0F7CC3DA1 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:33:17Z' + status: 202 Accepted + code: 202 + duration: 32.465461ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051526478490&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=g7_4r31VtkTlwlMagdHXLk0oSuCqkQlhqqeCTGe9MQ-jlK3XVHrt9mdpeGB_5bYf7MgI6VUspeonGVxMHn1gnQyK1A2FgKmckEeXxau1_JBlv4025Wr1laQuLqTigUTY3wACvZM_-ajK0QfL_cZhbwqxIFuvMtbo6foFnS4akQkBnyRiUUlRwsdprxlOfIkhIb3ytik2Y9r5yezMlhjNfqJ0mKaXp4OjWxZy-inF_HNEVaRxnzD_jmMfni0Bj6HHZw9PAnrwm881x4ZivV9qvdc47Tlk8oAFYEe8CykS-34zjD-SmiaU3kMIQFSE6TxeMcZHiD1jhyLtzg1-fFidxQ&h=lvPQszcuy-sfwmNbJsTsSYdgdBazgp7DnGUr5HC5Jwo + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527052130786144&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=E3bgv9pu0PLeva5l98OdjwxrrMfM0nKlOhDh2q4cH7u02VU6bz_k4UENpG2RJ7782gn-XqOI8gJCxHM6xhxtZzNwIJhpFSqLm3ijMFtqMufnpISx2OABu3lruKylww5Xs50HJMW-7tHNjjP0WeOYbusPxQSQ9LPaPR5m9o6TWMTBDPwS-81RxLRZo2sdin8i60D1_rZdRrT7dZJh_qJppRwQDIYkTLsaRGT1asVbEQlXUTV4GSA8HLcxG0dE9TlYIDn9Fky9Sq7nPwyLOtzf6jmtetos-fpvVaQF3K0FpuA0mGMu5Bm8AqUDfjayTjs5igBOPJ1l8RbPYGkdCnnzdg&h=Vr4Kxic1wv3D8SKDhU7yjvSrgdSBOvtrxtdr8zRuzvw + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F59739E4447345D09E31C1A2BDE1F62D Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:33:33Z' + status: 202 Accepted + code: 202 + duration: 32.683164ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051526478490&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=g7_4r31VtkTlwlMagdHXLk0oSuCqkQlhqqeCTGe9MQ-jlK3XVHrt9mdpeGB_5bYf7MgI6VUspeonGVxMHn1gnQyK1A2FgKmckEeXxau1_JBlv4025Wr1laQuLqTigUTY3wACvZM_-ajK0QfL_cZhbwqxIFuvMtbo6foFnS4akQkBnyRiUUlRwsdprxlOfIkhIb3ytik2Y9r5yezMlhjNfqJ0mKaXp4OjWxZy-inF_HNEVaRxnzD_jmMfni0Bj6HHZw9PAnrwm881x4ZivV9qvdc47Tlk8oAFYEe8CykS-34zjD-SmiaU3kMIQFSE6TxeMcZHiD1jhyLtzg1-fFidxQ&h=lvPQszcuy-sfwmNbJsTsSYdgdBazgp7DnGUr5HC5Jwo + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527052281490729&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=W8DP8lAbdG254IaOO6G4aYfV9UVw9XK87yVoJHxaHFa4bsTDPd7ddwm_JZJWIb0P8AvqRYV9No0pjwtNZOe3VjQRfsjb560LiFu4OkqSU3CClfbnhJ2Kx9PLQ8QaI2llBf6GzL0QgAdb02a8FfVPIUhdNwZbPIb4Z6NZqwe_zq4-Dovklavq3L7Q75LW9ek2QpipNSgJng1tSgzxVfmbmyu0dBKuJZPBO8ha23vJ80vVaxqladdQ5Ymv6K4ZsDYIAD3y-lr5eJtYtndWBB4slE_2WMj0fAk_RB5U-XaWKhu7J0s2k1i5TE0-ME2Xwsoc7OOiCGm7l-w_fc9-EmrRRw&h=ZVdw2NebbUyoeFjg9_nH5gVi_Rk1BmrsDj08TyM3M1U + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 50350B12284A47DCA409830F5404DBC3 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:33:48Z' + status: 202 Accepted + code: 202 + duration: 25.362451ms + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051526478490&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=g7_4r31VtkTlwlMagdHXLk0oSuCqkQlhqqeCTGe9MQ-jlK3XVHrt9mdpeGB_5bYf7MgI6VUspeonGVxMHn1gnQyK1A2FgKmckEeXxau1_JBlv4025Wr1laQuLqTigUTY3wACvZM_-ajK0QfL_cZhbwqxIFuvMtbo6foFnS4akQkBnyRiUUlRwsdprxlOfIkhIb3ytik2Y9r5yezMlhjNfqJ0mKaXp4OjWxZy-inF_HNEVaRxnzD_jmMfni0Bj6HHZw9PAnrwm881x4ZivV9qvdc47Tlk8oAFYEe8CykS-34zjD-SmiaU3kMIQFSE6TxeMcZHiD1jhyLtzg1-fFidxQ&h=lvPQszcuy-sfwmNbJsTsSYdgdBazgp7DnGUr5HC5Jwo + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527052432114580&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=n_LMQJMMtuvRxxH8nZjzVArxztmGrjfxdd_hRiSgT-T6jcf_hQBvL6mO29zzWzAv_nB9jGX3exhDsjTAGxQrFH7VwZQ2jXJP1ee3jFwDceUT8kLnzWJ49uIT0KU5oSqHZlJTKLY9XyHFCxKi_FDF2eONEt-9h0CTH0evMKMvjfK3J3OsrnpCFa5GYSslc93u7sOf9xUYiN9irpxD0_5NRa3uonj2d_n4Rrw_BsIf5WqNTnYe2F83e60JeiOXIqEBeLUStuTXeUpzD5kgm0T8RZNER1U3gFRrJvcTrqlVs_8VZBAeljCaTT5h-xCwKn5pGUg8cfyhzD3UHJHMUZPOSQ&h=L_cvNPJTf9EgIPo3v6P59V0WC4Bn6M63uRG56M4rLhQ + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 1530F2A2701A461584E63921109624F7 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:34:03Z' + status: 202 Accepted + code: 202 + duration: 30.551262ms + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051526478490&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=g7_4r31VtkTlwlMagdHXLk0oSuCqkQlhqqeCTGe9MQ-jlK3XVHrt9mdpeGB_5bYf7MgI6VUspeonGVxMHn1gnQyK1A2FgKmckEeXxau1_JBlv4025Wr1laQuLqTigUTY3wACvZM_-ajK0QfL_cZhbwqxIFuvMtbo6foFnS4akQkBnyRiUUlRwsdprxlOfIkhIb3ytik2Y9r5yezMlhjNfqJ0mKaXp4OjWxZy-inF_HNEVaRxnzD_jmMfni0Bj6HHZw9PAnrwm881x4ZivV9qvdc47Tlk8oAFYEe8CykS-34zjD-SmiaU3kMIQFSE6TxeMcZHiD1jhyLtzg1-fFidxQ&h=lvPQszcuy-sfwmNbJsTsSYdgdBazgp7DnGUr5HC5Jwo + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527052582772635&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=OjTzZ2UM_WaEHvSEj2ek7SopqwcMpmD0ZEn4ZHUl7N77Hnum8ZpPiLTo3facys0-4MryFH7qX-m7xkauAkc7VwPMlhu1jUDz5pH6WSEnkTQjwB6LuHOTwd8wz9TFdyfJJsnobXOxmxJ5CL59T06tdeOv6cB8tz4bUWEPvQlGe9jwMtkbTuTbT518KC47isVeVg8Hk9myp8F2REQZvfBaPv0yZcPLDKCtV4rbbtXxt7ImmSXxHt7ZC4FLukdCRr4bOaT0odrZUE0_tAiMqPwomntouNcIoUFGzP_w6OzvYhwDgX5PgLto0hyg1KZEIkDdEu5RZ5QowXaQqgkGeVsMpw&h=9iDPD4_iUQNT1BXBAwEZpD71Utcdihj3znRvi9qn4Xs + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: D8DE25F4CEED452DBA7F932CB7854111 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:34:18Z' + status: 202 Accepted + code: 202 + duration: 56.246816ms + - id: 16 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRKSlJFUEMtV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527051526478490&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=g7_4r31VtkTlwlMagdHXLk0oSuCqkQlhqqeCTGe9MQ-jlK3XVHrt9mdpeGB_5bYf7MgI6VUspeonGVxMHn1gnQyK1A2FgKmckEeXxau1_JBlv4025Wr1laQuLqTigUTY3wACvZM_-ajK0QfL_cZhbwqxIFuvMtbo6foFnS4akQkBnyRiUUlRwsdprxlOfIkhIb3ytik2Y9r5yezMlhjNfqJ0mKaXp4OjWxZy-inF_HNEVaRxnzD_jmMfni0Bj6HHZw9PAnrwm881x4ZivV9qvdc47Tlk8oAFYEe8CykS-34zjD-SmiaU3kMIQFSE6TxeMcZHiD1jhyLtzg1-fFidxQ&h=lvPQszcuy-sfwmNbJsTsSYdgdBazgp7DnGUr5HC5Jwo + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 90AA66D9CE38497FB73CE64005D16E07 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:34:33Z' + status: 200 OK + code: 200 + duration: 26.145456ms + - id: 17 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-jjrepc/providers/Microsoft.Monitor/accounts/asotest-acct-abqzbu?api-version=2023-04-03 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 109 + uncompressed: false + body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-jjrepc'' could not be found."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "109" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 34F51E5FF3C843E98BDA1EE1271CAFF4 Ref B: CO6AA3150219011 Ref C: 2024-05-30T22:34:37Z' + status: 404 Not Found + code: 404 + duration: 258.638446ms diff --git a/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Alertsmanagement_v1api20230301_CreationAndDeletion.yaml b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Alertsmanagement_v1api20230301_CreationAndDeletion.yaml new file mode 100644 index 00000000000..04626dff09f --- /dev/null +++ b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Alertsmanagement_v1api20230301_CreationAndDeletion.yaml @@ -0,0 +1,918 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 93 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-rg-lyzkub","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Hash: + - bdff4238c02a712491892e652654d729a5a7515736fa3bda79c940b8c086d06c + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub?api-version=2020-06-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub","name":"asotest-rg-lyzkub","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 4485301CE438469680F7D85443F068A8 Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:37:27Z' + status: 201 Created + code: 201 + duration: 221.05335ms + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub?api-version=2020-06-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub","name":"asotest-rg-lyzkub","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 5F89997CBDC1473AB509C4DAD97C3EC5 Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:37:28Z' + status: 200 OK + code: 200 + duration: 27.293368ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 513 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotestrsnwwq","properties":{"clusterName":"mycluster","enabled":true,"interval":"PT1M","rules":[{"enabled":true,"expression":"1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job=\"node\", mode=~\"idle|iowait|steal\"}[5m])))","labels":{"workload_type":"job"},"record":"instance:node_cpu_utilisation:rate5m"}],"scopes":["/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub/providers/Microsoft.Monitor/accounts/aso-sample-acct"]}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "513" + Content-Type: + - application/json + Test-Request-Hash: + - be2af81f4e6b96d9da2ef6c13ddc718c2800baa546416b03e299b689efdabf68 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub/providers/Microsoft.AlertsManagement/prometheusRuleGroups/asotestrsnwwq?api-version=2023-03-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 903 + uncompressed: false + body: "{\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub/providers/Microsoft.AlertsManagement/prometheusRuleGroups/asotestrsnwwq\",\r\n \"name\": \"asotestrsnwwq\",\r\n \"type\": \"Microsoft.AlertsManagement/prometheusRuleGroups\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"enabled\": true,\r\n \"clusterName\": \"mycluster\",\r\n \"scopes\": [\r\n \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub/providers/Microsoft.Monitor/accounts/aso-sample-acct\"\r\n ],\r\n \"rules\": [\r\n {\r\n \"record\": \"instance:node_cpu_utilisation:rate5m\",\r\n \"enabled\": true,\r\n \"expression\": \"1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job=\\\"node\\\", mode=~\\\"idle|iowait|steal\\\"}[5m])))\",\r\n \"labels\": {\r\n \"workload_type\": \"job\"\r\n }\r\n }\r\n ],\r\n \"interval\": \"PT1M\"\r\n }\r\n}" + headers: + Api-Supported-Versions: + - 2021-07-22-preview, 2023-03-01, 2023-09-01-preview + Arr-Disable-Session-Affinity: + - "true" + Cache-Control: + - no-cache + Content-Length: + - "903" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Aspnet-Version: + - 4.0.30319 + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Ratelimit-Remaining-Subscription-Resource-Requests: + - "299" + X-Msedge-Ref: + - 'Ref A: ECB4AA08B53E4A33BFCBDFA4E3C1EB9E Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:37:30Z' + X-Powered-By: + - ASP.NET + status: 200 OK + code: 200 + duration: 1.407650714s + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub/providers/Microsoft.AlertsManagement/prometheusRuleGroups/asotestrsnwwq?api-version=2023-03-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 903 + uncompressed: false + body: "{\r\n \"id\": \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub/providers/Microsoft.AlertsManagement/prometheusRuleGroups/asotestrsnwwq\",\r\n \"name\": \"asotestrsnwwq\",\r\n \"type\": \"Microsoft.AlertsManagement/prometheusRuleGroups\",\r\n \"location\": \"westus2\",\r\n \"properties\": {\r\n \"enabled\": true,\r\n \"clusterName\": \"mycluster\",\r\n \"scopes\": [\r\n \"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub/providers/Microsoft.Monitor/accounts/aso-sample-acct\"\r\n ],\r\n \"rules\": [\r\n {\r\n \"record\": \"instance:node_cpu_utilisation:rate5m\",\r\n \"enabled\": true,\r\n \"expression\": \"1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job=\\\"node\\\", mode=~\\\"idle|iowait|steal\\\"}[5m])))\",\r\n \"labels\": {\r\n \"workload_type\": \"job\"\r\n }\r\n }\r\n ],\r\n \"interval\": \"PT1M\"\r\n }\r\n}" + headers: + Api-Supported-Versions: + - 2021-07-22-preview, 2023-03-01, 2023-09-01-preview + Arr-Disable-Session-Affinity: + - "true" + Cache-Control: + - no-cache + Content-Length: + - "903" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Aspnet-Version: + - 4.0.30319 + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 3E7F9E4DC621476E9D795FB28E0F7E4C Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:37:33Z' + X-Powered-By: + - ASP.NET + status: 200 OK + code: 200 + duration: 260.616452ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 47 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"aso-sample-acct"}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "47" + Content-Type: + - application/json + Test-Request-Hash: + - 3076b7dde6657e86022c951988654bfe3e0a0c3471cc6c94eba159e8d26db8e0 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub/providers/Microsoft.Monitor/accounts/aso-sample-acct?api-version=2023-04-03 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1255 + uncompressed: false + body: '{"properties":{"accountId":"13faf4b2-5a73-431e-bd41-2bee5c925ab8","metrics":{"prometheusQueryEndpoint":"https://aso-sample-acct-bybjh0hjatc2a9b3.westus2.prometheus.monitor.azure.com","internalId":"mac_13faf4b2-5a73-431e-bd41-2bee5c925ab8"},"provisioningState":"Succeeded","defaultIngestionSettings":{"dataCollectionRuleResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_aso-sample-acct_westus2_managed/providers/Microsoft.Insights/dataCollectionRules/aso-sample-acct","dataCollectionEndpointResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_aso-sample-acct_westus2_managed/providers/Microsoft.Insights/dataCollectionEndpoints/aso-sample-acct"},"publicNetworkAccess":"Enabled"},"location":"westus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-lyzkub/providers/microsoft.monitor/accounts/aso-sample-acct","name":"aso-sample-acct","type":"Microsoft.Monitor/accounts","etag":"\"ee002922-0000-0800-0000-6658ffb00000\"","systemData":{"createdBy":"matthchr@microsoft.com","createdByType":"User","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"matthchr@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2001-02-03T04:05:06Z"}}' + headers: + Api-Supported-Versions: + - 2021-06-01-preview, 2021-06-03-preview, 2023-04-01, 2023-04-03, 2023-06-01-preview + Cache-Control: + - no-cache + Content-Length: + - "1255" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Request-Context: + - appId=cid-v1:74683e7d-3ee8-4856-bfe7-e63c83b6737e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: C949F41446764B1790F7CDE77A6FD2FE Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:37:30Z' + status: 200 OK + code: 200 + duration: 6.940073661s + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub/providers/Microsoft.Monitor/accounts/aso-sample-acct?api-version=2023-04-03 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1255 + uncompressed: false + body: '{"properties":{"accountId":"13faf4b2-5a73-431e-bd41-2bee5c925ab8","metrics":{"prometheusQueryEndpoint":"https://aso-sample-acct-bybjh0hjatc2a9b3.westus2.prometheus.monitor.azure.com","internalId":"mac_13faf4b2-5a73-431e-bd41-2bee5c925ab8"},"provisioningState":"Succeeded","defaultIngestionSettings":{"dataCollectionRuleResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_aso-sample-acct_westus2_managed/providers/Microsoft.Insights/dataCollectionRules/aso-sample-acct","dataCollectionEndpointResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_aso-sample-acct_westus2_managed/providers/Microsoft.Insights/dataCollectionEndpoints/aso-sample-acct"},"publicNetworkAccess":"Enabled"},"location":"westus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-lyzkub/providers/microsoft.monitor/accounts/aso-sample-acct","name":"aso-sample-acct","type":"Microsoft.Monitor/accounts","etag":"\"ee002922-0000-0800-0000-6658ffb00000\"","systemData":{"createdBy":"matthchr@microsoft.com","createdByType":"User","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"matthchr@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2001-02-03T04:05:06Z"}}' + headers: + Api-Supported-Versions: + - 2021-06-01-preview, 2021-06-03-preview, 2023-04-01, 2023-04-03, 2023-06-01-preview + Cache-Control: + - no-cache + Content-Length: + - "1255" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Request-Context: + - appId=cid-v1:74683e7d-3ee8-4856-bfe7-e63c83b6737e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 12841912BAA04296AB7D02A53896B86C Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:37:44Z' + status: 200 OK + code: 200 + duration: 32.507982ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub?api-version=2020-06-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527054642953730&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Ur1DNfUo_wfcl5jmJ_0LFF7xea6A_wj05vzzaDGC4I7DeXM1NMpcYPLMMyxGwDPD5BXoF-VKOdvnaGB7Fb2Gt338GEZd7kVJbcqalVQRZvZm3fNMGR5a95mTVONWVsPp_V4ktbt01fITJw1LfbbL2qY9phALpQgZ7a6lNWBAaNUw7DuVUbAB57unWW1yHiINFXyh2Zew12S0kEzKu6A8Xvtzpx7P23MBagiQkAVpqatyrkZGcKOFp5SVvmQn9esgneXT7okWBTzjaclvqB_yE43cbjG404knIRxuGZgelYJOUsOU_51DAxJZ7qsZyQefb9zjlX4TUkiF__2ufbU4zw&h=6AD2hc1-J3VjiKGqHv1WPurroJ8uKrRe2qZRou7lk_8 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: CA6BA2D1000248899B806983E5BAA102 Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:37:44Z' + status: 202 Accepted + code: 202 + duration: 138.87615ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527054642953730&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Ur1DNfUo_wfcl5jmJ_0LFF7xea6A_wj05vzzaDGC4I7DeXM1NMpcYPLMMyxGwDPD5BXoF-VKOdvnaGB7Fb2Gt338GEZd7kVJbcqalVQRZvZm3fNMGR5a95mTVONWVsPp_V4ktbt01fITJw1LfbbL2qY9phALpQgZ7a6lNWBAaNUw7DuVUbAB57unWW1yHiINFXyh2Zew12S0kEzKu6A8Xvtzpx7P23MBagiQkAVpqatyrkZGcKOFp5SVvmQn9esgneXT7okWBTzjaclvqB_yE43cbjG404knIRxuGZgelYJOUsOU_51DAxJZ7qsZyQefb9zjlX4TUkiF__2ufbU4zw&h=6AD2hc1-J3VjiKGqHv1WPurroJ8uKrRe2qZRou7lk_8 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527054795228525&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=FJNqLjOti_8uSg8g-Cqkc1ezXeFldbIBOkg9oZ5cirl56xSSVATceTyGbO6aREuuQubEwfMFiWhzihp_RNcCvFpk1rWqRjF4pCxoPa4DtsLbM_3FF3laU2wBxPfCMwYcLKGdPIiBgYEkhH49k2iLk-83iyXySJjqYfF09bvJ0YyjCFfrTepWEqnbi7LG5p5Ec42ptjBytODczenCppKgLJAMLNVPCDH7FqGbxXlOYZv_yZ3C884986Zo2BgeHsQKH7o81jyFLSlnC6S_GW263A2Jxgjm8MepNExtWpqdElzuvKSZkIQ8RtdTUi6F8btZ2V38nHJN_-q8qH-2NzfrGg&h=HsA_TZwjDXVFu4dku8y_O9Tge3oX9BhEchbO_CQdz_8 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 6F1A8545EBD340FF825E67B7EE9A32FC Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:37:59Z' + status: 202 Accepted + code: 202 + duration: 42.059807ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527054642953730&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Ur1DNfUo_wfcl5jmJ_0LFF7xea6A_wj05vzzaDGC4I7DeXM1NMpcYPLMMyxGwDPD5BXoF-VKOdvnaGB7Fb2Gt338GEZd7kVJbcqalVQRZvZm3fNMGR5a95mTVONWVsPp_V4ktbt01fITJw1LfbbL2qY9phALpQgZ7a6lNWBAaNUw7DuVUbAB57unWW1yHiINFXyh2Zew12S0kEzKu6A8Xvtzpx7P23MBagiQkAVpqatyrkZGcKOFp5SVvmQn9esgneXT7okWBTzjaclvqB_yE43cbjG404knIRxuGZgelYJOUsOU_51DAxJZ7qsZyQefb9zjlX4TUkiF__2ufbU4zw&h=6AD2hc1-J3VjiKGqHv1WPurroJ8uKrRe2qZRou7lk_8 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527054946298589&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=k0lTrV7F949mYKPei9fcThjg7gdqXPDbavuXjJPY318274s-jzMcUUMO4guKqvRTycTR77BwofEtXP4904gLpa4F2WTYYT8WkaTRcd8GHaaSo2dg-qpsKZNisYTH4Js8Y_44qxNc9H6ydz80QPoKR0hBqIlnXeHsn_R4SyK0wWWpHb1Sf17JnEwFrs4lLexgMMb40vHuDQAaQXPSYxGRUNQEQ-Fr0GqIxQZ8F5pGWPDtlnoyo3BALCMlAeHyRy0hxnd9JY3hsvpsc4ScffRC_QvugU5i7Whtc007Ch0r8UNU2ojHeJmvvWw90d9O2ZGlS21E9DVb7smT_Ec9ZNfAtQ&h=MACytjPZ1vQjjhIAC3QO_o35BzsQwjVqEdwKUR1mWBc + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: C87E532CF01143AF8FB083EB539F11E7 Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:38:14Z' + status: 202 Accepted + code: 202 + duration: 51.780334ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527054642953730&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Ur1DNfUo_wfcl5jmJ_0LFF7xea6A_wj05vzzaDGC4I7DeXM1NMpcYPLMMyxGwDPD5BXoF-VKOdvnaGB7Fb2Gt338GEZd7kVJbcqalVQRZvZm3fNMGR5a95mTVONWVsPp_V4ktbt01fITJw1LfbbL2qY9phALpQgZ7a6lNWBAaNUw7DuVUbAB57unWW1yHiINFXyh2Zew12S0kEzKu6A8Xvtzpx7P23MBagiQkAVpqatyrkZGcKOFp5SVvmQn9esgneXT7okWBTzjaclvqB_yE43cbjG404knIRxuGZgelYJOUsOU_51DAxJZ7qsZyQefb9zjlX4TUkiF__2ufbU4zw&h=6AD2hc1-J3VjiKGqHv1WPurroJ8uKrRe2qZRou7lk_8 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527055097037484&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=pVS0LjTeebcRyFqoJxX6x6HACgRJ2dTuEmbYfA-A9V7XX_R9zoh4D92ydlWdPr88d8aHIyvpE1JN_koiYMCIz5yUNbdkLhAkVxP3lg4xVuU-VsBCOffuH0BuRTX4JL0DKwM1NzKZ1y1gHx-r5yt0KascRSi8P2pnVvr-OWaoH63Nb3jXq_XqrTeFoutXIwstgB-ZRzhvruBegHIbIofcEY5aaqa-XTPr038fqvHgCPvcJUUHc43bo6i5rInOLxw4zrKzoea66zz9wNrpkRQLOpWwGjPnEWV4DnX0EeF8Ln7Nk078yiIIpCHqa9HC4pN0KXquAQYuaEQufBrdB0zxUw&h=fsrMk0nfnYrnhSnoXDIpZ6NBCXrnIdwr_zJ4lMUErgw + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: B37DED2943EE49259BD43F8335B04EDC Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:38:29Z' + status: 202 Accepted + code: 202 + duration: 29.716177ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527054642953730&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Ur1DNfUo_wfcl5jmJ_0LFF7xea6A_wj05vzzaDGC4I7DeXM1NMpcYPLMMyxGwDPD5BXoF-VKOdvnaGB7Fb2Gt338GEZd7kVJbcqalVQRZvZm3fNMGR5a95mTVONWVsPp_V4ktbt01fITJw1LfbbL2qY9phALpQgZ7a6lNWBAaNUw7DuVUbAB57unWW1yHiINFXyh2Zew12S0kEzKu6A8Xvtzpx7P23MBagiQkAVpqatyrkZGcKOFp5SVvmQn9esgneXT7okWBTzjaclvqB_yE43cbjG404knIRxuGZgelYJOUsOU_51DAxJZ7qsZyQefb9zjlX4TUkiF__2ufbU4zw&h=6AD2hc1-J3VjiKGqHv1WPurroJ8uKrRe2qZRou7lk_8 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527055247671070&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Z81T5SZ00012bCATtSHxfN9PC-doSmOqi0n7oZrMS9Nr4lSiKrpwt-unfcF1fROUftAAAYvZGOItYnpjjgs_q7JzRrisdp0H9yzMhSSR6S9DqTi9Pu-AKbdsPZzal8nFUvQHoVjHscvGtJdCCmdLsj7rW0aFJqACDY0eypcgAUX3zOgT8HSmfg7DhiuI3qHBPCGd0lcRiAF00fvsEwvY7zcWjTzMvSwXg3Q6kVWAjPK5sPQjE_GCBK51gNp-5ger45-LZZWM9nrEmn_2T7vcgKflb31rXBWfZPFTcmzw-KHuslYtq_Buc3ao1daxUjQ710YxOn3h88sP_78HgwL0AQ&h=Z3vVwRednjZ4gNbWmdZMJec1shfMSkjYlW6LKLVdRHs + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F7622781078D4BF38381BE2DEEC767F5 Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:38:44Z' + status: 202 Accepted + code: 202 + duration: 34.595991ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527054642953730&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Ur1DNfUo_wfcl5jmJ_0LFF7xea6A_wj05vzzaDGC4I7DeXM1NMpcYPLMMyxGwDPD5BXoF-VKOdvnaGB7Fb2Gt338GEZd7kVJbcqalVQRZvZm3fNMGR5a95mTVONWVsPp_V4ktbt01fITJw1LfbbL2qY9phALpQgZ7a6lNWBAaNUw7DuVUbAB57unWW1yHiINFXyh2Zew12S0kEzKu6A8Xvtzpx7P23MBagiQkAVpqatyrkZGcKOFp5SVvmQn9esgneXT7okWBTzjaclvqB_yE43cbjG404knIRxuGZgelYJOUsOU_51DAxJZ7qsZyQefb9zjlX4TUkiF__2ufbU4zw&h=6AD2hc1-J3VjiKGqHv1WPurroJ8uKrRe2qZRou7lk_8 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527055398541216&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=M9QiIhwl8-NwugR6SNvKVJ95x5yxFqVYsYR1MoYoyHkTpFjyAwknrwzhhyyBZu9Y45tismv2h2WkWHiGLYNabd2l0uXoQMRymGSbY_4VJTC-tod788nEKBh-xcYn2LijNVDhGDB6m4yDBAqY3Mjo_vXKq1zp3T7j26Vut_tZrzxM1u6oVDM4EGh1vRFEgLhs-njAFIwARm_YcYQlYJuWIy-biDbCoy_rd88SS8xkQZtXxVQKL0FWlz11Ry7N07wp8cHH-7Zv4cDfWtrrxyufEWlSM9-SCWEpz9YIRA1NcWCA4IWgP32jtOMIc4DkQ_Fuar1APXD2g4XDMIUW3qafyQ&h=wgnq9FzPoWnNjudiZVPqrBS1Tp9S2WWgfVx44bXglmg + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 5D85EC276B66412DAB5C90EAD0072915 Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:38:59Z' + status: 202 Accepted + code: 202 + duration: 35.223693ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527054642953730&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Ur1DNfUo_wfcl5jmJ_0LFF7xea6A_wj05vzzaDGC4I7DeXM1NMpcYPLMMyxGwDPD5BXoF-VKOdvnaGB7Fb2Gt338GEZd7kVJbcqalVQRZvZm3fNMGR5a95mTVONWVsPp_V4ktbt01fITJw1LfbbL2qY9phALpQgZ7a6lNWBAaNUw7DuVUbAB57unWW1yHiINFXyh2Zew12S0kEzKu6A8Xvtzpx7P23MBagiQkAVpqatyrkZGcKOFp5SVvmQn9esgneXT7okWBTzjaclvqB_yE43cbjG404knIRxuGZgelYJOUsOU_51DAxJZ7qsZyQefb9zjlX4TUkiF__2ufbU4zw&h=6AD2hc1-J3VjiKGqHv1WPurroJ8uKrRe2qZRou7lk_8 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527055549170396&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=jn76InIr1XYqvQWJszQ-vjpjuyLIe9nrva_cvZjTdCT8uxEtzNKjiEmhK2krFRDU0OApovsYmT9mekTbhz2sGNWZzhh2blWMflXd7DatQdX8lT8aQuXauVdJY2eJziMCmYb669Rx9XG-oFi4cDODNLLGTjqLB0P0zNDfgPmITuPcMfknLDW7jgR6nuA28zLMLZbHLpHYbRzMNGiTBCfGE5M9Sa80aMJ_fFLbvOvv6DKOiLtqgAzXsJsHECWqnZqSsTc9W-6-SIs74bW30W2KdYZUWyxIF07kmQk5g6RlzII7JnNd0F0h_8XXIzxUzMn93rW_crgC-0lYU8oNLLXtNA&h=mUatwSnvT51zdoEIEHX84xn9fyBcnAKILRIWSNj17LU + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F1BC47B8838E40A291AB5C6C5B52114E Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:39:14Z' + status: 202 Accepted + code: 202 + duration: 31.264083ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527054642953730&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Ur1DNfUo_wfcl5jmJ_0LFF7xea6A_wj05vzzaDGC4I7DeXM1NMpcYPLMMyxGwDPD5BXoF-VKOdvnaGB7Fb2Gt338GEZd7kVJbcqalVQRZvZm3fNMGR5a95mTVONWVsPp_V4ktbt01fITJw1LfbbL2qY9phALpQgZ7a6lNWBAaNUw7DuVUbAB57unWW1yHiINFXyh2Zew12S0kEzKu6A8Xvtzpx7P23MBagiQkAVpqatyrkZGcKOFp5SVvmQn9esgneXT7okWBTzjaclvqB_yE43cbjG404knIRxuGZgelYJOUsOU_51DAxJZ7qsZyQefb9zjlX4TUkiF__2ufbU4zw&h=6AD2hc1-J3VjiKGqHv1WPurroJ8uKrRe2qZRou7lk_8 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527055699972082&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=gyFIqWqIkSY3v2eufAkdszrrlJmvPb16IcQ0mK_N3uTPQRmbcI9HbQBtmB5mDMaXa-IdGZa0X4KqbURSQlSRxxIDKqGvdyYaZh2oD_wgg-x1tA95hgJN1sBhMY9BpT5zXDhK1AZ7QQ7Ye-YyNEMkFon55CYEWrbx8y_JD8iUYq0YAyRqTOGlUZi0tBGrbED0Fg4rn3iLl9RT0-mNWWKWPo_MhvQy1hsayTphmgZQWbe2eTbRZZM8bKxwstAOShCXr4_AIKLutt-LdCbv48BOs2IpzVevg08bRvOKz2I6KKCiYdPFWWtfxZ4Cw43xnB2Chmh-9JyTOjX-Lcg690YkPg&h=f9MbNT-I_V3bjjbBzdGeVxL79S-JEDbnuhgdB7MXEUE + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: BCC43E5754C94501A213404AA6B8EADF Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:39:29Z' + status: 202 Accepted + code: 202 + duration: 29.056979ms + - id: 14 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRMWVpLVUItV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527054642953730&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Ur1DNfUo_wfcl5jmJ_0LFF7xea6A_wj05vzzaDGC4I7DeXM1NMpcYPLMMyxGwDPD5BXoF-VKOdvnaGB7Fb2Gt338GEZd7kVJbcqalVQRZvZm3fNMGR5a95mTVONWVsPp_V4ktbt01fITJw1LfbbL2qY9phALpQgZ7a6lNWBAaNUw7DuVUbAB57unWW1yHiINFXyh2Zew12S0kEzKu6A8Xvtzpx7P23MBagiQkAVpqatyrkZGcKOFp5SVvmQn9esgneXT7okWBTzjaclvqB_yE43cbjG404knIRxuGZgelYJOUsOU_51DAxJZ7qsZyQefb9zjlX4TUkiF__2ufbU4zw&h=6AD2hc1-J3VjiKGqHv1WPurroJ8uKrRe2qZRou7lk_8 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 8B77E2060FC04FD2BA18B0970CAF8BC5 Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:39:45Z' + status: 200 OK + code: 200 + duration: 28.372277ms + - id: 15 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub/providers/Microsoft.Monitor/accounts/aso-sample-acct?api-version=2023-04-03 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 109 + uncompressed: false + body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-lyzkub'' could not be found."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "109" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 07F5AF7F95E94638A6F61CA3295568BF Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:39:49Z' + status: 404 Not Found + code: 404 + duration: 77.24361ms + - id: 16 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-lyzkub/providers/Microsoft.AlertsManagement/prometheusRuleGroups/asotestrsnwwq?api-version=2023-03-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 109 + uncompressed: false + body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-lyzkub'' could not be found."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "109" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 361BA293C9B84D539660E8472145D251 Ref B: CO6AA3150220021 Ref C: 2024-05-30T22:39:49Z' + status: 404 Not Found + code: 404 + duration: 93.524454ms diff --git a/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Monitor_v1api20230403_CreationAndDeletion.yaml b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Monitor_v1api20230403_CreationAndDeletion.yaml new file mode 100644 index 00000000000..44c0ea59710 --- /dev/null +++ b/v2/internal/controllers/recordings/Test_Samples_CreationAndDeletion/Test_Monitor_v1api20230403_CreationAndDeletion.yaml @@ -0,0 +1,737 @@ +--- +version: 2 +interactions: + - id: 0 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 93 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotest-rg-bgjuqi","tags":{"CreatedAt":"2001-02-03T04:05:06Z"}}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "93" + Content-Type: + - application/json + Test-Request-Hash: + - 9f531d147dcc3c2d4bc0bda89621e3271ba3cd0a048f6360101c5d1c47936bc1 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-bgjuqi?api-version=2020-06-01 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-bgjuqi","name":"asotest-rg-bgjuqi","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: B5E6CDFF9D6F437585582DF5FC50AE8C Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:42:45Z' + status: 201 Created + code: 201 + duration: 1.842463999s + - id: 1 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-bgjuqi?api-version=2020-06-01 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 276 + uncompressed: false + body: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-bgjuqi","name":"asotest-rg-bgjuqi","type":"Microsoft.Resources/resourceGroups","location":"westus2","tags":{"CreatedAt":"2001-02-03T04:05:06Z"},"properties":{"provisioningState":"Succeeded"}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "276" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 6AEEF792DA4B486FAB79D0BADFD265A9 Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:42:47Z' + status: 200 OK + code: 200 + duration: 23.114068ms + - id: 2 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 45 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: '{"location":"westus2","name":"asotestgwcvvs"}' + form: {} + headers: + Accept: + - application/json + Content-Length: + - "45" + Content-Type: + - application/json + Test-Request-Hash: + - 57ba0044ee6150c7330c11d52906d5a8fddeeeaf179552c000b5e8b950a52636 + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-bgjuqi/providers/Microsoft.Monitor/accounts/asotestgwcvvs?api-version=2023-04-03 + method: PUT + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1241 + uncompressed: false + body: '{"properties":{"accountId":"f5b9d392-000d-466e-8153-b4d34aade96b","metrics":{"prometheusQueryEndpoint":"https://asotestgwcvvs-acczd2agacduc0h9.westus2.prometheus.monitor.azure.com","internalId":"mac_f5b9d392-000d-466e-8153-b4d34aade96b"},"provisioningState":"Succeeded","defaultIngestionSettings":{"dataCollectionRuleResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_asotestgwcvvs_westus2_managed/providers/Microsoft.Insights/dataCollectionRules/asotestgwcvvs","dataCollectionEndpointResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_asotestgwcvvs_westus2_managed/providers/Microsoft.Insights/dataCollectionEndpoints/asotestgwcvvs"},"publicNetworkAccess":"Enabled"},"location":"westus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-bgjuqi/providers/microsoft.monitor/accounts/asotestgwcvvs","name":"asotestgwcvvs","type":"Microsoft.Monitor/accounts","etag":"\"ef003728-0000-0800-0000-665900fc0000\"","systemData":{"createdBy":"matthchr@microsoft.com","createdByType":"User","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"matthchr@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2001-02-03T04:05:06Z"}}' + headers: + Api-Supported-Versions: + - 2021-06-01-preview, 2021-06-03-preview, 2023-04-01, 2023-04-03, 2023-06-01-preview + Cache-Control: + - no-cache + Content-Length: + - "1241" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Request-Context: + - appId=cid-v1:74683e7d-3ee8-4856-bfe7-e63c83b6737e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 7B0F181F0DD44458BD3B25B16159F343 Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:42:51Z' + status: 200 OK + code: 200 + duration: 17.615422083s + - id: 3 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-bgjuqi/providers/Microsoft.Monitor/accounts/asotestgwcvvs?api-version=2023-04-03 + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 1241 + uncompressed: false + body: '{"properties":{"accountId":"f5b9d392-000d-466e-8153-b4d34aade96b","metrics":{"prometheusQueryEndpoint":"https://asotestgwcvvs-acczd2agacduc0h9.westus2.prometheus.monitor.azure.com","internalId":"mac_f5b9d392-000d-466e-8153-b4d34aade96b"},"provisioningState":"Succeeded","defaultIngestionSettings":{"dataCollectionRuleResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_asotestgwcvvs_westus2_managed/providers/Microsoft.Insights/dataCollectionRules/asotestgwcvvs","dataCollectionEndpointResourceId":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MA_asotestgwcvvs_westus2_managed/providers/Microsoft.Insights/dataCollectionEndpoints/asotestgwcvvs"},"publicNetworkAccess":"Enabled"},"location":"westus2","id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/asotest-rg-bgjuqi/providers/microsoft.monitor/accounts/asotestgwcvvs","name":"asotestgwcvvs","type":"Microsoft.Monitor/accounts","etag":"\"ef003728-0000-0800-0000-665900fc0000\"","systemData":{"createdBy":"matthchr@microsoft.com","createdByType":"User","createdAt":"2001-02-03T04:05:06Z","lastModifiedBy":"matthchr@microsoft.com","lastModifiedByType":"User","lastModifiedAt":"2001-02-03T04:05:06Z"}}' + headers: + Api-Supported-Versions: + - 2021-06-01-preview, 2021-06-03-preview, 2023-04-01, 2023-04-03, 2023-06-01-preview + Cache-Control: + - no-cache + Content-Length: + - "1241" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Request-Context: + - appId=cid-v1:74683e7d-3ee8-4856-bfe7-e63c83b6737e + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + Vary: + - Accept-Encoding + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 3D6B3BFC1FF741E4A5E785606BB23A5B Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:43:26Z' + status: 200 OK + code: 200 + duration: 77.58323ms + - id: 4 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-bgjuqi?api-version=2020-06-01 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058102290076&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=cB7haZjknbcNx__TyeLo-LMywclV-K-bdOpbmiYYq9GPdYu_LVYW-xXne6gErZ3ifSLBq8mW_AXEyvP-GrEByP5NoNdd9zRsnwQspWm10jFu_Z1C_cgodP_M85Uv48S0yZ7YZtk_W6IWKyRGVOypTh3y_Pff7QtJk-EEGiQSLQKiC695_68ASlDZXERGESjhHOuBWRiDOLXxv2vQ4-slS0y_iZNZPqEyd_rjvwsohfF0N2QToa27BOLZAN3KYa5ATmxdITtqmaiApj2bEt4fINl10998TAUj_elnSoxXkmYqQ35aY1tWCzVSSa6n8FQZfs3YWK5PR44hAsQrVcHuMg&h=rIM34osQqyaIjykKnxhruOjq9lS6qhp8M2BdPM1DuPM + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 1897B3D76551476F966E0A04D6D1B2C4 Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:43:30Z' + status: 202 Accepted + code: 202 + duration: 117.180449ms + - id: 5 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058102290076&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=cB7haZjknbcNx__TyeLo-LMywclV-K-bdOpbmiYYq9GPdYu_LVYW-xXne6gErZ3ifSLBq8mW_AXEyvP-GrEByP5NoNdd9zRsnwQspWm10jFu_Z1C_cgodP_M85Uv48S0yZ7YZtk_W6IWKyRGVOypTh3y_Pff7QtJk-EEGiQSLQKiC695_68ASlDZXERGESjhHOuBWRiDOLXxv2vQ4-slS0y_iZNZPqEyd_rjvwsohfF0N2QToa27BOLZAN3KYa5ATmxdITtqmaiApj2bEt4fINl10998TAUj_elnSoxXkmYqQ35aY1tWCzVSSa6n8FQZfs3YWK5PR44hAsQrVcHuMg&h=rIM34osQqyaIjykKnxhruOjq9lS6qhp8M2BdPM1DuPM + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058254141102&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=Rz7X8uscObupOVgb3bS0jh0y2LrCyMxVKPjRlBLG-4R7dQonSX-GijDtR5NT_jbbfwhQozfnqDGTkhzDL9dzXh-HC-J04MK9dKbDEvXcZQADMsB9zjUdV2m_2XUZ9nb3P3rwJh0AmOFaUxnuAEUEd0iojJFPQ6VqHycFjIPU2BICU8xq3KaetCJyJGwiFFft9MuO-Dqhse73mwgLyXh8qBkdMa71bHFOTb9x5Hrc1PSluSQxHcbo_cOU8_npB8c5vIp3nhC-fu4KShWrOQrm9GQwOyW2OSoViVzjpmPOKqzeQemeN4MAj5_zbyRnK88FYfBbbTZwh7H2lUJElsNzLQ&h=Jb4ODJq5jR5B9ysJ4S_zvuoi_1sZmfhvzWUxkgHEEkA + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 15FF4A5E546C4CF78C45AB29F3F1BCF3 Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:43:45Z' + status: 202 Accepted + code: 202 + duration: 36.187708ms + - id: 6 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "1" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058102290076&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=cB7haZjknbcNx__TyeLo-LMywclV-K-bdOpbmiYYq9GPdYu_LVYW-xXne6gErZ3ifSLBq8mW_AXEyvP-GrEByP5NoNdd9zRsnwQspWm10jFu_Z1C_cgodP_M85Uv48S0yZ7YZtk_W6IWKyRGVOypTh3y_Pff7QtJk-EEGiQSLQKiC695_68ASlDZXERGESjhHOuBWRiDOLXxv2vQ4-slS0y_iZNZPqEyd_rjvwsohfF0N2QToa27BOLZAN3KYa5ATmxdITtqmaiApj2bEt4fINl10998TAUj_elnSoxXkmYqQ35aY1tWCzVSSa6n8FQZfs3YWK5PR44hAsQrVcHuMg&h=rIM34osQqyaIjykKnxhruOjq9lS6qhp8M2BdPM1DuPM + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058404980397&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=h7zJh9ZJRFivfD5tIiogHWLISvT2JQluitBbEnDc7muGiQEvtkGUWKYvcwmlapsLWiSfjT0dSnhFwCC2TgocZT1uxSvjJaI2N_0FfLiOb7hwP9PDzWCfHklzZVYOEj_Z-CEXygQQH8T-BBGZf7vrmF--1tnb0lpJuWUrBZVdlM9wqDZNb7JmALt7Kwuq4yQSJcHIn9xLOoeRj8ZcM55ZSvttNhcq7r4w-Ph3uJcSOBA76Ce8QiMjYNcEhbx05g7EAh2WEsQm0F7uTok2E5-bl68gDoEAVbHEz5sPNe3QMbthuJVCVSE6wE-UYdHIw_by8a7Beesc-kgYQeVB_a7EXg&h=qAtpA8nCCRXgH5_LzToort5rTft_XnMKbYTJnVT55-M + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 8D7E2DE0343E446798CDC90B7250B7B3 Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:44:00Z' + status: 202 Accepted + code: 202 + duration: 47.443243ms + - id: 7 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "2" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058102290076&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=cB7haZjknbcNx__TyeLo-LMywclV-K-bdOpbmiYYq9GPdYu_LVYW-xXne6gErZ3ifSLBq8mW_AXEyvP-GrEByP5NoNdd9zRsnwQspWm10jFu_Z1C_cgodP_M85Uv48S0yZ7YZtk_W6IWKyRGVOypTh3y_Pff7QtJk-EEGiQSLQKiC695_68ASlDZXERGESjhHOuBWRiDOLXxv2vQ4-slS0y_iZNZPqEyd_rjvwsohfF0N2QToa27BOLZAN3KYa5ATmxdITtqmaiApj2bEt4fINl10998TAUj_elnSoxXkmYqQ35aY1tWCzVSSa6n8FQZfs3YWK5PR44hAsQrVcHuMg&h=rIM34osQqyaIjykKnxhruOjq9lS6qhp8M2BdPM1DuPM + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058556049346&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=ekCduz2Y-9DHMNRkwIUR8eDh8HKO9Ih5oNwKsBTQBWIZXYaC-xX8m04d7iEA-r5twsRRgNfC6gi0z-r5DjysF9Tni5dZ7duAuOx6VZr-oaCf10loJGdfzfwNbvMHKl6XhA6APLSJkGDugJZrBWEoKHbBIRJVGzvm2KPoVXink9oZQO64Iy3PnPt0JOxCa5_jY4eDc2cIvC4lhlWTX7uUeC9w8Yi5eGUsAND333wtyILPeakRQGP0N0Co6ggsKZe-jYdiZyJzDB0YA0uDdbCUWxdM9Qoewn1gzRWXx3tDcn16Kz8Z0EI14RsISEwQ1LUwX1OzwC46prKUBBKiT4asKg&h=aR31TFG0vH_X0Kx126YYiZL6_blfHS3jNeljwugBmrg + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 483148FD7DC644C489C71441D1798318 Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:44:15Z' + status: 202 Accepted + code: 202 + duration: 36.49841ms + - id: 8 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "3" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058102290076&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=cB7haZjknbcNx__TyeLo-LMywclV-K-bdOpbmiYYq9GPdYu_LVYW-xXne6gErZ3ifSLBq8mW_AXEyvP-GrEByP5NoNdd9zRsnwQspWm10jFu_Z1C_cgodP_M85Uv48S0yZ7YZtk_W6IWKyRGVOypTh3y_Pff7QtJk-EEGiQSLQKiC695_68ASlDZXERGESjhHOuBWRiDOLXxv2vQ4-slS0y_iZNZPqEyd_rjvwsohfF0N2QToa27BOLZAN3KYa5ATmxdITtqmaiApj2bEt4fINl10998TAUj_elnSoxXkmYqQ35aY1tWCzVSSa6n8FQZfs3YWK5PR44hAsQrVcHuMg&h=rIM34osQqyaIjykKnxhruOjq9lS6qhp8M2BdPM1DuPM + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058706877489&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=DJkzPIuDH7Y0ij4SCwWvgsmBeyb81_WXtOB7W5rxbK-qPrgplzBJOu3O33g42ACoFma6IICPkaPSm-1Ss6GQV-IM44-9Owzi6nbOtVsnORZT68nC2aVSBlZ82zBF1Pc2n_NfS8dNWhBD6Dv4ynOO_8nIiTv-8sAQ0DIZh_m_NDgb5hZpOTOZiP2I5zEGh1Sx0a22-hCGknbxi81CJXYjcruO9tSRLZ5-Bn8j6cqvN7IuBZ4tGOH8w8wB9ZsTgdGUfu6bbswuZueOGirpFFlkhgSs4b_8iNN2utdwYGHgwKwMzu7lmcsg0qiyV1XjPih4j8EI64XFQWmj8__8Qabp9w&h=bfOkq25u35mfH4p8Wu1hQpS9QT4HsosFMPU2_yy14e4 + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: FC8EA7F0DF484824BA734073A66AA65B Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:44:30Z' + status: 202 Accepted + code: 202 + duration: 52.094958ms + - id: 9 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "4" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058102290076&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=cB7haZjknbcNx__TyeLo-LMywclV-K-bdOpbmiYYq9GPdYu_LVYW-xXne6gErZ3ifSLBq8mW_AXEyvP-GrEByP5NoNdd9zRsnwQspWm10jFu_Z1C_cgodP_M85Uv48S0yZ7YZtk_W6IWKyRGVOypTh3y_Pff7QtJk-EEGiQSLQKiC695_68ASlDZXERGESjhHOuBWRiDOLXxv2vQ4-slS0y_iZNZPqEyd_rjvwsohfF0N2QToa27BOLZAN3KYa5ATmxdITtqmaiApj2bEt4fINl10998TAUj_elnSoxXkmYqQ35aY1tWCzVSSa6n8FQZfs3YWK5PR44hAsQrVcHuMg&h=rIM34osQqyaIjykKnxhruOjq9lS6qhp8M2BdPM1DuPM + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058857768596&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=gabjZXr118z_33RiCVEDIWP7xo0nUekNH7RgPqVceTn7u9bCp8-3XnLTgmgVR0t64q19YjEJTqX9vSE1Nlk1U-SbwE495N8SK13Z9AackvQncc43yuICxXD-e2dHFXLF18rLrQTaGtjSc-y53nixRISXqvh0WOjjOhgeu66xRGvoTgZ_srPXwj-Db2wvqwJUxoOm0ElryaQpHyN2eAoEIRJ3LaDk88h6jsx0dLhXZRZxiSBYK6bNBkt_DHmfEVQ7k2qs3ACV-GY_rq_a1LekB-yNMhi0cSVCsuZmY6yLXD0YwxJ8A4vu4yZZ-CgU5o-08gc9CdFz7UEfSxl5gv2s3w&h=__N9-lpgyMc-6MCDAG9Gmfr_aYbM4ffSidohCkQCWgA + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: 106705502DD34977BA1F12253B0C9EBE Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:44:45Z' + status: 202 Accepted + code: 202 + duration: 29.189189ms + - id: 10 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "5" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058102290076&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=cB7haZjknbcNx__TyeLo-LMywclV-K-bdOpbmiYYq9GPdYu_LVYW-xXne6gErZ3ifSLBq8mW_AXEyvP-GrEByP5NoNdd9zRsnwQspWm10jFu_Z1C_cgodP_M85Uv48S0yZ7YZtk_W6IWKyRGVOypTh3y_Pff7QtJk-EEGiQSLQKiC695_68ASlDZXERGESjhHOuBWRiDOLXxv2vQ4-slS0y_iZNZPqEyd_rjvwsohfF0N2QToa27BOLZAN3KYa5ATmxdITtqmaiApj2bEt4fINl10998TAUj_elnSoxXkmYqQ35aY1tWCzVSSa6n8FQZfs3YWK5PR44hAsQrVcHuMg&h=rIM34osQqyaIjykKnxhruOjq9lS6qhp8M2BdPM1DuPM + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527059008756043&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=ZQwxzDHYnSFRsiSj5aL1pTivYyGvP-rzO7sP0JZOYiE3PjPWtEwOlzFZ106dwzKwmP6rjqdysChfivpKCNgci0pc7o9g1xp1_g6NYWM5iyb9EnFGk0fc2ROjKpSi22kwMHsyXBO3OtgO2Zb02bCAgay4WXUYrfsui753kllU8WoLBA9c-dETTEv3JPuIVirLz4XMvdjNAVo2ykVz5StNBrWz65V-9CFO6k_-nBuLXqqwXCtP09t3LJb6kK_7XcKRK9WiVZn80Fn2PR_y42r48OE3DbtieTCA60M_cAfxqZglfxmFHYveLfFZ8E30sO45Vb2DB7Dorj7O96-_6Gt97w&h=Mb14CKzCn6tZHtJ-5oMFP58tJFjAJp-bLMbOABfDKCc + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: CB3687FEFD4247E7917C71F83C73A48A Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:45:00Z' + status: 202 Accepted + code: 202 + duration: 56.264872ms + - id: 11 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "6" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058102290076&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=cB7haZjknbcNx__TyeLo-LMywclV-K-bdOpbmiYYq9GPdYu_LVYW-xXne6gErZ3ifSLBq8mW_AXEyvP-GrEByP5NoNdd9zRsnwQspWm10jFu_Z1C_cgodP_M85Uv48S0yZ7YZtk_W6IWKyRGVOypTh3y_Pff7QtJk-EEGiQSLQKiC695_68ASlDZXERGESjhHOuBWRiDOLXxv2vQ4-slS0y_iZNZPqEyd_rjvwsohfF0N2QToa27BOLZAN3KYa5ATmxdITtqmaiApj2bEt4fINl10998TAUj_elnSoxXkmYqQ35aY1tWCzVSSa6n8FQZfs3YWK5PR44hAsQrVcHuMg&h=rIM34osQqyaIjykKnxhruOjq9lS6qhp8M2BdPM1DuPM + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Location: + - https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527059159799213&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=ERVCMyqkDBA1wMJBXeDbZ6Q8JQOWqFE6bAXPsGlGiLJ3YY7Rb1I4EHFUie4RwQkEgtgY_5ImOCDiyoXxUpTbLplch4IHpEqx9H2JxwUuCwBgxiP5-J-0G_3qXH5vX-ANDUd_sNg_Ge0AIdus-BsbkBA4TRIzEXeHzCs6Yy2zC-EtkvpsDITJgvI3UsxEIaCmvp9XnUibWrizPXE8K7ENoI-OoTFD0yCDKkKMVpHRCRpmvuYwyX_5lM8zK3akfV3B8cTKtz6WDJnjIdhhvyCT4kLOROcGfMkI1bJTAy4XW9zxN8p0j66StwmtRbAbPIqxiIbDJdomHItaQc2tcoFl7w&h=2bZbhAQmmDxYdBGnaZJwjv6lVYz8U3vr9efqEruBcUY + Pragma: + - no-cache + Retry-After: + - "15" + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: DB759CF5B6D148019115B06A317749A8 Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:45:15Z' + status: 202 Accepted + code: 202 + duration: 53.721964ms + - id: 12 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Test-Request-Attempt: + - "7" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/operationresults/eyJqb2JJZCI6IlJFU09VUkNFR1JPVVBERUxFVElPTkpPQi1BU09URVNUOjJEUkc6MkRCR0pVUUktV0VTVFVTMiIsImpvYkxvY2F0aW9uIjoid2VzdHVzMiJ9?api-version=2020-06-01&t=638527058102290076&c=MIIHpTCCBo2gAwIBAgITfwM6vSxODJvqjFP4oQAEAzq9LDANBgkqhkiG9w0BAQsFADBEMRMwEQYKCZImiZPyLGQBGRYDR0JMMRMwEQYKCZImiZPyLGQBGRYDQU1FMRgwFgYDVQQDEw9BTUUgSW5mcmEgQ0EgMDIwHhcNMjQwNTE1MTI0NjQwWhcNMjUwNTEwMTI0NjQwWjBAMT4wPAYDVQQDEzVhc3luY29wZXJhdGlvbnNpZ25pbmdjZXJ0aWZpY2F0ZS5tYW5hZ2VtZW50LmF6dXJlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKa4cOTKf-wVpLKiG5Zei1-Oc5u5PvibFdqWIGFZDLmSA3G2jYrx6dKQ8NH10xxzVOMT_dqQOb2nPmPDhnS3CUlhwx_iI9VSftq8J182Ci01SlOzoieOj_kBg-1yQ4TB3DD7Rwgy40TMWgK-1lkliuLAgSHruwrRW8Kj8Q96A0oGxy1RQggyCNWVG8EsUp1ngtGu-yi1BZRa4Q-v_x9KFfbvtOc9KIfKRFs2r2zg4MWc4xCzQCYrRXIVfS-sFxEn1GbDqtYc4-y5T978_4OnKXidZCkJqT4v1ZRcgxKZpH8d4GmacrEfBoCqjg9ZayboCoIPz5wEIF9LOngoqXqnmYECAwEAAaOCBJIwggSOMCcGCSsGAQQBgjcVCgQaMBgwCgYIKwYBBQUHAwEwCgYIKwYBBQUHAwIwPQYJKwYBBAGCNxUHBDAwLgYmKwYBBAGCNxUIhpDjDYTVtHiE8Ys-hZvdFs6dEoFggvX2K4Py0SACAWQCAQowggHaBggrBgEFBQcBAQSCAcwwggHIMGYGCCsGAQUFBzAChlpodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpaW5mcmEvQ2VydHMvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmwxLmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MFYGCCsGAQUFBzAChkpodHRwOi8vY3JsMi5hbWUuZ2JsL2FpYS9CTDJQS0lJTlRDQTAxLkFNRS5HQkxfQU1FJTIwSW5mcmElMjBDQSUyMDAyKDQpLmNydDBWBggrBgEFBQcwAoZKaHR0cDovL2NybDMuYW1lLmdibC9haWEvQkwyUEtJSU5UQ0EwMS5BTUUuR0JMX0FNRSUyMEluZnJhJTIwQ0ElMjAwMig0KS5jcnQwVgYIKwYBBQUHMAKGSmh0dHA6Ly9jcmw0LmFtZS5nYmwvYWlhL0JMMlBLSUlOVENBMDEuQU1FLkdCTF9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3J0MB0GA1UdDgQWBBRCKTJWBui0JqrIiMW81zJdA9-tSDAOBgNVHQ8BAf8EBAMCBaAwggE1BgNVHR8EggEsMIIBKDCCASSgggEgoIIBHIZCaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraWluZnJhL0NSTC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMS5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMi5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsMy5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JshjRodHRwOi8vY3JsNC5hbWUuZ2JsL2NybC9BTUUlMjBJbmZyYSUyMENBJTIwMDIoNCkuY3JsMIGdBgNVHSAEgZUwgZIwDAYKKwYBBAGCN3sBATBmBgorBgEEAYI3ewICMFgwVgYIKwYBBQUHAgIwSh5IADMAMwBlADAAMQA5ADIAMQAtADQAZAA2ADQALQA0AGYAOABjAC0AYQAwADUANQAtADUAYgBkAGEAZgBmAGQANQBlADMAMwBkMAwGCisGAQQBgjd7AwEwDAYKKwYBBAGCN3sEATAfBgNVHSMEGDAWgBSuecJrXSWIEwb2BwnDl3x7l48dVTAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwDQYJKoZIhvcNAQELBQADggEBAGJpRHLgYBJ-Hg0664G6_TgQ8luNO24um3ktexLaPrnailsQdaNThyJ4w9TTpMvyG31DlS7euSnKy8IsfMzCDxu1mmgziF9Urf-OpUw3u-ze-9z_PmzXym0G-rk8OrPpWWdAeApaUIHmydJGO_yrSQURQDLY9ATNa4gS1c9rQLruie0ZkPwjhAJCwpdK615q7s9ssaQ_HZEXM9r3mojVMYMB6b7TQJcwlVHBvkRO5u4HnAI26O2e-pcDzgccXJ6mqM158VJM-AyU1D2gWCqHj4zml1U005Ot-Fx-C3N3HCVImLvAllBxeQdwzOTae6Br-eXo1NCFf1ahI2fP4G_nB7o&s=cB7haZjknbcNx__TyeLo-LMywclV-K-bdOpbmiYYq9GPdYu_LVYW-xXne6gErZ3ifSLBq8mW_AXEyvP-GrEByP5NoNdd9zRsnwQspWm10jFu_Z1C_cgodP_M85Uv48S0yZ7YZtk_W6IWKyRGVOypTh3y_Pff7QtJk-EEGiQSLQKiC695_68ASlDZXERGESjhHOuBWRiDOLXxv2vQ4-slS0y_iZNZPqEyd_rjvwsohfF0N2QToa27BOLZAN3KYa5ATmxdITtqmaiApj2bEt4fINl10998TAUj_elnSoxXkmYqQ35aY1tWCzVSSa6n8FQZfs3YWK5PR44hAsQrVcHuMg&h=rIM34osQqyaIjykKnxhruOjq9lS6qhp8M2BdPM1DuPM + method: GET + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 0 + uncompressed: false + body: "" + headers: + Cache-Control: + - no-cache + Content-Length: + - "0" + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Msedge-Ref: + - 'Ref A: F7C7255202B3483D8D07BEE9615B460D Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:45:31Z' + status: 200 OK + code: 200 + duration: 33.555903ms + - id: 13 + request: + proto: HTTP/1.1 + proto_major: 1 + proto_minor: 1 + content_length: 0 + transfer_encoding: [] + trailer: {} + host: management.azure.com + remote_addr: "" + request_uri: "" + body: "" + form: {} + headers: + Accept: + - application/json + Test-Request-Attempt: + - "0" + url: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/asotest-rg-bgjuqi/providers/Microsoft.Monitor/accounts/asotestgwcvvs?api-version=2023-04-03 + method: DELETE + response: + proto: HTTP/2.0 + proto_major: 2 + proto_minor: 0 + transfer_encoding: [] + trailer: {} + content_length: 109 + uncompressed: false + body: '{"error":{"code":"ResourceGroupNotFound","message":"Resource group ''asotest-rg-bgjuqi'' could not be found."}}' + headers: + Cache-Control: + - no-cache + Content-Length: + - "109" + Content-Type: + - application/json; charset=utf-8 + Expires: + - "-1" + Pragma: + - no-cache + Strict-Transport-Security: + - max-age=31536000; includeSubDomains + X-Cache: + - CONFIG_NOCACHE + X-Content-Type-Options: + - nosniff + X-Ms-Failure-Cause: + - gateway + X-Msedge-Ref: + - 'Ref A: 265E48A2AB7F48A5820A2F29803E984B Ref B: CO6AA3150218053 Ref C: 2024-05-30T22:45:35Z' + status: 404 Not Found + code: 404 + duration: 53.688565ms diff --git a/v2/samples/alertsmanagement/v1api20230301/refs/v1api20230403_monitor_account.yaml b/v2/samples/alertsmanagement/v1api20230301/refs/v1api20230403_monitor_account.yaml new file mode 100644 index 00000000000..793dfd70c58 --- /dev/null +++ b/v2/samples/alertsmanagement/v1api20230301/refs/v1api20230403_monitor_account.yaml @@ -0,0 +1,9 @@ +apiVersion: monitor.azure.com/v1api20230403 +kind: Account +metadata: + name: aso-sample-acct + namespace: default +spec: + location: westus2 + owner: + name: aso-sample-rg diff --git a/v2/samples/alertsmanagement/v1api20230301/v1api20230301_prometheusrulegroup.yaml b/v2/samples/alertsmanagement/v1api20230301/v1api20230301_prometheusrulegroup.yaml new file mode 100644 index 00000000000..ed9b98afeff --- /dev/null +++ b/v2/samples/alertsmanagement/v1api20230301/v1api20230301_prometheusrulegroup.yaml @@ -0,0 +1,23 @@ +apiVersion: alertsmanagement.azure.com/v1api20230301 +kind: PrometheusRuleGroup +metadata: + name: aso-sample-prom-group + namespace: default +spec: + location: westus2 + owner: + name: aso-sample-rg + clusterName: mycluster + enabled: true + interval: PT1M + rules: + - enabled: true + expression: 1 - avg without (cpu) (sum without (mode)(rate(node_cpu_seconds_total{job="node", + mode=~"idle|iowait|steal"}[5m]))) + labels: + workload_type: job + record: instance:node_cpu_utilisation:rate5m + scopesReferences: + - group: monitor.azure.com + kind: Account + name: aso-sample-acct diff --git a/v2/samples/monitor/v1api20230403/v1api20230403_account.yaml b/v2/samples/monitor/v1api20230403/v1api20230403_account.yaml new file mode 100644 index 00000000000..793dfd70c58 --- /dev/null +++ b/v2/samples/monitor/v1api20230403/v1api20230403_account.yaml @@ -0,0 +1,9 @@ +apiVersion: monitor.azure.com/v1api20230403 +kind: Account +metadata: + name: aso-sample-acct + namespace: default +spec: + location: westus2 + owner: + name: aso-sample-rg