diff --git a/modules/examples/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementExamples.java b/modules/examples/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementExamples.java index e8c836dee35..90501dd0b23 100644 --- a/modules/examples/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementExamples.java +++ b/modules/examples/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementExamples.java @@ -135,6 +135,9 @@ import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateRole; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.UpdateRoleAssignmentOptions; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ReplaceRoleTemplateOptions; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateControl; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; import com.ibm.cloud.sdk.core.http.Response; import com.ibm.cloud.sdk.core.service.exception.ServiceResponseException; @@ -197,6 +200,7 @@ protected IamPolicyManagementExamples() { } private static String exampleRoleTemplateVersion = null; private static String exampleRoleTemplateAssignmentId = null; private static String exampleRoleTemplateAssignmentETag = null; + private static String exampleRolePolicyTemplateId = null; static { System.setProperty("IBM_CREDENTIALS_FILE", "../../iam_policy_management.env"); @@ -809,10 +813,10 @@ public static void main(String[] args) throws Exception { Roles rolesModel = new Roles.Builder() .roleId("crn:v1:bluemix:public:iam::::serviceRole:Writer") .build(); - Grant grantModel = new Grant.Builder() + TemplateGrant grantModel = new TemplateGrant.Builder() .roles(java.util.Arrays.asList(rolesModel)) .build(); - Control controlModel = new Control.Builder() + TemplateControl controlModel = new TemplateControl.Builder() .grant(grantModel) .build(); V2PolicySubjectAttribute subjectAttributeService = new V2PolicySubjectAttribute.Builder() @@ -883,10 +887,10 @@ public static void main(String[] args) throws Exception { Roles rolesModel = new Roles.Builder() .roleId("crn:v1:bluemix:public:iam::::serviceRole:Reader") .build(); - Grant grantModel = new Grant.Builder() + TemplateGrant grantModel = new TemplateGrant.Builder() .roles(java.util.Arrays.asList(rolesModel)) .build(); - Control controlModel = new Control.Builder() + TemplateControl controlModel = new TemplateControl.Builder() .grant(grantModel) .build(); V2PolicySubjectAttribute subjectAttributeService = new V2PolicySubjectAttribute.Builder() @@ -951,10 +955,10 @@ public static void main(String[] args) throws Exception { Roles rolesModel = new Roles.Builder() .roleId("crn:v1:bluemix:public:iam::::role:Viewer") .build(); - Grant grantModel = new Grant.Builder() + TemplateGrant grantModel = new TemplateGrant.Builder() .roles(java.util.Arrays.asList(rolesModel)) .build(); - Control controlModel = new Control.Builder() + TemplateControl controlModel = new TemplateControl.Builder() .grant(grantModel) .build(); V2PolicySubjectAttribute subjectAttributeService = new V2PolicySubjectAttribute.Builder() @@ -1580,6 +1584,55 @@ public static void main(String[] args) throws Exception { e.getStatusCode(), e.getMessage(), e.getDebuggingInfo()), e); } + try { + System.out.println("createRolePolicyTemplate() result:"); + // begin-create_policy_template + V2PolicyResourceAttribute v2PolicyResourceAttributeModel = new V2PolicyResourceAttribute.Builder() + .key("serviceName") + .value("am-test-service") + .operator("stringEquals") + .build(); + V2PolicyResource v2PolicyResourceModel = new V2PolicyResource.Builder() + .attributes(java.util.Arrays.asList(v2PolicyResourceAttributeModel)) + .build(); + Roles rolesModel = new Roles.Builder() + .roleId("crn:v1:bluemix:public:iam::::role:Viewer") + .build(); + RoleTemplateReferencesItem roleTemplateReferencesModel = new RoleTemplateReferencesItem.Builder() + .id(exampleRoleTemplateId) + .version(exampleRoleTemplateVersion) + .build(); + TemplateGrant grantModel = new TemplateGrant.Builder() + .roles(java.util.Arrays.asList(rolesModel)) + .roleTemplateReferences(java.util.Arrays.asList(roleTemplateReferencesModel)) + .build(); + TemplateControl controlModel = new TemplateControl.Builder() + .grant(grantModel) + .build(); + TemplatePolicy templatePolicyModel = new TemplatePolicy.Builder() + .type("access") + .resource(v2PolicyResourceModel) + .control(controlModel) + .build(); + CreatePolicyTemplateOptions createPolicyTemplateOptions = new CreatePolicyTemplateOptions.Builder() + .name("SDKRolePTExamplesTest") + .accountId(exampleAccountId) + .policy(templatePolicyModel) + .build(); + + Response response = service.createPolicyTemplate(createPolicyTemplateOptions).execute(); + PolicyTemplateLimitData policyTemplate = response.getResult(); + + exampleRolePolicyTemplateId = policyTemplate.getId(); + + System.out.println(policyTemplate); + // end-create_role_policy_template + + } catch (ServiceResponseException e) { + logger.error(String.format("Service returned status code %s: %s%nError details: %s", + e.getStatusCode(), e.getMessage(), e.getDebuggingInfo()), e); + } + try { System.out.println("getRoleTemplate() result:"); // begin-get_role_template @@ -1603,9 +1656,7 @@ public static void main(String[] args) throws Exception { System.out.println("replaceRoleTemplate() result:"); // begin-replace_role_template TemplateRole templateRoleModel = new TemplateRole.Builder() - .name("SDKTestRoleTemplateRep") .displayName("SDKTestRoleTemplateRep") - .serviceName("am-test-service") .actions(java.util.Arrays.asList("am-test-service.test.create")) .build(); ReplaceRoleTemplateOptions replaceRoleTemplateOptions = new ReplaceRoleTemplateOptions.Builder() @@ -1651,9 +1702,7 @@ public static void main(String[] args) throws Exception { System.out.println("createRoleTemplateVersion() result:"); // begin-create_role_template_version TemplateRole templateRoleModel = new TemplateRole.Builder() - .name("SDKTestRoleVersion") .displayName("SDKTestRoleVersionDisp") - .serviceName("am-test-service") .description("am-test-service versioon customRole") .actions(java.util.Arrays.asList("am-test-service.test.create")) .build(); @@ -1833,6 +1882,21 @@ public static void main(String[] args) throws Exception { logger.error(String.format("Service returned status code %s: %s%nError details: %s", e.getStatusCode(), e.getMessage(), e.getDebuggingInfo()), e); } + + try { + // begin-delete_role_policy_template + DeletePolicyTemplateOptions deletePolicyTemplateOptions = new DeletePolicyTemplateOptions.Builder() + .policyTemplateId(exampleRolePolicyTemplateId) + .build(); + + Response response = service.deletePolicyTemplate(deletePolicyTemplateOptions).execute(); + // end-delete_role_policy_template + System.out.printf("deleteRolePolicyTemplate() response status code: %d%n", response.getStatusCode()); + } catch (ServiceResponseException e) { + logger.error(String.format("Service returned status code %s: %s%nError details: %s", + e.getStatusCode(), e.getMessage(), e.getDebuggingInfo()), e); + } + try { // begin-delete_role_template_version DeleteRoleTemplateVersionOptions deleteRoleTemplateVersionOptions = new DeleteRoleTemplateVersionOptions.Builder() diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagement.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagement.java index 23449c10169..2abe3baea4e 100644 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagement.java +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagement.java @@ -2252,13 +2252,15 @@ public ServiceCall createRoleTemplateVersion(CreateRoleTemplateVer } builder.header("Accept", "application/json"); final JsonObject contentJson = new JsonObject(); - contentJson.add("role", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(createRoleTemplateVersionOptions.role())); if (createRoleTemplateVersionOptions.name() != null) { contentJson.addProperty("name", createRoleTemplateVersionOptions.name()); } if (createRoleTemplateVersionOptions.description() != null) { contentJson.addProperty("description", createRoleTemplateVersionOptions.description()); } + if (createRoleTemplateVersionOptions.role() != null) { + contentJson.add("role", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(createRoleTemplateVersionOptions.role())); + } if (createRoleTemplateVersionOptions.committed() != null) { contentJson.addProperty("committed", createRoleTemplateVersionOptions.committed()); } @@ -2323,13 +2325,15 @@ public ServiceCall replaceRoleTemplate(ReplaceRoleTemplateOptions builder.header("Accept", "application/json"); builder.header("If-Match", replaceRoleTemplateOptions.ifMatch()); final JsonObject contentJson = new JsonObject(); - contentJson.add("role", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(replaceRoleTemplateOptions.role())); if (replaceRoleTemplateOptions.name() != null) { contentJson.addProperty("name", replaceRoleTemplateOptions.name()); } if (replaceRoleTemplateOptions.description() != null) { contentJson.addProperty("description", replaceRoleTemplateOptions.description()); } + if (replaceRoleTemplateOptions.role() != null) { + contentJson.add("role", com.ibm.cloud.sdk.core.util.GsonSingleton.getGson().toJsonTree(replaceRoleTemplateOptions.role())); + } if (replaceRoleTemplateOptions.committed() != null) { contentJson.addProperty("committed", replaceRoleTemplateOptions.committed()); } diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateOptions.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateOptions.java index 35183eb3313..baf82e17961 100644 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateOptions.java +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateOptions.java @@ -24,7 +24,7 @@ public class CreateRoleTemplateOptions extends GenericModel { protected String accountId; protected String description; protected Boolean committed; - protected TemplateRole role; + protected RoleTemplatePrototypeRole role; protected String acceptLanguage; /** @@ -35,7 +35,7 @@ public static class Builder { private String accountId; private String description; private Boolean committed; - private TemplateRole role; + private RoleTemplatePrototypeRole role; private String acceptLanguage; /** @@ -128,7 +128,7 @@ public Builder committed(Boolean committed) { * @param role the role * @return the CreateRoleTemplateOptions builder */ - public Builder role(TemplateRole role) { + public Builder role(RoleTemplatePrototypeRole role) { this.role = role; return this; } @@ -222,7 +222,7 @@ public Boolean committed() { * * @return the role */ - public TemplateRole role() { + public RoleTemplatePrototypeRole role() { return role; } diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateVersionOptions.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateVersionOptions.java index dafc10e913b..c322c5a332d 100644 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateVersionOptions.java +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateVersionOptions.java @@ -21,9 +21,9 @@ public class CreateRoleTemplateVersionOptions extends GenericModel { protected String roleTemplateId; - protected TemplateRole role; protected String name; protected String description; + protected TemplateRole role; protected Boolean committed; /** @@ -31,9 +31,9 @@ public class CreateRoleTemplateVersionOptions extends GenericModel { */ public static class Builder { private String roleTemplateId; - private TemplateRole role; private String name; private String description; + private TemplateRole role; private Boolean committed; /** @@ -43,9 +43,9 @@ public static class Builder { */ private Builder(CreateRoleTemplateVersionOptions createRoleTemplateVersionOptions) { this.roleTemplateId = createRoleTemplateVersionOptions.roleTemplateId; - this.role = createRoleTemplateVersionOptions.role; this.name = createRoleTemplateVersionOptions.name; this.description = createRoleTemplateVersionOptions.description; + this.role = createRoleTemplateVersionOptions.role; this.committed = createRoleTemplateVersionOptions.committed; } @@ -59,11 +59,9 @@ public Builder() { * Instantiates a new builder with required properties. * * @param roleTemplateId the roleTemplateId - * @param role the role */ - public Builder(String roleTemplateId, TemplateRole role) { + public Builder(String roleTemplateId) { this.roleTemplateId = roleTemplateId; - this.role = role; } /** @@ -86,17 +84,6 @@ public Builder roleTemplateId(String roleTemplateId) { return this; } - /** - * Set the role. - * - * @param role the role - * @return the CreateRoleTemplateVersionOptions builder - */ - public Builder role(TemplateRole role) { - this.role = role; - return this; - } - /** * Set the name. * @@ -119,6 +106,17 @@ public Builder description(String description) { return this; } + /** + * Set the role. + * + * @param role the role + * @return the CreateRoleTemplateVersionOptions builder + */ + public Builder role(TemplateRole role) { + this.role = role; + return this; + } + /** * Set the committed. * @@ -136,12 +134,10 @@ protected CreateRoleTemplateVersionOptions() { } protected CreateRoleTemplateVersionOptions(Builder builder) { com.ibm.cloud.sdk.core.util.Validator.notEmpty(builder.roleTemplateId, "roleTemplateId cannot be empty"); - com.ibm.cloud.sdk.core.util.Validator.notNull(builder.role, - "role cannot be null"); roleTemplateId = builder.roleTemplateId; - role = builder.role; name = builder.name; description = builder.description; + role = builder.role; committed = builder.committed; } @@ -165,17 +161,6 @@ public String roleTemplateId() { return roleTemplateId; } - /** - * Gets the role. - * - * The role properties that are created in an action resource when the template is assigned. - * - * @return the role - */ - public TemplateRole role() { - return role; - } - /** * Gets the name. * @@ -200,6 +185,17 @@ public String description() { return description; } + /** + * Gets the role. + * + * The role properties that are created in an action resource when the template is assigned. + * + * @return the role + */ + public TemplateRole role() { + return role; + } + /** * Gets the committed. * diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ErrorResponse.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ErrorResponse.java deleted file mode 100644 index 4e685441188..00000000000 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ErrorResponse.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * (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_policy_management.v1.model; - -import java.util.List; - -import com.google.gson.annotations.SerializedName; -import com.ibm.cloud.sdk.core.service.model.GenericModel; - -/** - * The error response from API. - */ -public class ErrorResponse extends GenericModel { - - protected String trace; - protected List errors; - @SerializedName("status_code") - protected Long statusCode; - - protected ErrorResponse() { } - - /** - * Gets the trace. - * - * The unique transaction ID for the request. - * - * @return the trace - */ - public String getTrace() { - return trace; - } - - /** - * Gets the errors. - * - * The errors encountered during the response. - * - * @return the errors - */ - public List getErrors() { - return errors; - } - - /** - * Gets the statusCode. - * - * The HTTP error code of the response. - * - * @return the statusCode - */ - public Long getStatusCode() { - return statusCode; - } -} - diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentResourcesPolicy.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentResourcesPolicy.java index d9a1216f5ec..d79617a0a98 100644 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentResourcesPolicy.java +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentResourcesPolicy.java @@ -23,7 +23,7 @@ public class PolicyAssignmentResourcesPolicy extends GenericModel { @SerializedName("resource_created") protected AssignmentResourceCreated resourceCreated; @SerializedName("error_message") - protected ErrorResponse errorMessage; + protected AssignmentResourceError errorMessage; protected PolicyAssignmentResourcesPolicy() { } @@ -45,7 +45,7 @@ public AssignmentResourceCreated getResourceCreated() { * * @return the errorMessage */ - public ErrorResponse getErrorMessage() { + public AssignmentResourceError getErrorMessage() { return errorMessage; } } diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplacePolicyTemplateOptions.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplacePolicyTemplateOptions.java index 3c1347dce63..5a55c4898e5 100644 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplacePolicyTemplateOptions.java +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplacePolicyTemplateOptions.java @@ -217,9 +217,9 @@ public String version() { /** * Gets the ifMatch. * - * The revision number for updating a policy template version and must match the ETag value of the existing policy + * The revision number for updating a policy template version and must match the Etag value of the existing policy * template version. The Etag can be retrieved using the GET - * /v1/policy_templates/{policy_template_id}/versions/{version} API and looking at the ETag response header. + * /v1/policy_templates/{policy_template_id}/versions/{version} API and looking at the Etag response header. * * @return the ifMatch */ diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplaceRoleTemplateOptions.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplaceRoleTemplateOptions.java index ed017c6502e..9a69b13326c 100644 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplaceRoleTemplateOptions.java +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplaceRoleTemplateOptions.java @@ -23,9 +23,9 @@ public class ReplaceRoleTemplateOptions extends GenericModel { protected String roleTemplateId; protected String version; protected String ifMatch; - protected TemplateRole role; protected String name; protected String description; + protected TemplateRole role; protected Boolean committed; /** @@ -35,9 +35,9 @@ public static class Builder { private String roleTemplateId; private String version; private String ifMatch; - private TemplateRole role; private String name; private String description; + private TemplateRole role; private Boolean committed; /** @@ -49,9 +49,9 @@ private Builder(ReplaceRoleTemplateOptions replaceRoleTemplateOptions) { this.roleTemplateId = replaceRoleTemplateOptions.roleTemplateId; this.version = replaceRoleTemplateOptions.version; this.ifMatch = replaceRoleTemplateOptions.ifMatch; - this.role = replaceRoleTemplateOptions.role; this.name = replaceRoleTemplateOptions.name; this.description = replaceRoleTemplateOptions.description; + this.role = replaceRoleTemplateOptions.role; this.committed = replaceRoleTemplateOptions.committed; } @@ -67,13 +67,11 @@ public Builder() { * @param roleTemplateId the roleTemplateId * @param version the version * @param ifMatch the ifMatch - * @param role the role */ - public Builder(String roleTemplateId, String version, String ifMatch, TemplateRole role) { + public Builder(String roleTemplateId, String version, String ifMatch) { this.roleTemplateId = roleTemplateId; this.version = version; this.ifMatch = ifMatch; - this.role = role; } /** @@ -118,17 +116,6 @@ public Builder ifMatch(String ifMatch) { return this; } - /** - * Set the role. - * - * @param role the role - * @return the ReplaceRoleTemplateOptions builder - */ - public Builder role(TemplateRole role) { - this.role = role; - return this; - } - /** * Set the name. * @@ -151,6 +138,17 @@ public Builder description(String description) { return this; } + /** + * Set the role. + * + * @param role the role + * @return the ReplaceRoleTemplateOptions builder + */ + public Builder role(TemplateRole role) { + this.role = role; + return this; + } + /** * Set the committed. * @@ -172,14 +170,12 @@ protected ReplaceRoleTemplateOptions(Builder builder) { "version cannot be empty"); com.ibm.cloud.sdk.core.util.Validator.notNull(builder.ifMatch, "ifMatch cannot be null"); - com.ibm.cloud.sdk.core.util.Validator.notNull(builder.role, - "role cannot be null"); roleTemplateId = builder.roleTemplateId; version = builder.version; ifMatch = builder.ifMatch; - role = builder.role; name = builder.name; description = builder.description; + role = builder.role; committed = builder.committed; } @@ -227,17 +223,6 @@ public String ifMatch() { return ifMatch; } - /** - * Gets the role. - * - * The role properties that are created in an action resource when the template is assigned. - * - * @return the role - */ - public TemplateRole role() { - return role; - } - /** * Gets the name. * @@ -262,6 +247,17 @@ public String description() { return description; } + /** + * Gets the role. + * + * The role properties that are created in an action resource when the template is assigned. + * + * @return the role + */ + public TemplateRole role() { + return role; + } + /** * Gets the committed. * diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleAssignmentResourceCreated.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleAssignmentResourceCreated.java index e83347c984e..9ea359d63fb 100644 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleAssignmentResourceCreated.java +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleAssignmentResourceCreated.java @@ -16,7 +16,7 @@ import com.ibm.cloud.sdk.core.service.model.GenericModel; /** - * On success, it includes the action control assigned. + * On success, it includes the role assigned. */ public class RoleAssignmentResourceCreated extends GenericModel { diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleAssignmentResourceRole.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleAssignmentResourceRole.java index 95358784dd0..22d40bdaef4 100644 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleAssignmentResourceRole.java +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleAssignmentResourceRole.java @@ -31,7 +31,7 @@ protected RoleAssignmentResourceRole() { } /** * Gets the resourceCreated. * - * On success, it includes the action control assigned. + * On success, it includes the role assigned. * * @return the resourceCreated */ diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplate.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplate.java index 49127d6035e..663d0f7f1d0 100644 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplate.java +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplate.java @@ -38,7 +38,7 @@ public interface State { @SerializedName("account_id") protected String accountId; protected Boolean committed; - protected TemplateRole role; + protected RoleTemplatePrototypeRole role; protected String id; protected String href; @SerializedName("created_at") @@ -107,7 +107,7 @@ public Boolean isCommitted() { * * @return the role */ - public TemplateRole getRole() { + public RoleTemplatePrototypeRole getRole() { return role; } diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplatePrototypeRole.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplatePrototypeRole.java new file mode 100644 index 00000000000..43197620689 --- /dev/null +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplatePrototypeRole.java @@ -0,0 +1,239 @@ +/* + * (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_policy_management.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; + +/** + * The role properties that are created in an action resource when the template is assigned. + */ +public class RoleTemplatePrototypeRole extends GenericModel { + + protected String name; + @SerializedName("display_name") + protected String displayName; + @SerializedName("service_name") + protected String serviceName; + protected String description; + protected List actions; + + /** + * Builder. + */ + public static class Builder { + private String name; + private String displayName; + private String serviceName; + private String description; + private List actions; + + /** + * Instantiates a new Builder from an existing RoleTemplatePrototypeRole instance. + * + * @param roleTemplatePrototypeRole the instance to initialize the Builder with + */ + private Builder(RoleTemplatePrototypeRole roleTemplatePrototypeRole) { + this.name = roleTemplatePrototypeRole.name; + this.displayName = roleTemplatePrototypeRole.displayName; + this.serviceName = roleTemplatePrototypeRole.serviceName; + this.description = roleTemplatePrototypeRole.description; + this.actions = roleTemplatePrototypeRole.actions; + } + + /** + * Instantiates a new builder. + */ + public Builder() { + } + + /** + * Instantiates a new builder with required properties. + * + * @param name the name + * @param displayName the displayName + * @param actions the actions + */ + public Builder(String name, String displayName, List actions) { + this.name = name; + this.displayName = displayName; + this.actions = actions; + } + + /** + * Builds a RoleTemplatePrototypeRole. + * + * @return the new RoleTemplatePrototypeRole instance + */ + public RoleTemplatePrototypeRole build() { + return new RoleTemplatePrototypeRole(this); + } + + /** + * Adds a new element to actions. + * + * @param actions the new element to be added + * @return the RoleTemplatePrototypeRole builder + */ + public Builder addActions(String actions) { + com.ibm.cloud.sdk.core.util.Validator.notNull(actions, + "actions cannot be null"); + if (this.actions == null) { + this.actions = new ArrayList(); + } + this.actions.add(actions); + return this; + } + + /** + * Set the name. + * + * @param name the name + * @return the RoleTemplatePrototypeRole builder + */ + public Builder name(String name) { + this.name = name; + return this; + } + + /** + * Set the displayName. + * + * @param displayName the displayName + * @return the RoleTemplatePrototypeRole builder + */ + public Builder displayName(String displayName) { + this.displayName = displayName; + return this; + } + + /** + * Set the serviceName. + * + * @param serviceName the serviceName + * @return the RoleTemplatePrototypeRole builder + */ + public Builder serviceName(String serviceName) { + this.serviceName = serviceName; + return this; + } + + /** + * Set the description. + * + * @param description the description + * @return the RoleTemplatePrototypeRole builder + */ + public Builder description(String description) { + this.description = description; + return this; + } + + /** + * Set the actions. + * Existing actions will be replaced. + * + * @param actions the actions + * @return the RoleTemplatePrototypeRole builder + */ + public Builder actions(List actions) { + this.actions = actions; + return this; + } + } + + protected RoleTemplatePrototypeRole() { } + + protected RoleTemplatePrototypeRole(Builder builder) { + com.ibm.cloud.sdk.core.util.Validator.notNull(builder.name, + "name cannot be null"); + com.ibm.cloud.sdk.core.util.Validator.notNull(builder.displayName, + "displayName cannot be null"); + com.ibm.cloud.sdk.core.util.Validator.notNull(builder.actions, + "actions cannot be null"); + name = builder.name; + displayName = builder.displayName; + serviceName = builder.serviceName; + description = builder.description; + actions = builder.actions; + } + + /** + * New builder. + * + * @return a RoleTemplatePrototypeRole builder + */ + public Builder newBuilder() { + return new Builder(this); + } + + /** + * Gets the name. + * + * The name of the role that is used in the CRN. This must be alphanumeric and capitalized. + * + * @return the name + */ + public String name() { + return name; + } + + /** + * Gets the displayName. + * + * The display the name of the role that is shown in the console. + * + * @return the displayName + */ + public String displayName() { + return displayName; + } + + /** + * Gets the serviceName. + * + * The service name that the role refers. + * + * @return the serviceName + */ + public String serviceName() { + return serviceName; + } + + /** + * Gets the description. + * + * Description of the role. + * + * @return the description + */ + public String description() { + return description; + } + + /** + * Gets the actions. + * + * The actions of the role. + * + * @return the actions + */ + public List actions() { + return actions; + } +} + diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateReferencesItem.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateReferencesItem.java new file mode 100644 index 00000000000..673ff7f9750 --- /dev/null +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateReferencesItem.java @@ -0,0 +1,134 @@ +/* + * (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_policy_management.v1.model; + +import com.ibm.cloud.sdk.core.service.model.GenericModel; + +/** + * A role template reference associated with a policy template. + */ +public class RoleTemplateReferencesItem extends GenericModel { + + protected String id; + protected String version; + + /** + * Builder. + */ + public static class Builder { + private String id; + private String version; + + /** + * Instantiates a new Builder from an existing RoleTemplateReferencesItem instance. + * + * @param roleTemplateReferencesItem the instance to initialize the Builder with + */ + private Builder(RoleTemplateReferencesItem roleTemplateReferencesItem) { + this.id = roleTemplateReferencesItem.id; + this.version = roleTemplateReferencesItem.version; + } + + /** + * Instantiates a new builder. + */ + public Builder() { + } + + /** + * Instantiates a new builder with required properties. + * + * @param id the id + * @param version the version + */ + public Builder(String id, String version) { + this.id = id; + this.version = version; + } + + /** + * Builds a RoleTemplateReferencesItem. + * + * @return the new RoleTemplateReferencesItem instance + */ + public RoleTemplateReferencesItem build() { + return new RoleTemplateReferencesItem(this); + } + + /** + * Set the id. + * + * @param id the id + * @return the RoleTemplateReferencesItem builder + */ + public Builder id(String id) { + this.id = id; + return this; + } + + /** + * Set the version. + * + * @param version the version + * @return the RoleTemplateReferencesItem builder + */ + public Builder version(String version) { + this.version = version; + return this; + } + } + + protected RoleTemplateReferencesItem() { } + + protected RoleTemplateReferencesItem(Builder builder) { + com.ibm.cloud.sdk.core.util.Validator.notNull(builder.id, + "id cannot be null"); + com.ibm.cloud.sdk.core.util.Validator.notNull(builder.version, + "version cannot be null"); + id = builder.id; + version = builder.version; + } + + /** + * New builder. + * + * @return a RoleTemplateReferencesItem builder + */ + public Builder newBuilder() { + return new Builder(this); + } + + /** + * Gets the id. + * + * The role template ID. + * + * @return the id + */ + public String id() { + return id; + } + + /** + * Gets the version. + * + * Role template version. + * + * @return the version + */ + public String version() { + return version; + } +} + diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateControl.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateControl.java new file mode 100644 index 00000000000..c74a77d9b6d --- /dev/null +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateControl.java @@ -0,0 +1,104 @@ +/* + * (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_policy_management.v1.model; + +import com.ibm.cloud.sdk.core.service.model.GenericModel; + +/** + * Specifies the type of access that is granted by the policy. + */ +public class TemplateControl extends GenericModel { + + protected TemplateGrant grant; + + /** + * Builder. + */ + public static class Builder { + private TemplateGrant grant; + + /** + * Instantiates a new Builder from an existing TemplateControl instance. + * + * @param templateControl the instance to initialize the Builder with + */ + private Builder(TemplateControl templateControl) { + this.grant = templateControl.grant; + } + + /** + * Instantiates a new builder. + */ + public Builder() { + } + + /** + * Instantiates a new builder with required properties. + * + * @param grant the grant + */ + public Builder(TemplateGrant grant) { + this.grant = grant; + } + + /** + * Builds a TemplateControl. + * + * @return the new TemplateControl instance + */ + public TemplateControl build() { + return new TemplateControl(this); + } + + /** + * Set the grant. + * + * @param grant the grant + * @return the TemplateControl builder + */ + public Builder grant(TemplateGrant grant) { + this.grant = grant; + return this; + } + } + + protected TemplateControl() { } + + protected TemplateControl(Builder builder) { + com.ibm.cloud.sdk.core.util.Validator.notNull(builder.grant, + "grant cannot be null"); + grant = builder.grant; + } + + /** + * New builder. + * + * @return a TemplateControl builder + */ + public Builder newBuilder() { + return new Builder(this); + } + + /** + * Gets the grant. + * + * Permission is granted by the policy. + * + * @return the grant + */ + public TemplateGrant grant() { + return grant; + } +} + diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateGrant.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateGrant.java new file mode 100644 index 00000000000..b64b7bc8aca --- /dev/null +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateGrant.java @@ -0,0 +1,158 @@ +/* + * (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_policy_management.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; + +/** + * Permission is granted by the policy. + */ +public class TemplateGrant extends GenericModel { + + protected List roles; + @SerializedName("role_template_references") + protected List roleTemplateReferences; + + /** + * Builder. + */ + public static class Builder { + private List roles; + private List roleTemplateReferences; + + /** + * Instantiates a new Builder from an existing TemplateGrant instance. + * + * @param templateGrant the instance to initialize the Builder with + */ + private Builder(TemplateGrant templateGrant) { + this.roles = templateGrant.roles; + this.roleTemplateReferences = templateGrant.roleTemplateReferences; + } + + /** + * Instantiates a new builder. + */ + public Builder() { + } + + /** + * Builds a TemplateGrant. + * + * @return the new TemplateGrant instance + */ + public TemplateGrant build() { + return new TemplateGrant(this); + } + + /** + * Adds a new element to roles. + * + * @param roles the new element to be added + * @return the TemplateGrant builder + */ + public Builder addRoles(Roles roles) { + com.ibm.cloud.sdk.core.util.Validator.notNull(roles, + "roles cannot be null"); + if (this.roles == null) { + this.roles = new ArrayList(); + } + this.roles.add(roles); + return this; + } + + /** + * Adds a new element to roleTemplateReferences. + * + * @param roleTemplateReferences the new element to be added + * @return the TemplateGrant builder + */ + public Builder addRoleTemplateReferences(RoleTemplateReferencesItem roleTemplateReferences) { + com.ibm.cloud.sdk.core.util.Validator.notNull(roleTemplateReferences, + "roleTemplateReferences cannot be null"); + if (this.roleTemplateReferences == null) { + this.roleTemplateReferences = new ArrayList(); + } + this.roleTemplateReferences.add(roleTemplateReferences); + return this; + } + + /** + * Set the roles. + * Existing roles will be replaced. + * + * @param roles the roles + * @return the TemplateGrant builder + */ + public Builder roles(List roles) { + this.roles = roles; + return this; + } + + /** + * Set the roleTemplateReferences. + * Existing roleTemplateReferences will be replaced. + * + * @param roleTemplateReferences the roleTemplateReferences + * @return the TemplateGrant builder + */ + public Builder roleTemplateReferences(List roleTemplateReferences) { + this.roleTemplateReferences = roleTemplateReferences; + return this; + } + } + + protected TemplateGrant() { } + + protected TemplateGrant(Builder builder) { + roles = builder.roles; + roleTemplateReferences = builder.roleTemplateReferences; + } + + /** + * New builder. + * + * @return a TemplateGrant builder + */ + public Builder newBuilder() { + return new Builder(this); + } + + /** + * Gets the roles. + * + * A set of role Cloud Resource Names (CRNs) granted by the policy. + * + * @return the roles + */ + public List roles() { + return roles; + } + + /** + * Gets the roleTemplateReferences. + * + * A set of role template reference IDs granted by the policy. + * + * @return the roleTemplateReferences + */ + public List roleTemplateReferences() { + return roleTemplateReferences; + } +} + diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplatePolicy.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplatePolicy.java index 9da1751c580..496b2e70e40 100644 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplatePolicy.java +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplatePolicy.java @@ -36,7 +36,7 @@ public interface Type { protected V2PolicySubject subject; protected String pattern; protected V2PolicyRule rule; - protected Control control; + protected TemplateControl control; /** * Builder. @@ -48,7 +48,7 @@ public static class Builder { private V2PolicySubject subject; private String pattern; private V2PolicyRule rule; - private Control control; + private TemplateControl control; /** * Instantiates a new Builder from an existing TemplatePolicy instance. @@ -161,7 +161,7 @@ public Builder rule(V2PolicyRule rule) { * @param control the control * @return the TemplatePolicy builder */ - public Builder control(Control control) { + public Builder control(TemplateControl control) { this.control = control; return this; } @@ -265,7 +265,7 @@ public V2PolicyRule rule() { * * @return the control */ - public Control control() { + public TemplateControl control() { return control; } } diff --git a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateRole.java b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateRole.java index c6c41a49874..b76beb3bddb 100644 --- a/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateRole.java +++ b/modules/iam-policy-management/src/main/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateRole.java @@ -24,7 +24,6 @@ */ public class TemplateRole extends GenericModel { - protected String name; @SerializedName("display_name") protected String displayName; @SerializedName("service_name") @@ -36,7 +35,6 @@ public class TemplateRole extends GenericModel { * Builder. */ public static class Builder { - private String name; private String displayName; private String serviceName; private String description; @@ -48,7 +46,6 @@ public static class Builder { * @param templateRole the instance to initialize the Builder with */ private Builder(TemplateRole templateRole) { - this.name = templateRole.name; this.displayName = templateRole.displayName; this.serviceName = templateRole.serviceName; this.description = templateRole.description; @@ -64,15 +61,11 @@ public Builder() { /** * Instantiates a new builder with required properties. * - * @param name the name * @param displayName the displayName - * @param serviceName the serviceName * @param actions the actions */ - public Builder(String name, String displayName, String serviceName, List actions) { - this.name = name; + public Builder(String displayName, List actions) { this.displayName = displayName; - this.serviceName = serviceName; this.actions = actions; } @@ -101,17 +94,6 @@ public Builder addActions(String actions) { return this; } - /** - * Set the name. - * - * @param name the name - * @return the TemplateRole builder - */ - public Builder name(String name) { - this.name = name; - return this; - } - /** * Set the displayName. * @@ -161,15 +143,10 @@ public Builder actions(List actions) { protected TemplateRole() { } protected TemplateRole(Builder builder) { - com.ibm.cloud.sdk.core.util.Validator.notNull(builder.name, - "name cannot be null"); com.ibm.cloud.sdk.core.util.Validator.notNull(builder.displayName, "displayName cannot be null"); - com.ibm.cloud.sdk.core.util.Validator.notNull(builder.serviceName, - "serviceName cannot be null"); com.ibm.cloud.sdk.core.util.Validator.notNull(builder.actions, "actions cannot be null"); - name = builder.name; displayName = builder.displayName; serviceName = builder.serviceName; description = builder.description; @@ -185,17 +162,6 @@ public Builder newBuilder() { return new Builder(this); } - /** - * Gets the name. - * - * The name of the role that is used in the CRN. This must be alphanumeric and capitalized. - * - * @return the name - */ - public String name() { - return name; - } - /** * Gets the displayName. * diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementIT.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementIT.java index 6553893d23d..6dafac20c33 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementIT.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementIT.java @@ -99,10 +99,12 @@ public class IamPolicyManagementIT extends SdkIntegrationTestBase { String testActionControlAssignmentId = null; String testActionControlAssignmentETag = null; String testRoleTemplateId = null; + String testRoleBaseTemplateVersion = null; String testRoleTemplateVersion = null; String testRoleTemplateEtag = null; String testRoleTemplateAssignmentId = null; String testRoleTemplateAssignmentETag = null; + String testRolePolicyTemplateId = null; @Override public String getConfigFilename() { @@ -741,11 +743,11 @@ public void testCreatePolicyTemplate() throws Exception { .roleId(TEST_VIEW_ROLE_CRN) .build(); - Grant policyGrantModel = new Grant.Builder() + TemplateGrant policyGrantModel = new TemplateGrant.Builder() .roles(Arrays.asList(rolesModel)) .build(); - Control controlModel = new Control.Builder() + TemplateControl controlModel = new TemplateControl.Builder() .grant(policyGrantModel) .build(); @@ -815,11 +817,11 @@ public void testReplacePolicyTemplate() { .roleId(TEST_EDITOR_ROLE_CRN) .build(); - Grant policyGrantModel = new Grant.Builder() + TemplateGrant policyGrantModel = new TemplateGrant.Builder() .roles(Arrays.asList(rolesModel)) .build(); - Control controlModel = new Control.Builder() + TemplateControl controlModel = new TemplateControl.Builder() .grant(policyGrantModel) .build(); @@ -896,11 +898,11 @@ public void testCreatePolicyTemplateVersion() { .roleId(TEST_VIEW_ROLE_CRN) .build(); - Grant policyGrantModel = new Grant.Builder() + TemplateGrant policyGrantModel = new TemplateGrant.Builder() .roles(Arrays.asList(rolesModel)) .build(); - Control controlModel = new Control.Builder() + TemplateControl controlModel = new TemplateControl.Builder() .grant(policyGrantModel) .build(); @@ -994,11 +996,11 @@ public void testCommitPolicyTemplate() { .roleId(TEST_EDITOR_ROLE_CRN) .build(); - Grant policyGrantModel = new Grant.Builder() + TemplateGrant policyGrantModel = new TemplateGrant.Builder() .roles(Arrays.asList(rolesModel)) .build(); - Control controlModel = new Control.Builder() + TemplateControl controlModel = new TemplateControl.Builder() .grant(policyGrantModel) .build(); @@ -1082,11 +1084,11 @@ public void testCreateS2SPolicyTemplate() throws Exception { .roleId("crn:v1:bluemix:public:iam::::serviceRole:Writer") .build(); - Grant policyGrantModel = new Grant.Builder() + TemplateGrant policyGrantModel = new TemplateGrant.Builder() .roles(Arrays.asList(rolesModel)) .build(); - Control controlModel = new Control.Builder() + TemplateControl controlModel = new TemplateControl.Builder() .grant(policyGrantModel) .build(); @@ -1147,11 +1149,11 @@ public void testCreatePolicyS2STemplateVersion() { .roleId("crn:v1:bluemix:public:iam::::serviceRole:Reader") .build(); - Grant policyGrantModel = new Grant.Builder() + TemplateGrant policyGrantModel = new TemplateGrant.Builder() .roles(Arrays.asList(rolesModel)) .build(); - Control controlModel = new Control.Builder() + TemplateControl controlModel = new TemplateControl.Builder() .grant(policyGrantModel) .build(); @@ -1730,12 +1732,12 @@ public void testDeleteActionControlTemplate() { /* Role Template Integration Tests - Start */ @Test public void testCreateRoleTemplate() throws Exception { - TemplateRole templateRoleModel = new TemplateRole.Builder() + RoleTemplatePrototypeRole templateRoleModel = new RoleTemplatePrototypeRole.Builder() .name(testCustomRoleName) .displayName(testCustomRoleDisplayName) - .serviceName(TEST_SERVICE_NAME) + .serviceName("am-test-service") .description(testCustomRoleDescription) - .actions(testCustomRoleActions) + .actions(java.util.Arrays.asList("am-test-service.test.create")) .build(); CreateRoleTemplateOptions createRoleTemplateOptions = new CreateRoleTemplateOptions.Builder() @@ -1755,9 +1757,66 @@ public void testCreateRoleTemplate() throws Exception { RoleTemplate roleTemplateResult = response.getResult(); testRoleTemplateId = roleTemplateResult.getId(); + testRoleBaseTemplateVersion = roleTemplateResult.getVersion(); assertNotNull(roleTemplateResult); } + @Test(dependsOnMethods = { "testCreateRoleTemplate" }) + public void testCreateRolePolicyTemplate() throws Exception { + V2PolicyResourceAttribute resourceAttributeService = new V2PolicyResourceAttribute.Builder() + .key("serviceName") + .value("am-test-service") + .operator("stringEquals") + .build(); + + Roles rolesModel = new Roles.Builder() + .roleId(TEST_VIEW_ROLE_CRN) + .build(); + + RoleTemplateReferencesItem roleTemplateReferencesModel = new RoleTemplateReferencesItem.Builder() + .id(testRoleTemplateId) + .version(testRoleBaseTemplateVersion) + .build(); + + TemplateGrant policyGrantModel = new TemplateGrant.Builder() + .roles(Arrays.asList(rolesModel)) + .roleTemplateReferences(Arrays.asList(roleTemplateReferencesModel)) + .build(); + + TemplateControl controlModel = new TemplateControl.Builder() + .grant(policyGrantModel) + .build(); + + V2PolicyResource policyResourceModel = new V2PolicyResource.Builder() + .attributes(new ArrayList(Arrays.asList(resourceAttributeService))) + .build(); + + TemplatePolicy templatePolicyModel = new TemplatePolicy.Builder() + .type(POLICY_TYPE) + .description("SDK Test Policy") + .resource(policyResourceModel) + .control(controlModel) + .build(); + + CreatePolicyTemplateOptions createPolicyTemplateOptions = new CreatePolicyTemplateOptions.Builder() + .name("SDKJavaRolePolicyTemplate" + TEST_UNIQUE_ID) + .accountId(testAccountId) + .policy(templatePolicyModel) + .description("SDK Test template with viewer role") + .build(); + + Response response = service.createPolicyTemplate(createPolicyTemplateOptions).execute(); + assertNotNull(response); + assertEquals(response.getStatusCode(), 201); + + PolicyTemplateLimitData result = response.getResult(); + + assertNotNull(result); + assertEquals(result.getPolicy(), templatePolicyModel); + testRolePolicyTemplateId = result.getId(); + assertEquals(result.getState(), "active"); + } + @Test(dependsOnMethods = { "testCreateRoleTemplate" }) public void testGetRoleTemplate() throws Exception { GetRoleTemplateOptions getRoleTemplateOptions = new GetRoleTemplateOptions.Builder() @@ -1772,7 +1831,6 @@ public void testGetRoleTemplate() throws Exception { assertEquals(response.getStatusCode(), 200); RoleTemplate roleTemplateResult = response.getResult(); - testActionControlBaseTemplateVersion = roleTemplateResult.getVersion(); assertNotNull(roleTemplateResult); List values = response.getHeaders().values(HEADER_ETAG); assertNotNull(values); @@ -1799,9 +1857,7 @@ public void testListRoleTemplates() throws Exception { @Test(dependsOnMethods = { "testListRoleTemplates" }) public void testCreateRoleTemplateVersion() throws Exception { TemplateRole templateRoleModel = new TemplateRole.Builder() - .name("SDKTestRoleVersion") .displayName("SDKTestRoleVersionDisp") - .serviceName("am-test-service") .description("am-test-service versioon customRole") .actions(java.util.Arrays.asList("am-test-service.test.delete")) .build(); @@ -1850,11 +1906,9 @@ public void testListRoleTemplateVersions() throws Exception { public void testReplaceRoleTemplate() throws Exception { TemplateRole templateRoleModel = new TemplateRole.Builder() .actions(java.util.Arrays.asList("testString")) - .name("SDKTestRoleVersionRep") .displayName("SDKTestRoleVersionDispRep") - .serviceName("am-test-service") .description("am-test-service versioon customRole Rep") - .actions(java.util.Arrays.asList("am-test-service.test.create")) + .actions(java.util.Arrays.asList("am-test-service.test.create", "am-test-service.test.delete")) .build(); ReplaceRoleTemplateOptions replaceRoleTemplateOptions = new ReplaceRoleTemplateOptions.Builder() @@ -1862,7 +1916,6 @@ public void testReplaceRoleTemplate() throws Exception { .version(testRoleTemplateVersion) .ifMatch(testRoleTemplateEtag) .role(templateRoleModel) - .name("TestSDKRoleTemplateRep") .description("TestSDKRoleTemplateRepDesc") .build(); @@ -2002,6 +2055,17 @@ public void testDeleteRoleAssignment() throws Exception { assertEquals(response.getStatusCode(), 204); } + @Test(dependsOnMethods = { "testCreateRolePolicyTemplate" }) + public void testDeleteRolePolicyTemplate() { + DeletePolicyTemplateOptions deletePolicyTemplateOptions = new DeletePolicyTemplateOptions.Builder() + .policyTemplateId(testRolePolicyTemplateId) + .build(); + + Response response = service.deletePolicyTemplate(deletePolicyTemplateOptions).execute(); + assertNotNull(response); + assertEquals(response.getStatusCode(), 204); + } + @Test(dependsOnMethods = { "testDeleteRoleAssignment" }) public void testDeleteRoleTemplateVersion() throws Exception { DeleteRoleTemplateVersionOptions deleteRoleTemplateVersionOptions = new DeleteRoleTemplateVersionOptions.Builder() diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementTest.java index aff90b34a30..bc757c03b3c 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/IamPolicyManagementTest.java @@ -150,6 +150,8 @@ import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleCollection; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplate; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateCollection; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplatePrototypeRole; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateVersionsCollection; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateVersionsPager; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplatesPager; @@ -157,7 +159,9 @@ import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RuleAttribute; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.SubjectAttribute; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateActionControl; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateControl; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateCountData; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateMetadata; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplatePolicy; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateRole; @@ -1479,7 +1483,7 @@ public void testDeleteV2PolicyNoOptions() throws Throwable { @Test public void testListPolicyTemplatesWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"limit\": 1, \"first\": {\"href\": \"href\"}, \"next\": {\"href\": \"href\", \"start\": \"start\"}, \"previous\": {\"href\": \"href\", \"start\": \"start\"}, \"policy_templates\": [{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\"}]}"; + String mockResponseBody = "{\"limit\": 1, \"first\": {\"href\": \"href\"}, \"next\": {\"href\": \"href\", \"start\": \"start\"}, \"previous\": {\"href\": \"href\", \"start\": \"start\"}, \"policy_templates\": [{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}], \"role_template_references\": [{\"id\": \"id\", \"version\": \"version\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\"}]}"; String listPolicyTemplatesPath = "/v1/policy_templates"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -1548,8 +1552,8 @@ public void testListPolicyTemplatesNoOptions() throws Throwable { @Test public void testListPolicyTemplatesWithPagerGetNext() throws Throwable { // Set up the two-page mock response. - String mockResponsePage1 = "{\"next\":{\"start\":\"1\"},\"policy_templates\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; - String mockResponsePage2 = "{\"policy_templates\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; + String mockResponsePage1 = "{\"next\":{\"start\":\"1\"},\"policy_templates\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}],\"role_template_references\":[{\"id\":\"id\",\"version\":\"version\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; + String mockResponsePage2 = "{\"policy_templates\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}],\"role_template_references\":[{\"id\":\"id\",\"version\":\"version\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") .setResponseCode(200) @@ -1589,8 +1593,8 @@ public void testListPolicyTemplatesWithPagerGetNext() throws Throwable { @Test public void testListPolicyTemplatesWithPagerGetAll() throws Throwable { // Set up the two-page mock response. - String mockResponsePage1 = "{\"next\":{\"start\":\"1\"},\"policy_templates\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; - String mockResponsePage2 = "{\"policy_templates\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; + String mockResponsePage1 = "{\"next\":{\"start\":\"1\"},\"policy_templates\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}],\"role_template_references\":[{\"id\":\"id\",\"version\":\"version\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; + String mockResponsePage2 = "{\"policy_templates\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}],\"role_template_references\":[{\"id\":\"id\",\"version\":\"version\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") .setResponseCode(200) @@ -1626,7 +1630,7 @@ public void testListPolicyTemplatesWithPagerGetAll() throws Throwable { @Test public void testCreatePolicyTemplateWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\", \"counts\": {\"template\": {\"current\": 7, \"limit\": 5}, \"version\": {\"current\": 7, \"limit\": 5}}}"; + String mockResponseBody = "{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}], \"role_template_references\": [{\"id\": \"id\", \"version\": \"version\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\", \"counts\": {\"template\": {\"current\": 7, \"limit\": 5}, \"version\": {\"current\": 7, \"limit\": 5}}}"; String createPolicyTemplatePath = "/v1/policy_templates"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -1677,14 +1681,21 @@ public void testCreatePolicyTemplateWOptions() throws Throwable { .roleId("testString") .build(); - // Construct an instance of the Grant model - Grant grantModel = new Grant.Builder() + // Construct an instance of the RoleTemplateReferencesItem model + RoleTemplateReferencesItem roleTemplateReferencesItemModel = new RoleTemplateReferencesItem.Builder() + .id("testString") + .version("testString") + .build(); + + // Construct an instance of the TemplateGrant model + TemplateGrant templateGrantModel = new TemplateGrant.Builder() .roles(java.util.Arrays.asList(rolesModel)) + .roleTemplateReferences(java.util.Arrays.asList(roleTemplateReferencesItemModel)) .build(); - // Construct an instance of the Control model - Control controlModel = new Control.Builder() - .grant(grantModel) + // Construct an instance of the TemplateControl model + TemplateControl templateControlModel = new TemplateControl.Builder() + .grant(templateGrantModel) .build(); // Construct an instance of the TemplatePolicy model @@ -1695,7 +1706,7 @@ public void testCreatePolicyTemplateWOptions() throws Throwable { .subject(v2PolicySubjectModel) .pattern("testString") .rule(v2PolicyRuleModel) - .control(controlModel) + .control(templateControlModel) .build(); // Construct an instance of the CreatePolicyTemplateOptions model @@ -1747,7 +1758,7 @@ public void testCreatePolicyTemplateNoOptions() throws Throwable { @Test public void testGetPolicyTemplateWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\"}"; + String mockResponseBody = "{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}], \"role_template_references\": [{\"id\": \"id\", \"version\": \"version\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\"}"; String getPolicyTemplatePath = "/v1/policy_templates/testString"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -1850,7 +1861,7 @@ public void testDeletePolicyTemplateNoOptions() throws Throwable { @Test public void testCreatePolicyTemplateVersionWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\", \"counts\": {\"template\": {\"current\": 7, \"limit\": 5}, \"version\": {\"current\": 7, \"limit\": 5}}}"; + String mockResponseBody = "{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}], \"role_template_references\": [{\"id\": \"id\", \"version\": \"version\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\", \"counts\": {\"template\": {\"current\": 7, \"limit\": 5}, \"version\": {\"current\": 7, \"limit\": 5}}}"; String createPolicyTemplateVersionPath = "/v1/policy_templates/testString/versions"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -1901,14 +1912,21 @@ public void testCreatePolicyTemplateVersionWOptions() throws Throwable { .roleId("testString") .build(); - // Construct an instance of the Grant model - Grant grantModel = new Grant.Builder() + // Construct an instance of the RoleTemplateReferencesItem model + RoleTemplateReferencesItem roleTemplateReferencesItemModel = new RoleTemplateReferencesItem.Builder() + .id("testString") + .version("testString") + .build(); + + // Construct an instance of the TemplateGrant model + TemplateGrant templateGrantModel = new TemplateGrant.Builder() .roles(java.util.Arrays.asList(rolesModel)) + .roleTemplateReferences(java.util.Arrays.asList(roleTemplateReferencesItemModel)) .build(); - // Construct an instance of the Control model - Control controlModel = new Control.Builder() - .grant(grantModel) + // Construct an instance of the TemplateControl model + TemplateControl templateControlModel = new TemplateControl.Builder() + .grant(templateGrantModel) .build(); // Construct an instance of the TemplatePolicy model @@ -1919,7 +1937,7 @@ public void testCreatePolicyTemplateVersionWOptions() throws Throwable { .subject(v2PolicySubjectModel) .pattern("testString") .rule(v2PolicyRuleModel) - .control(controlModel) + .control(templateControlModel) .build(); // Construct an instance of the CreatePolicyTemplateVersionOptions model @@ -1970,7 +1988,7 @@ public void testCreatePolicyTemplateVersionNoOptions() throws Throwable { @Test public void testListPolicyTemplateVersionsWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"limit\": 1, \"first\": {\"href\": \"href\"}, \"next\": {\"href\": \"href\", \"start\": \"start\"}, \"previous\": {\"href\": \"href\", \"start\": \"start\"}, \"versions\": [{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\"}]}"; + String mockResponseBody = "{\"limit\": 1, \"first\": {\"href\": \"href\"}, \"next\": {\"href\": \"href\", \"start\": \"start\"}, \"previous\": {\"href\": \"href\", \"start\": \"start\"}, \"versions\": [{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}], \"role_template_references\": [{\"id\": \"id\", \"version\": \"version\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\"}]}"; String listPolicyTemplateVersionsPath = "/v1/policy_templates/testString/versions"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -2027,8 +2045,8 @@ public void testListPolicyTemplateVersionsNoOptions() throws Throwable { @Test public void testListPolicyTemplateVersionsWithPagerGetNext() throws Throwable { // Set up the two-page mock response. - String mockResponsePage1 = "{\"next\":{\"start\":\"1\"},\"versions\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; - String mockResponsePage2 = "{\"versions\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; + String mockResponsePage1 = "{\"next\":{\"start\":\"1\"},\"versions\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}],\"role_template_references\":[{\"id\":\"id\",\"version\":\"version\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; + String mockResponsePage2 = "{\"versions\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}],\"role_template_references\":[{\"id\":\"id\",\"version\":\"version\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") .setResponseCode(200) @@ -2062,8 +2080,8 @@ public void testListPolicyTemplateVersionsWithPagerGetNext() throws Throwable { @Test public void testListPolicyTemplateVersionsWithPagerGetAll() throws Throwable { // Set up the two-page mock response. - String mockResponsePage1 = "{\"next\":{\"start\":\"1\"},\"versions\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; - String mockResponsePage2 = "{\"versions\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; + String mockResponsePage1 = "{\"next\":{\"start\":\"1\"},\"versions\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}],\"role_template_references\":[{\"id\":\"id\",\"version\":\"version\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; + String mockResponsePage2 = "{\"versions\":[{\"name\":\"name\",\"description\":\"description\",\"account_id\":\"accountId\",\"version\":\"version\",\"committed\":false,\"policy\":{\"type\":\"access\",\"description\":\"description\",\"resource\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}],\"tags\":[{\"key\":\"key\",\"value\":\"value\",\"operator\":\"stringEquals\"}]},\"subject\":{\"attributes\":[{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"}]},\"pattern\":\"pattern\",\"rule\":{\"key\":\"key\",\"operator\":\"stringEquals\",\"value\":\"anyValue\"},\"control\":{\"grant\":{\"roles\":[{\"role_id\":\"roleId\"}],\"role_template_references\":[{\"id\":\"id\",\"version\":\"version\"}]}}},\"state\":\"active\",\"id\":\"id\",\"href\":\"href\",\"created_at\":\"2019-01-01T12:00:00.000Z\",\"created_by_id\":\"createdById\",\"last_modified_at\":\"2019-01-01T12:00:00.000Z\",\"last_modified_by_id\":\"lastModifiedById\"}],\"total_count\":2,\"limit\":1}"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") .setResponseCode(200) @@ -2093,7 +2111,7 @@ public void testListPolicyTemplateVersionsWithPagerGetAll() throws Throwable { @Test public void testReplacePolicyTemplateWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\"}"; + String mockResponseBody = "{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}], \"role_template_references\": [{\"id\": \"id\", \"version\": \"version\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\"}"; String replacePolicyTemplatePath = "/v1/policy_templates/testString/versions/testString"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -2144,14 +2162,21 @@ public void testReplacePolicyTemplateWOptions() throws Throwable { .roleId("testString") .build(); - // Construct an instance of the Grant model - Grant grantModel = new Grant.Builder() + // Construct an instance of the RoleTemplateReferencesItem model + RoleTemplateReferencesItem roleTemplateReferencesItemModel = new RoleTemplateReferencesItem.Builder() + .id("testString") + .version("testString") + .build(); + + // Construct an instance of the TemplateGrant model + TemplateGrant templateGrantModel = new TemplateGrant.Builder() .roles(java.util.Arrays.asList(rolesModel)) + .roleTemplateReferences(java.util.Arrays.asList(roleTemplateReferencesItemModel)) .build(); - // Construct an instance of the Control model - Control controlModel = new Control.Builder() - .grant(grantModel) + // Construct an instance of the TemplateControl model + TemplateControl templateControlModel = new TemplateControl.Builder() + .grant(templateGrantModel) .build(); // Construct an instance of the TemplatePolicy model @@ -2162,7 +2187,7 @@ public void testReplacePolicyTemplateWOptions() throws Throwable { .subject(v2PolicySubjectModel) .pattern("testString") .rule(v2PolicyRuleModel) - .control(controlModel) + .control(templateControlModel) .build(); // Construct an instance of the ReplacePolicyTemplateOptions model @@ -2268,7 +2293,7 @@ public void testDeletePolicyTemplateVersionNoOptions() throws Throwable { @Test public void testGetPolicyTemplateVersionWOptions() throws Throwable { // Register a mock response - String mockResponseBody = "{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\"}"; + String mockResponseBody = "{\"name\": \"name\", \"description\": \"description\", \"account_id\": \"accountId\", \"version\": \"version\", \"committed\": false, \"policy\": {\"type\": \"access\", \"description\": \"description\", \"resource\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}], \"tags\": [{\"key\": \"key\", \"value\": \"value\", \"operator\": \"stringEquals\"}]}, \"subject\": {\"attributes\": [{\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}]}, \"pattern\": \"pattern\", \"rule\": {\"key\": \"key\", \"operator\": \"stringEquals\", \"value\": \"anyValue\"}, \"control\": {\"grant\": {\"roles\": [{\"role_id\": \"roleId\"}], \"role_template_references\": [{\"id\": \"id\", \"version\": \"version\"}]}}}, \"state\": \"active\", \"id\": \"id\", \"href\": \"href\", \"created_at\": \"2019-01-01T12:00:00.000Z\", \"created_by_id\": \"createdById\", \"last_modified_at\": \"2019-01-01T12:00:00.000Z\", \"last_modified_by_id\": \"lastModifiedById\"}"; String getPolicyTemplateVersionPath = "/v1/policy_templates/testString/versions/testString"; server.enqueue(new MockResponse() .setHeader("Content-type", "application/json") @@ -4051,8 +4076,8 @@ public void testCreateRoleTemplateWOptions() throws Throwable { .setResponseCode(201) .setBody(mockResponseBody)); - // Construct an instance of the TemplateRole model - TemplateRole templateRoleModel = new TemplateRole.Builder() + // Construct an instance of the RoleTemplatePrototypeRole model + RoleTemplatePrototypeRole roleTemplatePrototypeRoleModel = new RoleTemplatePrototypeRole.Builder() .name("testString") .displayName("testString") .serviceName("testString") @@ -4066,7 +4091,7 @@ public void testCreateRoleTemplateWOptions() throws Throwable { .accountId("testString") .description("testString") .committed(true) - .role(templateRoleModel) + .role(roleTemplatePrototypeRoleModel) .acceptLanguage("default") .build(); @@ -4221,7 +4246,6 @@ public void testCreateRoleTemplateVersionWOptions() throws Throwable { // Construct an instance of the TemplateRole model TemplateRole templateRoleModel = new TemplateRole.Builder() - .name("testString") .displayName("testString") .serviceName("testString") .description("testString") @@ -4231,9 +4255,9 @@ public void testCreateRoleTemplateVersionWOptions() throws Throwable { // Construct an instance of the CreateRoleTemplateVersionOptions model CreateRoleTemplateVersionOptions createRoleTemplateVersionOptionsModel = new CreateRoleTemplateVersionOptions.Builder() .roleTemplateId("testString") - .role(templateRoleModel) .name("testString") .description("testString") + .role(templateRoleModel) .committed(true) .build(); @@ -4408,7 +4432,6 @@ public void testReplaceRoleTemplateWOptions() throws Throwable { // Construct an instance of the TemplateRole model TemplateRole templateRoleModel = new TemplateRole.Builder() - .name("testString") .displayName("testString") .serviceName("testString") .description("testString") @@ -4420,9 +4443,9 @@ public void testReplaceRoleTemplateWOptions() throws Throwable { .roleTemplateId("testString") .version("testString") .ifMatch("testString") - .role(templateRoleModel) .name("testString") .description("testString") + .role(templateRoleModel) .committed(true) .build(); diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreatePolicyTemplateOptionsTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreatePolicyTemplateOptionsTest.java index 8898f65df27..fb6308052d3 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreatePolicyTemplateOptionsTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreatePolicyTemplateOptionsTest.java @@ -13,10 +13,11 @@ package com.ibm.cloud.platform_services.iam_policy_management.v1.model; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Control; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.CreatePolicyTemplateOptions; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Grant; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Roles; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateControl; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplatePolicy; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResource; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResourceAttribute; @@ -94,15 +95,24 @@ public void testCreatePolicyTemplateOptions() throws Throwable { .build(); assertEquals(rolesModel.roleId(), "testString"); - Grant grantModel = new Grant.Builder() + RoleTemplateReferencesItem roleTemplateReferencesItemModel = new RoleTemplateReferencesItem.Builder() + .id("testString") + .version("testString") + .build(); + assertEquals(roleTemplateReferencesItemModel.id(), "testString"); + assertEquals(roleTemplateReferencesItemModel.version(), "testString"); + + TemplateGrant templateGrantModel = new TemplateGrant.Builder() .roles(java.util.Arrays.asList(rolesModel)) + .roleTemplateReferences(java.util.Arrays.asList(roleTemplateReferencesItemModel)) .build(); - assertEquals(grantModel.roles(), java.util.Arrays.asList(rolesModel)); + assertEquals(templateGrantModel.roles(), java.util.Arrays.asList(rolesModel)); + assertEquals(templateGrantModel.roleTemplateReferences(), java.util.Arrays.asList(roleTemplateReferencesItemModel)); - Control controlModel = new Control.Builder() - .grant(grantModel) + TemplateControl templateControlModel = new TemplateControl.Builder() + .grant(templateGrantModel) .build(); - assertEquals(controlModel.grant(), grantModel); + assertEquals(templateControlModel.grant(), templateGrantModel); TemplatePolicy templatePolicyModel = new TemplatePolicy.Builder() .type("access") @@ -111,7 +121,7 @@ public void testCreatePolicyTemplateOptions() throws Throwable { .subject(v2PolicySubjectModel) .pattern("testString") .rule(v2PolicyRuleModel) - .control(controlModel) + .control(templateControlModel) .build(); assertEquals(templatePolicyModel.type(), "access"); assertEquals(templatePolicyModel.description(), "testString"); @@ -119,7 +129,7 @@ public void testCreatePolicyTemplateOptions() throws Throwable { assertEquals(templatePolicyModel.subject(), v2PolicySubjectModel); assertEquals(templatePolicyModel.pattern(), "testString"); assertEquals(templatePolicyModel.rule(), v2PolicyRuleModel); - assertEquals(templatePolicyModel.control(), controlModel); + assertEquals(templatePolicyModel.control(), templateControlModel); CreatePolicyTemplateOptions createPolicyTemplateOptionsModel = new CreatePolicyTemplateOptions.Builder() .name("testString") diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreatePolicyTemplateVersionOptionsTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreatePolicyTemplateVersionOptionsTest.java index cc8764adc34..a9ea7ea7b59 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreatePolicyTemplateVersionOptionsTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreatePolicyTemplateVersionOptionsTest.java @@ -13,10 +13,11 @@ package com.ibm.cloud.platform_services.iam_policy_management.v1.model; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Control; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.CreatePolicyTemplateVersionOptions; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Grant; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Roles; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateControl; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplatePolicy; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResource; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResourceAttribute; @@ -94,15 +95,24 @@ public void testCreatePolicyTemplateVersionOptions() throws Throwable { .build(); assertEquals(rolesModel.roleId(), "testString"); - Grant grantModel = new Grant.Builder() + RoleTemplateReferencesItem roleTemplateReferencesItemModel = new RoleTemplateReferencesItem.Builder() + .id("testString") + .version("testString") + .build(); + assertEquals(roleTemplateReferencesItemModel.id(), "testString"); + assertEquals(roleTemplateReferencesItemModel.version(), "testString"); + + TemplateGrant templateGrantModel = new TemplateGrant.Builder() .roles(java.util.Arrays.asList(rolesModel)) + .roleTemplateReferences(java.util.Arrays.asList(roleTemplateReferencesItemModel)) .build(); - assertEquals(grantModel.roles(), java.util.Arrays.asList(rolesModel)); + assertEquals(templateGrantModel.roles(), java.util.Arrays.asList(rolesModel)); + assertEquals(templateGrantModel.roleTemplateReferences(), java.util.Arrays.asList(roleTemplateReferencesItemModel)); - Control controlModel = new Control.Builder() - .grant(grantModel) + TemplateControl templateControlModel = new TemplateControl.Builder() + .grant(templateGrantModel) .build(); - assertEquals(controlModel.grant(), grantModel); + assertEquals(templateControlModel.grant(), templateGrantModel); TemplatePolicy templatePolicyModel = new TemplatePolicy.Builder() .type("access") @@ -111,7 +121,7 @@ public void testCreatePolicyTemplateVersionOptions() throws Throwable { .subject(v2PolicySubjectModel) .pattern("testString") .rule(v2PolicyRuleModel) - .control(controlModel) + .control(templateControlModel) .build(); assertEquals(templatePolicyModel.type(), "access"); assertEquals(templatePolicyModel.description(), "testString"); @@ -119,7 +129,7 @@ public void testCreatePolicyTemplateVersionOptions() throws Throwable { assertEquals(templatePolicyModel.subject(), v2PolicySubjectModel); assertEquals(templatePolicyModel.pattern(), "testString"); assertEquals(templatePolicyModel.rule(), v2PolicyRuleModel); - assertEquals(templatePolicyModel.control(), controlModel); + assertEquals(templatePolicyModel.control(), templateControlModel); CreatePolicyTemplateVersionOptions createPolicyTemplateVersionOptionsModel = new CreatePolicyTemplateVersionOptions.Builder() .policyTemplateId("testString") diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateOptionsTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateOptionsTest.java index b2d2d02d168..799743ddbf4 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateOptionsTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateOptionsTest.java @@ -14,7 +14,7 @@ package com.ibm.cloud.platform_services.iam_policy_management.v1.model; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.CreateRoleTemplateOptions; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateRole; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplatePrototypeRole; import com.ibm.cloud.platform_services.iam_policy_management.v1.utils.TestUtilities; import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; import java.io.InputStream; @@ -32,32 +32,32 @@ public class CreateRoleTemplateOptionsTest { @Test public void testCreateRoleTemplateOptions() throws Throwable { - TemplateRole templateRoleModel = new TemplateRole.Builder() + RoleTemplatePrototypeRole roleTemplatePrototypeRoleModel = new RoleTemplatePrototypeRole.Builder() .name("testString") .displayName("testString") .serviceName("testString") .description("testString") .actions(java.util.Arrays.asList("testString")) .build(); - assertEquals(templateRoleModel.name(), "testString"); - assertEquals(templateRoleModel.displayName(), "testString"); - assertEquals(templateRoleModel.serviceName(), "testString"); - assertEquals(templateRoleModel.description(), "testString"); - assertEquals(templateRoleModel.actions(), java.util.Arrays.asList("testString")); + assertEquals(roleTemplatePrototypeRoleModel.name(), "testString"); + assertEquals(roleTemplatePrototypeRoleModel.displayName(), "testString"); + assertEquals(roleTemplatePrototypeRoleModel.serviceName(), "testString"); + assertEquals(roleTemplatePrototypeRoleModel.description(), "testString"); + assertEquals(roleTemplatePrototypeRoleModel.actions(), java.util.Arrays.asList("testString")); CreateRoleTemplateOptions createRoleTemplateOptionsModel = new CreateRoleTemplateOptions.Builder() .name("testString") .accountId("testString") .description("testString") .committed(true) - .role(templateRoleModel) + .role(roleTemplatePrototypeRoleModel) .acceptLanguage("default") .build(); assertEquals(createRoleTemplateOptionsModel.name(), "testString"); assertEquals(createRoleTemplateOptionsModel.accountId(), "testString"); assertEquals(createRoleTemplateOptionsModel.description(), "testString"); assertEquals(createRoleTemplateOptionsModel.committed(), Boolean.valueOf(true)); - assertEquals(createRoleTemplateOptionsModel.role(), templateRoleModel); + assertEquals(createRoleTemplateOptionsModel.role(), roleTemplatePrototypeRoleModel); assertEquals(createRoleTemplateOptionsModel.acceptLanguage(), "default"); } diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateVersionOptionsTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateVersionOptionsTest.java index 1f746d295f1..a7d2d312afa 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateVersionOptionsTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/CreateRoleTemplateVersionOptionsTest.java @@ -33,13 +33,11 @@ public class CreateRoleTemplateVersionOptionsTest { @Test public void testCreateRoleTemplateVersionOptions() throws Throwable { TemplateRole templateRoleModel = new TemplateRole.Builder() - .name("testString") .displayName("testString") .serviceName("testString") .description("testString") .actions(java.util.Arrays.asList("testString")) .build(); - assertEquals(templateRoleModel.name(), "testString"); assertEquals(templateRoleModel.displayName(), "testString"); assertEquals(templateRoleModel.serviceName(), "testString"); assertEquals(templateRoleModel.description(), "testString"); @@ -47,15 +45,15 @@ public void testCreateRoleTemplateVersionOptions() throws Throwable { CreateRoleTemplateVersionOptions createRoleTemplateVersionOptionsModel = new CreateRoleTemplateVersionOptions.Builder() .roleTemplateId("testString") - .role(templateRoleModel) .name("testString") .description("testString") + .role(templateRoleModel) .committed(true) .build(); assertEquals(createRoleTemplateVersionOptionsModel.roleTemplateId(), "testString"); - assertEquals(createRoleTemplateVersionOptionsModel.role(), templateRoleModel); assertEquals(createRoleTemplateVersionOptionsModel.name(), "testString"); assertEquals(createRoleTemplateVersionOptionsModel.description(), "testString"); + assertEquals(createRoleTemplateVersionOptionsModel.role(), templateRoleModel); assertEquals(createRoleTemplateVersionOptionsModel.committed(), Boolean.valueOf(true)); } diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolcyTemplateAssignmentCollectionTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolcyTemplateAssignmentCollectionTest.java index e131c926b44..c26a0c38420 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolcyTemplateAssignmentCollectionTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolcyTemplateAssignmentCollectionTest.java @@ -17,7 +17,7 @@ import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ConflictsWith; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ErrorDetails; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ErrorObject; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ErrorResponse; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.AssignmentResourceError; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolcyTemplateAssignmentCollection; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyAssignmentV1Options; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyAssignmentRecord; diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentRecordTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentRecordTest.java index fd670da1a47..6099bfe4fb3 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentRecordTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentRecordTest.java @@ -17,7 +17,7 @@ import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ConflictsWith; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ErrorDetails; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ErrorObject; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ErrorResponse; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.AssignmentResourceError; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyAssignmentV1Options; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyAssignmentRecord; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyAssignmentV1Resources; diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentResourcesPolicyTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentResourcesPolicyTest.java index e1c63efb480..cafb43b1278 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentResourcesPolicyTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyAssignmentResourcesPolicyTest.java @@ -17,7 +17,7 @@ import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ConflictsWith; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ErrorDetails; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ErrorObject; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ErrorResponse; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.AssignmentResourceError; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyAssignmentResourcesPolicy; import com.ibm.cloud.platform_services.iam_policy_management.v1.utils.TestUtilities; import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateCollectionTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateCollectionTest.java index c7e900d9b46..ee947fa0f5d 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateCollectionTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateCollectionTest.java @@ -13,14 +13,15 @@ package com.ibm.cloud.platform_services.iam_policy_management.v1.model; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Control; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.First; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Grant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Next; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyTemplate; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyTemplateCollection; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Previous; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Roles; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateControl; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplatePolicy; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResource; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResourceAttribute; diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateLimitDataTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateLimitDataTest.java index fe91cd879fa..b1855bd6c29 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateLimitDataTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateLimitDataTest.java @@ -13,12 +13,13 @@ package com.ibm.cloud.platform_services.iam_policy_management.v1.model; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Control; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Grant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.LimitData; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyTemplateLimitData; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Roles; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateControl; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateCountData; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplatePolicy; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResource; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResourceAttribute; diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateTest.java index 7bc57698699..3c7415484cc 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateTest.java @@ -13,10 +13,11 @@ package com.ibm.cloud.platform_services.iam_policy_management.v1.model; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Control; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Grant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyTemplate; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Roles; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateControl; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplatePolicy; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResource; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResourceAttribute; diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateVersionsCollectionTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateVersionsCollectionTest.java index f03afc568ca..cc18c7455ff 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateVersionsCollectionTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/PolicyTemplateVersionsCollectionTest.java @@ -13,14 +13,15 @@ package com.ibm.cloud.platform_services.iam_policy_management.v1.model; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Control; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.First; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Grant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Next; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyTemplate; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.PolicyTemplateVersionsCollection; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Previous; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Roles; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateControl; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplatePolicy; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResource; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResourceAttribute; diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplacePolicyTemplateOptionsTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplacePolicyTemplateOptionsTest.java index 46296099f67..8c92a67c1b7 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplacePolicyTemplateOptionsTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplacePolicyTemplateOptionsTest.java @@ -13,10 +13,11 @@ package com.ibm.cloud.platform_services.iam_policy_management.v1.model; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Control; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Grant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.ReplacePolicyTemplateOptions; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Roles; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateControl; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplatePolicy; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResource; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResourceAttribute; @@ -94,15 +95,24 @@ public void testReplacePolicyTemplateOptions() throws Throwable { .build(); assertEquals(rolesModel.roleId(), "testString"); - Grant grantModel = new Grant.Builder() + RoleTemplateReferencesItem roleTemplateReferencesItemModel = new RoleTemplateReferencesItem.Builder() + .id("testString") + .version("testString") + .build(); + assertEquals(roleTemplateReferencesItemModel.id(), "testString"); + assertEquals(roleTemplateReferencesItemModel.version(), "testString"); + + TemplateGrant templateGrantModel = new TemplateGrant.Builder() .roles(java.util.Arrays.asList(rolesModel)) + .roleTemplateReferences(java.util.Arrays.asList(roleTemplateReferencesItemModel)) .build(); - assertEquals(grantModel.roles(), java.util.Arrays.asList(rolesModel)); + assertEquals(templateGrantModel.roles(), java.util.Arrays.asList(rolesModel)); + assertEquals(templateGrantModel.roleTemplateReferences(), java.util.Arrays.asList(roleTemplateReferencesItemModel)); - Control controlModel = new Control.Builder() - .grant(grantModel) + TemplateControl templateControlModel = new TemplateControl.Builder() + .grant(templateGrantModel) .build(); - assertEquals(controlModel.grant(), grantModel); + assertEquals(templateControlModel.grant(), templateGrantModel); TemplatePolicy templatePolicyModel = new TemplatePolicy.Builder() .type("access") @@ -111,7 +121,7 @@ public void testReplacePolicyTemplateOptions() throws Throwable { .subject(v2PolicySubjectModel) .pattern("testString") .rule(v2PolicyRuleModel) - .control(controlModel) + .control(templateControlModel) .build(); assertEquals(templatePolicyModel.type(), "access"); assertEquals(templatePolicyModel.description(), "testString"); @@ -119,7 +129,7 @@ public void testReplacePolicyTemplateOptions() throws Throwable { assertEquals(templatePolicyModel.subject(), v2PolicySubjectModel); assertEquals(templatePolicyModel.pattern(), "testString"); assertEquals(templatePolicyModel.rule(), v2PolicyRuleModel); - assertEquals(templatePolicyModel.control(), controlModel); + assertEquals(templatePolicyModel.control(), templateControlModel); ReplacePolicyTemplateOptions replacePolicyTemplateOptionsModel = new ReplacePolicyTemplateOptions.Builder() .policyTemplateId("testString") diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplaceRoleTemplateOptionsTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplaceRoleTemplateOptionsTest.java index cf277697289..2f731aea7d4 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplaceRoleTemplateOptionsTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/ReplaceRoleTemplateOptionsTest.java @@ -33,13 +33,11 @@ public class ReplaceRoleTemplateOptionsTest { @Test public void testReplaceRoleTemplateOptions() throws Throwable { TemplateRole templateRoleModel = new TemplateRole.Builder() - .name("testString") .displayName("testString") .serviceName("testString") .description("testString") .actions(java.util.Arrays.asList("testString")) .build(); - assertEquals(templateRoleModel.name(), "testString"); assertEquals(templateRoleModel.displayName(), "testString"); assertEquals(templateRoleModel.serviceName(), "testString"); assertEquals(templateRoleModel.description(), "testString"); @@ -49,17 +47,17 @@ public void testReplaceRoleTemplateOptions() throws Throwable { .roleTemplateId("testString") .version("testString") .ifMatch("testString") - .role(templateRoleModel) .name("testString") .description("testString") + .role(templateRoleModel) .committed(true) .build(); assertEquals(replaceRoleTemplateOptionsModel.roleTemplateId(), "testString"); assertEquals(replaceRoleTemplateOptionsModel.version(), "testString"); assertEquals(replaceRoleTemplateOptionsModel.ifMatch(), "testString"); - assertEquals(replaceRoleTemplateOptionsModel.role(), templateRoleModel); assertEquals(replaceRoleTemplateOptionsModel.name(), "testString"); assertEquals(replaceRoleTemplateOptionsModel.description(), "testString"); + assertEquals(replaceRoleTemplateOptionsModel.role(), templateRoleModel); assertEquals(replaceRoleTemplateOptionsModel.committed(), Boolean.valueOf(true)); } diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateCollectionTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateCollectionTest.java index cf3028a2536..fde4d11ff4c 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateCollectionTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateCollectionTest.java @@ -18,7 +18,7 @@ import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Previous; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplate; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateCollection; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateRole; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplatePrototypeRole; import com.ibm.cloud.platform_services.iam_policy_management.v1.utils.TestUtilities; import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; import java.io.InputStream; diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplatePrototypeRoleTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplatePrototypeRoleTest.java new file mode 100644 index 00000000000..6c208e1c38f --- /dev/null +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplatePrototypeRoleTest.java @@ -0,0 +1,62 @@ +/* + * (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_policy_management.v1.model; + +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplatePrototypeRole; +import com.ibm.cloud.platform_services.iam_policy_management.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 RoleTemplatePrototypeRole model. + */ +public class RoleTemplatePrototypeRoleTest { + final HashMap mockStreamMap = TestUtilities.createMockStreamMap(); + final List mockListFileWithMetadata = TestUtilities.creatMockListFileWithMetadata(); + + @Test + public void testRoleTemplatePrototypeRole() throws Throwable { + RoleTemplatePrototypeRole roleTemplatePrototypeRoleModel = new RoleTemplatePrototypeRole.Builder() + .name("testString") + .displayName("testString") + .serviceName("testString") + .description("testString") + .actions(java.util.Arrays.asList("testString")) + .build(); + assertEquals(roleTemplatePrototypeRoleModel.name(), "testString"); + assertEquals(roleTemplatePrototypeRoleModel.displayName(), "testString"); + assertEquals(roleTemplatePrototypeRoleModel.serviceName(), "testString"); + assertEquals(roleTemplatePrototypeRoleModel.description(), "testString"); + assertEquals(roleTemplatePrototypeRoleModel.actions(), java.util.Arrays.asList("testString")); + + String json = TestUtilities.serialize(roleTemplatePrototypeRoleModel); + + RoleTemplatePrototypeRole roleTemplatePrototypeRoleModelNew = TestUtilities.deserialize(json, RoleTemplatePrototypeRole.class); + assertTrue(roleTemplatePrototypeRoleModelNew instanceof RoleTemplatePrototypeRole); + assertEquals(roleTemplatePrototypeRoleModelNew.name(), "testString"); + assertEquals(roleTemplatePrototypeRoleModelNew.displayName(), "testString"); + assertEquals(roleTemplatePrototypeRoleModelNew.serviceName(), "testString"); + assertEquals(roleTemplatePrototypeRoleModelNew.description(), "testString"); + } + + @Test(expectedExceptions = IllegalArgumentException.class) + public void testRoleTemplatePrototypeRoleError() throws Throwable { + new RoleTemplatePrototypeRole.Builder().build(); + } + +} \ No newline at end of file diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateReferencesItemTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateReferencesItemTest.java new file mode 100644 index 00000000000..af9de718e23 --- /dev/null +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateReferencesItemTest.java @@ -0,0 +1,54 @@ +/* + * (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_policy_management.v1.model; + +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; +import com.ibm.cloud.platform_services.iam_policy_management.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 RoleTemplateReferencesItem model. + */ +public class RoleTemplateReferencesItemTest { + final HashMap mockStreamMap = TestUtilities.createMockStreamMap(); + final List mockListFileWithMetadata = TestUtilities.creatMockListFileWithMetadata(); + + @Test + public void testRoleTemplateReferencesItem() throws Throwable { + RoleTemplateReferencesItem roleTemplateReferencesItemModel = new RoleTemplateReferencesItem.Builder() + .id("testString") + .version("testString") + .build(); + assertEquals(roleTemplateReferencesItemModel.id(), "testString"); + assertEquals(roleTemplateReferencesItemModel.version(), "testString"); + + String json = TestUtilities.serialize(roleTemplateReferencesItemModel); + + RoleTemplateReferencesItem roleTemplateReferencesItemModelNew = TestUtilities.deserialize(json, RoleTemplateReferencesItem.class); + assertTrue(roleTemplateReferencesItemModelNew instanceof RoleTemplateReferencesItem); + assertEquals(roleTemplateReferencesItemModelNew.id(), "testString"); + assertEquals(roleTemplateReferencesItemModelNew.version(), "testString"); + } + + @Test(expectedExceptions = IllegalArgumentException.class) + public void testRoleTemplateReferencesItemError() throws Throwable { + new RoleTemplateReferencesItem.Builder().build(); + } + +} \ No newline at end of file diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateTest.java index 0c539f477db..8bb27d8dd62 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateTest.java @@ -14,7 +14,7 @@ package com.ibm.cloud.platform_services.iam_policy_management.v1.model; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplate; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateRole; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplatePrototypeRole; import com.ibm.cloud.platform_services.iam_policy_management.v1.utils.TestUtilities; import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; import java.io.InputStream; diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateVersionsCollectionTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateVersionsCollectionTest.java index ceddec39ba8..068cf309bd6 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateVersionsCollectionTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/RoleTemplateVersionsCollectionTest.java @@ -17,8 +17,8 @@ import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Next; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Previous; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplate; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplatePrototypeRole; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateVersionsCollection; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateRole; import com.ibm.cloud.platform_services.iam_policy_management.v1.utils.TestUtilities; import com.ibm.cloud.sdk.core.service.model.FileWithMetadata; import java.io.InputStream; diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateControlTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateControlTest.java new file mode 100644 index 00000000000..4261c386685 --- /dev/null +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateControlTest.java @@ -0,0 +1,73 @@ +/* + * (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_policy_management.v1.model; + +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Roles; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateControl; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; +import com.ibm.cloud.platform_services.iam_policy_management.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 TemplateControl model. + */ +public class TemplateControlTest { + final HashMap mockStreamMap = TestUtilities.createMockStreamMap(); + final List mockListFileWithMetadata = TestUtilities.creatMockListFileWithMetadata(); + + @Test + public void testTemplateControl() throws Throwable { + Roles rolesModel = new Roles.Builder() + .roleId("testString") + .build(); + assertEquals(rolesModel.roleId(), "testString"); + + RoleTemplateReferencesItem roleTemplateReferencesItemModel = new RoleTemplateReferencesItem.Builder() + .id("testString") + .version("testString") + .build(); + assertEquals(roleTemplateReferencesItemModel.id(), "testString"); + assertEquals(roleTemplateReferencesItemModel.version(), "testString"); + + TemplateGrant templateGrantModel = new TemplateGrant.Builder() + .roles(java.util.Arrays.asList(rolesModel)) + .roleTemplateReferences(java.util.Arrays.asList(roleTemplateReferencesItemModel)) + .build(); + assertEquals(templateGrantModel.roles(), java.util.Arrays.asList(rolesModel)); + assertEquals(templateGrantModel.roleTemplateReferences(), java.util.Arrays.asList(roleTemplateReferencesItemModel)); + + TemplateControl templateControlModel = new TemplateControl.Builder() + .grant(templateGrantModel) + .build(); + assertEquals(templateControlModel.grant(), templateGrantModel); + + String json = TestUtilities.serialize(templateControlModel); + + TemplateControl templateControlModelNew = TestUtilities.deserialize(json, TemplateControl.class); + assertTrue(templateControlModelNew instanceof TemplateControl); + assertEquals(templateControlModelNew.grant().toString(), templateGrantModel.toString()); + } + + @Test(expectedExceptions = IllegalArgumentException.class) + public void testTemplateControlError() throws Throwable { + new TemplateControl.Builder().build(); + } + +} \ No newline at end of file diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateGrantTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateGrantTest.java new file mode 100644 index 00000000000..dddb8328452 --- /dev/null +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateGrantTest.java @@ -0,0 +1,60 @@ +/* + * (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_policy_management.v1.model; + +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Roles; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; +import com.ibm.cloud.platform_services.iam_policy_management.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 TemplateGrant model. + */ +public class TemplateGrantTest { + final HashMap mockStreamMap = TestUtilities.createMockStreamMap(); + final List mockListFileWithMetadata = TestUtilities.creatMockListFileWithMetadata(); + + @Test + public void testTemplateGrant() throws Throwable { + Roles rolesModel = new Roles.Builder() + .roleId("testString") + .build(); + assertEquals(rolesModel.roleId(), "testString"); + + RoleTemplateReferencesItem roleTemplateReferencesItemModel = new RoleTemplateReferencesItem.Builder() + .id("testString") + .version("testString") + .build(); + assertEquals(roleTemplateReferencesItemModel.id(), "testString"); + assertEquals(roleTemplateReferencesItemModel.version(), "testString"); + + TemplateGrant templateGrantModel = new TemplateGrant.Builder() + .roles(java.util.Arrays.asList(rolesModel)) + .roleTemplateReferences(java.util.Arrays.asList(roleTemplateReferencesItemModel)) + .build(); + assertEquals(templateGrantModel.roles(), java.util.Arrays.asList(rolesModel)); + assertEquals(templateGrantModel.roleTemplateReferences(), java.util.Arrays.asList(roleTemplateReferencesItemModel)); + + String json = TestUtilities.serialize(templateGrantModel); + + TemplateGrant templateGrantModelNew = TestUtilities.deserialize(json, TemplateGrant.class); + assertTrue(templateGrantModelNew instanceof TemplateGrant); + } +} \ No newline at end of file diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplatePolicyTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplatePolicyTest.java index 6aac25afed3..0861e58876d 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplatePolicyTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplatePolicyTest.java @@ -13,9 +13,10 @@ package com.ibm.cloud.platform_services.iam_policy_management.v1.model; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Control; -import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Grant; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.RoleTemplateReferencesItem; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.Roles; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateControl; +import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplateGrant; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.TemplatePolicy; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResource; import com.ibm.cloud.platform_services.iam_policy_management.v1.model.V2PolicyResourceAttribute; @@ -93,15 +94,24 @@ public void testTemplatePolicy() throws Throwable { .build(); assertEquals(rolesModel.roleId(), "testString"); - Grant grantModel = new Grant.Builder() + RoleTemplateReferencesItem roleTemplateReferencesItemModel = new RoleTemplateReferencesItem.Builder() + .id("testString") + .version("testString") + .build(); + assertEquals(roleTemplateReferencesItemModel.id(), "testString"); + assertEquals(roleTemplateReferencesItemModel.version(), "testString"); + + TemplateGrant templateGrantModel = new TemplateGrant.Builder() .roles(java.util.Arrays.asList(rolesModel)) + .roleTemplateReferences(java.util.Arrays.asList(roleTemplateReferencesItemModel)) .build(); - assertEquals(grantModel.roles(), java.util.Arrays.asList(rolesModel)); + assertEquals(templateGrantModel.roles(), java.util.Arrays.asList(rolesModel)); + assertEquals(templateGrantModel.roleTemplateReferences(), java.util.Arrays.asList(roleTemplateReferencesItemModel)); - Control controlModel = new Control.Builder() - .grant(grantModel) + TemplateControl templateControlModel = new TemplateControl.Builder() + .grant(templateGrantModel) .build(); - assertEquals(controlModel.grant(), grantModel); + assertEquals(templateControlModel.grant(), templateGrantModel); TemplatePolicy templatePolicyModel = new TemplatePolicy.Builder() .type("access") @@ -110,7 +120,7 @@ public void testTemplatePolicy() throws Throwable { .subject(v2PolicySubjectModel) .pattern("testString") .rule(v2PolicyRuleModel) - .control(controlModel) + .control(templateControlModel) .build(); assertEquals(templatePolicyModel.type(), "access"); assertEquals(templatePolicyModel.description(), "testString"); @@ -118,7 +128,7 @@ public void testTemplatePolicy() throws Throwable { assertEquals(templatePolicyModel.subject(), v2PolicySubjectModel); assertEquals(templatePolicyModel.pattern(), "testString"); assertEquals(templatePolicyModel.rule(), v2PolicyRuleModel); - assertEquals(templatePolicyModel.control(), controlModel); + assertEquals(templatePolicyModel.control(), templateControlModel); String json = TestUtilities.serialize(templatePolicyModel); @@ -130,7 +140,7 @@ public void testTemplatePolicy() throws Throwable { assertEquals(templatePolicyModelNew.subject().toString(), v2PolicySubjectModel.toString()); assertEquals(templatePolicyModelNew.pattern(), "testString"); assertEquals(templatePolicyModelNew.rule().toString(), v2PolicyRuleModel.toString()); - assertEquals(templatePolicyModelNew.control().toString(), controlModel.toString()); + assertEquals(templatePolicyModelNew.control().toString(), templateControlModel.toString()); } @Test(expectedExceptions = IllegalArgumentException.class) diff --git a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateRoleTest.java b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateRoleTest.java index 8e5d3425491..1735364bc85 100644 --- a/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateRoleTest.java +++ b/modules/iam-policy-management/src/test/java/com/ibm/cloud/platform_services/iam_policy_management/v1/model/TemplateRoleTest.java @@ -32,13 +32,11 @@ public class TemplateRoleTest { @Test public void testTemplateRole() throws Throwable { TemplateRole templateRoleModel = new TemplateRole.Builder() - .name("testString") .displayName("testString") .serviceName("testString") .description("testString") .actions(java.util.Arrays.asList("testString")) .build(); - assertEquals(templateRoleModel.name(), "testString"); assertEquals(templateRoleModel.displayName(), "testString"); assertEquals(templateRoleModel.serviceName(), "testString"); assertEquals(templateRoleModel.description(), "testString"); @@ -48,7 +46,6 @@ public void testTemplateRole() throws Throwable { TemplateRole templateRoleModelNew = TestUtilities.deserialize(json, TemplateRole.class); assertTrue(templateRoleModelNew instanceof TemplateRole); - assertEquals(templateRoleModelNew.name(), "testString"); assertEquals(templateRoleModelNew.displayName(), "testString"); assertEquals(templateRoleModelNew.serviceName(), "testString"); assertEquals(templateRoleModelNew.description(), "testString");