// Code generated by azure-service-operator-codegen. DO NOT EDIT.
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package arm

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_ApplicationGatewayAuthenticationCertificate_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 ApplicationGatewayAuthenticationCertificate_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayAuthenticationCertificate_STATUS, ApplicationGatewayAuthenticationCertificate_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayAuthenticationCertificate_STATUS runs a test to see if a specific instance of ApplicationGatewayAuthenticationCertificate_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayAuthenticationCertificate_STATUS(subject ApplicationGatewayAuthenticationCertificate_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayAuthenticationCertificate_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 ApplicationGatewayAuthenticationCertificate_STATUS instances for property testing - lazily instantiated
// by ApplicationGatewayAuthenticationCertificate_STATUSGenerator()
var applicationGatewayAuthenticationCertificate_STATUSGenerator gopter.Gen

// ApplicationGatewayAuthenticationCertificate_STATUSGenerator returns a generator of ApplicationGatewayAuthenticationCertificate_STATUS instances for property testing.
func ApplicationGatewayAuthenticationCertificate_STATUSGenerator() gopter.Gen {
	if applicationGatewayAuthenticationCertificate_STATUSGenerator != nil {
		return applicationGatewayAuthenticationCertificate_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayAuthenticationCertificate_STATUS(generators)
	applicationGatewayAuthenticationCertificate_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayAuthenticationCertificate_STATUS{}), generators)

	return applicationGatewayAuthenticationCertificate_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayAuthenticationCertificate_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayAuthenticationCertificate_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayAutoscaleConfiguration_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 ApplicationGatewayAutoscaleConfiguration_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayAutoscaleConfiguration_STATUS, ApplicationGatewayAutoscaleConfiguration_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayAutoscaleConfiguration_STATUS runs a test to see if a specific instance of ApplicationGatewayAutoscaleConfiguration_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayAutoscaleConfiguration_STATUS(subject ApplicationGatewayAutoscaleConfiguration_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayAutoscaleConfiguration_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 ApplicationGatewayAutoscaleConfiguration_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayAutoscaleConfiguration_STATUSGenerator()
var applicationGatewayAutoscaleConfiguration_STATUSGenerator gopter.Gen

// ApplicationGatewayAutoscaleConfiguration_STATUSGenerator returns a generator of ApplicationGatewayAutoscaleConfiguration_STATUS instances for property testing.
func ApplicationGatewayAutoscaleConfiguration_STATUSGenerator() gopter.Gen {
	if applicationGatewayAutoscaleConfiguration_STATUSGenerator != nil {
		return applicationGatewayAutoscaleConfiguration_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayAutoscaleConfiguration_STATUS(generators)
	applicationGatewayAutoscaleConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayAutoscaleConfiguration_STATUS{}), generators)

	return applicationGatewayAutoscaleConfiguration_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayAutoscaleConfiguration_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayAutoscaleConfiguration_STATUS(gens map[string]gopter.Gen) {
	gens["MaxCapacity"] = gen.PtrOf(gen.Int())
	gens["MinCapacity"] = gen.PtrOf(gen.Int())
}

func Test_ApplicationGatewayBackendAddressPool_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 ApplicationGatewayBackendAddressPool_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayBackendAddressPool_STATUS, ApplicationGatewayBackendAddressPool_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayBackendAddressPool_STATUS runs a test to see if a specific instance of ApplicationGatewayBackendAddressPool_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayBackendAddressPool_STATUS(subject ApplicationGatewayBackendAddressPool_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayBackendAddressPool_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 ApplicationGatewayBackendAddressPool_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayBackendAddressPool_STATUSGenerator()
var applicationGatewayBackendAddressPool_STATUSGenerator gopter.Gen

// ApplicationGatewayBackendAddressPool_STATUSGenerator returns a generator of ApplicationGatewayBackendAddressPool_STATUS instances for property testing.
func ApplicationGatewayBackendAddressPool_STATUSGenerator() gopter.Gen {
	if applicationGatewayBackendAddressPool_STATUSGenerator != nil {
		return applicationGatewayBackendAddressPool_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayBackendAddressPool_STATUS(generators)
	applicationGatewayBackendAddressPool_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayBackendAddressPool_STATUS{}), generators)

	return applicationGatewayBackendAddressPool_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayBackendAddressPool_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayBackendAddressPool_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayBackendHttpSettings_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 ApplicationGatewayBackendHttpSettings_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayBackendHttpSettings_STATUS, ApplicationGatewayBackendHttpSettings_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayBackendHttpSettings_STATUS runs a test to see if a specific instance of ApplicationGatewayBackendHttpSettings_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayBackendHttpSettings_STATUS(subject ApplicationGatewayBackendHttpSettings_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayBackendHttpSettings_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 ApplicationGatewayBackendHttpSettings_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayBackendHttpSettings_STATUSGenerator()
var applicationGatewayBackendHttpSettings_STATUSGenerator gopter.Gen

// ApplicationGatewayBackendHttpSettings_STATUSGenerator returns a generator of ApplicationGatewayBackendHttpSettings_STATUS instances for property testing.
func ApplicationGatewayBackendHttpSettings_STATUSGenerator() gopter.Gen {
	if applicationGatewayBackendHttpSettings_STATUSGenerator != nil {
		return applicationGatewayBackendHttpSettings_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayBackendHttpSettings_STATUS(generators)
	applicationGatewayBackendHttpSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayBackendHttpSettings_STATUS{}), generators)

	return applicationGatewayBackendHttpSettings_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayBackendHttpSettings_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayBackendHttpSettings_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayBackendSettings_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 ApplicationGatewayBackendSettings_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayBackendSettings_STATUS, ApplicationGatewayBackendSettings_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayBackendSettings_STATUS runs a test to see if a specific instance of ApplicationGatewayBackendSettings_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayBackendSettings_STATUS(subject ApplicationGatewayBackendSettings_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayBackendSettings_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 ApplicationGatewayBackendSettings_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayBackendSettings_STATUSGenerator()
var applicationGatewayBackendSettings_STATUSGenerator gopter.Gen

// ApplicationGatewayBackendSettings_STATUSGenerator returns a generator of ApplicationGatewayBackendSettings_STATUS instances for property testing.
func ApplicationGatewayBackendSettings_STATUSGenerator() gopter.Gen {
	if applicationGatewayBackendSettings_STATUSGenerator != nil {
		return applicationGatewayBackendSettings_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayBackendSettings_STATUS(generators)
	applicationGatewayBackendSettings_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayBackendSettings_STATUS{}), generators)

	return applicationGatewayBackendSettings_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayBackendSettings_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayBackendSettings_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayCustomError_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 ApplicationGatewayCustomError_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayCustomError_STATUS, ApplicationGatewayCustomError_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayCustomError_STATUS runs a test to see if a specific instance of ApplicationGatewayCustomError_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayCustomError_STATUS(subject ApplicationGatewayCustomError_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayCustomError_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 ApplicationGatewayCustomError_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayCustomError_STATUSGenerator()
var applicationGatewayCustomError_STATUSGenerator gopter.Gen

// ApplicationGatewayCustomError_STATUSGenerator returns a generator of ApplicationGatewayCustomError_STATUS instances for property testing.
func ApplicationGatewayCustomError_STATUSGenerator() gopter.Gen {
	if applicationGatewayCustomError_STATUSGenerator != nil {
		return applicationGatewayCustomError_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayCustomError_STATUS(generators)
	applicationGatewayCustomError_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayCustomError_STATUS{}), generators)

	return applicationGatewayCustomError_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayCustomError_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayCustomError_STATUS(gens map[string]gopter.Gen) {
	gens["CustomErrorPageUrl"] = gen.PtrOf(gen.AlphaString())
	gens["StatusCode"] = gen.PtrOf(gen.OneConstOf(ApplicationGatewayCustomError_StatusCode_STATUS_HttpStatus403, ApplicationGatewayCustomError_StatusCode_STATUS_HttpStatus502))
}

func Test_ApplicationGatewayFirewallDisabledRuleGroup_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 ApplicationGatewayFirewallDisabledRuleGroup_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayFirewallDisabledRuleGroup_STATUS, ApplicationGatewayFirewallDisabledRuleGroup_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayFirewallDisabledRuleGroup_STATUS runs a test to see if a specific instance of ApplicationGatewayFirewallDisabledRuleGroup_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayFirewallDisabledRuleGroup_STATUS(subject ApplicationGatewayFirewallDisabledRuleGroup_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayFirewallDisabledRuleGroup_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 ApplicationGatewayFirewallDisabledRuleGroup_STATUS instances for property testing - lazily instantiated
// by ApplicationGatewayFirewallDisabledRuleGroup_STATUSGenerator()
var applicationGatewayFirewallDisabledRuleGroup_STATUSGenerator gopter.Gen

// ApplicationGatewayFirewallDisabledRuleGroup_STATUSGenerator returns a generator of ApplicationGatewayFirewallDisabledRuleGroup_STATUS instances for property testing.
func ApplicationGatewayFirewallDisabledRuleGroup_STATUSGenerator() gopter.Gen {
	if applicationGatewayFirewallDisabledRuleGroup_STATUSGenerator != nil {
		return applicationGatewayFirewallDisabledRuleGroup_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayFirewallDisabledRuleGroup_STATUS(generators)
	applicationGatewayFirewallDisabledRuleGroup_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayFirewallDisabledRuleGroup_STATUS{}), generators)

	return applicationGatewayFirewallDisabledRuleGroup_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayFirewallDisabledRuleGroup_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayFirewallDisabledRuleGroup_STATUS(gens map[string]gopter.Gen) {
	gens["RuleGroupName"] = gen.PtrOf(gen.AlphaString())
	gens["Rules"] = gen.SliceOf(gen.Int())
}

func Test_ApplicationGatewayFirewallExclusion_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 ApplicationGatewayFirewallExclusion_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayFirewallExclusion_STATUS, ApplicationGatewayFirewallExclusion_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayFirewallExclusion_STATUS runs a test to see if a specific instance of ApplicationGatewayFirewallExclusion_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayFirewallExclusion_STATUS(subject ApplicationGatewayFirewallExclusion_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayFirewallExclusion_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 ApplicationGatewayFirewallExclusion_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayFirewallExclusion_STATUSGenerator()
var applicationGatewayFirewallExclusion_STATUSGenerator gopter.Gen

// ApplicationGatewayFirewallExclusion_STATUSGenerator returns a generator of ApplicationGatewayFirewallExclusion_STATUS instances for property testing.
func ApplicationGatewayFirewallExclusion_STATUSGenerator() gopter.Gen {
	if applicationGatewayFirewallExclusion_STATUSGenerator != nil {
		return applicationGatewayFirewallExclusion_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayFirewallExclusion_STATUS(generators)
	applicationGatewayFirewallExclusion_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayFirewallExclusion_STATUS{}), generators)

	return applicationGatewayFirewallExclusion_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayFirewallExclusion_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayFirewallExclusion_STATUS(gens map[string]gopter.Gen) {
	gens["MatchVariable"] = gen.PtrOf(gen.AlphaString())
	gens["Selector"] = gen.PtrOf(gen.AlphaString())
	gens["SelectorMatchOperator"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayFrontendIPConfiguration_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 ApplicationGatewayFrontendIPConfiguration_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayFrontendIPConfiguration_STATUS, ApplicationGatewayFrontendIPConfiguration_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayFrontendIPConfiguration_STATUS runs a test to see if a specific instance of ApplicationGatewayFrontendIPConfiguration_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayFrontendIPConfiguration_STATUS(subject ApplicationGatewayFrontendIPConfiguration_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayFrontendIPConfiguration_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 ApplicationGatewayFrontendIPConfiguration_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayFrontendIPConfiguration_STATUSGenerator()
var applicationGatewayFrontendIPConfiguration_STATUSGenerator gopter.Gen

// ApplicationGatewayFrontendIPConfiguration_STATUSGenerator returns a generator of ApplicationGatewayFrontendIPConfiguration_STATUS instances for property testing.
func ApplicationGatewayFrontendIPConfiguration_STATUSGenerator() gopter.Gen {
	if applicationGatewayFrontendIPConfiguration_STATUSGenerator != nil {
		return applicationGatewayFrontendIPConfiguration_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayFrontendIPConfiguration_STATUS(generators)
	applicationGatewayFrontendIPConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayFrontendIPConfiguration_STATUS{}), generators)

	return applicationGatewayFrontendIPConfiguration_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayFrontendIPConfiguration_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayFrontendIPConfiguration_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayFrontendPort_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 ApplicationGatewayFrontendPort_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayFrontendPort_STATUS, ApplicationGatewayFrontendPort_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayFrontendPort_STATUS runs a test to see if a specific instance of ApplicationGatewayFrontendPort_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayFrontendPort_STATUS(subject ApplicationGatewayFrontendPort_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayFrontendPort_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 ApplicationGatewayFrontendPort_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayFrontendPort_STATUSGenerator()
var applicationGatewayFrontendPort_STATUSGenerator gopter.Gen

// ApplicationGatewayFrontendPort_STATUSGenerator returns a generator of ApplicationGatewayFrontendPort_STATUS instances for property testing.
func ApplicationGatewayFrontendPort_STATUSGenerator() gopter.Gen {
	if applicationGatewayFrontendPort_STATUSGenerator != nil {
		return applicationGatewayFrontendPort_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayFrontendPort_STATUS(generators)
	applicationGatewayFrontendPort_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayFrontendPort_STATUS{}), generators)

	return applicationGatewayFrontendPort_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayFrontendPort_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayFrontendPort_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayGlobalConfiguration_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 ApplicationGatewayGlobalConfiguration_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayGlobalConfiguration_STATUS, ApplicationGatewayGlobalConfiguration_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayGlobalConfiguration_STATUS runs a test to see if a specific instance of ApplicationGatewayGlobalConfiguration_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayGlobalConfiguration_STATUS(subject ApplicationGatewayGlobalConfiguration_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayGlobalConfiguration_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 ApplicationGatewayGlobalConfiguration_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayGlobalConfiguration_STATUSGenerator()
var applicationGatewayGlobalConfiguration_STATUSGenerator gopter.Gen

// ApplicationGatewayGlobalConfiguration_STATUSGenerator returns a generator of ApplicationGatewayGlobalConfiguration_STATUS instances for property testing.
func ApplicationGatewayGlobalConfiguration_STATUSGenerator() gopter.Gen {
	if applicationGatewayGlobalConfiguration_STATUSGenerator != nil {
		return applicationGatewayGlobalConfiguration_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayGlobalConfiguration_STATUS(generators)
	applicationGatewayGlobalConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayGlobalConfiguration_STATUS{}), generators)

	return applicationGatewayGlobalConfiguration_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayGlobalConfiguration_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayGlobalConfiguration_STATUS(gens map[string]gopter.Gen) {
	gens["EnableRequestBuffering"] = gen.PtrOf(gen.Bool())
	gens["EnableResponseBuffering"] = gen.PtrOf(gen.Bool())
}

func Test_ApplicationGatewayHttpListener_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 ApplicationGatewayHttpListener_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayHttpListener_STATUS, ApplicationGatewayHttpListener_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayHttpListener_STATUS runs a test to see if a specific instance of ApplicationGatewayHttpListener_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayHttpListener_STATUS(subject ApplicationGatewayHttpListener_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayHttpListener_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 ApplicationGatewayHttpListener_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayHttpListener_STATUSGenerator()
var applicationGatewayHttpListener_STATUSGenerator gopter.Gen

// ApplicationGatewayHttpListener_STATUSGenerator returns a generator of ApplicationGatewayHttpListener_STATUS instances for property testing.
func ApplicationGatewayHttpListener_STATUSGenerator() gopter.Gen {
	if applicationGatewayHttpListener_STATUSGenerator != nil {
		return applicationGatewayHttpListener_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayHttpListener_STATUS(generators)
	applicationGatewayHttpListener_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayHttpListener_STATUS{}), generators)

	return applicationGatewayHttpListener_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayHttpListener_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayHttpListener_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded_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 ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded, ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbeddedGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded runs a test to see if a specific instance of ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded(subject ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded
	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 ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded instances for property
// testing - lazily instantiated by
// ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbeddedGenerator()
var applicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbeddedGenerator gopter.Gen

// ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbeddedGenerator returns a generator of ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded instances for property testing.
func ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbeddedGenerator() gopter.Gen {
	if applicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbeddedGenerator != nil {
		return applicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbeddedGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded(generators)
	applicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbeddedGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded{}), generators)

	return applicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbeddedGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbedded(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayListener_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 ApplicationGatewayListener_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayListener_STATUS, ApplicationGatewayListener_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayListener_STATUS runs a test to see if a specific instance of ApplicationGatewayListener_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayListener_STATUS(subject ApplicationGatewayListener_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayListener_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 ApplicationGatewayListener_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayListener_STATUSGenerator()
var applicationGatewayListener_STATUSGenerator gopter.Gen

// ApplicationGatewayListener_STATUSGenerator returns a generator of ApplicationGatewayListener_STATUS instances for property testing.
func ApplicationGatewayListener_STATUSGenerator() gopter.Gen {
	if applicationGatewayListener_STATUSGenerator != nil {
		return applicationGatewayListener_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayListener_STATUS(generators)
	applicationGatewayListener_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayListener_STATUS{}), generators)

	return applicationGatewayListener_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayListener_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayListener_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayLoadDistributionPolicy_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 ApplicationGatewayLoadDistributionPolicy_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayLoadDistributionPolicy_STATUS, ApplicationGatewayLoadDistributionPolicy_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayLoadDistributionPolicy_STATUS runs a test to see if a specific instance of ApplicationGatewayLoadDistributionPolicy_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayLoadDistributionPolicy_STATUS(subject ApplicationGatewayLoadDistributionPolicy_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayLoadDistributionPolicy_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 ApplicationGatewayLoadDistributionPolicy_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayLoadDistributionPolicy_STATUSGenerator()
var applicationGatewayLoadDistributionPolicy_STATUSGenerator gopter.Gen

// ApplicationGatewayLoadDistributionPolicy_STATUSGenerator returns a generator of ApplicationGatewayLoadDistributionPolicy_STATUS instances for property testing.
func ApplicationGatewayLoadDistributionPolicy_STATUSGenerator() gopter.Gen {
	if applicationGatewayLoadDistributionPolicy_STATUSGenerator != nil {
		return applicationGatewayLoadDistributionPolicy_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayLoadDistributionPolicy_STATUS(generators)
	applicationGatewayLoadDistributionPolicy_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayLoadDistributionPolicy_STATUS{}), generators)

	return applicationGatewayLoadDistributionPolicy_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayLoadDistributionPolicy_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayLoadDistributionPolicy_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayPrivateEndpointConnection_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 ApplicationGatewayPrivateEndpointConnection_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayPrivateEndpointConnection_STATUS, ApplicationGatewayPrivateEndpointConnection_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayPrivateEndpointConnection_STATUS runs a test to see if a specific instance of ApplicationGatewayPrivateEndpointConnection_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayPrivateEndpointConnection_STATUS(subject ApplicationGatewayPrivateEndpointConnection_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayPrivateEndpointConnection_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 ApplicationGatewayPrivateEndpointConnection_STATUS instances for property testing - lazily instantiated
// by ApplicationGatewayPrivateEndpointConnection_STATUSGenerator()
var applicationGatewayPrivateEndpointConnection_STATUSGenerator gopter.Gen

// ApplicationGatewayPrivateEndpointConnection_STATUSGenerator returns a generator of ApplicationGatewayPrivateEndpointConnection_STATUS instances for property testing.
func ApplicationGatewayPrivateEndpointConnection_STATUSGenerator() gopter.Gen {
	if applicationGatewayPrivateEndpointConnection_STATUSGenerator != nil {
		return applicationGatewayPrivateEndpointConnection_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayPrivateEndpointConnection_STATUS(generators)
	applicationGatewayPrivateEndpointConnection_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayPrivateEndpointConnection_STATUS{}), generators)

	return applicationGatewayPrivateEndpointConnection_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayPrivateEndpointConnection_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayPrivateEndpointConnection_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayPrivateLinkConfiguration_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 ApplicationGatewayPrivateLinkConfiguration_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayPrivateLinkConfiguration_STATUS, ApplicationGatewayPrivateLinkConfiguration_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayPrivateLinkConfiguration_STATUS runs a test to see if a specific instance of ApplicationGatewayPrivateLinkConfiguration_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayPrivateLinkConfiguration_STATUS(subject ApplicationGatewayPrivateLinkConfiguration_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayPrivateLinkConfiguration_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 ApplicationGatewayPrivateLinkConfiguration_STATUS instances for property testing - lazily instantiated
// by ApplicationGatewayPrivateLinkConfiguration_STATUSGenerator()
var applicationGatewayPrivateLinkConfiguration_STATUSGenerator gopter.Gen

// ApplicationGatewayPrivateLinkConfiguration_STATUSGenerator returns a generator of ApplicationGatewayPrivateLinkConfiguration_STATUS instances for property testing.
func ApplicationGatewayPrivateLinkConfiguration_STATUSGenerator() gopter.Gen {
	if applicationGatewayPrivateLinkConfiguration_STATUSGenerator != nil {
		return applicationGatewayPrivateLinkConfiguration_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayPrivateLinkConfiguration_STATUS(generators)
	applicationGatewayPrivateLinkConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayPrivateLinkConfiguration_STATUS{}), generators)

	return applicationGatewayPrivateLinkConfiguration_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayPrivateLinkConfiguration_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayPrivateLinkConfiguration_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayProbe_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 ApplicationGatewayProbe_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayProbe_STATUS, ApplicationGatewayProbe_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayProbe_STATUS runs a test to see if a specific instance of ApplicationGatewayProbe_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayProbe_STATUS(subject ApplicationGatewayProbe_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayProbe_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 ApplicationGatewayProbe_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayProbe_STATUSGenerator()
var applicationGatewayProbe_STATUSGenerator gopter.Gen

// ApplicationGatewayProbe_STATUSGenerator returns a generator of ApplicationGatewayProbe_STATUS instances for property testing.
func ApplicationGatewayProbe_STATUSGenerator() gopter.Gen {
	if applicationGatewayProbe_STATUSGenerator != nil {
		return applicationGatewayProbe_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayProbe_STATUS(generators)
	applicationGatewayProbe_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayProbe_STATUS{}), generators)

	return applicationGatewayProbe_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayProbe_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayProbe_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayPropertiesFormat_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 ApplicationGatewayPropertiesFormat_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayPropertiesFormat_STATUS, ApplicationGatewayPropertiesFormat_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayPropertiesFormat_STATUS runs a test to see if a specific instance of ApplicationGatewayPropertiesFormat_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayPropertiesFormat_STATUS(subject ApplicationGatewayPropertiesFormat_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayPropertiesFormat_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 ApplicationGatewayPropertiesFormat_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayPropertiesFormat_STATUSGenerator()
var applicationGatewayPropertiesFormat_STATUSGenerator gopter.Gen

// ApplicationGatewayPropertiesFormat_STATUSGenerator returns a generator of ApplicationGatewayPropertiesFormat_STATUS instances for property testing.
// We first initialize applicationGatewayPropertiesFormat_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 ApplicationGatewayPropertiesFormat_STATUSGenerator() gopter.Gen {
	if applicationGatewayPropertiesFormat_STATUSGenerator != nil {
		return applicationGatewayPropertiesFormat_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayPropertiesFormat_STATUS(generators)
	applicationGatewayPropertiesFormat_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayPropertiesFormat_STATUS{}), generators)

	// The above call to gen.Struct() captures the map, so create a new one
	generators = make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayPropertiesFormat_STATUS(generators)
	AddRelatedPropertyGeneratorsForApplicationGatewayPropertiesFormat_STATUS(generators)
	applicationGatewayPropertiesFormat_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayPropertiesFormat_STATUS{}), generators)

	return applicationGatewayPropertiesFormat_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayPropertiesFormat_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayPropertiesFormat_STATUS(gens map[string]gopter.Gen) {
	gens["EnableFips"] = gen.PtrOf(gen.Bool())
	gens["EnableHttp2"] = gen.PtrOf(gen.Bool())
	gens["ForceFirewallPolicyAssociation"] = gen.PtrOf(gen.Bool())
	gens["OperationalState"] = gen.PtrOf(gen.OneConstOf(
		ApplicationGatewayPropertiesFormat_OperationalState_STATUS_Running,
		ApplicationGatewayPropertiesFormat_OperationalState_STATUS_Starting,
		ApplicationGatewayPropertiesFormat_OperationalState_STATUS_Stopped,
		ApplicationGatewayPropertiesFormat_OperationalState_STATUS_Stopping))
	gens["ProvisioningState"] = gen.PtrOf(gen.OneConstOf(
		ApplicationGatewayProvisioningState_STATUS_Deleting,
		ApplicationGatewayProvisioningState_STATUS_Failed,
		ApplicationGatewayProvisioningState_STATUS_Succeeded,
		ApplicationGatewayProvisioningState_STATUS_Updating))
	gens["ResourceGuid"] = gen.PtrOf(gen.AlphaString())
}

// AddRelatedPropertyGeneratorsForApplicationGatewayPropertiesFormat_STATUS is a factory method for creating gopter generators
func AddRelatedPropertyGeneratorsForApplicationGatewayPropertiesFormat_STATUS(gens map[string]gopter.Gen) {
	gens["AuthenticationCertificates"] = gen.SliceOf(ApplicationGatewayAuthenticationCertificate_STATUSGenerator())
	gens["AutoscaleConfiguration"] = gen.PtrOf(ApplicationGatewayAutoscaleConfiguration_STATUSGenerator())
	gens["BackendAddressPools"] = gen.SliceOf(ApplicationGatewayBackendAddressPool_STATUSGenerator())
	gens["BackendHttpSettingsCollection"] = gen.SliceOf(ApplicationGatewayBackendHttpSettings_STATUSGenerator())
	gens["BackendSettingsCollection"] = gen.SliceOf(ApplicationGatewayBackendSettings_STATUSGenerator())
	gens["CustomErrorConfigurations"] = gen.SliceOf(ApplicationGatewayCustomError_STATUSGenerator())
	gens["FirewallPolicy"] = gen.PtrOf(SubResource_STATUSGenerator())
	gens["FrontendIPConfigurations"] = gen.SliceOf(ApplicationGatewayFrontendIPConfiguration_STATUSGenerator())
	gens["FrontendPorts"] = gen.SliceOf(ApplicationGatewayFrontendPort_STATUSGenerator())
	gens["GatewayIPConfigurations"] = gen.SliceOf(ApplicationGatewayIPConfiguration_STATUS_ApplicationGateway_SubResourceEmbeddedGenerator())
	gens["GlobalConfiguration"] = gen.PtrOf(ApplicationGatewayGlobalConfiguration_STATUSGenerator())
	gens["HttpListeners"] = gen.SliceOf(ApplicationGatewayHttpListener_STATUSGenerator())
	gens["Listeners"] = gen.SliceOf(ApplicationGatewayListener_STATUSGenerator())
	gens["LoadDistributionPolicies"] = gen.SliceOf(ApplicationGatewayLoadDistributionPolicy_STATUSGenerator())
	gens["PrivateEndpointConnections"] = gen.SliceOf(ApplicationGatewayPrivateEndpointConnection_STATUSGenerator())
	gens["PrivateLinkConfigurations"] = gen.SliceOf(ApplicationGatewayPrivateLinkConfiguration_STATUSGenerator())
	gens["Probes"] = gen.SliceOf(ApplicationGatewayProbe_STATUSGenerator())
	gens["RedirectConfigurations"] = gen.SliceOf(ApplicationGatewayRedirectConfiguration_STATUSGenerator())
	gens["RequestRoutingRules"] = gen.SliceOf(ApplicationGatewayRequestRoutingRule_STATUSGenerator())
	gens["RewriteRuleSets"] = gen.SliceOf(ApplicationGatewayRewriteRuleSet_STATUSGenerator())
	gens["RoutingRules"] = gen.SliceOf(ApplicationGatewayRoutingRule_STATUSGenerator())
	gens["Sku"] = gen.PtrOf(ApplicationGatewaySku_STATUSGenerator())
	gens["SslCertificates"] = gen.SliceOf(ApplicationGatewaySslCertificate_STATUSGenerator())
	gens["SslPolicy"] = gen.PtrOf(ApplicationGatewaySslPolicy_STATUSGenerator())
	gens["SslProfiles"] = gen.SliceOf(ApplicationGatewaySslProfile_STATUSGenerator())
	gens["TrustedClientCertificates"] = gen.SliceOf(ApplicationGatewayTrustedClientCertificate_STATUSGenerator())
	gens["TrustedRootCertificates"] = gen.SliceOf(ApplicationGatewayTrustedRootCertificate_STATUSGenerator())
	gens["UrlPathMaps"] = gen.SliceOf(ApplicationGatewayUrlPathMap_STATUSGenerator())
	gens["WebApplicationFirewallConfiguration"] = gen.PtrOf(ApplicationGatewayWebApplicationFirewallConfiguration_STATUSGenerator())
}

func Test_ApplicationGatewayRedirectConfiguration_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 ApplicationGatewayRedirectConfiguration_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayRedirectConfiguration_STATUS, ApplicationGatewayRedirectConfiguration_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayRedirectConfiguration_STATUS runs a test to see if a specific instance of ApplicationGatewayRedirectConfiguration_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayRedirectConfiguration_STATUS(subject ApplicationGatewayRedirectConfiguration_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayRedirectConfiguration_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 ApplicationGatewayRedirectConfiguration_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayRedirectConfiguration_STATUSGenerator()
var applicationGatewayRedirectConfiguration_STATUSGenerator gopter.Gen

// ApplicationGatewayRedirectConfiguration_STATUSGenerator returns a generator of ApplicationGatewayRedirectConfiguration_STATUS instances for property testing.
func ApplicationGatewayRedirectConfiguration_STATUSGenerator() gopter.Gen {
	if applicationGatewayRedirectConfiguration_STATUSGenerator != nil {
		return applicationGatewayRedirectConfiguration_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayRedirectConfiguration_STATUS(generators)
	applicationGatewayRedirectConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayRedirectConfiguration_STATUS{}), generators)

	return applicationGatewayRedirectConfiguration_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayRedirectConfiguration_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayRedirectConfiguration_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayRequestRoutingRule_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 ApplicationGatewayRequestRoutingRule_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayRequestRoutingRule_STATUS, ApplicationGatewayRequestRoutingRule_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayRequestRoutingRule_STATUS runs a test to see if a specific instance of ApplicationGatewayRequestRoutingRule_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayRequestRoutingRule_STATUS(subject ApplicationGatewayRequestRoutingRule_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayRequestRoutingRule_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 ApplicationGatewayRequestRoutingRule_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayRequestRoutingRule_STATUSGenerator()
var applicationGatewayRequestRoutingRule_STATUSGenerator gopter.Gen

// ApplicationGatewayRequestRoutingRule_STATUSGenerator returns a generator of ApplicationGatewayRequestRoutingRule_STATUS instances for property testing.
func ApplicationGatewayRequestRoutingRule_STATUSGenerator() gopter.Gen {
	if applicationGatewayRequestRoutingRule_STATUSGenerator != nil {
		return applicationGatewayRequestRoutingRule_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayRequestRoutingRule_STATUS(generators)
	applicationGatewayRequestRoutingRule_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayRequestRoutingRule_STATUS{}), generators)

	return applicationGatewayRequestRoutingRule_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayRequestRoutingRule_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayRequestRoutingRule_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayRewriteRuleSet_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 ApplicationGatewayRewriteRuleSet_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayRewriteRuleSet_STATUS, ApplicationGatewayRewriteRuleSet_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayRewriteRuleSet_STATUS runs a test to see if a specific instance of ApplicationGatewayRewriteRuleSet_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayRewriteRuleSet_STATUS(subject ApplicationGatewayRewriteRuleSet_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayRewriteRuleSet_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 ApplicationGatewayRewriteRuleSet_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayRewriteRuleSet_STATUSGenerator()
var applicationGatewayRewriteRuleSet_STATUSGenerator gopter.Gen

// ApplicationGatewayRewriteRuleSet_STATUSGenerator returns a generator of ApplicationGatewayRewriteRuleSet_STATUS instances for property testing.
func ApplicationGatewayRewriteRuleSet_STATUSGenerator() gopter.Gen {
	if applicationGatewayRewriteRuleSet_STATUSGenerator != nil {
		return applicationGatewayRewriteRuleSet_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayRewriteRuleSet_STATUS(generators)
	applicationGatewayRewriteRuleSet_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayRewriteRuleSet_STATUS{}), generators)

	return applicationGatewayRewriteRuleSet_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayRewriteRuleSet_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayRewriteRuleSet_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayRoutingRule_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 ApplicationGatewayRoutingRule_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayRoutingRule_STATUS, ApplicationGatewayRoutingRule_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayRoutingRule_STATUS runs a test to see if a specific instance of ApplicationGatewayRoutingRule_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayRoutingRule_STATUS(subject ApplicationGatewayRoutingRule_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayRoutingRule_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 ApplicationGatewayRoutingRule_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayRoutingRule_STATUSGenerator()
var applicationGatewayRoutingRule_STATUSGenerator gopter.Gen

// ApplicationGatewayRoutingRule_STATUSGenerator returns a generator of ApplicationGatewayRoutingRule_STATUS instances for property testing.
func ApplicationGatewayRoutingRule_STATUSGenerator() gopter.Gen {
	if applicationGatewayRoutingRule_STATUSGenerator != nil {
		return applicationGatewayRoutingRule_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayRoutingRule_STATUS(generators)
	applicationGatewayRoutingRule_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayRoutingRule_STATUS{}), generators)

	return applicationGatewayRoutingRule_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayRoutingRule_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayRoutingRule_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewaySku_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 ApplicationGatewaySku_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewaySku_STATUS, ApplicationGatewaySku_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewaySku_STATUS runs a test to see if a specific instance of ApplicationGatewaySku_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewaySku_STATUS(subject ApplicationGatewaySku_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewaySku_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 ApplicationGatewaySku_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewaySku_STATUSGenerator()
var applicationGatewaySku_STATUSGenerator gopter.Gen

// ApplicationGatewaySku_STATUSGenerator returns a generator of ApplicationGatewaySku_STATUS instances for property testing.
func ApplicationGatewaySku_STATUSGenerator() gopter.Gen {
	if applicationGatewaySku_STATUSGenerator != nil {
		return applicationGatewaySku_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewaySku_STATUS(generators)
	applicationGatewaySku_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewaySku_STATUS{}), generators)

	return applicationGatewaySku_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewaySku_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewaySku_STATUS(gens map[string]gopter.Gen) {
	gens["Capacity"] = gen.PtrOf(gen.Int())
	gens["Name"] = gen.PtrOf(gen.OneConstOf(
		ApplicationGatewaySku_Name_STATUS_Standard_Large,
		ApplicationGatewaySku_Name_STATUS_Standard_Medium,
		ApplicationGatewaySku_Name_STATUS_Standard_Small,
		ApplicationGatewaySku_Name_STATUS_Standard_V2,
		ApplicationGatewaySku_Name_STATUS_WAF_Large,
		ApplicationGatewaySku_Name_STATUS_WAF_Medium,
		ApplicationGatewaySku_Name_STATUS_WAF_V2))
	gens["Tier"] = gen.PtrOf(gen.OneConstOf(
		ApplicationGatewaySku_Tier_STATUS_Standard,
		ApplicationGatewaySku_Tier_STATUS_Standard_V2,
		ApplicationGatewaySku_Tier_STATUS_WAF,
		ApplicationGatewaySku_Tier_STATUS_WAF_V2))
}

func Test_ApplicationGatewaySslCertificate_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 ApplicationGatewaySslCertificate_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewaySslCertificate_STATUS, ApplicationGatewaySslCertificate_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewaySslCertificate_STATUS runs a test to see if a specific instance of ApplicationGatewaySslCertificate_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewaySslCertificate_STATUS(subject ApplicationGatewaySslCertificate_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewaySslCertificate_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 ApplicationGatewaySslCertificate_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewaySslCertificate_STATUSGenerator()
var applicationGatewaySslCertificate_STATUSGenerator gopter.Gen

// ApplicationGatewaySslCertificate_STATUSGenerator returns a generator of ApplicationGatewaySslCertificate_STATUS instances for property testing.
func ApplicationGatewaySslCertificate_STATUSGenerator() gopter.Gen {
	if applicationGatewaySslCertificate_STATUSGenerator != nil {
		return applicationGatewaySslCertificate_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewaySslCertificate_STATUS(generators)
	applicationGatewaySslCertificate_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewaySslCertificate_STATUS{}), generators)

	return applicationGatewaySslCertificate_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewaySslCertificate_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewaySslCertificate_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewaySslPolicy_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 ApplicationGatewaySslPolicy_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewaySslPolicy_STATUS, ApplicationGatewaySslPolicy_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewaySslPolicy_STATUS runs a test to see if a specific instance of ApplicationGatewaySslPolicy_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewaySslPolicy_STATUS(subject ApplicationGatewaySslPolicy_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewaySslPolicy_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 ApplicationGatewaySslPolicy_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewaySslPolicy_STATUSGenerator()
var applicationGatewaySslPolicy_STATUSGenerator gopter.Gen

// ApplicationGatewaySslPolicy_STATUSGenerator returns a generator of ApplicationGatewaySslPolicy_STATUS instances for property testing.
func ApplicationGatewaySslPolicy_STATUSGenerator() gopter.Gen {
	if applicationGatewaySslPolicy_STATUSGenerator != nil {
		return applicationGatewaySslPolicy_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewaySslPolicy_STATUS(generators)
	applicationGatewaySslPolicy_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewaySslPolicy_STATUS{}), generators)

	return applicationGatewaySslPolicy_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewaySslPolicy_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewaySslPolicy_STATUS(gens map[string]gopter.Gen) {
	gens["CipherSuites"] = gen.SliceOf(gen.OneConstOf(
		CipherSuitesEnum_STATUS_TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
		CipherSuitesEnum_STATUS_TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
		CipherSuitesEnum_STATUS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
		CipherSuitesEnum_STATUS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
		CipherSuitesEnum_STATUS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
		CipherSuitesEnum_STATUS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
		CipherSuitesEnum_STATUS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
		CipherSuitesEnum_STATUS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
		CipherSuitesEnum_STATUS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
		CipherSuitesEnum_STATUS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
		CipherSuitesEnum_STATUS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
		CipherSuitesEnum_STATUS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
		CipherSuitesEnum_STATUS_TLS_RSA_WITH_3DES_EDE_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_RSA_WITH_AES_128_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_RSA_WITH_AES_128_CBC_SHA256,
		CipherSuitesEnum_STATUS_TLS_RSA_WITH_AES_128_GCM_SHA256,
		CipherSuitesEnum_STATUS_TLS_RSA_WITH_AES_256_CBC_SHA,
		CipherSuitesEnum_STATUS_TLS_RSA_WITH_AES_256_CBC_SHA256,
		CipherSuitesEnum_STATUS_TLS_RSA_WITH_AES_256_GCM_SHA384))
	gens["DisabledSslProtocols"] = gen.SliceOf(gen.OneConstOf(
		ProtocolsEnum_STATUS_TLSv1_0,
		ProtocolsEnum_STATUS_TLSv1_1,
		ProtocolsEnum_STATUS_TLSv1_2,
		ProtocolsEnum_STATUS_TLSv1_3))
	gens["MinProtocolVersion"] = gen.PtrOf(gen.OneConstOf(
		ProtocolsEnum_STATUS_TLSv1_0,
		ProtocolsEnum_STATUS_TLSv1_1,
		ProtocolsEnum_STATUS_TLSv1_2,
		ProtocolsEnum_STATUS_TLSv1_3))
	gens["PolicyName"] = gen.PtrOf(gen.OneConstOf(
		PolicyNameEnum_STATUS_AppGwSslPolicy20150501,
		PolicyNameEnum_STATUS_AppGwSslPolicy20170401,
		PolicyNameEnum_STATUS_AppGwSslPolicy20170401S,
		PolicyNameEnum_STATUS_AppGwSslPolicy20220101,
		PolicyNameEnum_STATUS_AppGwSslPolicy20220101S))
	gens["PolicyType"] = gen.PtrOf(gen.OneConstOf(ApplicationGatewaySslPolicy_PolicyType_STATUS_Custom, ApplicationGatewaySslPolicy_PolicyType_STATUS_CustomV2, ApplicationGatewaySslPolicy_PolicyType_STATUS_Predefined))
}

func Test_ApplicationGatewaySslProfile_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 ApplicationGatewaySslProfile_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewaySslProfile_STATUS, ApplicationGatewaySslProfile_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewaySslProfile_STATUS runs a test to see if a specific instance of ApplicationGatewaySslProfile_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewaySslProfile_STATUS(subject ApplicationGatewaySslProfile_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewaySslProfile_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 ApplicationGatewaySslProfile_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewaySslProfile_STATUSGenerator()
var applicationGatewaySslProfile_STATUSGenerator gopter.Gen

// ApplicationGatewaySslProfile_STATUSGenerator returns a generator of ApplicationGatewaySslProfile_STATUS instances for property testing.
func ApplicationGatewaySslProfile_STATUSGenerator() gopter.Gen {
	if applicationGatewaySslProfile_STATUSGenerator != nil {
		return applicationGatewaySslProfile_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewaySslProfile_STATUS(generators)
	applicationGatewaySslProfile_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewaySslProfile_STATUS{}), generators)

	return applicationGatewaySslProfile_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewaySslProfile_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewaySslProfile_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayTrustedClientCertificate_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 ApplicationGatewayTrustedClientCertificate_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayTrustedClientCertificate_STATUS, ApplicationGatewayTrustedClientCertificate_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayTrustedClientCertificate_STATUS runs a test to see if a specific instance of ApplicationGatewayTrustedClientCertificate_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayTrustedClientCertificate_STATUS(subject ApplicationGatewayTrustedClientCertificate_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayTrustedClientCertificate_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 ApplicationGatewayTrustedClientCertificate_STATUS instances for property testing - lazily instantiated
// by ApplicationGatewayTrustedClientCertificate_STATUSGenerator()
var applicationGatewayTrustedClientCertificate_STATUSGenerator gopter.Gen

// ApplicationGatewayTrustedClientCertificate_STATUSGenerator returns a generator of ApplicationGatewayTrustedClientCertificate_STATUS instances for property testing.
func ApplicationGatewayTrustedClientCertificate_STATUSGenerator() gopter.Gen {
	if applicationGatewayTrustedClientCertificate_STATUSGenerator != nil {
		return applicationGatewayTrustedClientCertificate_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayTrustedClientCertificate_STATUS(generators)
	applicationGatewayTrustedClientCertificate_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayTrustedClientCertificate_STATUS{}), generators)

	return applicationGatewayTrustedClientCertificate_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayTrustedClientCertificate_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayTrustedClientCertificate_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayTrustedRootCertificate_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 ApplicationGatewayTrustedRootCertificate_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayTrustedRootCertificate_STATUS, ApplicationGatewayTrustedRootCertificate_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayTrustedRootCertificate_STATUS runs a test to see if a specific instance of ApplicationGatewayTrustedRootCertificate_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayTrustedRootCertificate_STATUS(subject ApplicationGatewayTrustedRootCertificate_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayTrustedRootCertificate_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 ApplicationGatewayTrustedRootCertificate_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayTrustedRootCertificate_STATUSGenerator()
var applicationGatewayTrustedRootCertificate_STATUSGenerator gopter.Gen

// ApplicationGatewayTrustedRootCertificate_STATUSGenerator returns a generator of ApplicationGatewayTrustedRootCertificate_STATUS instances for property testing.
func ApplicationGatewayTrustedRootCertificate_STATUSGenerator() gopter.Gen {
	if applicationGatewayTrustedRootCertificate_STATUSGenerator != nil {
		return applicationGatewayTrustedRootCertificate_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayTrustedRootCertificate_STATUS(generators)
	applicationGatewayTrustedRootCertificate_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayTrustedRootCertificate_STATUS{}), generators)

	return applicationGatewayTrustedRootCertificate_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayTrustedRootCertificate_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayTrustedRootCertificate_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayUrlPathMap_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 ApplicationGatewayUrlPathMap_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayUrlPathMap_STATUS, ApplicationGatewayUrlPathMap_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayUrlPathMap_STATUS runs a test to see if a specific instance of ApplicationGatewayUrlPathMap_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayUrlPathMap_STATUS(subject ApplicationGatewayUrlPathMap_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayUrlPathMap_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 ApplicationGatewayUrlPathMap_STATUS instances for property testing - lazily instantiated by
// ApplicationGatewayUrlPathMap_STATUSGenerator()
var applicationGatewayUrlPathMap_STATUSGenerator gopter.Gen

// ApplicationGatewayUrlPathMap_STATUSGenerator returns a generator of ApplicationGatewayUrlPathMap_STATUS instances for property testing.
func ApplicationGatewayUrlPathMap_STATUSGenerator() gopter.Gen {
	if applicationGatewayUrlPathMap_STATUSGenerator != nil {
		return applicationGatewayUrlPathMap_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayUrlPathMap_STATUS(generators)
	applicationGatewayUrlPathMap_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayUrlPathMap_STATUS{}), generators)

	return applicationGatewayUrlPathMap_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayUrlPathMap_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayUrlPathMap_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}

func Test_ApplicationGatewayWebApplicationFirewallConfiguration_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 ApplicationGatewayWebApplicationFirewallConfiguration_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGatewayWebApplicationFirewallConfiguration_STATUS, ApplicationGatewayWebApplicationFirewallConfiguration_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGatewayWebApplicationFirewallConfiguration_STATUS runs a test to see if a specific instance of ApplicationGatewayWebApplicationFirewallConfiguration_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGatewayWebApplicationFirewallConfiguration_STATUS(subject ApplicationGatewayWebApplicationFirewallConfiguration_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGatewayWebApplicationFirewallConfiguration_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 ApplicationGatewayWebApplicationFirewallConfiguration_STATUS instances for property testing - lazily
// instantiated by ApplicationGatewayWebApplicationFirewallConfiguration_STATUSGenerator()
var applicationGatewayWebApplicationFirewallConfiguration_STATUSGenerator gopter.Gen

// ApplicationGatewayWebApplicationFirewallConfiguration_STATUSGenerator returns a generator of ApplicationGatewayWebApplicationFirewallConfiguration_STATUS instances for property testing.
// We first initialize applicationGatewayWebApplicationFirewallConfiguration_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 ApplicationGatewayWebApplicationFirewallConfiguration_STATUSGenerator() gopter.Gen {
	if applicationGatewayWebApplicationFirewallConfiguration_STATUSGenerator != nil {
		return applicationGatewayWebApplicationFirewallConfiguration_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayWebApplicationFirewallConfiguration_STATUS(generators)
	applicationGatewayWebApplicationFirewallConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayWebApplicationFirewallConfiguration_STATUS{}), generators)

	// The above call to gen.Struct() captures the map, so create a new one
	generators = make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGatewayWebApplicationFirewallConfiguration_STATUS(generators)
	AddRelatedPropertyGeneratorsForApplicationGatewayWebApplicationFirewallConfiguration_STATUS(generators)
	applicationGatewayWebApplicationFirewallConfiguration_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGatewayWebApplicationFirewallConfiguration_STATUS{}), generators)

	return applicationGatewayWebApplicationFirewallConfiguration_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGatewayWebApplicationFirewallConfiguration_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGatewayWebApplicationFirewallConfiguration_STATUS(gens map[string]gopter.Gen) {
	gens["Enabled"] = gen.PtrOf(gen.Bool())
	gens["FileUploadLimitInMb"] = gen.PtrOf(gen.Int())
	gens["FirewallMode"] = gen.PtrOf(gen.OneConstOf(ApplicationGatewayWebApplicationFirewallConfiguration_FirewallMode_STATUS_Detection, ApplicationGatewayWebApplicationFirewallConfiguration_FirewallMode_STATUS_Prevention))
	gens["MaxRequestBodySize"] = gen.PtrOf(gen.Int())
	gens["MaxRequestBodySizeInKb"] = gen.PtrOf(gen.Int())
	gens["RequestBodyCheck"] = gen.PtrOf(gen.Bool())
	gens["RuleSetType"] = gen.PtrOf(gen.AlphaString())
	gens["RuleSetVersion"] = gen.PtrOf(gen.AlphaString())
}

// AddRelatedPropertyGeneratorsForApplicationGatewayWebApplicationFirewallConfiguration_STATUS is a factory method for creating gopter generators
func AddRelatedPropertyGeneratorsForApplicationGatewayWebApplicationFirewallConfiguration_STATUS(gens map[string]gopter.Gen) {
	gens["DisabledRuleGroups"] = gen.SliceOf(ApplicationGatewayFirewallDisabledRuleGroup_STATUSGenerator())
	gens["Exclusions"] = gen.SliceOf(ApplicationGatewayFirewallExclusion_STATUSGenerator())
}

func Test_ApplicationGateway_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 ApplicationGateway_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForApplicationGateway_STATUS, ApplicationGateway_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForApplicationGateway_STATUS runs a test to see if a specific instance of ApplicationGateway_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForApplicationGateway_STATUS(subject ApplicationGateway_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ApplicationGateway_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 ApplicationGateway_STATUS instances for property testing - lazily instantiated by
// ApplicationGateway_STATUSGenerator()
var applicationGateway_STATUSGenerator gopter.Gen

// ApplicationGateway_STATUSGenerator returns a generator of ApplicationGateway_STATUS instances for property testing.
// We first initialize applicationGateway_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 ApplicationGateway_STATUSGenerator() gopter.Gen {
	if applicationGateway_STATUSGenerator != nil {
		return applicationGateway_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGateway_STATUS(generators)
	applicationGateway_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGateway_STATUS{}), generators)

	// The above call to gen.Struct() captures the map, so create a new one
	generators = make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForApplicationGateway_STATUS(generators)
	AddRelatedPropertyGeneratorsForApplicationGateway_STATUS(generators)
	applicationGateway_STATUSGenerator = gen.Struct(reflect.TypeOf(ApplicationGateway_STATUS{}), generators)

	return applicationGateway_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForApplicationGateway_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForApplicationGateway_STATUS(gens map[string]gopter.Gen) {
	gens["Etag"] = gen.PtrOf(gen.AlphaString())
	gens["Id"] = gen.PtrOf(gen.AlphaString())
	gens["Location"] = gen.PtrOf(gen.AlphaString())
	gens["Name"] = gen.PtrOf(gen.AlphaString())
	gens["Tags"] = gen.MapOf(
		gen.AlphaString(),
		gen.AlphaString())
	gens["Type"] = gen.PtrOf(gen.AlphaString())
	gens["Zones"] = gen.SliceOf(gen.AlphaString())
}

// AddRelatedPropertyGeneratorsForApplicationGateway_STATUS is a factory method for creating gopter generators
func AddRelatedPropertyGeneratorsForApplicationGateway_STATUS(gens map[string]gopter.Gen) {
	gens["Identity"] = gen.PtrOf(ManagedServiceIdentity_STATUSGenerator())
	gens["Properties"] = gen.PtrOf(ApplicationGatewayPropertiesFormat_STATUSGenerator())
}

func Test_ManagedServiceIdentity_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 ManagedServiceIdentity_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForManagedServiceIdentity_STATUS, ManagedServiceIdentity_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForManagedServiceIdentity_STATUS runs a test to see if a specific instance of ManagedServiceIdentity_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForManagedServiceIdentity_STATUS(subject ManagedServiceIdentity_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ManagedServiceIdentity_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 ManagedServiceIdentity_STATUS instances for property testing - lazily instantiated by
// ManagedServiceIdentity_STATUSGenerator()
var managedServiceIdentity_STATUSGenerator gopter.Gen

// ManagedServiceIdentity_STATUSGenerator returns a generator of ManagedServiceIdentity_STATUS instances for property testing.
// We first initialize managedServiceIdentity_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 ManagedServiceIdentity_STATUSGenerator() gopter.Gen {
	if managedServiceIdentity_STATUSGenerator != nil {
		return managedServiceIdentity_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForManagedServiceIdentity_STATUS(generators)
	managedServiceIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedServiceIdentity_STATUS{}), generators)

	// The above call to gen.Struct() captures the map, so create a new one
	generators = make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForManagedServiceIdentity_STATUS(generators)
	AddRelatedPropertyGeneratorsForManagedServiceIdentity_STATUS(generators)
	managedServiceIdentity_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedServiceIdentity_STATUS{}), generators)

	return managedServiceIdentity_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForManagedServiceIdentity_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForManagedServiceIdentity_STATUS(gens map[string]gopter.Gen) {
	gens["PrincipalId"] = gen.PtrOf(gen.AlphaString())
	gens["TenantId"] = gen.PtrOf(gen.AlphaString())
	gens["Type"] = gen.PtrOf(gen.OneConstOf(
		ManagedServiceIdentity_Type_STATUS_None,
		ManagedServiceIdentity_Type_STATUS_SystemAssigned,
		ManagedServiceIdentity_Type_STATUS_SystemAssignedUserAssigned,
		ManagedServiceIdentity_Type_STATUS_UserAssigned))
}

// AddRelatedPropertyGeneratorsForManagedServiceIdentity_STATUS is a factory method for creating gopter generators
func AddRelatedPropertyGeneratorsForManagedServiceIdentity_STATUS(gens map[string]gopter.Gen) {
	gens["UserAssignedIdentities"] = gen.MapOf(
		gen.AlphaString(),
		ManagedServiceIdentity_UserAssignedIdentities_STATUSGenerator())
}

func Test_ManagedServiceIdentity_UserAssignedIdentities_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 ManagedServiceIdentity_UserAssignedIdentities_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForManagedServiceIdentity_UserAssignedIdentities_STATUS, ManagedServiceIdentity_UserAssignedIdentities_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForManagedServiceIdentity_UserAssignedIdentities_STATUS runs a test to see if a specific instance of ManagedServiceIdentity_UserAssignedIdentities_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForManagedServiceIdentity_UserAssignedIdentities_STATUS(subject ManagedServiceIdentity_UserAssignedIdentities_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual ManagedServiceIdentity_UserAssignedIdentities_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 ManagedServiceIdentity_UserAssignedIdentities_STATUS instances for property testing - lazily
// instantiated by ManagedServiceIdentity_UserAssignedIdentities_STATUSGenerator()
var managedServiceIdentity_UserAssignedIdentities_STATUSGenerator gopter.Gen

// ManagedServiceIdentity_UserAssignedIdentities_STATUSGenerator returns a generator of ManagedServiceIdentity_UserAssignedIdentities_STATUS instances for property testing.
func ManagedServiceIdentity_UserAssignedIdentities_STATUSGenerator() gopter.Gen {
	if managedServiceIdentity_UserAssignedIdentities_STATUSGenerator != nil {
		return managedServiceIdentity_UserAssignedIdentities_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForManagedServiceIdentity_UserAssignedIdentities_STATUS(generators)
	managedServiceIdentity_UserAssignedIdentities_STATUSGenerator = gen.Struct(reflect.TypeOf(ManagedServiceIdentity_UserAssignedIdentities_STATUS{}), generators)

	return managedServiceIdentity_UserAssignedIdentities_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForManagedServiceIdentity_UserAssignedIdentities_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForManagedServiceIdentity_UserAssignedIdentities_STATUS(gens map[string]gopter.Gen) {
	gens["ClientId"] = gen.PtrOf(gen.AlphaString())
	gens["PrincipalId"] = gen.PtrOf(gen.AlphaString())
}

func Test_SubResource_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 SubResource_STATUS via JSON returns original",
		prop.ForAll(RunJSONSerializationTestForSubResource_STATUS, SubResource_STATUSGenerator()))
	properties.TestingRun(t, gopter.NewFormatedReporter(true, 240, os.Stdout))
}

// RunJSONSerializationTestForSubResource_STATUS runs a test to see if a specific instance of SubResource_STATUS round trips to JSON and back losslessly
func RunJSONSerializationTestForSubResource_STATUS(subject SubResource_STATUS) string {
	// Serialize to JSON
	bin, err := json.Marshal(subject)
	if err != nil {
		return err.Error()
	}

	// Deserialize back into memory
	var actual SubResource_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 SubResource_STATUS instances for property testing - lazily instantiated by SubResource_STATUSGenerator()
var subResource_STATUSGenerator gopter.Gen

// SubResource_STATUSGenerator returns a generator of SubResource_STATUS instances for property testing.
func SubResource_STATUSGenerator() gopter.Gen {
	if subResource_STATUSGenerator != nil {
		return subResource_STATUSGenerator
	}

	generators := make(map[string]gopter.Gen)
	AddIndependentPropertyGeneratorsForSubResource_STATUS(generators)
	subResource_STATUSGenerator = gen.Struct(reflect.TypeOf(SubResource_STATUS{}), generators)

	return subResource_STATUSGenerator
}

// AddIndependentPropertyGeneratorsForSubResource_STATUS is a factory method for creating gopter generators
func AddIndependentPropertyGeneratorsForSubResource_STATUS(gens map[string]gopter.Gen) {
	gens["Id"] = gen.PtrOf(gen.AlphaString())
}
