UNPKG

cfn-forge

Version:

CloudFormation deployment automation tool with git-based workflows

135 lines (120 loc) 3.54 kB
/** * CloudFormation Interface * Defines the contract for CloudFormation operations to ensure portability */ class ICloudFormation { /** * Deploy a CloudFormation stack * @param {Object} params - Deployment parameters * @param {string} params.stackName - Stack name * @param {string} params.templateBody - Template content * @param {Object} params.parameters - Stack parameters * @param {string[]} params.capabilities - Stack capabilities * @param {Object} params.tags - Stack tags * @returns {Promise<Object>} Deployment result */ async deployStack(params) { throw new Error('Not implemented'); } /** * Update an existing CloudFormation stack * @param {Object} params - Update parameters * @returns {Promise<Object>} Update result */ async updateStack(params) { throw new Error('Not implemented'); } /** * Delete a CloudFormation stack * @param {string} stackName - Stack name to delete * @returns {Promise<void>} */ async deleteStack(stackName) { throw new Error('Not implemented'); } /** * Get stack status * @param {string} stackName - Stack name * @returns {Promise<Object>} Stack status information */ async getStackStatus(stackName) { throw new Error('Not implemented'); } /** * Validate a CloudFormation template * @param {string} templateBody - Template content * @returns {Promise<Object>} Validation result */ async validateTemplate(templateBody) { throw new Error('Not implemented'); } /** * List all stacks * @param {Object} filters - Optional filters * @returns {Promise<Array>} Array of stack summaries */ async listStacks(filters = {}) { throw new Error('Not implemented'); } /** * Get stack outputs * @param {string} stackName - Stack name * @returns {Promise<Object>} Stack outputs */ async getStackOutputs(stackName) { throw new Error('Not implemented'); } /** * Get stack resources * @param {string} stackName - Stack name * @returns {Promise<Array>} Array of stack resources */ async getStackResources(stackName) { throw new Error('Not implemented'); } /** * Get stack events * @param {string} stackName - Stack name * @param {Object} options - Query options * @returns {Promise<Array>} Array of stack events */ async getStackEvents(stackName, options = {}) { throw new Error('Not implemented'); } /** * Wait for stack operation to complete * @param {string} stackName - Stack name * @param {string} operation - Operation type (create, update, delete) * @param {Object} options - Wait options * @returns {Promise<Object>} Final stack status */ async waitForStack(stackName, operation, options = {}) { throw new Error('Not implemented'); } /** * Detect stack drift * @param {string} stackName - Stack name * @returns {Promise<Object>} Drift detection result */ async detectStackDrift(stackName) { throw new Error('Not implemented'); } /** * Get stack policy * @param {string} stackName - Stack name * @returns {Promise<string>} Stack policy document */ async getStackPolicy(stackName) { throw new Error('Not implemented'); } /** * Set stack policy * @param {string} stackName - Stack name * @param {string} policyBody - Policy document * @returns {Promise<void>} */ async setStackPolicy(stackName, policyBody) { throw new Error('Not implemented'); } } module.exports = ICloudFormation;