Skip to content

Commit e014842

Browse files
committed
feat(IAM Identity): add few new account settings
Signed-off-by: Hari K Arla <[email protected]>
1 parent e67e51e commit e014842

26 files changed

+1511
-330
lines changed

modules/examples/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentityExamples.java

Lines changed: 88 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1697,16 +1697,41 @@ public static void main(String[] args) throws Exception {
16971697

16981698
// begin-create_account_settings_template
16991699

1700-
AccountSettingsComponent accountSettings = new AccountSettingsComponent.Builder()
1701-
.mfa("LEVEL1")
1702-
.systemAccessTokenExpirationInSeconds("3000")
1700+
UserMfa userMfaModel = new UserMfa.Builder()
1701+
.iamId(iamId)
1702+
.mfa("NONE")
1703+
.build();
1704+
1705+
AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder()
1706+
.realmId("IBMid")
1707+
.invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@ibm.com"))
1708+
.restrictInvitation(false)
1709+
.build();
1710+
1711+
TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder()
1712+
.accountSufficient(false)
1713+
.restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel))
1714+
.build();
1715+
1716+
TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder()
1717+
.restrictCreateServiceId("NOT_SET")
1718+
.restrictCreatePlatformApikey("NOT_SET")
1719+
.mfa("NONE")
1720+
.userMfa(java.util.Arrays.asList(userMfaModel))
1721+
.sessionExpirationInSeconds("86400")
1722+
.sessionInvalidationInSeconds("7200")
1723+
.maxSessionsPerIdentity("12")
1724+
.systemAccessTokenExpirationInSeconds("3600")
1725+
.systemRefreshTokenExpirationInSeconds("259200")
1726+
.restrictUserListVisibility("RESTRICTED")
1727+
.restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel)
17031728
.build();
17041729

17051730
CreateAccountSettingsTemplateOptions createOptions = new CreateAccountSettingsTemplateOptions.Builder()
17061731
.accountId(enterpriseAccountId)
17071732
.name(accountSettingsTemplateName)
17081733
.description("IAM enterprise account settings template example")
1709-
.accountSettings(accountSettings)
1734+
.accountSettings(templateAccountSettingsModel)
17101735
.build();
17111736

17121737
Response<AccountSettingsTemplateResponse> createResponse = identityservice.createAccountSettingsTemplate(createOptions).execute();
@@ -1776,18 +1801,44 @@ public static void main(String[] args) throws Exception {
17761801

17771802
// begin-update_account_settings_template_version
17781803

1779-
AccountSettingsComponent accountSettings = new AccountSettingsComponent.Builder()
1804+
UserMfa userMfaModel = new UserMfa.Builder()
1805+
.iamId(iamId)
1806+
.mfa("LEVEL1")
1807+
.build();
1808+
1809+
AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder()
1810+
.realmId("IBMid")
1811+
.invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@company.com"))
1812+
.restrictInvitation(false)
1813+
.build();
1814+
1815+
TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder()
1816+
.accountSufficient(false)
1817+
.restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel))
1818+
.build();
1819+
1820+
TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder()
1821+
.restrictCreateServiceId("NOT_RESTRICTED")
1822+
.restrictCreatePlatformApikey("RESTRICTED")
17801823
.mfa("LEVEL1")
1781-
.systemAccessTokenExpirationInSeconds("3000")
1824+
.userMfa(java.util.Arrays.asList(userMfaModel))
1825+
.sessionExpirationInSeconds("86400")
1826+
.sessionInvalidationInSeconds("7200")
1827+
.maxSessionsPerIdentity("10")
1828+
.systemAccessTokenExpirationInSeconds("3600")
1829+
.systemRefreshTokenExpirationInSeconds("259200")
1830+
.restrictUserListVisibility("NOT_RESTRICTED")
1831+
.restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel)
17821832
.build();
1833+
17831834
UpdateAccountSettingsTemplateVersionOptions updateOptions = new UpdateAccountSettingsTemplateVersionOptions.Builder()
17841835
.accountId(enterpriseAccountId)
17851836
.templateId(accountSettingsTemplateId)
17861837
.version(Long.toString(accountSettingsTemplateVersion))
17871838
.ifMatch(accountSettingsTemplateEtag)
17881839
.name(accountSettingsTemplateName)
17891840
.description("IAM enterprise account settings template example - updated")
1790-
.accountSettings(accountSettings)
1841+
.accountSettings(templateAccountSettingsModel)
17911842
.build();
17921843

17931844
Response<AccountSettingsTemplateResponse> updateResponse = identityservice.updateAccountSettingsTemplateVersion(updateOptions).execute();
@@ -1905,18 +1956,42 @@ public static void main(String[] args) throws Exception {
19051956

19061957
// begin-create_account_settings_template_version
19071958

1908-
AccountSettingsComponent accountSettings = new AccountSettingsComponent.Builder()
1909-
.mfa("LEVEL1")
1910-
.systemAccessTokenExpirationInSeconds("2600")
1911-
.restrictCreatePlatformApikey("RESTRICTED")
1912-
.restrictCreateServiceId("RESTRICTED")
1959+
UserMfa userMfaModel = new UserMfa.Builder()
1960+
.iamId(iamId)
1961+
.mfa("NONE")
19131962
.build();
1963+
1964+
AccountSettingsUserDomainRestriction accountSettingsUserDomainRestrictionModel = new AccountSettingsUserDomainRestriction.Builder()
1965+
.realmId("IBMid")
1966+
.invitationEmailAllowPatterns(java.util.Arrays.asList("*.*@ibm.com"))
1967+
.restrictInvitation(false)
1968+
.build();
1969+
1970+
TemplateAccountSettingsRestrictUserDomains templateAccountSettingsRestrictUserDomainsModel = new TemplateAccountSettingsRestrictUserDomains.Builder()
1971+
.accountSufficient(false)
1972+
.restrictions(java.util.Arrays.asList(accountSettingsUserDomainRestrictionModel))
1973+
.build();
1974+
1975+
TemplateAccountSettings templateAccountSettingsModel = new TemplateAccountSettings.Builder()
1976+
.restrictCreateServiceId("NOT_SET")
1977+
.restrictCreatePlatformApikey("NOT_SET")
1978+
.mfa("NONE")
1979+
.userMfa(java.util.Arrays.asList(userMfaModel))
1980+
.sessionExpirationInSeconds("86400")
1981+
.sessionInvalidationInSeconds("7200")
1982+
.maxSessionsPerIdentity("12")
1983+
.systemAccessTokenExpirationInSeconds("3600")
1984+
.systemRefreshTokenExpirationInSeconds("259200")
1985+
.restrictUserListVisibility("RESTRICTED")
1986+
.restrictUserDomains(templateAccountSettingsRestrictUserDomainsModel)
1987+
.build();
1988+
19141989
CreateAccountSettingsTemplateVersionOptions createOptions = new CreateAccountSettingsTemplateVersionOptions.Builder()
19151990
.accountId(enterpriseAccountId)
19161991
.templateId(accountSettingsTemplateId)
19171992
.name(accountSettingsTemplateName)
19181993
.description("IAM enterprise account settings template example - new version")
1919-
.accountSettings(accountSettings)
1994+
.accountSettings(templateAccountSettingsModel)
19201995
.build();
19211996

19221997
Response<AccountSettingsTemplateResponse> createResponse = identityservice.createAccountSettingsTemplateVersion(createOptions).execute();

modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/IamIdentity.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1681,18 +1681,15 @@ public ServiceCall<AccountSettingsResponse> updateAccountSettings(UpdateAccountS
16811681
if (updateAccountSettingsOptions.restrictCreatePlatformApikey() != null) {
16821682
contentJson.addProperty("restrict_create_platform_apikey", updateAccountSettingsOptions.restrictCreatePlatformApikey());
16831683
}
1684-
if (updateAccountSettingsOptions.restrictUserListVisibility() != null) {
1685-
contentJson.addProperty("restrict_user_list_visibility", updateAccountSettingsOptions.restrictUserListVisibility());
1686-
}
1687-
if (updateAccountSettingsOptions.restrictUserDomains() != null) {
1688-
contentJson.add("restrict_user_domains", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(updateAccountSettingsOptions.restrictUserDomains()));
1689-
}
16901684
if (updateAccountSettingsOptions.allowedIpAddresses() != null) {
16911685
contentJson.addProperty("allowed_ip_addresses", updateAccountSettingsOptions.allowedIpAddresses());
16921686
}
16931687
if (updateAccountSettingsOptions.mfa() != null) {
16941688
contentJson.addProperty("mfa", updateAccountSettingsOptions.mfa());
16951689
}
1690+
if (updateAccountSettingsOptions.userMfa() != null) {
1691+
contentJson.add("user_mfa", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(updateAccountSettingsOptions.userMfa()));
1692+
}
16961693
if (updateAccountSettingsOptions.sessionExpirationInSeconds() != null) {
16971694
contentJson.addProperty("session_expiration_in_seconds", updateAccountSettingsOptions.sessionExpirationInSeconds());
16981695
}
@@ -1708,8 +1705,11 @@ public ServiceCall<AccountSettingsResponse> updateAccountSettings(UpdateAccountS
17081705
if (updateAccountSettingsOptions.systemRefreshTokenExpirationInSeconds() != null) {
17091706
contentJson.addProperty("system_refresh_token_expiration_in_seconds", updateAccountSettingsOptions.systemRefreshTokenExpirationInSeconds());
17101707
}
1711-
if (updateAccountSettingsOptions.userMfa() != null) {
1712-
contentJson.add("user_mfa", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(updateAccountSettingsOptions.userMfa()));
1708+
if (updateAccountSettingsOptions.restrictUserListVisibility() != null) {
1709+
contentJson.addProperty("restrict_user_list_visibility", updateAccountSettingsOptions.restrictUserListVisibility());
1710+
}
1711+
if (updateAccountSettingsOptions.restrictUserDomains() != null) {
1712+
contentJson.add("restrict_user_domains", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(updateAccountSettingsOptions.restrictUserDomains()));
17131713
}
17141714
builder.bodyJson(contentJson);
17151715
ResponseConverter<AccountSettingsResponse> responseConverter =

modules/iam-identity/src/main/java/com/ibm/cloud/platform_services/iam_identity/v1/model/AccountSettingsAssignedTemplatesSection.java

Lines changed: 45 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import com.ibm.cloud.sdk.core.service.model.GenericModel;
2020

2121
/**
22-
* Response body format for Account Settings REST requests.
22+
* Input body parameters for the Account Settings REST request.
2323
*/
2424
public class AccountSettingsAssignedTemplatesSection extends GenericModel {
2525

@@ -55,19 +55,6 @@ public interface RestrictCreatePlatformApikey {
5555
String NOT_SET = "NOT_SET";
5656
}
5757

58-
/**
59-
* Defines whether or not user visibility is access controlled. Valid values:
60-
* * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to
61-
* the account, or descendants of those users based on the classic infrastructure hierarchy
62-
* * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console.
63-
*/
64-
public interface RestrictUserListVisibility {
65-
/** NOT_RESTRICTED. */
66-
String NOT_RESTRICTED = "NOT_RESTRICTED";
67-
/** RESTRICTED. */
68-
String RESTRICTED = "RESTRICTED";
69-
}
70-
7158
/**
7259
* MFA trait definitions as follows:
7360
* * NONE - No MFA trait set
@@ -95,6 +82,22 @@ public interface Mfa {
9582
String LEVEL3 = "LEVEL3";
9683
}
9784

85+
/**
86+
* Defines whether or not user visibility is access controlled. Valid values:
87+
* * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to
88+
* the account, or descendants of those users based on the classic infrastructure hierarchy
89+
* * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console
90+
* * NOT_SET - to 'unset' a previous set value.
91+
*/
92+
public interface RestrictUserListVisibility {
93+
/** RESTRICTED. */
94+
String RESTRICTED = "RESTRICTED";
95+
/** NOT_RESTRICTED. */
96+
String NOT_RESTRICTED = "NOT_RESTRICTED";
97+
/** NOT_SET. */
98+
String NOT_SET = "NOT_SET";
99+
}
100+
98101
@SerializedName("template_id")
99102
protected String templateId;
100103
@SerializedName("template_version")
@@ -105,10 +108,6 @@ public interface Mfa {
105108
protected String restrictCreateServiceId;
106109
@SerializedName("restrict_create_platform_apikey")
107110
protected String restrictCreatePlatformApikey;
108-
@SerializedName("restrict_user_list_visibility")
109-
protected String restrictUserListVisibility;
110-
@SerializedName("restrict_user_domains")
111-
protected List<AccountSettingsUserDomainRestriction> restrictUserDomains;
112111
@SerializedName("allowed_ip_addresses")
113112
protected String allowedIpAddresses;
114113
protected String mfa;
@@ -122,8 +121,12 @@ public interface Mfa {
122121
protected String systemAccessTokenExpirationInSeconds;
123122
@SerializedName("system_refresh_token_expiration_in_seconds")
124123
protected String systemRefreshTokenExpirationInSeconds;
124+
@SerializedName("restrict_user_list_visibility")
125+
protected String restrictUserListVisibility;
125126
@SerializedName("user_mfa")
126127
protected List<AccountSettingsUserMFAResponse> userMfa;
128+
@SerializedName("restrict_user_domains")
129+
protected AssignedTemplatesAccountSettingsRestrictUserDomains restrictUserDomains;
127130

128131
protected AccountSettingsAssignedTemplatesSection() { }
129132

@@ -190,32 +193,6 @@ public String getRestrictCreatePlatformApikey() {
190193
return restrictCreatePlatformApikey;
191194
}
192195

193-
/**
194-
* Gets the restrictUserListVisibility.
195-
*
196-
* Defines whether or not user visibility is access controlled. Valid values:
197-
* * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to
198-
* the account, or descendants of those users based on the classic infrastructure hierarchy
199-
* * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console.
200-
*
201-
* @return the restrictUserListVisibility
202-
*/
203-
public String getRestrictUserListVisibility() {
204-
return restrictUserListVisibility;
205-
}
206-
207-
/**
208-
* Gets the restrictUserDomains.
209-
*
210-
* Defines if account invitations are restricted to specified domains. To remove an entry for a realm_id, perform an
211-
* update (PUT) request with only the realm_id set.
212-
*
213-
* @return the restrictUserDomains
214-
*/
215-
public List<AccountSettingsUserDomainRestriction> getRestrictUserDomains() {
216-
return restrictUserDomains;
217-
}
218-
219196
/**
220197
* Gets the allowedIpAddresses.
221198
*
@@ -310,6 +287,21 @@ public String getSystemRefreshTokenExpirationInSeconds() {
310287
return systemRefreshTokenExpirationInSeconds;
311288
}
312289

290+
/**
291+
* Gets the restrictUserListVisibility.
292+
*
293+
* Defines whether or not user visibility is access controlled. Valid values:
294+
* * RESTRICTED - users can view only specific types of users in the account, such as those the user has invited to
295+
* the account, or descendants of those users based on the classic infrastructure hierarchy
296+
* * NOT_RESTRICTED - any user in the account can view other users from the Users page in IBM Cloud console
297+
* * NOT_SET - to 'unset' a previous set value.
298+
*
299+
* @return the restrictUserListVisibility
300+
*/
301+
public String getRestrictUserListVisibility() {
302+
return restrictUserListVisibility;
303+
}
304+
313305
/**
314306
* Gets the userMfa.
315307
*
@@ -320,5 +312,14 @@ public String getSystemRefreshTokenExpirationInSeconds() {
320312
public List<AccountSettingsUserMFAResponse> getUserMfa() {
321313
return userMfa;
322314
}
315+
316+
/**
317+
* Gets the restrictUserDomains.
318+
*
319+
* @return the restrictUserDomains
320+
*/
321+
public AssignedTemplatesAccountSettingsRestrictUserDomains getRestrictUserDomains() {
322+
return restrictUserDomains;
323+
}
323324
}
324325

0 commit comments

Comments
 (0)