software.amazon.awscdk.services.appsync.LambdaDataSourceProps Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of appsync Show documentation
Show all versions of appsync Show documentation
The CDK Construct Library for AWS::AppSync
package software.amazon.awscdk.services.appsync;
/**
* (experimental) Properties for an AppSync Lambda datasource.
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.31.0 (build 6fa403d)", date = "2021-07-21T15:56:45.934Z")
@software.amazon.jsii.Jsii(module = software.amazon.awscdk.services.appsync.$Module.class, fqn = "@aws-cdk/aws-appsync.LambdaDataSourceProps")
@software.amazon.jsii.Jsii.Proxy(LambdaDataSourceProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface LambdaDataSourceProps extends software.amazon.jsii.JsiiSerializable, software.amazon.awscdk.services.appsync.BackedDataSourceProps {
/**
* (experimental) The Lambda function to call to interact with this data source.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull software.amazon.awscdk.services.lambda.IFunction getLambdaFunction();
/**
* @return a {@link Builder} of {@link LambdaDataSourceProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link LambdaDataSourceProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
private software.amazon.awscdk.services.lambda.IFunction lambdaFunction;
private software.amazon.awscdk.services.iam.IRole serviceRole;
private software.amazon.awscdk.services.appsync.IGraphqlApi api;
private java.lang.String description;
private java.lang.String name;
/**
* Sets the value of {@link LambdaDataSourceProps#getLambdaFunction}
* @param lambdaFunction The Lambda function to call to interact with this data source. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder lambdaFunction(software.amazon.awscdk.services.lambda.IFunction lambdaFunction) {
this.lambdaFunction = lambdaFunction;
return this;
}
/**
* Sets the value of {@link LambdaDataSourceProps#getServiceRole}
* @param serviceRole The IAM service role to be assumed by AppSync to interact with the data source.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder serviceRole(software.amazon.awscdk.services.iam.IRole serviceRole) {
this.serviceRole = serviceRole;
return this;
}
/**
* Sets the value of {@link LambdaDataSourceProps#getApi}
* @param api The API to attach this data source to. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder api(software.amazon.awscdk.services.appsync.IGraphqlApi api) {
this.api = api;
return this;
}
/**
* Sets the value of {@link LambdaDataSourceProps#getDescription}
* @param description the description of the data source.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder description(java.lang.String description) {
this.description = description;
return this;
}
/**
* Sets the value of {@link LambdaDataSourceProps#getName}
* @param name The name of the data source.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder name(java.lang.String name) {
this.name = name;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link LambdaDataSourceProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public LambdaDataSourceProps build() {
return new Jsii$Proxy(lambdaFunction, serviceRole, api, description, name);
}
}
/**
* An implementation for {@link LambdaDataSourceProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements LambdaDataSourceProps {
private final software.amazon.awscdk.services.lambda.IFunction lambdaFunction;
private final software.amazon.awscdk.services.iam.IRole serviceRole;
private final software.amazon.awscdk.services.appsync.IGraphqlApi api;
private final java.lang.String description;
private final java.lang.String name;
/**
* Constructor that initializes the object based on values retrieved from the JsiiObject.
* @param objRef Reference to the JSII managed object.
*/
protected Jsii$Proxy(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
this.lambdaFunction = software.amazon.jsii.Kernel.get(this, "lambdaFunction", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.lambda.IFunction.class));
this.serviceRole = software.amazon.jsii.Kernel.get(this, "serviceRole", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.iam.IRole.class));
this.api = software.amazon.jsii.Kernel.get(this, "api", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.appsync.IGraphqlApi.class));
this.description = software.amazon.jsii.Kernel.get(this, "description", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.name = software.amazon.jsii.Kernel.get(this, "name", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
protected Jsii$Proxy(final software.amazon.awscdk.services.lambda.IFunction lambdaFunction, final software.amazon.awscdk.services.iam.IRole serviceRole, final software.amazon.awscdk.services.appsync.IGraphqlApi api, final java.lang.String description, final java.lang.String name) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.lambdaFunction = java.util.Objects.requireNonNull(lambdaFunction, "lambdaFunction is required");
this.serviceRole = serviceRole;
this.api = java.util.Objects.requireNonNull(api, "api is required");
this.description = description;
this.name = name;
}
@Override
public final software.amazon.awscdk.services.lambda.IFunction getLambdaFunction() {
return this.lambdaFunction;
}
@Override
public final software.amazon.awscdk.services.iam.IRole getServiceRole() {
return this.serviceRole;
}
@Override
public final software.amazon.awscdk.services.appsync.IGraphqlApi getApi() {
return this.api;
}
@Override
public final java.lang.String getDescription() {
return this.description;
}
@Override
public final java.lang.String getName() {
return this.name;
}
@Override
@software.amazon.jsii.Internal
public com.fasterxml.jackson.databind.JsonNode $jsii$toJson() {
final com.fasterxml.jackson.databind.ObjectMapper om = software.amazon.jsii.JsiiObjectMapper.INSTANCE;
final com.fasterxml.jackson.databind.node.ObjectNode data = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
data.set("lambdaFunction", om.valueToTree(this.getLambdaFunction()));
if (this.getServiceRole() != null) {
data.set("serviceRole", om.valueToTree(this.getServiceRole()));
}
data.set("api", om.valueToTree(this.getApi()));
if (this.getDescription() != null) {
data.set("description", om.valueToTree(this.getDescription()));
}
if (this.getName() != null) {
data.set("name", om.valueToTree(this.getName()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@aws-cdk/aws-appsync.LambdaDataSourceProps"));
struct.set("data", data);
final com.fasterxml.jackson.databind.node.ObjectNode obj = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
obj.set("$jsii.struct", struct);
return obj;
}
@Override
public final boolean equals(final Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
LambdaDataSourceProps.Jsii$Proxy that = (LambdaDataSourceProps.Jsii$Proxy) o;
if (!lambdaFunction.equals(that.lambdaFunction)) return false;
if (this.serviceRole != null ? !this.serviceRole.equals(that.serviceRole) : that.serviceRole != null) return false;
if (!api.equals(that.api)) return false;
if (this.description != null ? !this.description.equals(that.description) : that.description != null) return false;
return this.name != null ? this.name.equals(that.name) : that.name == null;
}
@Override
public final int hashCode() {
int result = this.lambdaFunction.hashCode();
result = 31 * result + (this.serviceRole != null ? this.serviceRole.hashCode() : 0);
result = 31 * result + (this.api.hashCode());
result = 31 * result + (this.description != null ? this.description.hashCode() : 0);
result = 31 * result + (this.name != null ? this.name.hashCode() : 0);
return result;
}
}
}