// @generated
// This file is @generated by prost-build.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Report {
    #[prost(string, tag="1")]
    pub report_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub report_template_id: ::prost::alloc::string::String,
    #[prost(string, tag="3")]
    pub run_id: ::prost::alloc::string::String,
    #[prost(string, tag="4")]
    pub organization_id: ::prost::alloc::string::String,
    #[prost(string, tag="5")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, optional, tag="6")]
    pub description: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, tag="7")]
    pub created_by_user_id: ::prost::alloc::string::String,
    #[prost(string, tag="8")]
    pub modified_by_user_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag="9")]
    pub created_date: ::core::option::Option<::pbjson_types::Timestamp>,
    #[prost(message, optional, tag="10")]
    pub modified_date: ::core::option::Option<::pbjson_types::Timestamp>,
    #[prost(message, repeated, tag="11")]
    pub summaries: ::prost::alloc::vec::Vec<ReportRuleSummary>,
    #[prost(message, repeated, tag="12")]
    pub tags: ::prost::alloc::vec::Vec<ReportTag>,
    #[prost(string, optional, tag="13")]
    pub rerun_from_report_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="14")]
    pub job_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag="15")]
    pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>,
    #[prost(message, repeated, tag="16")]
    pub metadata: ::prost::alloc::vec::Vec<super::super::metadata::v1::MetadataValue>,
    #[prost(bool, tag="17")]
    pub is_archived: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReportRuleSummary {
    #[prost(string, tag="1")]
    pub rule_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub rule_client_key: ::prost::alloc::string::String,
    #[prost(string, tag="3")]
    pub rule_version_id: ::prost::alloc::string::String,
    #[prost(uint32, tag="4")]
    pub rule_version_number: u32,
    #[prost(string, tag="5")]
    pub report_rule_version_id: ::prost::alloc::string::String,
    #[prost(uint32, tag="6")]
    pub num_open: u32,
    #[prost(uint32, tag="7")]
    pub num_failed: u32,
    #[prost(uint32, tag="8")]
    pub num_passed: u32,
    #[prost(enumeration="ReportRuleStatus", tag="9")]
    pub status: i32,
    #[prost(message, optional, tag="10")]
    pub status_details: ::core::option::Option<ReportRuleStatusDetails>,
    #[prost(message, optional, tag="11")]
    pub created_date: ::core::option::Option<::pbjson_types::Timestamp>,
    #[prost(message, optional, tag="12")]
    pub modified_date: ::core::option::Option<::pbjson_types::Timestamp>,
    #[prost(string, tag="13")]
    pub asset_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag="14")]
    pub deleted_date: ::core::option::Option<::pbjson_types::Timestamp>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReportTag {
    #[prost(string, tag="1")]
    pub tag_name: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReportRuleStatusDetails {
    #[prost(oneof="report_rule_status_details::Details", tags="1, 2, 3, 4, 5, 6")]
    pub details: ::core::option::Option<report_rule_status_details::Details>,
}
/// Nested message and enum types in `ReportRuleStatusDetails`.
pub mod report_rule_status_details {
    #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Details {
        #[prost(message, tag="1")]
        Created(super::ReportRuleStatusDetailsCreated),
        #[prost(message, tag="2")]
        Live(super::ReportRuleStatusDetailsLive),
        #[prost(message, tag="3")]
        Finished(super::ReportRuleStatusDetailsFinished),
        #[prost(message, tag="4")]
        Failed(super::ReportRuleStatusDetailsFailed),
        #[prost(message, tag="5")]
        Canceled(super::ReportRuleStatusDetailsCanceled),
        #[prost(message, tag="6")]
        Error(super::ReportRuleStatusDetailsError),
    }
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ReportRuleStatusDetailsCreated {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ReportRuleStatusDetailsLive {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReportRuleStatusDetailsFinished {
    #[prost(string, optional, tag="1")]
    pub stdout: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="2")]
    pub stderr: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReportRuleStatusDetailsFailed {
    #[prost(string, tag="1")]
    pub error_message: ::prost::alloc::string::String,
    #[prost(int32, optional, tag="2")]
    pub exit_code: ::core::option::Option<i32>,
    #[prost(string, optional, tag="3")]
    pub stdout: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="4")]
    pub stderr: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ReportRuleStatusDetailsCanceled {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ReportRuleStatusDetailsError {
    #[prost(string, tag="1")]
    pub error_message: ::prost::alloc::string::String,
    #[prost(int32, optional, tag="2")]
    pub exit_code: ::core::option::Option<i32>,
    #[prost(string, optional, tag="3")]
    pub stdout: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="4")]
    pub stderr: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateReportRequest {
    #[prost(string, tag="3")]
    pub organization_id: ::prost::alloc::string::String,
    #[prost(string, tag="4")]
    pub run_id: ::prost::alloc::string::String,
    #[prost(string, optional, tag="5")]
    pub name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, repeated, tag="16")]
    pub metadata: ::prost::alloc::vec::Vec<super::super::metadata::v1::MetadataValue>,
    #[prost(oneof="create_report_request::Request", tags="1, 2")]
    pub request: ::core::option::Option<create_report_request::Request>,
}
/// Nested message and enum types in `CreateReportRequest`.
pub mod create_report_request {
    #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Request {
        #[prost(message, tag="1")]
        ReportFromReportTemplateRequest(super::CreateReportFromReportTemplateRequest),
        #[prost(message, tag="2")]
        ReportFromRulesRequest(super::CreateReportFromRulesRequest),
    }
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateReportResponse {
    #[prost(message, optional, tag="1")]
    pub report: ::core::option::Option<Report>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateReportFromReportTemplateRequest {
    #[prost(string, tag="1")]
    pub report_template_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateReportFromRulesRequest {
    #[prost(string, tag="1")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, optional, tag="2")]
    pub description: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, repeated, tag="3")]
    pub tag_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(oneof="create_report_from_rules_request::RuleIdentifiers", tags="4, 5")]
    pub rule_identifiers: ::core::option::Option<create_report_from_rules_request::RuleIdentifiers>,
}
/// Nested message and enum types in `CreateReportFromRulesRequest`.
pub mod create_report_from_rules_request {
    #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum RuleIdentifiers {
        #[prost(message, tag="4")]
        RuleIds(super::CreateReportRequestRuleIds),
        #[prost(message, tag="5")]
        RuleClientKeys(super::CreateReportRequestClientKeys),
    }
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateReportRequestRuleIds {
    #[prost(string, repeated, tag="1")]
    pub rule_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateReportRequestClientKeys {
    #[prost(string, repeated, tag="1")]
    pub rule_client_keys: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetReportRequest {
    #[prost(string, tag="1")]
    pub report_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetReportResponse {
    #[prost(message, optional, tag="1")]
    pub report: ::core::option::Option<Report>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListReportsRequest {
    #[prost(uint32, tag="1")]
    pub page_size: u32,
    #[prost(string, tag="2")]
    pub page_token: ::prost::alloc::string::String,
    #[prost(string, tag="3")]
    pub filter: ::prost::alloc::string::String,
    #[prost(string, tag="4")]
    pub organization_id: ::prost::alloc::string::String,
    #[prost(string, tag="5")]
    pub order_by: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListReportsResponse {
    #[prost(message, repeated, tag="1")]
    pub reports: ::prost::alloc::vec::Vec<Report>,
    #[prost(string, tag="2")]
    pub next_page_token: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RerunReportRequest {
    #[prost(string, tag="1")]
    pub report_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct RerunReportResponse {
    #[prost(string, tag="1")]
    pub job_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub report_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CancelReportRequest {
    #[prost(string, tag="1")]
    pub report_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct CancelReportResponse {
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateReportRequest {
    #[prost(message, optional, tag="1")]
    pub report: ::core::option::Option<Report>,
    #[prost(message, optional, tag="2")]
    pub update_mask: ::core::option::Option<::pbjson_types::FieldMask>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct UpdateReportResponse {
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum ReportRuleStatus {
    Unspecified = 0,
    Created = 1,
    Live = 2,
    Finished = 3,
    Failed = 4,
    Canceled = 5,
    Error = 6,
}
impl ReportRuleStatus {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            ReportRuleStatus::Unspecified => "REPORT_RULE_STATUS_UNSPECIFIED",
            ReportRuleStatus::Created => "REPORT_RULE_STATUS_CREATED",
            ReportRuleStatus::Live => "REPORT_RULE_STATUS_LIVE",
            ReportRuleStatus::Finished => "REPORT_RULE_STATUS_FINISHED",
            ReportRuleStatus::Failed => "REPORT_RULE_STATUS_FAILED",
            ReportRuleStatus::Canceled => "REPORT_RULE_STATUS_CANCELED",
            ReportRuleStatus::Error => "REPORT_RULE_STATUS_ERROR",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "REPORT_RULE_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
            "REPORT_RULE_STATUS_CREATED" => Some(Self::Created),
            "REPORT_RULE_STATUS_LIVE" => Some(Self::Live),
            "REPORT_RULE_STATUS_FINISHED" => Some(Self::Finished),
            "REPORT_RULE_STATUS_FAILED" => Some(Self::Failed),
            "REPORT_RULE_STATUS_CANCELED" => Some(Self::Canceled),
            "REPORT_RULE_STATUS_ERROR" => Some(Self::Error),
            _ => None,
        }
    }
}
include!("sift.reports.v1.tonic.rs");
include!("sift.reports.v1.serde.rs");
// @@protoc_insertion_point(module)