def describeChangeSetByName()

in magenta-lib/src/main/scala/magenta/tasks/AWS.scala [890:954]


  def describeChangeSetByName(
      stackName: String,
      changeSetName: String,
      client: CloudFormationClient
  ): DescribeChangeSetResponse =
    client.describeChangeSet(
      DescribeChangeSetRequest
        .builder()
        .stackName(stackName)
        .changeSetName(changeSetName)
        .build()
    )

  def describeChangeSetByArn(
      changeSetArn: String,
      client: CloudFormationClient
  ): DescribeChangeSetResponse =
    client.describeChangeSet(
      DescribeChangeSetRequest
        .builder()
        .changeSetName(changeSetArn)
        .build()
    )

  def executeChangeSet(
      stackName: String,
      changeSetName: String,
      client: CloudFormationClient
  ): ExecuteChangeSetResponse =
    client.executeChangeSet(
      ExecuteChangeSetRequest
        .builder()
        .stackName(stackName)
        .changeSetName(changeSetName)
        .build()
    )

  def deleteChangeSet(
      stackName: String,
      changeSetName: String,
      client: CloudFormationClient
  ): DeleteChangeSetResponse =
    client.deleteChangeSet(
      DeleteChangeSetRequest
        .builder()
        .stackName(stackName)
        .changeSetName(changeSetName)
        .build()
    )

  def describeStack(name: String, client: CloudFormationClient) =
    try {
      client
        .describeStacks(
          DescribeStacksRequest.builder().stackName(name).build()
        )
        .stacks
        .asScala
        .headOption
    } catch {
      case acfe: CloudFormationException
          if acfe.awsErrorDetails.errorCode == "ValidationError" && acfe.awsErrorDetails.errorMessage
            .contains("does not exist") =>
        None
    }