software.amazon.awssdk.services.lambda.model.FunctionCode Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lambda Show documentation
Show all versions of lambda Show documentation
The AWS Java SDK for AWS Lambda module holds the client classes that are used for communicating with
AWS Lambda Service
/*
* Copyright 2013-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
* the License. A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file 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.
*/
package software.amazon.awssdk.services.lambda.model;
import java.io.Serializable;
import java.nio.ByteBuffer;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Function;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.core.SdkBytes;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.adapter.StandardMemberCopier;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;
/**
*
* The code for the Lambda function. You can specify either an S3 location, or upload a deployment package directly.
*
*/
@Generated("software.amazon.awssdk:codegen")
public final class FunctionCode implements SdkPojo, Serializable, ToCopyableBuilder {
private static final SdkField ZIP_FILE_FIELD = SdkField. builder(MarshallingType.SDK_BYTES)
.getter(getter(FunctionCode::zipFile)).setter(setter(Builder::zipFile))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("ZipFile").build()).build();
private static final SdkField S3_BUCKET_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(FunctionCode::s3Bucket)).setter(setter(Builder::s3Bucket))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("S3Bucket").build()).build();
private static final SdkField S3_KEY_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(FunctionCode::s3Key)).setter(setter(Builder::s3Key))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("S3Key").build()).build();
private static final SdkField S3_OBJECT_VERSION_FIELD = SdkField. builder(MarshallingType.STRING)
.getter(getter(FunctionCode::s3ObjectVersion)).setter(setter(Builder::s3ObjectVersion))
.traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("S3ObjectVersion").build()).build();
private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(ZIP_FILE_FIELD,
S3_BUCKET_FIELD, S3_KEY_FIELD, S3_OBJECT_VERSION_FIELD));
private static final long serialVersionUID = 1L;
private final SdkBytes zipFile;
private final String s3Bucket;
private final String s3Key;
private final String s3ObjectVersion;
private FunctionCode(BuilderImpl builder) {
this.zipFile = builder.zipFile;
this.s3Bucket = builder.s3Bucket;
this.s3Key = builder.s3Key;
this.s3ObjectVersion = builder.s3ObjectVersion;
}
/**
*
* The base64-encoded contents of your zip file containing your deployment package. AWS SDK and AWS CLI clients
* handle the encoding for you.
*
*
* @return The base64-encoded contents of your zip file containing your deployment package. AWS SDK and AWS CLI
* clients handle the encoding for you.
*/
public SdkBytes zipFile() {
return zipFile;
}
/**
*
* An Amazon S3 bucket in the same region as your function.
*
*
* @return An Amazon S3 bucket in the same region as your function.
*/
public String s3Bucket() {
return s3Bucket;
}
/**
*
* The Amazon S3 key of the deployment package.
*
*
* @return The Amazon S3 key of the deployment package.
*/
public String s3Key() {
return s3Key;
}
/**
*
* For versioned objects, the version of the deployment package object to use.
*
*
* @return For versioned objects, the version of the deployment package object to use.
*/
public String s3ObjectVersion() {
return s3ObjectVersion;
}
@Override
public Builder toBuilder() {
return new BuilderImpl(this);
}
public static Builder builder() {
return new BuilderImpl();
}
public static Class serializableBuilderClass() {
return BuilderImpl.class;
}
@Override
public int hashCode() {
int hashCode = 1;
hashCode = 31 * hashCode + Objects.hashCode(zipFile());
hashCode = 31 * hashCode + Objects.hashCode(s3Bucket());
hashCode = 31 * hashCode + Objects.hashCode(s3Key());
hashCode = 31 * hashCode + Objects.hashCode(s3ObjectVersion());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof FunctionCode)) {
return false;
}
FunctionCode other = (FunctionCode) obj;
return Objects.equals(zipFile(), other.zipFile()) && Objects.equals(s3Bucket(), other.s3Bucket())
&& Objects.equals(s3Key(), other.s3Key()) && Objects.equals(s3ObjectVersion(), other.s3ObjectVersion());
}
@Override
public String toString() {
return ToString.builder("FunctionCode").add("ZipFile", zipFile()).add("S3Bucket", s3Bucket()).add("S3Key", s3Key())
.add("S3ObjectVersion", s3ObjectVersion()).build();
}
public Optional getValueForField(String fieldName, Class clazz) {
switch (fieldName) {
case "ZipFile":
return Optional.ofNullable(clazz.cast(zipFile()));
case "S3Bucket":
return Optional.ofNullable(clazz.cast(s3Bucket()));
case "S3Key":
return Optional.ofNullable(clazz.cast(s3Key()));
case "S3ObjectVersion":
return Optional.ofNullable(clazz.cast(s3ObjectVersion()));
default:
return Optional.empty();
}
}
@Override
public List> sdkFields() {
return SDK_FIELDS;
}
private static Function