Class PubsubTopic.Builder

  • All Implemented Interfaces:
    software.amazon.jsii.Builder<PubsubTopic>
    Enclosing class:
    PubsubTopic

    @Stability(Stable)
    public static final class PubsubTopic.Builder
    extends Object
    implements software.amazon.jsii.Builder<PubsubTopic>
    A fluent builder for PubsubTopic.
    • Method Detail

      • create

        @Stability(Stable)
        public static PubsubTopic.Builder create​(software.constructs.Construct scope,
                                                 String id)
        Parameters:
        scope - The scope in which to define this construct. This parameter is required.
        id - The scoped construct ID. This parameter is required.
        Returns:
        a new instance of PubsubTopic.Builder.
      • connection

        @Stability(Experimental)
        public PubsubTopic.Builder connection​(com.hashicorp.cdktf.SSHProvisionerConnection connection)
        Parameters:
        connection - This parameter is required.
        Returns:
        this
      • connection

        @Stability(Experimental)
        public PubsubTopic.Builder connection​(com.hashicorp.cdktf.WinrmProvisionerConnection connection)
        Parameters:
        connection - This parameter is required.
        Returns:
        this
      • count

        @Stability(Experimental)
        public PubsubTopic.Builder count​(Number count)
        Parameters:
        count - This parameter is required.
        Returns:
        this
      • count

        @Stability(Experimental)
        public PubsubTopic.Builder count​(com.hashicorp.cdktf.TerraformCount count)
        Parameters:
        count - This parameter is required.
        Returns:
        this
      • dependsOn

        @Stability(Experimental)
        public PubsubTopic.Builder dependsOn​(List<? extends com.hashicorp.cdktf.ITerraformDependable> dependsOn)
        Parameters:
        dependsOn - This parameter is required.
        Returns:
        this
      • forEach

        @Stability(Experimental)
        public PubsubTopic.Builder forEach​(com.hashicorp.cdktf.ITerraformIterator forEach)
        Parameters:
        forEach - This parameter is required.
        Returns:
        this
      • lifecycle

        @Stability(Experimental)
        public PubsubTopic.Builder lifecycle​(com.hashicorp.cdktf.TerraformResourceLifecycle lifecycle)
        Parameters:
        lifecycle - This parameter is required.
        Returns:
        this
      • provider

        @Stability(Experimental)
        public PubsubTopic.Builder provider​(com.hashicorp.cdktf.TerraformProvider provider)
        Parameters:
        provider - This parameter is required.
        Returns:
        this
      • provisioners

        @Stability(Experimental)
        public PubsubTopic.Builder provisioners​(List<? extends Object> provisioners)
        Parameters:
        provisioners - This parameter is required.
        Returns:
        this
      • name

        @Stability(Stable)
        public PubsubTopic.Builder name​(String name)
        Name of the topic.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#name PubsubTopic#name}

        Parameters:
        name - Name of the topic. This parameter is required.
        Returns:
        this
      • id

        @Stability(Stable)
        public PubsubTopic.Builder id​(String id)
        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#id PubsubTopic#id}.

        Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable.

        Parameters:
        id - Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#id PubsubTopic#id}. This parameter is required.
        Returns:
        this
      • ingestionDataSourceSettings

        @Stability(Stable)
        public PubsubTopic.Builder ingestionDataSourceSettings​(PubsubTopicIngestionDataSourceSettings ingestionDataSourceSettings)
        ingestion_data_source_settings block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#ingestion_data_source_settings PubsubTopic#ingestion_data_source_settings}

        Parameters:
        ingestionDataSourceSettings - ingestion_data_source_settings block. This parameter is required.
        Returns:
        this
      • kmsKeyName

        @Stability(Stable)
        public PubsubTopic.Builder kmsKeyName​(String kmsKeyName)
        The resource name of the Cloud KMS CryptoKey to be used to protect access to messages published on this topic.

        Your project's PubSub service account ('service-{{PROJECT_NUMBER}}@gcp-sa-pubsub.iam.gserviceaccount.com') must have 'roles/cloudkms.cryptoKeyEncrypterDecrypter' to use this feature. The expected format is 'projects/* /locations/* /keyRings/* /cryptoKeys/*' Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#kms_key_name PubsubTopic#kms_key_name} Note: The above comment contained a comment block ending sequence (* followed by /). We have introduced a space between to prevent syntax errors. Please ignore the space.

        Parameters:
        kmsKeyName - The resource name of the Cloud KMS CryptoKey to be used to protect access to messages published on this topic. This parameter is required.
        Returns:
        this
      • labels

        @Stability(Stable)
        public PubsubTopic.Builder labels​(Map<String,​String> labels)
        A set of key/value label pairs to assign to this Topic.

        **Note**: This field is non-authoritative, and will only manage the labels present in your configuration. Please refer to the field 'effective_labels' for all of the labels present on the resource. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#labels PubsubTopic#labels}

        Parameters:
        labels - A set of key/value label pairs to assign to this Topic. This parameter is required.
        Returns:
        this
      • messageRetentionDuration

        @Stability(Stable)
        public PubsubTopic.Builder messageRetentionDuration​(String messageRetentionDuration)
        Indicates the minimum duration to retain a message after it is published to the topic.

        If this field is set, messages published to the topic in the last messageRetentionDuration are always available to subscribers. For instance, it allows any attached subscription to seek to a timestamp that is up to messageRetentionDuration in the past. If this field is not set, message retention is controlled by settings on individual subscriptions. The rotation period has the format of a decimal number, followed by the letter 's' (seconds). Cannot be more than 31 days or less than 10 minutes. Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#message_retention_duration PubsubTopic#message_retention_duration}

        Parameters:
        messageRetentionDuration - Indicates the minimum duration to retain a message after it is published to the topic. This parameter is required.
        Returns:
        this
      • messageStoragePolicy

        @Stability(Stable)
        public PubsubTopic.Builder messageStoragePolicy​(PubsubTopicMessageStoragePolicy messageStoragePolicy)
        message_storage_policy block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#message_storage_policy PubsubTopic#message_storage_policy}

        Parameters:
        messageStoragePolicy - message_storage_policy block. This parameter is required.
        Returns:
        this
      • project

        @Stability(Stable)
        public PubsubTopic.Builder project​(String project)
        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#project PubsubTopic#project}.

        Parameters:
        project - Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#project PubsubTopic#project}. This parameter is required.
        Returns:
        this
      • schemaSettings

        @Stability(Stable)
        public PubsubTopic.Builder schemaSettings​(PubsubTopicSchemaSettings schemaSettings)
        schema_settings block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#schema_settings PubsubTopic#schema_settings}

        Parameters:
        schemaSettings - schema_settings block. This parameter is required.
        Returns:
        this
      • timeouts

        @Stability(Stable)
        public PubsubTopic.Builder timeouts​(PubsubTopicTimeouts timeouts)
        timeouts block.

        Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/5.43.1/docs/resources/pubsub_topic#timeouts PubsubTopic#timeouts}

        Parameters:
        timeouts - timeouts block. This parameter is required.
        Returns:
        this
      • build

        @Stability(Stable)
        public PubsubTopic build()
        Specified by:
        build in interface software.amazon.jsii.Builder<PubsubTopic>
        Returns:
        a newly built instance of PubsubTopic.