@ibm-cloud/platform-services
Version:
Node.js client library for IBM Cloud Platform Services
1,717 lines (1,498 loc) • 54.8 kB
JavaScript
/**
* @jest-environment node
*/
/**
* (C) Copyright IBM Corp. 2021.
*
* 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.
*/
'use strict';
const IamPolicyManagementV1 = require('../dist/iam-policy-management/v1');
const { readExternalSources } = require('ibm-cloud-sdk-core');
const authHelper = require('../test/resources/auth-helper.js');
//
// This file provides an example of how to use the IAM Policy Management service.
//
// The following configuration properties are assumed to be defined:
//
// IAM_POLICY_MANAGEMENT_URL=<service url>
// IAM_POLICY_MANAGEMENT_AUTH_TYPE=iam
// IAM_POLICY_MANAGEMENT_AUTH_URL=<IAM token service URL - omit this if using the production environment>
// IAM_POLICY_MANAGEMENT_APIKEY=<YOUR_APIKEY>
// IAM_POLICY_MANAGEMENT_TEST_ACCOUNT_ID=<YOUR_ACCOUNT_ID>
//
// These configuration properties can be exported as environment variables, or stored
// in a configuration file and then:
// export IBM_CREDENTIALS_FILE=<name of config file>
//
// Location of our config file.
const configFile = 'iam_policy_management.env';
const describe = authHelper.prepareTests(configFile);
// Save original console.log and console.warn
const originalLog = console.log;
const originalWarn = console.warn;
// Mocks for console.log and console.warn
const consoleLogMock = jest.spyOn(console, 'log');
const consoleWarnMock = jest.spyOn(console, 'warn');
describe('IamPolicyManagementV1', () => {
let exampleAccountId;
let examplePolicyId;
let examplePolicyETag;
let exampleCustomRoleId;
let exampleCustomRoleEtag;
let exampleTemplateId;
let exampleTemplateVersion;
let exampleTemplateBaseVersion;
let exampleTemplateEtag;
let exampleAssignmentId;
let exampleAssignmentPolicyId;
let exampleTargetAccountId;
let exampleAssignmentETag;
let exampleAccountSettingsETag;
const exampleActionControlTemplateName = 'ActionControlTemplateNodeSDKTest';
const exampleCustomRoleDipslayName = 'IAM Groups read access';
const exampleUserId = 'IBMid-user1';
const exampleServiceName = 'iam-groups';
let exampleActionControlTemplateId;
let exampleActionControlBaseVersion;
let exampleActionControlTemplateEtag;
let exampleActionControlTemplateVersion;
let exampleActionControlAssignmentId;
let exampleActionControlAssignmentETag;
// begin-common
const iamPolicyManagementService = IamPolicyManagementV1.newInstance({});
// end-common
const config = readExternalSources(IamPolicyManagementV1.DEFAULT_SERVICE_NAME);
expect(iamPolicyManagementService).not.toBeNull();
expect(config).not.toBeNull();
expect(config).toHaveProperty('testAccountId');
expect(config).toHaveProperty('testTargetAccountId');
exampleAccountId = config.testAccountId;
exampleTargetAccountId = config.testTargetAccountId;
test('createPolicy request example', async () => {
expect(exampleAccountId).not.toBeNull();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('createPolicy() result:');
// begin-create_policy
const policySubjects = [
{
attributes: [
{
name: 'iam_id',
value: exampleUserId,
},
],
},
];
const policyRoles = [
{
role_id: 'crn:v1:bluemix:public:iam::::role:Viewer',
},
];
const accountIdResourceAttribute = {
name: 'accountId',
value: exampleAccountId,
operator: 'stringEquals',
};
const serviceNameResourceAttribute = {
name: 'serviceType',
value: 'service',
operator: 'stringEquals',
};
const policyResourceTag = {
name: 'project',
operator: 'stringEquals',
value: 'prototype',
};
const policyResources = [
{
attributes: [accountIdResourceAttribute, serviceNameResourceAttribute],
tags: [policyResourceTag],
},
];
const params = {
type: 'access',
subjects: policySubjects,
roles: policyRoles,
resources: policyResources,
};
try {
const res = await iamPolicyManagementService.createPolicy(params);
examplePolicyId = res.result.id;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err)
}
// end-create_policy
});
test('getPolicy request example', async () => {
expect(examplePolicyId).toBeDefined();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('getPolicy() result:');
// begin-get_policy
const params = {
policyId: examplePolicyId,
};
try {
const res = await iamPolicyManagementService.getPolicy(params);
examplePolicyETag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err)
}
// end-get_policy
});
test('replacePolicy request example', async () => {
expect(exampleAccountId).not.toBeNull();
expect(examplePolicyId).toBeDefined();
expect(examplePolicyETag).toBeDefined();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('replacePolicy() result:');
// begin-replace_policy
const policySubjects = [
{
attributes: [
{
name: 'iam_id',
value: exampleUserId,
},
],
},
];
const accountIdResourceAttribute = {
name: 'accountId',
value: exampleAccountId,
operator: 'stringEquals',
};
const serviceNameResourceAttribute = {
name: 'serviceType',
value: 'service',
operator: 'stringEquals',
};
const policyResourceTag = {
name: 'project',
operator: 'stringEquals',
value: 'prototype',
};
const policyResources = [
{
attributes: [accountIdResourceAttribute, serviceNameResourceAttribute],
tags: [policyResourceTag],
},
];
const updatedPolicyRoles = [
{
role_id: 'crn:v1:bluemix:public:iam::::role:Editor',
},
];
const params = {
type: 'access',
policyId: examplePolicyId,
ifMatch: examplePolicyETag,
subjects: policySubjects,
roles: updatedPolicyRoles,
resources: policyResources,
};
try {
const res = await iamPolicyManagementService.replacePolicy(params);
examplePolicyETag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err)
}
// end-replace_policy
});
test('updatePolicyState request example', async () => {
expect(examplePolicyId).toBeDefined();
expect(examplePolicyETag).toBeDefined();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('updatePolicyState() result:');
// begin-update_policy_state
const params = {
policyId: examplePolicyId,
ifMatch: examplePolicyETag,
state: 'active'
};
try {
const res = await iamPolicyManagementService.updatePolicyState(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err)
}
// end-update_policy_state
});
test('listPolicies request example', async () => {
expect(exampleAccountId).not.toBeNull();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('listPolicies() result:');
// begin-list_policies
const params = {
accountId: exampleAccountId,
iamId: exampleUserId,
format: 'include_last_permit',
};
try {
const res = await iamPolicyManagementService.listPolicies(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-list_policies
});
test('deletePolicy request example', async () => {
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
// begin-delete_policy
const params = {
policyId: examplePolicyId,
};
try {
await iamPolicyManagementService.deletePolicy(params);
} catch (err) {
console.warn(err);
}
// end-delete_policy
});
test('createV2Policy request example', async () => {
expect(exampleAccountId).not.toBeNull();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('createV2Policy() result:');
// begin-create_v2_policy
const policySubject = {
attributes: [
{
key: 'iam_id',
operator: 'stringEquals',
value: exampleUserId,
},
],
};
const policyResourceAccountAttribute = {
key: 'accountId',
value: exampleAccountId,
operator: 'stringEquals',
};
const policyResourceServiceAttribute = {
key: 'serviceType',
operator: 'stringEquals',
value: 'service',
};
const policyResource = {
attributes: [policyResourceAccountAttribute, policyResourceServiceAttribute]
};
const policyControl = {
grant: {
roles: [{
role_id: 'crn:v1:bluemix:public:iam::::role:Viewer',
}],
}
};
const policyRule = {
operator: 'and',
conditions: [
{
key: '{{environment.attributes.day_of_week}}',
operator: 'dayOfWeekAnyOf',
value: ['1+00:00', '2+00:00', '3+00:00', '4+00:00', '5+00:00'],
},
{
key: '{{environment.attributes.current_time}}',
operator: 'timeGreaterThanOrEquals',
value: '09:00:00+00:00',
},
{
key: '{{environment.attributes.current_time}}',
operator: 'timeLessThanOrEquals',
value: '17:00:00+00:00',
},
],
}
const policyPattern = 'time-based-conditions:weekly:custom-hours'
const params = {
type: 'access',
subject: policySubject,
control: policyControl,
resource: policyResource,
rule: policyRule,
pattern: policyPattern,
};
try {
const res = await iamPolicyManagementService.createV2Policy(params);
examplePolicyId = res.result.id;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err)
}
// end-create_v2_policy
});
test('getV2Policy request example', async () => {
expect(examplePolicyId).toBeDefined();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('getV2Policy() result:');
// begin-get_v2_policy
const params = {
id: examplePolicyId,
};
try {
const res = await iamPolicyManagementService.getV2Policy(params);
examplePolicyETag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err)
}
// end-get_v2_policy
});
test('replaceV2Policy request example', async () => {
expect(exampleAccountId).not.toBeNull();
expect(examplePolicyId).toBeDefined();
expect(examplePolicyETag).toBeDefined();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('replaceV2Policy() result:');
// begin-replace_v2_policy
const policySubject = {
attributes: [
{
key: 'iam_id',
operator: 'stringEquals',
value: exampleUserId,
},
],
};
const policyResourceAccountAttribute = {
key: 'accountId',
value: exampleAccountId,
operator: 'stringEquals',
};
const policyResourceServiceAttribute = {
key: 'serviceType',
operator: 'stringEquals',
value: 'service',
};
const policyResource = {
attributes: [policyResourceAccountAttribute, policyResourceServiceAttribute]
};
const updatedPolicyControl = {
grant: {
roles: [{
role_id: 'crn:v1:bluemix:public:iam::::role:Editor',
}],
}
};
const policyRule = {
operator: 'and',
conditions: [
{
key: '{{environment.attributes.day_of_week}}',
operator: 'dayOfWeekAnyOf',
value: ['1+00:00', '2+00:00', '3+00:00', '4+00:00', '5+00:00'],
},
{
key: '{{environment.attributes.current_time}}',
operator: 'timeGreaterThanOrEquals',
value: '09:00:00+00:00',
},
{
key: '{{environment.attributes.current_time}}',
operator: 'timeLessThanOrEquals',
value: '17:00:00+00:00',
},
],
}
const policyPattern = 'time-based-conditions:weekly:custom-hours'
const params = {
type: 'access',
id: examplePolicyId,
ifMatch: examplePolicyETag,
subject: policySubject,
control: updatedPolicyControl,
resource: policyResource,
rule: policyRule,
pattern: policyPattern,
};
try {
const res = await iamPolicyManagementService.replaceV2Policy(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err)
}
// end-replace_v2_policy
});
test('listV2Policies request example', async () => {
expect(exampleAccountId).not.toBeNull();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('listV2Policies() result:');
// begin-list_v2_policies
const params = {
accountId: exampleAccountId,
iamId: exampleUserId,
format: 'include_last_permit',
};
try {
const res = await iamPolicyManagementService.listV2Policies(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-list_v2_policies
});
test('deleteV2Policy request example', async () => {
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
// begin-delete_v2_policy
const params = {
id: examplePolicyId,
};
try {
await iamPolicyManagementService.deleteV2Policy(params);
} catch (err) {
console.warn(err);
}
// end-delete_v2_policy
});
test('createRole request example', async () => {
expect(exampleAccountId).not.toBeNull();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('createRole() result:');
// begin-create_role
const params = {
displayName: exampleCustomRoleDipslayName,
actions: ['iam-groups.groups.read'],
name: 'ExampleRoleIAMGroups',
accountId: exampleAccountId,
serviceName: exampleServiceName,
};
try {
const res = await iamPolicyManagementService.createRole(params);
exampleCustomRoleId = res.result.id;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-create_role
});
test('getRole request example', async () => {
expect(exampleCustomRoleId).toBeDefined();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('getRole() result:');
// begin-get_role
const params = {
roleId: exampleCustomRoleId,
};
try {
const res = await iamPolicyManagementService.getRole(params);
exampleCustomRoleEtag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-get_role
});
test('replaceRole request example', async () => {
expect(exampleCustomRoleId).toBeDefined();
expect(exampleCustomRoleEtag).toBeDefined();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('replaceRole() result:');
// begin-replace_role
const updatedRoleActions = ['iam-groups.groups.read', 'iam-groups.groups.list'];
const params = {
roleId: exampleCustomRoleId,
ifMatch: exampleCustomRoleEtag,
displayName: exampleCustomRoleDipslayName,
actions: updatedRoleActions,
};
try {
const res = await iamPolicyManagementService.replaceRole(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-replace_role
});
test('listRoles request example', async () => {
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('listRoles() result:');
// begin-list_roles
const params = {
accountId: exampleAccountId,
};
try {
const res = await iamPolicyManagementService.listRoles(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-list_roles
});
test('deleteRole request example', async () => {
expect(exampleCustomRoleId).toBeDefined();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
// begin-delete_role
const params = {
roleId: exampleCustomRoleId,
};
try {
await iamPolicyManagementService.deleteRole(params);
} catch (err) {
console.warn(err);
}
// end-delete_role
});
test('createPolicyS2STemplate request example', async () => {
expect(exampleAccountId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('createPolicyS2STemplate() result:');
// begin-create_policy_template
// Request models needed by this operation.
// V2PolicyResourceAttribute
const v2PolicyResourceAttributeModel = {
key: 'serviceName',
operator: 'stringEquals',
value: 'cloud-object-storage',
};
// V2PolicyResource
const v2PolicyResourceModel = {
attributes: [v2PolicyResourceAttributeModel],
};
// V2PolicySubjectAttribute
const v2PolicySubjectAttributeModel = {
key: 'serviceName',
operator: 'stringEquals',
value: 'compliance',
};
// Roles
const rolesModel = {
role_id: 'crn:v1:bluemix:public:iam::::serviceRole:Writer',
};
// Grant
const grantModel = {
roles: [rolesModel],
};
// Control
const controlModel = {
grant: grantModel,
};
// TemplatePolicy
const templatePolicyModel = {
type: 'authorization',
resource: v2PolicyResourceModel,
control: controlModel,
subject: {attributes: [ v2PolicySubjectAttributeModel ]},
};
const params = {
name: 'SDKNodeExampleTemplate',
accountId: exampleAccountId,
policy: templatePolicyModel,
};
try {
const res = await iamPolicyManagementService.createPolicyTemplate(params);
exampleTemplateId = res.result.id;
exampleTemplateBaseVersion = res.result.version;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-create_policy_template
});
test('getPolicyTemplate request example', async () => {
expect(exampleTemplateId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('getPolicyTemplate() result:');
// begin-get_policy_template
const params = {
policyTemplateId: exampleTemplateId,
};
let res;
try {
res = await iamPolicyManagementService.getPolicyTemplate(params);
exampleTemplateEtag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-get_policy_template
});
test('replacePolicyTemplate request example', async () => {
expect(exampleTemplateId).not.toBeNull();
expect(exampleTemplateBaseVersion).not.toBeNull();
expect(exampleTemplateEtag).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('replacePolicyTemplate() result:');
// begin-replace_policy_template
// Request models needed by this operation.
// V2PolicyResourceAttribute
const v2PolicyResourceAttributeModel = {
key: 'serviceName',
operator: 'stringEquals',
value: 'kms',
};
// V2PolicyResource
const v2PolicyResourceModel = {
attributes: [v2PolicyResourceAttributeModel],
};
// V2PolicySubjectAttribute
const v2PolicySubjectAttributeModel = {
key: 'serviceName',
operator: 'stringEquals',
value: 'compliance',
};
// Roles
const rolesModel = {
role_id: 'crn:v1:bluemix:public:iam::::serviceRole:Reader',
};
// Grant
const grantModel = {
roles: [rolesModel],
};
// Control
const controlModel = {
grant: grantModel,
};
// TemplatePolicy
const templatePolicyModel = {
type: 'authorization',
resource: v2PolicyResourceModel,
control: controlModel,
subject: {attributes: [ v2PolicySubjectAttributeModel ]},
};
const params = {
policyTemplateId: exampleTemplateId,
version: exampleTemplateBaseVersion,
ifMatch: exampleTemplateEtag,
policy: templatePolicyModel,
committed: true,
};
let res;
try {
res = await iamPolicyManagementService.replacePolicyTemplate(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-replace_policy_template
});
test('listPolicyTemplates request example', async () => {
expect(exampleAccountId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('listPolicyTemplates() result:');
// begin-list_policy_templates
const params = {
accountId: exampleAccountId,
};
let res;
try {
res = await iamPolicyManagementService.listPolicyTemplates(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-list_policy_templates
});
test('createPolicyTemplateVersion request example', async () => {
expect(exampleTemplateId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('createPolicyTemplateVersion() result:');
// begin-create_policy_template_version
// Request models needed by this operation.
// V2PolicyResourceAttribute
const v2PolicyResourceAttributeModel = {
key: 'serviceName',
operator: 'stringEquals',
value: 'appid',
};
// V2PolicyResource
const v2PolicyResourceModel = {
attributes: [v2PolicyResourceAttributeModel],
};
// Roles
const rolesModel = {
role_id: 'crn:v1:bluemix:public:iam::::serviceRole:Reader',
};
// Grant
const grantModel = {
roles: [rolesModel],
};
// Control
const controlModel = {
grant: grantModel,
};
// V2PolicySubjectAttribute
const v2PolicySubjectAttributeModel = {
key: 'serviceName',
operator: 'stringEquals',
value: 'compliance',
};
// TemplatePolicy
const templatePolicyModel = {
type: 'authorization',
resource: v2PolicyResourceModel,
control: controlModel,
subject: {attributes: [ v2PolicySubjectAttributeModel ]},
};
const params = {
policyTemplateId: exampleTemplateId,
policy: templatePolicyModel,
};
let res;
try {
res = await iamPolicyManagementService.createPolicyTemplateVersion(params);
console.log(JSON.stringify(res.result, null, 2));
exampleTemplateVersion = res.result.version;
} catch (err) {
console.warn(err);
}
// end-create_policy_template_version
});
test('getPolicyTemplateVersion request example', async () => {
expect(exampleTemplateId).not.toBeNull();
expect(exampleTemplateVersion).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('getPolicyTemplateVersion() result:');
// begin-get_policy_template_version
const params = {
policyTemplateId: exampleTemplateId,
version: exampleTemplateVersion,
};
let res;
try {
res = await iamPolicyManagementService.getPolicyTemplateVersion(params);
exampleTemplateEtag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-get_policy_template_version
});
test('commitPolicyTemplate request example', async () => {
expect(exampleTemplateId).not.toBeNull();
expect(exampleTemplateVersion).not.toBeNull();
expect(exampleTemplateEtag).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
// begin-commit_policy_template
const params = {
policyTemplateId: exampleTemplateId,
version: exampleTemplateVersion,
};
try {
await iamPolicyManagementService.commitPolicyTemplate(params);
} catch (err) {
console.warn(err);
}
// end-commit_policy_template
});
test('listPolicyTemplateVersions request example', async () => {
expect(exampleTemplateId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('listPolicyTemplateVersions() result:');
// begin-list_policy_template_versions
const params = {
policyTemplateId: exampleTemplateId,
};
let res;
try {
res = await iamPolicyManagementService.listPolicyTemplateVersions(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-list_policy_template_versions
});
test('createPolicyTemplateAssignment request example', async () => {
expect(exampleTargetAccountId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('createPolicyTemplateAssignment() result:');
// begin-create_policy_template_assignment
// Request models needed by this operation.
const params = {
acceptLanguage: 'default',
version: '1.0',
target: {
id: exampleTargetAccountId,
type: 'Account',
},
templates: [
{
id: exampleTemplateId,
version: exampleTemplateBaseVersion,
},
]
};
try {
const res = await iamPolicyManagementService.createPolicyTemplateAssignment(params);
exampleAssignmentId = res.result.assignments[0].id;
exampleAssignmentETag = res.headers.etag;
exampleAssignmentPolicyId = res.result.assignments[0].resources[0].policy.resource_created.id;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-create_policy_template_assignment
});
test('updatePolicyAssignment request example', async () => {
expect(exampleAssignmentId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('updatePolicyAssignment() result:');
// begin-update_policy_assignment
const params = {
assignmentId: exampleAssignmentId,
version: '1.0',
templateVersion: exampleTemplateVersion,
ifMatch: exampleAssignmentETag,
};
try {
const response = await iamPolicyManagementService.updatePolicyAssignment(params);
} catch (err){
console.warn(err);
}
// end-update_policy_assignment
});
test('listPolicyAssignments request example', async () => {
expect(exampleAccountId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('listPolicyAssignments() result:');
// begin-list_policy_assignments
const params = {
accountId: exampleAccountId,
version: '1.0',
};
let res;
try {
res = await iamPolicyManagementService.listPolicyAssignments(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-list_policy_assignments
});
test('getPolicyAssignment request example', async () => {
expect(exampleAssignmentId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('getPolicyAssignment() result:');
// begin-get_policy_assignment
const params = {
assignmentId: exampleAssignmentId,
version: '1.0',
};
let res;
try {
res = await iamPolicyManagementService.getPolicyAssignment(params);
console.log(JSON.stringify(res.result, null, 2));
exampleAssignmentPolicyId = res.result.resources[0].policy.resource_created.id;
} catch (err) {
console.warn(err);
}
// end-get_policy_assignment
});
test('getV2Policy to get Template meta data request example', async () => {
expect(exampleAssignmentPolicyId).toBeDefined();
consoleLogMock.mockImplementation(output => {
originalLog(output);
});
consoleWarnMock.mockImplementation(output => {
originalWarn(output);
// when the test fails we need to print out the error message and stop execution right after it
expect(true).toBeFalsy();
});
originalLog('getV2Policy() result:');
// begin-get_v2_policy
const params = {
id: exampleAssignmentPolicyId,
};
try {
const res = await iamPolicyManagementService.getV2Policy(params);
examplePolicyETag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err)
}
// end-get_v2_policy
});
test('deletePolicyAssignment request example', async () => {
expect(exampleAssignmentId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
// begin-delete_policy_assignment
const params = {
assignmentId: exampleAssignmentId,
};
try {
await iamPolicyManagementService.deletePolicyAssignment(params);
} catch (err) {
console.warn(err);
}
// end-delete_policy_assignment
});
test('deletePolicyTemplateVersion request example', async () => {
expect(exampleTemplateId).not.toBeNull();
expect(exampleTemplateVersion).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
// begin-delete_policy_template_version
const params = {
policyTemplateId: exampleTemplateId,
version: exampleTemplateVersion,
};
try {
await iamPolicyManagementService.deletePolicyTemplateVersion(params);
} catch (err) {
console.warn(err);
}
// end-delete_policy_template_version
});
test('deletePolicyTemplate request example', async () => {
expect(exampleTemplateId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
// begin-delete_policy_template
const params = {
policyTemplateId: exampleTemplateId,
};
try {
await iamPolicyManagementService.deletePolicyTemplate(params);
} catch (err) {
console.warn(err);
}
// end-delete_policy_template
});
test('createActionControlTemplate request example', async () => {
expect(exampleAccountId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('createActionControlTemplate() result:');
// begin-create_action_control_template
// Request models needed by this operation.
const actionControl = {
service_name: 'am-test-service',
description: 'am-test-service service actionControl',
actions: ['am-test-service.test.delete'],
};
try {
const res = await iamPolicyManagementService.createActionControlTemplate({
name: exampleActionControlTemplateName,
accountId: exampleAccountId,
description: 'Test ActionControl templates with action control',
actionControl,
});
exampleActionControlTemplateId = res.result.id;
exampleActionControlBaseVersion = res.result.version;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-create_action_control_template
});
test('getActionControlTemplate request example', async () => {
expect(exampleActionControlTemplateId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('getActionControlTemplate() result:');
// begin-get_action_control_template
const params = {
actionControlTemplateId: exampleActionControlTemplateId,
};
let res;
try {
res = await iamPolicyManagementService.getActionControlTemplate(params);
exampleActionControlTemplateEtag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-get_action_control_template
});
test('replaceActionControlTemplate request example', async () => {
expect(exampleActionControlTemplateId).not.toBeNull();
expect(exampleActionControlBaseVersion).not.toBeNull();
expect(exampleActionControlTemplateEtag).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('replaceActionControlTemplate() result:');
// begin-replace_action_control_template
// Request models needed by this operation.
const actionControl = {
service_name: 'am-test-service',
description: 'am-test-service service actionControl',
actions: ['am-test-service.test.delete'],
};
const params = {
ifMatch: exampleActionControlTemplateEtag,
actionControlTemplateId: exampleActionControlTemplateId,
version: exampleActionControlBaseVersion,
actionControl,
};
let res;
try {
res = await iamPolicyManagementService.replaceActionControlTemplate(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-replace_action_control_template
});
test('listActionControlTemplates request example', async () => {
expect(exampleAccountId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('listActionControlTemplates() result:');
// begin-list_action_control_templates
const params = {
accountId: exampleAccountId,
};
let res;
try {
res = await iamPolicyManagementService.listActionControlTemplates(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-list_action_control_templates
});
test('createActionControlTemplateVersion request example', async () => {
expect(exampleActionControlTemplateId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('createActionControlTemplateVersion() result:');
// begin-create_action_control_template_version
// Request models needed by this operation.
const actionControl = {
service_name: 'am-test-service',
description: 'am-test-service service actionControl',
actions: ['am-test-service.test.create'],
};
const params = {
actionControlTemplateId: exampleActionControlTemplateId,
actionControl,
committed: true,
};
let res;
try {
res = await iamPolicyManagementService.createActionControlTemplateVersion(params);
console.log(JSON.stringify(res.result, null, 2));
exampleActionControlTemplateVersion = res.result.version;
} catch (err) {
console.warn(err);
}
// end-create_action_control_template_version
});
test('getActionControlTemplateVersion request example', async () => {
expect(exampleActionControlTemplateId).not.toBeNull();
expect(exampleActionControlTemplateVersion).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('getActionControlTemplateVersion() result:');
// begin-get_action_control_template_version
const params = {
actionControlTemplateId: exampleActionControlTemplateId,
version: exampleActionControlTemplateVersion,
};
let res;
try {
res = await iamPolicyManagementService.getActionControlTemplateVersion(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-get_action_control_template_version
});
test('commitActionControlTemplate request example', async () => {
expect(exampleActionControlTemplateId).not.toBeNull();
expect(exampleActionControlBaseVersion).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
// begin-commit_action_control_template
const params = {
actionControlTemplateId: exampleActionControlTemplateId,
version: exampleActionControlBaseVersion,
};
try {
await iamPolicyManagementService.commitActionControlTemplate(params);
} catch (err) {
console.warn(err);
}
// end-commit_action_control_template
});
test('listActionControlTemplateVersions request example', async () => {
expect(exampleActionControlTemplateId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('listActionControlTemplateVersions() result:');
// begin-list_action_control_template_versions
const params = {
actionControlTemplateId: exampleActionControlTemplateId,
};
let res;
try {
res = await iamPolicyManagementService.listActionControlTemplateVersions(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-list_action_control_template_versions
});
test('createActionControlTemplateAssignment request example', async () => {
expect(exampleTargetAccountId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('createActionControlTemplateAssignment() result:');
// begin-create_action_control_template_assignment
// Request models needed by this operation.
const params = {
acceptLanguage: 'default',
target: {
id: exampleTargetAccountId,
type: 'Account',
},
templates: [
{
id: exampleActionControlTemplateId,
version: exampleActionControlBaseVersion,
},
]
};
try {
const res = await iamPolicyManagementService.createActionControlTemplateAssignment(params);
exampleActionControlAssignmentId = res.result.assignments[0].id;
exampleActionControlAssignmentETag = res.headers.etag;
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-create_action_control_template_assignment
});
test('updateActionControlAssignment request example', async () => {
expect(exampleActionControlAssignmentId).not.toBeNull();
expect(exampleActionControlTemplateVersion).not.toBeNull();
expect(exampleActionControlAssignmentETag).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('updateActionControlAssignment() result:');
// begin-update_action_control_assignment
const params = {
assignmentId: exampleActionControlAssignmentId,
templateVersion: exampleActionControlTemplateVersion,
ifMatch: exampleActionControlAssignmentETag,
};
try {
const response = await iamPolicyManagementService.updateActionControlAssignment(params);
} catch (err){
console.warn(err);
}
// end-update_action_control_assignment
});
test('listActionControlAssignments request example', async () => {
expect(exampleAccountId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('listActionControlAssignments() result:');
// begin-list_action_control_assignments
const params = {
accountId: exampleAccountId,
};
let res;
try {
res = await iamPolicyManagementService.listActionControlAssignments(params);
console.log(JSON.stringify(res.result, null, 2));
} catch (err) {
console.warn(err);
}
// end-list_action_control_assignments
});
test('getActionControlAssignment request example', async () => {
expect(exampleActionControlAssignmentId).not.toBeNull();
consoleLogMock.mockImplementation((output) => {
originalLog(output);
});
consoleWarnMock.mockImplementation((output) => {
// if an error occurs, display the message and then fail the test
originalWarn(output);
expect(true).toBeFalsy();
});
originalLog('getActionControlAssignment() result:');
// begin-get_action_control_assignment
const params = {
assignmentId