def withLambdaClient[T]()

in magenta-lib/src/main/scala/magenta/tasks/AWS.scala [223:275]


  def withLambdaClient[T](
      keyRing: KeyRing,
      region: Region,
      resources: DeploymentResources
  )(block: LambdaClient => T): T =
    withResource(
      LambdaClient
        .builder()
        .credentialsProvider(AWS.provider(keyRing, resources))
        .overrideConfiguration(AWS.clientConfiguration)
        .region(region.awsRegion)
        .build()
    )(block)

  def lambdaUpdateFunctionCodeRequest(
      functionName: String,
      buffer: ByteBuffer
  ): UpdateFunctionCodeRequest =
    UpdateFunctionCodeRequest
      .builder()
      .functionName(functionName)
      .zipFile(SdkBytes.fromByteBuffer(buffer))
      .build()

  def lambdaUpdateFunctionCodeRequest(
      functionName: String,
      s3Bucket: String,
      s3Key: String
  ): UpdateFunctionCodeRequest =
    UpdateFunctionCodeRequest
      .builder()
      .functionName(functionName)
      .s3Bucket(s3Bucket)
      .s3Key(s3Key)
      .build()

  def lambdaPublishLayerVersionRequest(
      layerName: String,
      s3Bucket: String,
      s3Key: String
  ): PublishLayerVersionRequest = {
    val layerContent = LayerVersionContentInput
      .builder()
      .s3Bucket(s3Bucket)
      .s3Key(s3Key)
      .build()

    PublishLayerVersionRequest
      .builder()
      .layerName(layerName)
      .content(layerContent)
      .build()
  }