diff --git a/internal/broker/plans.go b/internal/broker/plans.go index 47786ab9f2..c9ec668b32 100644 --- a/internal/broker/plans.go +++ b/internal/broker/plans.go @@ -93,11 +93,27 @@ func AzureRegions(euRestrictedAccess bool) []string { "westeurope", "japaneast", "southeastasia", + "australiaeast", } } -func AzureRegionsDisplay() map[string]string { - return nil +func AzureRegionsDisplay(euRestrictedAccess bool) map[string]string { + if euRestrictedAccess { + return map[string]string{ + "switzerlandnorth": "switzerlandnorth (Switzerland, Zurich)", + } + } + return map[string]string{ + "eastus": "eastus (US East, VA)", + "centralus": "centralus (US Central, IA)", + "westus2": "westus2 (US West, WA)", + "uksouth": "uksouth (UK South, London)", + "northeurope": "northeurope (Europe, Ireland)", + "westeurope": "westeurope (Europe, Netherlands)", + "japaneast": "japaneast (Japan, Tokyo)", + "southeastasia": "southeastasia (Asia Pacific, Singapore)", + "australiaeast": "australiaeast (Australia, Sydney)", + } } func GcpRegions() []string { @@ -339,7 +355,7 @@ func AzureLiteSchema(machineTypesDisplay, regionsDisplay map[string]string, mach return createSchemaWithProperties(properties, additionalParams, update, requiredSchemaProperties()) } -func FreemiumSchema(provider internal.CloudProvider, additionalParams, update bool, euAccessRestricted bool) *map[string]interface{} { +func FreemiumSchema(provider internal.CloudProvider, regionsDisplay map[string]string, additionalParams, update bool, euAccessRestricted bool) *map[string]interface{} { if update && !additionalParams { return empty() } @@ -356,9 +372,10 @@ func FreemiumSchema(provider internal.CloudProvider, additionalParams, update bo properties := ProvisioningProperties{ Name: NameProperty(), Region: &Type{ - Type: "string", - Enum: ToInterfaceSlice(regions), - MinLength: 1, + Type: "string", + Enum: ToInterfaceSlice(regions), + MinLength: 1, + EnumDisplayName: regionsDisplay, }, } if !update { @@ -448,7 +465,7 @@ func Plans(plans PlansConfig, provider internal.CloudProvider, includeAdditional awsRegionsDisplay := AWSRegionsDisplay() azureMachinesNames := AzureMachinesNames() azureMachinesDisplay := AzureMachinesDisplay() - azureRegionsDisplay := AzureRegionsDisplay() + azureRegionsDisplay := AzureRegionsDisplay(euAccessRestricted) azureLiteMachinesNames := AzureLiteMachinesNames() azureLiteMachinesDisplay := AzureLiteMachinesDisplay() gcpMachinesNames := GcpMachinesNames() @@ -487,7 +504,7 @@ func Plans(plans PlansConfig, provider internal.CloudProvider, includeAdditional // awsHASchema := AWSHASchema(awsMachinesDisplay, awsMachines, includeAdditionalParamsInSchema, false) azureSchema := AzureSchema(azureMachinesDisplay, azureRegionsDisplay, azureMachinesNames, includeAdditionalParamsInSchema, false, euAccessRestricted) azureLiteSchema := AzureLiteSchema(azureLiteMachinesDisplay, azureRegionsDisplay, azureLiteMachinesNames, includeAdditionalParamsInSchema, false, euAccessRestricted) - freemiumSchema := FreemiumSchema(provider, includeAdditionalParamsInSchema, false, euAccessRestricted) + freemiumSchema := FreemiumSchema(provider, azureRegionsDisplay, includeAdditionalParamsInSchema, false, euAccessRestricted) gcpSchema := GCPSchema(gcpMachinesDisplay, gcpRegionsDisplay, gcpMachinesNames, includeAdditionalParamsInSchema, false) ownClusterSchema := OwnClusterSchema(false) previewCatalogSchema := PreviewSchema(awsMachinesDisplay, awsRegionsDisplay, awsMachineNames, includeAdditionalParamsInSchema, false, euAccessRestricted) @@ -500,7 +517,7 @@ func Plans(plans PlansConfig, provider internal.CloudProvider, includeAdditional SapConvergedCloudPlanID: defaultServicePlan(SapConvergedCloudPlanID, SapConvergedCloudPlanName, plans, sapConvergedCloudSchema, SapConvergedCloudSchema(sapConvergedCloudMachinesDisplay, sapConvergedCloudRegionsDisplay, sapConvergedCloudMachinesNames, includeAdditionalParamsInSchema, true)), AzurePlanID: defaultServicePlan(AzurePlanID, AzurePlanName, plans, azureSchema, AzureSchema(azureMachinesDisplay, azureRegionsDisplay, azureMachinesNames, includeAdditionalParamsInSchema, true, euAccessRestricted)), AzureLitePlanID: defaultServicePlan(AzureLitePlanID, AzureLitePlanName, plans, azureLiteSchema, AzureLiteSchema(azureLiteMachinesDisplay, azureRegionsDisplay, azureLiteMachinesNames, includeAdditionalParamsInSchema, true, euAccessRestricted)), - FreemiumPlanID: defaultServicePlan(FreemiumPlanID, FreemiumPlanName, plans, freemiumSchema, FreemiumSchema(provider, includeAdditionalParamsInSchema, true, euAccessRestricted)), + FreemiumPlanID: defaultServicePlan(FreemiumPlanID, FreemiumPlanName, plans, freemiumSchema, FreemiumSchema(provider, azureRegionsDisplay, includeAdditionalParamsInSchema, true, euAccessRestricted)), TrialPlanID: defaultServicePlan(TrialPlanID, TrialPlanName, plans, trialSchema, TrialSchema(includeAdditionalParamsInSchema, true)), OwnClusterPlanID: defaultServicePlan(OwnClusterPlanID, OwnClusterPlanName, plans, ownClusterSchema, OwnClusterSchema(true)), PreviewPlanID: defaultServicePlan(PreviewPlanID, PreviewPlanName, plans, previewCatalogSchema, AWSSchema(awsMachinesDisplay, awsRegionsDisplay, awsMachineNames, includeAdditionalParamsInSchema, true, euAccessRestricted)), diff --git a/internal/broker/plans_test.go b/internal/broker/plans_test.go index 128ae71d42..1385e49f74 100644 --- a/internal/broker/plans_test.go +++ b/internal/broker/plans_test.go @@ -79,6 +79,7 @@ func TestSchemaGenerator(t *testing.T) { }, machineTypes: AzureMachinesNames(), machineTypesDisplay: AzureMachinesDisplay(), + regionDisplay: AzureRegionsDisplay(false), path: "azure", file: "azure-schema.json", updateFile: "update-azure-schema.json", @@ -92,6 +93,7 @@ func TestSchemaGenerator(t *testing.T) { }, machineTypes: AzureMachinesNames(), machineTypesDisplay: AzureMachinesDisplay(), + regionDisplay: AzureRegionsDisplay(true), path: "azure", file: "azure-schema-eu.json", updateFile: "update-azure-schema.json", @@ -105,6 +107,7 @@ func TestSchemaGenerator(t *testing.T) { }, machineTypes: AzureLiteMachinesNames(), machineTypesDisplay: AzureLiteMachinesDisplay(), + regionDisplay: AzureRegionsDisplay(false), path: "azure", file: "azure-lite-schema.json", updateFile: "update-azure-lite-schema.json", @@ -118,6 +121,7 @@ func TestSchemaGenerator(t *testing.T) { }, machineTypes: AzureLiteMachinesNames(), machineTypesDisplay: AzureLiteMachinesDisplay(), + regionDisplay: AzureRegionsDisplay(true), path: "azure", file: "azure-lite-schema-eu.json", updateFile: "update-azure-lite-schema.json", @@ -127,9 +131,10 @@ func TestSchemaGenerator(t *testing.T) { { name: "Freemium schema is correct", generator: func(machinesDisplay, regionsDisplay map[string]string, machines []string, additionalParams, update bool) *map[string]interface{} { - return FreemiumSchema(internal.Azure, additionalParams, update, false) + return FreemiumSchema(internal.Azure, regionsDisplay, additionalParams, update, false) }, machineTypes: []string{}, + regionDisplay: AzureRegionsDisplay(false), path: "azure", file: "free-azure-schema.json", updateFile: "update-free-azure-schema.json", @@ -139,7 +144,7 @@ func TestSchemaGenerator(t *testing.T) { { name: " Freemium schema is correct", generator: func(machinesDisplay, regionsDisplay map[string]string, machines []string, additionalParams, update bool) *map[string]interface{} { - return FreemiumSchema(internal.AWS, additionalParams, update, false) + return FreemiumSchema(internal.AWS, regionsDisplay, additionalParams, update, false) }, machineTypes: []string{}, path: "aws", @@ -151,9 +156,10 @@ func TestSchemaGenerator(t *testing.T) { { name: "Freemium schema with EU access restriction is correct", generator: func(machinesDisplay, regionsDisplay map[string]string, machines []string, additionalParams, update bool) *map[string]interface{} { - return FreemiumSchema(internal.Azure, additionalParams, update, true) + return FreemiumSchema(internal.Azure, regionsDisplay, additionalParams, update, true) }, machineTypes: []string{}, + regionDisplay: AzureRegionsDisplay(true), path: "azure", file: "free-azure-schema-eu.json", updateFile: "update-free-azure-schema.json", @@ -163,7 +169,7 @@ func TestSchemaGenerator(t *testing.T) { { name: "Freemium schema with EU access restriction is correct", generator: func(machinesDisplay, regionsDisplay map[string]string, machines []string, additionalParams, update bool) *map[string]interface{} { - return FreemiumSchema(internal.AWS, additionalParams, update, true) + return FreemiumSchema(internal.AWS, regionsDisplay, additionalParams, update, true) }, machineTypes: []string{}, path: "aws", diff --git a/internal/broker/testdata/azure/azure-lite-schema-additional-params-eu.json b/internal/broker/testdata/azure/azure-lite-schema-additional-params-eu.json index ab710b9b09..bd42293964 100644 --- a/internal/broker/testdata/azure/azure-lite-schema-additional-params-eu.json +++ b/internal/broker/testdata/azure/azure-lite-schema-additional-params-eu.json @@ -193,6 +193,9 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "switzerlandnorth": "switzerlandnorth (Switzerland, Zurich)" + }, "enum": [ "switzerlandnorth" ], diff --git a/internal/broker/testdata/azure/azure-lite-schema-additional-params.json b/internal/broker/testdata/azure/azure-lite-schema-additional-params.json index ab485860d5..41d588af6e 100644 --- a/internal/broker/testdata/azure/azure-lite-schema-additional-params.json +++ b/internal/broker/testdata/azure/azure-lite-schema-additional-params.json @@ -193,6 +193,17 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "eastus": "eastus (US East, VA)", + "centralus": "centralus (US Central, IA)", + "westus2": "westus2 (US West, WA)", + "uksouth": "uksouth (UK South, London)", + "northeurope": "northeurope (Europe, Ireland)", + "westeurope": "westeurope (Europe, Netherlands)", + "japaneast": "japaneast (Japan, Tokyo)", + "southeastasia": "southeastasia (Asia Pacific, Singapore)", + "australiaeast": "australiaeast (Australia, Sydney)" + }, "enum": [ "eastus", "centralus", @@ -201,7 +212,8 @@ "northeurope", "westeurope", "japaneast", - "southeastasia" + "southeastasia", + "australiaeast" ], "minLength": 1, "type": "string" diff --git a/internal/broker/testdata/azure/azure-lite-schema-eu.json b/internal/broker/testdata/azure/azure-lite-schema-eu.json index 87fd6c95d9..7b11cb46bc 100644 --- a/internal/broker/testdata/azure/azure-lite-schema-eu.json +++ b/internal/broker/testdata/azure/azure-lite-schema-eu.json @@ -146,6 +146,9 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "switzerlandnorth": "switzerlandnorth (Switzerland, Zurich)" + }, "enum": [ "switzerlandnorth" ], diff --git a/internal/broker/testdata/azure/azure-lite-schema.json b/internal/broker/testdata/azure/azure-lite-schema.json index 4b0a1184a5..276ab055be 100644 --- a/internal/broker/testdata/azure/azure-lite-schema.json +++ b/internal/broker/testdata/azure/azure-lite-schema.json @@ -146,6 +146,17 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "eastus": "eastus (US East, VA)", + "centralus": "centralus (US Central, IA)", + "westus2": "westus2 (US West, WA)", + "uksouth": "uksouth (UK South, London)", + "northeurope": "northeurope (Europe, Ireland)", + "westeurope": "westeurope (Europe, Netherlands)", + "japaneast": "japaneast (Japan, Tokyo)", + "southeastasia": "southeastasia (Asia Pacific, Singapore)", + "australiaeast": "australiaeast (Australia, Sydney)" + }, "enum": [ "eastus", "centralus", @@ -154,7 +165,8 @@ "northeurope", "westeurope", "japaneast", - "southeastasia" + "southeastasia", + "australiaeast" ], "minLength": 1, "type": "string" diff --git a/internal/broker/testdata/azure/azure-schema-additional-params-eu.json b/internal/broker/testdata/azure/azure-schema-additional-params-eu.json index 246ed6f1bc..f32be8c706 100644 --- a/internal/broker/testdata/azure/azure-schema-additional-params-eu.json +++ b/internal/broker/testdata/azure/azure-schema-additional-params-eu.json @@ -215,6 +215,9 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "switzerlandnorth": "switzerlandnorth (Switzerland, Zurich)" + }, "enum": [ "switzerlandnorth" ], diff --git a/internal/broker/testdata/azure/azure-schema-additional-params.json b/internal/broker/testdata/azure/azure-schema-additional-params.json index ea2c5650d0..0834ec0516 100644 --- a/internal/broker/testdata/azure/azure-schema-additional-params.json +++ b/internal/broker/testdata/azure/azure-schema-additional-params.json @@ -215,6 +215,17 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "eastus": "eastus (US East, VA)", + "centralus": "centralus (US Central, IA)", + "westus2": "westus2 (US West, WA)", + "uksouth": "uksouth (UK South, London)", + "northeurope": "northeurope (Europe, Ireland)", + "westeurope": "westeurope (Europe, Netherlands)", + "japaneast": "japaneast (Japan, Tokyo)", + "southeastasia": "southeastasia (Asia Pacific, Singapore)", + "australiaeast": "australiaeast (Australia, Sydney)" + }, "enum": [ "eastus", "centralus", @@ -223,7 +234,8 @@ "northeurope", "westeurope", "japaneast", - "southeastasia" + "southeastasia", + "australiaeast" ], "minLength": 1, "type": "string" diff --git a/internal/broker/testdata/azure/azure-schema-eu.json b/internal/broker/testdata/azure/azure-schema-eu.json index 630364c236..26f8e560fa 100644 --- a/internal/broker/testdata/azure/azure-schema-eu.json +++ b/internal/broker/testdata/azure/azure-schema-eu.json @@ -168,6 +168,9 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "switzerlandnorth": "switzerlandnorth (Switzerland, Zurich)" + }, "enum": [ "switzerlandnorth" ], diff --git a/internal/broker/testdata/azure/azure-schema.json b/internal/broker/testdata/azure/azure-schema.json index 40a7467912..952baff55e 100644 --- a/internal/broker/testdata/azure/azure-schema.json +++ b/internal/broker/testdata/azure/azure-schema.json @@ -168,6 +168,17 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "eastus": "eastus (US East, VA)", + "centralus": "centralus (US Central, IA)", + "westus2": "westus2 (US West, WA)", + "uksouth": "uksouth (UK South, London)", + "northeurope": "northeurope (Europe, Ireland)", + "westeurope": "westeurope (Europe, Netherlands)", + "japaneast": "japaneast (Japan, Tokyo)", + "southeastasia": "southeastasia (Asia Pacific, Singapore)", + "australiaeast": "australiaeast (Australia, Sydney)" + }, "enum": [ "eastus", "centralus", @@ -176,7 +187,8 @@ "northeurope", "westeurope", "japaneast", - "southeastasia" + "southeastasia", + "australiaeast" ], "minLength": 1, "type": "string" diff --git a/internal/broker/testdata/azure/free-azure-schema-additional-params-eu.json b/internal/broker/testdata/azure/free-azure-schema-additional-params-eu.json index 2a79f96cff..f007460205 100644 --- a/internal/broker/testdata/azure/free-azure-schema-additional-params-eu.json +++ b/internal/broker/testdata/azure/free-azure-schema-additional-params-eu.json @@ -166,6 +166,9 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "switzerlandnorth": "switzerlandnorth (Switzerland, Zurich)" + }, "enum": [ "switzerlandnorth" ], diff --git a/internal/broker/testdata/azure/free-azure-schema-additional-params.json b/internal/broker/testdata/azure/free-azure-schema-additional-params.json index d757e5df70..7447a694fd 100644 --- a/internal/broker/testdata/azure/free-azure-schema-additional-params.json +++ b/internal/broker/testdata/azure/free-azure-schema-additional-params.json @@ -166,6 +166,17 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "eastus": "eastus (US East, VA)", + "centralus": "centralus (US Central, IA)", + "westus2": "westus2 (US West, WA)", + "uksouth": "uksouth (UK South, London)", + "northeurope": "northeurope (Europe, Ireland)", + "westeurope": "westeurope (Europe, Netherlands)", + "japaneast": "japaneast (Japan, Tokyo)", + "southeastasia": "southeastasia (Asia Pacific, Singapore)", + "australiaeast": "australiaeast (Australia, Sydney)" + }, "enum": [ "eastus", "centralus", @@ -174,7 +185,8 @@ "northeurope", "westeurope", "japaneast", - "southeastasia" + "southeastasia", + "australiaeast" ], "minLength": 1, "type": "string" diff --git a/internal/broker/testdata/azure/free-azure-schema-eu.json b/internal/broker/testdata/azure/free-azure-schema-eu.json index 2702519bd1..b6fe5a2192 100644 --- a/internal/broker/testdata/azure/free-azure-schema-eu.json +++ b/internal/broker/testdata/azure/free-azure-schema-eu.json @@ -119,6 +119,9 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "switzerlandnorth": "switzerlandnorth (Switzerland, Zurich)" + }, "enum": [ "switzerlandnorth" ], diff --git a/internal/broker/testdata/azure/free-azure-schema.json b/internal/broker/testdata/azure/free-azure-schema.json index 086af16184..678b539756 100644 --- a/internal/broker/testdata/azure/free-azure-schema.json +++ b/internal/broker/testdata/azure/free-azure-schema.json @@ -119,6 +119,17 @@ "type": "object" }, "region": { + "_enumDisplayName": { + "eastus": "eastus (US East, VA)", + "centralus": "centralus (US Central, IA)", + "westus2": "westus2 (US West, WA)", + "uksouth": "uksouth (UK South, London)", + "northeurope": "northeurope (Europe, Ireland)", + "westeurope": "westeurope (Europe, Netherlands)", + "japaneast": "japaneast (Japan, Tokyo)", + "southeastasia": "southeastasia (Asia Pacific, Singapore)", + "australiaeast": "australiaeast (Australia, Sydney)" + }, "enum": [ "eastus", "centralus", @@ -127,7 +138,8 @@ "northeurope", "westeurope", "japaneast", - "southeastasia" + "southeastasia", + "australiaeast" ], "minLength": 1, "type": "string"