bixlabs-generator-jhipster
Version:
Spring Boot + Angular/React/Vue in one handy generator
69 lines (65 loc) • 2.13 kB
JavaScript
/**
* Copyright 2013-2021 the original author or authors from the JHipster project.
*
* This file is part of the JHipster project, see https://www.jhipster.tech/
* for more information.
*
* 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
*
* https://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.
*/
const AWS = require('aws-sdk');
const _ = require('lodash');
const spinner = require('./utils').spinner;
module.exports = class AwSSM {
constructor(region) {
this.ssm = new AWS.SSM({ region });
}
/**
* Returns an AWS SSM managed parameter. If no property can be found, an undefined value is returned
* @param parameterName Name of the parameter to retrieve
*/
getSSMParameter(parameterName) {
return spinner(
this.ssm
.getParameters({
Names: [parameterName],
WithDecryption: true,
})
.promise()
.then(resultParams => _.get(resultParams, 'Parameters[0].Value'))
);
}
/**
* Sets an AWS SSM Managed parameter
* @param parameterName
* The name of the parameter to set
* @param parameterValue
* The value of the parameter
* @param description
* A description to associate with the parameter
* @param parameterType
* The type of parameter, either "String", "StringList" or "SecureString"
*/
setSSMParameter(parameterName, parameterValue, description = '', parameterType = 'SecureString') {
return spinner(
this.ssm
.putParameter({
Name: parameterName,
Type: parameterType,
Description: description,
Value: parameterValue,
Overwrite: true,
})
.promise()
);
}
};