
io.github.cdklabs.cdkawssagemakerrolemanager.ActivityProps Maven / Gradle / Ivy
Show all versions of cdk-aws-sagemaker-role-manager Show documentation
package io.github.cdklabs.cdkawssagemakerrolemanager;
/**
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.84.0 (build 5404dcf)", date = "2023-06-18T00:22:41.591Z")
@software.amazon.jsii.Jsii(module = io.github.cdklabs.cdkawssagemakerrolemanager.$Module.class, fqn = "@cdklabs/cdk-aws-sagemaker-role-manager.ActivityProps")
@software.amazon.jsii.Jsii.Proxy(ActivityProps.Jsii$Proxy.class)
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public interface ActivityProps extends software.amazon.jsii.JsiiSerializable {
/**
* (experimental) Name of the SageMaker Activity.
*
* This name will be used to name the IAM policy that is created from this Activity.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.String getActivityName();
/**
* (experimental) Whether the activity supports customization for kms data keys and volume keys.
*
* Default: - false
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.Boolean getIsCustomizationAvailableForKMS();
/**
* (experimental) Whether the activity supports customization for vpc subnets and vpc security groups.
*
* Default: - false
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@org.jetbrains.annotations.NotNull java.lang.Boolean getIsCustomizationAvailableForVPC();
/**
* (experimental) Names of the Athena workgroups to give query permissions.
*
* Default: - none
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.util.List getAthenaWorkgroupNames() {
return null;
}
/**
* (experimental) ECR Repositories to give image pull permissions.
*
* Default: - none
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.util.List getEcrRepositories() {
return null;
}
/**
* (experimental) Names of the Glue Databases to give permissions to search tables.
*
* Default: - none
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.util.List getGlueDatabaseNames() {
return null;
}
/**
* (experimental) Roles to allow passing as passed roles to actions.
*
* Default: - none
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.util.List getRolesToPass() {
return null;
}
/**
* (experimental) S3 Buckets to give read and write permissions.
*
* Default: - none
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.util.List getS3Buckets() {
return null;
}
/**
* (experimental) Version of the SageMaker Activity.
*
* This version will be used to fetch the policy template that corresponds to the
* Activity.
*
* Default: - 1
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
default @org.jetbrains.annotations.Nullable java.lang.Number getVersion() {
return null;
}
/**
* @return a {@link Builder} of {@link ActivityProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
static Builder builder() {
return new Builder();
}
/**
* A builder for {@link ActivityProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public static final class Builder implements software.amazon.jsii.Builder {
java.lang.String activityName;
java.lang.Boolean isCustomizationAvailableForKms;
java.lang.Boolean isCustomizationAvailableForVpc;
java.util.List athenaWorkgroupNames;
java.util.List ecrRepositories;
java.util.List glueDatabaseNames;
java.util.List rolesToPass;
java.util.List s3Buckets;
java.lang.Number version;
/**
* Sets the value of {@link ActivityProps#getActivityName}
* @param activityName Name of the SageMaker Activity. This parameter is required.
* This name will be used to name the IAM policy that is created from this Activity.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder activityName(java.lang.String activityName) {
this.activityName = activityName;
return this;
}
/**
* Sets the value of {@link ActivityProps#getIsCustomizationAvailableForKms}
* @param isCustomizationAvailableForKms Whether the activity supports customization for kms data keys and volume keys. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder isCustomizationAvailableForKms(java.lang.Boolean isCustomizationAvailableForKms) {
this.isCustomizationAvailableForKms = isCustomizationAvailableForKms;
return this;
}
/**
* Sets the value of {@link ActivityProps#getIsCustomizationAvailableForVpc}
* @param isCustomizationAvailableForVpc Whether the activity supports customization for vpc subnets and vpc security groups. This parameter is required.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder isCustomizationAvailableForVpc(java.lang.Boolean isCustomizationAvailableForVpc) {
this.isCustomizationAvailableForVpc = isCustomizationAvailableForVpc;
return this;
}
/**
* Sets the value of {@link ActivityProps#getAthenaWorkgroupNames}
* @param athenaWorkgroupNames Names of the Athena workgroups to give query permissions.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder athenaWorkgroupNames(java.util.List athenaWorkgroupNames) {
this.athenaWorkgroupNames = athenaWorkgroupNames;
return this;
}
/**
* Sets the value of {@link ActivityProps#getEcrRepositories}
* @param ecrRepositories ECR Repositories to give image pull permissions.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@SuppressWarnings("unchecked")
public Builder ecrRepositories(java.util.List extends software.amazon.awscdk.services.ecr.IRepository> ecrRepositories) {
this.ecrRepositories = (java.util.List)ecrRepositories;
return this;
}
/**
* Sets the value of {@link ActivityProps#getGlueDatabaseNames}
* @param glueDatabaseNames Names of the Glue Databases to give permissions to search tables.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder glueDatabaseNames(java.util.List glueDatabaseNames) {
this.glueDatabaseNames = glueDatabaseNames;
return this;
}
/**
* Sets the value of {@link ActivityProps#getRolesToPass}
* @param rolesToPass Roles to allow passing as passed roles to actions.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@SuppressWarnings("unchecked")
public Builder rolesToPass(java.util.List extends software.amazon.awscdk.services.iam.IRole> rolesToPass) {
this.rolesToPass = (java.util.List)rolesToPass;
return this;
}
/**
* Sets the value of {@link ActivityProps#getS3Buckets}
* @param s3Buckets S3 Buckets to give read and write permissions.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@SuppressWarnings("unchecked")
public Builder s3Buckets(java.util.List extends software.amazon.awscdk.services.s3.IBucket> s3Buckets) {
this.s3Buckets = (java.util.List)s3Buckets;
return this;
}
/**
* Sets the value of {@link ActivityProps#getVersion}
* @param version Version of the SageMaker Activity.
* This version will be used to fetch the policy template that corresponds to the
* Activity.
* @return {@code this}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder version(java.lang.Number version) {
this.version = version;
return this;
}
/**
* Builds the configured instance.
* @return a new instance of {@link ActivityProps}
* @throws NullPointerException if any required attribute was not provided
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@Override
public ActivityProps build() {
return new Jsii$Proxy(this);
}
}
/**
* An implementation for {@link ActivityProps}
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
@software.amazon.jsii.Internal
final class Jsii$Proxy extends software.amazon.jsii.JsiiObject implements ActivityProps {
private final java.lang.String activityName;
private final java.lang.Boolean isCustomizationAvailableForKms;
private final java.lang.Boolean isCustomizationAvailableForVpc;
private final java.util.List athenaWorkgroupNames;
private final java.util.List ecrRepositories;
private final java.util.List glueDatabaseNames;
private final java.util.List rolesToPass;
private final java.util.List s3Buckets;
private final java.lang.Number version;
/**
* 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.activityName = software.amazon.jsii.Kernel.get(this, "activityName", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
this.isCustomizationAvailableForKms = software.amazon.jsii.Kernel.get(this, "isCustomizationAvailableForKMS", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.isCustomizationAvailableForVpc = software.amazon.jsii.Kernel.get(this, "isCustomizationAvailableForVPC", software.amazon.jsii.NativeType.forClass(java.lang.Boolean.class));
this.athenaWorkgroupNames = software.amazon.jsii.Kernel.get(this, "athenaWorkgroupNames", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
this.ecrRepositories = software.amazon.jsii.Kernel.get(this, "ecrRepositories", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecr.IRepository.class)));
this.glueDatabaseNames = software.amazon.jsii.Kernel.get(this, "glueDatabaseNames", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(java.lang.String.class)));
this.rolesToPass = software.amazon.jsii.Kernel.get(this, "rolesToPass", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.iam.IRole.class)));
this.s3Buckets = software.amazon.jsii.Kernel.get(this, "s3Buckets", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.s3.IBucket.class)));
this.version = software.amazon.jsii.Kernel.get(this, "version", software.amazon.jsii.NativeType.forClass(java.lang.Number.class));
}
/**
* Constructor that initializes the object based on literal property values passed by the {@link Builder}.
*/
@SuppressWarnings("unchecked")
protected Jsii$Proxy(final Builder builder) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
this.activityName = java.util.Objects.requireNonNull(builder.activityName, "activityName is required");
this.isCustomizationAvailableForKms = java.util.Objects.requireNonNull(builder.isCustomizationAvailableForKms, "isCustomizationAvailableForKms is required");
this.isCustomizationAvailableForVpc = java.util.Objects.requireNonNull(builder.isCustomizationAvailableForVpc, "isCustomizationAvailableForVpc is required");
this.athenaWorkgroupNames = builder.athenaWorkgroupNames;
this.ecrRepositories = (java.util.List)builder.ecrRepositories;
this.glueDatabaseNames = builder.glueDatabaseNames;
this.rolesToPass = (java.util.List)builder.rolesToPass;
this.s3Buckets = (java.util.List)builder.s3Buckets;
this.version = builder.version;
}
@Override
public final java.lang.String getActivityName() {
return this.activityName;
}
@Override
public final java.lang.Boolean getIsCustomizationAvailableForKMS() {
return this.isCustomizationAvailableForKms;
}
@Override
public final java.lang.Boolean getIsCustomizationAvailableForVPC() {
return this.isCustomizationAvailableForVpc;
}
@Override
public final java.util.List getAthenaWorkgroupNames() {
return this.athenaWorkgroupNames;
}
@Override
public final java.util.List getEcrRepositories() {
return this.ecrRepositories;
}
@Override
public final java.util.List getGlueDatabaseNames() {
return this.glueDatabaseNames;
}
@Override
public final java.util.List getRolesToPass() {
return this.rolesToPass;
}
@Override
public final java.util.List getS3Buckets() {
return this.s3Buckets;
}
@Override
public final java.lang.Number getVersion() {
return this.version;
}
@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("activityName", om.valueToTree(this.getActivityName()));
data.set("isCustomizationAvailableForKMS", om.valueToTree(this.getIsCustomizationAvailableForKMS()));
data.set("isCustomizationAvailableForVPC", om.valueToTree(this.getIsCustomizationAvailableForVPC()));
if (this.getAthenaWorkgroupNames() != null) {
data.set("athenaWorkgroupNames", om.valueToTree(this.getAthenaWorkgroupNames()));
}
if (this.getEcrRepositories() != null) {
data.set("ecrRepositories", om.valueToTree(this.getEcrRepositories()));
}
if (this.getGlueDatabaseNames() != null) {
data.set("glueDatabaseNames", om.valueToTree(this.getGlueDatabaseNames()));
}
if (this.getRolesToPass() != null) {
data.set("rolesToPass", om.valueToTree(this.getRolesToPass()));
}
if (this.getS3Buckets() != null) {
data.set("s3Buckets", om.valueToTree(this.getS3Buckets()));
}
if (this.getVersion() != null) {
data.set("version", om.valueToTree(this.getVersion()));
}
final com.fasterxml.jackson.databind.node.ObjectNode struct = com.fasterxml.jackson.databind.node.JsonNodeFactory.instance.objectNode();
struct.set("fqn", om.valueToTree("@cdklabs/cdk-aws-sagemaker-role-manager.ActivityProps"));
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;
ActivityProps.Jsii$Proxy that = (ActivityProps.Jsii$Proxy) o;
if (!activityName.equals(that.activityName)) return false;
if (!isCustomizationAvailableForKms.equals(that.isCustomizationAvailableForKms)) return false;
if (!isCustomizationAvailableForVpc.equals(that.isCustomizationAvailableForVpc)) return false;
if (this.athenaWorkgroupNames != null ? !this.athenaWorkgroupNames.equals(that.athenaWorkgroupNames) : that.athenaWorkgroupNames != null) return false;
if (this.ecrRepositories != null ? !this.ecrRepositories.equals(that.ecrRepositories) : that.ecrRepositories != null) return false;
if (this.glueDatabaseNames != null ? !this.glueDatabaseNames.equals(that.glueDatabaseNames) : that.glueDatabaseNames != null) return false;
if (this.rolesToPass != null ? !this.rolesToPass.equals(that.rolesToPass) : that.rolesToPass != null) return false;
if (this.s3Buckets != null ? !this.s3Buckets.equals(that.s3Buckets) : that.s3Buckets != null) return false;
return this.version != null ? this.version.equals(that.version) : that.version == null;
}
@Override
public final int hashCode() {
int result = this.activityName.hashCode();
result = 31 * result + (this.isCustomizationAvailableForKms.hashCode());
result = 31 * result + (this.isCustomizationAvailableForVpc.hashCode());
result = 31 * result + (this.athenaWorkgroupNames != null ? this.athenaWorkgroupNames.hashCode() : 0);
result = 31 * result + (this.ecrRepositories != null ? this.ecrRepositories.hashCode() : 0);
result = 31 * result + (this.glueDatabaseNames != null ? this.glueDatabaseNames.hashCode() : 0);
result = 31 * result + (this.rolesToPass != null ? this.rolesToPass.hashCode() : 0);
result = 31 * result + (this.s3Buckets != null ? this.s3Buckets.hashCode() : 0);
result = 31 * result + (this.version != null ? this.version.hashCode() : 0);
return result;
}
}
}