#[non_exhaustive]pub struct Topic {
pub name: String,
pub labels: HashMap<String, String>,
pub message_storage_policy: Option<MessageStoragePolicy>,
pub kms_key_name: String,
pub schema_settings: Option<SchemaSettings>,
pub satisfies_pzs: bool,
pub message_retention_duration: Option<Duration>,
pub state: State,
pub ingestion_data_source_settings: Option<IngestionDataSourceSettings>,
pub message_transforms: Vec<MessageTransform>,
pub tags: HashMap<String, String>,
/* private fields */
}Expand description
A topic resource.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.name: StringRequired. Identifier. The name of the topic. It must have the format
"projects/{project}/topics/{topic}". {topic} must start with a letter,
and contain only letters ([A-Za-z]), numbers ([0-9]), dashes (-),
underscores (_), periods (.), tildes (~), plus (+) or percent
signs (%). It must be between 3 and 255 characters in length, and it
must not start with "goog".
labels: HashMap<String, String>Optional. See [Creating and managing labels] (https://cloud.google.com/pubsub/docs/labels).
message_storage_policy: Option<MessageStoragePolicy>Optional. Policy constraining the set of Google Cloud Platform regions where messages published to the topic may be stored. If not present, then no constraints are in effect.
kms_key_name: StringOptional. The resource name of the Cloud KMS CryptoKey to be used to protect access to messages published on this topic.
The expected format is projects/*/locations/*/keyRings/*/cryptoKeys/*.
schema_settings: Option<SchemaSettings>Optional. Settings for validating messages published against a schema.
satisfies_pzs: boolOptional. Reserved for future use. This field is set only in responses from the server; it is ignored if it is set in any requests.
message_retention_duration: Option<Duration>Optional. 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 message_retention_duration are always available to
subscribers. For instance, it allows any attached subscription to seek to
a
timestamp
that is up to message_retention_duration in the past. If this field is
not set, message retention is controlled by settings on individual
subscriptions. Cannot be more than 31 days or less than 10 minutes.
state: StateOutput only. An output-only field indicating the state of the topic.
ingestion_data_source_settings: Option<IngestionDataSourceSettings>Optional. Settings for ingestion from a data source into this topic.
message_transforms: Vec<MessageTransform>Optional. Transforms to be applied to messages published to the topic. Transforms are applied in the order specified.
Optional. Input only. Immutable. Tag keys/values directly bound to this resource. For example: “123/environment”: “production”, “123/costCenter”: “marketing” See https://docs.cloud.google.com/pubsub/docs/tags for more information on using tags with Pub/Sub resources.
Implementations§
Source§impl Topic
impl Topic
pub fn new() -> Self
Sourcepub fn set_labels<T, K, V>(self, v: T) -> Self
pub fn set_labels<T, K, V>(self, v: T) -> Self
Sourcepub fn set_message_storage_policy<T>(self, v: T) -> Selfwhere
T: Into<MessageStoragePolicy>,
pub fn set_message_storage_policy<T>(self, v: T) -> Selfwhere
T: Into<MessageStoragePolicy>,
Sets the value of message_storage_policy.
§Example
use google_cloud_pubsub::model::MessageStoragePolicy;
let x = Topic::new().set_message_storage_policy(MessageStoragePolicy::default()/* use setters */);Sourcepub fn set_or_clear_message_storage_policy<T>(self, v: Option<T>) -> Selfwhere
T: Into<MessageStoragePolicy>,
pub fn set_or_clear_message_storage_policy<T>(self, v: Option<T>) -> Selfwhere
T: Into<MessageStoragePolicy>,
Sets or clears the value of message_storage_policy.
§Example
use google_cloud_pubsub::model::MessageStoragePolicy;
let x = Topic::new().set_or_clear_message_storage_policy(Some(MessageStoragePolicy::default()/* use setters */));
let x = Topic::new().set_or_clear_message_storage_policy(None::<MessageStoragePolicy>);Sourcepub fn set_kms_key_name<T: Into<String>>(self, v: T) -> Self
pub fn set_kms_key_name<T: Into<String>>(self, v: T) -> Self
Sourcepub fn set_schema_settings<T>(self, v: T) -> Selfwhere
T: Into<SchemaSettings>,
pub fn set_schema_settings<T>(self, v: T) -> Selfwhere
T: Into<SchemaSettings>,
Sets the value of schema_settings.
§Example
use google_cloud_pubsub::model::SchemaSettings;
let x = Topic::new().set_schema_settings(SchemaSettings::default()/* use setters */);Sourcepub fn set_or_clear_schema_settings<T>(self, v: Option<T>) -> Selfwhere
T: Into<SchemaSettings>,
pub fn set_or_clear_schema_settings<T>(self, v: Option<T>) -> Selfwhere
T: Into<SchemaSettings>,
Sets or clears the value of schema_settings.
§Example
use google_cloud_pubsub::model::SchemaSettings;
let x = Topic::new().set_or_clear_schema_settings(Some(SchemaSettings::default()/* use setters */));
let x = Topic::new().set_or_clear_schema_settings(None::<SchemaSettings>);Sourcepub fn set_satisfies_pzs<T: Into<bool>>(self, v: T) -> Self
pub fn set_satisfies_pzs<T: Into<bool>>(self, v: T) -> Self
Sourcepub fn set_message_retention_duration<T>(self, v: T) -> Self
pub fn set_message_retention_duration<T>(self, v: T) -> Self
Sets the value of message_retention_duration.
§Example
use wkt::Duration;
let x = Topic::new().set_message_retention_duration(Duration::default()/* use setters */);Sourcepub fn set_or_clear_message_retention_duration<T>(self, v: Option<T>) -> Self
pub fn set_or_clear_message_retention_duration<T>(self, v: Option<T>) -> Self
Sets or clears the value of message_retention_duration.
§Example
use wkt::Duration;
let x = Topic::new().set_or_clear_message_retention_duration(Some(Duration::default()/* use setters */));
let x = Topic::new().set_or_clear_message_retention_duration(None::<Duration>);Sourcepub fn set_ingestion_data_source_settings<T>(self, v: T) -> Selfwhere
T: Into<IngestionDataSourceSettings>,
pub fn set_ingestion_data_source_settings<T>(self, v: T) -> Selfwhere
T: Into<IngestionDataSourceSettings>,
Sets the value of ingestion_data_source_settings.
§Example
use google_cloud_pubsub::model::IngestionDataSourceSettings;
let x = Topic::new().set_ingestion_data_source_settings(IngestionDataSourceSettings::default()/* use setters */);Sourcepub fn set_or_clear_ingestion_data_source_settings<T>(
self,
v: Option<T>,
) -> Selfwhere
T: Into<IngestionDataSourceSettings>,
pub fn set_or_clear_ingestion_data_source_settings<T>(
self,
v: Option<T>,
) -> Selfwhere
T: Into<IngestionDataSourceSettings>,
Sets or clears the value of ingestion_data_source_settings.
§Example
use google_cloud_pubsub::model::IngestionDataSourceSettings;
let x = Topic::new().set_or_clear_ingestion_data_source_settings(Some(IngestionDataSourceSettings::default()/* use setters */));
let x = Topic::new().set_or_clear_ingestion_data_source_settings(None::<IngestionDataSourceSettings>);Sourcepub fn set_message_transforms<T, V>(self, v: T) -> Self
pub fn set_message_transforms<T, V>(self, v: T) -> Self
Sets the value of message_transforms.
§Example
use google_cloud_pubsub::model::MessageTransform;
let x = Topic::new()
.set_message_transforms([
MessageTransform::default()/* use setters */,
MessageTransform::default()/* use (different) setters */,
]);Trait Implementations§
impl StructuralPartialEq for Topic
Auto Trait Implementations§
impl Freeze for Topic
impl RefUnwindSafe for Topic
impl Send for Topic
impl Sync for Topic
impl Unpin for Topic
impl UnwindSafe for Topic
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request