Class Topic.Builder

java.lang.Object
com.google.protobuf.AbstractMessageLite.Builder<Topic,Topic.Builder>
com.google.protobuf.GeneratedMessageLite.Builder<Topic,Topic.Builder>
com.hedera.hashgraph.sdk.proto.Topic.Builder
All Implemented Interfaces:
com.google.protobuf.MessageLite.Builder, com.google.protobuf.MessageLiteOrBuilder, TopicOrBuilder, Cloneable
Enclosing class:
Topic

public static final class Topic.Builder extends com.google.protobuf.GeneratedMessageLite.Builder<Topic,Topic.Builder> implements TopicOrBuilder
 *
 Representation of an Hedera Consensus Service(HCS) topic.

 As with all network entities, a topic has a unique entity number, which is
 usually given along with the network's shard and realm in the form of a
 shard.realm.number id.<br/>
 An HCS topic is an ordered logical stream of messages united and secured by
 a running hash of those messages. The integrity of any message on a topic,
 and the topic stream as a whole, can always be ascertained from block stream
 data by recomputing the running hash across any subset of messages on the
 topic.<br/>
 The messages on a topic SHALL NOT be stored in network state, but are
 available in the network block stream, and may be queried via the
 Mirror Node system.
 
Protobuf type proto.Topic
  • Method Details

    • hasTopicId

      public boolean hasTopicId()
       *
       The topic's ID.
       <p>
       This value SHALL be unique within the network.
       
      .proto.TopicID topic_id = 1;
      Specified by:
      hasTopicId in interface TopicOrBuilder
      Returns:
      Whether the topicId field is set.
    • getTopicId

      public TopicID getTopicId()
       *
       The topic's ID.
       <p>
       This value SHALL be unique within the network.
       
      .proto.TopicID topic_id = 1;
      Specified by:
      getTopicId in interface TopicOrBuilder
      Returns:
      The topicId.
    • setTopicId

      public Topic.Builder setTopicId(TopicID value)
       *
       The topic's ID.
       <p>
       This value SHALL be unique within the network.
       
      .proto.TopicID topic_id = 1;
    • setTopicId

      public Topic.Builder setTopicId(TopicID.Builder builderForValue)
       *
       The topic's ID.
       <p>
       This value SHALL be unique within the network.
       
      .proto.TopicID topic_id = 1;
    • mergeTopicId

      public Topic.Builder mergeTopicId(TopicID value)
       *
       The topic's ID.
       <p>
       This value SHALL be unique within the network.
       
      .proto.TopicID topic_id = 1;
    • clearTopicId

      public Topic.Builder clearTopicId()
       *
       The topic's ID.
       <p>
       This value SHALL be unique within the network.
       
      .proto.TopicID topic_id = 1;
    • getSequenceNumber

      public long getSequenceNumber()
       *
       The number of messages sent to the topic.
       
      int64 sequence_number = 2;
      Specified by:
      getSequenceNumber in interface TopicOrBuilder
      Returns:
      The sequenceNumber.
    • setSequenceNumber

      public Topic.Builder setSequenceNumber(long value)
       *
       The number of messages sent to the topic.
       
      int64 sequence_number = 2;
      Parameters:
      value - The sequenceNumber to set.
      Returns:
      This builder for chaining.
    • clearSequenceNumber

      public Topic.Builder clearSequenceNumber()
       *
       The number of messages sent to the topic.
       
      int64 sequence_number = 2;
      Returns:
      This builder for chaining.
    • getExpirationSecond

      public long getExpirationSecond()
       *
       The expiration time for this topic, in seconds since the epoch.
       <p>
       For this purpose, `epoch` SHALL be the UNIX epoch with 0 at `1970-01-01T00:00:00.000Z`.
       
      int64 expiration_second = 3;
      Specified by:
      getExpirationSecond in interface TopicOrBuilder
      Returns:
      The expirationSecond.
    • setExpirationSecond

      public Topic.Builder setExpirationSecond(long value)
       *
       The expiration time for this topic, in seconds since the epoch.
       <p>
       For this purpose, `epoch` SHALL be the UNIX epoch with 0 at `1970-01-01T00:00:00.000Z`.
       
      int64 expiration_second = 3;
      Parameters:
      value - The expirationSecond to set.
      Returns:
      This builder for chaining.
    • clearExpirationSecond

      public Topic.Builder clearExpirationSecond()
       *
       The expiration time for this topic, in seconds since the epoch.
       <p>
       For this purpose, `epoch` SHALL be the UNIX epoch with 0 at `1970-01-01T00:00:00.000Z`.
       
      int64 expiration_second = 3;
      Returns:
      This builder for chaining.
    • getAutoRenewPeriod

      public long getAutoRenewPeriod()
       *
       The number of seconds for which the topic will be automatically renewed
       upon expiring (if it has a valid auto-renew account).
       
      int64 auto_renew_period = 4;
      Specified by:
      getAutoRenewPeriod in interface TopicOrBuilder
      Returns:
      The autoRenewPeriod.
    • setAutoRenewPeriod

      public Topic.Builder setAutoRenewPeriod(long value)
       *
       The number of seconds for which the topic will be automatically renewed
       upon expiring (if it has a valid auto-renew account).
       
      int64 auto_renew_period = 4;
      Parameters:
      value - The autoRenewPeriod to set.
      Returns:
      This builder for chaining.
    • clearAutoRenewPeriod

      public Topic.Builder clearAutoRenewPeriod()
       *
       The number of seconds for which the topic will be automatically renewed
       upon expiring (if it has a valid auto-renew account).
       
      int64 auto_renew_period = 4;
      Returns:
      This builder for chaining.
    • hasAutoRenewAccountId

      public boolean hasAutoRenewAccountId()
       *
       The id of the account (if any) that the network will attempt to charge
       fees to complete auto-renewal of this topic, upon expiration.
       
      .proto.AccountID auto_renew_account_id = 5;
      Specified by:
      hasAutoRenewAccountId in interface TopicOrBuilder
      Returns:
      Whether the autoRenewAccountId field is set.
    • getAutoRenewAccountId

      public AccountID getAutoRenewAccountId()
       *
       The id of the account (if any) that the network will attempt to charge
       fees to complete auto-renewal of this topic, upon expiration.
       
      .proto.AccountID auto_renew_account_id = 5;
      Specified by:
      getAutoRenewAccountId in interface TopicOrBuilder
      Returns:
      The autoRenewAccountId.
    • setAutoRenewAccountId

      public Topic.Builder setAutoRenewAccountId(AccountID value)
       *
       The id of the account (if any) that the network will attempt to charge
       fees to complete auto-renewal of this topic, upon expiration.
       
      .proto.AccountID auto_renew_account_id = 5;
    • setAutoRenewAccountId

      public Topic.Builder setAutoRenewAccountId(AccountID.Builder builderForValue)
       *
       The id of the account (if any) that the network will attempt to charge
       fees to complete auto-renewal of this topic, upon expiration.
       
      .proto.AccountID auto_renew_account_id = 5;
    • mergeAutoRenewAccountId

      public Topic.Builder mergeAutoRenewAccountId(AccountID value)
       *
       The id of the account (if any) that the network will attempt to charge
       fees to complete auto-renewal of this topic, upon expiration.
       
      .proto.AccountID auto_renew_account_id = 5;
    • clearAutoRenewAccountId

      public Topic.Builder clearAutoRenewAccountId()
       *
       The id of the account (if any) that the network will attempt to charge
       fees to complete auto-renewal of this topic, upon expiration.
       
      .proto.AccountID auto_renew_account_id = 5;
    • getDeleted

      public boolean getDeleted()
       *
       A flag indicating that this topic is deleted.
       
      bool deleted = 6;
      Specified by:
      getDeleted in interface TopicOrBuilder
      Returns:
      The deleted.
    • setDeleted

      public Topic.Builder setDeleted(boolean value)
       *
       A flag indicating that this topic is deleted.
       
      bool deleted = 6;
      Parameters:
      value - The deleted to set.
      Returns:
      This builder for chaining.
    • clearDeleted

      public Topic.Builder clearDeleted()
       *
       A flag indicating that this topic is deleted.
       
      bool deleted = 6;
      Returns:
      This builder for chaining.
    • getRunningHash

      public com.google.protobuf.ByteString getRunningHash()
       *
       The current running hash of this topic.
       <p>
       This 48-byte field is the output of a SHA-384 digest with input data
       determined by the current version of the running hash algorithm used
       by the network.<br/>
       All topics in state SHALL use running hash algorithm version `3`.<br/>
       The bytes of each uint64 or uint32 encoded for the hash input MUST be in
       Big-Endian format.
       <p>
       <hr/>
       If the algorithm version is '3', then the input data to the SHA-384
       digest are, in order:
       <ol>
       <li>The previous running hash of the topic (48 bytes)</li>
       <li>The `topicRunningHashVersion` (8 bytes)</li>
       <li>The payer account's shard (8 bytes)</li>
       <li>The payer account's realm (8 bytes)</li>
       <li>The payer account's number (8 bytes)</li>
       <li>The topic's shard (8 bytes)</li>
       <li>The topic's realm (8 bytes)</li>
       <li>The topic's number (8 bytes)</li>
       <li>The number of seconds since the epoch when the
       `ConsensusSubmitMessage` reached consensus (8 bytes)</li>
       <li>The number of nanoseconds within the second when the
       `ConsensusSubmitMessage` reached consensus (4 bytes)</li>
       <li>The `topicSequenceNumber` (8 bytes)</li>
       <li>The output of a SHA-384 digest of the message bytes from the
       `ConsensusSubmitMessage` (48 bytes)</li>
       </ol>
       <blockquote>Note that older messages on a topic, which are available in
       the block stream, MAY use older algorithm versions, and the block stream
       record incorporates a running hash version field to ensure the correct
       hash calculation for each such historical message.</blockquote>
       
      bytes running_hash = 7;
      Specified by:
      getRunningHash in interface TopicOrBuilder
      Returns:
      The runningHash.
    • setRunningHash

      public Topic.Builder setRunningHash(com.google.protobuf.ByteString value)
       *
       The current running hash of this topic.
       <p>
       This 48-byte field is the output of a SHA-384 digest with input data
       determined by the current version of the running hash algorithm used
       by the network.<br/>
       All topics in state SHALL use running hash algorithm version `3`.<br/>
       The bytes of each uint64 or uint32 encoded for the hash input MUST be in
       Big-Endian format.
       <p>
       <hr/>
       If the algorithm version is '3', then the input data to the SHA-384
       digest are, in order:
       <ol>
       <li>The previous running hash of the topic (48 bytes)</li>
       <li>The `topicRunningHashVersion` (8 bytes)</li>
       <li>The payer account's shard (8 bytes)</li>
       <li>The payer account's realm (8 bytes)</li>
       <li>The payer account's number (8 bytes)</li>
       <li>The topic's shard (8 bytes)</li>
       <li>The topic's realm (8 bytes)</li>
       <li>The topic's number (8 bytes)</li>
       <li>The number of seconds since the epoch when the
       `ConsensusSubmitMessage` reached consensus (8 bytes)</li>
       <li>The number of nanoseconds within the second when the
       `ConsensusSubmitMessage` reached consensus (4 bytes)</li>
       <li>The `topicSequenceNumber` (8 bytes)</li>
       <li>The output of a SHA-384 digest of the message bytes from the
       `ConsensusSubmitMessage` (48 bytes)</li>
       </ol>
       <blockquote>Note that older messages on a topic, which are available in
       the block stream, MAY use older algorithm versions, and the block stream
       record incorporates a running hash version field to ensure the correct
       hash calculation for each such historical message.</blockquote>
       
      bytes running_hash = 7;
      Parameters:
      value - The runningHash to set.
      Returns:
      This builder for chaining.
    • clearRunningHash

      public Topic.Builder clearRunningHash()
       *
       The current running hash of this topic.
       <p>
       This 48-byte field is the output of a SHA-384 digest with input data
       determined by the current version of the running hash algorithm used
       by the network.<br/>
       All topics in state SHALL use running hash algorithm version `3`.<br/>
       The bytes of each uint64 or uint32 encoded for the hash input MUST be in
       Big-Endian format.
       <p>
       <hr/>
       If the algorithm version is '3', then the input data to the SHA-384
       digest are, in order:
       <ol>
       <li>The previous running hash of the topic (48 bytes)</li>
       <li>The `topicRunningHashVersion` (8 bytes)</li>
       <li>The payer account's shard (8 bytes)</li>
       <li>The payer account's realm (8 bytes)</li>
       <li>The payer account's number (8 bytes)</li>
       <li>The topic's shard (8 bytes)</li>
       <li>The topic's realm (8 bytes)</li>
       <li>The topic's number (8 bytes)</li>
       <li>The number of seconds since the epoch when the
       `ConsensusSubmitMessage` reached consensus (8 bytes)</li>
       <li>The number of nanoseconds within the second when the
       `ConsensusSubmitMessage` reached consensus (4 bytes)</li>
       <li>The `topicSequenceNumber` (8 bytes)</li>
       <li>The output of a SHA-384 digest of the message bytes from the
       `ConsensusSubmitMessage` (48 bytes)</li>
       </ol>
       <blockquote>Note that older messages on a topic, which are available in
       the block stream, MAY use older algorithm versions, and the block stream
       record incorporates a running hash version field to ensure the correct
       hash calculation for each such historical message.</blockquote>
       
      bytes running_hash = 7;
      Returns:
      This builder for chaining.
    • getMemo

      public String getMemo()
       *
       A short description of this topic.
       <p>
       This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes`
       (default 100) bytes when encoded as UTF-8.
       
      string memo = 8;
      Specified by:
      getMemo in interface TopicOrBuilder
      Returns:
      The memo.
    • getMemoBytes

      public com.google.protobuf.ByteString getMemoBytes()
       *
       A short description of this topic.
       <p>
       This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes`
       (default 100) bytes when encoded as UTF-8.
       
      string memo = 8;
      Specified by:
      getMemoBytes in interface TopicOrBuilder
      Returns:
      The bytes for memo.
    • setMemo

      public Topic.Builder setMemo(String value)
       *
       A short description of this topic.
       <p>
       This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes`
       (default 100) bytes when encoded as UTF-8.
       
      string memo = 8;
      Parameters:
      value - The memo to set.
      Returns:
      This builder for chaining.
    • clearMemo

      public Topic.Builder clearMemo()
       *
       A short description of this topic.
       <p>
       This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes`
       (default 100) bytes when encoded as UTF-8.
       
      string memo = 8;
      Returns:
      This builder for chaining.
    • setMemoBytes

      public Topic.Builder setMemoBytes(com.google.protobuf.ByteString value)
       *
       A short description of this topic.
       <p>
       This value, if set, MUST NOT exceed `transaction.maxMemoUtf8Bytes`
       (default 100) bytes when encoded as UTF-8.
       
      string memo = 8;
      Parameters:
      value - The bytes for memo to set.
      Returns:
      This builder for chaining.
    • hasAdminKey

      public boolean hasAdminKey()
       *
       Access control for modification of the topic.
       <p>
       If this field is set, that key MUST sign each message to update or delete
       this topic.<br/>
       A topic without an admin key SHALL be immutable, except for expiration
       and renewal.<br/>
       If this field is not set, the `auto_renew_account_id` MUST NOT be set.
       
      .proto.Key admin_key = 9;
      Specified by:
      hasAdminKey in interface TopicOrBuilder
      Returns:
      Whether the adminKey field is set.
    • getAdminKey

      public Key getAdminKey()
       *
       Access control for modification of the topic.
       <p>
       If this field is set, that key MUST sign each message to update or delete
       this topic.<br/>
       A topic without an admin key SHALL be immutable, except for expiration
       and renewal.<br/>
       If this field is not set, the `auto_renew_account_id` MUST NOT be set.
       
      .proto.Key admin_key = 9;
      Specified by:
      getAdminKey in interface TopicOrBuilder
      Returns:
      The adminKey.
    • setAdminKey

      public Topic.Builder setAdminKey(Key value)
       *
       Access control for modification of the topic.
       <p>
       If this field is set, that key MUST sign each message to update or delete
       this topic.<br/>
       A topic without an admin key SHALL be immutable, except for expiration
       and renewal.<br/>
       If this field is not set, the `auto_renew_account_id` MUST NOT be set.
       
      .proto.Key admin_key = 9;
    • setAdminKey

      public Topic.Builder setAdminKey(Key.Builder builderForValue)
       *
       Access control for modification of the topic.
       <p>
       If this field is set, that key MUST sign each message to update or delete
       this topic.<br/>
       A topic without an admin key SHALL be immutable, except for expiration
       and renewal.<br/>
       If this field is not set, the `auto_renew_account_id` MUST NOT be set.
       
      .proto.Key admin_key = 9;
    • mergeAdminKey

      public Topic.Builder mergeAdminKey(Key value)
       *
       Access control for modification of the topic.
       <p>
       If this field is set, that key MUST sign each message to update or delete
       this topic.<br/>
       A topic without an admin key SHALL be immutable, except for expiration
       and renewal.<br/>
       If this field is not set, the `auto_renew_account_id` MUST NOT be set.
       
      .proto.Key admin_key = 9;
    • clearAdminKey

      public Topic.Builder clearAdminKey()
       *
       Access control for modification of the topic.
       <p>
       If this field is set, that key MUST sign each message to update or delete
       this topic.<br/>
       A topic without an admin key SHALL be immutable, except for expiration
       and renewal.<br/>
       If this field is not set, the `auto_renew_account_id` MUST NOT be set.
       
      .proto.Key admin_key = 9;
    • hasSubmitKey

      public boolean hasSubmitKey()
       *
       Access control for message submission to the topic.
       <p>
       If this field is set, that key MUST sign each consensus submit message
       for this topic.
       
      .proto.Key submit_key = 10;
      Specified by:
      hasSubmitKey in interface TopicOrBuilder
      Returns:
      Whether the submitKey field is set.
    • getSubmitKey

      public Key getSubmitKey()
       *
       Access control for message submission to the topic.
       <p>
       If this field is set, that key MUST sign each consensus submit message
       for this topic.
       
      .proto.Key submit_key = 10;
      Specified by:
      getSubmitKey in interface TopicOrBuilder
      Returns:
      The submitKey.
    • setSubmitKey

      public Topic.Builder setSubmitKey(Key value)
       *
       Access control for message submission to the topic.
       <p>
       If this field is set, that key MUST sign each consensus submit message
       for this topic.
       
      .proto.Key submit_key = 10;
    • setSubmitKey

      public Topic.Builder setSubmitKey(Key.Builder builderForValue)
       *
       Access control for message submission to the topic.
       <p>
       If this field is set, that key MUST sign each consensus submit message
       for this topic.
       
      .proto.Key submit_key = 10;
    • mergeSubmitKey

      public Topic.Builder mergeSubmitKey(Key value)
       *
       Access control for message submission to the topic.
       <p>
       If this field is set, that key MUST sign each consensus submit message
       for this topic.
       
      .proto.Key submit_key = 10;
    • clearSubmitKey

      public Topic.Builder clearSubmitKey()
       *
       Access control for message submission to the topic.
       <p>
       If this field is set, that key MUST sign each consensus submit message
       for this topic.
       
      .proto.Key submit_key = 10;
    • hasFeeScheduleKey

      public boolean hasFeeScheduleKey()
       *
       Access control for update/delete of custom fees.
       <p>
       If this field is unset, the current custom fees CANNOT be changed.<br/>
       If this field is set, that `Key` MUST sign any transaction to update
       the custom fee schedule for this topic.
       
      .proto.Key fee_schedule_key = 11;
      Specified by:
      hasFeeScheduleKey in interface TopicOrBuilder
      Returns:
      Whether the feeScheduleKey field is set.
    • getFeeScheduleKey

      public Key getFeeScheduleKey()
       *
       Access control for update/delete of custom fees.
       <p>
       If this field is unset, the current custom fees CANNOT be changed.<br/>
       If this field is set, that `Key` MUST sign any transaction to update
       the custom fee schedule for this topic.
       
      .proto.Key fee_schedule_key = 11;
      Specified by:
      getFeeScheduleKey in interface TopicOrBuilder
      Returns:
      The feeScheduleKey.
    • setFeeScheduleKey

      public Topic.Builder setFeeScheduleKey(Key value)
       *
       Access control for update/delete of custom fees.
       <p>
       If this field is unset, the current custom fees CANNOT be changed.<br/>
       If this field is set, that `Key` MUST sign any transaction to update
       the custom fee schedule for this topic.
       
      .proto.Key fee_schedule_key = 11;
    • setFeeScheduleKey

      public Topic.Builder setFeeScheduleKey(Key.Builder builderForValue)
       *
       Access control for update/delete of custom fees.
       <p>
       If this field is unset, the current custom fees CANNOT be changed.<br/>
       If this field is set, that `Key` MUST sign any transaction to update
       the custom fee schedule for this topic.
       
      .proto.Key fee_schedule_key = 11;
    • mergeFeeScheduleKey

      public Topic.Builder mergeFeeScheduleKey(Key value)
       *
       Access control for update/delete of custom fees.
       <p>
       If this field is unset, the current custom fees CANNOT be changed.<br/>
       If this field is set, that `Key` MUST sign any transaction to update
       the custom fee schedule for this topic.
       
      .proto.Key fee_schedule_key = 11;
    • clearFeeScheduleKey

      public Topic.Builder clearFeeScheduleKey()
       *
       Access control for update/delete of custom fees.
       <p>
       If this field is unset, the current custom fees CANNOT be changed.<br/>
       If this field is set, that `Key` MUST sign any transaction to update
       the custom fee schedule for this topic.
       
      .proto.Key fee_schedule_key = 11;
    • getFeeExemptKeyListList

      public List<Key> getFeeExemptKeyListList()
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
      Specified by:
      getFeeExemptKeyListList in interface TopicOrBuilder
    • getFeeExemptKeyListCount

      public int getFeeExemptKeyListCount()
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
      Specified by:
      getFeeExemptKeyListCount in interface TopicOrBuilder
    • getFeeExemptKeyList

      public Key getFeeExemptKeyList(int index)
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
      Specified by:
      getFeeExemptKeyList in interface TopicOrBuilder
    • setFeeExemptKeyList

      public Topic.Builder setFeeExemptKeyList(int index, Key value)
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
    • setFeeExemptKeyList

      public Topic.Builder setFeeExemptKeyList(int index, Key.Builder builderForValue)
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
    • addFeeExemptKeyList

      public Topic.Builder addFeeExemptKeyList(Key value)
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
    • addFeeExemptKeyList

      public Topic.Builder addFeeExemptKeyList(int index, Key value)
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
    • addFeeExemptKeyList

      public Topic.Builder addFeeExemptKeyList(Key.Builder builderForValue)
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
    • addFeeExemptKeyList

      public Topic.Builder addFeeExemptKeyList(int index, Key.Builder builderForValue)
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
    • addAllFeeExemptKeyList

      public Topic.Builder addAllFeeExemptKeyList(Iterable<? extends Key> values)
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
    • clearFeeExemptKeyList

      public Topic.Builder clearFeeExemptKeyList()
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
    • removeFeeExemptKeyList

      public Topic.Builder removeFeeExemptKeyList(int index)
       *
       A set of "privileged payer" keys<br/>
       Keys in this list are permitted to submit messages to this topic without
       paying custom fees associated with this topic.
       <p>
       If a submit transaction is signed by _any_ key included in this set,
       custom fees SHALL NOT be charged for that transaction.<br/>
       A `fee_exempt_key_list` MUST NOT contain more than
       `MAX_ENTRIES_FOR_FEE_EXEMPT_KEY_LIST` keys.<br/>
       A `fee_exempt_key_list` MUST NOT contain any duplicate keys.<br/>
       A `fee_exempt_key_list` MAY contain keys for accounts that are inactive,
       deleted, or non-existent.
       If not set, there SHALL NOT be any fee-exempt keys.  In particular, the
       following keys SHALL NOT be implicitly or automatically added to this
       list: `adminKey`, `submitKey`, `fee_schedule_key`.
       
      repeated .proto.Key fee_exempt_key_list = 12;
    • getCustomFeesList

      public List<FixedCustomFee> getCustomFeesList()
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;
      Specified by:
      getCustomFeesList in interface TopicOrBuilder
    • getCustomFeesCount

      public int getCustomFeesCount()
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;
      Specified by:
      getCustomFeesCount in interface TopicOrBuilder
    • getCustomFees

      public FixedCustomFee getCustomFees(int index)
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;
      Specified by:
      getCustomFees in interface TopicOrBuilder
    • setCustomFees

      public Topic.Builder setCustomFees(int index, FixedCustomFee value)
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;
    • setCustomFees

      public Topic.Builder setCustomFees(int index, FixedCustomFee.Builder builderForValue)
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;
    • addCustomFees

      public Topic.Builder addCustomFees(FixedCustomFee value)
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;
    • addCustomFees

      public Topic.Builder addCustomFees(int index, FixedCustomFee value)
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;
    • addCustomFees

      public Topic.Builder addCustomFees(FixedCustomFee.Builder builderForValue)
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;
    • addCustomFees

      public Topic.Builder addCustomFees(int index, FixedCustomFee.Builder builderForValue)
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;
    • addAllCustomFees

      public Topic.Builder addAllCustomFees(Iterable<? extends FixedCustomFee> values)
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;
    • clearCustomFees

      public Topic.Builder clearCustomFees()
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;
    • removeCustomFees

      public Topic.Builder removeCustomFees(int index)
       *
       A set of custom fee definitions.<br/>
       These are fees to be assessed for each submit to this topic.
       <p>
       If this list is empty, the only fees charged for a submit to this
       topic SHALL be the network and node fees.<br/>
       If this list is not empty, each fee defined in this set SHALL
       be evaluated for each message submitted to this topic, and the
       resultant total assessed fees SHALL be charged.<br/>
       If this list is not empty, custom fees defined here SHALL be
       charged _in addition to_ the base network and node fees.
       
      repeated .proto.FixedCustomFee custom_fees = 13;