async function createCDN()

in provider-utils/awscloudformation/service-walkthroughs/vod-push.js [316:366]


async function createCDN(context, props, options, aws, oldValues) {
  const { payload } = context.parameters.options;
  const { amplify } = context;
  const args = payload ? JSON.parse(payload) : {};
  const cdnConfigDetails = {};

  if (oldValues.contentDeliveryNetwork && oldValues.contentDeliveryNetwork.signedKey) {
    const signedURLQuestion = [{
      type: question.modifySignedUrl.type,
      name: question.modifySignedUrl.key,
      message: question.modifySignedUrl.question,
      choices: question.modifySignedUrl.options,
      default: question.modifySignedUrl.default,
    }];
    const signedURLResponse = await inquirer.prompt(signedURLQuestion);
    if (signedURLResponse.modifySignedUrl === 'leave') {
      return oldValues.contentDeliveryNetwork;
    }
    if (signedURLResponse.modifySignedUrl === 'remove') {
      cdnConfigDetails.signedKey = false;
    } else {
      cdnConfigDetails.signedKey = true;
    }
  } else {
    const signedURLQuestion = [{
      type: question.signedKey.type,
      name: question.signedKey.key,
      message: question.signedKey.question,
      validate: amplify.inputValidation(question.signedKey),
      default: question.signedKey.default,
      when(answers) {
        return headlessMode.autoAnswer({
          context,
          answers,
          key: question.signedKey.key,
          value: args.signedKey ? args.signedKey : false,
        });
      },
    }];
    const signedURLResponse = await inquirer.prompt(signedURLQuestion);

    cdnConfigDetails.signedKey = signedURLResponse.signedKey;
  }

  if (cdnConfigDetails.signedKey) {
    await createCDNEnvVars(context, options, props.shared.resourceName, aws);
    cdnConfigDetails.functionNameSchema = `${props.shared.resourceName}-\${env}-tokenGen`;
  }

  return cdnConfigDetails;
}