com.cloudsnorkel.cdk.github.runners.ContainerImageBuilder Maven / Gradle / Ivy
Show all versions of cdk.github.runners Show documentation
package com.cloudsnorkel.cdk.github.runners;
/**
* (deprecated) An image builder that uses AWS Image Builder to build Docker images pre-baked with all the GitHub Actions runner requirements.
*
* Builders can be used with runner providers.
*
* The CodeBuild builder is better and faster. Only use this one if you have no choice. For example, if you need Windows containers.
*
* Each builder re-runs automatically at a set interval to make sure the images contain the latest versions of everything.
*
* You can create an instance of this construct to customize the image used to spin-up runners. Some runner providers may require custom components. Check the runner provider documentation. The default components work with CodeBuild and Fargate.
*
* For example, to set a specific runner version, rebuild the image every 2 weeks, and add a few packages for the Fargate provider, use:
*
*
* const builder = new ContainerImageBuilder(this, 'Builder', {
* runnerVersion: RunnerVersion.specific('2.293.0'),
* rebuildInterval: Duration.days(14),
* });
* new CodeBuildRunnerProvider(this, 'CodeBuild provider', {
* labels: ['custom-codebuild'],
* imageBuilder: builder,
* });
*
*
* @deprecated use RunnerImageBuilder
*/
@javax.annotation.Generated(value = "jsii-pacmak/1.103.1 (build bef2dea)", date = "2024-09-14T02:42:19.401Z")
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
@software.amazon.jsii.Jsii(module = com.cloudsnorkel.cdk.github.runners.$Module.class, fqn = "@cloudsnorkel/cdk-github-runners.ContainerImageBuilder")
public class ContainerImageBuilder extends software.constructs.Construct implements com.cloudsnorkel.cdk.github.runners.IRunnerImageBuilder {
protected ContainerImageBuilder(final software.amazon.jsii.JsiiObjectRef objRef) {
super(objRef);
}
protected ContainerImageBuilder(final software.amazon.jsii.JsiiObject.InitializationMode initializationMode) {
super(initializationMode);
}
/**
* @param scope This parameter is required.
* @param id This parameter is required.
* @param props
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public ContainerImageBuilder(final @org.jetbrains.annotations.NotNull software.constructs.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String id, final @org.jetbrains.annotations.Nullable com.cloudsnorkel.cdk.github.runners.ContainerImageBuilderProps props) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(id, "id is required"), props });
}
/**
* @param scope This parameter is required.
* @param id This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public ContainerImageBuilder(final @org.jetbrains.annotations.NotNull software.constructs.Construct scope, final @org.jetbrains.annotations.NotNull java.lang.String id) {
super(software.amazon.jsii.JsiiObject.InitializationMode.JSII);
software.amazon.jsii.JsiiEngine.getInstance().createNewObject(this, new Object[] { java.util.Objects.requireNonNull(scope, "scope is required"), java.util.Objects.requireNonNull(id, "id is required") });
}
/**
* (deprecated) Add a component to be installed.
*
* @param component This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public void addComponent(final @org.jetbrains.annotations.NotNull com.cloudsnorkel.cdk.github.runners.ImageBuilderComponent component) {
software.amazon.jsii.Kernel.call(this, "addComponent", software.amazon.jsii.NativeType.VOID, new Object[] { java.util.Objects.requireNonNull(component, "component is required") });
}
/**
* (deprecated) Add extra trusted certificates. This helps deal with self-signed certificates for GitHub Enterprise Server.
*
* All first party Dockerfiles support this. Others may not.
*
* @param path path to directory containing a file called certs.pem containing all the required certificates. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public void addExtraCertificates(final @org.jetbrains.annotations.NotNull java.lang.String path) {
software.amazon.jsii.Kernel.call(this, "addExtraCertificates", software.amazon.jsii.NativeType.VOID, new Object[] { java.util.Objects.requireNonNull(path, "path is required") });
}
/**
* (deprecated) Build and return an AMI with GitHub Runner installed in it.
*
* Anything that ends up with a launch template pointing to an AMI that runs GitHub self-hosted runners can be used. A simple implementation could even point to an existing AMI and nothing else.
*
* The AMI can be further updated over time manually or using a schedule as long as it is always written to the same launch template.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
@Override
public @org.jetbrains.annotations.NotNull com.cloudsnorkel.cdk.github.runners.RunnerAmi bindAmi() {
return software.amazon.jsii.Kernel.call(this, "bindAmi", software.amazon.jsii.NativeType.forClass(com.cloudsnorkel.cdk.github.runners.RunnerAmi.class));
}
/**
* (deprecated) Called by IRunnerProvider to finalize settings and create the image builder.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
@Override
public @org.jetbrains.annotations.NotNull com.cloudsnorkel.cdk.github.runners.RunnerImage bindDockerImage() {
return software.amazon.jsii.Kernel.call(this, "bindDockerImage", software.amazon.jsii.NativeType.forClass(com.cloudsnorkel.cdk.github.runners.RunnerImage.class));
}
/**
* @param infra This parameter is required.
* @param dist This parameter is required.
* @param log This parameter is required.
* @param imageRecipeArn
* @param containerRecipeArn
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnImage createImage(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnInfrastructureConfiguration infra, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnDistributionConfiguration dist, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.logs.LogGroup log, final @org.jetbrains.annotations.Nullable java.lang.String imageRecipeArn, final @org.jetbrains.annotations.Nullable java.lang.String containerRecipeArn) {
return software.amazon.jsii.Kernel.call(this, "createImage", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.imagebuilder.CfnImage.class), new Object[] { java.util.Objects.requireNonNull(infra, "infra is required"), java.util.Objects.requireNonNull(dist, "dist is required"), java.util.Objects.requireNonNull(log, "log is required"), imageRecipeArn, containerRecipeArn });
}
/**
* @param infra This parameter is required.
* @param dist This parameter is required.
* @param log This parameter is required.
* @param imageRecipeArn
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnImage createImage(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnInfrastructureConfiguration infra, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnDistributionConfiguration dist, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.logs.LogGroup log, final @org.jetbrains.annotations.Nullable java.lang.String imageRecipeArn) {
return software.amazon.jsii.Kernel.call(this, "createImage", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.imagebuilder.CfnImage.class), new Object[] { java.util.Objects.requireNonNull(infra, "infra is required"), java.util.Objects.requireNonNull(dist, "dist is required"), java.util.Objects.requireNonNull(log, "log is required"), imageRecipeArn });
}
/**
* @param infra This parameter is required.
* @param dist This parameter is required.
* @param log This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnImage createImage(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnInfrastructureConfiguration infra, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnDistributionConfiguration dist, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.logs.LogGroup log) {
return software.amazon.jsii.Kernel.call(this, "createImage", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.imagebuilder.CfnImage.class), new Object[] { java.util.Objects.requireNonNull(infra, "infra is required"), java.util.Objects.requireNonNull(dist, "dist is required"), java.util.Objects.requireNonNull(log, "log is required") });
}
/**
* @param managedPolicies This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnInfrastructureConfiguration createInfrastructure(final @org.jetbrains.annotations.NotNull java.util.List managedPolicies) {
return software.amazon.jsii.Kernel.call(this, "createInfrastructure", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.imagebuilder.CfnInfrastructureConfiguration.class), new Object[] { java.util.Objects.requireNonNull(managedPolicies, "managedPolicies is required") });
}
/**
* @param recipeName This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.logs.LogGroup createLog(final @org.jetbrains.annotations.NotNull java.lang.String recipeName) {
return software.amazon.jsii.Kernel.call(this, "createLog", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.logs.LogGroup.class), new Object[] { java.util.Objects.requireNonNull(recipeName, "recipeName is required") });
}
/**
* @param infra This parameter is required.
* @param dist This parameter is required.
* @param log This parameter is required.
* @param imageRecipeArn
* @param containerRecipeArn
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnImagePipeline createPipeline(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnInfrastructureConfiguration infra, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnDistributionConfiguration dist, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.logs.LogGroup log, final @org.jetbrains.annotations.Nullable java.lang.String imageRecipeArn, final @org.jetbrains.annotations.Nullable java.lang.String containerRecipeArn) {
return software.amazon.jsii.Kernel.call(this, "createPipeline", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.imagebuilder.CfnImagePipeline.class), new Object[] { java.util.Objects.requireNonNull(infra, "infra is required"), java.util.Objects.requireNonNull(dist, "dist is required"), java.util.Objects.requireNonNull(log, "log is required"), imageRecipeArn, containerRecipeArn });
}
/**
* @param infra This parameter is required.
* @param dist This parameter is required.
* @param log This parameter is required.
* @param imageRecipeArn
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnImagePipeline createPipeline(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnInfrastructureConfiguration infra, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnDistributionConfiguration dist, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.logs.LogGroup log, final @org.jetbrains.annotations.Nullable java.lang.String imageRecipeArn) {
return software.amazon.jsii.Kernel.call(this, "createPipeline", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.imagebuilder.CfnImagePipeline.class), new Object[] { java.util.Objects.requireNonNull(infra, "infra is required"), java.util.Objects.requireNonNull(dist, "dist is required"), java.util.Objects.requireNonNull(log, "log is required"), imageRecipeArn });
}
/**
* @param infra This parameter is required.
* @param dist This parameter is required.
* @param log This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnImagePipeline createPipeline(final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnInfrastructureConfiguration infra, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.imagebuilder.CfnDistributionConfiguration dist, final @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.logs.LogGroup log) {
return software.amazon.jsii.Kernel.call(this, "createPipeline", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.imagebuilder.CfnImagePipeline.class), new Object[] { java.util.Objects.requireNonNull(infra, "infra is required"), java.util.Objects.requireNonNull(dist, "dist is required"), java.util.Objects.requireNonNull(log, "log is required") });
}
/**
* (deprecated) Add a component to be installed before any other components.
*
* Useful for required system settings like certificates or proxy settings.
*
* @param component This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public void prependComponent(final @org.jetbrains.annotations.NotNull com.cloudsnorkel.cdk.github.runners.ImageBuilderComponent component) {
software.amazon.jsii.Kernel.call(this, "prependComponent", software.amazon.jsii.NativeType.VOID, new Object[] { java.util.Objects.requireNonNull(component, "component is required") });
}
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull com.cloudsnorkel.cdk.github.runners.Architecture getArchitecture() {
return software.amazon.jsii.Kernel.get(this, "architecture", software.amazon.jsii.NativeType.forClass(com.cloudsnorkel.cdk.github.runners.Architecture.class));
}
/**
* (deprecated) The network connections associated with this resource.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.ec2.Connections getConnections() {
return software.amazon.jsii.Kernel.get(this, "connections", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ec2.Connections.class));
}
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull java.lang.String getDescription() {
return software.amazon.jsii.Kernel.get(this, "description", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull com.cloudsnorkel.cdk.github.runners.Os getOs() {
return software.amazon.jsii.Kernel.get(this, "os", software.amazon.jsii.NativeType.forClass(com.cloudsnorkel.cdk.github.runners.Os.class));
}
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull java.lang.String getPlatform() {
return software.amazon.jsii.Kernel.get(this, "platform", software.amazon.jsii.NativeType.forClass(java.lang.String.class));
}
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public @org.jetbrains.annotations.NotNull software.amazon.awscdk.services.ecr.IRepository getRepository() {
return software.amazon.jsii.Kernel.get(this, "repository", software.amazon.jsii.NativeType.forClass(software.amazon.awscdk.services.ecr.IRepository.class));
}
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull com.cloudsnorkel.cdk.github.runners.RunnerVersion getRunnerVersion() {
return software.amazon.jsii.Kernel.get(this, "runnerVersion", software.amazon.jsii.NativeType.forClass(com.cloudsnorkel.cdk.github.runners.RunnerVersion.class));
}
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected @org.jetbrains.annotations.NotNull java.util.List getComponents() {
return java.util.Collections.unmodifiableList(software.amazon.jsii.Kernel.get(this, "components", software.amazon.jsii.NativeType.listOf(software.amazon.jsii.NativeType.forClass(com.cloudsnorkel.cdk.github.runners.ImageBuilderComponent.class))));
}
/**
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
protected void setComponents(final @org.jetbrains.annotations.NotNull java.util.List value) {
software.amazon.jsii.Kernel.set(this, "components", java.util.Objects.requireNonNull(value, "components is required"));
}
/**
* (deprecated) A fluent builder for {@link com.cloudsnorkel.cdk.github.runners.ContainerImageBuilder}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public static final class Builder implements software.amazon.jsii.Builder {
/**
* @return a new instance of {@link Builder}.
* @param scope This parameter is required.
* @param id This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public static Builder create(final software.constructs.Construct scope, final java.lang.String id) {
return new Builder(scope, id);
}
private final software.constructs.Construct scope;
private final java.lang.String id;
private com.cloudsnorkel.cdk.github.runners.ContainerImageBuilderProps.Builder props;
private Builder(final software.constructs.Construct scope, final java.lang.String id) {
this.scope = scope;
this.id = id;
}
/**
* (experimental) Image architecture.
*
* Default: Architecture.X86_64
*
* @return {@code this}
* @param architecture Image architecture. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder architecture(final com.cloudsnorkel.cdk.github.runners.Architecture architecture) {
this.props().architecture(architecture);
return this;
}
/**
* (experimental) The instance type used to build the image.
*
* Default: m6i.large
*
* @return {@code this}
* @param instanceType The instance type used to build the image. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder instanceType(final software.amazon.awscdk.services.ec2.InstanceType instanceType) {
this.props().instanceType(instanceType);
return this;
}
/**
* (experimental) Removal policy for logs of image builds.
*
* If deployment fails on the custom resource, try setting this to RemovalPolicy.RETAIN
. This way the CodeBuild logs can still be viewed, and you can see why the build failed.
*
* We try to not leave anything behind when removed. But sometimes a log staying behind is useful.
*
* Default: RemovalPolicy.DESTROY
*
* @return {@code this}
* @param logRemovalPolicy Removal policy for logs of image builds. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder logRemovalPolicy(final software.amazon.awscdk.RemovalPolicy logRemovalPolicy) {
this.props().logRemovalPolicy(logRemovalPolicy);
return this;
}
/**
* (experimental) The number of days log events are kept in CloudWatch Logs.
*
* When updating
* this property, unsetting it doesn't remove the log retention policy. To
* remove the retention policy, set the value to INFINITE
.
*
* Default: logs.RetentionDays.ONE_MONTH
*
* @return {@code this}
* @param logRetention The number of days log events are kept in CloudWatch Logs. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder logRetention(final software.amazon.awscdk.services.logs.RetentionDays logRetention) {
this.props().logRetention(logRetention);
return this;
}
/**
* (experimental) Image OS.
*
* Default: OS.LINUX
*
* @return {@code this}
* @param os Image OS. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder os(final com.cloudsnorkel.cdk.github.runners.Os os) {
this.props().os(os);
return this;
}
/**
* (experimental) Parent image for the new Docker Image.
*
* You can use either Image Builder image ARN or public registry image.
*
* Default: 'mcr.microsoft.com/windows/servercore:ltsc2019-amd64'
*
* @return {@code this}
* @param parentImage Parent image for the new Docker Image. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder parentImage(final java.lang.String parentImage) {
this.props().parentImage(parentImage);
return this;
}
/**
* (experimental) Schedule the image to be rebuilt every given interval.
*
* Useful for keeping the image up-do-date with the latest GitHub runner version and latest OS updates.
*
* Set to zero to disable.
*
* Default: Duration.days(7)
*
* @return {@code this}
* @param rebuildInterval Schedule the image to be rebuilt every given interval. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder rebuildInterval(final software.amazon.awscdk.Duration rebuildInterval) {
this.props().rebuildInterval(rebuildInterval);
return this;
}
/**
* (experimental) Version of GitHub Runners to install.
*
* Default: latest version available
*
* @return {@code this}
* @param runnerVersion Version of GitHub Runners to install. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder runnerVersion(final com.cloudsnorkel.cdk.github.runners.RunnerVersion runnerVersion) {
this.props().runnerVersion(runnerVersion);
return this;
}
/**
* (deprecated) Security group to assign to launched builder instances.
*
* Default: new security group
*
* @return {@code this}
* @deprecated use {@link securityGroups }
* @param securityGroup Security group to assign to launched builder instances. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
public Builder securityGroup(final software.amazon.awscdk.services.ec2.ISecurityGroup securityGroup) {
this.props().securityGroup(securityGroup);
return this;
}
/**
* (experimental) Security groups to assign to launched builder instances.
*
* Default: new security group
*
* @return {@code this}
* @param securityGroups Security groups to assign to launched builder instances. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder securityGroups(final java.util.List extends software.amazon.awscdk.services.ec2.ISecurityGroup> securityGroups) {
this.props().securityGroups(securityGroups);
return this;
}
/**
* (experimental) Where to place the network interfaces within the VPC.
*
* Default: default VPC subnet
*
* @return {@code this}
* @param subnetSelection Where to place the network interfaces within the VPC. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder subnetSelection(final software.amazon.awscdk.services.ec2.SubnetSelection subnetSelection) {
this.props().subnetSelection(subnetSelection);
return this;
}
/**
* (experimental) VPC to launch the runners in.
*
* Default: default account VPC
*
* @return {@code this}
* @param vpc VPC to launch the runners in. This parameter is required.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Experimental)
public Builder vpc(final software.amazon.awscdk.services.ec2.IVpc vpc) {
this.props().vpc(vpc);
return this;
}
/**
* @return a newly built instance of {@link com.cloudsnorkel.cdk.github.runners.ContainerImageBuilder}.
*/
@software.amazon.jsii.Stability(software.amazon.jsii.Stability.Level.Deprecated)
@Deprecated
@Override
public com.cloudsnorkel.cdk.github.runners.ContainerImageBuilder build() {
return new com.cloudsnorkel.cdk.github.runners.ContainerImageBuilder(
this.scope,
this.id,
this.props != null ? this.props.build() : null
);
}
private com.cloudsnorkel.cdk.github.runners.ContainerImageBuilderProps.Builder props() {
if (this.props == null) {
this.props = new com.cloudsnorkel.cdk.github.runners.ContainerImageBuilderProps.Builder();
}
return this.props;
}
}
}