From e01484245df7b7e3f5c98d52a1ee8854f6ac635c Mon Sep 17 00:00:00 2001 From: Hari K Arla Date: Thu, 30 Oct 2025 21:46:38 +0530 Subject: [PATCH] feat(IAM Identity): add few new account settings Signed-off-by: Hari K Arla --- .../iam_identity/v1/IamIdentityExamples.java | 101 +++- .../iam_identity/v1/IamIdentity.java | 16 +- ...countSettingsAssignedTemplatesSection.java | 89 +-- .../v1/model/AccountSettingsResponse.java | 86 +-- .../AccountSettingsTemplateResponse.java | 6 +- ...tesAccountSettingsRestrictUserDomains.java | 53 ++ .../CreateAccountSettingsTemplateOptions.java | 10 +- ...AccountSettingsTemplateVersionOptions.java | 10 +- .../v1/model/TemplateAccountSettings.java | 513 ++++++++++++++++++ ...ateAccountSettingsRestrictUserDomains.java | 140 +++++ .../model/UpdateAccountSettingsOptions.java | 200 +++---- ...AccountSettingsTemplateVersionOptions.java | 10 +- .../iam_identity/v1/IamIdentityIT.java | 109 +++- .../iam_identity/v1/IamIdentityTest.java | 105 +++- ...tSettingsAssignedTemplatesSectionTest.java | 5 +- .../v1/model/AccountSettingsResponseTest.java | 4 +- .../AccountSettingsTemplateListTest.java | 4 +- .../AccountSettingsTemplateResponseTest.java | 4 +- ...ccountSettingsRestrictUserDomainsTest.java | 39 ++ ...ateAccountSettingsTemplateOptionsTest.java | 50 +- ...untSettingsTemplateVersionOptionsTest.java | 50 +- .../EffectiveAccountSettingsResponseTest.java | 1 + ...ccountSettingsRestrictUserDomainsTest.java | 57 ++ .../v1/model/TemplateAccountSettingsTest.java | 103 ++++ .../UpdateAccountSettingsOptionsTest.java | 26 +- ...untSettingsTemplateVersionOptionsTest.java | 50 +- 26 files changed, 1511 insertions(+), 330 deletions(-) create mode 100644 modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AssignedTemplatesAccountSettingsRestrictUserDomains.java create mode 100644 modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettings.java create mode 100644 modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsRestrictUserDomains.java create mode 100644 modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AssignedTemplatesAccountSettingsRestrictUserDomainsTest.java create mode 100644 modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsRestrictUserDomainsTest.java create mode 100644 modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsTest.java diff --git a/modules/examples/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityExamples.java b/modules/examples/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityExamples.java index f17a3542338..71a733b2a98 100644 --- a/modules/examples/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityExamples.java +++ b/modules/examples/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityExamples.java @@ -1697,16 +1697,41 @@ public static void main(String[] args) throws Exception { // begin-create_account_settings_template - AccountSettingsComponent accountSettings = new AccountSettingsComponent.Builder() - .mfa("LEVEL1") - .systemAccessTokenExpirationInSeconds("3000") + UserMfa userMfaModel = new UserMfa.Builder() + .iamId(iamId) + .mfa("NONE") + .build(); + + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@ibm.com")) + .restrictInvitation(false) + .build(); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(false) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() + .restrictCreateServiceId("NOT_SET") + .restrictCreatePlatformApikey("NOT_SET") + .mfa("NONE") + .userMfa(java.util.Arrays.asList(userMfaModel)) + .sessionExpirationInSeconds("86400") + .sessionInvalidationInSeconds("7200") + .maxSessionsPerIdentity("12") + .systemAccessTokenExpirationInSeconds("3600") + .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) .build(); CreateAccountSettingsTemplateOptions createOptions = new CreateAccountSettingsTemplateOptions.Builder() .accountId(enterpriseAccountId) .name(accountSettingsTemplateName) .description("IAM enterprise account settings template example") - .accountSettings(accountSettings) + .accountSettings(templateAccountSettingsModel) .build(); Response createResponse = identityservice.createAccountSettingsTemplate(createOptions).execute(); @@ -1776,10 +1801,36 @@ public static void main(String[] args) throws Exception { // begin-update_account_settings_template_version - AccountSettingsComponent accountSettings = new AccountSettingsComponent.Builder() + UserMfa userMfaModel = new UserMfa.Builder() + .iamId(iamId) + .mfa("LEVEL1") + .build(); + + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) + .restrictInvitation(false) + .build(); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(false) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() + .restrictCreateServiceId("NOT_RESTRICTED") + .restrictCreatePlatformApikey("RESTRICTED") .mfa("LEVEL1") - .systemAccessTokenExpirationInSeconds("3000") + .userMfa(java.util.Arrays.asList(userMfaModel)) + .sessionExpirationInSeconds("86400") + .sessionInvalidationInSeconds("7200") + .maxSessionsPerIdentity("10") + .systemAccessTokenExpirationInSeconds("3600") + .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("NOT_RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) .build(); + UpdateAccountSettingsTemplateVersionOptions updateOptions = new UpdateAccountSettingsTemplateVersionOptions.Builder() .accountId(enterpriseAccountId) .templateId(accountSettingsTemplateId) @@ -1787,7 +1838,7 @@ public static void main(String[] args) throws Exception { .ifMatch(accountSettingsTemplateEtag) .name(accountSettingsTemplateName) .description("IAM enterprise account settings template example - updated") - .accountSettings(accountSettings) + .accountSettings(templateAccountSettingsModel) .build(); Response updateResponse = identityservice.updateAccountSettingsTemplateVersion(updateOptions).execute(); @@ -1905,18 +1956,42 @@ public static void main(String[] args) throws Exception { // begin-create_account_settings_template_version - AccountSettingsComponent accountSettings = new AccountSettingsComponent.Builder() - .mfa("LEVEL1") - .systemAccessTokenExpirationInSeconds("2600") - .restrictCreatePlatformApikey("RESTRICTED") - .restrictCreateServiceId("RESTRICTED") + UserMfa userMfaModel = new UserMfa.Builder() + .iamId(iamId) + .mfa("NONE") .build(); + + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@ibm.com")) + .restrictInvitation(false) + .build(); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(false) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() + .restrictCreateServiceId("NOT_SET") + .restrictCreatePlatformApikey("NOT_SET") + .mfa("NONE") + .userMfa(java.util.Arrays.asList(userMfaModel)) + .sessionExpirationInSeconds("86400") + .sessionInvalidationInSeconds("7200") + .maxSessionsPerIdentity("12") + .systemAccessTokenExpirationInSeconds("3600") + .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) + .build(); + CreateAccountSettingsTemplateVersionOptions createOptions = new CreateAccountSettingsTemplateVersionOptions.Builder() .accountId(enterpriseAccountId) .templateId(accountSettingsTemplateId) .name(accountSettingsTemplateName) .description("IAM enterprise account settings template example - new version") - .accountSettings(accountSettings) + .accountSettings(templateAccountSettingsModel) .build(); Response createResponse = identityservice.createAccountSettingsTemplateVersion(createOptions).execute(); diff --git a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentity.java b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentity.java index 739aa2913ab..a3009619ada 100644 --- a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentity.java +++ b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentity.java @@ -1681,18 +1681,15 @@ public ServiceCall updateAccountSettings(UpdateAccountS if (updateAccountSettingsOptions.restrictCreatePlatformApikey() != null) { contentJson.addProperty("restrict_create_platform_apikey", updateAccountSettingsOptions.restrictCreatePlatformApikey()); } - if (updateAccountSettingsOptions.restrictUserListVisibility() != null) { - contentJson.addProperty("restrict_user_list_visibility", updateAccountSettingsOptions.restrictUserListVisibility()); - } - if (updateAccountSettingsOptions.restrictUserDomains() != null) { - contentJson.add("restrict_user_domains", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(updateAccountSettingsOptions.restrictUserDomains())); - } if (updateAccountSettingsOptions.allowedIpAddresses() != null) { contentJson.addProperty("allowed_ip_addresses", updateAccountSettingsOptions.allowedIpAddresses()); } if (updateAccountSettingsOptions.mfa() != null) { contentJson.addProperty("mfa", updateAccountSettingsOptions.mfa()); } + if (updateAccountSettingsOptions.userMfa() != null) { + contentJson.add("user_mfa", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(updateAccountSettingsOptions.userMfa())); + } if (updateAccountSettingsOptions.sessionExpirationInSeconds() != null) { contentJson.addProperty("session_expiration_in_seconds", updateAccountSettingsOptions.sessionExpirationInSeconds()); } @@ -1708,8 +1705,11 @@ public ServiceCall updateAccountSettings(UpdateAccountS if (updateAccountSettingsOptions.systemRefreshTokenExpirationInSeconds() != null) { contentJson.addProperty("system_refresh_token_expiration_in_seconds", updateAccountSettingsOptions.systemRefreshTokenExpirationInSeconds()); } - if (updateAccountSettingsOptions.userMfa() != null) { - contentJson.add("user_mfa", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(updateAccountSettingsOptions.userMfa())); + if (updateAccountSettingsOptions.restrictUserListVisibility() != null) { + contentJson.addProperty("restrict_user_list_visibility", updateAccountSettingsOptions.restrictUserListVisibility()); + } + if (updateAccountSettingsOptions.restrictUserDomains() != null) { + contentJson.add("restrict_user_domains", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(updateAccountSettingsOptions.restrictUserDomains())); } builder.bodyJson(contentJson); ResponseConverter responseConverter = diff --git a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsAssignedTemplatesSection.java b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsAssignedTemplatesSection.java index 24b48a3dc60..3d1680e06a2 100644 --- a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsAssignedTemplatesSection.java +++ b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsAssignedTemplatesSection.java @@ -19,7 +19,7 @@ import com.ibm.cloud.sdk.core.service.model.GenericModel; /** - * Response body format for Account Settings REST requests. + * Input body parameters for the Account Settings REST request. */ public class AccountSettingsAssignedTemplatesSection extends GenericModel { @@ -55,19 +55,6 @@ public interface RestrictCreatePlatformApikey { String NOT_SET = "NOT_SET"; } - /** - * Defines whether or not user visibility is access controlled. Valid values: - * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to - * the account, or descendants of those users based on the classic infrastructure hierarchy - * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console. - */ - public interface RestrictUserListVisibility { - /** NOT_RESTRICTED. */ - String NOT_RESTRICTED = "NOT_RESTRICTED"; - /** RESTRICTED. */ - String RESTRICTED = "RESTRICTED"; - } - /** * MFA trait definitions as follows: * * NONE - No MFA trait set @@ -95,6 +82,22 @@ public interface Mfa { String LEVEL3 = "LEVEL3"; } + /** + * Defines whether or not user visibility is access controlled. Valid values: + * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to + * the account, or descendants of those users based on the classic infrastructure hierarchy + * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console + * * NOT_SET - to 'unset' a previous set value. + */ + public interface RestrictUserListVisibility { + /** RESTRICTED. */ + String RESTRICTED = "RESTRICTED"; + /** NOT_RESTRICTED. */ + String NOT_RESTRICTED = "NOT_RESTRICTED"; + /** NOT_SET. */ + String NOT_SET = "NOT_SET"; + } + @SerializedName("template_id") protected String templateId; @SerializedName("template_version") @@ -105,10 +108,6 @@ public interface Mfa { protected String restrictCreateServiceId; @SerializedName("restrict_create_platform_apikey") protected String restrictCreatePlatformApikey; - @SerializedName("restrict_user_list_visibility") - protected String restrictUserListVisibility; - @SerializedName("restrict_user_domains") - protected List restrictUserDomains; @SerializedName("allowed_ip_addresses") protected String allowedIpAddresses; protected String mfa; @@ -122,8 +121,12 @@ public interface Mfa { protected String systemAccessTokenExpirationInSeconds; @SerializedName("system_refresh_token_expiration_in_seconds") protected String systemRefreshTokenExpirationInSeconds; + @SerializedName("restrict_user_list_visibility") + protected String restrictUserListVisibility; @SerializedName("user_mfa") protected List userMfa; + @SerializedName("restrict_user_domains") + protected AssignedTemplatesAccountSettingsRestrictUserDomains restrictUserDomains; protected AccountSettingsAssignedTemplatesSection() { } @@ -190,32 +193,6 @@ public String getRestrictCreatePlatformApikey() { return restrictCreatePlatformApikey; } - /** - * Gets the restrictUserListVisibility. - * - * Defines whether or not user visibility is access controlled. Valid values: - * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to - * the account, or descendants of those users based on the classic infrastructure hierarchy - * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console. - * - * @return the restrictUserListVisibility - */ - public String getRestrictUserListVisibility() { - return restrictUserListVisibility; - } - - /** - * Gets the restrictUserDomains. - * - * Defines if account invitations are restricted to specified domains. To remove an entry for a realm_id, perform an - * update (PUT) request with only the realm_id set. - * - * @return the restrictUserDomains - */ - public List getRestrictUserDomains() { - return restrictUserDomains; - } - /** * Gets the allowedIpAddresses. * @@ -310,6 +287,21 @@ public String getSystemRefreshTokenExpirationInSeconds() { return systemRefreshTokenExpirationInSeconds; } + /** + * Gets the restrictUserListVisibility. + * + * Defines whether or not user visibility is access controlled. Valid values: + * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to + * the account, or descendants of those users based on the classic infrastructure hierarchy + * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console + * * NOT_SET - to 'unset' a previous set value. + * + * @return the restrictUserListVisibility + */ + public String getRestrictUserListVisibility() { + return restrictUserListVisibility; + } + /** * Gets the userMfa. * @@ -320,5 +312,14 @@ public String getSystemRefreshTokenExpirationInSeconds() { public List getUserMfa() { return userMfa; } + + /** + * Gets the restrictUserDomains. + * + * @return the restrictUserDomains + */ + public AssignedTemplatesAccountSettingsRestrictUserDomains getRestrictUserDomains() { + return restrictUserDomains; + } } diff --git a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsResponse.java b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsResponse.java index 0e7b7b16450..3c2a5fd86ab 100644 --- a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsResponse.java +++ b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsResponse.java @@ -55,19 +55,6 @@ public interface RestrictCreatePlatformApikey { String NOT_SET = "NOT_SET"; } - /** - * Defines whether or not user visibility is access controlled. Valid values: - * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to - * the account, or descendants of those users based on the classic infrastructure hierarchy - * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console. - */ - public interface RestrictUserListVisibility { - /** NOT_RESTRICTED. */ - String NOT_RESTRICTED = "NOT_RESTRICTED"; - /** RESTRICTED. */ - String RESTRICTED = "RESTRICTED"; - } - /** * MFA trait definitions as follows: * * NONE - No MFA trait set @@ -95,6 +82,19 @@ public interface Mfa { String LEVEL3 = "LEVEL3"; } + /** + * Defines whether or not user visibility is access controlled. Valid values: + * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to + * the account, or descendants of those users based on the classic infrastructure hierarchy + * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console. + */ + public interface RestrictUserListVisibility { + /** NOT_RESTRICTED. */ + String NOT_RESTRICTED = "NOT_RESTRICTED"; + /** RESTRICTED. */ + String RESTRICTED = "RESTRICTED"; + } + protected ResponseContext context; @SerializedName("account_id") protected String accountId; @@ -105,10 +105,6 @@ public interface Mfa { protected String restrictCreateServiceId; @SerializedName("restrict_create_platform_apikey") protected String restrictCreatePlatformApikey; - @SerializedName("restrict_user_list_visibility") - protected String restrictUserListVisibility; - @SerializedName("restrict_user_domains") - protected List restrictUserDomains; @SerializedName("allowed_ip_addresses") protected String allowedIpAddresses; protected String mfa; @@ -122,8 +118,12 @@ public interface Mfa { protected String systemAccessTokenExpirationInSeconds; @SerializedName("system_refresh_token_expiration_in_seconds") protected String systemRefreshTokenExpirationInSeconds; + @SerializedName("restrict_user_list_visibility") + protected String restrictUserListVisibility; @SerializedName("user_mfa") protected List userMfa; + @SerializedName("restrict_user_domains") + protected List restrictUserDomains; protected AccountSettingsResponse() { } @@ -201,32 +201,6 @@ public String getRestrictCreatePlatformApikey() { return restrictCreatePlatformApikey; } - /** - * Gets the restrictUserListVisibility. - * - * Defines whether or not user visibility is access controlled. Valid values: - * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to - * the account, or descendants of those users based on the classic infrastructure hierarchy - * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console. - * - * @return the restrictUserListVisibility - */ - public String getRestrictUserListVisibility() { - return restrictUserListVisibility; - } - - /** - * Gets the restrictUserDomains. - * - * Defines if account invitations are restricted to specified domains. To remove an entry for a realm_id, perform an - * update (PUT) request with only the realm_id set. - * - * @return the restrictUserDomains - */ - public List getRestrictUserDomains() { - return restrictUserDomains; - } - /** * Gets the allowedIpAddresses. * @@ -321,6 +295,20 @@ public String getSystemRefreshTokenExpirationInSeconds() { return systemRefreshTokenExpirationInSeconds; } + /** + * Gets the restrictUserListVisibility. + * + * Defines whether or not user visibility is access controlled. Valid values: + * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to + * the account, or descendants of those users based on the classic infrastructure hierarchy + * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console. + * + * @return the restrictUserListVisibility + */ + public String getRestrictUserListVisibility() { + return restrictUserListVisibility; + } + /** * Gets the userMfa. * @@ -331,5 +319,17 @@ public String getSystemRefreshTokenExpirationInSeconds() { public List getUserMfa() { return userMfa; } + + /** + * Gets the restrictUserDomains. + * + * Defines if account invitations are restricted to specified domains. To remove an entry for a realm_id, perform an + * update (PUT) request with only the realm_id set. + * + * @return the restrictUserDomains + */ + public List getRestrictUserDomains() { + return restrictUserDomains; + } } diff --git a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateResponse.java b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateResponse.java index 8e35d95283c..1794ca956ce 100644 --- a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateResponse.java +++ b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateResponse.java @@ -31,7 +31,7 @@ public class AccountSettingsTemplateResponse extends GenericModel { protected String description; protected Boolean committed; @SerializedName("account_settings") - protected AccountSettingsComponent accountSettings; + protected TemplateAccountSettings accountSettings; protected List history; @SerializedName("entity_tag") protected String entityTag; @@ -116,9 +116,11 @@ public Boolean isCommitted() { /** * Gets the accountSettings. * + * Input body parameters for the Account Settings REST request. + * * @return the accountSettings */ - public AccountSettingsComponent getAccountSettings() { + public TemplateAccountSettings getAccountSettings() { return accountSettings; } diff --git a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AssignedTemplatesAccountSettingsRestrictUserDomains.java b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AssignedTemplatesAccountSettingsRestrictUserDomains.java new file mode 100644 index 00000000000..0214618ede8 --- /dev/null +++ b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AssignedTemplatesAccountSettingsRestrictUserDomains.java @@ -0,0 +1,53 @@ +/* + * (C) Copyright IBM Corp. 2025. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package com.ibm.cloud.platform_services.iam_identity.v1.model; + +import java.util.List; + +import com.google.gson.annotations.SerializedName; +import com.ibm.cloud.sdk.core.service.model.GenericModel; + +/** + * AssignedTemplatesAccountSettingsRestrictUserDomains. + */ +public class AssignedTemplatesAccountSettingsRestrictUserDomains extends GenericModel { + + @SerializedName("account_sufficient") + protected Boolean accountSufficient; + protected List restrictions; + + protected AssignedTemplatesAccountSettingsRestrictUserDomains() { } + + /** + * Gets the accountSufficient. + * + * @return the accountSufficient + */ + public Boolean isAccountSufficient() { + return accountSufficient; + } + + /** + * Gets the restrictions. + * + * Defines if account invitations are restricted to specified domains. To remove an entry for a realm_id, perform an + * update (PUT) request with only the realm_id set. + * + * @return the restrictions + */ + public List getRestrictions() { + return restrictions; + } +} + diff --git a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateOptions.java b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateOptions.java index 0402c1b0098..c3344bec591 100644 --- a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateOptions.java +++ b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateOptions.java @@ -23,7 +23,7 @@ public class CreateAccountSettingsTemplateOptions extends GenericModel { protected String accountId; protected String name; protected String description; - protected AccountSettingsComponent accountSettings; + protected TemplateAccountSettings accountSettings; /** * Builder. @@ -32,7 +32,7 @@ public static class Builder { private String accountId; private String name; private String description; - private AccountSettingsComponent accountSettings; + private TemplateAccountSettings accountSettings; /** * Instantiates a new Builder from an existing CreateAccountSettingsTemplateOptions instance. @@ -100,7 +100,7 @@ public Builder description(String description) { * @param accountSettings the accountSettings * @return the CreateAccountSettingsTemplateOptions builder */ - public Builder accountSettings(AccountSettingsComponent accountSettings) { + public Builder accountSettings(TemplateAccountSettings accountSettings) { this.accountSettings = accountSettings; return this; } @@ -160,9 +160,11 @@ public String description() { /** * Gets the accountSettings. * + * Input body parameters for the Account Settings REST request. + * * @return the accountSettings */ - public AccountSettingsComponent accountSettings() { + public TemplateAccountSettings accountSettings() { return accountSettings; } } diff --git a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateVersionOptions.java b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateVersionOptions.java index d1d1298053d..ef0ab447192 100644 --- a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateVersionOptions.java +++ b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateVersionOptions.java @@ -24,7 +24,7 @@ public class CreateAccountSettingsTemplateVersionOptions extends GenericModel { protected String accountId; protected String name; protected String description; - protected AccountSettingsComponent accountSettings; + protected TemplateAccountSettings accountSettings; /** * Builder. @@ -34,7 +34,7 @@ public static class Builder { private String accountId; private String name; private String description; - private AccountSettingsComponent accountSettings; + private TemplateAccountSettings accountSettings; /** * Instantiates a new Builder from an existing CreateAccountSettingsTemplateVersionOptions instance. @@ -123,7 +123,7 @@ public Builder description(String description) { * @param accountSettings the accountSettings * @return the CreateAccountSettingsTemplateVersionOptions builder */ - public Builder accountSettings(AccountSettingsComponent accountSettings) { + public Builder accountSettings(TemplateAccountSettings accountSettings) { this.accountSettings = accountSettings; return this; } @@ -197,9 +197,11 @@ public String description() { /** * Gets the accountSettings. * + * Input body parameters for the Account Settings REST request. + * * @return the accountSettings */ - public AccountSettingsComponent accountSettings() { + public TemplateAccountSettings accountSettings() { return accountSettings; } } diff --git a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettings.java b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettings.java new file mode 100644 index 00000000000..1529772a165 --- /dev/null +++ b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettings.java @@ -0,0 +1,513 @@ +/* + * (C) Copyright IBM Corp. 2025. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package com.ibm.cloud.platform_services.iam_identity.v1.model; + +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.annotations.SerializedName; +import com.ibm.cloud.sdk.core.service.model.GenericModel; + +/** + * Input body parameters for the Account Settings REST request. + */ +public class TemplateAccountSettings extends GenericModel { + + /** + * Defines whether or not creating the resource is access controlled. Valid values: + * * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM Identity Service can create service + * IDs, including the account owner + * * NOT_RESTRICTED - all members of an account can create service IDs + * * NOT_SET - to 'unset' a previous set value. + */ + public interface RestrictCreateServiceId { + /** RESTRICTED. */ + String RESTRICTED = "RESTRICTED"; + /** NOT_RESTRICTED. */ + String NOT_RESTRICTED = "NOT_RESTRICTED"; + /** NOT_SET. */ + String NOT_SET = "NOT_SET"; + } + + /** + * Defines whether or not creating the resource is access controlled. Valid values: + * * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM Identity Service can create service + * IDs, including the account owner + * * NOT_RESTRICTED - all members of an account can create service IDs + * * NOT_SET - to 'unset' a previous set value. + */ + public interface RestrictCreatePlatformApikey { + /** RESTRICTED. */ + String RESTRICTED = "RESTRICTED"; + /** NOT_RESTRICTED. */ + String NOT_RESTRICTED = "NOT_RESTRICTED"; + /** NOT_SET. */ + String NOT_SET = "NOT_SET"; + } + + /** + * MFA trait definitions as follows: + * * NONE - No MFA trait set + * * NONE_NO_ROPC- No MFA, disable CLI logins with only a password + * * TOTP - For all non-federated IBMId users + * * TOTP4ALL - For all users + * * LEVEL1 - Email-based MFA for all users + * * LEVEL2 - TOTP-based MFA for all users + * * LEVEL3 - U2F MFA for all users. + */ + public interface Mfa { + /** NONE. */ + String NONE = "NONE"; + /** NONE_NO_ROPC. */ + String NONE_NO_ROPC = "NONE_NO_ROPC"; + /** TOTP. */ + String TOTP = "TOTP"; + /** TOTP4ALL. */ + String TOTP4ALL = "TOTP4ALL"; + /** LEVEL1. */ + String LEVEL1 = "LEVEL1"; + /** LEVEL2. */ + String LEVEL2 = "LEVEL2"; + /** LEVEL3. */ + String LEVEL3 = "LEVEL3"; + } + + /** + * Defines whether or not user visibility is access controlled. Valid values: + * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to + * the account, or descendants of those users based on the classic infrastructure hierarchy + * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console + * * NOT_SET - to 'unset' a previous set value. + */ + public interface RestrictUserListVisibility { + /** RESTRICTED. */ + String RESTRICTED = "RESTRICTED"; + /** NOT_RESTRICTED. */ + String NOT_RESTRICTED = "NOT_RESTRICTED"; + /** NOT_SET. */ + String NOT_SET = "NOT_SET"; + } + + @SerializedName("restrict_create_service_id") + protected String restrictCreateServiceId; + @SerializedName("restrict_create_platform_apikey") + protected String restrictCreatePlatformApikey; + @SerializedName("allowed_ip_addresses") + protected String allowedIpAddresses; + protected String mfa; + @SerializedName("user_mfa") + protected List userMfa; + @SerializedName("session_expiration_in_seconds") + protected String sessionExpirationInSeconds; + @SerializedName("session_invalidation_in_seconds") + protected String sessionInvalidationInSeconds; + @SerializedName("max_sessions_per_identity") + protected String maxSessionsPerIdentity; + @SerializedName("system_access_token_expiration_in_seconds") + protected String systemAccessTokenExpirationInSeconds; + @SerializedName("system_refresh_token_expiration_in_seconds") + protected String systemRefreshTokenExpirationInSeconds; + @SerializedName("restrict_user_list_visibility") + protected String restrictUserListVisibility; + @SerializedName("restrict_user_domains") + protected TemplateAccountSettingsRestrictUserDomains restrictUserDomains; + + /** + * Builder. + */ + public static class Builder { + private String restrictCreateServiceId; + private String restrictCreatePlatformApikey; + private String allowedIpAddresses; + private String mfa; + private List userMfa; + private String sessionExpirationInSeconds; + private String sessionInvalidationInSeconds; + private String maxSessionsPerIdentity; + private String systemAccessTokenExpirationInSeconds; + private String systemRefreshTokenExpirationInSeconds; + private String restrictUserListVisibility; + private TemplateAccountSettingsRestrictUserDomains restrictUserDomains; + + /** + * Instantiates a new Builder from an existing TemplateAccountSettings instance. + * + * @param templateAccountSettings the instance to initialize the Builder with + */ + private Builder(TemplateAccountSettings templateAccountSettings) { + this.restrictCreateServiceId = templateAccountSettings.restrictCreateServiceId; + this.restrictCreatePlatformApikey = templateAccountSettings.restrictCreatePlatformApikey; + this.allowedIpAddresses = templateAccountSettings.allowedIpAddresses; + this.mfa = templateAccountSettings.mfa; + this.userMfa = templateAccountSettings.userMfa; + this.sessionExpirationInSeconds = templateAccountSettings.sessionExpirationInSeconds; + this.sessionInvalidationInSeconds = templateAccountSettings.sessionInvalidationInSeconds; + this.maxSessionsPerIdentity = templateAccountSettings.maxSessionsPerIdentity; + this.systemAccessTokenExpirationInSeconds = templateAccountSettings.systemAccessTokenExpirationInSeconds; + this.systemRefreshTokenExpirationInSeconds = templateAccountSettings.systemRefreshTokenExpirationInSeconds; + this.restrictUserListVisibility = templateAccountSettings.restrictUserListVisibility; + this.restrictUserDomains = templateAccountSettings.restrictUserDomains; + } + + /** + * Instantiates a new builder. + */ + public Builder() { + } + + /** + * Builds a TemplateAccountSettings. + * + * @return the new TemplateAccountSettings instance + */ + public TemplateAccountSettings build() { + return new TemplateAccountSettings(this); + } + + /** + * Adds a new element to userMfa. + * + * @param userMfa the new element to be added + * @return the TemplateAccountSettings builder + */ + public Builder addUserMfa(UserMfa userMfa) { + com.ibm.cloud.sdk.core.util.Validator.notNull(userMfa, + "userMfa cannot be null"); + if (this.userMfa == null) { + this.userMfa = new ArrayList(); + } + this.userMfa.add(userMfa); + return this; + } + + /** + * Set the restrictCreateServiceId. + * + * @param restrictCreateServiceId the restrictCreateServiceId + * @return the TemplateAccountSettings builder + */ + public Builder restrictCreateServiceId(String restrictCreateServiceId) { + this.restrictCreateServiceId = restrictCreateServiceId; + return this; + } + + /** + * Set the restrictCreatePlatformApikey. + * + * @param restrictCreatePlatformApikey the restrictCreatePlatformApikey + * @return the TemplateAccountSettings builder + */ + public Builder restrictCreatePlatformApikey(String restrictCreatePlatformApikey) { + this.restrictCreatePlatformApikey = restrictCreatePlatformApikey; + return this; + } + + /** + * Set the allowedIpAddresses. + * + * @param allowedIpAddresses the allowedIpAddresses + * @return the TemplateAccountSettings builder + */ + public Builder allowedIpAddresses(String allowedIpAddresses) { + this.allowedIpAddresses = allowedIpAddresses; + return this; + } + + /** + * Set the mfa. + * + * @param mfa the mfa + * @return the TemplateAccountSettings builder + */ + public Builder mfa(String mfa) { + this.mfa = mfa; + return this; + } + + /** + * Set the userMfa. + * Existing userMfa will be replaced. + * + * @param userMfa the userMfa + * @return the TemplateAccountSettings builder + */ + public Builder userMfa(List userMfa) { + this.userMfa = userMfa; + return this; + } + + /** + * Set the sessionExpirationInSeconds. + * + * @param sessionExpirationInSeconds the sessionExpirationInSeconds + * @return the TemplateAccountSettings builder + */ + public Builder sessionExpirationInSeconds(String sessionExpirationInSeconds) { + this.sessionExpirationInSeconds = sessionExpirationInSeconds; + return this; + } + + /** + * Set the sessionInvalidationInSeconds. + * + * @param sessionInvalidationInSeconds the sessionInvalidationInSeconds + * @return the TemplateAccountSettings builder + */ + public Builder sessionInvalidationInSeconds(String sessionInvalidationInSeconds) { + this.sessionInvalidationInSeconds = sessionInvalidationInSeconds; + return this; + } + + /** + * Set the maxSessionsPerIdentity. + * + * @param maxSessionsPerIdentity the maxSessionsPerIdentity + * @return the TemplateAccountSettings builder + */ + public Builder maxSessionsPerIdentity(String maxSessionsPerIdentity) { + this.maxSessionsPerIdentity = maxSessionsPerIdentity; + return this; + } + + /** + * Set the systemAccessTokenExpirationInSeconds. + * + * @param systemAccessTokenExpirationInSeconds the systemAccessTokenExpirationInSeconds + * @return the TemplateAccountSettings builder + */ + public Builder systemAccessTokenExpirationInSeconds(String systemAccessTokenExpirationInSeconds) { + this.systemAccessTokenExpirationInSeconds = systemAccessTokenExpirationInSeconds; + return this; + } + + /** + * Set the systemRefreshTokenExpirationInSeconds. + * + * @param systemRefreshTokenExpirationInSeconds the systemRefreshTokenExpirationInSeconds + * @return the TemplateAccountSettings builder + */ + public Builder systemRefreshTokenExpirationInSeconds(String systemRefreshTokenExpirationInSeconds) { + this.systemRefreshTokenExpirationInSeconds = systemRefreshTokenExpirationInSeconds; + return this; + } + + /** + * Set the restrictUserListVisibility. + * + * @param restrictUserListVisibility the restrictUserListVisibility + * @return the TemplateAccountSettings builder + */ + public Builder restrictUserListVisibility(String restrictUserListVisibility) { + this.restrictUserListVisibility = restrictUserListVisibility; + return this; + } + + /** + * Set the restrictUserDomains. + * + * @param restrictUserDomains the restrictUserDomains + * @return the TemplateAccountSettings builder + */ + public Builder restrictUserDomains(TemplateAccountSettingsRestrictUserDomains restrictUserDomains) { + this.restrictUserDomains = restrictUserDomains; + return this; + } + } + + protected TemplateAccountSettings() { } + + protected TemplateAccountSettings(Builder builder) { + restrictCreateServiceId = builder.restrictCreateServiceId; + restrictCreatePlatformApikey = builder.restrictCreatePlatformApikey; + allowedIpAddresses = builder.allowedIpAddresses; + mfa = builder.mfa; + userMfa = builder.userMfa; + sessionExpirationInSeconds = builder.sessionExpirationInSeconds; + sessionInvalidationInSeconds = builder.sessionInvalidationInSeconds; + maxSessionsPerIdentity = builder.maxSessionsPerIdentity; + systemAccessTokenExpirationInSeconds = builder.systemAccessTokenExpirationInSeconds; + systemRefreshTokenExpirationInSeconds = builder.systemRefreshTokenExpirationInSeconds; + restrictUserListVisibility = builder.restrictUserListVisibility; + restrictUserDomains = builder.restrictUserDomains; + } + + /** + * New builder. + * + * @return a TemplateAccountSettings builder + */ + public Builder newBuilder() { + return new Builder(this); + } + + /** + * Gets the restrictCreateServiceId. + * + * Defines whether or not creating the resource is access controlled. Valid values: + * * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM Identity Service can create service + * IDs, including the account owner + * * NOT_RESTRICTED - all members of an account can create service IDs + * * NOT_SET - to 'unset' a previous set value. + * + * @return the restrictCreateServiceId + */ + public String restrictCreateServiceId() { + return restrictCreateServiceId; + } + + /** + * Gets the restrictCreatePlatformApikey. + * + * Defines whether or not creating the resource is access controlled. Valid values: + * * RESTRICTED - only users assigned the 'Service ID creator' role on the IAM Identity Service can create service + * IDs, including the account owner + * * NOT_RESTRICTED - all members of an account can create service IDs + * * NOT_SET - to 'unset' a previous set value. + * + * @return the restrictCreatePlatformApikey + */ + public String restrictCreatePlatformApikey() { + return restrictCreatePlatformApikey; + } + + /** + * Gets the allowedIpAddresses. + * + * Defines the IP addresses and subnets from which IAM tokens can be created for the account. + * + * @return the allowedIpAddresses + */ + public String allowedIpAddresses() { + return allowedIpAddresses; + } + + /** + * Gets the mfa. + * + * MFA trait definitions as follows: + * * NONE - No MFA trait set + * * NONE_NO_ROPC- No MFA, disable CLI logins with only a password + * * TOTP - For all non-federated IBMId users + * * TOTP4ALL - For all users + * * LEVEL1 - Email-based MFA for all users + * * LEVEL2 - TOTP-based MFA for all users + * * LEVEL3 - U2F MFA for all users. + * + * @return the mfa + */ + public String mfa() { + return mfa; + } + + /** + * Gets the userMfa. + * + * List of users that are exempted from the MFA requirement of the account. + * + * @return the userMfa + */ + public List userMfa() { + return userMfa; + } + + /** + * Gets the sessionExpirationInSeconds. + * + * Defines the session expiration in seconds for the account. Valid values: + * * Any whole number between between '900' and '86400' + * * NOT_SET - To unset account setting and use service default. + * + * @return the sessionExpirationInSeconds + */ + public String sessionExpirationInSeconds() { + return sessionExpirationInSeconds; + } + + /** + * Gets the sessionInvalidationInSeconds. + * + * Defines the period of time in seconds in which a session will be invalidated due to inactivity. Valid values: + * * Any whole number between '900' and '7200' + * * NOT_SET - To unset account setting and use service default. + * + * @return the sessionInvalidationInSeconds + */ + public String sessionInvalidationInSeconds() { + return sessionInvalidationInSeconds; + } + + /** + * Gets the maxSessionsPerIdentity. + * + * Defines the max allowed sessions per identity required by the account. Valid values: + * * Any whole number greater than 0 + * * NOT_SET - To unset account setting and use service default. + * + * @return the maxSessionsPerIdentity + */ + public String maxSessionsPerIdentity() { + return maxSessionsPerIdentity; + } + + /** + * Gets the systemAccessTokenExpirationInSeconds. + * + * Defines the access token expiration in seconds. Valid values: + * * Any whole number between '900' and '3600' + * * NOT_SET - To unset account setting and use service default. + * + * @return the systemAccessTokenExpirationInSeconds + */ + public String systemAccessTokenExpirationInSeconds() { + return systemAccessTokenExpirationInSeconds; + } + + /** + * Gets the systemRefreshTokenExpirationInSeconds. + * + * Defines the refresh token expiration in seconds. Valid values: + * * Any whole number between '900' and '259200' + * * NOT_SET - To unset account setting and use service default. + * + * @return the systemRefreshTokenExpirationInSeconds + */ + public String systemRefreshTokenExpirationInSeconds() { + return systemRefreshTokenExpirationInSeconds; + } + + /** + * Gets the restrictUserListVisibility. + * + * Defines whether or not user visibility is access controlled. Valid values: + * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to + * the account, or descendants of those users based on the classic infrastructure hierarchy + * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console + * * NOT_SET - to 'unset' a previous set value. + * + * @return the restrictUserListVisibility + */ + public String restrictUserListVisibility() { + return restrictUserListVisibility; + } + + /** + * Gets the restrictUserDomains. + * + * @return the restrictUserDomains + */ + public TemplateAccountSettingsRestrictUserDomains restrictUserDomains() { + return restrictUserDomains; + } +} + diff --git a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsRestrictUserDomains.java b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsRestrictUserDomains.java new file mode 100644 index 00000000000..bdd7eaa451d --- /dev/null +++ b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsRestrictUserDomains.java @@ -0,0 +1,140 @@ +/* + * (C) Copyright IBM Corp. 2025. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package com.ibm.cloud.platform_services.iam_identity.v1.model; + +import java.util.ArrayList; +import java.util.List; + +import com.google.gson.annotations.SerializedName; +import com.ibm.cloud.sdk.core.service.model.GenericModel; + +/** + * TemplateAccountSettingsRestrictUserDomains. + */ +public class TemplateAccountSettingsRestrictUserDomains extends GenericModel { + + @SerializedName("account_sufficient") + protected Boolean accountSufficient; + protected List restrictions; + + /** + * Builder. + */ + public static class Builder { + private Boolean accountSufficient; + private List restrictions; + + /** + * Instantiates a new Builder from an existing TemplateAccountSettingsRestrictUserDomains instance. + * + * @param templateAccountSettingsRestrictUserDomains the instance to initialize the Builder with + */ + private Builder(TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomains) { + this.accountSufficient = templateAccountSettingsRestrictUserDomains.accountSufficient; + this.restrictions = templateAccountSettingsRestrictUserDomains.restrictions; + } + + /** + * Instantiates a new builder. + */ + public Builder() { + } + + /** + * Builds a TemplateAccountSettingsRestrictUserDomains. + * + * @return the new TemplateAccountSettingsRestrictUserDomains instance + */ + public TemplateAccountSettingsRestrictUserDomains build() { + return new TemplateAccountSettingsRestrictUserDomains(this); + } + + /** + * Adds a new element to restrictions. + * + * @param restrictions the new element to be added + * @return the TemplateAccountSettingsRestrictUserDomains builder + */ + public Builder addRestrictions(AccountSettingsUserDomainRestriction restrictions) { + com.ibm.cloud.sdk.core.util.Validator.notNull(restrictions, + "restrictions cannot be null"); + if (this.restrictions == null) { + this.restrictions = new ArrayList(); + } + this.restrictions.add(restrictions); + return this; + } + + /** + * Set the accountSufficient. + * + * @param accountSufficient the accountSufficient + * @return the TemplateAccountSettingsRestrictUserDomains builder + */ + public Builder accountSufficient(Boolean accountSufficient) { + this.accountSufficient = accountSufficient; + return this; + } + + /** + * Set the restrictions. + * Existing restrictions will be replaced. + * + * @param restrictions the restrictions + * @return the TemplateAccountSettingsRestrictUserDomains builder + */ + public Builder restrictions(List restrictions) { + this.restrictions = restrictions; + return this; + } + } + + protected TemplateAccountSettingsRestrictUserDomains() { } + + protected TemplateAccountSettingsRestrictUserDomains(Builder builder) { + accountSufficient = builder.accountSufficient; + restrictions = builder.restrictions; + } + + /** + * New builder. + * + * @return a TemplateAccountSettingsRestrictUserDomains builder + */ + public Builder newBuilder() { + return new Builder(this); + } + + /** + * Gets the accountSufficient. + * + * @return the accountSufficient + */ + public Boolean accountSufficient() { + return accountSufficient; + } + + /** + * Gets the restrictions. + * + * Defines if account invitations are restricted to specified domains. To remove an entry for a realm_id, perform an + * update (PUT) request with only the realm_id set. + * + * @return the restrictions + */ + public List restrictions() { + return restrictions; + } +} + diff --git a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsOptions.java b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsOptions.java index 227d72692e5..32ca6252d48 100644 --- a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsOptions.java +++ b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsOptions.java @@ -55,19 +55,6 @@ public interface RestrictCreatePlatformApikey { String NOT_SET = "NOT_SET"; } - /** - * Defines whether or not user visibility is access controlled. Valid values: - * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to - * the account, or descendants of those users based on the classic infrastructure hierarchy - * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console. - */ - public interface RestrictUserListVisibility { - /** NOT_RESTRICTED. */ - String NOT_RESTRICTED = "NOT_RESTRICTED"; - /** RESTRICTED. */ - String RESTRICTED = "RESTRICTED"; - } - /** * MFA trait definitions as follows: * * NONE - No MFA trait set @@ -95,20 +82,33 @@ public interface Mfa { String LEVEL3 = "LEVEL3"; } + /** + * Defines whether or not user visibility is access controlled. Valid values: + * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to + * the account, or descendants of those users based on the classic infrastructure hierarchy + * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console. + */ + public interface RestrictUserListVisibility { + /** NOT_RESTRICTED. */ + String NOT_RESTRICTED = "NOT_RESTRICTED"; + /** RESTRICTED. */ + String RESTRICTED = "RESTRICTED"; + } + protected String ifMatch; protected String accountId; protected String restrictCreateServiceId; protected String restrictCreatePlatformApikey; - protected String restrictUserListVisibility; - protected List restrictUserDomains; protected String allowedIpAddresses; protected String mfa; + protected List userMfa; protected String sessionExpirationInSeconds; protected String sessionInvalidationInSeconds; protected String maxSessionsPerIdentity; protected String systemAccessTokenExpirationInSeconds; protected String systemRefreshTokenExpirationInSeconds; - protected List userMfa; + protected String restrictUserListVisibility; + protected List restrictUserDomains; /** * Builder. @@ -118,16 +118,16 @@ public static class Builder { private String accountId; private String restrictCreateServiceId; private String restrictCreatePlatformApikey; - private String restrictUserListVisibility; - private List restrictUserDomains; private String allowedIpAddresses; private String mfa; + private List userMfa; private String sessionExpirationInSeconds; private String sessionInvalidationInSeconds; private String maxSessionsPerIdentity; private String systemAccessTokenExpirationInSeconds; private String systemRefreshTokenExpirationInSeconds; - private List userMfa; + private String restrictUserListVisibility; + private List restrictUserDomains; /** * Instantiates a new Builder from an existing UpdateAccountSettingsOptions instance. @@ -139,16 +139,16 @@ private Builder(UpdateAccountSettingsOptions updateAccountSettingsOptions) { this.accountId = updateAccountSettingsOptions.accountId; this.restrictCreateServiceId = updateAccountSettingsOptions.restrictCreateServiceId; this.restrictCreatePlatformApikey = updateAccountSettingsOptions.restrictCreatePlatformApikey; - this.restrictUserListVisibility = updateAccountSettingsOptions.restrictUserListVisibility; - this.restrictUserDomains = updateAccountSettingsOptions.restrictUserDomains; this.allowedIpAddresses = updateAccountSettingsOptions.allowedIpAddresses; this.mfa = updateAccountSettingsOptions.mfa; + this.userMfa = updateAccountSettingsOptions.userMfa; this.sessionExpirationInSeconds = updateAccountSettingsOptions.sessionExpirationInSeconds; this.sessionInvalidationInSeconds = updateAccountSettingsOptions.sessionInvalidationInSeconds; this.maxSessionsPerIdentity = updateAccountSettingsOptions.maxSessionsPerIdentity; this.systemAccessTokenExpirationInSeconds = updateAccountSettingsOptions.systemAccessTokenExpirationInSeconds; this.systemRefreshTokenExpirationInSeconds = updateAccountSettingsOptions.systemRefreshTokenExpirationInSeconds; - this.userMfa = updateAccountSettingsOptions.userMfa; + this.restrictUserListVisibility = updateAccountSettingsOptions.restrictUserListVisibility; + this.restrictUserDomains = updateAccountSettingsOptions.restrictUserDomains; } /** @@ -177,22 +177,6 @@ public UpdateAccountSettingsOptions build() { return new UpdateAccountSettingsOptions(this); } - /** - * Adds a new element to restrictUserDomains. - * - * @param restrictUserDomains the new element to be added - * @return the UpdateAccountSettingsOptions builder - */ - public Builder addRestrictUserDomains(AccountSettingsUserDomainRestriction restrictUserDomains) { - com.ibm.cloud.sdk.core.util.Validator.notNull(restrictUserDomains, - "restrictUserDomains cannot be null"); - if (this.restrictUserDomains == null) { - this.restrictUserDomains = new ArrayList(); - } - this.restrictUserDomains.add(restrictUserDomains); - return this; - } - /** * Adds a new element to userMfa. * @@ -209,6 +193,22 @@ public Builder addUserMfa(UserMfa userMfa) { return this; } + /** + * Adds a new element to restrictUserDomains. + * + * @param restrictUserDomains the new element to be added + * @return the UpdateAccountSettingsOptions builder + */ + public Builder addRestrictUserDomains(AccountSettingsUserDomainRestriction restrictUserDomains) { + com.ibm.cloud.sdk.core.util.Validator.notNull(restrictUserDomains, + "restrictUserDomains cannot be null"); + if (this.restrictUserDomains == null) { + this.restrictUserDomains = new ArrayList(); + } + this.restrictUserDomains.add(restrictUserDomains); + return this; + } + /** * Set the ifMatch. * @@ -253,29 +253,6 @@ public Builder restrictCreatePlatformApikey(String restrictCreatePlatformApikey) return this; } - /** - * Set the restrictUserListVisibility. - * - * @param restrictUserListVisibility the restrictUserListVisibility - * @return the UpdateAccountSettingsOptions builder - */ - public Builder restrictUserListVisibility(String restrictUserListVisibility) { - this.restrictUserListVisibility = restrictUserListVisibility; - return this; - } - - /** - * Set the restrictUserDomains. - * Existing restrictUserDomains will be replaced. - * - * @param restrictUserDomains the restrictUserDomains - * @return the UpdateAccountSettingsOptions builder - */ - public Builder restrictUserDomains(List restrictUserDomains) { - this.restrictUserDomains = restrictUserDomains; - return this; - } - /** * Set the allowedIpAddresses. * @@ -298,6 +275,18 @@ public Builder mfa(String mfa) { return this; } + /** + * Set the userMfa. + * Existing userMfa will be replaced. + * + * @param userMfa the userMfa + * @return the UpdateAccountSettingsOptions builder + */ + public Builder userMfa(List userMfa) { + this.userMfa = userMfa; + return this; + } + /** * Set the sessionExpirationInSeconds. * @@ -354,14 +343,25 @@ public Builder systemRefreshTokenExpirationInSeconds(String systemRefreshTokenEx } /** - * Set the userMfa. - * Existing userMfa will be replaced. + * Set the restrictUserListVisibility. * - * @param userMfa the userMfa + * @param restrictUserListVisibility the restrictUserListVisibility * @return the UpdateAccountSettingsOptions builder */ - public Builder userMfa(List userMfa) { - this.userMfa = userMfa; + public Builder restrictUserListVisibility(String restrictUserListVisibility) { + this.restrictUserListVisibility = restrictUserListVisibility; + return this; + } + + /** + * Set the restrictUserDomains. + * Existing restrictUserDomains will be replaced. + * + * @param restrictUserDomains the restrictUserDomains + * @return the UpdateAccountSettingsOptions builder + */ + public Builder restrictUserDomains(List restrictUserDomains) { + this.restrictUserDomains = restrictUserDomains; return this; } } @@ -377,16 +377,16 @@ protected UpdateAccountSettingsOptions(Builder builder) { accountId = builder.accountId; restrictCreateServiceId = builder.restrictCreateServiceId; restrictCreatePlatformApikey = builder.restrictCreatePlatformApikey; - restrictUserListVisibility = builder.restrictUserListVisibility; - restrictUserDomains = builder.restrictUserDomains; allowedIpAddresses = builder.allowedIpAddresses; mfa = builder.mfa; + userMfa = builder.userMfa; sessionExpirationInSeconds = builder.sessionExpirationInSeconds; sessionInvalidationInSeconds = builder.sessionInvalidationInSeconds; maxSessionsPerIdentity = builder.maxSessionsPerIdentity; systemAccessTokenExpirationInSeconds = builder.systemAccessTokenExpirationInSeconds; systemRefreshTokenExpirationInSeconds = builder.systemRefreshTokenExpirationInSeconds; - userMfa = builder.userMfa; + restrictUserListVisibility = builder.restrictUserListVisibility; + restrictUserDomains = builder.restrictUserDomains; } /** @@ -452,32 +452,6 @@ public String restrictCreatePlatformApikey() { return restrictCreatePlatformApikey; } - /** - * Gets the restrictUserListVisibility. - * - * Defines whether or not user visibility is access controlled. Valid values: - * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to - * the account, or descendants of those users based on the classic infrastructure hierarchy - * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console. - * - * @return the restrictUserListVisibility - */ - public String restrictUserListVisibility() { - return restrictUserListVisibility; - } - - /** - * Gets the restrictUserDomains. - * - * Defines if account invitations are restricted to specified domains. To remove an entry for a realm_id, perform an - * update (PUT) request with only the realm_id set. - * - * @return the restrictUserDomains - */ - public List restrictUserDomains() { - return restrictUserDomains; - } - /** * Gets the allowedIpAddresses. * @@ -507,6 +481,17 @@ public String mfa() { return mfa; } + /** + * Gets the userMfa. + * + * List of users that are exempted from the MFA requirement of the account. + * + * @return the userMfa + */ + public List userMfa() { + return userMfa; + } + /** * Gets the sessionExpirationInSeconds. * @@ -573,14 +558,29 @@ public String systemRefreshTokenExpirationInSeconds() { } /** - * Gets the userMfa. + * Gets the restrictUserListVisibility. * - * List of users that are exempted from the MFA requirement of the account. + * Defines whether or not user visibility is access controlled. Valid values: + * * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to + * the account, or descendants of those users based on the classic infrastructure hierarchy + * * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console. * - * @return the userMfa + * @return the restrictUserListVisibility */ - public List userMfa() { - return userMfa; + public String restrictUserListVisibility() { + return restrictUserListVisibility; + } + + /** + * Gets the restrictUserDomains. + * + * Defines if account invitations are restricted to specified domains. To remove an entry for a realm_id, perform an + * update (PUT) request with only the realm_id set. + * + * @return the restrictUserDomains + */ + public List restrictUserDomains() { + return restrictUserDomains; } } diff --git a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsTemplateVersionOptions.java b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsTemplateVersionOptions.java index ad31993d446..a457381532a 100644 --- a/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsTemplateVersionOptions.java +++ b/modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsTemplateVersionOptions.java @@ -26,7 +26,7 @@ public class UpdateAccountSettingsTemplateVersionOptions extends GenericModel { protected String accountId; protected String name; protected String description; - protected AccountSettingsComponent accountSettings; + protected TemplateAccountSettings accountSettings; /** * Builder. @@ -38,7 +38,7 @@ public static class Builder { private String accountId; private String name; private String description; - private AccountSettingsComponent accountSettings; + private TemplateAccountSettings accountSettings; /** * Instantiates a new Builder from an existing UpdateAccountSettingsTemplateVersionOptions instance. @@ -155,7 +155,7 @@ public Builder description(String description) { * @param accountSettings the accountSettings * @return the UpdateAccountSettingsTemplateVersionOptions builder */ - public Builder accountSettings(AccountSettingsComponent accountSettings) { + public Builder accountSettings(TemplateAccountSettings accountSettings) { this.accountSettings = accountSettings; return this; } @@ -259,9 +259,11 @@ public String description() { /** * Gets the accountSettings. * + * Input body parameters for the Account Settings REST request. + * * @return the accountSettings */ - public AccountSettingsComponent accountSettings() { + public TemplateAccountSettings accountSettings() { return accountSettings; } } diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityIT.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityIT.java index 37fe304c758..570b98f88fb 100644 --- a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityIT.java +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityIT.java @@ -1880,7 +1880,6 @@ public void testGetEffectiveAccountSettings() throws Exception { assertNotNull(effectiveAccountSettingsResponseResult); - assertEquals(effectiveAccountSettingsResponseResult.getAccountId(), ACCOUNT_ID); assertNotNull(effectiveAccountSettingsResponseResult.getEffective()); assertNotNull(effectiveAccountSettingsResponseResult.getAccount()); @@ -2576,16 +2575,41 @@ public void testDeleteProfileTemplate() throws Exception { @Test public void testCreateAccountSettingsTemplate() throws Exception { try { + UserMfa userMfaModel = new UserMfa.Builder() + .iamId(IAM_ID) + .mfa("NONE") + .build(); + + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) + .restrictInvitation(true) + .build(); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(true) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() + .restrictCreateServiceId("NOT_SET") + .restrictCreatePlatformApikey("NOT_SET") + .mfa("NONE") + .userMfa(java.util.Arrays.asList(userMfaModel)) + .sessionExpirationInSeconds("86400") + .sessionInvalidationInSeconds("7200") + .maxSessionsPerIdentity("10") + .systemAccessTokenExpirationInSeconds("3600") + .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) + .build(); - AccountSettingsComponent accountSettings = new AccountSettingsComponent.Builder() - .mfa("LEVEL1") - .systemAccessTokenExpirationInSeconds("3000") - .build(); CreateAccountSettingsTemplateOptions createOptions = new CreateAccountSettingsTemplateOptions.Builder() .accountId(ENTERPRISE_ACCOUNT_ID) .name(ACCOUNT_SETTINGS_TEMPLATE_NAME) .description("JavaSDK test Account Settings Template #1") - .accountSettings(accountSettings) + .accountSettings(templateAccountSettingsModel) .build(); Response createResponse = service.createAccountSettingsTemplate(createOptions).execute(); assertNotNull(createResponse); @@ -2655,10 +2679,35 @@ public void testListAccountSettingsTemplates() throws Exception { @Test(dependsOnMethods = { "testCreateAccountSettingsTemplate" }) public void testUpdateAccountSettingsTemplate() throws Exception { try { - AccountSettingsComponent accountSettings = new AccountSettingsComponent.Builder() - .mfa("LEVEL1") - .systemAccessTokenExpirationInSeconds("3000") - .build(); + UserMfa userMfaModel = new UserMfa.Builder() + .iamId(IAM_ID) + .mfa("LEVEL1") + .build(); + + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) + .restrictInvitation(false) + .build(); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(false) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() + .restrictCreateServiceId("NOT_RESTRICTED") + .restrictCreatePlatformApikey("RESTRICTED") + .mfa("LEVEL1") + .userMfa(java.util.Arrays.asList(userMfaModel)) + .sessionExpirationInSeconds("86400") + .sessionInvalidationInSeconds("7200") + .maxSessionsPerIdentity("10") + .systemAccessTokenExpirationInSeconds("3600") + .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("NOT_RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) + .build(); UpdateAccountSettingsTemplateVersionOptions updateOptions = new UpdateAccountSettingsTemplateVersionOptions.Builder() .accountId(ENTERPRISE_ACCOUNT_ID) .templateId(accountSettingsTemplateId) @@ -2666,7 +2715,7 @@ public void testUpdateAccountSettingsTemplate() throws Exception { .ifMatch(accountSettingsTemplateEtag) .name(ACCOUNT_SETTINGS_TEMPLATE_NAME) .description("JavaSDK test Account Settings Template #1 - updated") - .accountSettings(accountSettings) + .accountSettings(templateAccountSettingsModel) .build(); Response updateResponse = service.updateAccountSettingsTemplateVersion(updateOptions).execute(); @@ -2729,18 +2778,42 @@ public void testAssignAccountSettingsTemplate() throws Exception { @Test(dependsOnMethods = { "testAssignAccountSettingsTemplate" }) public void testCreateNewAccountSettingsTemplateVersion() throws Exception { try { - AccountSettingsComponent accountSettings = new AccountSettingsComponent.Builder() - .mfa("LEVEL1") - .systemAccessTokenExpirationInSeconds("2600") - .restrictCreatePlatformApikey("RESTRICTED") - .restrictCreateServiceId("RESTRICTED") - .build(); + UserMfa userMfaModel = new UserMfa.Builder() + .iamId(IAM_ID) + .mfa("NONE") + .build(); + + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@ibm.com")) + .restrictInvitation(false) + .build(); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(false) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() + .restrictCreateServiceId("NOT_SET") + .restrictCreatePlatformApikey("NOT_SET") + .mfa("NONE") + .userMfa(java.util.Arrays.asList(userMfaModel)) + .sessionExpirationInSeconds("86400") + .sessionInvalidationInSeconds("7200") + .maxSessionsPerIdentity("12") + .systemAccessTokenExpirationInSeconds("3600") + .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) + .build(); + CreateAccountSettingsTemplateVersionOptions createOptions = new CreateAccountSettingsTemplateVersionOptions.Builder() .accountId(ENTERPRISE_ACCOUNT_ID) .templateId(accountSettingsTemplateId) .name(ACCOUNT_SETTINGS_TEMPLATE_NAME) .description("JavaSDK test AccountSettings Template #1 - new version") - .accountSettings(accountSettings) + .accountSettings(templateAccountSettingsModel) .build(); Response createResponse = service.createAccountSettingsTemplateVersion(createOptions).execute(); diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityTest.java index 12dd199fc45..e510c42e857 100644 --- a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityTest.java +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityTest.java @@ -16,7 +16,6 @@ import com.ibm.cloud.platform_services.iam_identity.v1.IamIdentity; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountBasedMfaEnrollment; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsAssignedTemplatesSection; -import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsComponent; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsEffectiveSection; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsResponse; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsTemplateList; @@ -34,6 +33,7 @@ import com.ibm.cloud.platform_services.iam_identity.v1.model.ApikeyActivity; import com.ibm.cloud.platform_services.iam_identity.v1.model.ApikeyActivityServiceid; import com.ibm.cloud.platform_services.iam_identity.v1.model.ApikeyActivityUser; +import com.ibm.cloud.platform_services.iam_identity.v1.model.AssignedTemplatesAccountSettingsRestrictUserDomains; import com.ibm.cloud.platform_services.iam_identity.v1.model.CommitAccountSettingsTemplateOptions; import com.ibm.cloud.platform_services.iam_identity.v1.model.CommitProfileTemplateOptions; import com.ibm.cloud.platform_services.iam_identity.v1.model.CreateAccountSettingsAssignmentOptions; @@ -134,6 +134,8 @@ import com.ibm.cloud.platform_services.iam_identity.v1.model.ServiceIdList; import com.ibm.cloud.platform_services.iam_identity.v1.model.SetProfileIdentitiesOptions; import com.ibm.cloud.platform_services.iam_identity.v1.model.SetProfileIdentityOptions; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettings; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettingsRestrictUserDomains; import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAssignmentListResponse; import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAssignmentResource; import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAssignmentResourceError; @@ -2649,7 +2651,7 @@ public void testGetReportNoOptions() throws Throwable { @Test public void testGetAccountSettingsWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"account_id\": \"accountId\", \"entity_tag\": \"entityTag\", \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"restrict_user_list_visibility\": \"NOT_RESTRICTED\", \"restrict_user_domains\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}], \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\", \"name\": \"name\", \"userName\": \"userName\", \"email\": \"email\", \"description\": \"description\"}]}"; + String mockResponseBody = "{\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"account_id\": \"accountId\", \"entity_tag\": \"entityTag\", \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"restrict_user_list_visibility\": \"NOT_RESTRICTED\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\", \"name\": \"name\", \"userName\": \"userName\", \"email\": \"email\", \"description\": \"description\"}], \"restrict_user_domains\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}]}"; String getAccountSettingsPath = "/v1/accounts/testString/settings/identity"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -2704,13 +2706,19 @@ public void testGetAccountSettingsNoOptions() throws Throwable { @Test public void testUpdateAccountSettingsWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"account_id\": \"accountId\", \"entity_tag\": \"entityTag\", \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"restrict_user_list_visibility\": \"NOT_RESTRICTED\", \"restrict_user_domains\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}], \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\", \"name\": \"name\", \"userName\": \"userName\", \"email\": \"email\", \"description\": \"description\"}]}"; + String mockResponseBody = "{\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"account_id\": \"accountId\", \"entity_tag\": \"entityTag\", \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"restrict_user_list_visibility\": \"NOT_RESTRICTED\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\", \"name\": \"name\", \"userName\": \"userName\", \"email\": \"email\", \"description\": \"description\"}], \"restrict_user_domains\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}]}"; String updateAccountSettingsPath = "/v1/accounts/testString/settings/identity"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") .setResponseCode(200) .setBody(mockResponseBody)); + // Construct an instance of the UserMfa model + UserMfa userMfaModel = new UserMfa.Builder() + .iamId("testString") + .mfa("NONE") + .build(); + // Construct an instance of the AccountSettingsUserDomainRestriction model AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() .realmId("IBMid") @@ -2718,28 +2726,22 @@ public void testUpdateAccountSettingsWOptions() throws Throwable { .restrictInvitation(true) .build(); - // Construct an instance of the UserMfa model - UserMfa userMfaModel = new UserMfa.Builder() - .iamId("testString") - .mfa("NONE") - .build(); - // Construct an instance of the UpdateAccountSettingsOptions model UpdateAccountSettingsOptions updateAccountSettingsOptionsModel = new UpdateAccountSettingsOptions.Builder() .ifMatch("testString") .accountId("testString") .restrictCreateServiceId("NOT_SET") .restrictCreatePlatformApikey("NOT_SET") - .restrictUserListVisibility("NOT_RESTRICTED") - .restrictUserDomains(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) .allowedIpAddresses("testString") .mfa("NONE") + .userMfa(java.util.Arrays.asList(userMfaModel)) .sessionExpirationInSeconds("86400") .sessionInvalidationInSeconds("7200") .maxSessionsPerIdentity("testString") .systemAccessTokenExpirationInSeconds("3600") .systemRefreshTokenExpirationInSeconds("259200") - .userMfa(java.util.Arrays.asList(userMfaModel)) + .restrictUserListVisibility("NOT_RESTRICTED") + .restrictUserDomains(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) .build(); // Invoke updateAccountSettings() with a valid options model and verify the result @@ -2783,7 +2785,7 @@ public void testUpdateAccountSettingsNoOptions() throws Throwable { @Test public void testGetEffectiveAccountSettingsWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"account_id\": \"accountId\", \"effective\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"restrict_user_list_visibility\": \"NOT_RESTRICTED\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\", \"name\": \"name\", \"userName\": \"userName\", \"email\": \"email\", \"description\": \"description\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\"}, \"account\": {\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"account_id\": \"accountId\", \"entity_tag\": \"entityTag\", \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"restrict_user_list_visibility\": \"NOT_RESTRICTED\", \"restrict_user_domains\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}], \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\", \"name\": \"name\", \"userName\": \"userName\", \"email\": \"email\", \"description\": \"description\"}]}, \"assigned_templates\": [{\"template_id\": \"templateId\", \"template_version\": 15, \"template_name\": \"templateName\", \"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"restrict_user_list_visibility\": \"NOT_RESTRICTED\", \"restrict_user_domains\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}], \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\", \"name\": \"name\", \"userName\": \"userName\", \"email\": \"email\", \"description\": \"description\"}]}]}"; + String mockResponseBody = "{\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"account_id\": \"accountId\", \"effective\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"restrict_user_list_visibility\": \"NOT_RESTRICTED\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\", \"name\": \"name\", \"userName\": \"userName\", \"email\": \"email\", \"description\": \"description\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\"}, \"account\": {\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"account_id\": \"accountId\", \"entity_tag\": \"entityTag\", \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"restrict_user_list_visibility\": \"NOT_RESTRICTED\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\", \"name\": \"name\", \"userName\": \"userName\", \"email\": \"email\", \"description\": \"description\"}], \"restrict_user_domains\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}]}, \"assigned_templates\": [{\"template_id\": \"templateId\", \"template_version\": 15, \"template_name\": \"templateName\", \"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"restrict_user_list_visibility\": \"RESTRICTED\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\", \"name\": \"name\", \"userName\": \"userName\", \"email\": \"email\", \"description\": \"description\"}], \"restrict_user_domains\": {\"account_sufficient\": false, \"restrictions\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}]}}]}"; String getEffectiveAccountSettingsPath = "/v1/accounts/testString/effective_settings/identity"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -4221,7 +4223,7 @@ public void testUpdateTrustedProfileAssignmentNoOptions() throws Throwable { @Test public void testListAccountSettingsTemplatesWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"offset\": 6, \"limit\": 20, \"first\": \"first\", \"previous\": \"previous\", \"next\": \"next\", \"account_settings_templates\": [{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\"}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}]}"; + String mockResponseBody = "{\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"offset\": 6, \"limit\": 20, \"first\": \"first\", \"previous\": \"previous\", \"next\": \"next\", \"account_settings_templates\": [{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"restrict_user_list_visibility\": \"RESTRICTED\", \"restrict_user_domains\": {\"account_sufficient\": false, \"restrictions\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}]}}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}]}"; String listAccountSettingsTemplatesPath = "/v1/account_settings_templates"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -4276,7 +4278,7 @@ public void testListAccountSettingsTemplatesWRetries() throws Throwable { @Test public void testCreateAccountSettingsTemplateWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\"}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}"; + String mockResponseBody = "{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"restrict_user_list_visibility\": \"RESTRICTED\", \"restrict_user_domains\": {\"account_sufficient\": false, \"restrictions\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}]}}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}"; String createAccountSettingsTemplatePath = "/v1/account_settings_templates"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -4289,8 +4291,21 @@ public void testCreateAccountSettingsTemplateWOptions() throws Throwable { .mfa("NONE") .build(); - // Construct an instance of the AccountSettingsComponent model - AccountSettingsComponent accountSettingsComponentModel = new AccountSettingsComponent.Builder() + // Construct an instance of the AccountSettingsUserDomainRestriction model + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) + .restrictInvitation(true) + .build(); + + // Construct an instance of the TemplateAccountSettingsRestrictUserDomains model + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(true) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + + // Construct an instance of the TemplateAccountSettings model + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() .restrictCreateServiceId("NOT_SET") .restrictCreatePlatformApikey("NOT_SET") .allowedIpAddresses("testString") @@ -4301,6 +4316,8 @@ public void testCreateAccountSettingsTemplateWOptions() throws Throwable { .maxSessionsPerIdentity("testString") .systemAccessTokenExpirationInSeconds("3600") .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) .build(); // Construct an instance of the CreateAccountSettingsTemplateOptions model @@ -4308,7 +4325,7 @@ public void testCreateAccountSettingsTemplateWOptions() throws Throwable { .accountId("testString") .name("testString") .description("testString") - .accountSettings(accountSettingsComponentModel) + .accountSettings(templateAccountSettingsModel) .build(); // Invoke createAccountSettingsTemplate() with a valid options model and verify the result @@ -4343,7 +4360,7 @@ public void testCreateAccountSettingsTemplateWRetries() throws Throwable { @Test public void testGetLatestAccountSettingsTemplateVersionWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\"}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}"; + String mockResponseBody = "{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"restrict_user_list_visibility\": \"RESTRICTED\", \"restrict_user_domains\": {\"account_sufficient\": false, \"restrictions\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}]}}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}"; String getLatestAccountSettingsTemplateVersionPath = "/v1/account_settings_templates/testString"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -4446,7 +4463,7 @@ public void testDeleteAllVersionsOfAccountSettingsTemplateNoOptions() throws Thr @Test public void testListVersionsOfAccountSettingsTemplateWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"offset\": 6, \"limit\": 20, \"first\": \"first\", \"previous\": \"previous\", \"next\": \"next\", \"account_settings_templates\": [{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\"}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}]}"; + String mockResponseBody = "{\"context\": {\"transaction_id\": \"transactionId\", \"operation\": \"operation\", \"user_agent\": \"userAgent\", \"url\": \"url\", \"instance_id\": \"instanceId\", \"thread_id\": \"threadId\", \"host\": \"host\", \"start_time\": \"startTime\", \"end_time\": \"endTime\", \"elapsed_time\": \"elapsedTime\", \"cluster_name\": \"clusterName\"}, \"offset\": 6, \"limit\": 20, \"first\": \"first\", \"previous\": \"previous\", \"next\": \"next\", \"account_settings_templates\": [{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"restrict_user_list_visibility\": \"RESTRICTED\", \"restrict_user_domains\": {\"account_sufficient\": false, \"restrictions\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}]}}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}]}"; String listVersionsOfAccountSettingsTemplatePath = "/v1/account_settings_templates/testString/versions"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -4507,7 +4524,7 @@ public void testListVersionsOfAccountSettingsTemplateNoOptions() throws Throwabl @Test public void testCreateAccountSettingsTemplateVersionWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\"}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}"; + String mockResponseBody = "{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"restrict_user_list_visibility\": \"RESTRICTED\", \"restrict_user_domains\": {\"account_sufficient\": false, \"restrictions\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}]}}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}"; String createAccountSettingsTemplateVersionPath = "/v1/account_settings_templates/testString/versions"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -4520,8 +4537,21 @@ public void testCreateAccountSettingsTemplateVersionWOptions() throws Throwable .mfa("NONE") .build(); - // Construct an instance of the AccountSettingsComponent model - AccountSettingsComponent accountSettingsComponentModel = new AccountSettingsComponent.Builder() + // Construct an instance of the AccountSettingsUserDomainRestriction model + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) + .restrictInvitation(true) + .build(); + + // Construct an instance of the TemplateAccountSettingsRestrictUserDomains model + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(true) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + + // Construct an instance of the TemplateAccountSettings model + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() .restrictCreateServiceId("NOT_SET") .restrictCreatePlatformApikey("NOT_SET") .allowedIpAddresses("testString") @@ -4532,6 +4562,8 @@ public void testCreateAccountSettingsTemplateVersionWOptions() throws Throwable .maxSessionsPerIdentity("testString") .systemAccessTokenExpirationInSeconds("3600") .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) .build(); // Construct an instance of the CreateAccountSettingsTemplateVersionOptions model @@ -4540,7 +4572,7 @@ public void testCreateAccountSettingsTemplateVersionWOptions() throws Throwable .accountId("testString") .name("testString") .description("testString") - .accountSettings(accountSettingsComponentModel) + .accountSettings(templateAccountSettingsModel) .build(); // Invoke createAccountSettingsTemplateVersion() with a valid options model and verify the result @@ -4582,7 +4614,7 @@ public void testCreateAccountSettingsTemplateVersionNoOptions() throws Throwable @Test public void testGetAccountSettingsTemplateVersionWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\"}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}"; + String mockResponseBody = "{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"restrict_user_list_visibility\": \"RESTRICTED\", \"restrict_user_domains\": {\"account_sufficient\": false, \"restrictions\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}]}}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}"; String getAccountSettingsTemplateVersionPath = "/v1/account_settings_templates/testString/versions/testString"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -4636,7 +4668,7 @@ public void testGetAccountSettingsTemplateVersionNoOptions() throws Throwable { @Test public void testUpdateAccountSettingsTemplateVersionWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\"}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}"; + String mockResponseBody = "{\"id\": \"id\", \"version\": 7, \"account_id\": \"accountId\", \"name\": \"name\", \"description\": \"description\", \"committed\": false, \"account_settings\": {\"restrict_create_service_id\": \"NOT_SET\", \"restrict_create_platform_apikey\": \"NOT_SET\", \"allowed_ip_addresses\": \"allowedIpAddresses\", \"mfa\": \"NONE\", \"user_mfa\": [{\"iam_id\": \"iamId\", \"mfa\": \"NONE\"}], \"session_expiration_in_seconds\": \"86400\", \"session_invalidation_in_seconds\": \"7200\", \"max_sessions_per_identity\": \"maxSessionsPerIdentity\", \"system_access_token_expiration_in_seconds\": \"3600\", \"system_refresh_token_expiration_in_seconds\": \"259200\", \"restrict_user_list_visibility\": \"RESTRICTED\", \"restrict_user_domains\": {\"account_sufficient\": false, \"restrictions\": [{\"realm_id\": \"IBMid\", \"invitation_email_allow_patterns\": [\"invitationEmailAllowPatterns\"], \"restrict_invitation\": true}]}}, \"history\": [{\"timestamp\": \"timestamp\", \"iam_id\": \"iamId\", \"iam_id_account\": \"iamIdAccount\", \"action\": \"action\", \"params\": [\"params\"], \"message\": \"message\"}], \"entity_tag\": \"entityTag\", \"crn\": \"crn\", \"created_at\": \"createdAt\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"lastModifiedAt\", \"last_modified_by_id\": \"lastModifiedById\"}"; String updateAccountSettingsTemplateVersionPath = "/v1/account_settings_templates/testString/versions/testString"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -4649,8 +4681,21 @@ public void testUpdateAccountSettingsTemplateVersionWOptions() throws Throwable .mfa("NONE") .build(); - // Construct an instance of the AccountSettingsComponent model - AccountSettingsComponent accountSettingsComponentModel = new AccountSettingsComponent.Builder() + // Construct an instance of the AccountSettingsUserDomainRestriction model + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) + .restrictInvitation(true) + .build(); + + // Construct an instance of the TemplateAccountSettingsRestrictUserDomains model + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(true) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + + // Construct an instance of the TemplateAccountSettings model + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() .restrictCreateServiceId("NOT_SET") .restrictCreatePlatformApikey("NOT_SET") .allowedIpAddresses("testString") @@ -4661,6 +4706,8 @@ public void testUpdateAccountSettingsTemplateVersionWOptions() throws Throwable .maxSessionsPerIdentity("testString") .systemAccessTokenExpirationInSeconds("3600") .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) .build(); // Construct an instance of the UpdateAccountSettingsTemplateVersionOptions model @@ -4671,7 +4718,7 @@ public void testUpdateAccountSettingsTemplateVersionWOptions() throws Throwable .accountId("testString") .name("testString") .description("testString") - .accountSettings(accountSettingsComponentModel) + .accountSettings(templateAccountSettingsModel) .build(); // Invoke updateAccountSettingsTemplateVersion() with a valid options model and verify the result diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsAssignedTemplatesSectionTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsAssignedTemplatesSectionTest.java index 6ac932ff9bb..3d192fa3ea3 100644 --- a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsAssignedTemplatesSectionTest.java +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsAssignedTemplatesSectionTest.java @@ -16,6 +16,7 @@ import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsAssignedTemplatesSection; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserDomainRestriction; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserMFAResponse; +import com.ibm.cloud.platform_services.iam_identity.v1.model.AssignedTemplatesAccountSettingsRestrictUserDomains; import com.ibm.cloud.platform_services.iam_identity.v1.utils.TestUtilities; import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; import java.io.InputStream; @@ -39,8 +40,6 @@ public void testAccountSettingsAssignedTemplatesSection() throws Throwable { assertNull(accountSettingsAssignedTemplatesSectionModel.getTemplateName()); assertNull(accountSettingsAssignedTemplatesSectionModel.getRestrictCreateServiceId()); assertNull(accountSettingsAssignedTemplatesSectionModel.getRestrictCreatePlatformApikey()); - assertNull(accountSettingsAssignedTemplatesSectionModel.getRestrictUserListVisibility()); - assertNull(accountSettingsAssignedTemplatesSectionModel.getRestrictUserDomains()); assertNull(accountSettingsAssignedTemplatesSectionModel.getAllowedIpAddresses()); assertNull(accountSettingsAssignedTemplatesSectionModel.getMfa()); assertNull(accountSettingsAssignedTemplatesSectionModel.getSessionExpirationInSeconds()); @@ -48,6 +47,8 @@ public void testAccountSettingsAssignedTemplatesSection() throws Throwable { assertNull(accountSettingsAssignedTemplatesSectionModel.getMaxSessionsPerIdentity()); assertNull(accountSettingsAssignedTemplatesSectionModel.getSystemAccessTokenExpirationInSeconds()); assertNull(accountSettingsAssignedTemplatesSectionModel.getSystemRefreshTokenExpirationInSeconds()); + assertNull(accountSettingsAssignedTemplatesSectionModel.getRestrictUserListVisibility()); assertNull(accountSettingsAssignedTemplatesSectionModel.getUserMfa()); + assertNull(accountSettingsAssignedTemplatesSectionModel.getRestrictUserDomains()); } } \ No newline at end of file diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsResponseTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsResponseTest.java index f42777c5ed5..d5bbe9b6c8b 100644 --- a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsResponseTest.java +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsResponseTest.java @@ -42,8 +42,6 @@ public void testAccountSettingsResponse() throws Throwable { assertNull(accountSettingsResponseModel.getHistory()); assertNull(accountSettingsResponseModel.getRestrictCreateServiceId()); assertNull(accountSettingsResponseModel.getRestrictCreatePlatformApikey()); - assertNull(accountSettingsResponseModel.getRestrictUserListVisibility()); - assertNull(accountSettingsResponseModel.getRestrictUserDomains()); assertNull(accountSettingsResponseModel.getAllowedIpAddresses()); assertNull(accountSettingsResponseModel.getMfa()); assertNull(accountSettingsResponseModel.getSessionExpirationInSeconds()); @@ -51,6 +49,8 @@ public void testAccountSettingsResponse() throws Throwable { assertNull(accountSettingsResponseModel.getMaxSessionsPerIdentity()); assertNull(accountSettingsResponseModel.getSystemAccessTokenExpirationInSeconds()); assertNull(accountSettingsResponseModel.getSystemRefreshTokenExpirationInSeconds()); + assertNull(accountSettingsResponseModel.getRestrictUserListVisibility()); assertNull(accountSettingsResponseModel.getUserMfa()); + assertNull(accountSettingsResponseModel.getRestrictUserDomains()); } } \ No newline at end of file diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateListTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateListTest.java index 146b067f6b6..d4c123b82b7 100644 --- a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateListTest.java +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateListTest.java @@ -13,11 +13,13 @@ package com.ibm.cloud.platform_services.iam_identity.v1.model; -import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsComponent; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsTemplateList; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsTemplateResponse; +import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserDomainRestriction; import com.ibm.cloud.platform_services.iam_identity.v1.model.EnityHistoryRecord; import com.ibm.cloud.platform_services.iam_identity.v1.model.ResponseContext; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettings; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettingsRestrictUserDomains; import com.ibm.cloud.platform_services.iam_identity.v1.model.UserMfa; import com.ibm.cloud.platform_services.iam_identity.v1.utils.TestUtilities; import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateResponseTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateResponseTest.java index de874724224..5e9ca2df052 100644 --- a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateResponseTest.java +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsTemplateResponseTest.java @@ -13,9 +13,11 @@ package com.ibm.cloud.platform_services.iam_identity.v1.model; -import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsComponent; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsTemplateResponse; +import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserDomainRestriction; import com.ibm.cloud.platform_services.iam_identity.v1.model.EnityHistoryRecord; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettings; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettingsRestrictUserDomains; import com.ibm.cloud.platform_services.iam_identity.v1.model.UserMfa; import com.ibm.cloud.platform_services.iam_identity.v1.utils.TestUtilities; import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AssignedTemplatesAccountSettingsRestrictUserDomainsTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AssignedTemplatesAccountSettingsRestrictUserDomainsTest.java new file mode 100644 index 00000000000..f9a27a95e1d --- /dev/null +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AssignedTemplatesAccountSettingsRestrictUserDomainsTest.java @@ -0,0 +1,39 @@ +/* + * (C) Copyright IBM Corp. 2025. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package com.ibm.cloud.platform_services.iam_identity.v1.model; + +import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserDomainRestriction; +import com.ibm.cloud.platform_services.iam_identity.v1.model.AssignedTemplatesAccountSettingsRestrictUserDomains; +import com.ibm.cloud.platform_services.iam_identity.v1.utils.TestUtilities; +import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; +import java.io.InputStream; +import java.util.HashMap; +import java.util.List; +import org.testng.annotations.Test; +import static org.testng.Assert.*; + +/** + * Unit test class for the AssignedTemplatesAccountSettingsRestrictUserDomains model. + */ +public class AssignedTemplatesAccountSettingsRestrictUserDomainsTest { + final HashMap mockStreamMap = TestUtilities.createMockStreamMap(); + final List mockListFileWithMetadata = TestUtilities.creatMockListFileWithMetadata(); + + @Test + public void testAssignedTemplatesAccountSettingsRestrictUserDomains() throws Throwable { + AssignedTemplatesAccountSettingsRestrictUserDomains assignedTemplatesAccountSettingsRestrictUserDomainsModel = new AssignedTemplatesAccountSettingsRestrictUserDomains(); + assertNull(assignedTemplatesAccountSettingsRestrictUserDomainsModel.isAccountSufficient()); + assertNull(assignedTemplatesAccountSettingsRestrictUserDomainsModel.getRestrictions()); + } +} \ No newline at end of file diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateOptionsTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateOptionsTest.java index 0c566754b4b..3cf177ca999 100644 --- a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateOptionsTest.java +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateOptionsTest.java @@ -13,8 +13,10 @@ package com.ibm.cloud.platform_services.iam_identity.v1.model; -import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsComponent; +import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserDomainRestriction; import com.ibm.cloud.platform_services.iam_identity.v1.model.CreateAccountSettingsTemplateOptions; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettings; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettingsRestrictUserDomains; import com.ibm.cloud.platform_services.iam_identity.v1.model.UserMfa; import com.ibm.cloud.platform_services.iam_identity.v1.utils.TestUtilities; import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; @@ -40,7 +42,23 @@ public void testCreateAccountSettingsTemplateOptions() throws Throwable { assertEquals(userMfaModel.iamId(), "testString"); assertEquals(userMfaModel.mfa(), "NONE"); - AccountSettingsComponent accountSettingsComponentModel = new AccountSettingsComponent.Builder() + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) + .restrictInvitation(true) + .build(); + assertEquals(accountSettingsUserDomainRestrictionModel.realmId(), "IBMid"); + assertEquals(accountSettingsUserDomainRestrictionModel.invitationEmailAllowPatterns(), java.util.Arrays.asList("*.*@company.com")); + assertEquals(accountSettingsUserDomainRestrictionModel.restrictInvitation(), Boolean.valueOf(true)); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(true) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + assertEquals(templateAccountSettingsRestrictUserDomainsModel.accountSufficient(), Boolean.valueOf(true)); + assertEquals(templateAccountSettingsRestrictUserDomainsModel.restrictions(), java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)); + + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() .restrictCreateServiceId("NOT_SET") .restrictCreatePlatformApikey("NOT_SET") .allowedIpAddresses("testString") @@ -51,27 +69,31 @@ public void testCreateAccountSettingsTemplateOptions() throws Throwable { .maxSessionsPerIdentity("testString") .systemAccessTokenExpirationInSeconds("3600") .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) .build(); - assertEquals(accountSettingsComponentModel.restrictCreateServiceId(), "NOT_SET"); - assertEquals(accountSettingsComponentModel.restrictCreatePlatformApikey(), "NOT_SET"); - assertEquals(accountSettingsComponentModel.allowedIpAddresses(), "testString"); - assertEquals(accountSettingsComponentModel.mfa(), "NONE"); - assertEquals(accountSettingsComponentModel.userMfa(), java.util.Arrays.asList(userMfaModel)); - assertEquals(accountSettingsComponentModel.sessionExpirationInSeconds(), "86400"); - assertEquals(accountSettingsComponentModel.sessionInvalidationInSeconds(), "7200"); - assertEquals(accountSettingsComponentModel.maxSessionsPerIdentity(), "testString"); - assertEquals(accountSettingsComponentModel.systemAccessTokenExpirationInSeconds(), "3600"); - assertEquals(accountSettingsComponentModel.systemRefreshTokenExpirationInSeconds(), "259200"); + assertEquals(templateAccountSettingsModel.restrictCreateServiceId(), "NOT_SET"); + assertEquals(templateAccountSettingsModel.restrictCreatePlatformApikey(), "NOT_SET"); + assertEquals(templateAccountSettingsModel.allowedIpAddresses(), "testString"); + assertEquals(templateAccountSettingsModel.mfa(), "NONE"); + assertEquals(templateAccountSettingsModel.userMfa(), java.util.Arrays.asList(userMfaModel)); + assertEquals(templateAccountSettingsModel.sessionExpirationInSeconds(), "86400"); + assertEquals(templateAccountSettingsModel.sessionInvalidationInSeconds(), "7200"); + assertEquals(templateAccountSettingsModel.maxSessionsPerIdentity(), "testString"); + assertEquals(templateAccountSettingsModel.systemAccessTokenExpirationInSeconds(), "3600"); + assertEquals(templateAccountSettingsModel.systemRefreshTokenExpirationInSeconds(), "259200"); + assertEquals(templateAccountSettingsModel.restrictUserListVisibility(), "RESTRICTED"); + assertEquals(templateAccountSettingsModel.restrictUserDomains(), templateAccountSettingsRestrictUserDomainsModel); CreateAccountSettingsTemplateOptions createAccountSettingsTemplateOptionsModel = new CreateAccountSettingsTemplateOptions.Builder() .accountId("testString") .name("testString") .description("testString") - .accountSettings(accountSettingsComponentModel) + .accountSettings(templateAccountSettingsModel) .build(); assertEquals(createAccountSettingsTemplateOptionsModel.accountId(), "testString"); assertEquals(createAccountSettingsTemplateOptionsModel.name(), "testString"); assertEquals(createAccountSettingsTemplateOptionsModel.description(), "testString"); - assertEquals(createAccountSettingsTemplateOptionsModel.accountSettings(), accountSettingsComponentModel); + assertEquals(createAccountSettingsTemplateOptionsModel.accountSettings(), templateAccountSettingsModel); } } \ No newline at end of file diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateVersionOptionsTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateVersionOptionsTest.java index fdafe5f2997..343ba2ef12b 100644 --- a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateVersionOptionsTest.java +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/CreateAccountSettingsTemplateVersionOptionsTest.java @@ -13,8 +13,10 @@ package com.ibm.cloud.platform_services.iam_identity.v1.model; -import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsComponent; +import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserDomainRestriction; import com.ibm.cloud.platform_services.iam_identity.v1.model.CreateAccountSettingsTemplateVersionOptions; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettings; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettingsRestrictUserDomains; import com.ibm.cloud.platform_services.iam_identity.v1.model.UserMfa; import com.ibm.cloud.platform_services.iam_identity.v1.utils.TestUtilities; import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; @@ -40,7 +42,23 @@ public void testCreateAccountSettingsTemplateVersionOptions() throws Throwable { assertEquals(userMfaModel.iamId(), "testString"); assertEquals(userMfaModel.mfa(), "NONE"); - AccountSettingsComponent accountSettingsComponentModel = new AccountSettingsComponent.Builder() + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) + .restrictInvitation(true) + .build(); + assertEquals(accountSettingsUserDomainRestrictionModel.realmId(), "IBMid"); + assertEquals(accountSettingsUserDomainRestrictionModel.invitationEmailAllowPatterns(), java.util.Arrays.asList("*.*@company.com")); + assertEquals(accountSettingsUserDomainRestrictionModel.restrictInvitation(), Boolean.valueOf(true)); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(true) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + assertEquals(templateAccountSettingsRestrictUserDomainsModel.accountSufficient(), Boolean.valueOf(true)); + assertEquals(templateAccountSettingsRestrictUserDomainsModel.restrictions(), java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)); + + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() .restrictCreateServiceId("NOT_SET") .restrictCreatePlatformApikey("NOT_SET") .allowedIpAddresses("testString") @@ -51,30 +69,34 @@ public void testCreateAccountSettingsTemplateVersionOptions() throws Throwable { .maxSessionsPerIdentity("testString") .systemAccessTokenExpirationInSeconds("3600") .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) .build(); - assertEquals(accountSettingsComponentModel.restrictCreateServiceId(), "NOT_SET"); - assertEquals(accountSettingsComponentModel.restrictCreatePlatformApikey(), "NOT_SET"); - assertEquals(accountSettingsComponentModel.allowedIpAddresses(), "testString"); - assertEquals(accountSettingsComponentModel.mfa(), "NONE"); - assertEquals(accountSettingsComponentModel.userMfa(), java.util.Arrays.asList(userMfaModel)); - assertEquals(accountSettingsComponentModel.sessionExpirationInSeconds(), "86400"); - assertEquals(accountSettingsComponentModel.sessionInvalidationInSeconds(), "7200"); - assertEquals(accountSettingsComponentModel.maxSessionsPerIdentity(), "testString"); - assertEquals(accountSettingsComponentModel.systemAccessTokenExpirationInSeconds(), "3600"); - assertEquals(accountSettingsComponentModel.systemRefreshTokenExpirationInSeconds(), "259200"); + assertEquals(templateAccountSettingsModel.restrictCreateServiceId(), "NOT_SET"); + assertEquals(templateAccountSettingsModel.restrictCreatePlatformApikey(), "NOT_SET"); + assertEquals(templateAccountSettingsModel.allowedIpAddresses(), "testString"); + assertEquals(templateAccountSettingsModel.mfa(), "NONE"); + assertEquals(templateAccountSettingsModel.userMfa(), java.util.Arrays.asList(userMfaModel)); + assertEquals(templateAccountSettingsModel.sessionExpirationInSeconds(), "86400"); + assertEquals(templateAccountSettingsModel.sessionInvalidationInSeconds(), "7200"); + assertEquals(templateAccountSettingsModel.maxSessionsPerIdentity(), "testString"); + assertEquals(templateAccountSettingsModel.systemAccessTokenExpirationInSeconds(), "3600"); + assertEquals(templateAccountSettingsModel.systemRefreshTokenExpirationInSeconds(), "259200"); + assertEquals(templateAccountSettingsModel.restrictUserListVisibility(), "RESTRICTED"); + assertEquals(templateAccountSettingsModel.restrictUserDomains(), templateAccountSettingsRestrictUserDomainsModel); CreateAccountSettingsTemplateVersionOptions createAccountSettingsTemplateVersionOptionsModel = new CreateAccountSettingsTemplateVersionOptions.Builder() .templateId("testString") .accountId("testString") .name("testString") .description("testString") - .accountSettings(accountSettingsComponentModel) + .accountSettings(templateAccountSettingsModel) .build(); assertEquals(createAccountSettingsTemplateVersionOptionsModel.templateId(), "testString"); assertEquals(createAccountSettingsTemplateVersionOptionsModel.accountId(), "testString"); assertEquals(createAccountSettingsTemplateVersionOptionsModel.name(), "testString"); assertEquals(createAccountSettingsTemplateVersionOptionsModel.description(), "testString"); - assertEquals(createAccountSettingsTemplateVersionOptionsModel.accountSettings(), accountSettingsComponentModel); + assertEquals(createAccountSettingsTemplateVersionOptionsModel.accountSettings(), templateAccountSettingsModel); } @Test(expectedExceptions = IllegalArgumentException.class) diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/EffectiveAccountSettingsResponseTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/EffectiveAccountSettingsResponseTest.java index b5528031be1..04b5e12bb8e 100644 --- a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/EffectiveAccountSettingsResponseTest.java +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/EffectiveAccountSettingsResponseTest.java @@ -18,6 +18,7 @@ import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsResponse; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserDomainRestriction; import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserMFAResponse; +import com.ibm.cloud.platform_services.iam_identity.v1.model.AssignedTemplatesAccountSettingsRestrictUserDomains; import com.ibm.cloud.platform_services.iam_identity.v1.model.EffectiveAccountSettingsResponse; import com.ibm.cloud.platform_services.iam_identity.v1.model.EnityHistoryRecord; import com.ibm.cloud.platform_services.iam_identity.v1.model.ResponseContext; diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsRestrictUserDomainsTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsRestrictUserDomainsTest.java new file mode 100644 index 00000000000..595c35b74e1 --- /dev/null +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsRestrictUserDomainsTest.java @@ -0,0 +1,57 @@ +/* + * (C) Copyright IBM Corp. 2025. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package com.ibm.cloud.platform_services.iam_identity.v1.model; + +import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserDomainRestriction; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettingsRestrictUserDomains; +import com.ibm.cloud.platform_services.iam_identity.v1.utils.TestUtilities; +import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; +import java.io.InputStream; +import java.util.HashMap; +import java.util.List; +import org.testng.annotations.Test; +import static org.testng.Assert.*; + +/** + * Unit test class for the TemplateAccountSettingsRestrictUserDomains model. + */ +public class TemplateAccountSettingsRestrictUserDomainsTest { + final HashMap mockStreamMap = TestUtilities.createMockStreamMap(); + final List mockListFileWithMetadata = TestUtilities.creatMockListFileWithMetadata(); + + @Test + public void testTemplateAccountSettingsRestrictUserDomains() throws Throwable { + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) + .restrictInvitation(true) + .build(); + assertEquals(accountSettingsUserDomainRestrictionModel.realmId(), "IBMid"); + assertEquals(accountSettingsUserDomainRestrictionModel.invitationEmailAllowPatterns(), java.util.Arrays.asList("*.*@company.com")); + assertEquals(accountSettingsUserDomainRestrictionModel.restrictInvitation(), Boolean.valueOf(true)); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(true) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + assertEquals(templateAccountSettingsRestrictUserDomainsModel.accountSufficient(), Boolean.valueOf(true)); + assertEquals(templateAccountSettingsRestrictUserDomainsModel.restrictions(), java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)); + + String json = TestUtilities.serialize(templateAccountSettingsRestrictUserDomainsModel); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModelNew = TestUtilities.deserialize(json, TemplateAccountSettingsRestrictUserDomains.class); + assertTrue(templateAccountSettingsRestrictUserDomainsModelNew instanceof TemplateAccountSettingsRestrictUserDomains); + assertEquals(templateAccountSettingsRestrictUserDomainsModelNew.accountSufficient(), Boolean.valueOf(true)); + } +} \ No newline at end of file diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsTest.java new file mode 100644 index 00000000000..26be228e890 --- /dev/null +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/TemplateAccountSettingsTest.java @@ -0,0 +1,103 @@ +/* + * (C) Copyright IBM Corp. 2025. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on + * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ + +package com.ibm.cloud.platform_services.iam_identity.v1.model; + +import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserDomainRestriction; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettings; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettingsRestrictUserDomains; +import com.ibm.cloud.platform_services.iam_identity.v1.model.UserMfa; +import com.ibm.cloud.platform_services.iam_identity.v1.utils.TestUtilities; +import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; +import java.io.InputStream; +import java.util.HashMap; +import java.util.List; +import org.testng.annotations.Test; +import static org.testng.Assert.*; + +/** + * Unit test class for the TemplateAccountSettings model. + */ +public class TemplateAccountSettingsTest { + final HashMap mockStreamMap = TestUtilities.createMockStreamMap(); + final List mockListFileWithMetadata = TestUtilities.creatMockListFileWithMetadata(); + + @Test + public void testTemplateAccountSettings() throws Throwable { + UserMfa userMfaModel = new UserMfa.Builder() + .iamId("testString") + .mfa("NONE") + .build(); + assertEquals(userMfaModel.iamId(), "testString"); + assertEquals(userMfaModel.mfa(), "NONE"); + + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) + .restrictInvitation(true) + .build(); + assertEquals(accountSettingsUserDomainRestrictionModel.realmId(), "IBMid"); + assertEquals(accountSettingsUserDomainRestrictionModel.invitationEmailAllowPatterns(), java.util.Arrays.asList("*.*@company.com")); + assertEquals(accountSettingsUserDomainRestrictionModel.restrictInvitation(), Boolean.valueOf(true)); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(true) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + assertEquals(templateAccountSettingsRestrictUserDomainsModel.accountSufficient(), Boolean.valueOf(true)); + assertEquals(templateAccountSettingsRestrictUserDomainsModel.restrictions(), java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)); + + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() + .restrictCreateServiceId("NOT_SET") + .restrictCreatePlatformApikey("NOT_SET") + .allowedIpAddresses("testString") + .mfa("NONE") + .userMfa(java.util.Arrays.asList(userMfaModel)) + .sessionExpirationInSeconds("86400") + .sessionInvalidationInSeconds("7200") + .maxSessionsPerIdentity("testString") + .systemAccessTokenExpirationInSeconds("3600") + .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) + .build(); + assertEquals(templateAccountSettingsModel.restrictCreateServiceId(), "NOT_SET"); + assertEquals(templateAccountSettingsModel.restrictCreatePlatformApikey(), "NOT_SET"); + assertEquals(templateAccountSettingsModel.allowedIpAddresses(), "testString"); + assertEquals(templateAccountSettingsModel.mfa(), "NONE"); + assertEquals(templateAccountSettingsModel.userMfa(), java.util.Arrays.asList(userMfaModel)); + assertEquals(templateAccountSettingsModel.sessionExpirationInSeconds(), "86400"); + assertEquals(templateAccountSettingsModel.sessionInvalidationInSeconds(), "7200"); + assertEquals(templateAccountSettingsModel.maxSessionsPerIdentity(), "testString"); + assertEquals(templateAccountSettingsModel.systemAccessTokenExpirationInSeconds(), "3600"); + assertEquals(templateAccountSettingsModel.systemRefreshTokenExpirationInSeconds(), "259200"); + assertEquals(templateAccountSettingsModel.restrictUserListVisibility(), "RESTRICTED"); + assertEquals(templateAccountSettingsModel.restrictUserDomains(), templateAccountSettingsRestrictUserDomainsModel); + + String json = TestUtilities.serialize(templateAccountSettingsModel); + + TemplateAccountSettings templateAccountSettingsModelNew = TestUtilities.deserialize(json, TemplateAccountSettings.class); + assertTrue(templateAccountSettingsModelNew instanceof TemplateAccountSettings); + assertEquals(templateAccountSettingsModelNew.restrictCreateServiceId(), "NOT_SET"); + assertEquals(templateAccountSettingsModelNew.restrictCreatePlatformApikey(), "NOT_SET"); + assertEquals(templateAccountSettingsModelNew.allowedIpAddresses(), "testString"); + assertEquals(templateAccountSettingsModelNew.mfa(), "NONE"); + assertEquals(templateAccountSettingsModelNew.sessionExpirationInSeconds(), "86400"); + assertEquals(templateAccountSettingsModelNew.sessionInvalidationInSeconds(), "7200"); + assertEquals(templateAccountSettingsModelNew.maxSessionsPerIdentity(), "testString"); + assertEquals(templateAccountSettingsModelNew.systemAccessTokenExpirationInSeconds(), "3600"); + assertEquals(templateAccountSettingsModelNew.systemRefreshTokenExpirationInSeconds(), "259200"); + assertEquals(templateAccountSettingsModelNew.restrictUserListVisibility(), "RESTRICTED"); + assertEquals(templateAccountSettingsModelNew.restrictUserDomains().toString(), templateAccountSettingsRestrictUserDomainsModel.toString()); + } +} \ No newline at end of file diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsOptionsTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsOptionsTest.java index 618e81ea0fe..0d3d45bd930 100644 --- a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsOptionsTest.java +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsOptionsTest.java @@ -33,6 +33,13 @@ public class UpdateAccountSettingsOptionsTest { @Test public void testUpdateAccountSettingsOptions() throws Throwable { + UserMfa userMfaModel = new UserMfa.Builder() + .iamId("testString") + .mfa("NONE") + .build(); + assertEquals(userMfaModel.iamId(), "testString"); + assertEquals(userMfaModel.mfa(), "NONE"); + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() .realmId("IBMid") .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) @@ -42,43 +49,36 @@ public void testUpdateAccountSettingsOptions() throws Throwable { assertEquals(accountSettingsUserDomainRestrictionModel.invitationEmailAllowPatterns(), java.util.Arrays.asList("*.*@company.com")); assertEquals(accountSettingsUserDomainRestrictionModel.restrictInvitation(), Boolean.valueOf(true)); - UserMfa userMfaModel = new UserMfa.Builder() - .iamId("testString") - .mfa("NONE") - .build(); - assertEquals(userMfaModel.iamId(), "testString"); - assertEquals(userMfaModel.mfa(), "NONE"); - UpdateAccountSettingsOptions updateAccountSettingsOptionsModel = new UpdateAccountSettingsOptions.Builder() .ifMatch("testString") .accountId("testString") .restrictCreateServiceId("NOT_SET") .restrictCreatePlatformApikey("NOT_SET") - .restrictUserListVisibility("NOT_RESTRICTED") - .restrictUserDomains(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) .allowedIpAddresses("testString") .mfa("NONE") + .userMfa(java.util.Arrays.asList(userMfaModel)) .sessionExpirationInSeconds("86400") .sessionInvalidationInSeconds("7200") .maxSessionsPerIdentity("testString") .systemAccessTokenExpirationInSeconds("3600") .systemRefreshTokenExpirationInSeconds("259200") - .userMfa(java.util.Arrays.asList(userMfaModel)) + .restrictUserListVisibility("NOT_RESTRICTED") + .restrictUserDomains(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) .build(); assertEquals(updateAccountSettingsOptionsModel.ifMatch(), "testString"); assertEquals(updateAccountSettingsOptionsModel.accountId(), "testString"); assertEquals(updateAccountSettingsOptionsModel.restrictCreateServiceId(), "NOT_SET"); assertEquals(updateAccountSettingsOptionsModel.restrictCreatePlatformApikey(), "NOT_SET"); - assertEquals(updateAccountSettingsOptionsModel.restrictUserListVisibility(), "NOT_RESTRICTED"); - assertEquals(updateAccountSettingsOptionsModel.restrictUserDomains(), java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)); assertEquals(updateAccountSettingsOptionsModel.allowedIpAddresses(), "testString"); assertEquals(updateAccountSettingsOptionsModel.mfa(), "NONE"); + assertEquals(updateAccountSettingsOptionsModel.userMfa(), java.util.Arrays.asList(userMfaModel)); assertEquals(updateAccountSettingsOptionsModel.sessionExpirationInSeconds(), "86400"); assertEquals(updateAccountSettingsOptionsModel.sessionInvalidationInSeconds(), "7200"); assertEquals(updateAccountSettingsOptionsModel.maxSessionsPerIdentity(), "testString"); assertEquals(updateAccountSettingsOptionsModel.systemAccessTokenExpirationInSeconds(), "3600"); assertEquals(updateAccountSettingsOptionsModel.systemRefreshTokenExpirationInSeconds(), "259200"); - assertEquals(updateAccountSettingsOptionsModel.userMfa(), java.util.Arrays.asList(userMfaModel)); + assertEquals(updateAccountSettingsOptionsModel.restrictUserListVisibility(), "NOT_RESTRICTED"); + assertEquals(updateAccountSettingsOptionsModel.restrictUserDomains(), java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)); } @Test(expectedExceptions = IllegalArgumentException.class) diff --git a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsTemplateVersionOptionsTest.java b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsTemplateVersionOptionsTest.java index de5e6c0e0d8..14f74a63080 100644 --- a/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsTemplateVersionOptionsTest.java +++ b/modules/iam-identity/src/test/java/com/ibm/cloud/platform_services/iam_identity/v1/model/UpdateAccountSettingsTemplateVersionOptionsTest.java @@ -13,7 +13,9 @@ package com.ibm.cloud.platform_services.iam_identity.v1.model; -import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsComponent; +import com.ibm.cloud.platform_services.iam_identity.v1.model.AccountSettingsUserDomainRestriction; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettings; +import com.ibm.cloud.platform_services.iam_identity.v1.model.TemplateAccountSettingsRestrictUserDomains; import com.ibm.cloud.platform_services.iam_identity.v1.model.UpdateAccountSettingsTemplateVersionOptions; import com.ibm.cloud.platform_services.iam_identity.v1.model.UserMfa; import com.ibm.cloud.platform_services.iam_identity.v1.utils.TestUtilities; @@ -40,7 +42,23 @@ public void testUpdateAccountSettingsTemplateVersionOptions() throws Throwable { assertEquals(userMfaModel.iamId(), "testString"); assertEquals(userMfaModel.mfa(), "NONE"); - AccountSettingsComponent accountSettingsComponentModel = new AccountSettingsComponent.Builder() + AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder() + .realmId("IBMid") + .invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com")) + .restrictInvitation(true) + .build(); + assertEquals(accountSettingsUserDomainRestrictionModel.realmId(), "IBMid"); + assertEquals(accountSettingsUserDomainRestrictionModel.invitationEmailAllowPatterns(), java.util.Arrays.asList("*.*@company.com")); + assertEquals(accountSettingsUserDomainRestrictionModel.restrictInvitation(), Boolean.valueOf(true)); + + TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder() + .accountSufficient(true) + .restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)) + .build(); + assertEquals(templateAccountSettingsRestrictUserDomainsModel.accountSufficient(), Boolean.valueOf(true)); + assertEquals(templateAccountSettingsRestrictUserDomainsModel.restrictions(), java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel)); + + TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder() .restrictCreateServiceId("NOT_SET") .restrictCreatePlatformApikey("NOT_SET") .allowedIpAddresses("testString") @@ -51,17 +69,21 @@ public void testUpdateAccountSettingsTemplateVersionOptions() throws Throwable { .maxSessionsPerIdentity("testString") .systemAccessTokenExpirationInSeconds("3600") .systemRefreshTokenExpirationInSeconds("259200") + .restrictUserListVisibility("RESTRICTED") + .restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel) .build(); - assertEquals(accountSettingsComponentModel.restrictCreateServiceId(), "NOT_SET"); - assertEquals(accountSettingsComponentModel.restrictCreatePlatformApikey(), "NOT_SET"); - assertEquals(accountSettingsComponentModel.allowedIpAddresses(), "testString"); - assertEquals(accountSettingsComponentModel.mfa(), "NONE"); - assertEquals(accountSettingsComponentModel.userMfa(), java.util.Arrays.asList(userMfaModel)); - assertEquals(accountSettingsComponentModel.sessionExpirationInSeconds(), "86400"); - assertEquals(accountSettingsComponentModel.sessionInvalidationInSeconds(), "7200"); - assertEquals(accountSettingsComponentModel.maxSessionsPerIdentity(), "testString"); - assertEquals(accountSettingsComponentModel.systemAccessTokenExpirationInSeconds(), "3600"); - assertEquals(accountSettingsComponentModel.systemRefreshTokenExpirationInSeconds(), "259200"); + assertEquals(templateAccountSettingsModel.restrictCreateServiceId(), "NOT_SET"); + assertEquals(templateAccountSettingsModel.restrictCreatePlatformApikey(), "NOT_SET"); + assertEquals(templateAccountSettingsModel.allowedIpAddresses(), "testString"); + assertEquals(templateAccountSettingsModel.mfa(), "NONE"); + assertEquals(templateAccountSettingsModel.userMfa(), java.util.Arrays.asList(userMfaModel)); + assertEquals(templateAccountSettingsModel.sessionExpirationInSeconds(), "86400"); + assertEquals(templateAccountSettingsModel.sessionInvalidationInSeconds(), "7200"); + assertEquals(templateAccountSettingsModel.maxSessionsPerIdentity(), "testString"); + assertEquals(templateAccountSettingsModel.systemAccessTokenExpirationInSeconds(), "3600"); + assertEquals(templateAccountSettingsModel.systemRefreshTokenExpirationInSeconds(), "259200"); + assertEquals(templateAccountSettingsModel.restrictUserListVisibility(), "RESTRICTED"); + assertEquals(templateAccountSettingsModel.restrictUserDomains(), templateAccountSettingsRestrictUserDomainsModel); UpdateAccountSettingsTemplateVersionOptions updateAccountSettingsTemplateVersionOptionsModel = new UpdateAccountSettingsTemplateVersionOptions.Builder() .ifMatch("testString") @@ -70,7 +92,7 @@ public void testUpdateAccountSettingsTemplateVersionOptions() throws Throwable { .accountId("testString") .name("testString") .description("testString") - .accountSettings(accountSettingsComponentModel) + .accountSettings(templateAccountSettingsModel) .build(); assertEquals(updateAccountSettingsTemplateVersionOptionsModel.ifMatch(), "testString"); assertEquals(updateAccountSettingsTemplateVersionOptionsModel.templateId(), "testString"); @@ -78,7 +100,7 @@ public void testUpdateAccountSettingsTemplateVersionOptions() throws Throwable { assertEquals(updateAccountSettingsTemplateVersionOptionsModel.accountId(), "testString"); assertEquals(updateAccountSettingsTemplateVersionOptionsModel.name(), "testString"); assertEquals(updateAccountSettingsTemplateVersionOptionsModel.description(), "testString"); - assertEquals(updateAccountSettingsTemplateVersionOptionsModel.accountSettings(), accountSettingsComponentModel); + assertEquals(updateAccountSettingsTemplateVersionOptionsModel.accountSettings(), templateAccountSettingsModel); } @Test(expectedExceptions = IllegalArgumentException.class)