@cloud-copilot/iam-data
Version:
55 lines • 2.02 kB
TypeScript
/**
* Details for an AWS service category and the IAM services assigned to it.
*/
export interface CategoryDetails {
/** Stable lowercase category key. */
readonly key: string;
/** Properly capitalized category name from AWS. */
readonly name: string;
/** Sorted IAM service keys assigned to the category. */
readonly services: string[];
}
/**
* Get all service category keys.
*
* @returns an array of all service category keys
*/
export declare function serviceCategories(): Promise<string[]>;
/**
* Check if a service category exists.
*
* @param category the category key to check, is case insensitive
* @returns true if the category exists, false otherwise
*/
export declare function serviceCategoryExists(category: string): Promise<boolean>;
/**
* Get the IAM service to category mapping.
*
* @returns a map of IAM service keys to category keys
*/
export declare function iamServiceCategoryMap(): Promise<Record<string, string>>;
/**
* Get IAM service keys assigned to a service category.
*
* @param category the category key to get IAM services for, is case insensitive
* @throws an error if the category does not exist
* @returns sorted IAM service keys assigned to the category
*/
export declare function iamServicesForCategory(category: string): Promise<string[]>;
/**
* Get the service category key for an IAM service.
*
* @param service the IAM service key to get the category for, is case insensitive
* @throws an error if the service does not exist or has no category mapping
* @returns the category key for the IAM service
*/
export declare function categoryForIamService(service: string): Promise<string>;
/**
* Get details for a service category.
*
* @param category the category key to get details for, is case insensitive
* @throws an error if the category does not exist
* @returns details for the service category
*/
export declare function getServiceCategory(category: string): Promise<CategoryDetails>;
//# sourceMappingURL=categories.d.ts.map