#
google_cloud_pubsub/generated/protos/pubsub/
google.pubsub.v1.rs

    1// This file is @generated by prost-build.
    2#[derive(Clone, PartialEq, ::prost::Message)]
    3pub struct Schema {
    4    #[prost(string, tag = "1")]
    5    pub name: ::prost::alloc::string::String,
    6    #[prost(enumeration = "schema::Type", tag = "2")]
    7    pub r#type: i32,
    8    #[prost(string, tag = "3")]
    9    pub definition: ::prost::alloc::string::String,
    10    #[prost(string, tag = "4")]
    11    pub revision_id: ::prost::alloc::string::String,
    12    #[prost(message, optional, tag = "6")]
    13    pub revision_create_time: ::core::option::Option<::prost_types::Timestamp>,
    14}
    15/// Nested message and enum types in `Schema`.
    16pub mod schema {
    17    #[derive(
    18        Clone,
    19        Copy,
    20        Debug,
    21        PartialEq,
    22        Eq,
    23        Hash,
    24        PartialOrd,
    25        Ord,
    26        ::prost::Enumeration
    27    )]
    28    #[repr(i32)]
    29    pub enum Type {
    30        Unspecified = 0,
    31        ProtocolBuffer = 1,
    32        Avro = 2,
    33    }
    34    impl Type {
    35        /// String value of the enum field names used in the ProtoBuf definition.
    36        ///
    37        /// The values are not transformed in any way and thus are considered stable
    38        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    39        pub fn as_str_name(&self) -> &'static str {
    40            match self {
    41                Self::Unspecified => "TYPE_UNSPECIFIED",
    42                Self::ProtocolBuffer => "PROTOCOL_BUFFER",
    43                Self::Avro => "AVRO",
    44            }
    45        }
    46        /// Creates an enum from field names used in the ProtoBuf definition.
    47        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    48            match value {
    49                "TYPE_UNSPECIFIED" => Some(Self::Unspecified),
    50                "PROTOCOL_BUFFER" => Some(Self::ProtocolBuffer),
    51                "AVRO" => Some(Self::Avro),
    52                _ => None,
    53            }
    54        }
    55    }
    56}
    57impl ::prost::Name for Schema {
    58    const NAME: &'static str = "Schema";
    59    const PACKAGE: &'static str = "google.pubsub.v1";
    60    fn full_name() -> ::prost::alloc::string::String {
    61        "google.pubsub.v1.Schema".into()
    62    }
    63    fn type_url() -> ::prost::alloc::string::String {
    64        "type.googleapis.com/google.pubsub.v1.Schema".into()
    65    }
    66}
    67#[derive(Clone, PartialEq, ::prost::Message)]
    68pub struct CreateSchemaRequest {
    69    #[prost(string, tag = "1")]
    70    pub parent: ::prost::alloc::string::String,
    71    #[prost(message, optional, tag = "2")]
    72    pub schema: ::core::option::Option<Schema>,
    73    #[prost(string, tag = "3")]
    74    pub schema_id: ::prost::alloc::string::String,
    75}
    76impl ::prost::Name for CreateSchemaRequest {
    77    const NAME: &'static str = "CreateSchemaRequest";
    78    const PACKAGE: &'static str = "google.pubsub.v1";
    79    fn full_name() -> ::prost::alloc::string::String {
    80        "google.pubsub.v1.CreateSchemaRequest".into()
    81    }
    82    fn type_url() -> ::prost::alloc::string::String {
    83        "type.googleapis.com/google.pubsub.v1.CreateSchemaRequest".into()
    84    }
    85}
    86#[derive(Clone, PartialEq, ::prost::Message)]
    87pub struct GetSchemaRequest {
    88    #[prost(string, tag = "1")]
    89    pub name: ::prost::alloc::string::String,
    90    #[prost(enumeration = "SchemaView", tag = "2")]
    91    pub view: i32,
    92}
    93impl ::prost::Name for GetSchemaRequest {
    94    const NAME: &'static str = "GetSchemaRequest";
    95    const PACKAGE: &'static str = "google.pubsub.v1";
    96    fn full_name() -> ::prost::alloc::string::String {
    97        "google.pubsub.v1.GetSchemaRequest".into()
    98    }
    99    fn type_url() -> ::prost::alloc::string::String {
    100        "type.googleapis.com/google.pubsub.v1.GetSchemaRequest".into()
    101    }
    102}
    103#[derive(Clone, PartialEq, ::prost::Message)]
    104pub struct ListSchemasRequest {
    105    #[prost(string, tag = "1")]
    106    pub parent: ::prost::alloc::string::String,
    107    #[prost(enumeration = "SchemaView", tag = "2")]
    108    pub view: i32,
    109    #[prost(int32, tag = "3")]
    110    pub page_size: i32,
    111    #[prost(string, tag = "4")]
    112    pub page_token: ::prost::alloc::string::String,
    113}
    114impl ::prost::Name for ListSchemasRequest {
    115    const NAME: &'static str = "ListSchemasRequest";
    116    const PACKAGE: &'static str = "google.pubsub.v1";
    117    fn full_name() -> ::prost::alloc::string::String {
    118        "google.pubsub.v1.ListSchemasRequest".into()
    119    }
    120    fn type_url() -> ::prost::alloc::string::String {
    121        "type.googleapis.com/google.pubsub.v1.ListSchemasRequest".into()
    122    }
    123}
    124#[derive(Clone, PartialEq, ::prost::Message)]
    125pub struct ListSchemasResponse {
    126    #[prost(message, repeated, tag = "1")]
    127    pub schemas: ::prost::alloc::vec::Vec<Schema>,
    128    #[prost(string, tag = "2")]
    129    pub next_page_token: ::prost::alloc::string::String,
    130}
    131impl ::prost::Name for ListSchemasResponse {
    132    const NAME: &'static str = "ListSchemasResponse";
    133    const PACKAGE: &'static str = "google.pubsub.v1";
    134    fn full_name() -> ::prost::alloc::string::String {
    135        "google.pubsub.v1.ListSchemasResponse".into()
    136    }
    137    fn type_url() -> ::prost::alloc::string::String {
    138        "type.googleapis.com/google.pubsub.v1.ListSchemasResponse".into()
    139    }
    140}
    141#[derive(Clone, PartialEq, ::prost::Message)]
    142pub struct ListSchemaRevisionsRequest {
    143    #[prost(string, tag = "1")]
    144    pub name: ::prost::alloc::string::String,
    145    #[prost(enumeration = "SchemaView", tag = "2")]
    146    pub view: i32,
    147    #[prost(int32, tag = "3")]
    148    pub page_size: i32,
    149    #[prost(string, tag = "4")]
    150    pub page_token: ::prost::alloc::string::String,
    151}
    152impl ::prost::Name for ListSchemaRevisionsRequest {
    153    const NAME: &'static str = "ListSchemaRevisionsRequest";
    154    const PACKAGE: &'static str = "google.pubsub.v1";
    155    fn full_name() -> ::prost::alloc::string::String {
    156        "google.pubsub.v1.ListSchemaRevisionsRequest".into()
    157    }
    158    fn type_url() -> ::prost::alloc::string::String {
    159        "type.googleapis.com/google.pubsub.v1.ListSchemaRevisionsRequest".into()
    160    }
    161}
    162#[derive(Clone, PartialEq, ::prost::Message)]
    163pub struct ListSchemaRevisionsResponse {
    164    #[prost(message, repeated, tag = "1")]
    165    pub schemas: ::prost::alloc::vec::Vec<Schema>,
    166    #[prost(string, tag = "2")]
    167    pub next_page_token: ::prost::alloc::string::String,
    168}
    169impl ::prost::Name for ListSchemaRevisionsResponse {
    170    const NAME: &'static str = "ListSchemaRevisionsResponse";
    171    const PACKAGE: &'static str = "google.pubsub.v1";
    172    fn full_name() -> ::prost::alloc::string::String {
    173        "google.pubsub.v1.ListSchemaRevisionsResponse".into()
    174    }
    175    fn type_url() -> ::prost::alloc::string::String {
    176        "type.googleapis.com/google.pubsub.v1.ListSchemaRevisionsResponse".into()
    177    }
    178}
    179#[derive(Clone, PartialEq, ::prost::Message)]
    180pub struct CommitSchemaRequest {
    181    #[prost(string, tag = "1")]
    182    pub name: ::prost::alloc::string::String,
    183    #[prost(message, optional, tag = "2")]
    184    pub schema: ::core::option::Option<Schema>,
    185}
    186impl ::prost::Name for CommitSchemaRequest {
    187    const NAME: &'static str = "CommitSchemaRequest";
    188    const PACKAGE: &'static str = "google.pubsub.v1";
    189    fn full_name() -> ::prost::alloc::string::String {
    190        "google.pubsub.v1.CommitSchemaRequest".into()
    191    }
    192    fn type_url() -> ::prost::alloc::string::String {
    193        "type.googleapis.com/google.pubsub.v1.CommitSchemaRequest".into()
    194    }
    195}
    196#[derive(Clone, PartialEq, ::prost::Message)]
    197pub struct RollbackSchemaRequest {
    198    #[prost(string, tag = "1")]
    199    pub name: ::prost::alloc::string::String,
    200    #[prost(string, tag = "2")]
    201    pub revision_id: ::prost::alloc::string::String,
    202}
    203impl ::prost::Name for RollbackSchemaRequest {
    204    const NAME: &'static str = "RollbackSchemaRequest";
    205    const PACKAGE: &'static str = "google.pubsub.v1";
    206    fn full_name() -> ::prost::alloc::string::String {
    207        "google.pubsub.v1.RollbackSchemaRequest".into()
    208    }
    209    fn type_url() -> ::prost::alloc::string::String {
    210        "type.googleapis.com/google.pubsub.v1.RollbackSchemaRequest".into()
    211    }
    212}
    213#[derive(Clone, PartialEq, ::prost::Message)]
    214pub struct DeleteSchemaRevisionRequest {
    215    #[prost(string, tag = "1")]
    216    pub name: ::prost::alloc::string::String,
    217    #[deprecated]
    218    #[prost(string, tag = "2")]
    219    pub revision_id: ::prost::alloc::string::String,
    220}
    221impl ::prost::Name for DeleteSchemaRevisionRequest {
    222    const NAME: &'static str = "DeleteSchemaRevisionRequest";
    223    const PACKAGE: &'static str = "google.pubsub.v1";
    224    fn full_name() -> ::prost::alloc::string::String {
    225        "google.pubsub.v1.DeleteSchemaRevisionRequest".into()
    226    }
    227    fn type_url() -> ::prost::alloc::string::String {
    228        "type.googleapis.com/google.pubsub.v1.DeleteSchemaRevisionRequest".into()
    229    }
    230}
    231#[derive(Clone, PartialEq, ::prost::Message)]
    232pub struct DeleteSchemaRequest {
    233    #[prost(string, tag = "1")]
    234    pub name: ::prost::alloc::string::String,
    235}
    236impl ::prost::Name for DeleteSchemaRequest {
    237    const NAME: &'static str = "DeleteSchemaRequest";
    238    const PACKAGE: &'static str = "google.pubsub.v1";
    239    fn full_name() -> ::prost::alloc::string::String {
    240        "google.pubsub.v1.DeleteSchemaRequest".into()
    241    }
    242    fn type_url() -> ::prost::alloc::string::String {
    243        "type.googleapis.com/google.pubsub.v1.DeleteSchemaRequest".into()
    244    }
    245}
    246#[derive(Clone, PartialEq, ::prost::Message)]
    247pub struct ValidateSchemaRequest {
    248    #[prost(string, tag = "1")]
    249    pub parent: ::prost::alloc::string::String,
    250    #[prost(message, optional, tag = "2")]
    251    pub schema: ::core::option::Option<Schema>,
    252}
    253impl ::prost::Name for ValidateSchemaRequest {
    254    const NAME: &'static str = "ValidateSchemaRequest";
    255    const PACKAGE: &'static str = "google.pubsub.v1";
    256    fn full_name() -> ::prost::alloc::string::String {
    257        "google.pubsub.v1.ValidateSchemaRequest".into()
    258    }
    259    fn type_url() -> ::prost::alloc::string::String {
    260        "type.googleapis.com/google.pubsub.v1.ValidateSchemaRequest".into()
    261    }
    262}
    263#[derive(Clone, Copy, PartialEq, ::prost::Message)]
    264pub struct ValidateSchemaResponse {}
    265impl ::prost::Name for ValidateSchemaResponse {
    266    const NAME: &'static str = "ValidateSchemaResponse";
    267    const PACKAGE: &'static str = "google.pubsub.v1";
    268    fn full_name() -> ::prost::alloc::string::String {
    269        "google.pubsub.v1.ValidateSchemaResponse".into()
    270    }
    271    fn type_url() -> ::prost::alloc::string::String {
    272        "type.googleapis.com/google.pubsub.v1.ValidateSchemaResponse".into()
    273    }
    274}
    275#[derive(Clone, PartialEq, ::prost::Message)]
    276pub struct ValidateMessageRequest {
    277    #[prost(string, tag = "1")]
    278    pub parent: ::prost::alloc::string::String,
    279    #[prost(bytes = "bytes", tag = "4")]
    280    pub message: ::prost::bytes::Bytes,
    281    #[prost(enumeration = "Encoding", tag = "5")]
    282    pub encoding: i32,
    283    #[prost(oneof = "validate_message_request::SchemaSpec", tags = "2, 3")]
    284    pub schema_spec: ::core::option::Option<validate_message_request::SchemaSpec>,
    285}
    286/// Nested message and enum types in `ValidateMessageRequest`.
    287pub mod validate_message_request {
    288    #[derive(Clone, PartialEq, ::prost::Oneof)]
    289    pub enum SchemaSpec {
    290        #[prost(string, tag = "2")]
    291        Name(::prost::alloc::string::String),
    292        #[prost(message, tag = "3")]
    293        Schema(super::Schema),
    294    }
    295}
    296impl ::prost::Name for ValidateMessageRequest {
    297    const NAME: &'static str = "ValidateMessageRequest";
    298    const PACKAGE: &'static str = "google.pubsub.v1";
    299    fn full_name() -> ::prost::alloc::string::String {
    300        "google.pubsub.v1.ValidateMessageRequest".into()
    301    }
    302    fn type_url() -> ::prost::alloc::string::String {
    303        "type.googleapis.com/google.pubsub.v1.ValidateMessageRequest".into()
    304    }
    305}
    306#[derive(Clone, Copy, PartialEq, ::prost::Message)]
    307pub struct ValidateMessageResponse {}
    308impl ::prost::Name for ValidateMessageResponse {
    309    const NAME: &'static str = "ValidateMessageResponse";
    310    const PACKAGE: &'static str = "google.pubsub.v1";
    311    fn full_name() -> ::prost::alloc::string::String {
    312        "google.pubsub.v1.ValidateMessageResponse".into()
    313    }
    314    fn type_url() -> ::prost::alloc::string::String {
    315        "type.googleapis.com/google.pubsub.v1.ValidateMessageResponse".into()
    316    }
    317}
    318#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
    319#[repr(i32)]
    320pub enum SchemaView {
    321    Unspecified = 0,
    322    Basic = 1,
    323    Full = 2,
    324}
    325impl SchemaView {
    326    /// String value of the enum field names used in the ProtoBuf definition.
    327    ///
    328    /// The values are not transformed in any way and thus are considered stable
    329    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    330    pub fn as_str_name(&self) -> &'static str {
    331        match self {
    332            Self::Unspecified => "SCHEMA_VIEW_UNSPECIFIED",
    333            Self::Basic => "BASIC",
    334            Self::Full => "FULL",
    335        }
    336    }
    337    /// Creates an enum from field names used in the ProtoBuf definition.
    338    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    339        match value {
    340            "SCHEMA_VIEW_UNSPECIFIED" => Some(Self::Unspecified),
    341            "BASIC" => Some(Self::Basic),
    342            "FULL" => Some(Self::Full),
    343            _ => None,
    344        }
    345    }
    346}
    347#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
    348#[repr(i32)]
    349pub enum Encoding {
    350    Unspecified = 0,
    351    Json = 1,
    352    Binary = 2,
    353}
    354impl Encoding {
    355    /// String value of the enum field names used in the ProtoBuf definition.
    356    ///
    357    /// The values are not transformed in any way and thus are considered stable
    358    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    359    pub fn as_str_name(&self) -> &'static str {
    360        match self {
    361            Self::Unspecified => "ENCODING_UNSPECIFIED",
    362            Self::Json => "JSON",
    363            Self::Binary => "BINARY",
    364        }
    365    }
    366    /// Creates an enum from field names used in the ProtoBuf definition.
    367    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    368        match value {
    369            "ENCODING_UNSPECIFIED" => Some(Self::Unspecified),
    370            "JSON" => Some(Self::Json),
    371            "BINARY" => Some(Self::Binary),
    372            _ => None,
    373        }
    374    }
    375}
    376#[derive(Clone, PartialEq, ::prost::Message)]
    377pub struct MessageStoragePolicy {
    378    #[prost(string, repeated, tag = "1")]
    379    pub allowed_persistence_regions: ::prost::alloc::vec::Vec<
    380        ::prost::alloc::string::String,
    381    >,
    382    #[prost(bool, tag = "2")]
    383    pub enforce_in_transit: bool,
    384}
    385impl ::prost::Name for MessageStoragePolicy {
    386    const NAME: &'static str = "MessageStoragePolicy";
    387    const PACKAGE: &'static str = "google.pubsub.v1";
    388    fn full_name() -> ::prost::alloc::string::String {
    389        "google.pubsub.v1.MessageStoragePolicy".into()
    390    }
    391    fn type_url() -> ::prost::alloc::string::String {
    392        "type.googleapis.com/google.pubsub.v1.MessageStoragePolicy".into()
    393    }
    394}
    395#[derive(Clone, PartialEq, ::prost::Message)]
    396pub struct SchemaSettings {
    397    #[prost(string, tag = "1")]
    398    pub schema: ::prost::alloc::string::String,
    399    #[prost(enumeration = "Encoding", tag = "2")]
    400    pub encoding: i32,
    401    #[prost(string, tag = "3")]
    402    pub first_revision_id: ::prost::alloc::string::String,
    403    #[prost(string, tag = "4")]
    404    pub last_revision_id: ::prost::alloc::string::String,
    405}
    406impl ::prost::Name for SchemaSettings {
    407    const NAME: &'static str = "SchemaSettings";
    408    const PACKAGE: &'static str = "google.pubsub.v1";
    409    fn full_name() -> ::prost::alloc::string::String {
    410        "google.pubsub.v1.SchemaSettings".into()
    411    }
    412    fn type_url() -> ::prost::alloc::string::String {
    413        "type.googleapis.com/google.pubsub.v1.SchemaSettings".into()
    414    }
    415}
    416#[derive(Clone, PartialEq, ::prost::Message)]
    417pub struct IngestionDataSourceSettings {
    418    #[prost(message, optional, tag = "4")]
    419    pub platform_logs_settings: ::core::option::Option<PlatformLogsSettings>,
    420    #[prost(oneof = "ingestion_data_source_settings::Source", tags = "1, 2, 3, 5, 6")]
    421    pub source: ::core::option::Option<ingestion_data_source_settings::Source>,
    422}
    423/// Nested message and enum types in `IngestionDataSourceSettings`.
    424pub mod ingestion_data_source_settings {
    425    #[derive(Clone, PartialEq, ::prost::Message)]
    426    pub struct AwsKinesis {
    427        #[prost(enumeration = "aws_kinesis::State", tag = "1")]
    428        pub state: i32,
    429        #[prost(string, tag = "2")]
    430        pub stream_arn: ::prost::alloc::string::String,
    431        #[prost(string, tag = "3")]
    432        pub consumer_arn: ::prost::alloc::string::String,
    433        #[prost(string, tag = "4")]
    434        pub aws_role_arn: ::prost::alloc::string::String,
    435        #[prost(string, tag = "5")]
    436        pub gcp_service_account: ::prost::alloc::string::String,
    437    }
    438    /// Nested message and enum types in `AwsKinesis`.
    439    pub mod aws_kinesis {
    440        #[derive(
    441            Clone,
    442            Copy,
    443            Debug,
    444            PartialEq,
    445            Eq,
    446            Hash,
    447            PartialOrd,
    448            Ord,
    449            ::prost::Enumeration
    450        )]
    451        #[repr(i32)]
    452        pub enum State {
    453            Unspecified = 0,
    454            Active = 1,
    455            KinesisPermissionDenied = 2,
    456            PublishPermissionDenied = 3,
    457            StreamNotFound = 4,
    458            ConsumerNotFound = 5,
    459        }
    460        impl State {
    461            /// String value of the enum field names used in the ProtoBuf definition.
    462            ///
    463            /// The values are not transformed in any way and thus are considered stable
    464            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    465            pub fn as_str_name(&self) -> &'static str {
    466                match self {
    467                    Self::Unspecified => "STATE_UNSPECIFIED",
    468                    Self::Active => "ACTIVE",
    469                    Self::KinesisPermissionDenied => "KINESIS_PERMISSION_DENIED",
    470                    Self::PublishPermissionDenied => "PUBLISH_PERMISSION_DENIED",
    471                    Self::StreamNotFound => "STREAM_NOT_FOUND",
    472                    Self::ConsumerNotFound => "CONSUMER_NOT_FOUND",
    473                }
    474            }
    475            /// Creates an enum from field names used in the ProtoBuf definition.
    476            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    477                match value {
    478                    "STATE_UNSPECIFIED" => Some(Self::Unspecified),
    479                    "ACTIVE" => Some(Self::Active),
    480                    "KINESIS_PERMISSION_DENIED" => Some(Self::KinesisPermissionDenied),
    481                    "PUBLISH_PERMISSION_DENIED" => Some(Self::PublishPermissionDenied),
    482                    "STREAM_NOT_FOUND" => Some(Self::StreamNotFound),
    483                    "CONSUMER_NOT_FOUND" => Some(Self::ConsumerNotFound),
    484                    _ => None,
    485                }
    486            }
    487        }
    488    }
    489    impl ::prost::Name for AwsKinesis {
    490        const NAME: &'static str = "AwsKinesis";
    491        const PACKAGE: &'static str = "google.pubsub.v1";
    492        fn full_name() -> ::prost::alloc::string::String {
    493            "google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis".into()
    494        }
    495        fn type_url() -> ::prost::alloc::string::String {
    496            "type.googleapis.com/google.pubsub.v1.IngestionDataSourceSettings.AwsKinesis"
    497                .into()
    498        }
    499    }
    500    #[derive(Clone, PartialEq, ::prost::Message)]
    501    pub struct CloudStorage {
    502        #[prost(enumeration = "cloud_storage::State", tag = "1")]
    503        pub state: i32,
    504        #[prost(string, tag = "2")]
    505        pub bucket: ::prost::alloc::string::String,
    506        #[prost(message, optional, tag = "6")]
    507        pub minimum_object_create_time: ::core::option::Option<::prost_types::Timestamp>,
    508        #[prost(string, tag = "9")]
    509        pub match_glob: ::prost::alloc::string::String,
    510        #[prost(oneof = "cloud_storage::InputFormat", tags = "3, 4, 5")]
    511        pub input_format: ::core::option::Option<cloud_storage::InputFormat>,
    512    }
    513    /// Nested message and enum types in `CloudStorage`.
    514    pub mod cloud_storage {
    515        #[derive(Clone, PartialEq, ::prost::Message)]
    516        pub struct TextFormat {
    517            #[prost(string, optional, tag = "1")]
    518            pub delimiter: ::core::option::Option<::prost::alloc::string::String>,
    519        }
    520        impl ::prost::Name for TextFormat {
    521            const NAME: &'static str = "TextFormat";
    522            const PACKAGE: &'static str = "google.pubsub.v1";
    523            fn full_name() -> ::prost::alloc::string::String {
    524                "google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat"
    525                    .into()
    526            }
    527            fn type_url() -> ::prost::alloc::string::String {
    528                "type.googleapis.com/google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.TextFormat"
    529                    .into()
    530            }
    531        }
    532        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    533        pub struct AvroFormat {}
    534        impl ::prost::Name for AvroFormat {
    535            const NAME: &'static str = "AvroFormat";
    536            const PACKAGE: &'static str = "google.pubsub.v1";
    537            fn full_name() -> ::prost::alloc::string::String {
    538                "google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat"
    539                    .into()
    540            }
    541            fn type_url() -> ::prost::alloc::string::String {
    542                "type.googleapis.com/google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.AvroFormat"
    543                    .into()
    544            }
    545        }
    546        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    547        pub struct PubSubAvroFormat {}
    548        impl ::prost::Name for PubSubAvroFormat {
    549            const NAME: &'static str = "PubSubAvroFormat";
    550            const PACKAGE: &'static str = "google.pubsub.v1";
    551            fn full_name() -> ::prost::alloc::string::String {
    552                "google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat"
    553                    .into()
    554            }
    555            fn type_url() -> ::prost::alloc::string::String {
    556                "type.googleapis.com/google.pubsub.v1.IngestionDataSourceSettings.CloudStorage.PubSubAvroFormat"
    557                    .into()
    558            }
    559        }
    560        #[derive(
    561            Clone,
    562            Copy,
    563            Debug,
    564            PartialEq,
    565            Eq,
    566            Hash,
    567            PartialOrd,
    568            Ord,
    569            ::prost::Enumeration
    570        )]
    571        #[repr(i32)]
    572        pub enum State {
    573            Unspecified = 0,
    574            Active = 1,
    575            CloudStoragePermissionDenied = 2,
    576            PublishPermissionDenied = 3,
    577            BucketNotFound = 4,
    578            TooManyObjects = 5,
    579        }
    580        impl State {
    581            /// String value of the enum field names used in the ProtoBuf definition.
    582            ///
    583            /// The values are not transformed in any way and thus are considered stable
    584            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    585            pub fn as_str_name(&self) -> &'static str {
    586                match self {
    587                    Self::Unspecified => "STATE_UNSPECIFIED",
    588                    Self::Active => "ACTIVE",
    589                    Self::CloudStoragePermissionDenied => {
    590                        "CLOUD_STORAGE_PERMISSION_DENIED"
    591                    }
    592                    Self::PublishPermissionDenied => "PUBLISH_PERMISSION_DENIED",
    593                    Self::BucketNotFound => "BUCKET_NOT_FOUND",
    594                    Self::TooManyObjects => "TOO_MANY_OBJECTS",
    595                }
    596            }
    597            /// Creates an enum from field names used in the ProtoBuf definition.
    598            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    599                match value {
    600                    "STATE_UNSPECIFIED" => Some(Self::Unspecified),
    601                    "ACTIVE" => Some(Self::Active),
    602                    "CLOUD_STORAGE_PERMISSION_DENIED" => {
    603                        Some(Self::CloudStoragePermissionDenied)
    604                    }
    605                    "PUBLISH_PERMISSION_DENIED" => Some(Self::PublishPermissionDenied),
    606                    "BUCKET_NOT_FOUND" => Some(Self::BucketNotFound),
    607                    "TOO_MANY_OBJECTS" => Some(Self::TooManyObjects),
    608                    _ => None,
    609                }
    610            }
    611        }
    612        #[derive(Clone, PartialEq, ::prost::Oneof)]
    613        pub enum InputFormat {
    614            #[prost(message, tag = "3")]
    615            TextFormat(TextFormat),
    616            #[prost(message, tag = "4")]
    617            AvroFormat(AvroFormat),
    618            #[prost(message, tag = "5")]
    619            PubsubAvroFormat(PubSubAvroFormat),
    620        }
    621    }
    622    impl ::prost::Name for CloudStorage {
    623        const NAME: &'static str = "CloudStorage";
    624        const PACKAGE: &'static str = "google.pubsub.v1";
    625        fn full_name() -> ::prost::alloc::string::String {
    626            "google.pubsub.v1.IngestionDataSourceSettings.CloudStorage".into()
    627        }
    628        fn type_url() -> ::prost::alloc::string::String {
    629            "type.googleapis.com/google.pubsub.v1.IngestionDataSourceSettings.CloudStorage"
    630                .into()
    631        }
    632    }
    633    #[derive(Clone, PartialEq, ::prost::Message)]
    634    pub struct AzureEventHubs {
    635        #[prost(enumeration = "azure_event_hubs::State", tag = "1")]
    636        pub state: i32,
    637        #[prost(string, tag = "2")]
    638        pub resource_group: ::prost::alloc::string::String,
    639        #[prost(string, tag = "3")]
    640        pub namespace: ::prost::alloc::string::String,
    641        #[prost(string, tag = "4")]
    642        pub event_hub: ::prost::alloc::string::String,
    643        #[prost(string, tag = "5")]
    644        pub client_id: ::prost::alloc::string::String,
    645        #[prost(string, tag = "6")]
    646        pub tenant_id: ::prost::alloc::string::String,
    647        #[prost(string, tag = "7")]
    648        pub subscription_id: ::prost::alloc::string::String,
    649        #[prost(string, tag = "8")]
    650        pub gcp_service_account: ::prost::alloc::string::String,
    651    }
    652    /// Nested message and enum types in `AzureEventHubs`.
    653    pub mod azure_event_hubs {
    654        #[derive(
    655            Clone,
    656            Copy,
    657            Debug,
    658            PartialEq,
    659            Eq,
    660            Hash,
    661            PartialOrd,
    662            Ord,
    663            ::prost::Enumeration
    664        )]
    665        #[repr(i32)]
    666        pub enum State {
    667            Unspecified = 0,
    668            Active = 1,
    669            EventHubsPermissionDenied = 2,
    670            PublishPermissionDenied = 3,
    671            NamespaceNotFound = 4,
    672            EventHubNotFound = 5,
    673            SubscriptionNotFound = 6,
    674            ResourceGroupNotFound = 7,
    675        }
    676        impl State {
    677            /// String value of the enum field names used in the ProtoBuf definition.
    678            ///
    679            /// The values are not transformed in any way and thus are considered stable
    680            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    681            pub fn as_str_name(&self) -> &'static str {
    682                match self {
    683                    Self::Unspecified => "STATE_UNSPECIFIED",
    684                    Self::Active => "ACTIVE",
    685                    Self::EventHubsPermissionDenied => "EVENT_HUBS_PERMISSION_DENIED",
    686                    Self::PublishPermissionDenied => "PUBLISH_PERMISSION_DENIED",
    687                    Self::NamespaceNotFound => "NAMESPACE_NOT_FOUND",
    688                    Self::EventHubNotFound => "EVENT_HUB_NOT_FOUND",
    689                    Self::SubscriptionNotFound => "SUBSCRIPTION_NOT_FOUND",
    690                    Self::ResourceGroupNotFound => "RESOURCE_GROUP_NOT_FOUND",
    691                }
    692            }
    693            /// Creates an enum from field names used in the ProtoBuf definition.
    694            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    695                match value {
    696                    "STATE_UNSPECIFIED" => Some(Self::Unspecified),
    697                    "ACTIVE" => Some(Self::Active),
    698                    "EVENT_HUBS_PERMISSION_DENIED" => {
    699                        Some(Self::EventHubsPermissionDenied)
    700                    }
    701                    "PUBLISH_PERMISSION_DENIED" => Some(Self::PublishPermissionDenied),
    702                    "NAMESPACE_NOT_FOUND" => Some(Self::NamespaceNotFound),
    703                    "EVENT_HUB_NOT_FOUND" => Some(Self::EventHubNotFound),
    704                    "SUBSCRIPTION_NOT_FOUND" => Some(Self::SubscriptionNotFound),
    705                    "RESOURCE_GROUP_NOT_FOUND" => Some(Self::ResourceGroupNotFound),
    706                    _ => None,
    707                }
    708            }
    709        }
    710    }
    711    impl ::prost::Name for AzureEventHubs {
    712        const NAME: &'static str = "AzureEventHubs";
    713        const PACKAGE: &'static str = "google.pubsub.v1";
    714        fn full_name() -> ::prost::alloc::string::String {
    715            "google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs".into()
    716        }
    717        fn type_url() -> ::prost::alloc::string::String {
    718            "type.googleapis.com/google.pubsub.v1.IngestionDataSourceSettings.AzureEventHubs"
    719                .into()
    720        }
    721    }
    722    #[derive(Clone, PartialEq, ::prost::Message)]
    723    pub struct AwsMsk {
    724        #[prost(enumeration = "aws_msk::State", tag = "1")]
    725        pub state: i32,
    726        #[prost(string, tag = "2")]
    727        pub cluster_arn: ::prost::alloc::string::String,
    728        #[prost(string, tag = "3")]
    729        pub topic: ::prost::alloc::string::String,
    730        #[prost(string, tag = "4")]
    731        pub aws_role_arn: ::prost::alloc::string::String,
    732        #[prost(string, tag = "5")]
    733        pub gcp_service_account: ::prost::alloc::string::String,
    734    }
    735    /// Nested message and enum types in `AwsMsk`.
    736    pub mod aws_msk {
    737        #[derive(
    738            Clone,
    739            Copy,
    740            Debug,
    741            PartialEq,
    742            Eq,
    743            Hash,
    744            PartialOrd,
    745            Ord,
    746            ::prost::Enumeration
    747        )]
    748        #[repr(i32)]
    749        pub enum State {
    750            Unspecified = 0,
    751            Active = 1,
    752            MskPermissionDenied = 2,
    753            PublishPermissionDenied = 3,
    754            ClusterNotFound = 4,
    755            TopicNotFound = 5,
    756        }
    757        impl State {
    758            /// String value of the enum field names used in the ProtoBuf definition.
    759            ///
    760            /// The values are not transformed in any way and thus are considered stable
    761            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    762            pub fn as_str_name(&self) -> &'static str {
    763                match self {
    764                    Self::Unspecified => "STATE_UNSPECIFIED",
    765                    Self::Active => "ACTIVE",
    766                    Self::MskPermissionDenied => "MSK_PERMISSION_DENIED",
    767                    Self::PublishPermissionDenied => "PUBLISH_PERMISSION_DENIED",
    768                    Self::ClusterNotFound => "CLUSTER_NOT_FOUND",
    769                    Self::TopicNotFound => "TOPIC_NOT_FOUND",
    770                }
    771            }
    772            /// Creates an enum from field names used in the ProtoBuf definition.
    773            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    774                match value {
    775                    "STATE_UNSPECIFIED" => Some(Self::Unspecified),
    776                    "ACTIVE" => Some(Self::Active),
    777                    "MSK_PERMISSION_DENIED" => Some(Self::MskPermissionDenied),
    778                    "PUBLISH_PERMISSION_DENIED" => Some(Self::PublishPermissionDenied),
    779                    "CLUSTER_NOT_FOUND" => Some(Self::ClusterNotFound),
    780                    "TOPIC_NOT_FOUND" => Some(Self::TopicNotFound),
    781                    _ => None,
    782                }
    783            }
    784        }
    785    }
    786    impl ::prost::Name for AwsMsk {
    787        const NAME: &'static str = "AwsMsk";
    788        const PACKAGE: &'static str = "google.pubsub.v1";
    789        fn full_name() -> ::prost::alloc::string::String {
    790            "google.pubsub.v1.IngestionDataSourceSettings.AwsMsk".into()
    791        }
    792        fn type_url() -> ::prost::alloc::string::String {
    793            "type.googleapis.com/google.pubsub.v1.IngestionDataSourceSettings.AwsMsk"
    794                .into()
    795        }
    796    }
    797    #[derive(Clone, PartialEq, ::prost::Message)]
    798    pub struct ConfluentCloud {
    799        #[prost(enumeration = "confluent_cloud::State", tag = "1")]
    800        pub state: i32,
    801        #[prost(string, tag = "2")]
    802        pub bootstrap_server: ::prost::alloc::string::String,
    803        #[prost(string, tag = "3")]
    804        pub cluster_id: ::prost::alloc::string::String,
    805        #[prost(string, tag = "4")]
    806        pub topic: ::prost::alloc::string::String,
    807        #[prost(string, tag = "5")]
    808        pub identity_pool_id: ::prost::alloc::string::String,
    809        #[prost(string, tag = "6")]
    810        pub gcp_service_account: ::prost::alloc::string::String,
    811    }
    812    /// Nested message and enum types in `ConfluentCloud`.
    813    pub mod confluent_cloud {
    814        #[derive(
    815            Clone,
    816            Copy,
    817            Debug,
    818            PartialEq,
    819            Eq,
    820            Hash,
    821            PartialOrd,
    822            Ord,
    823            ::prost::Enumeration
    824        )]
    825        #[repr(i32)]
    826        pub enum State {
    827            Unspecified = 0,
    828            Active = 1,
    829            ConfluentCloudPermissionDenied = 2,
    830            PublishPermissionDenied = 3,
    831            UnreachableBootstrapServer = 4,
    832            ClusterNotFound = 5,
    833            TopicNotFound = 6,
    834        }
    835        impl State {
    836            /// String value of the enum field names used in the ProtoBuf definition.
    837            ///
    838            /// The values are not transformed in any way and thus are considered stable
    839            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    840            pub fn as_str_name(&self) -> &'static str {
    841                match self {
    842                    Self::Unspecified => "STATE_UNSPECIFIED",
    843                    Self::Active => "ACTIVE",
    844                    Self::ConfluentCloudPermissionDenied => {
    845                        "CONFLUENT_CLOUD_PERMISSION_DENIED"
    846                    }
    847                    Self::PublishPermissionDenied => "PUBLISH_PERMISSION_DENIED",
    848                    Self::UnreachableBootstrapServer => "UNREACHABLE_BOOTSTRAP_SERVER",
    849                    Self::ClusterNotFound => "CLUSTER_NOT_FOUND",
    850                    Self::TopicNotFound => "TOPIC_NOT_FOUND",
    851                }
    852            }
    853            /// Creates an enum from field names used in the ProtoBuf definition.
    854            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    855                match value {
    856                    "STATE_UNSPECIFIED" => Some(Self::Unspecified),
    857                    "ACTIVE" => Some(Self::Active),
    858                    "CONFLUENT_CLOUD_PERMISSION_DENIED" => {
    859                        Some(Self::ConfluentCloudPermissionDenied)
    860                    }
    861                    "PUBLISH_PERMISSION_DENIED" => Some(Self::PublishPermissionDenied),
    862                    "UNREACHABLE_BOOTSTRAP_SERVER" => {
    863                        Some(Self::UnreachableBootstrapServer)
    864                    }
    865                    "CLUSTER_NOT_FOUND" => Some(Self::ClusterNotFound),
    866                    "TOPIC_NOT_FOUND" => Some(Self::TopicNotFound),
    867                    _ => None,
    868                }
    869            }
    870        }
    871    }
    872    impl ::prost::Name for ConfluentCloud {
    873        const NAME: &'static str = "ConfluentCloud";
    874        const PACKAGE: &'static str = "google.pubsub.v1";
    875        fn full_name() -> ::prost::alloc::string::String {
    876            "google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud".into()
    877        }
    878        fn type_url() -> ::prost::alloc::string::String {
    879            "type.googleapis.com/google.pubsub.v1.IngestionDataSourceSettings.ConfluentCloud"
    880                .into()
    881        }
    882    }
    883    #[derive(Clone, PartialEq, ::prost::Oneof)]
    884    pub enum Source {
    885        #[prost(message, tag = "1")]
    886        AwsKinesis(AwsKinesis),
    887        #[prost(message, tag = "2")]
    888        CloudStorage(CloudStorage),
    889        #[prost(message, tag = "3")]
    890        AzureEventHubs(AzureEventHubs),
    891        #[prost(message, tag = "5")]
    892        AwsMsk(AwsMsk),
    893        #[prost(message, tag = "6")]
    894        ConfluentCloud(ConfluentCloud),
    895    }
    896}
    897impl ::prost::Name for IngestionDataSourceSettings {
    898    const NAME: &'static str = "IngestionDataSourceSettings";
    899    const PACKAGE: &'static str = "google.pubsub.v1";
    900    fn full_name() -> ::prost::alloc::string::String {
    901        "google.pubsub.v1.IngestionDataSourceSettings".into()
    902    }
    903    fn type_url() -> ::prost::alloc::string::String {
    904        "type.googleapis.com/google.pubsub.v1.IngestionDataSourceSettings".into()
    905    }
    906}
    907#[derive(Clone, Copy, PartialEq, ::prost::Message)]
    908pub struct PlatformLogsSettings {
    909    #[prost(enumeration = "platform_logs_settings::Severity", tag = "1")]
    910    pub severity: i32,
    911}
    912/// Nested message and enum types in `PlatformLogsSettings`.
    913pub mod platform_logs_settings {
    914    #[derive(
    915        Clone,
    916        Copy,
    917        Debug,
    918        PartialEq,
    919        Eq,
    920        Hash,
    921        PartialOrd,
    922        Ord,
    923        ::prost::Enumeration
    924    )]
    925    #[repr(i32)]
    926    pub enum Severity {
    927        Unspecified = 0,
    928        Disabled = 1,
    929        Debug = 2,
    930        Info = 3,
    931        Warning = 4,
    932        Error = 5,
    933    }
    934    impl Severity {
    935        /// String value of the enum field names used in the ProtoBuf definition.
    936        ///
    937        /// The values are not transformed in any way and thus are considered stable
    938        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    939        pub fn as_str_name(&self) -> &'static str {
    940            match self {
    941                Self::Unspecified => "SEVERITY_UNSPECIFIED",
    942                Self::Disabled => "DISABLED",
    943                Self::Debug => "DEBUG",
    944                Self::Info => "INFO",
    945                Self::Warning => "WARNING",
    946                Self::Error => "ERROR",
    947            }
    948        }
    949        /// Creates an enum from field names used in the ProtoBuf definition.
    950        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    951            match value {
    952                "SEVERITY_UNSPECIFIED" => Some(Self::Unspecified),
    953                "DISABLED" => Some(Self::Disabled),
    954                "DEBUG" => Some(Self::Debug),
    955                "INFO" => Some(Self::Info),
    956                "WARNING" => Some(Self::Warning),
    957                "ERROR" => Some(Self::Error),
    958                _ => None,
    959            }
    960        }
    961    }
    962}
    963impl ::prost::Name for PlatformLogsSettings {
    964    const NAME: &'static str = "PlatformLogsSettings";
    965    const PACKAGE: &'static str = "google.pubsub.v1";
    966    fn full_name() -> ::prost::alloc::string::String {
    967        "google.pubsub.v1.PlatformLogsSettings".into()
    968    }
    969    fn type_url() -> ::prost::alloc::string::String {
    970        "type.googleapis.com/google.pubsub.v1.PlatformLogsSettings".into()
    971    }
    972}
    973#[derive(Clone, PartialEq, ::prost::Message)]
    974pub struct IngestionFailureEvent {
    975    #[prost(string, tag = "1")]
    976    pub topic: ::prost::alloc::string::String,
    977    #[prost(string, tag = "2")]
    978    pub error_message: ::prost::alloc::string::String,
    979    #[prost(oneof = "ingestion_failure_event::Failure", tags = "3, 4, 5, 6, 7")]
    980    pub failure: ::core::option::Option<ingestion_failure_event::Failure>,
    981}
    982/// Nested message and enum types in `IngestionFailureEvent`.
    983pub mod ingestion_failure_event {
    984    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    985    pub struct ApiViolationReason {}
    986    impl ::prost::Name for ApiViolationReason {
    987        const NAME: &'static str = "ApiViolationReason";
    988        const PACKAGE: &'static str = "google.pubsub.v1";
    989        fn full_name() -> ::prost::alloc::string::String {
    990            "google.pubsub.v1.IngestionFailureEvent.ApiViolationReason".into()
    991        }
    992        fn type_url() -> ::prost::alloc::string::String {
    993            "type.googleapis.com/google.pubsub.v1.IngestionFailureEvent.ApiViolationReason"
    994                .into()
    995        }
    996    }
    997    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    998    pub struct AvroFailureReason {}
    999    impl ::prost::Name for AvroFailureReason {
    1000        const NAME: &'static str = "AvroFailureReason";
    1001        const PACKAGE: &'static str = "google.pubsub.v1";
    1002        fn full_name() -> ::prost::alloc::string::String {
    1003            "google.pubsub.v1.IngestionFailureEvent.AvroFailureReason".into()
    1004        }
    1005        fn type_url() -> ::prost::alloc::string::String {
    1006            "type.googleapis.com/google.pubsub.v1.IngestionFailureEvent.AvroFailureReason"
    1007                .into()
    1008        }
    1009    }
    1010    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    1011    pub struct SchemaViolationReason {}
    1012    impl ::prost::Name for SchemaViolationReason {
    1013        const NAME: &'static str = "SchemaViolationReason";
    1014        const PACKAGE: &'static str = "google.pubsub.v1";
    1015        fn full_name() -> ::prost::alloc::string::String {
    1016            "google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason".into()
    1017        }
    1018        fn type_url() -> ::prost::alloc::string::String {
    1019            "type.googleapis.com/google.pubsub.v1.IngestionFailureEvent.SchemaViolationReason"
    1020                .into()
    1021        }
    1022    }
    1023    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    1024    pub struct MessageTransformationFailureReason {}
    1025    impl ::prost::Name for MessageTransformationFailureReason {
    1026        const NAME: &'static str = "MessageTransformationFailureReason";
    1027        const PACKAGE: &'static str = "google.pubsub.v1";
    1028        fn full_name() -> ::prost::alloc::string::String {
    1029            "google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason"
    1030                .into()
    1031        }
    1032        fn type_url() -> ::prost::alloc::string::String {
    1033            "type.googleapis.com/google.pubsub.v1.IngestionFailureEvent.MessageTransformationFailureReason"
    1034                .into()
    1035        }
    1036    }
    1037    #[derive(Clone, PartialEq, ::prost::Message)]
    1038    pub struct CloudStorageFailure {
    1039        #[prost(string, tag = "1")]
    1040        pub bucket: ::prost::alloc::string::String,
    1041        #[prost(string, tag = "2")]
    1042        pub object_name: ::prost::alloc::string::String,
    1043        #[prost(int64, tag = "3")]
    1044        pub object_generation: i64,
    1045        #[prost(oneof = "cloud_storage_failure::Reason", tags = "5, 6, 7, 8")]
    1046        pub reason: ::core::option::Option<cloud_storage_failure::Reason>,
    1047    }
    1048    /// Nested message and enum types in `CloudStorageFailure`.
    1049    pub mod cloud_storage_failure {
    1050        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
    1051        pub enum Reason {
    1052            #[prost(message, tag = "5")]
    1053            AvroFailureReason(super::AvroFailureReason),
    1054            #[prost(message, tag = "6")]
    1055            ApiViolationReason(super::ApiViolationReason),
    1056            #[prost(message, tag = "7")]
    1057            SchemaViolationReason(super::SchemaViolationReason),
    1058            #[prost(message, tag = "8")]
    1059            MessageTransformationFailureReason(
    1060                super::MessageTransformationFailureReason,
    1061            ),
    1062        }
    1063    }
    1064    impl ::prost::Name for CloudStorageFailure {
    1065        const NAME: &'static str = "CloudStorageFailure";
    1066        const PACKAGE: &'static str = "google.pubsub.v1";
    1067        fn full_name() -> ::prost::alloc::string::String {
    1068            "google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure".into()
    1069        }
    1070        fn type_url() -> ::prost::alloc::string::String {
    1071            "type.googleapis.com/google.pubsub.v1.IngestionFailureEvent.CloudStorageFailure"
    1072                .into()
    1073        }
    1074    }
    1075    #[derive(Clone, PartialEq, ::prost::Message)]
    1076    pub struct AwsMskFailureReason {
    1077        #[prost(string, tag = "1")]
    1078        pub cluster_arn: ::prost::alloc::string::String,
    1079        #[prost(string, tag = "2")]
    1080        pub kafka_topic: ::prost::alloc::string::String,
    1081        #[prost(int64, tag = "3")]
    1082        pub partition_id: i64,
    1083        #[prost(int64, tag = "4")]
    1084        pub offset: i64,
    1085        #[prost(oneof = "aws_msk_failure_reason::Reason", tags = "5, 6, 7")]
    1086        pub reason: ::core::option::Option<aws_msk_failure_reason::Reason>,
    1087    }
    1088    /// Nested message and enum types in `AwsMskFailureReason`.
    1089    pub mod aws_msk_failure_reason {
    1090        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
    1091        pub enum Reason {
    1092            #[prost(message, tag = "5")]
    1093            ApiViolationReason(super::ApiViolationReason),
    1094            #[prost(message, tag = "6")]
    1095            SchemaViolationReason(super::SchemaViolationReason),
    1096            #[prost(message, tag = "7")]
    1097            MessageTransformationFailureReason(
    1098                super::MessageTransformationFailureReason,
    1099            ),
    1100        }
    1101    }
    1102    impl ::prost::Name for AwsMskFailureReason {
    1103        const NAME: &'static str = "AwsMskFailureReason";
    1104        const PACKAGE: &'static str = "google.pubsub.v1";
    1105        fn full_name() -> ::prost::alloc::string::String {
    1106            "google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason".into()
    1107        }
    1108        fn type_url() -> ::prost::alloc::string::String {
    1109            "type.googleapis.com/google.pubsub.v1.IngestionFailureEvent.AwsMskFailureReason"
    1110                .into()
    1111        }
    1112    }
    1113    #[derive(Clone, PartialEq, ::prost::Message)]
    1114    pub struct AzureEventHubsFailureReason {
    1115        #[prost(string, tag = "1")]
    1116        pub namespace: ::prost::alloc::string::String,
    1117        #[prost(string, tag = "2")]
    1118        pub event_hub: ::prost::alloc::string::String,
    1119        #[prost(int64, tag = "3")]
    1120        pub partition_id: i64,
    1121        #[prost(int64, tag = "4")]
    1122        pub offset: i64,
    1123        #[prost(oneof = "azure_event_hubs_failure_reason::Reason", tags = "5, 6, 7")]
    1124        pub reason: ::core::option::Option<azure_event_hubs_failure_reason::Reason>,
    1125    }
    1126    /// Nested message and enum types in `AzureEventHubsFailureReason`.
    1127    pub mod azure_event_hubs_failure_reason {
    1128        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
    1129        pub enum Reason {
    1130            #[prost(message, tag = "5")]
    1131            ApiViolationReason(super::ApiViolationReason),
    1132            #[prost(message, tag = "6")]
    1133            SchemaViolationReason(super::SchemaViolationReason),
    1134            #[prost(message, tag = "7")]
    1135            MessageTransformationFailureReason(
    1136                super::MessageTransformationFailureReason,
    1137            ),
    1138        }
    1139    }
    1140    impl ::prost::Name for AzureEventHubsFailureReason {
    1141        const NAME: &'static str = "AzureEventHubsFailureReason";
    1142        const PACKAGE: &'static str = "google.pubsub.v1";
    1143        fn full_name() -> ::prost::alloc::string::String {
    1144            "google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason".into()
    1145        }
    1146        fn type_url() -> ::prost::alloc::string::String {
    1147            "type.googleapis.com/google.pubsub.v1.IngestionFailureEvent.AzureEventHubsFailureReason"
    1148                .into()
    1149        }
    1150    }
    1151    #[derive(Clone, PartialEq, ::prost::Message)]
    1152    pub struct ConfluentCloudFailureReason {
    1153        #[prost(string, tag = "1")]
    1154        pub cluster_id: ::prost::alloc::string::String,
    1155        #[prost(string, tag = "2")]
    1156        pub kafka_topic: ::prost::alloc::string::String,
    1157        #[prost(int64, tag = "3")]
    1158        pub partition_id: i64,
    1159        #[prost(int64, tag = "4")]
    1160        pub offset: i64,
    1161        #[prost(oneof = "confluent_cloud_failure_reason::Reason", tags = "5, 6, 7")]
    1162        pub reason: ::core::option::Option<confluent_cloud_failure_reason::Reason>,
    1163    }
    1164    /// Nested message and enum types in `ConfluentCloudFailureReason`.
    1165    pub mod confluent_cloud_failure_reason {
    1166        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
    1167        pub enum Reason {
    1168            #[prost(message, tag = "5")]
    1169            ApiViolationReason(super::ApiViolationReason),
    1170            #[prost(message, tag = "6")]
    1171            SchemaViolationReason(super::SchemaViolationReason),
    1172            #[prost(message, tag = "7")]
    1173            MessageTransformationFailureReason(
    1174                super::MessageTransformationFailureReason,
    1175            ),
    1176        }
    1177    }
    1178    impl ::prost::Name for ConfluentCloudFailureReason {
    1179        const NAME: &'static str = "ConfluentCloudFailureReason";
    1180        const PACKAGE: &'static str = "google.pubsub.v1";
    1181        fn full_name() -> ::prost::alloc::string::String {
    1182            "google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason".into()
    1183        }
    1184        fn type_url() -> ::prost::alloc::string::String {
    1185            "type.googleapis.com/google.pubsub.v1.IngestionFailureEvent.ConfluentCloudFailureReason"
    1186                .into()
    1187        }
    1188    }
    1189    #[derive(Clone, PartialEq, ::prost::Message)]
    1190    pub struct AwsKinesisFailureReason {
    1191        #[prost(string, tag = "1")]
    1192        pub stream_arn: ::prost::alloc::string::String,
    1193        #[prost(string, tag = "2")]
    1194        pub partition_key: ::prost::alloc::string::String,
    1195        #[prost(string, tag = "3")]
    1196        pub sequence_number: ::prost::alloc::string::String,
    1197        #[prost(oneof = "aws_kinesis_failure_reason::Reason", tags = "4, 5, 6")]
    1198        pub reason: ::core::option::Option<aws_kinesis_failure_reason::Reason>,
    1199    }
    1200    /// Nested message and enum types in `AwsKinesisFailureReason`.
    1201    pub mod aws_kinesis_failure_reason {
    1202        #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
    1203        pub enum Reason {
    1204            #[prost(message, tag = "4")]
    1205            SchemaViolationReason(super::SchemaViolationReason),
    1206            #[prost(message, tag = "5")]
    1207            MessageTransformationFailureReason(
    1208                super::MessageTransformationFailureReason,
    1209            ),
    1210            #[prost(message, tag = "6")]
    1211            ApiViolationReason(super::ApiViolationReason),
    1212        }
    1213    }
    1214    impl ::prost::Name for AwsKinesisFailureReason {
    1215        const NAME: &'static str = "AwsKinesisFailureReason";
    1216        const PACKAGE: &'static str = "google.pubsub.v1";
    1217        fn full_name() -> ::prost::alloc::string::String {
    1218            "google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason".into()
    1219        }
    1220        fn type_url() -> ::prost::alloc::string::String {
    1221            "type.googleapis.com/google.pubsub.v1.IngestionFailureEvent.AwsKinesisFailureReason"
    1222                .into()
    1223        }
    1224    }
    1225    #[derive(Clone, PartialEq, ::prost::Oneof)]
    1226    pub enum Failure {
    1227        #[prost(message, tag = "3")]
    1228        CloudStorageFailure(CloudStorageFailure),
    1229        #[prost(message, tag = "4")]
    1230        AwsMskFailure(AwsMskFailureReason),
    1231        #[prost(message, tag = "5")]
    1232        AzureEventHubsFailure(AzureEventHubsFailureReason),
    1233        #[prost(message, tag = "6")]
    1234        ConfluentCloudFailure(ConfluentCloudFailureReason),
    1235        #[prost(message, tag = "7")]
    1236        AwsKinesisFailure(AwsKinesisFailureReason),
    1237    }
    1238}
    1239impl ::prost::Name for IngestionFailureEvent {
    1240    const NAME: &'static str = "IngestionFailureEvent";
    1241    const PACKAGE: &'static str = "google.pubsub.v1";
    1242    fn full_name() -> ::prost::alloc::string::String {
    1243        "google.pubsub.v1.IngestionFailureEvent".into()
    1244    }
    1245    fn type_url() -> ::prost::alloc::string::String {
    1246        "type.googleapis.com/google.pubsub.v1.IngestionFailureEvent".into()
    1247    }
    1248}
    1249#[derive(Clone, PartialEq, ::prost::Message)]
    1250pub struct JavaScriptUdf {
    1251    #[prost(string, tag = "1")]
    1252    pub function_name: ::prost::alloc::string::String,
    1253    #[prost(string, tag = "2")]
    1254    pub code: ::prost::alloc::string::String,
    1255}
    1256impl ::prost::Name for JavaScriptUdf {
    1257    const NAME: &'static str = "JavaScriptUDF";
    1258    const PACKAGE: &'static str = "google.pubsub.v1";
    1259    fn full_name() -> ::prost::alloc::string::String {
    1260        "google.pubsub.v1.JavaScriptUDF".into()
    1261    }
    1262    fn type_url() -> ::prost::alloc::string::String {
    1263        "type.googleapis.com/google.pubsub.v1.JavaScriptUDF".into()
    1264    }
    1265}
    1266#[derive(Clone, PartialEq, ::prost::Message)]
    1267pub struct MessageTransform {
    1268    #[deprecated]
    1269    #[prost(bool, tag = "3")]
    1270    pub enabled: bool,
    1271    #[prost(bool, tag = "4")]
    1272    pub disabled: bool,
    1273    #[prost(oneof = "message_transform::Transform", tags = "2")]
    1274    pub transform: ::core::option::Option<message_transform::Transform>,
    1275}
    1276/// Nested message and enum types in `MessageTransform`.
    1277pub mod message_transform {
    1278    #[derive(Clone, PartialEq, ::prost::Oneof)]
    1279    pub enum Transform {
    1280        #[prost(message, tag = "2")]
    1281        JavascriptUdf(super::JavaScriptUdf),
    1282    }
    1283}
    1284impl ::prost::Name for MessageTransform {
    1285    const NAME: &'static str = "MessageTransform";
    1286    const PACKAGE: &'static str = "google.pubsub.v1";
    1287    fn full_name() -> ::prost::alloc::string::String {
    1288        "google.pubsub.v1.MessageTransform".into()
    1289    }
    1290    fn type_url() -> ::prost::alloc::string::String {
    1291        "type.googleapis.com/google.pubsub.v1.MessageTransform".into()
    1292    }
    1293}
    1294#[derive(Clone, PartialEq, ::prost::Message)]
    1295pub struct Topic {
    1296    #[prost(string, tag = "1")]
    1297    pub name: ::prost::alloc::string::String,
    1298    #[prost(map = "string, string", tag = "2")]
    1299    pub labels: ::std::collections::HashMap<
    1300        ::prost::alloc::string::String,
    1301        ::prost::alloc::string::String,
    1302    >,
    1303    #[prost(message, optional, tag = "3")]
    1304    pub message_storage_policy: ::core::option::Option<MessageStoragePolicy>,
    1305    #[prost(string, tag = "5")]
    1306    pub kms_key_name: ::prost::alloc::string::String,
    1307    #[prost(message, optional, tag = "6")]
    1308    pub schema_settings: ::core::option::Option<SchemaSettings>,
    1309    #[prost(bool, tag = "7")]
    1310    pub satisfies_pzs: bool,
    1311    #[prost(message, optional, tag = "8")]
    1312    pub message_retention_duration: ::core::option::Option<::prost_types::Duration>,
    1313    #[prost(enumeration = "topic::State", tag = "9")]
    1314    pub state: i32,
    1315    #[prost(message, optional, tag = "10")]
    1316    pub ingestion_data_source_settings: ::core::option::Option<
    1317        IngestionDataSourceSettings,
    1318    >,
    1319    #[prost(message, repeated, tag = "13")]
    1320    pub message_transforms: ::prost::alloc::vec::Vec<MessageTransform>,
    1321    #[prost(map = "string, string", tag = "14")]
    1322    pub tags: ::std::collections::HashMap<
    1323        ::prost::alloc::string::String,
    1324        ::prost::alloc::string::String,
    1325    >,
    1326}
    1327/// Nested message and enum types in `Topic`.
    1328pub mod topic {
    1329    #[derive(
    1330        Clone,
    1331        Copy,
    1332        Debug,
    1333        PartialEq,
    1334        Eq,
    1335        Hash,
    1336        PartialOrd,
    1337        Ord,
    1338        ::prost::Enumeration
    1339    )]
    1340    #[repr(i32)]
    1341    pub enum State {
    1342        Unspecified = 0,
    1343        Active = 1,
    1344        IngestionResourceError = 2,
    1345    }
    1346    impl State {
    1347        /// String value of the enum field names used in the ProtoBuf definition.
    1348        ///
    1349        /// The values are not transformed in any way and thus are considered stable
    1350        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    1351        pub fn as_str_name(&self) -> &'static str {
    1352            match self {
    1353                Self::Unspecified => "STATE_UNSPECIFIED",
    1354                Self::Active => "ACTIVE",
    1355                Self::IngestionResourceError => "INGESTION_RESOURCE_ERROR",
    1356            }
    1357        }
    1358        /// Creates an enum from field names used in the ProtoBuf definition.
    1359        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    1360            match value {
    1361                "STATE_UNSPECIFIED" => Some(Self::Unspecified),
    1362                "ACTIVE" => Some(Self::Active),
    1363                "INGESTION_RESOURCE_ERROR" => Some(Self::IngestionResourceError),
    1364                _ => None,
    1365            }
    1366        }
    1367    }
    1368}
    1369impl ::prost::Name for Topic {
    1370    const NAME: &'static str = "Topic";
    1371    const PACKAGE: &'static str = "google.pubsub.v1";
    1372    fn full_name() -> ::prost::alloc::string::String {
    1373        "google.pubsub.v1.Topic".into()
    1374    }
    1375    fn type_url() -> ::prost::alloc::string::String {
    1376        "type.googleapis.com/google.pubsub.v1.Topic".into()
    1377    }
    1378}
    1379#[derive(Clone, PartialEq, ::prost::Message)]
    1380pub struct PubsubMessage {
    1381    #[prost(bytes = "bytes", tag = "1")]
    1382    pub data: ::prost::bytes::Bytes,
    1383    #[prost(map = "string, string", tag = "2")]
    1384    pub attributes: ::std::collections::HashMap<
    1385        ::prost::alloc::string::String,
    1386        ::prost::alloc::string::String,
    1387    >,
    1388    #[prost(string, tag = "3")]
    1389    pub message_id: ::prost::alloc::string::String,
    1390    #[prost(message, optional, tag = "4")]
    1391    pub publish_time: ::core::option::Option<::prost_types::Timestamp>,
    1392    #[prost(string, tag = "5")]
    1393    pub ordering_key: ::prost::alloc::string::String,
    1394}
    1395impl ::prost::Name for PubsubMessage {
    1396    const NAME: &'static str = "PubsubMessage";
    1397    const PACKAGE: &'static str = "google.pubsub.v1";
    1398    fn full_name() -> ::prost::alloc::string::String {
    1399        "google.pubsub.v1.PubsubMessage".into()
    1400    }
    1401    fn type_url() -> ::prost::alloc::string::String {
    1402        "type.googleapis.com/google.pubsub.v1.PubsubMessage".into()
    1403    }
    1404}
    1405#[derive(Clone, PartialEq, ::prost::Message)]
    1406pub struct GetTopicRequest {
    1407    #[prost(string, tag = "1")]
    1408    pub topic: ::prost::alloc::string::String,
    1409}
    1410impl ::prost::Name for GetTopicRequest {
    1411    const NAME: &'static str = "GetTopicRequest";
    1412    const PACKAGE: &'static str = "google.pubsub.v1";
    1413    fn full_name() -> ::prost::alloc::string::String {
    1414        "google.pubsub.v1.GetTopicRequest".into()
    1415    }
    1416    fn type_url() -> ::prost::alloc::string::String {
    1417        "type.googleapis.com/google.pubsub.v1.GetTopicRequest".into()
    1418    }
    1419}
    1420#[derive(Clone, PartialEq, ::prost::Message)]
    1421pub struct UpdateTopicRequest {
    1422    #[prost(message, optional, tag = "1")]
    1423    pub topic: ::core::option::Option<Topic>,
    1424    #[prost(message, optional, tag = "2")]
    1425    pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
    1426}
    1427impl ::prost::Name for UpdateTopicRequest {
    1428    const NAME: &'static str = "UpdateTopicRequest";
    1429    const PACKAGE: &'static str = "google.pubsub.v1";
    1430    fn full_name() -> ::prost::alloc::string::String {
    1431        "google.pubsub.v1.UpdateTopicRequest".into()
    1432    }
    1433    fn type_url() -> ::prost::alloc::string::String {
    1434        "type.googleapis.com/google.pubsub.v1.UpdateTopicRequest".into()
    1435    }
    1436}
    1437#[derive(Clone, PartialEq, ::prost::Message)]
    1438pub struct PublishRequest {
    1439    #[prost(string, tag = "1")]
    1440    pub topic: ::prost::alloc::string::String,
    1441    #[prost(message, repeated, tag = "2")]
    1442    pub messages: ::prost::alloc::vec::Vec<PubsubMessage>,
    1443}
    1444impl ::prost::Name for PublishRequest {
    1445    const NAME: &'static str = "PublishRequest";
    1446    const PACKAGE: &'static str = "google.pubsub.v1";
    1447    fn full_name() -> ::prost::alloc::string::String {
    1448        "google.pubsub.v1.PublishRequest".into()
    1449    }
    1450    fn type_url() -> ::prost::alloc::string::String {
    1451        "type.googleapis.com/google.pubsub.v1.PublishRequest".into()
    1452    }
    1453}
    1454#[derive(Clone, PartialEq, ::prost::Message)]
    1455pub struct PublishResponse {
    1456    #[prost(string, repeated, tag = "1")]
    1457    pub message_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    1458}
    1459impl ::prost::Name for PublishResponse {
    1460    const NAME: &'static str = "PublishResponse";
    1461    const PACKAGE: &'static str = "google.pubsub.v1";
    1462    fn full_name() -> ::prost::alloc::string::String {
    1463        "google.pubsub.v1.PublishResponse".into()
    1464    }
    1465    fn type_url() -> ::prost::alloc::string::String {
    1466        "type.googleapis.com/google.pubsub.v1.PublishResponse".into()
    1467    }
    1468}
    1469#[derive(Clone, PartialEq, ::prost::Message)]
    1470pub struct ListTopicsRequest {
    1471    #[prost(string, tag = "1")]
    1472    pub project: ::prost::alloc::string::String,
    1473    #[prost(int32, tag = "2")]
    1474    pub page_size: i32,
    1475    #[prost(string, tag = "3")]
    1476    pub page_token: ::prost::alloc::string::String,
    1477}
    1478impl ::prost::Name for ListTopicsRequest {
    1479    const NAME: &'static str = "ListTopicsRequest";
    1480    const PACKAGE: &'static str = "google.pubsub.v1";
    1481    fn full_name() -> ::prost::alloc::string::String {
    1482        "google.pubsub.v1.ListTopicsRequest".into()
    1483    }
    1484    fn type_url() -> ::prost::alloc::string::String {
    1485        "type.googleapis.com/google.pubsub.v1.ListTopicsRequest".into()
    1486    }
    1487}
    1488#[derive(Clone, PartialEq, ::prost::Message)]
    1489pub struct ListTopicsResponse {
    1490    #[prost(message, repeated, tag = "1")]
    1491    pub topics: ::prost::alloc::vec::Vec<Topic>,
    1492    #[prost(string, tag = "2")]
    1493    pub next_page_token: ::prost::alloc::string::String,
    1494}
    1495impl ::prost::Name for ListTopicsResponse {
    1496    const NAME: &'static str = "ListTopicsResponse";
    1497    const PACKAGE: &'static str = "google.pubsub.v1";
    1498    fn full_name() -> ::prost::alloc::string::String {
    1499        "google.pubsub.v1.ListTopicsResponse".into()
    1500    }
    1501    fn type_url() -> ::prost::alloc::string::String {
    1502        "type.googleapis.com/google.pubsub.v1.ListTopicsResponse".into()
    1503    }
    1504}
    1505#[derive(Clone, PartialEq, ::prost::Message)]
    1506pub struct ListTopicSubscriptionsRequest {
    1507    #[prost(string, tag = "1")]
    1508    pub topic: ::prost::alloc::string::String,
    1509    #[prost(int32, tag = "2")]
    1510    pub page_size: i32,
    1511    #[prost(string, tag = "3")]
    1512    pub page_token: ::prost::alloc::string::String,
    1513}
    1514impl ::prost::Name for ListTopicSubscriptionsRequest {
    1515    const NAME: &'static str = "ListTopicSubscriptionsRequest";
    1516    const PACKAGE: &'static str = "google.pubsub.v1";
    1517    fn full_name() -> ::prost::alloc::string::String {
    1518        "google.pubsub.v1.ListTopicSubscriptionsRequest".into()
    1519    }
    1520    fn type_url() -> ::prost::alloc::string::String {
    1521        "type.googleapis.com/google.pubsub.v1.ListTopicSubscriptionsRequest".into()
    1522    }
    1523}
    1524#[derive(Clone, PartialEq, ::prost::Message)]
    1525pub struct ListTopicSubscriptionsResponse {
    1526    #[prost(string, repeated, tag = "1")]
    1527    pub subscriptions: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    1528    #[prost(string, tag = "2")]
    1529    pub next_page_token: ::prost::alloc::string::String,
    1530}
    1531impl ::prost::Name for ListTopicSubscriptionsResponse {
    1532    const NAME: &'static str = "ListTopicSubscriptionsResponse";
    1533    const PACKAGE: &'static str = "google.pubsub.v1";
    1534    fn full_name() -> ::prost::alloc::string::String {
    1535        "google.pubsub.v1.ListTopicSubscriptionsResponse".into()
    1536    }
    1537    fn type_url() -> ::prost::alloc::string::String {
    1538        "type.googleapis.com/google.pubsub.v1.ListTopicSubscriptionsResponse".into()
    1539    }
    1540}
    1541#[derive(Clone, PartialEq, ::prost::Message)]
    1542pub struct ListTopicSnapshotsRequest {
    1543    #[prost(string, tag = "1")]
    1544    pub topic: ::prost::alloc::string::String,
    1545    #[prost(int32, tag = "2")]
    1546    pub page_size: i32,
    1547    #[prost(string, tag = "3")]
    1548    pub page_token: ::prost::alloc::string::String,
    1549}
    1550impl ::prost::Name for ListTopicSnapshotsRequest {
    1551    const NAME: &'static str = "ListTopicSnapshotsRequest";
    1552    const PACKAGE: &'static str = "google.pubsub.v1";
    1553    fn full_name() -> ::prost::alloc::string::String {
    1554        "google.pubsub.v1.ListTopicSnapshotsRequest".into()
    1555    }
    1556    fn type_url() -> ::prost::alloc::string::String {
    1557        "type.googleapis.com/google.pubsub.v1.ListTopicSnapshotsRequest".into()
    1558    }
    1559}
    1560#[derive(Clone, PartialEq, ::prost::Message)]
    1561pub struct ListTopicSnapshotsResponse {
    1562    #[prost(string, repeated, tag = "1")]
    1563    pub snapshots: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    1564    #[prost(string, tag = "2")]
    1565    pub next_page_token: ::prost::alloc::string::String,
    1566}
    1567impl ::prost::Name for ListTopicSnapshotsResponse {
    1568    const NAME: &'static str = "ListTopicSnapshotsResponse";
    1569    const PACKAGE: &'static str = "google.pubsub.v1";
    1570    fn full_name() -> ::prost::alloc::string::String {
    1571        "google.pubsub.v1.ListTopicSnapshotsResponse".into()
    1572    }
    1573    fn type_url() -> ::prost::alloc::string::String {
    1574        "type.googleapis.com/google.pubsub.v1.ListTopicSnapshotsResponse".into()
    1575    }
    1576}
    1577#[derive(Clone, PartialEq, ::prost::Message)]
    1578pub struct DeleteTopicRequest {
    1579    #[prost(string, tag = "1")]
    1580    pub topic: ::prost::alloc::string::String,
    1581}
    1582impl ::prost::Name for DeleteTopicRequest {
    1583    const NAME: &'static str = "DeleteTopicRequest";
    1584    const PACKAGE: &'static str = "google.pubsub.v1";
    1585    fn full_name() -> ::prost::alloc::string::String {
    1586        "google.pubsub.v1.DeleteTopicRequest".into()
    1587    }
    1588    fn type_url() -> ::prost::alloc::string::String {
    1589        "type.googleapis.com/google.pubsub.v1.DeleteTopicRequest".into()
    1590    }
    1591}
    1592#[derive(Clone, PartialEq, ::prost::Message)]
    1593pub struct DetachSubscriptionRequest {
    1594    #[prost(string, tag = "1")]
    1595    pub subscription: ::prost::alloc::string::String,
    1596}
    1597impl ::prost::Name for DetachSubscriptionRequest {
    1598    const NAME: &'static str = "DetachSubscriptionRequest";
    1599    const PACKAGE: &'static str = "google.pubsub.v1";
    1600    fn full_name() -> ::prost::alloc::string::String {
    1601        "google.pubsub.v1.DetachSubscriptionRequest".into()
    1602    }
    1603    fn type_url() -> ::prost::alloc::string::String {
    1604        "type.googleapis.com/google.pubsub.v1.DetachSubscriptionRequest".into()
    1605    }
    1606}
    1607#[derive(Clone, Copy, PartialEq, ::prost::Message)]
    1608pub struct DetachSubscriptionResponse {}
    1609impl ::prost::Name for DetachSubscriptionResponse {
    1610    const NAME: &'static str = "DetachSubscriptionResponse";
    1611    const PACKAGE: &'static str = "google.pubsub.v1";
    1612    fn full_name() -> ::prost::alloc::string::String {
    1613        "google.pubsub.v1.DetachSubscriptionResponse".into()
    1614    }
    1615    fn type_url() -> ::prost::alloc::string::String {
    1616        "type.googleapis.com/google.pubsub.v1.DetachSubscriptionResponse".into()
    1617    }
    1618}
    1619#[derive(Clone, PartialEq, ::prost::Message)]
    1620pub struct Subscription {
    1621    #[prost(string, tag = "1")]
    1622    pub name: ::prost::alloc::string::String,
    1623    #[prost(string, tag = "2")]
    1624    pub topic: ::prost::alloc::string::String,
    1625    #[prost(message, optional, tag = "4")]
    1626    pub push_config: ::core::option::Option<PushConfig>,
    1627    #[prost(message, optional, tag = "18")]
    1628    pub bigquery_config: ::core::option::Option<BigQueryConfig>,
    1629    #[prost(message, optional, tag = "22")]
    1630    pub cloud_storage_config: ::core::option::Option<CloudStorageConfig>,
    1631    #[prost(int32, tag = "5")]
    1632    pub ack_deadline_seconds: i32,
    1633    #[prost(bool, tag = "7")]
    1634    pub retain_acked_messages: bool,
    1635    #[prost(message, optional, tag = "8")]
    1636    pub message_retention_duration: ::core::option::Option<::prost_types::Duration>,
    1637    #[prost(map = "string, string", tag = "9")]
    1638    pub labels: ::std::collections::HashMap<
    1639        ::prost::alloc::string::String,
    1640        ::prost::alloc::string::String,
    1641    >,
    1642    #[prost(bool, tag = "10")]
    1643    pub enable_message_ordering: bool,
    1644    #[prost(message, optional, tag = "11")]
    1645    pub expiration_policy: ::core::option::Option<ExpirationPolicy>,
    1646    #[prost(string, tag = "12")]
    1647    pub filter: ::prost::alloc::string::String,
    1648    #[prost(message, optional, tag = "13")]
    1649    pub dead_letter_policy: ::core::option::Option<DeadLetterPolicy>,
    1650    #[prost(message, optional, tag = "14")]
    1651    pub retry_policy: ::core::option::Option<RetryPolicy>,
    1652    #[prost(bool, tag = "15")]
    1653    pub detached: bool,
    1654    #[prost(bool, tag = "16")]
    1655    pub enable_exactly_once_delivery: bool,
    1656    #[prost(message, optional, tag = "17")]
    1657    pub topic_message_retention_duration: ::core::option::Option<
    1658        ::prost_types::Duration,
    1659    >,
    1660    #[prost(enumeration = "subscription::State", tag = "19")]
    1661    pub state: i32,
    1662    #[prost(message, optional, tag = "23")]
    1663    pub analytics_hub_subscription_info: ::core::option::Option<
    1664        subscription::AnalyticsHubSubscriptionInfo,
    1665    >,
    1666    #[prost(message, repeated, tag = "25")]
    1667    pub message_transforms: ::prost::alloc::vec::Vec<MessageTransform>,
    1668    #[prost(map = "string, string", tag = "26")]
    1669    pub tags: ::std::collections::HashMap<
    1670        ::prost::alloc::string::String,
    1671        ::prost::alloc::string::String,
    1672    >,
    1673}
    1674/// Nested message and enum types in `Subscription`.
    1675pub mod subscription {
    1676    #[derive(Clone, PartialEq, ::prost::Message)]
    1677    pub struct AnalyticsHubSubscriptionInfo {
    1678        #[prost(string, tag = "1")]
    1679        pub listing: ::prost::alloc::string::String,
    1680        #[prost(string, tag = "2")]
    1681        pub subscription: ::prost::alloc::string::String,
    1682    }
    1683    impl ::prost::Name for AnalyticsHubSubscriptionInfo {
    1684        const NAME: &'static str = "AnalyticsHubSubscriptionInfo";
    1685        const PACKAGE: &'static str = "google.pubsub.v1";
    1686        fn full_name() -> ::prost::alloc::string::String {
    1687            "google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo".into()
    1688        }
    1689        fn type_url() -> ::prost::alloc::string::String {
    1690            "type.googleapis.com/google.pubsub.v1.Subscription.AnalyticsHubSubscriptionInfo"
    1691                .into()
    1692        }
    1693    }
    1694    #[derive(
    1695        Clone,
    1696        Copy,
    1697        Debug,
    1698        PartialEq,
    1699        Eq,
    1700        Hash,
    1701        PartialOrd,
    1702        Ord,
    1703        ::prost::Enumeration
    1704    )]
    1705    #[repr(i32)]
    1706    pub enum State {
    1707        Unspecified = 0,
    1708        Active = 1,
    1709        ResourceError = 2,
    1710    }
    1711    impl State {
    1712        /// String value of the enum field names used in the ProtoBuf definition.
    1713        ///
    1714        /// The values are not transformed in any way and thus are considered stable
    1715        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    1716        pub fn as_str_name(&self) -> &'static str {
    1717            match self {
    1718                Self::Unspecified => "STATE_UNSPECIFIED",
    1719                Self::Active => "ACTIVE",
    1720                Self::ResourceError => "RESOURCE_ERROR",
    1721            }
    1722        }
    1723        /// Creates an enum from field names used in the ProtoBuf definition.
    1724        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    1725            match value {
    1726                "STATE_UNSPECIFIED" => Some(Self::Unspecified),
    1727                "ACTIVE" => Some(Self::Active),
    1728                "RESOURCE_ERROR" => Some(Self::ResourceError),
    1729                _ => None,
    1730            }
    1731        }
    1732    }
    1733}
    1734impl ::prost::Name for Subscription {
    1735    const NAME: &'static str = "Subscription";
    1736    const PACKAGE: &'static str = "google.pubsub.v1";
    1737    fn full_name() -> ::prost::alloc::string::String {
    1738        "google.pubsub.v1.Subscription".into()
    1739    }
    1740    fn type_url() -> ::prost::alloc::string::String {
    1741        "type.googleapis.com/google.pubsub.v1.Subscription".into()
    1742    }
    1743}
    1744#[derive(Clone, Copy, PartialEq, ::prost::Message)]
    1745pub struct RetryPolicy {
    1746    #[prost(message, optional, tag = "1")]
    1747    pub minimum_backoff: ::core::option::Option<::prost_types::Duration>,
    1748    #[prost(message, optional, tag = "2")]
    1749    pub maximum_backoff: ::core::option::Option<::prost_types::Duration>,
    1750}
    1751impl ::prost::Name for RetryPolicy {
    1752    const NAME: &'static str = "RetryPolicy";
    1753    const PACKAGE: &'static str = "google.pubsub.v1";
    1754    fn full_name() -> ::prost::alloc::string::String {
    1755        "google.pubsub.v1.RetryPolicy".into()
    1756    }
    1757    fn type_url() -> ::prost::alloc::string::String {
    1758        "type.googleapis.com/google.pubsub.v1.RetryPolicy".into()
    1759    }
    1760}
    1761#[derive(Clone, PartialEq, ::prost::Message)]
    1762pub struct DeadLetterPolicy {
    1763    #[prost(string, tag = "1")]
    1764    pub dead_letter_topic: ::prost::alloc::string::String,
    1765    #[prost(int32, tag = "2")]
    1766    pub max_delivery_attempts: i32,
    1767}
    1768impl ::prost::Name for DeadLetterPolicy {
    1769    const NAME: &'static str = "DeadLetterPolicy";
    1770    const PACKAGE: &'static str = "google.pubsub.v1";
    1771    fn full_name() -> ::prost::alloc::string::String {
    1772        "google.pubsub.v1.DeadLetterPolicy".into()
    1773    }
    1774    fn type_url() -> ::prost::alloc::string::String {
    1775        "type.googleapis.com/google.pubsub.v1.DeadLetterPolicy".into()
    1776    }
    1777}
    1778#[derive(Clone, Copy, PartialEq, ::prost::Message)]
    1779pub struct ExpirationPolicy {
    1780    #[prost(message, optional, tag = "1")]
    1781    pub ttl: ::core::option::Option<::prost_types::Duration>,
    1782}
    1783impl ::prost::Name for ExpirationPolicy {
    1784    const NAME: &'static str = "ExpirationPolicy";
    1785    const PACKAGE: &'static str = "google.pubsub.v1";
    1786    fn full_name() -> ::prost::alloc::string::String {
    1787        "google.pubsub.v1.ExpirationPolicy".into()
    1788    }
    1789    fn type_url() -> ::prost::alloc::string::String {
    1790        "type.googleapis.com/google.pubsub.v1.ExpirationPolicy".into()
    1791    }
    1792}
    1793#[derive(Clone, PartialEq, ::prost::Message)]
    1794pub struct PushConfig {
    1795    #[prost(string, tag = "1")]
    1796    pub push_endpoint: ::prost::alloc::string::String,
    1797    #[prost(map = "string, string", tag = "2")]
    1798    pub attributes: ::std::collections::HashMap<
    1799        ::prost::alloc::string::String,
    1800        ::prost::alloc::string::String,
    1801    >,
    1802    #[prost(oneof = "push_config::AuthenticationMethod", tags = "3")]
    1803    pub authentication_method: ::core::option::Option<push_config::AuthenticationMethod>,
    1804    #[prost(oneof = "push_config::Wrapper", tags = "4, 5")]
    1805    pub wrapper: ::core::option::Option<push_config::Wrapper>,
    1806}
    1807/// Nested message and enum types in `PushConfig`.
    1808pub mod push_config {
    1809    #[derive(Clone, PartialEq, ::prost::Message)]
    1810    pub struct OidcToken {
    1811        #[prost(string, tag = "1")]
    1812        pub service_account_email: ::prost::alloc::string::String,
    1813        #[prost(string, tag = "2")]
    1814        pub audience: ::prost::alloc::string::String,
    1815    }
    1816    impl ::prost::Name for OidcToken {
    1817        const NAME: &'static str = "OidcToken";
    1818        const PACKAGE: &'static str = "google.pubsub.v1";
    1819        fn full_name() -> ::prost::alloc::string::String {
    1820            "google.pubsub.v1.PushConfig.OidcToken".into()
    1821        }
    1822        fn type_url() -> ::prost::alloc::string::String {
    1823            "type.googleapis.com/google.pubsub.v1.PushConfig.OidcToken".into()
    1824        }
    1825    }
    1826    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    1827    pub struct PubsubWrapper {}
    1828    impl ::prost::Name for PubsubWrapper {
    1829        const NAME: &'static str = "PubsubWrapper";
    1830        const PACKAGE: &'static str = "google.pubsub.v1";
    1831        fn full_name() -> ::prost::alloc::string::String {
    1832            "google.pubsub.v1.PushConfig.PubsubWrapper".into()
    1833        }
    1834        fn type_url() -> ::prost::alloc::string::String {
    1835            "type.googleapis.com/google.pubsub.v1.PushConfig.PubsubWrapper".into()
    1836        }
    1837    }
    1838    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    1839    pub struct NoWrapper {
    1840        #[prost(bool, tag = "1")]
    1841        pub write_metadata: bool,
    1842    }
    1843    impl ::prost::Name for NoWrapper {
    1844        const NAME: &'static str = "NoWrapper";
    1845        const PACKAGE: &'static str = "google.pubsub.v1";
    1846        fn full_name() -> ::prost::alloc::string::String {
    1847            "google.pubsub.v1.PushConfig.NoWrapper".into()
    1848        }
    1849        fn type_url() -> ::prost::alloc::string::String {
    1850            "type.googleapis.com/google.pubsub.v1.PushConfig.NoWrapper".into()
    1851        }
    1852    }
    1853    #[derive(Clone, PartialEq, ::prost::Oneof)]
    1854    pub enum AuthenticationMethod {
    1855        #[prost(message, tag = "3")]
    1856        OidcToken(OidcToken),
    1857    }
    1858    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
    1859    pub enum Wrapper {
    1860        #[prost(message, tag = "4")]
    1861        PubsubWrapper(PubsubWrapper),
    1862        #[prost(message, tag = "5")]
    1863        NoWrapper(NoWrapper),
    1864    }
    1865}
    1866impl ::prost::Name for PushConfig {
    1867    const NAME: &'static str = "PushConfig";
    1868    const PACKAGE: &'static str = "google.pubsub.v1";
    1869    fn full_name() -> ::prost::alloc::string::String {
    1870        "google.pubsub.v1.PushConfig".into()
    1871    }
    1872    fn type_url() -> ::prost::alloc::string::String {
    1873        "type.googleapis.com/google.pubsub.v1.PushConfig".into()
    1874    }
    1875}
    1876#[derive(Clone, PartialEq, ::prost::Message)]
    1877pub struct BigQueryConfig {
    1878    #[prost(string, tag = "1")]
    1879    pub table: ::prost::alloc::string::String,
    1880    #[prost(bool, tag = "2")]
    1881    pub use_topic_schema: bool,
    1882    #[prost(bool, tag = "3")]
    1883    pub write_metadata: bool,
    1884    #[prost(bool, tag = "4")]
    1885    pub drop_unknown_fields: bool,
    1886    #[prost(enumeration = "big_query_config::State", tag = "5")]
    1887    pub state: i32,
    1888    #[prost(bool, tag = "6")]
    1889    pub use_table_schema: bool,
    1890    #[prost(string, tag = "7")]
    1891    pub service_account_email: ::prost::alloc::string::String,
    1892}
    1893/// Nested message and enum types in `BigQueryConfig`.
    1894pub mod big_query_config {
    1895    #[derive(
    1896        Clone,
    1897        Copy,
    1898        Debug,
    1899        PartialEq,
    1900        Eq,
    1901        Hash,
    1902        PartialOrd,
    1903        Ord,
    1904        ::prost::Enumeration
    1905    )]
    1906    #[repr(i32)]
    1907    pub enum State {
    1908        Unspecified = 0,
    1909        Active = 1,
    1910        PermissionDenied = 2,
    1911        NotFound = 3,
    1912        SchemaMismatch = 4,
    1913        InTransitLocationRestriction = 5,
    1914    }
    1915    impl State {
    1916        /// String value of the enum field names used in the ProtoBuf definition.
    1917        ///
    1918        /// The values are not transformed in any way and thus are considered stable
    1919        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    1920        pub fn as_str_name(&self) -> &'static str {
    1921            match self {
    1922                Self::Unspecified => "STATE_UNSPECIFIED",
    1923                Self::Active => "ACTIVE",
    1924                Self::PermissionDenied => "PERMISSION_DENIED",
    1925                Self::NotFound => "NOT_FOUND",
    1926                Self::SchemaMismatch => "SCHEMA_MISMATCH",
    1927                Self::InTransitLocationRestriction => "IN_TRANSIT_LOCATION_RESTRICTION",
    1928            }
    1929        }
    1930        /// Creates an enum from field names used in the ProtoBuf definition.
    1931        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    1932            match value {
    1933                "STATE_UNSPECIFIED" => Some(Self::Unspecified),
    1934                "ACTIVE" => Some(Self::Active),
    1935                "PERMISSION_DENIED" => Some(Self::PermissionDenied),
    1936                "NOT_FOUND" => Some(Self::NotFound),
    1937                "SCHEMA_MISMATCH" => Some(Self::SchemaMismatch),
    1938                "IN_TRANSIT_LOCATION_RESTRICTION" => {
    1939                    Some(Self::InTransitLocationRestriction)
    1940                }
    1941                _ => None,
    1942            }
    1943        }
    1944    }
    1945}
    1946impl ::prost::Name for BigQueryConfig {
    1947    const NAME: &'static str = "BigQueryConfig";
    1948    const PACKAGE: &'static str = "google.pubsub.v1";
    1949    fn full_name() -> ::prost::alloc::string::String {
    1950        "google.pubsub.v1.BigQueryConfig".into()
    1951    }
    1952    fn type_url() -> ::prost::alloc::string::String {
    1953        "type.googleapis.com/google.pubsub.v1.BigQueryConfig".into()
    1954    }
    1955}
    1956#[derive(Clone, PartialEq, ::prost::Message)]
    1957pub struct CloudStorageConfig {
    1958    #[prost(string, tag = "1")]
    1959    pub bucket: ::prost::alloc::string::String,
    1960    #[prost(string, tag = "2")]
    1961    pub filename_prefix: ::prost::alloc::string::String,
    1962    #[prost(string, tag = "3")]
    1963    pub filename_suffix: ::prost::alloc::string::String,
    1964    #[prost(string, tag = "10")]
    1965    pub filename_datetime_format: ::prost::alloc::string::String,
    1966    #[prost(message, optional, tag = "6")]
    1967    pub max_duration: ::core::option::Option<::prost_types::Duration>,
    1968    #[prost(int64, tag = "7")]
    1969    pub max_bytes: i64,
    1970    #[prost(int64, tag = "8")]
    1971    pub max_messages: i64,
    1972    #[prost(enumeration = "cloud_storage_config::State", tag = "9")]
    1973    pub state: i32,
    1974    #[prost(string, tag = "11")]
    1975    pub service_account_email: ::prost::alloc::string::String,
    1976    #[prost(oneof = "cloud_storage_config::OutputFormat", tags = "4, 5")]
    1977    pub output_format: ::core::option::Option<cloud_storage_config::OutputFormat>,
    1978}
    1979/// Nested message and enum types in `CloudStorageConfig`.
    1980pub mod cloud_storage_config {
    1981    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    1982    pub struct TextConfig {}
    1983    impl ::prost::Name for TextConfig {
    1984        const NAME: &'static str = "TextConfig";
    1985        const PACKAGE: &'static str = "google.pubsub.v1";
    1986        fn full_name() -> ::prost::alloc::string::String {
    1987            "google.pubsub.v1.CloudStorageConfig.TextConfig".into()
    1988        }
    1989        fn type_url() -> ::prost::alloc::string::String {
    1990            "type.googleapis.com/google.pubsub.v1.CloudStorageConfig.TextConfig".into()
    1991        }
    1992    }
    1993    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    1994    pub struct AvroConfig {
    1995        #[prost(bool, tag = "1")]
    1996        pub write_metadata: bool,
    1997        #[prost(bool, tag = "2")]
    1998        pub use_topic_schema: bool,
    1999    }
    2000    impl ::prost::Name for AvroConfig {
    2001        const NAME: &'static str = "AvroConfig";
    2002        const PACKAGE: &'static str = "google.pubsub.v1";
    2003        fn full_name() -> ::prost::alloc::string::String {
    2004            "google.pubsub.v1.CloudStorageConfig.AvroConfig".into()
    2005        }
    2006        fn type_url() -> ::prost::alloc::string::String {
    2007            "type.googleapis.com/google.pubsub.v1.CloudStorageConfig.AvroConfig".into()
    2008        }
    2009    }
    2010    #[derive(
    2011        Clone,
    2012        Copy,
    2013        Debug,
    2014        PartialEq,
    2015        Eq,
    2016        Hash,
    2017        PartialOrd,
    2018        Ord,
    2019        ::prost::Enumeration
    2020    )]
    2021    #[repr(i32)]
    2022    pub enum State {
    2023        Unspecified = 0,
    2024        Active = 1,
    2025        PermissionDenied = 2,
    2026        NotFound = 3,
    2027        InTransitLocationRestriction = 4,
    2028        SchemaMismatch = 5,
    2029    }
    2030    impl State {
    2031        /// String value of the enum field names used in the ProtoBuf definition.
    2032        ///
    2033        /// The values are not transformed in any way and thus are considered stable
    2034        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    2035        pub fn as_str_name(&self) -> &'static str {
    2036            match self {
    2037                Self::Unspecified => "STATE_UNSPECIFIED",
    2038                Self::Active => "ACTIVE",
    2039                Self::PermissionDenied => "PERMISSION_DENIED",
    2040                Self::NotFound => "NOT_FOUND",
    2041                Self::InTransitLocationRestriction => "IN_TRANSIT_LOCATION_RESTRICTION",
    2042                Self::SchemaMismatch => "SCHEMA_MISMATCH",
    2043            }
    2044        }
    2045        /// Creates an enum from field names used in the ProtoBuf definition.
    2046        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
    2047            match value {
    2048                "STATE_UNSPECIFIED" => Some(Self::Unspecified),
    2049                "ACTIVE" => Some(Self::Active),
    2050                "PERMISSION_DENIED" => Some(Self::PermissionDenied),
    2051                "NOT_FOUND" => Some(Self::NotFound),
    2052                "IN_TRANSIT_LOCATION_RESTRICTION" => {
    2053                    Some(Self::InTransitLocationRestriction)
    2054                }
    2055                "SCHEMA_MISMATCH" => Some(Self::SchemaMismatch),
    2056                _ => None,
    2057            }
    2058        }
    2059    }
    2060    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
    2061    pub enum OutputFormat {
    2062        #[prost(message, tag = "4")]
    2063        TextConfig(TextConfig),
    2064        #[prost(message, tag = "5")]
    2065        AvroConfig(AvroConfig),
    2066    }
    2067}
    2068impl ::prost::Name for CloudStorageConfig {
    2069    const NAME: &'static str = "CloudStorageConfig";
    2070    const PACKAGE: &'static str = "google.pubsub.v1";
    2071    fn full_name() -> ::prost::alloc::string::String {
    2072        "google.pubsub.v1.CloudStorageConfig".into()
    2073    }
    2074    fn type_url() -> ::prost::alloc::string::String {
    2075        "type.googleapis.com/google.pubsub.v1.CloudStorageConfig".into()
    2076    }
    2077}
    2078#[derive(Clone, PartialEq, ::prost::Message)]
    2079pub struct ReceivedMessage {
    2080    #[prost(string, tag = "1")]
    2081    pub ack_id: ::prost::alloc::string::String,
    2082    #[prost(message, optional, tag = "2")]
    2083    pub message: ::core::option::Option<PubsubMessage>,
    2084    #[prost(int32, tag = "3")]
    2085    pub delivery_attempt: i32,
    2086}
    2087impl ::prost::Name for ReceivedMessage {
    2088    const NAME: &'static str = "ReceivedMessage";
    2089    const PACKAGE: &'static str = "google.pubsub.v1";
    2090    fn full_name() -> ::prost::alloc::string::String {
    2091        "google.pubsub.v1.ReceivedMessage".into()
    2092    }
    2093    fn type_url() -> ::prost::alloc::string::String {
    2094        "type.googleapis.com/google.pubsub.v1.ReceivedMessage".into()
    2095    }
    2096}
    2097#[derive(Clone, PartialEq, ::prost::Message)]
    2098pub struct GetSubscriptionRequest {
    2099    #[prost(string, tag = "1")]
    2100    pub subscription: ::prost::alloc::string::String,
    2101}
    2102impl ::prost::Name for GetSubscriptionRequest {
    2103    const NAME: &'static str = "GetSubscriptionRequest";
    2104    const PACKAGE: &'static str = "google.pubsub.v1";
    2105    fn full_name() -> ::prost::alloc::string::String {
    2106        "google.pubsub.v1.GetSubscriptionRequest".into()
    2107    }
    2108    fn type_url() -> ::prost::alloc::string::String {
    2109        "type.googleapis.com/google.pubsub.v1.GetSubscriptionRequest".into()
    2110    }
    2111}
    2112#[derive(Clone, PartialEq, ::prost::Message)]
    2113pub struct UpdateSubscriptionRequest {
    2114    #[prost(message, optional, tag = "1")]
    2115    pub subscription: ::core::option::Option<Subscription>,
    2116    #[prost(message, optional, tag = "2")]
    2117    pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
    2118}
    2119impl ::prost::Name for UpdateSubscriptionRequest {
    2120    const NAME: &'static str = "UpdateSubscriptionRequest";
    2121    const PACKAGE: &'static str = "google.pubsub.v1";
    2122    fn full_name() -> ::prost::alloc::string::String {
    2123        "google.pubsub.v1.UpdateSubscriptionRequest".into()
    2124    }
    2125    fn type_url() -> ::prost::alloc::string::String {
    2126        "type.googleapis.com/google.pubsub.v1.UpdateSubscriptionRequest".into()
    2127    }
    2128}
    2129#[derive(Clone, PartialEq, ::prost::Message)]
    2130pub struct ListSubscriptionsRequest {
    2131    #[prost(string, tag = "1")]
    2132    pub project: ::prost::alloc::string::String,
    2133    #[prost(int32, tag = "2")]
    2134    pub page_size: i32,
    2135    #[prost(string, tag = "3")]
    2136    pub page_token: ::prost::alloc::string::String,
    2137}
    2138impl ::prost::Name for ListSubscriptionsRequest {
    2139    const NAME: &'static str = "ListSubscriptionsRequest";
    2140    const PACKAGE: &'static str = "google.pubsub.v1";
    2141    fn full_name() -> ::prost::alloc::string::String {
    2142        "google.pubsub.v1.ListSubscriptionsRequest".into()
    2143    }
    2144    fn type_url() -> ::prost::alloc::string::String {
    2145        "type.googleapis.com/google.pubsub.v1.ListSubscriptionsRequest".into()
    2146    }
    2147}
    2148#[derive(Clone, PartialEq, ::prost::Message)]
    2149pub struct ListSubscriptionsResponse {
    2150    #[prost(message, repeated, tag = "1")]
    2151    pub subscriptions: ::prost::alloc::vec::Vec<Subscription>,
    2152    #[prost(string, tag = "2")]
    2153    pub next_page_token: ::prost::alloc::string::String,
    2154}
    2155impl ::prost::Name for ListSubscriptionsResponse {
    2156    const NAME: &'static str = "ListSubscriptionsResponse";
    2157    const PACKAGE: &'static str = "google.pubsub.v1";
    2158    fn full_name() -> ::prost::alloc::string::String {
    2159        "google.pubsub.v1.ListSubscriptionsResponse".into()
    2160    }
    2161    fn type_url() -> ::prost::alloc::string::String {
    2162        "type.googleapis.com/google.pubsub.v1.ListSubscriptionsResponse".into()
    2163    }
    2164}
    2165#[derive(Clone, PartialEq, ::prost::Message)]
    2166pub struct DeleteSubscriptionRequest {
    2167    #[prost(string, tag = "1")]
    2168    pub subscription: ::prost::alloc::string::String,
    2169}
    2170impl ::prost::Name for DeleteSubscriptionRequest {
    2171    const NAME: &'static str = "DeleteSubscriptionRequest";
    2172    const PACKAGE: &'static str = "google.pubsub.v1";
    2173    fn full_name() -> ::prost::alloc::string::String {
    2174        "google.pubsub.v1.DeleteSubscriptionRequest".into()
    2175    }
    2176    fn type_url() -> ::prost::alloc::string::String {
    2177        "type.googleapis.com/google.pubsub.v1.DeleteSubscriptionRequest".into()
    2178    }
    2179}
    2180#[derive(Clone, PartialEq, ::prost::Message)]
    2181pub struct ModifyPushConfigRequest {
    2182    #[prost(string, tag = "1")]
    2183    pub subscription: ::prost::alloc::string::String,
    2184    #[prost(message, optional, tag = "2")]
    2185    pub push_config: ::core::option::Option<PushConfig>,
    2186}
    2187impl ::prost::Name for ModifyPushConfigRequest {
    2188    const NAME: &'static str = "ModifyPushConfigRequest";
    2189    const PACKAGE: &'static str = "google.pubsub.v1";
    2190    fn full_name() -> ::prost::alloc::string::String {
    2191        "google.pubsub.v1.ModifyPushConfigRequest".into()
    2192    }
    2193    fn type_url() -> ::prost::alloc::string::String {
    2194        "type.googleapis.com/google.pubsub.v1.ModifyPushConfigRequest".into()
    2195    }
    2196}
    2197#[derive(Clone, PartialEq, ::prost::Message)]
    2198pub struct PullRequest {
    2199    #[prost(string, tag = "1")]
    2200    pub subscription: ::prost::alloc::string::String,
    2201    #[deprecated]
    2202    #[prost(bool, tag = "2")]
    2203    pub return_immediately: bool,
    2204    #[prost(int32, tag = "3")]
    2205    pub max_messages: i32,
    2206}
    2207impl ::prost::Name for PullRequest {
    2208    const NAME: &'static str = "PullRequest";
    2209    const PACKAGE: &'static str = "google.pubsub.v1";
    2210    fn full_name() -> ::prost::alloc::string::String {
    2211        "google.pubsub.v1.PullRequest".into()
    2212    }
    2213    fn type_url() -> ::prost::alloc::string::String {
    2214        "type.googleapis.com/google.pubsub.v1.PullRequest".into()
    2215    }
    2216}
    2217#[derive(Clone, PartialEq, ::prost::Message)]
    2218pub struct PullResponse {
    2219    #[prost(message, repeated, tag = "1")]
    2220    pub received_messages: ::prost::alloc::vec::Vec<ReceivedMessage>,
    2221}
    2222impl ::prost::Name for PullResponse {
    2223    const NAME: &'static str = "PullResponse";
    2224    const PACKAGE: &'static str = "google.pubsub.v1";
    2225    fn full_name() -> ::prost::alloc::string::String {
    2226        "google.pubsub.v1.PullResponse".into()
    2227    }
    2228    fn type_url() -> ::prost::alloc::string::String {
    2229        "type.googleapis.com/google.pubsub.v1.PullResponse".into()
    2230    }
    2231}
    2232#[derive(Clone, PartialEq, ::prost::Message)]
    2233pub struct ModifyAckDeadlineRequest {
    2234    #[prost(string, tag = "1")]
    2235    pub subscription: ::prost::alloc::string::String,
    2236    #[prost(string, repeated, tag = "4")]
    2237    pub ack_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    2238    #[prost(int32, tag = "3")]
    2239    pub ack_deadline_seconds: i32,
    2240}
    2241impl ::prost::Name for ModifyAckDeadlineRequest {
    2242    const NAME: &'static str = "ModifyAckDeadlineRequest";
    2243    const PACKAGE: &'static str = "google.pubsub.v1";
    2244    fn full_name() -> ::prost::alloc::string::String {
    2245        "google.pubsub.v1.ModifyAckDeadlineRequest".into()
    2246    }
    2247    fn type_url() -> ::prost::alloc::string::String {
    2248        "type.googleapis.com/google.pubsub.v1.ModifyAckDeadlineRequest".into()
    2249    }
    2250}
    2251#[derive(Clone, PartialEq, ::prost::Message)]
    2252pub struct AcknowledgeRequest {
    2253    #[prost(string, tag = "1")]
    2254    pub subscription: ::prost::alloc::string::String,
    2255    #[prost(string, repeated, tag = "2")]
    2256    pub ack_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    2257}
    2258impl ::prost::Name for AcknowledgeRequest {
    2259    const NAME: &'static str = "AcknowledgeRequest";
    2260    const PACKAGE: &'static str = "google.pubsub.v1";
    2261    fn full_name() -> ::prost::alloc::string::String {
    2262        "google.pubsub.v1.AcknowledgeRequest".into()
    2263    }
    2264    fn type_url() -> ::prost::alloc::string::String {
    2265        "type.googleapis.com/google.pubsub.v1.AcknowledgeRequest".into()
    2266    }
    2267}
    2268#[derive(Clone, PartialEq, ::prost::Message)]
    2269pub struct StreamingPullRequest {
    2270    #[prost(string, tag = "1")]
    2271    pub subscription: ::prost::alloc::string::String,
    2272    #[prost(string, repeated, tag = "2")]
    2273    pub ack_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    2274    #[prost(int32, repeated, packed = "false", tag = "3")]
    2275    pub modify_deadline_seconds: ::prost::alloc::vec::Vec<i32>,
    2276    #[prost(string, repeated, tag = "4")]
    2277    pub modify_deadline_ack_ids: ::prost::alloc::vec::Vec<
    2278        ::prost::alloc::string::String,
    2279    >,
    2280    #[prost(int32, tag = "5")]
    2281    pub stream_ack_deadline_seconds: i32,
    2282    #[prost(string, tag = "6")]
    2283    pub client_id: ::prost::alloc::string::String,
    2284    #[prost(int64, tag = "7")]
    2285    pub max_outstanding_messages: i64,
    2286    #[prost(int64, tag = "8")]
    2287    pub max_outstanding_bytes: i64,
    2288    #[prost(int64, tag = "10")]
    2289    pub protocol_version: i64,
    2290}
    2291impl ::prost::Name for StreamingPullRequest {
    2292    const NAME: &'static str = "StreamingPullRequest";
    2293    const PACKAGE: &'static str = "google.pubsub.v1";
    2294    fn full_name() -> ::prost::alloc::string::String {
    2295        "google.pubsub.v1.StreamingPullRequest".into()
    2296    }
    2297    fn type_url() -> ::prost::alloc::string::String {
    2298        "type.googleapis.com/google.pubsub.v1.StreamingPullRequest".into()
    2299    }
    2300}
    2301#[derive(Clone, PartialEq, ::prost::Message)]
    2302pub struct StreamingPullResponse {
    2303    #[prost(message, repeated, tag = "1")]
    2304    pub received_messages: ::prost::alloc::vec::Vec<ReceivedMessage>,
    2305    #[prost(message, optional, tag = "5")]
    2306    pub acknowledge_confirmation: ::core::option::Option<
    2307        streaming_pull_response::AcknowledgeConfirmation,
    2308    >,
    2309    #[prost(message, optional, tag = "3")]
    2310    pub modify_ack_deadline_confirmation: ::core::option::Option<
    2311        streaming_pull_response::ModifyAckDeadlineConfirmation,
    2312    >,
    2313    #[prost(message, optional, tag = "4")]
    2314    pub subscription_properties: ::core::option::Option<
    2315        streaming_pull_response::SubscriptionProperties,
    2316    >,
    2317}
    2318/// Nested message and enum types in `StreamingPullResponse`.
    2319pub mod streaming_pull_response {
    2320    #[derive(Clone, PartialEq, ::prost::Message)]
    2321    pub struct AcknowledgeConfirmation {
    2322        #[prost(string, repeated, tag = "1")]
    2323        pub ack_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    2324        #[prost(string, repeated, tag = "2")]
    2325        pub invalid_ack_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    2326        #[prost(string, repeated, tag = "3")]
    2327        pub unordered_ack_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    2328        #[prost(string, repeated, tag = "4")]
    2329        pub temporary_failed_ack_ids: ::prost::alloc::vec::Vec<
    2330            ::prost::alloc::string::String,
    2331        >,
    2332    }
    2333    impl ::prost::Name for AcknowledgeConfirmation {
    2334        const NAME: &'static str = "AcknowledgeConfirmation";
    2335        const PACKAGE: &'static str = "google.pubsub.v1";
    2336        fn full_name() -> ::prost::alloc::string::String {
    2337            "google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation".into()
    2338        }
    2339        fn type_url() -> ::prost::alloc::string::String {
    2340            "type.googleapis.com/google.pubsub.v1.StreamingPullResponse.AcknowledgeConfirmation"
    2341                .into()
    2342        }
    2343    }
    2344    #[derive(Clone, PartialEq, ::prost::Message)]
    2345    pub struct ModifyAckDeadlineConfirmation {
    2346        #[prost(string, repeated, tag = "1")]
    2347        pub ack_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    2348        #[prost(string, repeated, tag = "2")]
    2349        pub invalid_ack_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    2350        #[prost(string, repeated, tag = "3")]
    2351        pub temporary_failed_ack_ids: ::prost::alloc::vec::Vec<
    2352            ::prost::alloc::string::String,
    2353        >,
    2354    }
    2355    impl ::prost::Name for ModifyAckDeadlineConfirmation {
    2356        const NAME: &'static str = "ModifyAckDeadlineConfirmation";
    2357        const PACKAGE: &'static str = "google.pubsub.v1";
    2358        fn full_name() -> ::prost::alloc::string::String {
    2359            "google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation".into()
    2360        }
    2361        fn type_url() -> ::prost::alloc::string::String {
    2362            "type.googleapis.com/google.pubsub.v1.StreamingPullResponse.ModifyAckDeadlineConfirmation"
    2363                .into()
    2364        }
    2365    }
    2366    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
    2367    pub struct SubscriptionProperties {
    2368        #[prost(bool, tag = "1")]
    2369        pub exactly_once_delivery_enabled: bool,
    2370        #[prost(bool, tag = "2")]
    2371        pub message_ordering_enabled: bool,
    2372    }
    2373    impl ::prost::Name for SubscriptionProperties {
    2374        const NAME: &'static str = "SubscriptionProperties";
    2375        const PACKAGE: &'static str = "google.pubsub.v1";
    2376        fn full_name() -> ::prost::alloc::string::String {
    2377            "google.pubsub.v1.StreamingPullResponse.SubscriptionProperties".into()
    2378        }
    2379        fn type_url() -> ::prost::alloc::string::String {
    2380            "type.googleapis.com/google.pubsub.v1.StreamingPullResponse.SubscriptionProperties"
    2381                .into()
    2382        }
    2383    }
    2384}
    2385impl ::prost::Name for StreamingPullResponse {
    2386    const NAME: &'static str = "StreamingPullResponse";
    2387    const PACKAGE: &'static str = "google.pubsub.v1";
    2388    fn full_name() -> ::prost::alloc::string::String {
    2389        "google.pubsub.v1.StreamingPullResponse".into()
    2390    }
    2391    fn type_url() -> ::prost::alloc::string::String {
    2392        "type.googleapis.com/google.pubsub.v1.StreamingPullResponse".into()
    2393    }
    2394}
    2395#[derive(Clone, PartialEq, ::prost::Message)]
    2396pub struct CreateSnapshotRequest {
    2397    #[prost(string, tag = "1")]
    2398    pub name: ::prost::alloc::string::String,
    2399    #[prost(string, tag = "2")]
    2400    pub subscription: ::prost::alloc::string::String,
    2401    #[prost(map = "string, string", tag = "3")]
    2402    pub labels: ::std::collections::HashMap<
    2403        ::prost::alloc::string::String,
    2404        ::prost::alloc::string::String,
    2405    >,
    2406    #[prost(map = "string, string", tag = "4")]
    2407    pub tags: ::std::collections::HashMap<
    2408        ::prost::alloc::string::String,
    2409        ::prost::alloc::string::String,
    2410    >,
    2411}
    2412impl ::prost::Name for CreateSnapshotRequest {
    2413    const NAME: &'static str = "CreateSnapshotRequest";
    2414    const PACKAGE: &'static str = "google.pubsub.v1";
    2415    fn full_name() -> ::prost::alloc::string::String {
    2416        "google.pubsub.v1.CreateSnapshotRequest".into()
    2417    }
    2418    fn type_url() -> ::prost::alloc::string::String {
    2419        "type.googleapis.com/google.pubsub.v1.CreateSnapshotRequest".into()
    2420    }
    2421}
    2422#[derive(Clone, PartialEq, ::prost::Message)]
    2423pub struct UpdateSnapshotRequest {
    2424    #[prost(message, optional, tag = "1")]
    2425    pub snapshot: ::core::option::Option<Snapshot>,
    2426    #[prost(message, optional, tag = "2")]
    2427    pub update_mask: ::core::option::Option<::prost_types::FieldMask>,
    2428}
    2429impl ::prost::Name for UpdateSnapshotRequest {
    2430    const NAME: &'static str = "UpdateSnapshotRequest";
    2431    const PACKAGE: &'static str = "google.pubsub.v1";
    2432    fn full_name() -> ::prost::alloc::string::String {
    2433        "google.pubsub.v1.UpdateSnapshotRequest".into()
    2434    }
    2435    fn type_url() -> ::prost::alloc::string::String {
    2436        "type.googleapis.com/google.pubsub.v1.UpdateSnapshotRequest".into()
    2437    }
    2438}
    2439#[derive(Clone, PartialEq, ::prost::Message)]
    2440pub struct Snapshot {
    2441    #[prost(string, tag = "1")]
    2442    pub name: ::prost::alloc::string::String,
    2443    #[prost(string, tag = "2")]
    2444    pub topic: ::prost::alloc::string::String,
    2445    #[prost(message, optional, tag = "3")]
    2446    pub expire_time: ::core::option::Option<::prost_types::Timestamp>,
    2447    #[prost(map = "string, string", tag = "4")]
    2448    pub labels: ::std::collections::HashMap<
    2449        ::prost::alloc::string::String,
    2450        ::prost::alloc::string::String,
    2451    >,
    2452}
    2453impl ::prost::Name for Snapshot {
    2454    const NAME: &'static str = "Snapshot";
    2455    const PACKAGE: &'static str = "google.pubsub.v1";
    2456    fn full_name() -> ::prost::alloc::string::String {
    2457        "google.pubsub.v1.Snapshot".into()
    2458    }
    2459    fn type_url() -> ::prost::alloc::string::String {
    2460        "type.googleapis.com/google.pubsub.v1.Snapshot".into()
    2461    }
    2462}
    2463#[derive(Clone, PartialEq, ::prost::Message)]
    2464pub struct GetSnapshotRequest {
    2465    #[prost(string, tag = "1")]
    2466    pub snapshot: ::prost::alloc::string::String,
    2467}
    2468impl ::prost::Name for GetSnapshotRequest {
    2469    const NAME: &'static str = "GetSnapshotRequest";
    2470    const PACKAGE: &'static str = "google.pubsub.v1";
    2471    fn full_name() -> ::prost::alloc::string::String {
    2472        "google.pubsub.v1.GetSnapshotRequest".into()
    2473    }
    2474    fn type_url() -> ::prost::alloc::string::String {
    2475        "type.googleapis.com/google.pubsub.v1.GetSnapshotRequest".into()
    2476    }
    2477}
    2478#[derive(Clone, PartialEq, ::prost::Message)]
    2479pub struct ListSnapshotsRequest {
    2480    #[prost(string, tag = "1")]
    2481    pub project: ::prost::alloc::string::String,
    2482    #[prost(int32, tag = "2")]
    2483    pub page_size: i32,
    2484    #[prost(string, tag = "3")]
    2485    pub page_token: ::prost::alloc::string::String,
    2486}
    2487impl ::prost::Name for ListSnapshotsRequest {
    2488    const NAME: &'static str = "ListSnapshotsRequest";
    2489    const PACKAGE: &'static str = "google.pubsub.v1";
    2490    fn full_name() -> ::prost::alloc::string::String {
    2491        "google.pubsub.v1.ListSnapshotsRequest".into()
    2492    }
    2493    fn type_url() -> ::prost::alloc::string::String {
    2494        "type.googleapis.com/google.pubsub.v1.ListSnapshotsRequest".into()
    2495    }
    2496}
    2497#[derive(Clone, PartialEq, ::prost::Message)]
    2498pub struct ListSnapshotsResponse {
    2499    #[prost(message, repeated, tag = "1")]
    2500    pub snapshots: ::prost::alloc::vec::Vec<Snapshot>,
    2501    #[prost(string, tag = "2")]
    2502    pub next_page_token: ::prost::alloc::string::String,
    2503}
    2504impl ::prost::Name for ListSnapshotsResponse {
    2505    const NAME: &'static str = "ListSnapshotsResponse";
    2506    const PACKAGE: &'static str = "google.pubsub.v1";
    2507    fn full_name() -> ::prost::alloc::string::String {
    2508        "google.pubsub.v1.ListSnapshotsResponse".into()
    2509    }
    2510    fn type_url() -> ::prost::alloc::string::String {
    2511        "type.googleapis.com/google.pubsub.v1.ListSnapshotsResponse".into()
    2512    }
    2513}
    2514#[derive(Clone, PartialEq, ::prost::Message)]
    2515pub struct DeleteSnapshotRequest {
    2516    #[prost(string, tag = "1")]
    2517    pub snapshot: ::prost::alloc::string::String,
    2518}
    2519impl ::prost::Name for DeleteSnapshotRequest {
    2520    const NAME: &'static str = "DeleteSnapshotRequest";
    2521    const PACKAGE: &'static str = "google.pubsub.v1";
    2522    fn full_name() -> ::prost::alloc::string::String {
    2523        "google.pubsub.v1.DeleteSnapshotRequest".into()
    2524    }
    2525    fn type_url() -> ::prost::alloc::string::String {
    2526        "type.googleapis.com/google.pubsub.v1.DeleteSnapshotRequest".into()
    2527    }
    2528}
    2529#[derive(Clone, PartialEq, ::prost::Message)]
    2530pub struct SeekRequest {
    2531    #[prost(string, tag = "1")]
    2532    pub subscription: ::prost::alloc::string::String,
    2533    #[prost(oneof = "seek_request::Target", tags = "2, 3")]
    2534    pub target: ::core::option::Option<seek_request::Target>,
    2535}
    2536/// Nested message and enum types in `SeekRequest`.
    2537pub mod seek_request {
    2538    #[derive(Clone, PartialEq, ::prost::Oneof)]
    2539    pub enum Target {
    2540        #[prost(message, tag = "2")]
    2541        Time(::prost_types::Timestamp),
    2542        #[prost(string, tag = "3")]
    2543        Snapshot(::prost::alloc::string::String),
    2544    }
    2545}
    2546impl ::prost::Name for SeekRequest {
    2547    const NAME: &'static str = "SeekRequest";
    2548    const PACKAGE: &'static str = "google.pubsub.v1";
    2549    fn full_name() -> ::prost::alloc::string::String {
    2550        "google.pubsub.v1.SeekRequest".into()
    2551    }
    2552    fn type_url() -> ::prost::alloc::string::String {
    2553        "type.googleapis.com/google.pubsub.v1.SeekRequest".into()
    2554    }
    2555}
    2556#[derive(Clone, Copy, PartialEq, ::prost::Message)]
    2557pub struct SeekResponse {}
    2558impl ::prost::Name for SeekResponse {
    2559    const NAME: &'static str = "SeekResponse";
    2560    const PACKAGE: &'static str = "google.pubsub.v1";
    2561    fn full_name() -> ::prost::alloc::string::String {
    2562        "google.pubsub.v1.SeekResponse".into()
    2563    }
    2564    fn type_url() -> ::prost::alloc::string::String {
    2565        "type.googleapis.com/google.pubsub.v1.SeekResponse".into()
    2566    }
    2567}