All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.googlenative.apigee.v1.InstanceArgs Maven / Gradle / Ivy

// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.googlenative.apigee.v1;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.googlenative.apigee.v1.enums.InstancePeeringCidrRange;
import java.lang.String;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class InstanceArgs extends com.pulumi.resources.ResourceArgs {

    public static final InstanceArgs Empty = new InstanceArgs();

    /**
     * Optional. Customer accept list represents the list of projects (id/number) on customer side that can privately connect to the service attachment. It is an optional field which the customers can provide during the instance creation. By default, the customer project associated with the Apigee organization will be included to the list.
     * 
     */
    @Import(name="consumerAcceptList")
    private @Nullable Output> consumerAcceptList;

    /**
     * @return Optional. Customer accept list represents the list of projects (id/number) on customer side that can privately connect to the service attachment. It is an optional field which the customers can provide during the instance creation. By default, the customer project associated with the Apigee organization will be included to the list.
     * 
     */
    public Optional>> consumerAcceptList() {
        return Optional.ofNullable(this.consumerAcceptList);
    }

    /**
     * Optional. Description of the instance.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return Optional. Description of the instance.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * Customer Managed Encryption Key (CMEK) used for disk and volume encryption. Required for Apigee paid subscriptions only. Use the following format: `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`
     * 
     */
    @Import(name="diskEncryptionKeyName")
    private @Nullable Output diskEncryptionKeyName;

    /**
     * @return Customer Managed Encryption Key (CMEK) used for disk and volume encryption. Required for Apigee paid subscriptions only. Use the following format: `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`
     * 
     */
    public Optional> diskEncryptionKeyName() {
        return Optional.ofNullable(this.diskEncryptionKeyName);
    }

    /**
     * Optional. Display name for the instance.
     * 
     */
    @Import(name="displayName")
    private @Nullable Output displayName;

    /**
     * @return Optional. Display name for the instance.
     * 
     */
    public Optional> displayName() {
        return Optional.ofNullable(this.displayName);
    }

    /**
     * Optional. Comma-separated list of CIDR blocks of length 22 and/or 28 used to create the Apigee instance. Providing CIDR ranges is optional. You can provide just /22 or /28 or both (or neither). Ranges you provide should be freely available as part of a larger named range you have allocated to the Service Networking peering. If this parameter is not provided, Apigee automatically requests an available /22 and /28 CIDR block from Service Networking. Use the /22 CIDR block for configuring your firewall needs to allow traffic from Apigee. Input formats: `a.b.c.d/22` or `e.f.g.h/28` or `a.b.c.d/22,e.f.g.h/28`
     * 
     */
    @Import(name="ipRange")
    private @Nullable Output ipRange;

    /**
     * @return Optional. Comma-separated list of CIDR blocks of length 22 and/or 28 used to create the Apigee instance. Providing CIDR ranges is optional. You can provide just /22 or /28 or both (or neither). Ranges you provide should be freely available as part of a larger named range you have allocated to the Service Networking peering. If this parameter is not provided, Apigee automatically requests an available /22 and /28 CIDR block from Service Networking. Use the /22 CIDR block for configuring your firewall needs to allow traffic from Apigee. Input formats: `a.b.c.d/22` or `e.f.g.h/28` or `a.b.c.d/22,e.f.g.h/28`
     * 
     */
    public Optional> ipRange() {
        return Optional.ofNullable(this.ipRange);
    }

    /**
     * Compute Engine location where the instance resides.
     * 
     */
    @Import(name="location")
    private @Nullable Output location;

    /**
     * @return Compute Engine location where the instance resides.
     * 
     */
    public Optional> location() {
        return Optional.ofNullable(this.location);
    }

    /**
     * Resource ID of the instance. Values must match the regular expression `^a-z{0,30}[a-z\d]$`.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return Resource ID of the instance. Values must match the regular expression `^a-z{0,30}[a-z\d]$`.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    @Import(name="organizationId", required=true)
    private Output organizationId;

    public Output organizationId() {
        return this.organizationId;
    }

    /**
     * Optional. Size of the CIDR block range that will be reserved by the instance. PAID organizations support `SLASH_16` to `SLASH_20` and defaults to `SLASH_16`. Evaluation organizations support only `SLASH_23`.
     * 
     */
    @Import(name="peeringCidrRange")
    private @Nullable Output peeringCidrRange;

    /**
     * @return Optional. Size of the CIDR block range that will be reserved by the instance. PAID organizations support `SLASH_16` to `SLASH_20` and defaults to `SLASH_16`. Evaluation organizations support only `SLASH_23`.
     * 
     */
    public Optional> peeringCidrRange() {
        return Optional.ofNullable(this.peeringCidrRange);
    }

    private InstanceArgs() {}

    private InstanceArgs(InstanceArgs $) {
        this.consumerAcceptList = $.consumerAcceptList;
        this.description = $.description;
        this.diskEncryptionKeyName = $.diskEncryptionKeyName;
        this.displayName = $.displayName;
        this.ipRange = $.ipRange;
        this.location = $.location;
        this.name = $.name;
        this.organizationId = $.organizationId;
        this.peeringCidrRange = $.peeringCidrRange;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(InstanceArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private InstanceArgs $;

        public Builder() {
            $ = new InstanceArgs();
        }

        public Builder(InstanceArgs defaults) {
            $ = new InstanceArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param consumerAcceptList Optional. Customer accept list represents the list of projects (id/number) on customer side that can privately connect to the service attachment. It is an optional field which the customers can provide during the instance creation. By default, the customer project associated with the Apigee organization will be included to the list.
         * 
         * @return builder
         * 
         */
        public Builder consumerAcceptList(@Nullable Output> consumerAcceptList) {
            $.consumerAcceptList = consumerAcceptList;
            return this;
        }

        /**
         * @param consumerAcceptList Optional. Customer accept list represents the list of projects (id/number) on customer side that can privately connect to the service attachment. It is an optional field which the customers can provide during the instance creation. By default, the customer project associated with the Apigee organization will be included to the list.
         * 
         * @return builder
         * 
         */
        public Builder consumerAcceptList(List consumerAcceptList) {
            return consumerAcceptList(Output.of(consumerAcceptList));
        }

        /**
         * @param consumerAcceptList Optional. Customer accept list represents the list of projects (id/number) on customer side that can privately connect to the service attachment. It is an optional field which the customers can provide during the instance creation. By default, the customer project associated with the Apigee organization will be included to the list.
         * 
         * @return builder
         * 
         */
        public Builder consumerAcceptList(String... consumerAcceptList) {
            return consumerAcceptList(List.of(consumerAcceptList));
        }

        /**
         * @param description Optional. Description of the instance.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description Optional. Description of the instance.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param diskEncryptionKeyName Customer Managed Encryption Key (CMEK) used for disk and volume encryption. Required for Apigee paid subscriptions only. Use the following format: `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`
         * 
         * @return builder
         * 
         */
        public Builder diskEncryptionKeyName(@Nullable Output diskEncryptionKeyName) {
            $.diskEncryptionKeyName = diskEncryptionKeyName;
            return this;
        }

        /**
         * @param diskEncryptionKeyName Customer Managed Encryption Key (CMEK) used for disk and volume encryption. Required for Apigee paid subscriptions only. Use the following format: `projects/([^/]+)/locations/([^/]+)/keyRings/([^/]+)/cryptoKeys/([^/]+)`
         * 
         * @return builder
         * 
         */
        public Builder diskEncryptionKeyName(String diskEncryptionKeyName) {
            return diskEncryptionKeyName(Output.of(diskEncryptionKeyName));
        }

        /**
         * @param displayName Optional. Display name for the instance.
         * 
         * @return builder
         * 
         */
        public Builder displayName(@Nullable Output displayName) {
            $.displayName = displayName;
            return this;
        }

        /**
         * @param displayName Optional. Display name for the instance.
         * 
         * @return builder
         * 
         */
        public Builder displayName(String displayName) {
            return displayName(Output.of(displayName));
        }

        /**
         * @param ipRange Optional. Comma-separated list of CIDR blocks of length 22 and/or 28 used to create the Apigee instance. Providing CIDR ranges is optional. You can provide just /22 or /28 or both (or neither). Ranges you provide should be freely available as part of a larger named range you have allocated to the Service Networking peering. If this parameter is not provided, Apigee automatically requests an available /22 and /28 CIDR block from Service Networking. Use the /22 CIDR block for configuring your firewall needs to allow traffic from Apigee. Input formats: `a.b.c.d/22` or `e.f.g.h/28` or `a.b.c.d/22,e.f.g.h/28`
         * 
         * @return builder
         * 
         */
        public Builder ipRange(@Nullable Output ipRange) {
            $.ipRange = ipRange;
            return this;
        }

        /**
         * @param ipRange Optional. Comma-separated list of CIDR blocks of length 22 and/or 28 used to create the Apigee instance. Providing CIDR ranges is optional. You can provide just /22 or /28 or both (or neither). Ranges you provide should be freely available as part of a larger named range you have allocated to the Service Networking peering. If this parameter is not provided, Apigee automatically requests an available /22 and /28 CIDR block from Service Networking. Use the /22 CIDR block for configuring your firewall needs to allow traffic from Apigee. Input formats: `a.b.c.d/22` or `e.f.g.h/28` or `a.b.c.d/22,e.f.g.h/28`
         * 
         * @return builder
         * 
         */
        public Builder ipRange(String ipRange) {
            return ipRange(Output.of(ipRange));
        }

        /**
         * @param location Compute Engine location where the instance resides.
         * 
         * @return builder
         * 
         */
        public Builder location(@Nullable Output location) {
            $.location = location;
            return this;
        }

        /**
         * @param location Compute Engine location where the instance resides.
         * 
         * @return builder
         * 
         */
        public Builder location(String location) {
            return location(Output.of(location));
        }

        /**
         * @param name Resource ID of the instance. Values must match the regular expression `^a-z{0,30}[a-z\d]$`.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name Resource ID of the instance. Values must match the regular expression `^a-z{0,30}[a-z\d]$`.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        public Builder organizationId(Output organizationId) {
            $.organizationId = organizationId;
            return this;
        }

        public Builder organizationId(String organizationId) {
            return organizationId(Output.of(organizationId));
        }

        /**
         * @param peeringCidrRange Optional. Size of the CIDR block range that will be reserved by the instance. PAID organizations support `SLASH_16` to `SLASH_20` and defaults to `SLASH_16`. Evaluation organizations support only `SLASH_23`.
         * 
         * @return builder
         * 
         */
        public Builder peeringCidrRange(@Nullable Output peeringCidrRange) {
            $.peeringCidrRange = peeringCidrRange;
            return this;
        }

        /**
         * @param peeringCidrRange Optional. Size of the CIDR block range that will be reserved by the instance. PAID organizations support `SLASH_16` to `SLASH_20` and defaults to `SLASH_16`. Evaluation organizations support only `SLASH_23`.
         * 
         * @return builder
         * 
         */
        public Builder peeringCidrRange(InstancePeeringCidrRange peeringCidrRange) {
            return peeringCidrRange(Output.of(peeringCidrRange));
        }

        public InstanceArgs build() {
            $.organizationId = Objects.requireNonNull($.organizationId, "expected parameter 'organizationId' to be non-null");
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy