src/tasks/SystemsManagerGetParameter/TaskParameters.ts (70 lines of code) (raw):

/*! * Copyright 2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: MIT */ import * as tl from 'azure-pipelines-task-lib/task' import { AWSConnectionParameters, buildConnectionParameters } from 'lib/awsConnectionParameters' import { readModeHierarchy, readModeSingle } from 'lib/ssm' import { getInputOptional, getInputOrEmpty, getInputRequired } from 'lib/vstsUtils' export interface TaskParameters { awsConnectionParameters: AWSConnectionParameters readMode: string parameterName: string parameterVersion: number | undefined parameterPath: string recursive: boolean variableNameTransform: string customVariableName: string replacementPattern: string replacementText: string globalMatch: boolean caseInsensitiveMatch: boolean } export function buildTaskParameters(): TaskParameters { const parameters: TaskParameters = { awsConnectionParameters: buildConnectionParameters(), readMode: getInputRequired('readMode'), parameterName: '', parameterVersion: undefined, parameterPath: '', recursive: false, variableNameTransform: '', customVariableName: '', replacementPattern: '', replacementText: '', globalMatch: false, caseInsensitiveMatch: false } switch (parameters.readMode) { case readModeSingle: parameters.parameterName = getInputRequired('parameterName') const versionstring = getInputOptional('parameterVersion') if (versionstring) { const pv = parseInt(versionstring, 10) if (!isNaN(pv) && pv > 0) { parameters.parameterVersion = pv } else { throw new Error(tl.loc('InvalidParameterVersion', pv)) } } parameters.variableNameTransform = getInputOrEmpty('singleNameTransform') break case readModeHierarchy: parameters.parameterPath = getInputRequired('parameterPath') parameters.recursive = tl.getBoolInput('recursive', false) parameters.variableNameTransform = getInputOrEmpty('hierarchyNameTransform') break default: throw new Error(tl.loc('UnknownReadMode', parameters.readMode)) } switch (parameters.variableNameTransform) { case 'substitute': parameters.replacementPattern = getInputRequired('replacementPattern') parameters.replacementText = getInputOrEmpty('replacementText') parameters.globalMatch = tl.getBoolInput('globalMatch', false) parameters.caseInsensitiveMatch = tl.getBoolInput('caseInsensitiveMatch', false) break case 'custom': parameters.customVariableName = getInputRequired('customVariableName') break default: break } return parameters }