@cloud-copilot/iam-data
Version:
43 lines • 1.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.iamResourceTypesForService = iamResourceTypesForService;
exports.iamResourceTypeExists = iamResourceTypeExists;
exports.iamResourceTypeDetails = iamResourceTypeDetails;
const data_js_1 = require("./data.js");
/**
*
* @param serviceKey the service key to get the resource types for, is case insensitive
* @returns the resource types for the service
*/
async function iamResourceTypesForService(serviceKey) {
const data = await (0, data_js_1.readResourceTypes)(serviceKey.toLowerCase());
return Object.values(data).map((resourceType) => resourceType.key);
}
/**
* Check if a resource type exists for a service and resource type key
*
* @param serviceKey the service key to check for the resource type, is case insensitive
* @param resourceTypeKey the resource type key to check for, is case insensitive
* @returns true if the resource type exists, false otherwise
*/
async function iamResourceTypeExists(serviceKey, resourceTypeKey) {
const data = await (0, data_js_1.readResourceTypes)(serviceKey.toLowerCase());
return !!data[resourceTypeKey.toLowerCase()];
}
/**
* Get the resource type for a service and resource type key
*
* @param serviceKey the service key to get the resource type for, is case insensitive
* @param resourceTypeKey the resource type key to get the resource type for, is case insensitive
* @throws an error if the resource type does not exist
* @returns the resource type
*/
async function iamResourceTypeDetails(serviceKey, resourceTypeKey) {
const data = await (0, data_js_1.readResourceTypes)(serviceKey.toLowerCase());
const resourceType = data[resourceTypeKey.toLowerCase()];
if (!resourceType) {
throw new Error(`Resource type ${resourceTypeKey} does not exist for service ${serviceKey}`);
}
return resourceType;
}
//# sourceMappingURL=resourceTypes.js.map