diff --git a/openapi3/management-noEnums.yaml b/openapi3/management-noEnums.yaml index 77dbe1659..da7722bac 100644 --- a/openapi3/management-noEnums.yaml +++ b/openapi3/management-noEnums.yaml @@ -29,6 +29,10 @@ servers: - okta.com - oktapreview.com - okta-emea.com + - okta-gov.com + - okta.mil + - okta-miltest.com + - trex-govcloud.com default: okta.com description: The okta domain of your organization. - url: https://{customDomain} diff --git a/openapi3/management.yaml b/openapi3/management.yaml index 35f12178f..536a1e636 100644 --- a/openapi3/management.yaml +++ b/openapi3/management.yaml @@ -20,7 +20,7 @@ servers: variables: yourOktaDomain: default: subdomain.okta.com - description: The domain of your organization. This can be a provided subdomain of an official okta domain (okta.com, oktapreview.com, etc) or one of your configured custom domains. + description: The domain of your organization. This can be a provided subdomain of an official okta domain (okta.com, oktapreview.com, okta-gov.com, okta.mil, okta-miltest.com, trex-govcloud.com, etc) or one of your configured custom domains. tags: - name: AgentPools x-displayName: Agent Pools diff --git a/openapi3/templates/Configuration.mustache b/openapi3/templates/Configuration.mustache index 5dabb131c..3bc81fce4 100644 --- a/openapi3/templates/Configuration.mustache +++ b/openapi3/templates/Configuration.mustache @@ -275,7 +275,11 @@ namespace {{packageName}}.Client if (configuration.OktaDomain.IndexOf("-admin.okta.com", StringComparison.OrdinalIgnoreCase) >= 0 || configuration.OktaDomain.IndexOf("-admin.oktapreview.com", StringComparison.OrdinalIgnoreCase) >= 0 || - configuration.OktaDomain.IndexOf("-admin.okta-emea.com", StringComparison.OrdinalIgnoreCase) >= 0) + configuration.OktaDomain.IndexOf("-admin.okta-emea.com", StringComparison.OrdinalIgnoreCase) >= 0 || + configuration.OktaDomain.IndexOf("-admin.okta-gov.com", StringComparison.OrdinalIgnoreCase) >= 0 || + configuration.OktaDomain.IndexOf("-admin.okta.mil", StringComparison.OrdinalIgnoreCase) >= 0 || + configuration.OktaDomain.IndexOf("-admin.okta-miltest.com", StringComparison.OrdinalIgnoreCase) >= 0 || + configuration.OktaDomain.IndexOf("-admin.trex-govcloud.com", StringComparison.OrdinalIgnoreCase) >= 0) { throw new ArgumentNullException(nameof(configuration.OktaDomain), $"Your Okta domain should not contain -admin. Current value: {configuration.OktaDomain}. You can copy your domain from the Okta Developer Console. Follow these instructions to find it: https://bit.ly/finding-okta-domain"); diff --git a/src/Okta.Sdk.UnitTest/Client/OktaConfigurationShould.cs b/src/Okta.Sdk.UnitTest/Client/OktaConfigurationShould.cs index 6cca8ad39..1018d34fd 100644 --- a/src/Okta.Sdk.UnitTest/Client/OktaConfigurationShould.cs +++ b/src/Okta.Sdk.UnitTest/Client/OktaConfigurationShould.cs @@ -48,6 +48,10 @@ public void FailIfOktaDomainIsNotDefined(string oktaDomain) [InlineData("https://foo-admin.okta.com")] [InlineData("https://foo-admin.oktapreview.com")] [InlineData("https://https://foo-admin.okta-emea.com")] + [InlineData("https://foo-admin.okta-gov.com")] + [InlineData("https://foo-admin.okta.mil")] + [InlineData("https://foo-admin.okta-miltest.com")] + [InlineData("https://foo-admin.trex-govcloud.com")] public void FailIfOktaDomainContainsAdminKeyword(string oktaDomain) { var configuration = new Configuration(); @@ -126,6 +130,21 @@ public void NotFailIfOktaDomainIsNotStartingWithHttpsAndDisableHttpsCheckIsTrue( action.Should().NotThrow(); } + [Theory] + [InlineData("https://myOktaDomain.okta-gov.com")] + [InlineData("https://myOktaDomain.okta.mil")] + [InlineData("https://myOktaDomain.okta-miltest.com")] + [InlineData("https://myOktaDomain.trex-govcloud.com")] + public void NotFailForValidNewOktaDomains(string oktaDomain) + { + var configuration = new Configuration(); + configuration.OktaDomain = oktaDomain; + configuration.Token = "foo"; + + Action action = () => Configuration.Validate(configuration); + action.Should().NotThrow(); + } + [Theory] [InlineData(null)] [InlineData("")] diff --git a/src/Okta.Sdk/Client/Configuration.cs b/src/Okta.Sdk/Client/Configuration.cs index dfcd76c55..3d751213a 100644 --- a/src/Okta.Sdk/Client/Configuration.cs +++ b/src/Okta.Sdk/Client/Configuration.cs @@ -275,7 +275,11 @@ public static void Validate(IReadableConfiguration configuration) if (configuration.OktaDomain.IndexOf("-admin.okta.com", StringComparison.OrdinalIgnoreCase) >= 0 || configuration.OktaDomain.IndexOf("-admin.oktapreview.com", StringComparison.OrdinalIgnoreCase) >= 0 || - configuration.OktaDomain.IndexOf("-admin.okta-emea.com", StringComparison.OrdinalIgnoreCase) >= 0) + configuration.OktaDomain.IndexOf("-admin.okta-emea.com", StringComparison.OrdinalIgnoreCase) >= 0 || + configuration.OktaDomain.IndexOf("-admin.okta-gov.com", StringComparison.OrdinalIgnoreCase) >= 0 || + configuration.OktaDomain.IndexOf("-admin.okta.mil", StringComparison.OrdinalIgnoreCase) >= 0 || + configuration.OktaDomain.IndexOf("-admin.okta-miltest.com", StringComparison.OrdinalIgnoreCase) >= 0 || + configuration.OktaDomain.IndexOf("-admin.trex-govcloud.com", StringComparison.OrdinalIgnoreCase) >= 0) { throw new ArgumentNullException(nameof(configuration.OktaDomain), $"Your Okta domain should not contain -admin. Current value: {configuration.OktaDomain}. You can copy your domain from the Okta Developer Console. Follow these instructions to find it: https://bit.ly/finding-okta-domain"); @@ -403,7 +407,7 @@ public Configuration() "variables", new Dictionary { { "yourOktaDomain", new Dictionary { - {"description", "The domain of your organization. This can be a provided subdomain of an official okta domain (okta.com, oktapreview.com, etc) or one of your configured custom domains."}, + {"description", "The domain of your organization. This can be a provided subdomain of an official okta domain (okta.com, oktapreview.com, okta-gov.com, okta.mil, okta-miltest.com, trex-govcloud.com, etc) or one of your configured custom domains."}, {"default_value", "subdomain.okta.com"}, } }